Мозаичный форум  

Вернуться   Мозаичный форум > Территория общения > Персональные разделы > Раздел SerejaKu
Галерея Справка Пользователи Календарь Поиск Сообщения за день Все разделы прочитаны

Ответ
 
Опции темы
Старый 28.07.2022, 09:46   #1
Фавн2
ушел в библиотеку
 
Аватар для Фавн2
 
Регистрация: 07.02.2019
Сообщений: 3,853
Фавн2 бесцветный кусочек мозаики
задачка

с яндексового контеста, матрицей *.npy дана картинка
три канала rgb, целые циферки от 0 до 255
85% пикселей рандомно похерено во тьму

восстановить качество до psnr > 20
(желающие сами можуть взять картинку побить на ргб матрицы и рандомно дропнуть 85% пикселей)


как бы стал решать? лимит времени 1-2 часа (в контесте 6 задач на 6 часов)
__________________
The past is never dead. It’s not even past. William Faulkner
Фавн2 вне форума   Ответить с цитированием
Старый 28.07.2022, 11:15   #2
SerejaKu
Старожил
 
Аватар для SerejaKu
 
Регистрация: 15.02.2007
Адрес: Екатеринбург
Сообщений: 5,764
SerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мира
Я на работе вообще-то... Поэтому крайне схематично:

0. Насколько я понял чёрные точки (0,0,0) подлежат восстановлению по данным цветных точек.

1. Для каждой восстанавливаемой точки строим "функцию распределения" в малой окрестности точки: цвет -> количество точек с таким цветом

2. Если функция распределения имеет 1 пик вокруг какого-то конкретного значения цвета - предполагаем, что точка находится в области равномерного цветового градиента и восстанавливаем этим цветом (хотя лучше не константой а какой-нибудь линейной регрессией по положению токи)


3. Если функция распределения имеет 2 пика вокруг двух конкретных значений цвета - предполагаем, что через окрестность точки проходит линейный контур с разными цветами по разные стороны. Определяем наклон контура и по какую сторону контура находится восстанавливаемая точка и восстанавливаем цветом той части, в которой оказалась точка.

4. Три и более пиков - игнорируем, такие зоны скорее всего малы по площади, а за два часа все варианты перебрать всё равно не успеем.

5. Скорее всего можно ускорить процесс пересчёта статистики по цвету, если мы при смещении малой области будем выкидывать статистику цвета по точкам, которые вышли из зоны захвата и добавлять статистику по тем, которые вошли.

6. Скорее всего полезно будет подвигать зоны захвата вдоль линий смены цвета - так можно обнаружить и точнее обсчитать точки схождения трёх и более контуров по типу "стена, над ней- небо, а на переднем плане - дерево"
__________________
Пока живут растаманы из глубинки - Вавилону не устоять!

Последний раз редактировалось SerejaKu; 28.07.2022 в 11:22.
SerejaKu вне форума   Ответить с цитированием
Старый 28.07.2022, 11:21   #3
BOBA
Сетевой эльф
 
Аватар для BOBA
 
Регистрация: 27.09.2007
Сообщений: 37,312
BOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мираBOBA мозаика мира
самое простое наверное линейная интерполяция в треугольниках.... концептуально. или не в треугольниках. Допустим для каждой точки плоскости есть 4-5 ближайших узлов и допустим вес обратно пропорционален линейке или квадрату линейки от узла. получается что в узлах узлы, между что то между. а может не линейка и не кваждат, а как то степень поподбирать.
__________________
Магическое зеркало: видеть себя в других, видеть других в себе...
Предпочитаю вежливость.
BOBA на форуме   Ответить с цитированием
Старый 28.07.2022, 11:23   #4
Фавн2
ушел в библиотеку
 
Аватар для Фавн2
 
Регистрация: 07.02.2019
Сообщений: 3,853
Фавн2 бесцветный кусочек мозаики
так это не кспеху, я то уже отмахался, другие мысли интересно послушать
__________________
The past is never dead. It’s not even past. William Faulkner
Фавн2 вне форума   Ответить с цитированием
Старый 28.07.2022, 11:33   #5
SerejaKu
Старожил
 
Аватар для SerejaKu
 
Регистрация: 15.02.2007
Адрес: Екатеринбург
Сообщений: 5,764
SerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мира
Расскажи хоть как сам делал.
И как там со сборщиком мусора?
Я когда пробовал с Яндекс-контестом играться обнаружил, что для java он не учитывает память, освобождённую сборщиком мусора, поэтому для прохождения лимита по памяти все алгоритмы приходится переписывать для работы на однократно выделенном массиве байтов.
__________________
Пока живут растаманы из глубинки - Вавилону не устоять!
SerejaKu вне форума   Ответить с цитированием
Старый 28.07.2022, 13:08   #6
Фавн2
ушел в библиотеку
 
Аватар для Фавн2
 
Регистрация: 07.02.2019
Сообщений: 3,853
Фавн2 бесцветный кусочек мозаики
Попожже. Может Afa, Zab тоже выскажутся.

Afa, Zab
как бы решали задачку?
__________________
The past is never dead. It’s not even past. William Faulkner
Фавн2 вне форума   Ответить с цитированием
Старый 28.07.2022, 13:33   #7
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,209
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
мне в лом
скорей - матрицу усреднения наложил б. эдак 7х7 для начала. с учетом двух третей - ну вон вова сказал за треугольники. я б билинейку предпочел. но этому методу мало доверия. большой процент выбитых точек
а вообще - разодрать на каналы ycbcr и сначала гонять по яркости усредняя выпавшие точки. матрицей прям. будет уже достаточно. дальше по разностным каналам, можно тупо уменьшить вдвое разрешение по ним, при интерполяции точек учитывать только не ч0рные
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 28.07.2022, 15:08   #8
SerejaKu
Старожил
 
Аватар для SerejaKu
 
Регистрация: 15.02.2007
Адрес: Екатеринбург
Сообщений: 5,764
SerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мираSerejaKu мозаика мира
А контура объектов при этом не расплывутся?
__________________
Пока живут растаманы из глубинки - Вавилону не устоять!
SerejaKu вне форума   Ответить с цитированием
Старый 28.07.2022, 15:17   #9
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,209
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
Цитата:
Сообщение от SerejaKu Посмотреть сообщение
А контура объектов при этом не расплывутся?
а наплевать
пять шестых картинки похерены. я ж не зря с матрицы 7х7 начал. и то мало будет наверн
и эт. если ты про уменьшение вдвое - так стандартно жипеги так и пакуют. и яркостный канал даёт контура и резкость
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Старый 28.07.2022, 15:22   #10
Afa
Шволочь. И провокатор.
 
Аватар для Afa
 
Регистрация: 12.02.2006
Сообщений: 31,209
Afa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мираAfa мозаика мира
псы
Сереж, ты аббревиатуру видел? psnr которая.размазывание уменьшит ошибку для средней картинки
можно читить - посчитать среднюю по каналам без учета чорных точек и залить всё черное средним.
__________________
... Survivors will be shot again.
Afa вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 14:46.