Датчик глубины в телефоне что это
В последнее время ToF-камеры стали неотъемлемой составляющей набора камер современного флагманского смартфона. Но как они работают, зачем вообще нужны и где их можно использовать?
“Они есть, ну и пусть”, — скажет большинство пользователей. Дело в том, что о ToF-датчиках публикуется очень мало информации. Разве что мои коллеги-журналисты, и то не все, да еще профильные эксперты могут внятно объяснить потребность в нем. Давайте внесем некую ясность в данном вопросе. Возможно, часть текста будет содержать много терминов, но я попробую максимально просто объяснить, что из себя представляет ToF-камера, куда можно применить ее возможности и как увидеть ее в действии. Ну что же, поехали!
Что такое камера ToF?
Помните эти фильмы о подводных лодках во время Второй мировой войны? Там фигурировало сонарное оборудование, используемое для обнаружения суден противника. Устройство посылает звуковой «пинг» в водное пространство и ждет отражения сигнала. В зависимости от времени, которое требовалось, чтобы звуковая волна вернулась назад, специалист пытался определить местоположение вражеской подводной лодки.
Точно так же, как сонар, камера ToF измеряет время, необходимое для того, чтобы свет отразился от объекта. Затем камера использует данные задержки для определения расстояния. Таким образом, датчик ToF создает трехмерную карту мира.
Поэтому камеры ToF также иногда называют «камерой глубины». ToF-камера (Time of Flight – «время полета» с англ.) представляет собой сенсор, который способен излучать некий свет в инфракрасном спектре и затем фиксировать скорость его отражения от объекта. Сам датчик состоит из двух частей: первая — это диод, излучающий инфракрасный свет, а вторая — это специальная светочувствительная матрица.
Камера измеряет время, после которого отраженный от объекта свет возвращается к нему. На основании расчетов, выполненных с точностью до наносекунды, устройство способно не только точно оценить расстояние отдельных объектов от датчика, но и определить их форму. Правда, очень похоже на сонар гидролокатора. Только в данном случае мы запускаем к объекту свет вместо звука.
Датчики, работающие по аналогичному принципу, также используются в автономных автомобилях или даже космических зондах, построенных NASA. Прогрессирующая миниатюризация и относительно низкие производственные затраты означают, что эта технология может появиться в вашем кармане уже сегодня. Дело в том, что ToF- датчики уже есть во многих топовых смартфонах. Вот некоторые мобильные устройства, укомплектованные ToF-камерами:
Уверен, что с каждым годом этот список будет только расширяться, ведь потенциал данного датчика просто огромен. Возможно, вскоре Google в своих Pixel тоже установит такую камеру. Есть также надежда, что и Apple обратит внимание на датчик ToF и внесет свой вклад в большую популяризацию этой технологии, а также в полной мере использует его возможности. Не зря же подобный датчик появился в новом iPad Pro.
Ну что же, с теорией понятно, давайте теперь более подробно рассмотрим, на что способна ToF-камера на практике. Нужно понимать, что просто так взять и включить данный сенсор нельзя, но использовать его в некоторых приложениях, даже при съемке камерой все же можно.
Как можно применять камеру ToF?
Измеряем расстояние
На некоторых смартфонах Samsung (включая Note10+ , S20+ и S20 Ultra ) и Huawei (включая P30 Pro, Mate 30 Pro, Huawei P40 Pro ) вы можете установить приложение для измерения расстояния, которое называется Measure.
Сегодня этот загадочный датчик глубины встречается на подавляющем большинстве устройств, ведь он так важен для портретного режима с красивым размытием фона (эффект боке, живой фокус, режим диафрагмы и пр.).
А может и не важен вовсе? Возможно, вы встречали на просторах интернета разоблачения, в которых люди полностью заклеивали сенсор глубины, а смартфон продолжал размывать фон на портретных снимках, как ни в чем не бывало. Получается, телефоны умеют определять глубину сцены и без сенсора глубины? Зачем же он тогда нужен?
Бегло просмотрев несколько популярных статей и роликов в интернете, я с удивлением обнаружил, что многие люди думают, будто этот сенсор посылает световые импульсы и определяет время задержки отраженного луча. То есть, как-то активно участвует в построении карты глубины.
А вот, к примеру, на сайте Popular Science (Популярная наука) приводится следующее объяснение (в моем вольном переводе):
Зачем вообще нужен какой-то сенсор глубины?
Например, благодаря умению построить карту глубины, телефоны научились делать красивые фотографии с размытием фона. Да, часто на таких снимках заметна искусственная обработка, но иногда результат практически не отличим от работы зеркального фотоаппарата:
Помимо этого, на смартфоны постепенно приходит дополненная реальность (AR), позволяющая определять размеры объектов, расстояние между предметами и делать много всего удивительного (примерять вещи и различные аксессуары, смотреть, как будет выглядеть мебель в интерьере своего дома и многое другое).
Многие производители пытаются придумать новые способы управления смартфоном при помощи бесконтактных жестов, а для этого также нужно хорошо понимать положение рук в пространстве.
Но как смартфоны определяют глубину и какие датчики для этого используются?
Три кита
Открою небольшую тайну. В некоторых смартфонах в качестве всем нам знакомого датчика приближения (тот, который блокирует экран во время входящего звонка) используется самая настоящая ToF-камера с лазерным излучателем и специальным высокочувствительным сенсором, измеряющим время полета света и определяющим точное расстояние до объекта. Работает он, естественно, гораздо точнее и качественнее обычных инфракрасных датчиков, встречающихся на подавляющем большинстве устройств.
Так вот, возвращаясь к нашей теме, горькая правда заключается в том, что для первого метода определения глубины сцены (стереозрение) не нужны дополнительные датчики.
Возьмем, к примеру, смартфон Redmi Note 9 Pro, у которого сзади размещено 4 камеры:
Здесь уже есть основная и ультраширокоугольная камеры (две верхние). И этого более, чем достаточно для определения глубины сцены по принципу стерео-зрения. Но компания пытается обмануть покупателя, показав больше камер, чем у конкурентов. И таких примеров масса: Samsung Galaxy A51, Xiaomi Poco X3, OnePlus Nord, Huawei Y8p и мн. др.
Производитель за пару баксов может легко набросать пару лишних камер на корпус и затем использовать это количество в качестве конкурентного преимущества, внушая покупателям, что смартфон с пятью камерами снимает ну почти как зеркалка.
Еще раз повторю ключевую мысль прежде, чем мы продолжим: все современные смартфоны, за исключением буквально 10-15 флагманских моделей, определяют глубину сцены при помощи двух обыкновенных камер и метода под названием стереозрение. Да и те 10-15 флагманов также используют в основном стереозрение, а ToF-сенсор служит лишь как дополнительный инструмент.
Многие аппараты (Samsung Galaxy S20/Note20, Huawei P40, iPhone 11 Pro и прочие), легко обходятся основными камерами (широкоугольной, ультраширокоугольной или телеобъективом). Другие же устанавливают дополнительную камеру за три копейки исключительно в маркетинговых целях без малейшей технической необходимости.
Как смартфон определяет глубину, используя стереозрение и 2 камеры?
Наш мозг использует множество техник для определения глубины и объема сцены, например:
- Перекрытие. Когда один объект перекрывает другой, мы понимаем, что первый находится ближе к нам, чем второй.
- Линейная перспектива. Например, когда рельсы сужаются, мы понимаем, что они уходят вдаль, в глубину.
- Фокус. Если какой-то объект не в фокусе, мы понимаем, что он находится дальше того объекта, который в фокусе.
- Тени. Тени помогают нам почувствовать объем даже на плоской картинке.
- Относительный размер. Если мы видим человека размером с дом, то понимаем, что дом находится гораздо дальше человека, так как знаем относительные размеры разных объектов.
Можно продолжать этот список, но главная причина, по которой мы ощущаем объем, заключается в другом.
Это хорошо видно на следующей анимации, где поочередно меняются картинки, которые увидел левый и правый глаз:
Обратите внимание, как камни в левом нижнем углу смещаются вправо (значит, находятся ближе), в то время, как деревья в правом верхнем углу уходят влево (находятся дальше). Получается, даже меняя поочередно две картинки, мы уже можем ощутить объем.
Вот еще одна наглядная анимация:
Вроде бы всё просто и понятно. Но как же это делает смартфон? Как конкретно он строит карту глубины всей сцены, используя две камеры?
Чтобы разобраться с этим, давайте рассмотрим простой пример.
Итак, у нас есть какая-то точка в пространстве и смартфон с двумя камерами. Свет от точки проходит через объектив каждой камеры и попадает на матрицу. Мы получили два плоских снимка этой точки и не можем определить расстояние до нее:
Нам нужно узнать расстояние до красной точки. Мы знаем только расстояние между двумя камерами (производитель разместил их на определенном расстоянии друг от друга). Также нам известно фокусное расстояние камер, то есть, расстояние от центра линзы до матрицы, на которую она проецирует изображение:
На первый взгляд кажется, что сделать это невозможно и нам ничего не дает знание расстояния между камерами.
К слову, если мы используем камеры с разными фокусными расстояниями (например широкоугольную и телеобъектив), тогда нужно просто сделать кроп на снимке с более широким углом (вырезать часть кадра) и дальше уже работать, как с идентичным фокусным расстоянием:
Итак, давайте посмотрим, как свет от красной точки P упадет на наши матрицы и превратится в точки на снимках:
И как все эти рисунки помогут нам найти расстояние Z (от камеры до точки в пространстве)?
Думаю, вы уже давно заметили, что все эти точки образовывают треугольники. В частности, здесь можно увидеть два подобных треугольника. Один проходит через наши красные точки на двух снимках и точку в пространстве (зеленый треугольник слева), а другой проходит через центры объективов и точку в пространстве (синий треугольник справа):
Эти треугольники подобны, а значит, их стороны соответственно пропорциональны и все углы соответственно равны. И вот уже из этого подобия мы можем легко определить расстояние от камеры до любой точки в пространстве, то есть, найти величину Z.
Я упущу несложные математические расчеты и просто запишу конечный результат:
Z = F * D/(d1-d2)
Но мой смартфон делает превосходные портреты даже с одной камерой!
Некоторые смартфоны действительно могут определять глубину сцены даже с одной камерой. И делается это при помощи искусственного интеллекта.
Смартфоны также учатся сегментировать фотографии и выделять на снимках людей. Для этого нужно обучить нейронную сеть отличать человека от других объектов.
Но даже в случае с одной камерой, нейросеть берет дополнительную информацию с двух снимков. Двух снимков?! Но откуда же берется второй снимок, если камера всего одна?
Можно сказать, что у нас появляются две камеры (две части одной линзы) с небольшим расстоянием. Да, это крошечное расстояние, но его достаточно, чтобы уже заметить какое-то смещение пикселей.
Вот два примера таких снимков, полученных с двух половин линзы (Dual-Pixel 1 и Dual-Pixel 2) одной камеры:
Как видите, смещение на примере слева более ярко выражено, так как лампочка находится гораздо ближе к камере, нежели человек на втором снимке.
Но некоторые смартфоны умудряются делать портретные режимы даже без двух камер или двух изображений с разных половин одной линзы. Правда, качество такого размытия заметно уступает традиционному стереозрению.
Однако существует и более продвинутая активная технология, когда смартфон изучает сцену при помощи лазера (ToF-сенсоры и лидары). Но об этом я подробно расскажу как-нибудь в другой раз.
Все чаще мы видим в смартфонах так называемые 3D-сенсоры, или сенсоры глубины. Большинство из них также называют ToF-сенсорами аналогично одноименной технологии. По слухам, такой сенсор будет установлен и в новом iPhone (там он называется LiDAR, подробнее мы об этом рассказывали в другом материале). Эти сенсоры довольно дорого стоят, но зачем они нужны понятно не всем. Производители уверяют, что сенсоры позволяют делать лучше фото и портреты или добавляют фишки в дополненную реальность. Но так ли это на самом деле?
Сегодня обсудим, зачем нужны 3D-сенсоры в смартфонах, как это работает, ну и конечно, проведем несколько тестов и проверим заявления производителей.
Что такое 3D сенсор (сенсор глубины)
Для начала, давайте разберемся, а что такое 3D-сенсор? Фотокамеры захватывают проекцию окружающего мира на плоскость. По одной лишь фотографии не понять реальный размер объекта — размером ли он с бутылку или с Пизанскую башню. И расстояние до него тоже не понять.
Для того, чтобы понимать реальные размеры объектов на фото, масштабы съемки, отличать, что ближе к камере, а что дальше, и нужны 3D-сенсоры. Они уже давно и активно применяются в робототехнике, автономном транспорте, играх, медицине и много где еще. Более того, наши глаза — это тоже 3D сенсор. При этом, в отличие от LiDAR’а и ToF-сенсоров в смартфонах, глаза — пассивный 3D-сенсор. То есть не излучающий никакого света, а работающий только на основе поступающего света. Только благодаря этому мы можем хоть как-то перемещаться в пространстве и взаимодействовать с окружающими объектами. Теперь 3D-сенсоры появились и в смартфонах.
Как работает ToF?
LiDAR в iPad’е, а также все 3D-сенсоры в Android-смартфонах — это time-of-flight или сокращенно ToF-сенсоры. Они определяют расстояния до объектов вокруг, напрямую измеряя сколько времени понадобится свету, чтобы долететь от камеры до объекта и вернуться обратно. Это очень похоже на эхо в пещере, оно тоже после отражения от стенок возвращается к нам с запаздыванием. Чтобы пролететь 1 метр свету нужно 3 наносекунды, для 1 см — 30 пикосекунд. Вроде бы все понятно. Но есть проблема.
Это очень маленькие промежутки времени. Как камера может такое замерить? Не будет же она делать миллиард кадров в секунду, а потом их сравнивать? Есть 2 основных подхода для решения этой проблемы: dToF (direct ToF) и iToF (indirect ToF). И чтобы вас заинтриговать еще сильнее: абсолютное большинство Android-смартфонов используют как раз iToF сенсоры, тогда как LiDAR в Apple iPad и скорее всего в грядущих iPhone — это редкий представитель семейства dToF сенсоров. Так чем же они отличаются?
iToF — indirect ToF
Начнем с iToF. В таких сенсорах излучатель отправляет высокочастотный модулированный свет, то есть этот свет постоянно включается и выключается с частотой десятки миллионов раз в секунду. За счет того, что свету нужно время для полета до объекта и обратно, фаза, то есть вот это состояние где-то между включенностью и выключенностью, света, вернувшегося в камеру, немного отличается от фазы света в момент отправки. На сенсоре исходный и отраженный обратно от объекта сигналы накладываются друг на друга, и за счет этого определяется сдвиг фаз, который и позволяет понять расстояние до каждой точки объекта.
dToF — direct ToF
dToF работает немного иначе. В таких сенсорах напрямую измеряется разница во времени между отправкой света и детектированием его отражения на сенсоре. Для этого используются так называемые SPAD: single photon avalanche diodes. Они могут детектировать крайне маленькие импульсы света, фактически даже ловить единичные фотоны. Такие SPAD расположены в каждом пикселе сенсора. А в качестве излучателя в таких сенсорах используются как правило так называемые VCSEL — Vertical Cavity, Surface Emitting Laser. Это лазерный излучатель, подобный тем, что используются в лазерных мышках и много где еще. dToF сенсор в LiDAR разработан совместно с Sony и является первым массовым коммерческим dToF сенсором.
Можно лишь гадать, почему в iPad используется dToF сенсор, но давайте отметим преимущества такого сенсора. Во-первых, в отличие от iToF сенсора излучатель испускает не сплошную стену света, а лишь светит в отдельных направлениях, что позволяет экономить батарейку. Во-вторых, dToF сенсор меньше подвержен ошибкам в измерении глубины из-за так называемой multipath interference. Это типичная проблема iToF сенсоров. Она возникает из-за переотражения света между объектами перед попаданием обратно в сенсор и искажает измерения сенсора.
Как это работает, разобрались, давайте теперь посмотрим, а зачем вообще 3D-сенсоры используются в смартфонах.
Зачем это нужно в смартфонах
1. Безопасность
Первым массовым внедрением 3D-сенсоров в смартфонах мы обязаны Apple и технологии Face ID. Распознавание лиц при использовании трёхмерных данных намного точнее и надежнее классического распознавания лиц по фото. Для Face ID Apple использует технологию структурированной подсветки, на ней мы остановимся подробнее как-нибудь в следующий раз.
Большинство производителей заявляют, что именно более качественный и точный режим дополненной реальности является главной задачей 3D-сенсоров. Более того, это также поддерживается непосредственно компанией Google. Буквально недавно они представили грядущее обновление своей библиотеки дополненной реальности ARCore, позволяющее более реалистично размещать виртуальные объекты в реальности и взаимодействовать с реальными объектами.
Для этой же задачи Apple встроили LiDAR в iPad Pro. Такое можно делать и без 3D-сенсора, но с ним все работает точнее и надежнее, плюс задача становится вычислительно сильно проще и разгружает процессор. 3D-сенсор выводит AR на другой уровень.
3. Улучшение фотографий
Ряд производителей, например, Samsung и HUAWEI заявляют, что 3D-сенсор используется в первую очередь для более качественного размытия фона и более точного автофокуса при съемке видео. Другими словами, он позволяет увеличить качество обычных фото и видео.
4. Прочее
Доступ к данным сенсоров у некоторых смартфонов открыт, поэтому появляется все больше приложений, предлагающих новые применения. Так, например, с помощью внешних приложений 3D-сенсор можно использовать для измерения объектов, трехмерного сканирования и motion tracking'а. Есть даже приложение, позволяющее сделать из своего смартфона прибор ночного видения.
Тесты
С тем как это работает в теории разобрались, давайте теперь посмотрим, как это работает на практике, и есть ли какой-то толк от этих дорогущих 3D-сенсоров в флагманах. Для тестов мы взяли Redmi Note 9S, у него есть ToF-сенсор и мы сделали несколько снимков в портретном режиме, но во втором случае просто закрыли 3D-камеру пальцем. И вот что получилось.
Всё просто — размытие действительно больше и лучше, если ToF работает.
И для частоты эксперимента мы взяли Samsung Galaxy S20 Ultra, который также получил ToF-камеру.
И найдите хотя бы одно отличие?
Что получается? Дело в том, что в зависимости от производителя ToF-камера используется по-разному и в разной степени.
Можно сказать, что часть производителей смартфонов располагает ToF-датчики в своих смартфонов не для маркетинга, чтобы добавить ещё одну камеру, а скорее на всякий случай. А дальше уже алгоритмы решают — использовать эту камеру или нет?
При этом на сегодняшний момент необходимости в LiDAR или ToF-камерах прямо нет. Так что это видимо чуть больше маркетинг.
Особенности и использование сенсора глубины резкости в телефоне.
Датчик глубины резкости — это сенсор, который во время съемки на камеру определяет глубину и дальность расположения объектов относительно смартфона и друг друга. Обычно датчик является отдельным модулем в блоке камер телефона, но в более современных моделях его встраивают в другие типы объективов, например, в широкоугольные или телеобъективы.
Зачем нужен датчик глубины резкости в телефоне?
Единственная функция датчика глубины резкости заключается в преобразовании области, которая попадает в объектив камеры, в трехмерную карту. Предавая объектам размер и форму, датчик автоматически определяет их местоположение. Он понимает, какие предметы находятся ближе, а какие дальше. Таким образом сенсор может правильно определить глубину резкости, чтобы получился качественный снимок.
Отделяя объекты заднего плана от объектов переднего, датчик может создать эффект малой глубины резкости. Это означает, что большая часть изображения будет отнесена к заднему плану и размыта. В фокусе останется только небольшой объект в центре фотографии: человек, предмет на столе и т.д. Этот эффект дает ощущение, будто изображение было сделано на профессиональную камеру или тщательно обработано редактором фотографий.
На практике, датчик глубины резкости часто некачественно выполняет свою работу. У трехмерного объекта в фокусе зачастую размыты границы, потому что его глубина на границе будет отличаться от той, что в самом центре фокусировки. Также размытие может казаться неестественным, так как на смартфонах обычно применяется равномерное размытие, а не усиливающееся в зависимости от расстояния до точки фокуса.
Кроме того, что датчик глубины резкости определяет положение объектов и обеспечивает эффектное размытие на фотографиях, он необходим для следующих функций:
- Размыть задний фон на изображении можно не только во время съемки, но и тогда, когда фотография уже готова. Датчик позволяет выделить объект в фокусе или его часть и наложить на них другой цветовой фильтр или эффект.
- Датчик позволяет размывать задний план во время съемки видеороликов, хотя это может выглядеть недостаточно аккуратно.
- Датчик глубины — сенсор, превращающий изображение в 3D-карту. Его используют для создания трехмерных моделей, измерения расстояния и размеров предметов.
- Датчик может использоваться для сохранения конфиденциальности. Например, во время видеоконференций или звонков пользователь может вручную скрыть задний план от посторонних.
Датчик используется не только для определения глубины резкости во время съемки — его возможности намного шире. Определяя расположение предметов, он поддерживает технологию виртуальной реальности для мобильных пользователей. И если сейчас сенсор работает неидеально, в будущем датчик глубины на телефоне может стать таким же эффективным, как и VR-очки.
Рекомендуем прочитать материал с советами, которые помогут делать красивые снимки на камеру смартфона.
Читайте также: