Воскресенье, 13 октября 2019 15:05

Магия Google: Как работает SuperResZoom?

Rate this item
(0 votes)

Сегодня мы расскажем как Google совершил революцию в мире цифрового приближения. И даже больше, как он вновь переписал всё в цифровой фотографии со своей технологией SuperResZoom.

Проблема

Начнём с того,

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

Немного теории! Не все об этом знают но 2/3 изображения, которые вы получаете практически с любой цифровой камеры, кроме самых экзотичных, не настоящие, а математически восстановленные!


Звучит как какая-то теория заговора. Давайте объясню.

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

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

Наиболее распространённый вариант компоновки такой сетки — это RGB фильтр Байера, в котором на каждые 4 пикселя приходится по 2 зеленых, 1 красный и 1 синий. Зеленых фильтров больше, потому, что человеческий глаз более чувствителен к этом спектру. Наверное это связано с тем, что большую часть своей истории человечество и наши предки прожили на деревьях или около них.

В итоге при фильтрации света таким образом, на выходе мы получаем мозаику из красных зеленых и синих пикселей с массой пустых областей. Разрешение зелёного канала падает в 2 раза, а красного и синего аж в 4! Кстати, HUAWEI начиная с линейки П30 частично пытается решить эту проблему, используя вместо зеленых фильтров желтые. Но это уже немного другая тема.

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

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

Предыстория технологии

И что теперь?! Выкладываем наши телефоны, цифровые фотоаппараты и снимаем исключительно по старинке на милую душе плёночку?

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

Причём же здесь цифровой зум? А еще во многих цифровых фотоаппаратах используется технология Pixel Shift. Что это такое?

Камера делает четыре снимка, в каждом из которых сенсор сдвигается точно на один пиксель. Да-да! Вам не послышалось, в камерах механически двигается матрица. И бинго — готово полноценное изображение!

Но есть проблема — пригодна эта технология только для статичных сюжетов, если камера зафиксирована и объект съемки неподвижен. В тот момент, когда все в индустрии считала, что технология Pixel Shift неприменима в смартфонах Google ответил: А что если мы будем использовать естественную тряску рук фотографа вместо контролируемого сдвига сенсора для создания фотографий в суперразрешении! И они это на самом деле сделали!

Как и в случае с технологией HDR+ из буфера забирается серия кадров и выравнивается друг с другом с максимально возможной точностью. Из-за того что все кадры сняты немного под разным углом это приводит к случайным смещениям суб-пикселей, что даёт достаточно информации для восстановления сигнала более высокого разрешения. БИНГО!

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

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

Всё это позволяет получить исходное изображение с разрешением выше, чем это было физически возможно! Просто взрыв мозга!

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

Итого: технология SuperResZoom состоит из двух частей:

1. Получение фотографии в суперразрешениии, при помощи субппиксельной склейки нескольких кадров

2. Увеличение фото с помощью нейросетей.

Скептик внутри каждого из вас может сказать. Это конечно, круто, но оптическое увеличение всё равно лучше!
Теоретически это верно, но как показала практика, из-за того что места в смартфоне попросту не хватает, производители ставят менее светосильную оптику и матрицу поменьше для телемодуля. Поэтому вплоть до двукратного увеличения, цифровой зум от Google частенько уделывает простенький оптический. Особенно в темноте.

Кстати, этот метод склейки изображений используется по умолчанию в режиме NightSight на Pixel 3, даже если не зумировать. А в будущем он скорее всего полностью заменит собой любимый всеми HDR+.

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

В завершении я даю ссылку на исследование, благодаря которому мы и подготовили этот материал.

Спасибо Антону Евстратенко за помощь в создании текста.

Read 1182 times