2017-09-25 18 views
5

私はいくつかの検索を行い、iPhoneの顔IDに関する様々な例、ドキュメンテーション、認証、アニメーション化されたemojisなどのさまざまなものにどのように使用できるかを確認しました。IPhone XのRaw DepthマップSDK

iPhone Xセンサーからアプリに生の奥行きマップを取得するためのAPI/SDKがあるかどうか確認したいのですか?

私の理解から、深さの計算は投影されたパターンに基づいて行われます。これは、センサーの前にあるオブジェクトの深度プロファイルを取得するために使用できます。

答えて

7

Xcode 9.1には少なくともiOS 11.1 SDKが必要です(どちらも本書の時点ではベータ版です)。そして、あなたはTrueDepthカメラ装置でAVCaptureSessionを設定するために行くことができ、深さ情報を取得するためにそのキャプチャセッションを使用することができます

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

:それを使用すると、builtInTrueDepthCameracamera typesあなたがキャプチャデバイスを選択するために使用の一つとなってずっとあなたのようなiPhone 7 Plusと8つのプラスに戻っデュアルカメラをすることができますAVCapturePhotoOutput.isDepthDataDeliveryEnabledで写真のための深さのキャプチャの

  • 電源を入れ、その後、AVCapturePhotoSettings.isDepthDataDeliveryEnabledとのスナップ写真を撮ります。キャプチャ後に受信したAVCapturePhotoオブジェクトからdepthDataを読み取ることができます。また、起動して忘れてしまった場合(後でキャプチャしたイメージファイルからデータを読み込む場合)embedsDepthDataInPhotoをオンにすることができます。

  • AVCaptureDepthDataOutputでデプスマップのライブフィードを取得します。それはビデオデータの出力に似ています。ムービーファイルに直接録画するのではなく、デリゲートにイメージ(またはこの場合は深度)バッファの時間指定されたシーケンスを与えます。同時にビデオをキャプチャしている場合は、AVCaptureDataOutputSynchronizerがコーディネートされた奥行きマップとカラーフレームを一緒に作成するのに便利です。 AppleのDevice Compatibilityドキュメントノートとして

、あなたはこれらの深さのキャプチャオプションのいずれかを取得するbuiltInTrueDepthCameraデバイスを選択する必要があります。正面向きのbuiltInWideAngleCameraを選択すると、他のセルフカメラと同じようになり、写真とビデオのみがキャプチャされます。ただ、強調する


:ビューのAPIの観点から、iPhone Xに前向きTrueDepthカメラで深さをキャプチャすることは多くのiPhone 7 Plusと8つのプラスに後ろ向きのデュアルカメラで深さをキャプチャするようなものです。だから、もしあなたがこの深さのキャプチャビジネスが全般的にどのように働いているのか、キャプチャされた深さ情報を使って何ができるのかについて深く掘り下げたいのであれば、WWDC17 Session 507: Capturing Depth in iPhone Photographyトークをチェックしてください。

+0

AVCaptureDeviceを設定しましたが、AVCapturePhotoOutputオブジェクトで深度データ配信を有効にしようとすると、「キャッチされない例外 'NSInvalidArgumentException'のために***がアプリを終了しています。 ** - [AVCapturePhotoOutput setDepthDataDeliveryEnabled:]現在の設定で深度データの配信がサポートされていません。あなたはこれを引き起こしているかも知っていますか?私がiOS用に開発して以来、長いことがあったので、私は明らかに何かをしている可能性があります。 – stranger

+0

@rickster正面カメラが返す奥行きデータは、1ピクセルあたり8ビット以上のデータを返すことができますか? – Vickram