Сверхвысокое разрешение (SR) - это класс методов, повышающих разрешение изображения. Эти методы нацелены на получение вывода с высоким разрешением (HR) из версии с низким разрешением (LR). Целью выполнения сверхразрешения одиночного изображения (SISR) является увеличение размера изображения с минимальным падением его качества. Применения многочисленны, от медицинской визуализации, сжатия, анализа сельского хозяйства, автономного вождения до спутниковых снимков, разведки и многого другого.

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

В этой серии блогов, состоящей из трех частей, мы обсудим основные методы в этой области и глубоко погрузимся в специальный метод под названием Zero Shot Super Resolution, который мы проверим и реализуем с помощью Keras (с бэкэндом TensorFlow) на сайте MissingLink платформа глубокого обучения ».

В настоящее время существует два основных подхода к SR в мире глубокого обучения.

Первый подход: использовать различные сверточные нейронные сети, желательно с пропуском соединений, и попытаться минимизировать потери L1 или L2 при восстановлении изображения с высоким разрешением из его пары с низким разрешением.

Второй подход: Генеративная состязательная сеть, также известная как GAN.

Архитектуру GAN можно обучить генерировать распределение, подобное распределению определенного набора данных. GAN состоит из двух основных частей: генератора и дискриминатора.
Генератор изучает, как создать распределение набора данных из случайного шума, а дискриминатор узнает, как различать реальные выборки из набора данных и синтетически созданные выборки из генератора. Обучая их вместе в состязательной манере, каждая часть улучшается итеративно, и конечным результатом является мощный генератор выборок и сильный классификатор для реальных и синтетических выборок.

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

Источник изображения: https://sthalles.github.io/intro-to-gans/

Мы берем эту архитектуру и сводим к минимуму потери GAN / противоборства.

Генераторная часть модели GAN для SR обычно использует потерю L2 (также известную как MSE или среднеквадратическая ошибка) или более современные потери восприятия, то есть среднеквадратическая ошибка (MSE), но из глубокого слоя модели. предварительно обучены на Imagenet (обычно VGG-16 или VGG-19) как потеря реконструкции. Результат предварительно обученной модели дает нам высококачественные функции без трудоемкой разработки функций. Мы сравниваем карты характеристик выходных данных сети и изображения HR.

Все это сводится к тому, что большинство систем сверхвысокого разрешения имеют в своей основе метрику L1 или L2. Это имеет смысл, потому что стандартной метрикой для реконструкции изображения является PSNR (отношение пикового сигнала к шуму) со встроенным MSE (потерями L2):

PSNR = 10 * log10 ((data_range ** 2) / mse), как определено на изображении из научного набора.

Data_range - это диапазон пикселей в нашем типе данных. Обычно 255 или 1.

Более низкое значение MSE означает меньшую ошибку, и, как видно из обратной связи между MSE и PSNR, это переводится в высокое значение PSNR. Логически более высокое значение PSNR - это хорошо, потому что это означает, что отношение сигнала к шуму выше.

Источник изображения: Быстрое и точное изображение со сверхвысоким разрешением с сетями глубоких лапласовских пирамид

В недавней статье исследователя Техниона Йохая Блау были сформулированы эмпирические данные, показывающие, что эти два подхода связаны внутренним свойством компромисса. Его эффекты видны в том факте, что бесчисленное множество существующих методов SR пытается улучшить производительность в отношении показателей шума (искажения) и восприятия (качества) одновременно. Проще говоря, чем более реальным выглядит изображение со сверхвысоким разрешением, тем больше в нем шума или артефактов, которые могут иметь синтетическое происхождение, и чем меньше искажений и шумов в изображении со сверхвысоким разрешением, тем оно более размыто. буду смотреть.

Проблема с текущими методами сверхвысокого разрешения (SR) заключается в том, что большинство из них контролируются. Это означает, что параметры алгоритма изучаются путем оптимизации парного набора данных. Минимизация функции потерь при восстановлении изображений с низким разрешением до их аналогов с высоким разрешением.

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

Одна статья из ECCV ’18, посвященная этому ошибочному способу создания парных данных, заслуживает нашего внимания. Надеюсь, мы сможем подробно обсудить это в следующей статье.

В статье Ассафа Шохера из Института Вейцмана мы находим новый, удивительно простой и элегантный метод достижения сверхразрешения одиночного изображения. Вместо обучения больших сетей (EDSR ~ 43M параметров) на больших наборах данных в течение нескольких дней или даже недель они используют небольшую (~ 100K обучаемых параметров) Fully Convolutional Neural Network (FCN) и тренируются на самих целевых данных и его многочисленные дополнения для получения конечного результата с более высоким разрешением. Они производят дополнения данных на лету и создают пары LR-HR, сначала создавая уменьшенную копию исходного изображения, а также обрезая, переворачивая и вращая ее. Затем они имитируют конкретную предопределенную пропорцию сверхвысокого разрешения, размывая увеличение посредством понижающей дискретизации, а затем повышая ее до прежнего размера (равного размеру его отца HR). В результате получается пара дополнений Размытый и Не размытый, оба уменьшенные по сравнению с исходным изображением с одним и тем же случайным коэффициентом, при этом сын LR размыт таким образом, что имитирует заданное масштабирование.

Рис 4. Наша версия ЗССР. Изображение сына LR проходит через FCNN и, наконец, добавляется к своей неизмененной копии (Output = LR + FCN (LR)). Затем мы вычисляем L1-потерю вывода по отношению к отцу отдела кадров:

Эти пары затем передаются в сеть FCN для обучения с целью минимизировать потерю L1 восстановления изображения LR до его совпадения HR. Используется простая архитектура с 8 уровнями глубиной и 64 фильтрами широкой нейронной сети с функцией активации ReLU (для всех слоев, кроме последнего, который является линейным). Установлено пропускание соединения от входа к выходу, поэтому нам нужно только узнать остаточное изображение от размытого LR до источника HR.

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

Наконец, мы тестируем (model.predict) на исходном изображении, чтобы получить результат в сверхвысоком разрешении.

В случаях, когда есть достоверное высококачественное изображение, его можно использовать для сравнения его с выходными данными сети с помощью показателей PSNR и SSIM.

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

Нейронная сеть изучает функцию изменения масштаба (или отображения):

Еще один важный факт о полностью сверточных нейронных сетях (FCN) заключается в том, что мы можем использовать различные размеры входных данных. Следовательно, каждый набор образцов имеет разный размер. Тщательно выбирая «правильные» гиперпараметры, которые должны иметь размер ядра 3 * 3, шаг 1 и заполнение, равные «одинаковому», мы получаем размер вывода, который точно совпадает с размером ввода, что позволяет нам вычислить их относительную ошибку. В этой архитектуре мы существенно улучшаем бикубическую интерполяцию только путем изменения ее тривиального вывода, при этом сам коэффициент изменения размера является предопределенным параметром.

Научное объяснение успеха этой архитектуры заключается в существовании повторяющихся внутренних элементов изображения в разных масштабах. В предыдущих статьях той же группы из Института Вейцмана было показано, что небольшие участки изображения размером 5 * 5 и 7 * 7 повторяются (на изображении) в разных местах как в исходном размере, так и в масштабе. В отдельной работе той же группы было показано, что отдельные изображения имеют более низкую внутреннюю энтропию по сравнению с большими наборами данных изображений. Это согласуется с повторением внутренних фрагментов образа и принципами самоподобия. Нейронная сеть, которая зависит от конкретного случая для рассматриваемого изображения, обучается, а затем тестируется на ней.

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

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

Zero Shot Суперразрешение лучше всего там, где большие контролируемые модели SISR терпят неудачу, на реальных изображениях с низким разрешением, которые страдают от шума, артефактов сжатия и т.д. аугментации открыты для выбора, что позволяет лучше соответствовать характеристикам изображения (добавление шума помогает улучшить результаты для низкокачественных изображений LR). Выбор этих параметров требует повторного обучения, что делает его непригодным для больших архитектур. Документ ZSSR показывает впечатляющие результаты на естественно деградированных изображениях.

Мы рассмотрели область сверхвысокого разрешения одиночного изображения, говоря об основных ветвях архитектур и внутреннем свойстве компромисса между ними. Мы глубоко погрузились в неконтролируемый метод под названием Zero Shot Super Resolution и обсудили его сильные стороны.

В следующих главах мы рассмотрим структуру проекта, реализацию и разработку, а также пакеты python, которые будут использоваться в нашем приложении.

В будущих публикациях мы продемонстрируем реализацию нулевого сверхвысокого разрешения с платформой глубокого обучения MissingLink.

Зарегистрируйтесь сейчас, чтобы получить бесплатную учетную запись.

Первоначально опубликовано на missinglink.ai.