Улучшение качества изображения с помощью нейронной сети

    Сегодня, хочу рассказать об интересном подходе по улучшению качества изображения. Официальное название подхода 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
    Поделиться публикацией
    Ой, у вас баннер убежал!

    Ну. И что?
    Реклама
    Комментарии 25
      +13
      компания Robin Video использует Super Resolution для улучшения качества изображения в облачном видеонаблюдении, чтобы клиенты использовали более простые и дешёвые камеры с сохранением качества картинки
      Надеюсь, без нейросетей? Будет не очень хорошо, если на видеозаписи преступления вдруг окажется «додуманный» нейросетью номер машины или лицо человека (как у копировальных аппаратов, которые при сохранении в формат JBIG2 подменяли «похожие» цифры).
        +1
        Ну-с, не должны же фото с обработкой, пусть и мега заточенным инструментом под улучшение изображения, допускаться в суд, заяву, официальный документ в качестве доказательства. Для того что бы такое вошло в обиход нужны стандарты, изучить процент погрешности и т.д.
          0
          Никаких jpeg, только raw?
          +1
          Спасибо за ссылку, захватывающая история конечно!
            +1
            Ага, типичная ошибка. Алгоритмы повышения разрешения изображений не способны восстановить информацию, которая была потеряна из-за хреновой камеры. Зато они могут сделать изображение приятным человеческому глазу.

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

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

              0
              А уже есть нейросети, чтобы убирать водяные знаки с фотографий?
                0
                Да, как раз в статье [2] описана архитектура такой сети.
                0
                А есть ли в публичном доступе реализация какого-нибудь из подобных методов? Хотелось бы помучать и посмотреть, что оно даёт на реальных картинках.
                  +1
                  Сам задался этим вопросом, из того что нашел — waifu2x.
                  Работает, кстати, неплохо, но если увеличивать изображение несколько раз, то оно будет «замылено» (что, в общем-то, ожидаемо).
                    0

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

                      0

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

                      +1
                      Да, код 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

                        0
                        Когда начнут пираты обрабатывать старые рисованные мультики, чтобы увеличить разрешение для них?
                          0
                          Так? Больше материалов. Работа.
                          Конечно это совсем не про улучшение рисованных мультиков, а про увеличение и депикселизацию пиксельарта. Но в обоих случаях ответ одинаков — никому не нужно.
                            0
                            Так а торренты?!!! где торренты ?:)
                            0
                            А вот когда начнут обрабатывать старую душевную порнуху с VHS?
                            0
                            Часто на дешевых камерах только охранник может понять достоверно кто это был:).
                              +2
                              Получится примерно так?
                              image
                                +4
                                У меня дешевый тепловизор использует «улучшение» термократины чтобы изображение имело большее разрешение. Очень красивые картинки. И он видит то, чего нет. В первую очередь градиент там, где его быть не может.
                                Убил бы тех, кто придумал такое улучшение. Один вопрос — НАХРЕНА????
                                  0

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

                                    +1
                                    Сплошная вода, уже 10 лет такие «анонсы» вижу, где реальные инструменты? Где реальный анализ видеопоследовательности, а не одного кадра? Где ссылки на опыт яндекса и его реставрированные фильмы?

                                  Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                  Самое читаемое