Как смартфоны научились снимать не хуже зеркальных камер
Еще не так давно производители смартфонов стремились подчеркнуть, какой замечательной камерой снабжена та или иная модель. Пользователи хвастали количеством мегапикселей и полагали, что чем чувствительнее матрица, тем лучше она будет снимать. На самом деле развитие возможностей смартфонов в области фотографии пошло по другому пути. Не так важно, какая у вас стоит камера, куда важнее, какие алгоритмы ею управляют. Рассказываем о возможностях вычислительной фотографии, превращающей обычный смартфон в настоящую фотостудию.
Традиционно цифровой снимок, в том числе снятый на смартфон, представлял собой довольно простую операцию. Камера (или дотошный фотограф) выбирает параметры съемки, после чего матрица начинает записывать падающий на нее свет. Получившееся «сырое» изображение можно было обработать, добавив ему резкости или немного подправив цвета фильтрами, а можно было выложить в Instagram в исходном виде.
Однако сегодня в мобильной фотографии применять термин «в исходном виде» фактически бессмысленно. Дело в том, что кадр, доступный в галерее сразу после съемки, — это на самом деле продукт многостадийной обработки алгоритмами, и именно от них, а не от матрицы или объектива, в первую очередь зависит качество получившегося снимка.
Эту концепцию принято называть вычислительной фотографией. Она подразумевает, что алгоритмы способны заменить собой такие аппаратные средства, как как длиннофокусный объектив или матрица с широким динамическим диапазоном, а то и значительно улучшить их характеристики.
Многие методы, применяемые в вычислительной фотографии, или лежащие в их основе принципы разработаны уже давно, но именно в последние годы они, наконец, стали доступны пользователям самых обычных смартфонов. Кроме того, как и во многих других сферах, резкий прогресс в качестве мобильной фотографии произошел благодаря развитию алгоритмов машинного обучения и росту мощности мобильных процессоров.
В сущности, простое программное повышение резкости снимка, которым многие производители смартфонов увлекались (порой чересчур) много лет назад, формально относится к вычислительной фотографии, потому с его помощью разработчики компенсировали низкое качество объектива или отсутствие стабилизации. Но, конечно, странно было бы называть столь банальную функцию стартовой точкой расцвета вычислительной фотографии.
Настоящий переломный момент должен быть связан с внедрением технологии, способной дать технике качественно новые возможности, намного превосходящие элементарное улучшение объектива или других частей камеры. Такой момент наступил, когда в смартфонах начали применять алгоритмы HDR (High Dynamic Range — «расширенный динамический диапазон»).
Динамический диапазон означает способность матрицы отображать в одном кадре как очень светлые, так и очень темные участки. Например, когда мы выходим днем на улицу и распахиваем подъездную дверь, мы видим как темные стены подъезда, так и гораздо более ярко освещенную улицу. Однако для фотоматриц, тем более мобильных, с такой же ловкостью совместить яркие и темные участки на одном снимке — все еще достаточно сложная задача.
Для таких ситуаций давно придумано решение — брекетинг. Суть его заключается в том, что фотоаппарат делает не один, а два или больше кадров с разной экспозицией. Часто применяется схема с тремя кадрами: экспозиция первого кадра оптимальна для «усредненного» по яркости снимка, второй кадр сосредотачивается на его темных областях, а третий — на светлых.
Кадры делаются быстро, поэтому их нетрудно сразу же наложить друг на друга, соединив в одну качественную фотографию. На ней, конечно, останутся более темные и более светлые области, но не будет пересветов и черных пятен. Получившийся снимок сохранит детали на всех частях кадра и будет показывать мир примерно таким же, каким его видят наши глаза.
В современных смартфонах простой вариант HDR появился давно, но разработчики, естественно, не остановились на достигнутом.
В 2013 году Google представила смартфон Nexus 5 с алгоритмом HDR+. Из названия ясно, что это «прокачанный» HDR. Под его руководством камера делает большую серию снимков с одинаковыми параметрами и одинаковой для всех короткой выдержкой, так чтобы все кадры получились недосвеченными.
Затем алгоритм выбирает самый четкий снимок и принимает его за основу. С ним совмещаются все остальные с учетом их яркости так, чтобы в результате получился четкий снимок, во всех областях которого можно разглядеть детали.
Дальнейшее развитие HDR в основном пошло по этому пути и «перекочевало» в ночной режим, заменив длинную выдержку. Во-первых, совмещая несколько кадров, алгоритмы достаточно эффективно убирают с них шум, неизбежно возникающий при съемке темных сцен. Во-вторых, чтобы снять множество кадров с небольшими выдержками, не обязательно ставить смартфон на штатив. Можно держать его в руках, пусть даже на создание снимка требуется пара секунд, за которые раньше снимок обязательно смазался бы.
Забавно, но оказалось, что небольшое дрожание рук во время съемки может быть даже полезно. Разработчики Google научились использовать этот эффект во благо для повышения точности передачи цветов и детализации.
Работу этого алгоритма можно описать довольно коротко, но для начала необходимо вспомнить устройство большинства фотоматриц. Они представляют собой огромную сетку из фотодиодов, каждый из которых выполняет простую работу — регистрирует падающий на него свет. За цвет в матрицах отвечают накрывающие фотодиоды фильтры определенных цветов — красного, зеленого и синего.
Обычно в матрицах цветофильтры чередуются подобно клеткам шахматной доски. Цвет каждого пикселя рассчитывается, исходя из значений нескольких соседних фотодиодов. Это неизбежно приводит к потере точности цветопередачи.
В некоторых режимах камера Google Pixel не «прикидывает» значения цветов по показаниям соседних пикселей, а просто совмещает несколько снимков, заполняя пустые значения цветов на фотодиодах. Это работает именно потому, что при съемке с рук фотоматрица все время немного «гуляет» в разные стороны.
В 2018 году Google добавила во все свои смартфоны функцию Night Sight. По сути, это тот же HDR+, но использующий еще несколько программных ухищрений для улучшения снимков. Например, в ночном режиме смартфон запускает нейросетевые алгоритмы, чтобы определить, что находится перед камерой, и подстроить баланс белого. Кроме того, смартфон сам выбирает нужную выдержку в зависимости от сцены, интенсивности движений рук и других параметров.
Вслед за Google похожие режимы стали внедрять и другие производители смартфонов, например Huawei и Apple. Поскольку в нашей редакции недавно появился iPhone 11 Pro с новыми алгоритмами камеры, мы решили продемонстрировать его работу наглядно, захватив в поездку под Переславль-Залесский не большую камеру со съемными объективами, а смартфон.
Место, в котором мы делали эти снимки, находится далеко от крупных городов, поэтому нам не мешала засветка. А еще на нашей стороне был сухой морозный воздух.
Кстати, снимали мы не с рук, а со штатива. Делов в том, что последний iPhone, ориентируясь на показания акселерометра и гироскопа, умеет определять, что его положение неподвижно, и увеличивать максимальную длительность выдержки. В нашем случае она постоянно «скакала» между 10 и 28 секундами. Мы несколько раз успели «поймать» снимок с 28-секундной выдержкой и получили вот такие кадры ночного неба:
Съемка со штатива не так показательна, как съемка с рук, но даже на штативе смартфон двухлетней давности мог выдать гораздо худшую картинку, потому что алгоритмы современных ночных режимов значительно «вытягивают» темные места и подавляют шум, совмещая несколько кадров.
В смартфонах Google Pixel последних двух лет с последней версией приложения появился отдельный режим для съемки звезд, работающий немного иначе. В своем блоге разработчики Google раскрыли технические новшества этого режима.
Pixel может тратить на создание одного снимка до четырех минут, снимая до 15 снимков по 16 секунд каждый. Кроме того, камера размечает объекты в кадре и, например, применяет отдельный алгоритм шумоподавления для неба.
Судя по снимкам пользователей, разработчикам удалось сильно повысить качество шумоподавления без потери деталей, хотя, к сожалению, компания не раскрывает, как им это удалось.
Все тем же программным образом разработчики устранили и такие типичные недостатки цифровых матриц, как темновой ток и «горячие пиксели», удаляя бракованные пиксели со снимка.
Ночной режим — очень впечатляющая функция, но в реальной жизни для обычного пользователя от нее мало пользы. Поэтому усилия разработчиков сконцентрированы прежде всего на мелочах, улучшающих обычные «дневные» снимки.
Во многих флагманских смартфонах программно реализована околонулевая задержка затвора. Это значит, что после нажатия на кнопку камеры смартфон не «задумывается» на какое-то время, а запечатлевает именно нужный момент.
Дело в том, что, когда пользователь открывает камеру на Pixel, современных iPhone и некоторых других смартфонах, камера уже начинает делать снимки и записывать их в кольцевой буфер. Поскольку буфер не бесконечен, его приходится постоянно перезаписывать и, конечно же, камера не сможет взять из него снимок, сделанный в фоне минуту назад. Но, к примеру, то, что произошло полсекунды назад, она вспомнит и выдаст пользователю кадр, снятый в момент нажатия на кнопку, а не спустя некоторое время.
Еще одна область, в которой смартфоны отчасти заменили камеры с большими объективами, — это портретная съемка. В современных смартфонах камера может имитировать характерное для профессионального фотооборудования размытие фона за человеком. Для этого смартфоны, как правило, используют нейросети, способные распознать человека и отделить его от фона, после чего еще один алгоритм размывает фон, не трогая человека.
Поначалу такие алгоритмы допускали неровную обрезку, особенно в области волос. Но затем на помощь пришли аппаратные средства — не объективы или матрицы, а мощные процессоры, позволяющие делать все вычисления в реальном времени или хотя бы в течение нескольких секунд, потому что многие пользователи вряд ли готовы ждать дольше.
Григорий Копиев
Для этого пациентам с эпилепсией и электродами в мозге пришлось ее послушать
Ученые из США декодировали отрывок песни Pink Floyd из записей нейронной активности 29 человек. Они выяснили, что в обработке музыки сильнее задействовано правое полушарие, а основную роль играют верхние височные извилины. Работа опубликована в PLoS Biology.