Russian Qt Forum
Ноябрь 01, 2024, 02:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 2 3 [4] 5 6   Вниз
  Печать  
Автор Тема: Восстановление изображения  (Прочитано 29289 раз)
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #45 : Октябрь 25, 2020, 13:03 »

Я готов предоставить все тесты и  разъяснить все тонкости своего алгоритма..
А разве у Вас есть что-то "свое"?  Улыбающийся
В этом плане я всегда за свободные и открытые  знания )
Как оно хвостик подняло залив керосин в найденную либу Улыбающийся Эти нейросети - прекрасная ниша для сачков и тунеядцев всех мастей. Раньше они все около "просто сети" терлись

Если есть желание, можем посоревноваться) Время выбирайте сами) (Когда Вам удобно))
Нет. Времени точно не будет по крайней мере в ближайшие неск месяцев. Да и писать там довольно много, за рамками (интересного) баловства
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #46 : Октябрь 25, 2020, 13:12 »

Цитировать
А разве у Вас есть что-то "свое"?
Ну представьте, да)

Цитировать
Как оно хвостик подняло залив керосин в найденную либу  Улыбающийся Эти нейросети - прекрасная ниша для сачков и тунеядцев всех мастей. Раньше они все около "просто сети" терлись
Подождите, vanda - это не нейросеть! Это нечто среднее между random forest и интерполяцией.   Давайте разделять понятия!

Цитировать
Нет. Времени точно не будет по крайней мере в ближайшие неск месяцев. Да и писать там довольно много, за рамками (интересного) баловства
Хорошо, как появится задачка, инторполировать данные, тогда и поговорим) И сравним)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #47 : Октябрь 25, 2020, 13:24 »

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

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Old
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4350



Просмотр профиля
« Ответ #48 : Октябрь 25, 2020, 13:46 »

Подождите, vanda - это не нейросеть! Это нечто среднее между random forest и интерполяцией.   Давайте разделять понятия!
Да кто там будет разбираться в этих тонкостях... Улыбающийся
Если появляется что-то сложней циклов с индексами и огромных свитчей, хвостик у нашего среднего программиста падает на пол шестого. И оправдывает он это для себя - ненужностью. Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #49 : Октябрь 25, 2020, 14:05 »

Цитировать
Да кто там будет разбираться в этих тонкостях...  Улыбающийся
Ну а вдруг?  Улыбающийся  Я всегда открыт для обсуждения идей Улыбающийся
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #50 : Октябрь 25, 2020, 14:29 »

Хорошо, как появится задачка, инторполировать данные, тогда и поговорим) И сравним)
Ну поговорить-то можно, задача такая

- Есть N базовых (небитых) точек (x, y, z) разбросанных по поверхностям различных 3D объектов. Требуется в данной точке интерполировать цвет на основании ближайших базовых. Если это невозможно, то выполнить (дорогостоящий) расчет цвета в данной точке. К сожалению, вновь посчитанная точка не становится базовой, т.к. впарываемся в зависимость от порядка расчета (multi-threading обязателен).

Подобные "простые" задачки - всегда страшный гемор. Во-первых, надо решить что есть "ближайшая", поэтому для каждой базовой вычисляется, грубо говоря, "радиус захвата". Также точки могут не биться по геометрии, напр 2 соседки но на разных гранях куба не должны интерполироваться. Это довольно очевидный случай, проверил нормали - и все. Но есть гораздо более подлые, напр "ступенька". Во-вторых надо как-то найти ближайших, используется ocTree (multi вариант) у которого свои заморочки. Ну и наконец надо как-то осреднить/интерполировать значение из ближайших. Здесь я, правду сказать, ничего не нашел, тупенько взвесил используя упомянутые "радиусы захвата". Если вес оказался слишком мал - считаем новую точку.

Задача вроде бы похожа на Вашу но... Обратите внимание что сама/собсно интерполяция - лишь неск % работы. И, конечно, головная боль - качество. Артифакты на фотках Ваших баб воспринимаются спокойно - конечно, и за такое спасибо на 5%. Но на рендере это не разговор - значит еще надо задирать параметры вплоть до полного расчета. Но тогда кадр может считаться часами, а то и сутками.

Ну хорошо, вот допустим я хочу задействовать "современные технологии". Мои действия?  Улыбающийся
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #51 : Октябрь 25, 2020, 14:37 »

Ну дык в чём проблема? Давайте сравним?
(я сейчас о 2D говорю) Хотя любая размерность приемлема)
« Последнее редактирование: Октябрь 25, 2020, 15:03 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #52 : Октябрь 26, 2020, 10:15 »

Кстати выше у товарища мелькнула хорошая мысль - визуализировать исходные данные. Сделаем это (аттач). Это первая попавшаяся фотка города. Значимые пиксели имеют альфу = 1, остальные 0. Предлагаю проверить что получится. Извиняюсь за доставленные неудобства (вместо rand надо использовать альфу) но надеюсь они невелики. А потом сравним с  исходной фоткой. Потому что пока "оригинал" на руках - злоупотребления возможны.
Записан
Racheengel
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2679


Я работал с дискетам 5.25 :(


Просмотр профиля
« Ответ #53 : Октябрь 26, 2020, 10:47 »

Нет, не "равномерно распределённых", а равновероятно распределённых (с однородной плотностью распределения)

Да, конечно. Но это как раз означает, что в каждой "макроячейке" гарантируется наличие одного "не-битого" пикселя.
Поскольку мы знаем их координаты, то задача сводится к триангуляции цветовой составляющей по трём ячейчкам.

В любом случае, задача ИМХО сводится к сегментированию и триангуляции, даже если распределение не "равновероятно" и не "равномерно".
Записан

What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.

COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #54 : Октябрь 26, 2020, 14:48 »

.. в каждой "макроячейке" гарантируется наличие одного "не-битого" пикселя.
Эту "макроячейку" называют "site" а картинку разбитую на такие сайты - диаграммой Вороного. Но это нормальная человеческая логика. Здесь же предлагается др подход, вот
Почему же неясно? Мы даём координаты живого пикселя и говорим, что им соответствует пиксель вот с такими значениями R, G, B. Затем берём другой живой пиксель с координатами (x, y) и говорим, что он имеет уже вот такие R,G,B.. И так далее по всем живым пикселям, о которых нам всё известно.
А теперь мы подсовываем ей произвольные координаты (x, y) и спрашиваем у неё: А какие R,G,B с её точки зрения, должны быть у данного пикселя.   
Вот и вся магия) (Точнее, вся магия там под капотом, но..)
Ну т.е. есть какой то "бог из машины" (как говорили древние), надо лишь накормить его данными, а потом спросить - и он сам все разрулит! Искусственный интеллект, батенька Улыбающийся

Конечно такой подход аморален, но давайте (постараемся) "быть объективными" и посмотреть что он дает
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #55 : Октябрь 26, 2020, 20:18 »

Кстати выше у товарища мелькнула хорошая мысль - визуализировать исходные данные. Сделаем это (аттач). Это первая попавшаяся фотка города. Значимые пиксели имеют альфу = 1, остальные 0. Предлагаю проверить что получится. Извиняюсь за доставленные неудобства (вместо rand надо использовать альфу) но надеюсь они невелики. А потом сравним с  исходной фоткой. Потому что пока "оригинал" на руках - злоупотребления возможны.

Держите ваш Донецк)

https://dropmefiles.com/4S0FR
« Последнее редактирование: Октябрь 27, 2020, 11:45 от m_ax » Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #56 : Октябрь 26, 2020, 20:22 »

Нет, не "равномерно распределённых", а равновероятно распределённых (с однородной плотностью распределения)

Да, конечно. Но это как раз означает, что в каждой "макроячейке" гарантируется наличие одного "не-битого" пикселя.

Нет, не гарантируется)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #57 : Октябрь 26, 2020, 22:06 »

Кстати выше у товарища мелькнула хорошая мысль - визуализировать исходные данные. Сделаем это (аттач). Это первая попавшаяся фотка города. Значимые пиксели имеют альфу = 1, остальные 0. Предлагаю проверить что получится. Извиняюсь за доставленные неудобства (вместо rand надо использовать альфу) но надеюсь они невелики. А потом сравним с  исходной фоткой. Потому что пока "оригинал" на руках - злоупотребления возможны.

Держите)

https://dropmefiles.com/4S0FR

Я бы хотел прокомментировать полученный результат. Фото города имеет много мелких деталей и как следствие, неизбежно появляются "зубы". Это нормально..
Восстановление изображения составило  76 min. (это при radius = 3 - это внутренний параметр vanda, который передаётся в метод train)
Код
C++ (Qt)
/* radius = 3.0 */
   vanda.train(dataset, 3.0);
 

А теперь бы хотелось сравнить это с триангуляцией, как по качеству так и по времени.. Ну и по памяти.. В однопоточном варианте на CPU)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #58 : Октябрь 27, 2020, 13:33 »

Я бы хотел прокомментировать полученный результат. Фото города имеет много мелких деталей и как следствие, неизбежно появляются "зубы". Это нормально..
Зубы можно убрать но ценой дальнейшего размытия, этот "xрен" может оказаться совсем не слаще "той редьки". Возможно Вы хотели сказать простой вещь типа "если данных нет - то их и нет", т.е. мы объективно не можем надеяться на идеальное качество при 5% данных. Получили узнаваемый имедж - уже хорошо. С этим никто не спорит

Восстановление изображения составило  76 min.
"Серьезно"? Я полагал что речь идет о чем-то.. ну до минуты максимум.

А теперь бы хотелось сравнить это с триангуляцией, как по качеству так и по времени.. Ну и по памяти.. В однопоточном варианте на CPU)
Как я уже пояснил - нет, триангуляция за рамками "экспериментов". Если Вас устроит, я могу склепать какой-нибудь велик, напр что-то типа Гаусса. Рез-т конечно будет хуже чем с триангуляцией - но соразмерим, разницы "на порядок" не будет. Ну и, как всегда, не "сию минуту", я не могу все бросить в творческом порыве Улыбающийся

Да, оригинал
Записан
m_ax
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2095



Просмотр профиля
« Ответ #59 : Октябрь 27, 2020, 14:40 »

Цитировать
"Серьезно"? Я полагал что речь идет о чем-то.. ну до минуты максимум.
Там сортировка списка групп дорого обходится, поэтому так долго получается..

Цитировать
Ну и, как всегда, не "сию минуту", я не могу все бросить в творческом порыве
Хорошо)
Записан

Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..

Arch Linux Plasma 5
Страниц: 1 2 3 [4] 5 6   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.08 секунд. Запросов: 23.