Russian Qt Forum
Ноябрь 22, 2024, 08:19
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Программирование
>
Алгоритмы
>
Восстановление изображения
Страниц: [
1
]
2
3
...
6
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Восстановление изображения (Прочитано 29574 раз)
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Восстановление изображения
«
:
Октябрь 21, 2020, 17:36 »
Всем доброго времени суток, камрады!
Задача такая:
Имеется матрица пикселей: каждый пиксель имеет свои координаты (x, y) и значение (R, G, B). Причём большинство пикселей "битые",
пусть для определённости, 95% всех пикселей нерабочие, и мы можем работать только с оставшимися 5% "живых" пикселей. Живые пиксели
равновероятно распределены по всей матрице и мы знаем их координаты (x, y).
Вопрос: как на основе "живых" пикселей наиболее "корректно" восстановить всё изображение?
Я не специалист в этом вопросе и не знаю какие сейчас существуют наиболее топовые алгоритмы, которые эту проблему решают.
Буду благодарен за комментарии, предложения и возможные направления)
Заранее спасибо)
«
Последнее редактирование: Октябрь 21, 2020, 17:50 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Восстановление изображения
«
Ответ #1 :
Октябрь 21, 2020, 17:38 »
Сейчас нейросети картины дорисовывают...
Вот я бы опять в эту сторону смотрел.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #2 :
Октябрь 21, 2020, 17:45 »
Цитата: Old от Октябрь 21, 2020, 17:38
Сейчас нейросети картины дорисовывают...
Вот я бы опять в эту сторону смотрел.
Пожалуй, да) Это, как я понимаю, проблема классификации.. Входные данные это 2D вектор (x, y), а выходной - 3D (R, G, B).
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Восстановление изображения
«
Ответ #3 :
Октябрь 21, 2020, 19:07 »
Цитата: m_ax от Октябрь 21, 2020, 17:45
Входные данные это 2D вектор (x, y), а выходной - 3D (R, G, B).
Да тут огромный простор для экспериментов.
Я бы тренировал сеть показывая исходную картинку (где все битые пиксели заменялись [0, 0, 0]), а в качестве правильного ответа показывал бы валидную картинку.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #4 :
Октябрь 21, 2020, 19:17 »
Цитата: Old от Октябрь 21, 2020, 19:07
Цитата: m_ax от Октябрь 21, 2020, 17:45
Входные данные это 2D вектор (x, y), а выходной - 3D (R, G, B).
Да тут огромный простор для экспериментов.
Я бы тренировал сеть показывая исходную картинку (где все битые пиксели заменялись [0, 0, 0]), а в качестве правильного ответа показывал бы валидную картинку.
А что значит валидная картинка? У меня условно только 5% живых пикселей, случайно распределённых по матрице)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Восстановление изображения
«
Ответ #5 :
Октябрь 21, 2020, 19:21 »
Цитата: m_ax от Октябрь 21, 2020, 19:17
А что значит валидная картинка? У меня условно только 5% живых пикселей, случайно распределённых по матрице)
Ну сеть то нужно вначале натренировать, поэтому понадобяться некие исходные картинки. Дальше мы берем хорошую картинку, убиваем по определенным правилам 95% и отдаем эту пару сети. И там 100500 разных картинок.
А потом при запросе мы даем сети битую картинку, а она нам восстановленную (на ее взгляд).
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #6 :
Октябрь 21, 2020, 19:41 »
Цитата: Old от Октябрь 21, 2020, 19:21
Цитата: m_ax от Октябрь 21, 2020, 19:17
А что значит валидная картинка? У меня условно только 5% живых пикселей, случайно распределённых по матрице)
Ну сеть то нужно вначале натренировать, поэтому понадобяться некие исходные картинки. Дальше мы берем хорошую картинку, убиваем по определенным правилам 95% и отдаем эту пару сети. И там 100500 разных картинок.
А потом при запросе мы даем сети битую картинку, а она нам восстановленную (на ее взгляд).
Так, хорошо, идею понял..
Но мне не совсем очевидно следующее:
Пусть у нас есть 100500 валидных картинок, одинаковой размерности (соответствующих размерности нашей восстанавливаемой) с одинаковым набором живых пикселей.
Нейросеть выцепляет некоторые корреляции между координатами живых пикселей с их значениями (R, G, B).
Мне не очевидно, почему обученная сеть, на основе "левых" вылидных картинок, сможет восстановить конкретно совершенно другую картинку?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Восстановление изображения
«
Ответ #7 :
Октябрь 21, 2020, 19:57 »
Цитата: m_ax от Октябрь 21, 2020, 19:41
Мне не очевидно, почему обученная сеть, на основе "левых" вылидных картинок, сможет восстановить конкретно совершенно другую картинку?
Конечно, другую картинку она не восстановит.
Если сеть тренировать на пейзажах, а потом показать ей "убитого" робота, то она из него пейзаж и восстановит.
Я думал у вас некий определенный набор картинок будет.
А так натренировать сеть на всё-всё-всё врядли получится.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #8 :
Октябрь 21, 2020, 20:11 »
Цитата: Old от Октябрь 21, 2020, 19:57
Цитата: m_ax от Октябрь 21, 2020, 19:41
Мне не очевидно, почему обученная сеть, на основе "левых" вылидных картинок, сможет восстановить конкретно совершенно другую картинку?
Конечно, другую картинку она не восстановит.
Если сеть тренировать на пейзажах, а потом показать ей "убитого" робота, то она из него пейзаж и восстановит.
Я думал у вас некий определенный набор картинок будет.
А так натренировать сеть на всё-всё-всё врядли получится.
Цитата: Old от Октябрь 21, 2020, 19:57
Цитата: m_ax от Октябрь 21, 2020, 19:41
Мне не очевидно, почему обученная сеть, на основе "левых" вылидных картинок, сможет восстановить конкретно совершенно другую картинку?
Конечно, другую картинку она не восстановит.
Если сеть тренировать на пейзажах, а потом показать ей "убитого" робота, то она из него пейзаж и восстановит.
Я думал у вас некий определенный набор картинок будет.
А так натренировать сеть на всё-всё-всё врядли получится.
Вот
Я немного слукавил - у меня уже есть решение этой проблемы, правда не без своих минусов.. Хотел просто сравнить разные подходы.
И да, моё решение - это именно machine learning
Вот в аттаче
https://dropmefiles.com.ua/ru/LANZ8Q6mxD
прикрепляю архив с картинками - оригинальными и восстановленными на основе 5% случайных пикселей
Ну, как вам?
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #9 :
Октябрь 21, 2020, 20:22 »
Вот исходники для двух примеров. Во втором примере нужно png картинку в корень положить (example2) с именем "photo.png" + boost::gil,
а в первом примере нужно иметь установленный gnuplot
http://www.gnuplot.info/
)
«
Последнее редактирование: Октябрь 21, 2020, 21:12 от m_ax
»
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Восстановление изображения
«
Ответ #10 :
Октябрь 21, 2020, 20:27 »
Цитата: m_ax от Октябрь 21, 2020, 20:11
Ну, как вам?
Шикарно.
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #11 :
Октябрь 21, 2020, 21:13 »
Прошу прощения: перепутал example1 с example2... Исправил..
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #12 :
Октябрь 21, 2020, 22:13 »
Цитата: Old от Октябрь 21, 2020, 20:27
Цитата: m_ax от Октябрь 21, 2020, 20:11
Ну, как вам?
Шикарно.
Вы знаете, я сравнивал с классической нейросетью (tiny_dnn) в плане обучения её по времени.. Так вот (не исключаю, что у меня руки не из того места растут) она в статистическом плане всегда проигрывает vanda-е..Т.е. время обучения у неё нереально большое..(
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
qate
Супер
Offline
Сообщений: 1177
Re: Восстановление изображения
«
Ответ #13 :
Октябрь 22, 2020, 00:13 »
Цитата: m_ax от Октябрь 21, 2020, 20:22
нужно png картинку в корень положить (example2) с именем "photo.png" + boost::gil,
как посмотреть на картинку, от которой осталось 5% из исходной ?
boost::gil не знаю - как сохранить не соображу
Записан
m_ax
Джедай : наставник для всех
Offline
Сообщений: 2095
Re: Восстановление изображения
«
Ответ #14 :
Октябрь 22, 2020, 06:41 »
Цитата: qate от Октябрь 22, 2020, 00:13
Цитата: m_ax от Октябрь 21, 2020, 20:22
нужно png картинку в корень положить (example2) с именем "photo.png" + boost::gil,
как посмотреть на картинку, от которой осталось 5% из исходной ?
boost::gil не знаю - как сохранить не соображу
Да и не нужно на неё смотреть.. Просто берёте png картинку, называете её photo.png и кидаете её в папочку example2...
boost::gil - это Generic Image Library - библиотека для работы с изображениями)
Записан
Над водой луна двурога. Сяду выпью за Ван Гога. Хорошо, что кот не пьет, Он и так меня поймет..
Arch Linux Plasma 5
Страниц: [
1
]
2
3
...
6
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...