Новый iPhone XR в очередной раз заставил фанатов Apple и не только удивляться возможностям камеры. Мы перевели материал Бена Сандофски, автора блога и разработчика приложения Halide, в котором он рассказывает о том, как работают двойные камеры Apple, как они создают размытие и как это работает с одной камерой на iPhone XR. Прошлый материал о камере iPhone XS читайте тут.
С появлением iPhone XR каждый телефон в линейке Apple теперь поддерживает захват глубины. Но XR уникален: это первый iPhone, который может делать это с помощью одного объектива. Мы стали тестировать и оптимизировать приложение Halide для XR и нашли как преимущества, так и не недостатки.
В этом посте мы поговорим о трёх разных способах захвата данных глубины iPhone, что делает iPhone XR таким особенным и покажем новое обновление Halide 1.11, которое позволит вам делать на iPhone XR то, что обычное приложение камеры не в силах.
Метод захвата глубины №1: несоразмерность двух камер
Люди воспринимают глубину с помощью двух глаз. Наши глаза могут находиться всего в нескольких дюймах друг от друга, но наш мозг обнаруживает тонкие различия между изображением. Соответственно, чем больше разница или несоответствие, тем ближе объект.
IPhone 7 Plus представил систему с двумя камерами, которая позволяет строить глубину аналогичным образом. Сделав две фотографии одновременно, каждую с несколько иной позиции, мы можем построить карту глубины.
При сопоставлении изображений программная часть совершает много «додумывающей» работы, что, к примеру приводит к появлению шума, от чего иногда результат становится ещё «грубее». Приходится тратить много ресурсов для фильтрации данных и дополнительной обработки изображений, которые предполагают, как правильно сгладить края и заполнить «дыры».
Это требует большого количества вычислений и это не было возможно до появления iPhone X и iOS, которая дала возможность обработки карты глубины с частотой 30 кадров в секунду. Но всё это занимает много памяти. Какое-то время большинство вылетов приложения случалось потому, что система использовала слишком много памяти и ресурсов на обработку глубины.
Недостатки двойной камеры
Первое ограничение и странность этого метода заключается в том, что вы можете генерировать глубину только для двух частей изображений, которые перекрываются. Другими словами, если у вас есть широкоугольный и телеобъектив, то вы сможете создавать глубинные данные только для телеобъектива.
Другое ограничение состоит в том, что вы не можете использовать ручное управление. Так как система должна идеально синхронизировать выдачу кадров и экспозицию каждой камеры. Попытка управлять этими настройками вручную была бы похожа на попытку сбить два автомобиля сразу.
И, наконец, в то время как данные о цвете двухмерного изображения могут быть 12-мегапиксельными, то карта несоответствий — только половина мегапикселя. Если вы попытаетесь использовать портретный режим, то в конце концов получите заблюренные границы, которые разрушат весь эффект. Вы можете добавить резкости на границах, что увеличит контрастность в 2D-изображении, но этого недостаточно для тонких деталей, например, волос.
Метод захвата глубины №2: датчик TrueDepth
Вместе с iPhone X Apple представила камеру TrueDepth — вместо измерения несоответствия, он использует инфракрасный свет для проекции более 30 000 точек. Однако данные глубины не полностью основаны на инфракрасных точках. Сядьте в чёрно-белую комнату и посмотрите как будет себя вести TrueDepth:
Очевидно, что система использует цветовые данные как часть своих вычислений.
Недостатки TrueDepth
Одним из недостатков TrueDepth является чувствительность к инфракрасным помехам. Это означает, что яркий солнечный свет влияет на качество.
Почему бы не добавить датчик TrueDepth на задней панели XR? Я думаю, что на это повлияли три простые причины: стоимость, диапазон и сложность.
Люди готовы платить отдельно за Face ID, для чего требуется ИК-датчик, или за телеобъектив, но они не готовы платить дополнительно за усовершенствование эффекта глубины фотографий.
Добавьте к этому ещё то, что инфракрасный датчик работает намного хуже, воспринимая глубину на больших расстояниях — чем дальше отходят люди, тем сложнее становится карта глубины. Теперь вы можете понять, почему Apple довольно нерешительно использует TrueDepth для задней камеры.
Метод захвата глубины №3: Focus Pixels и PEM
На презентации iPhone XR, Apple заявила:
«Наша команда смогла скомбинировать аппаратное и программное обеспечение для создания карты сегментации глубины с использованием пикселей фокусировки и программного обеспечения нейронной сети, чтобы вы могли создавать портретные фотоснимки на совершенно новом iPhone XR».
Отдел по маркетингу Apple придумал термин «Focus Pixels». Реальный же термин — Dual Pixel Auto Focus (DPAF), это обычное явление для полноценных камер и смартфонов сегодня, которое впервые появилось на iPhone вместе с iPhone 6.
Технология DPAF была изобретена для очень быстрой фокусировки, что важно при съёмке видео с движущимися объектами. Однако, разработана она таким образом, что позволяет использовать её возможности и для вычисления несоответствий, в процессе которого строится карта глубины.
Использование захвата глубины — довольно новое явление. Google Pixel 2 был первым телефоном с захватом глубины на единственной камере с использованием технологии DPAF. Подробнее об этом написано тут.
В системе DPAF каждый пиксель на датчике состоит из двух субпикселе, каждый с их собственной крошечной линзой. Аппаратное обеспечение определяет фокус, похожий на дальномерную камеру; если два субпикселя идентичны — значит пиксель находится в фокусе. Представьте диаграмму диспропорций, которую мы показали ранее, но в абсолютно миниатюрном масштабе.
Если вы захватили два отдельных изображения, по одному для каждого набора субпикселей, то получите два изображения на расстоянии одного миллиметра друг от друга. Оказывается, что достаточно простого несоответствия, чтобы получить очень неровную и грубую информацию о глубине.
Как я уже упоминал, эта технология также используется Google, и команда Pixel должна была выполнить кучу работы, чтобы сделать её удобной для использования:
«Еще одна деталь: поскольку левая и правая стороны, захваченные камерой Pixel 2, находятся так близко друг к другу, информация о глубине, которую мы получаем, неточна, особенно при слабом освещении, из-за высокого шума в изображениях. Чтобы уменьшить этот шум и улучшить точность глубины, мы фиксируем всплеск изображений с левой и правой сторон, затем выравниваем и усредняем их перед применением нашего стерео-алгоритма».
Разрешение карты глубины на iPhone XR составляет приблизительно 0,12 мегапикселей: это около 1/4 разрешения системы с двумя камерами. Это действительно мало, и именно поэтому лучшие портреты, получающиеся у iPhone XR, во многом связаны на использованием нейронной сети.
Portrait Effects Matte
В этом году Apple представила важную функцию, которая значительно улучшает качество портретных фотографий, и они назвали её «Portrait Effects Matte» или PEM. Она использует машинное обучение для создания очень детального матового покрытия, которое идеально подходит для добавления фоновых эффектов. На данный момент эта модель обучения позволяет найти только людей.
С помощью РЕМ, Apple скармливает цветное 2D изображение и трёхмерную карту глубины системе машинного обучения, а ПО предугадывает как должно выглядеть итоговое изображение в высоком разрешении. Оно определяет какие части изображения являются очертаниями людей, и даже уделяет дополнительное внимание к отдельным волосам, очкам или другим частям, которые часто пропадают, когда применяется эффект портрета.
Фотографии в портретном режиме всегда выглядели неплохо. Однако PEM заставляет их выглядеть великолепно. Это достаточно мощный эффект, который позволяет делать исходные данные с очень низким разрешением у iPhone XR действительно хорошими.
Вот почему приложение камеры на iPhone XR не активирует портретный режим, пока не «увидит» человека. В iOS 12.1, PEM умеет распознавать только людей, но всё может измениться в будущем при обновлении программного обеспечения.
Без PEM данные глубины немного грубые. Однако, совместно с PEM, XR создаёт отличные фотографии.
Так делает ли iPhone XR лучшие портретные фотографии?
И да, и нет. Кажется, iPhone XR имеет два преимущества по сравнению с iPhone XS: он может делать более широкоугольные фотографии с глубиной, а благодаря тому, что широкоугольный объектив собирает больше света, фотографии получаются лучше при слабом освещении и имеют меньше шума.
Помните, как мы говорили, что портретный режим XR доступен только на портретах человека? Когда дело доходит до лиц, вы ни за что не захотите фотографировать человека близко с широкоугольным объективом, поскольку он искажает лицо далеко не в лучшую сторону. На фотографиях выше это отлично показано (у iPhone XR фокусное расстояние эквивалентно 26 мм)
Это означает, что портреты на iPhone XR лучше всего делать до талии. Если вы захотите снимок головы, как на iPhone XS, вам придется кадрировать фотографию, что приведет к потере разрешения. Широкоугольный объектив не всегда является плюсом.
Но при этом объектив XR позволяет захватывать значительно больше света, чем объектив Xs. Это означает, что вы увидите меньше шумоподавления (да, это тот самый несуществующий «фильтр красоты», который, по мнению людей, они видели) и, как правило, получите более подробную информацию. Кроме того, сенсор камеры за широкоугольными объективами XR и XS примерно на 30% больше, чем тот, который находится за телеобъективом, что позволяет ему собирать ещё больше света и деталей.
Итак, да: иногда iPhone XR будет делать более красивые портреты, чем любой другой iPhone, включая XS и XS Max.
Но в остальном XS, вероятно, даст лучший результат. Более точная и чётка карта глубины в сочетании с фокусным расстоянием, которое лучше подходит для портретов, означает, что люди будут выглядеть лучше, даже если изображение окажется немного темнее. А также он может размывать фон практически у всего, а не только у людей.
Что касается того, почему Apple не позволяет вам использовать портретный режим на iPhone XS с его точно такой же широкоугольной камерой, у нас есть некоторые идеи.
Скорее всего, Apple столкнулась с серьёзной интерфейсной головоломкой, в попытках объяснить людям, почему вдруг одна камера может снимать не только людей, а вторая — не может. Однако добавление в PEM-машину обучения большего количества объектов может свидетельствовать о том, что в скором будущем мы всё же получим портреты на широкоугольной камере iPhone с двойными модулями.
Halide 1.11 приносит портретные эффекты iPhone XR
Нам приятно «разблокировать» мощные функции телефона, к которым у людей раньше не было доступа. Теперь мы снова делаем это: Halide 1.11 позволит вам снимать портретные фотографии практически любых объектов, а не только людей.
Мы делаем это захватывая карту несоответствия пикселей фокусировки и прогоняя изображение через программное размытие. Когда вы откроете Halide на iPhone XR, просто нажмите «Глубина», чтобы включить захват глубины. Любая фотография, которую вы сделаете, будет иметь карту глубины, и если есть достаточные данные для определения переднего плана и фона, изображение станет красиво отображать боке, точно так же, как кадры на iPhone XS.
Вы заметите, что включение режима захвата глубины не позволяет в реальном времени просматривать эффект размытия портрета или даже автоматически обнаруживать людей. К сожалению, iPhone XR не позволяет это. Вам придется посмотреть на снимок чуть позже после обработки, как и в Google Pixel.
Это идеально? Нет. Как мы уже упоминали, данные глубины XR ниже, чем у iPhone с двумя камерами. Но во многих ситуациях этого вполне достаточно, чтобы получить отличные снимки.
Хотите попробовать? Приложение Halide 1.11 было отправлено модераторам Apple и выйдет после того, как пройдет одобрение App Store (прим.ред.: уже прошло!).
Наконец-то iPhone XR потерял свой маленький недостаток: неспособность сделать великолепную фотографию вашего прекрасного кота, собаки или чего угодно ещё. Надеемся, вам понравится!
По материалам Halide