Пример улучшения качества изображения с использованием технологии Super Resolution.
Известно четыре основных подхода по улучшению изображения: prediction models (предсказательные модели), edge based methods (краевые методы), image statistical methods (статистические методы) и patch based (or example-based) methods (методы основанные на паттернах). Наилучшее качество дают patch based (or example-based) methods (методы основанные на паттернах).
В статье [1] впервые было предложено перейти от традиционного подхода, использующего набор фильтров к единой сверточной нейронной сети, работающей по принципу end to end.
Подход на основе сверточной нейронной сети объединил функции:
1) Извлечения и отображения патчей.
2) Нелинейного отображения.
3) Реконструкции.
Визуализация принципа действия нейронной сети и связь с методом разреженного кодирования [ 1 ]
Подход на основе сверточной нейронной сети позволил улучшить качество в сравнении с известными методами при сохранении высокой скорости срабатывания.
Качество и время срабатывания в зависимости от числа фильтров.
Согласно авторам исследования, архитектура сети влияла на качество больше, чем размер обучающей выборки.
Продолжением исследований в области улучшения качества изображения является работа [2] в которой рассмотрены более глубокие архитектуры c помощью которых удалось восстановить «испорченное изображение».
Слева – «испорченное изображение», центр – восстановленное изображение, справа – оригинал.
В работе [3], задача улучшения изображения решается с применением GAN.
Визуализация принципа действия GAN в задаче улучшения качества изображения [3]
Применение GAN позволило улучшить качество текстуры и сделало обработанные изображения настолько фотореалистичными, что визуально их тяжело отличить от оригинала.
Сравнение изображения, восстановленного с применением GAN и оригинала.
Технология Super Resolution уже используется в обработке изображений и видео. Так, компания Яндекс улучшила качество старых советских фильмов на кинопоиске, а компания Robin Video использует Super Resolution для улучшения качества изображения в облачном видеонаблюдении, чтобы клиенты использовали более простые и дешёвые камеры с сохранением качества картинки.
В следующих статьях постараюсь подробно рассказать о технической реализации подхода Super Resolution.
Image Super-Resolution Using Deep Convolutional Networks
[2] arxiv.org/pdf/1606.08921.pdf
Image Restoration Using Convolutional Auto-encoders with Symmetric Skip Connections
[3] arxiv.org/pdf/1609.04802.pdf
Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network
Комментарии (22)
EndUser
21.05.2018 15:40Чем это отличается от низкочастотного фильтра?
Xirexel
21.05.2018 17:08+1Низкочастотный фильтр аппроксимирует сигнал — изображение на основе проекции в линейное ортогональное пространство (обобщённо говоря). Описанный в статье метод является НЕЛИНЕЙНЫМ поиском подобия с принятием разностного решения нейронной сетью. Я работал с подобной технологией на основе фрактальных преобразований — там так-же требуется установить подобие, но уже глобальное — для всего изображения — можете ознакомиться с постом: https://habr.com/post/309906/
Greendq
21.05.2018 21:19А есть ли в публичном доступе реализация какого-нибудь из подобных методов? Хотелось бы помучать и посмотреть, что оно даёт на реальных картинках.
RadicalDreamer
21.05.2018 22:35Сам задался этим вопросом, из того что нашел — waifu2x.
Работает, кстати, неплохо, но если увеличивать изображение несколько раз, то оно будет «замылено» (что, в общем-то, ожидаемо).TiesP
22.05.2018 09:28тоже поискал по ключевым словам… нашёл другие две ссылки (пока не проверял) srgan и super_resolution
DistortNeo
22.05.2018 02:06Да, код SRCNN доступен на странице авторов:
mmlab.ie.cuhk.edu.hk/projects/SRCNN.html
Если хочется просто запустить exe, то имеется моя собственная реализация на C++ (n1 = 64, n2 = 32), в демо-версии работа только с grayscale:
imaging.cs.msu.ru/en/soft
demo.exe resample -method srcnn in.png out.png
begemot_sun
21.05.2018 22:19Когда начнут пираты обрабатывать старые рисованные мультики, чтобы увеличить разрешение для них?
LynXzp
22.05.2018 03:10Так? Больше материалов. Работа.
Конечно это совсем не про улучшение рисованных мультиков, а про увеличение и депикселизацию пиксельарта. Но в обоих случаях ответ одинаков — никому не нужно.
sdveg
22.05.2018 09:47Часто на дешевых камерах только охранник может понять достоверно кто это был:).
AllexIn
22.05.2018 10:00У меня дешевый тепловизор использует «улучшение» термократины чтобы изображение имело большее разрешение. Очень красивые картинки. И он видит то, чего нет. В первую очередь градиент там, где его быть не может.
Убил бы тех, кто придумал такое улучшение. Один вопрос — НАХРЕНА????
TiesP
22.05.2018 11:09Интересно было бы попробовать для старых фоток метод из 2-й статьи "восстановление испорченных изображений". Конечно, без специальных знаний в оригиналах статей разобраться очень сложно. Интересно, есть ли такое открытое решение? На github нашёл пока пару решений просто для "super resolution"
JTG
DimaTiunov
Ну-с, не должны же фото с обработкой, пусть и мега заточенным инструментом под улучшение изображения, допускаться в суд, заяву, официальный документ в качестве доказательства. Для того что бы такое вошло в обиход нужны стандарты, изучить процент погрешности и т.д.
Garrett
Спасибо за ссылку, захватывающая история конечно!
DistortNeo
Ага, типичная ошибка. Алгоритмы повышения разрешения изображений не способны восстановить информацию, которая была потеряна из-за хреновой камеры. Зато они могут сделать изображение приятным человеческому глазу.
Есть ещё технология многокадрового супер-разрешения (раньше, кстати, под Super-Resolution понимали только многокадровый подход, потом термин исказился) — там за счёт игр с алиасингом можно вытащить реальную высокочастотную информацию из видеопоследовательности. Но есть жёсткое ограничение: только grayscale камеры и применение алгоритмов супер-разрешения до компрессии, т.к. компрессия за счёт разностного кодирования уничтожает дополнительную информацию для восстановления данных.