uDepth : Pixel 4 でのリアルタイム 3Dデプスセンシング
以下の記事を参考にして書いてます。
・uDepth: Real-time 3D Depth Sensing on the Pixel 4
1. はじめに
環境の3D情報を取得する「デプスセンシング」は、開発者とユーザーの両方にとって貴重なツールです。「デプスセンシング」は昨今の技術革新により、「ポートレートモード」や「AR」のようなアプリケーションから「透明物体検出」に至るまで、非常に活発な研究分野となっています。典型的な「RGBベースのステレオデプス検出」は、計算コストが高く、ローテクスチャでは問題が発生し、極端に暗い場所では完全に機能しません。
「Pixel 4」の「フェイスアンロック」は、高速かつ暗闇で機能する必要があるため、別のアプローチが必要でした。そのため「Pixel 4」には「uDepth」と呼ばれるデプスセンサーが含まれています。この技術は、認証システムがユーザーを識別し、なりすまし攻撃から保護するのに役立ちます。また、写真レタッチ、環境のデプスベースのセグメンテーション、背景のぼかし、ポートレートのエフェクト、3D写真など、多くの斬新な機能もサポートしています。
最近では「Pixel Nural Core」、2つのIRカメラ、IRパターンプロジェクタを使用して、30Hzで時間同期されたデプスフレーム(DEPTH16)を提供するために、Camera2のAPIとして「uDepth」へのアクセスを提供しています。GoogleカメラアプリはこのAPIを利用して、「Pixel 4」で撮影した自撮り写真に改善されたデプス機能を提供します。
この記事では、「uDepth」がどのように機能するのかと、基礎となるアルゴリズムについて説明します。
2. ステレオ デプスセンシングの概要
すべてのステレオカメラシステムは、視差を使用して奥行きを再構築します。この効果を観察するには、オブジェクトを見て、片目を閉じてから、閉じている目を切り替えます。オブジェクトの見かけ上の位置がシフトし、近くにあるオブジェクトがより多く移動するように見えます。「uDepth」は、各ピクセルの視差を計算で推定する高密度ローカルステレオマッチングテクニックのひとつです。これらの手法は、1台目のカメラの画像の各ピクセルの周囲の領域を評価し、2台目のカメラの画像で同様の領域を見つけようとします。適切に調整されている場合、生成される再構成はメトリックであり、実際の物理的な距離を表します。
テクスチャのない領域に対処し、光量の少ない状況に対処するために、ステレオIRカメラで検出されたシーンにIRパターンを投影する「アクティブステレオ」設定を利用します。このアプローチにより、ローテクスチャ領域の特定が容易になり、結果が改善され、システムの計算要件が軽減されます。
3. uDepthの特徴
ステレオセンシングシステムは非常に計算量が多く、30Hzで動作するセンサが高品質を維持しながら低消費電力であることが重要です。
その1つは、互いに似ている領域のペアがあると、それらの領域のほとんどの対応する部分集合も似ているということです。たとえば、2つの8x8ピクセルのパッチが似ているとすると、ペアの各メンバーの左上の4x4のサブ領域も似ている可能性が高くなります。このことが「uDepth」パイプラインの初期化手順に反映されます。各画像の重なりのないタイルを比較し、最も類似したものを選択することで、デプス提案のピラミッドが構築されます。このプロセスは、1x1タイルから始まり、初期の低解像度のデプスマップが生成されるまでサポートを階層的に蓄積します。
初期化後、「Pixel 4」上の規則的なグリッドパターンイルミネータをサポートするために、ニューラルデプスリファイン面とのための新しい技術を適用します。典型的なアクティブステレオシステムでは、シーン内のマッチを識別するのに役立つ擬似ランダムグリッドパターンを投影しますが、「uDepth」は繰り返しグリッドパターンもサポートすることができます。このようなパターンの繰り返し構造は、ステレオペア間で似たような領域を生成し、不正確なマッチを引き起こす可能性があります。そこで、軽量(75kパラメータ)の畳み込みアーキテクチャを使用してこの問題を軽減し、IRの明るさと近隣情報を使用して不正確なマッチを調整しています。
ニューラルデプスリファイン面とに続いて、良好なデプス推定値が近隣のタイルから反復的に伝搬されます。これとそれに続くパイプラインのステップは、「uDepth」の成功の鍵となるもう一つの洞察を活用しています。これにより、シーンをカバーする平面的なタイルを見つけて、後からタイル内の各ピクセルの個々の深さを絞り込むことができ、計算負荷を大幅に軽減することができます。
最後に、隣接する平面仮説の中からベストマッチのものが選択され、良いマッチが見つからなかった場合には、サブピクセルの絞り込みと無効化が行われます。
スマホが激しい落下を経験すると、ステレオカメラの工場出荷時のキャリブレーションが実際のカメラの位置から乖離してしまうことがあります。実際の使用時に高品質の結果を保証するために、「uDepth」はセルフキャリブレーションを採用しています。スコアリングルーチンは、誤りの兆候がないかどうかすべての深度画像を評価し、デバイスの状態に対する信頼性を高めます。誤りが検出されると、現在のシーンからキャリブレーションパラメータが再生成されます。これは、特徴の検出と対応、サブピクセルの精密化(ドットプロファイルを利用)、バンドルの調整からなるパイプラインに従います。
詳細については、「uDepth」のベースとなっている Slanted O(1) Stereo を参照してください。
4. コンピュテーショナルフォトグラフィのためのデプス
「uDepth」からの生データは、「フェイスアンロック」の基本的な要件である正確でメトリックなものになるように設計されています。ポートレートモードや3D写真などのコンピュテーショナルフォトグラフィのアプリには、まったく異なるニーズがあります。これらのユースケースでは、ビデオフレームレートを達成することは重要ではありませんが、デプスはカラーカメラの視野全体で滑らかで、エッジを揃え、完全なものでなければなりません。
これを実現するために、「uDepth」の生データを強化し、完全で密度の高い3Dデプスマップを推論するエンドツーエンドの深層学習アーキテクチャを訓練しました。RGB画像、人物のセグメンテーション、生のデプスの組み合わせを使用し、ドロップアウトスキームを使用して、各入力の情報を強制的に使用しています。
地上の真実を得るために、331個のカスタムカラーLEDライト、高解像度カメラのアレイ、カスタム高解像度深度センサーのセットを装備したジオデシック球体を使用して、人物のほぼ写実的なモデルを生成することができる容積キャプチャシステムを活用しました。セットアップに「Pixel 4」を追加し、残りのハードウェア(ライトとカメラ)と同期させました。生成されたトレーニングデータは、実画像と「Pixel 4」のカメラ視点からの合成レンダリングの組み合わせで構成されています。
5. すべてをまとめる
これらのコンポーネントをすべて配置することで、「uDepth」は、30Hzのデプスストリームと、写真撮影用の滑らかでポスト処理されたデプスマップの両方を生成します。当社のシステムが生成する滑らかで密度の高いピクセル単位のデプスは、「Social Media Depth」を有効にしたすべての「Pixel 4」のセルフィーで利用できます。
6. デモアプリ
最後に、「uDepth」からリアルタイムなポイントクラウドを可視化するデモアプリをご紹介します。こちらからダウンロードしてください(デモと研究のみを目的としたもので、商用利用を目的としたものではありません)。このデモアプリは、「Pixel 4」から3Dポイントクラウドを可視化します。デプスマップは時間同期されており、RGB画像と同じ座標系で表示されるため、以下の可視化例のように、3Dシーンのテクスチャ表示が可能です。
この記事が気に入ったらサポートをしてみませんか?