Те из вас, у кого есть флагманский телефон Google, использовали бы функцию Super-Res Zoom, а также метод слияния по умолчанию в режиме Night Sight (будь то масштабирование или нет). Вы могли задаться вопросом, почему фотографии, снятые в этих режимах, так стабильны при высоком разрешении. Основная цель этой статьи - описать алгоритм Google Handheld Multi-Frame Super Resolution, который позволяет получать такие четкие фотографии.

Вступление

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

Главной из этих проблем является ограниченное пространственное разрешение. Разрешение, создаваемое цифровыми датчиками изображения, ограничено не только количеством физических пикселей (например, 12-мегапиксельная камера), но также наличием массивов цветных фильтров (CFA), таких как CFA Bayer. Учитывая, что человеческое зрение более чувствительно к зеленому цвету, четыре пикселя в датчике обычно соответствуют шаблону Байера RGGB; т.е. 50% зеленого, 25% красного и 25% синего. Окончательное полноцветное изображение создается из пространственно недодискретизированных цветовых каналов с помощью процесса интерполяции, называемого демозаика.

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

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

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

Работа в ручном режиме одним нажатием кнопки затвора - без штатива или преднамеренного движения камеры пользователем.

Запускать с интерактивной скоростью - алгоритм обеспечивает окончательное улучшенное разрешение с малой задержкой (не более нескольких секунд).

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

  • Будьте устойчивы к зашумленным входным данным - при слабом освещении алгоритм не усиливает шум и стремится уменьшить его.

Обзор метода

Алгоритм многокадрового сверхвысокого разрешения, как следует из названия, принимает в качестве входных данных серию необработанных (CFA Bayer) изображений, снятых с камеры смартфона. Весь процесс, от взятия пакета необработанных изображений до получения четкого изображения с высоким разрешением, представлен на рисунке выше. Короче говоря, сначала каждый захваченный кадр локально выравнивается с одним кадром из пакета (называемым базовым кадром). Затем локальные вклады каждого кадра в окончательное изображение оцениваются с помощью ядерной регрессии (поясняется позже), и эти вклады накапливаются по всей серии. Вклады накапливаются отдельно для каждой цветовой плоскости. Модель устойчивости корректирует формы ядра на основе оцененных характеристик сигнала и взвешивает вклады выборки. Наконец, поканальная нормализация дает окончательное объединенное изображение RGB.

Получение кадров

Поскольку алгоритм предназначен для работы в типичном конвейере пакетной обработки, важно, чтобы обработка не увеличивала общую задержку захвата фотографии (общее время для обработки и создания окончательного изображения). Обычно смартфон работает в режиме, называемом Zero-Shutter Lag, где необработанные кадры непрерывно записываются в кольцевой буфер, когда пользователь открывает и запускает приложение камеры. При нажатии на кнопку затвора самые последние отснятые кадры отправляются в конвейер обработки камеры. Алгоритм Google работает с входным пакетом (обозначенным символом (a) на рисунке выше), сформированным из этих изображений. Использование ранее снятых кадров создает проблемы для алгоритма сверхвысокого разрешения - пользователь может свободно перемещать камеру до захвата. Процесс слияния должен иметь возможность обрабатывать естественное движение руки и не может требовать дополнительных движений или действий пользователя.

Регистрация и выравнивание рамы

Перед объединением фреймов они помещаются в общую систему координат путем совмещения фреймов с базовым фреймом для создания набора векторов выравнивания (рисунок 2 (d)). Решение для выравнивания - это усовершенствованная версия алгоритма, используемого Hasinoff et al. [2016]. Алгоритм выравнивания ядра создает представление пирамиды каждого входного кадра и выполняет ограниченный поиск окна, чтобы найти наиболее похожую плитку. Посредством процесса выравнивания мы получаем векторы выравнивания для каждого фрагмента / фрагмента (с размером фрагмента Ts) относительно базового кадра. Для получения желаемых результатов очень важно выравнивание с точностью до субпикселей. Чтобы решить эту проблему, алгоритм уточняет результаты сопоставления блоков. Это решение отличается простотой и вычислительной эффективностью. Три итерации деформации изображения оптического потока Лукаса-Канаде [1981] уточняют векторы совмещения блоков. Такой подход достиг необходимой точности при сохранении низкой стоимости вычислений.

Процесс слияния

После того, как кадры выровнены, процесс слияния (рис. 2 (b-g)) отвечает за объединение необработанных кадров в полное изображение RGB. Эти шаги составляют основу алгоритма. Алгоритм слияния работает в интерактивном режиме, последовательно вычисляя вклад каждого обработанного кадра в каждый выходной пиксель путем накопления цветов из окрестности 3 × 3. Эти вклады взвешиваются по весам ядра (поясняется позже), модулируются маской устойчивости (поясняется позже) и суммируются отдельно для красной, зеленой и синей цветовых плоскостей. В конце процесса накопленные цветовые составляющие делятся на накопленные веса, получая три цветовые плоскости.

Результатом процесса слияния является полное изображение RGB, которое может быть определено с любым желаемым разрешением. Это может быть дополнительно обработано обычным конвейером камеры (пространственное шумоподавление, цветокоррекция, отображение тонов, повышение резкости) или, в качестве альтернативы, сохранено для дальнейшей автономной обработки в необработанном формате без CFA, таком как Linear DNG [Adobe 2012].

Предложил подход

Методы сверхвысокого разрешения восстанавливают сигнал высокого разрешения из нескольких представлений с более низким разрешением. Учитывая стохастическую природу сдвигов пикселей, возникающих в результате движения наших рук при съемке фотографий, хорошей техникой реконструкции для обработки движения руки является ядерная регрессия, которая восстанавливает непрерывный сигнал. Такое представление непрерывного сигнала может быть повторно дискретизировано с любым разрешением, равным или более высоким, чем разрешение исходного входного кадра, что в конечном итоге приводит к высокому разрешению. Google использовал ядра с анизотропной радиальной базисной функцией Гаусса (RBF), которые обеспечивают локальное адаптивное улучшение деталей или пространственно-временное шумоподавление. Наконец, модель устойчивости позволяет алгоритму работать в сценах со сложным движением и плавно переходить к однокадровой передискретизации в случаях, когда выравнивание не удается.

Реконструкция ядра

Как описано в предыдущем разделе, восстановление ядра выполняет задачу восстановления и выдает непрерывный сигнал кадров. Ядро алгоритма построено на идее обработки пикселей нескольких необработанных кадров Байера как измерений с нерегулярным смещением, наложением и зашумлением трех различных основных непрерывных сигналов, по одному для каждого цветового канала мозаики Байера (шаблон RGGB Байера). Хотя цветовые каналы часто коррелируют, в случае насыщенных цветов (например, только красный, зеленый или синий) это не так. При достаточном пространственном охвате отдельная реконструкция для каждого канала (насыщенные цвета RGB) позволяет восстановить исходный сигнал с высоким разрешением даже в этих случаях. Для создания окончательного выходного изображения все кадры последовательно обрабатываются - для каждого пикселя выходного изображения алгоритм оценивает локальные вклады в каналы красного, зеленого и синего цветов от разных входных кадров. Каждый пиксель входного необработанного изображения имеет свой цветовой канал и вносит свой вклад только в определенный выходной цветовой канал. Местные взносы взвешены; следовательно, алгоритм накапливает взвешенные вклады и веса. В конце конвейера эти вклады нормализуются. Для каждого цветового канала по формуле:

где (x, y) - координаты пикселей, сумма по n - это общие участвующие кадры, сумма по i - это сумма по выборкам в пределах локальной окрестности (в данном случае 3 × 3), cn, i обозначает значение байеровского пиксель в данном кадре n и выборке i, wn, i - это локальный вес выборки, а ˆRn - локальная устойчивость (поясняется в следующем разделе). В случае базовой рамы ˆR равно 1, так как она не выравнивается. Для вычисления локальных весов пикселей используются ядра локальных радиальных базисных функций, аналогично непараметрической ядерной регрессии.

Устойчивость к движению

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

Полученные результаты

Как мы описали ранее, алгоритм заменяет этап демозаики в классических конвейерах камеры. Итак, вот сравнение алгоритма с выбранными алгоритмами демозаики:

• Переменное количество градиентов (VNG) [Chang et al. 1999] используется в популярном программном средстве обработки с открытым исходным кодом dcraw.

• FlexISP реконструирует изображения с помощью глобальной оптимизации на основе единой целевой функции [2014].

• DeepJoint Demosaicing and Denoising - это современный подход на основе нейронных сетей, разработанный Gharbi et al. [2016].

  • ADMM - это метод оптимизации, разработанный Tan et al. [2017].

Заключение

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

Если эта статья заинтересовала вас и вы хотите узнать больше по этой теме, вы можете обратиться к статье Google по этому алгоритму.