@rickster Данные о глубине, возвращаемые фронтальной камерой, можно ли вернуть более 8-битных данных на пиксель?

вел некоторый поиск и нашел различные примеры, документацию по iPhone X Face ID и то, как ее можно использовать для различных вещей, таких как аутентификация, анимированные эмодзи.

Хотите проверить, есть ли API / SDK, чтобы получить необработанную карту глубины от датчика iPhone X до приложения?

Насколько я понимаю, расчет глубины производится на основе прогнозируемой модели. Это может быть использовано для получения профиля глубины любого объекта перед датчиком. (Может зависеть от текстуры объекта.)

Ответы на вопрос(1)

на момент написания статьи). С этим,builtInTrueDepthCamera становится одним изтипы камер вы используете для выбора устройства захвата:

let device = AVCaptureDevice.default(.builtInTrueDepthCamera, for: .video, position: .front)

Затем вы можете перейти к созданиюAVCaptureSession с устройством камеры TrueDepth и может использовать этот сеанс захвата для захвата информации о глубине, почти как с задней двойной камерой на iPhone 7 Plus и 8 Plus:

Включите захват глубины для фотографий сAVCapturePhotoOutput.isDepthDataDeliveryEnabledзатем сделайте снимокAVCapturePhotoSettings.isDepthDataDeliveryEnabled, Вы можете прочитатьdepthData изAVCapturePhoto объект, который вы получите после захвата, или включитеembedsDepthDataInPhoto если вы просто хотите выстрелить и забыть (и прочитать данные из файла захваченного изображения позже).

Получите живой поток карт глубины сAVCaptureDepthDataOutput, Это похоже на вывод видео данных; вместо записи непосредственно в файл фильма, он дает вашему делегату временную последовательность буферов изображения (или, в данном случае, глубины). Если вы также снимаете видео одновременно,AVCaptureDataOutputSynchronizer может быть полезно, чтобы убедиться, что вы получаете согласованные карты глубины и цветные рамки вместе.

Как AppleСовместимость устройства Примечания к документации, вам необходимо выбратьbuiltInTrueDepthCamera устройство, чтобы получить любой из этих вариантов захвата глубины. Если вы выберите фронтальнуюbuiltInWideAngleCameraСтановится, как и любая другая селфи камера, снимая только фото и видео.

Просто чтобы подчеркнуть: с точки зрения API, глубина захвата с фронтальной камерой TrueDepth на iPhone X очень похожа на съемку глубины с двойными камерами на iPhone 7 Plus и 8 Plus. Так что, если вы хотите глубоко погрузиться в то, как работает весь этот бизнес по улавливанию глубины, и что вы можете сделать с полученной информацией о глубине, посмотритеWWDC17, сессия 507: захват глубины в фотографии iPhone говорить.

 Vickram08 февр. 2018 г., 02:41
@rickster Данные о глубине, возвращаемые фронтальной камерой, можно ли вернуть более 8-битных данных на пиксель?
 stranger17 нояб. 2017 г., 21:21
Я настроил свой AVCaptureDevice, как вы указываете, и когда я пытаюсь включить доставку данных глубины на моем объекте AVCapturePhotoOutput, я получаю сообщение об ошибке "*** Завершение приложения из-за необработанного исключения" NSInvalidArgumentException ", причина: '*** - [AVCapturePhotoOutput setDepthDataDeliveryEnabled:] Доставка данных глубины не поддерживается в текущей конфигурации '". Вы знаете, что может быть причиной этого? Прошло много времени с тех пор, как я разработал для iOS, поэтому возможно / вероятно, что я делаю что-то очевидное.

Ваш ответ на вопрос