Сегодня, хочу рассказать об интересном подходе по улучшению качества изображения. Официальное название подхода Super Resolution. Улучшение качества изображения программными методами известно с начала появления цифровых снимков, но в последние 3 года произошёл качественный скачок, вызванный использованием нейронных сетей.


Пример улучшения качества изображения с использованием технологии 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.

Ссылки на статьи
[1] arxiv.org/pdf/1501.00092v3.pdf
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)


  1. JTG
    21.05.2018 15:29
    +1

    компания Robin Video использует Super Resolution для улучшения качества изображения в облачном видеонаблюдении, чтобы клиенты использовали более простые и дешёвые камеры с сохранением качества картинки
    Надеюсь, без нейросетей? Будет не очень хорошо, если на видеозаписи преступления вдруг окажется «додуманный» нейросетью номер машины или лицо человека (как у копировальных аппаратов, которые при сохранении в формат JBIG2 подменяли «похожие» цифры).


    1. DimaTiunov
      21.05.2018 17:17

      Ну-с, не должны же фото с обработкой, пусть и мега заточенным инструментом под улучшение изображения, допускаться в суд, заяву, официальный документ в качестве доказательства. Для того что бы такое вошло в обиход нужны стандарты, изучить процент погрешности и т.д.


    1. Garrett
      22.05.2018 00:49

      Спасибо за ссылку, захватывающая история конечно!


    1. DistortNeo
      22.05.2018 02:18

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

      Есть ещё технология многокадрового супер-разрешения (раньше, кстати, под Super-Resolution понимали только многокадровый подход, потом термин исказился) — там за счёт игр с алиасингом можно вытащить реальную высокочастотную информацию из видеопоследовательности. Но есть жёсткое ограничение: только grayscale камеры и применение алгоритмов супер-разрешения до компрессии, т.к. компрессия за счёт разностного кодирования уничтожает дополнительную информацию для восстановления данных.


  1. EndUser
    21.05.2018 15:40

    Чем это отличается от низкочастотного фильтра?


    1. Xirexel
      21.05.2018 17:08
      +1

      Низкочастотный фильтр аппроксимирует сигнал — изображение на основе проекции в линейное ортогональное пространство (обобщённо говоря). Описанный в статье метод является НЕЛИНЕЙНЫМ поиском подобия с принятием разностного решения нейронной сетью. Я работал с подобной технологией на основе фрактальных преобразований — там так-же требуется установить подобие, но уже глобальное — для всего изображения — можете ознакомиться с постом: https://habr.com/post/309906/


  1. Biga
    21.05.2018 18:11

    А уже есть нейросети, чтобы убирать водяные знаки с фотографий?


    1. kirillkosolapov Автор
      21.05.2018 18:44

      Да, как раз в статье [2] описана архитектура такой сети.


  1. Greendq
    21.05.2018 21:19

    А есть ли в публичном доступе реализация какого-нибудь из подобных методов? Хотелось бы помучать и посмотреть, что оно даёт на реальных картинках.


    1. RadicalDreamer
      21.05.2018 22:35

      Сам задался этим вопросом, из того что нашел — waifu2x.
      Работает, кстати, неплохо, но если увеличивать изображение несколько раз, то оно будет «замылено» (что, в общем-то, ожидаемо).


      1. TiesP
        22.05.2018 09:28

        тоже поискал по ключевым словам… нашёл другие две ссылки (пока не проверял) srgan и super_resolution


      1. TiesP
        22.05.2018 11:21

        кстати, нашёл что-то похожее на методику из 2-й статьи. Для меня пока сложновато в этом разобраться. Если кто-то запустит, поделитесь впечатлением)


    1. 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



  1. begemot_sun
    21.05.2018 22:19

    Когда начнут пираты обрабатывать старые рисованные мультики, чтобы увеличить разрешение для них?


    1. LynXzp
      22.05.2018 03:10

      Так? Больше материалов. Работа.
      Конечно это совсем не про улучшение рисованных мультиков, а про увеличение и депикселизацию пиксельарта. Но в обоих случаях ответ одинаков — никому не нужно.


      1. begemot_sun
        23.05.2018 08:55

        Так а торренты?!!! где торренты ?:)


    1. Tarson
      22.05.2018 09:47

      А вот когда начнут обрабатывать старую душевную порнуху с VHS?


  1. sdveg
    22.05.2018 09:47

    Часто на дешевых камерах только охранник может понять достоверно кто это был:).


  1. Shmaiser
    22.05.2018 09:47
    +1

    Получится примерно так?
    image


  1. AllexIn
    22.05.2018 10:00

    У меня дешевый тепловизор использует «улучшение» термократины чтобы изображение имело большее разрешение. Очень красивые картинки. И он видит то, чего нет. В первую очередь градиент там, где его быть не может.
    Убил бы тех, кто придумал такое улучшение. Один вопрос — НАХРЕНА????


  1. TiesP
    22.05.2018 11:09

    Интересно было бы попробовать для старых фоток метод из 2-й статьи "восстановление испорченных изображений". Конечно, без специальных знаний в оригиналах статей разобраться очень сложно. Интересно, есть ли такое открытое решение? На github нашёл пока пару решений просто для "super resolution"