Azure Kinect DK 深度カメラ
このページでは、Azure Kinect DK の深度カメラを使用する方法について説明します。 深度カメラは、2 つのカメラのうちの 2 つ目です。 前のセクションで説明されているように、もう一方のカメラは RGB カメラです。
運用原則
Azure Kinect DK 深度カメラには、AMCW (Amplitude Modulated Continuous Wave) ToF (Time-of-Flight) 原則が実装されています。 このカメラは、近赤外 (NIR) スペクトルの変調された照明をシーンにキャストします。 その後、光がカメラからシーンに移動し、そこから戻るためにかかる時間の間接的な測定値を記録します。
これらの測定値は、深度マップを生成するために処理されます。 深度マップは、画像のすべてのピクセルの Z 座標値 (ミリメートルの単位で測定されます) のセットです。
深度マップと共に、いわゆるクリーン IR 測定値も取得します。 クリーン IR 測定値のピクセルの値は、シーンから返された光の量に比例しています。 この画像は、通常の IR 画像のようになります。 次の図は、深度マップ (左) とそれに対応するクリーン IR 画像 (右) の例を示しています。
主要な機能
深度カメラの技術的特性は次のとおりです。
- より高い変調周波数と深度精度を可能にする、高度なピクセル テクノロジを備えた 1 メガピクセルの ToF イメージング チップ。
- 近視野および広視野 (FoV) 深度モードを可能にする 2 つの NIR レーザー ダイオード。
- 世界最小の ToF ピクセル (3.5μm × 3.5μm)。
- 近いオブジェクトと遠いオブジェクトをクリーンにキャプチャできる大きなダイナミック レンジを可能にする、ピクセルごとの自動利得選択。
- 太陽の光でのパフォーマンス向上を可能にするグローバル シャッター。
- チップ、レーザー、電源装置のバリエーションが存在する場合であっても堅牢な精度を可能にする複数フェーズの深度計算方法。
- 低い系統および確率的誤差。
深度カメラは、生の変調された IR 画像をホスト PC に送信します。 PC では、GPU で高速化された深度エンジン ソフトウェアが生の信号を深度マップに変換します。 深度カメラは、いくつかのモードをサポートしています。 狭視野 (FoV) モードは、X 次元と Y 次元の範囲は小さいが、Z 次元の範囲が大きいシーンに最適です。 シーンの X と Y の範囲は大きいが、Z の範囲が小さい場合は、広 FoV モードの方が適しています。
深度カメラは、対応するビン分割解除モードと比較して Z の範囲を拡張する 2x2 ビン分割モードをサポートしています。 ビン分割は、画像の解像度の低下を犠牲にして行われます。 15 フレーム/秒 (fps) の最大フレーム レートで実行される 1 メガピクセル (MP) モードを除き、すべてのモードを最大 30 fps で実行できます。 また、深度カメラにはパッシブ IR モードも用意されています。 このモードでは、カメラの発光体がアクティブではなく、周囲の照明のみが観察されます。
カメラのパフォーマンス
カメラのパフォーマンスは、系統および確率的誤差として測定されます。
系統誤差
系統誤差は、ノイズ除去の後に測定された深度と正しい (グラウンド トゥルース) 深度の違いとして定義されます。 深度ノイズをできる限り除去するために、静的なシーンの多数のフレームに対して一時的な平均を計算します。 より正確には、系統誤差は次のように定義されます。
ここで、dt は時刻 t での測定深度を示し、N は平均化手順で使用されるフレームの数であり、dgt はグラウンド トゥルース深度です。
深度カメラの系統誤差の仕様にマルチパス干渉 (MPI) は含まれていません。 MPI は、1 つのセンサー ピクセルが複数のオブジェクトによって反射された光を統合する場合に発生します。 MPI は、深度カメラでは、より高い変調周波数を深度の無効化 (後で説明します) と共に使用することによって部分的に軽減されます。
確率的誤差
カメラを移動することなく同じオブジェクトの 100 の画像を撮影すると仮定しましょう。 このオブジェクトの深度は、100 の画像のそれぞれでわずかに異なります。 この違いは、ショット ノイズによって発生します。 ショット ノイズは、センサーにぶつかる光子の数が、時間の経過に伴うランダムな要因によって変動する現象です。 静的なシーンでのこの確率的誤差を、時間の経過に伴う計算された深度の標準偏差として次のように定義します。
ここで、N は深度測定値の数を示し、dt は時刻 t での深度測定値を表し、d はすべての深度測定値 dt に対して計算された平均値を示します。
無効化
特定の状況では、深度カメラによって、一部のピクセルの正しい値が提供されないことがあります。 これらの状況では、深度ピクセルが無効にされます。 無効なピクセルは、深度値が 0 に等しいことにより示されます。 深度エンジンが正しい値を生成できない原因には次のものがあります。
- アクティブな IR 照明マスクの外側
- 飽和した IR 信号
- 低い IR 信号
- フィルター外れ値
- マルチパス干渉
照明マスク
ピクセルは、アクティブな IR 照明マスクの外側にある場合に無効にされます。 このようなピクセルの信号を使用して深度を計算することはお勧めしません。 次の図は、照明マスクによる無効化の例を示しています。 無効にされたピクセルは、広 FoV モード (左) では円、狭 FoV モード (右) では六角形の外側にある黒色のピクセルです。
信号強度
ピクセルは、飽和した IR 信号を含んでいる場合に無効にされます。 ピクセルが飽和すると、フェーズ情報が失われます。 次の図は、飽和した IR 信号による無効化の例を示しています。 深度画像と IR 画像の両方にあるピクセルの例を指している矢印を参照してください。
無効化はまた、IR 信号が深度を生成するほど十分に強くない場合にも発生することがあります。 次の図は、低い IR 信号による無効化の例を示しています。 深度画像と IR 画像の両方にあるピクセルの例を指している矢印を参照してください。
あいまいな深度
ピクセルはまた、シーン内の複数のオブジェクトから信号を受信した場合にも無効にされることがあります。 この種類の無効化を確認できる一般的なケースは隅にあります。 シーン ジオメトリのため、カメラからの IR 光は 1 つの壁に反射してから、もう一方の壁に反射します。 この反射された光が、そのピクセルの測定された深度のあいまいさの原因になります。 深度アルゴリズムのフィルターがこれらのあいまいな信号を検出し、そのピクセルを無効にします。
次の図は、マルチパス検出による無効化の例を示しています。 また、あるカメラ ビュー (上の行) から無効にされた同じ表面が、どのようにして別のカメラ ビュー (下の行) から再び表示される可能性があるかも確認できます。 この図は、ある観点から無効にされた表面が、別の観点から表示される可能性があることを示しています。
マルチパスの別の一般的なケースとして、フォアグラウンドとバックグラウンドからの混在した信号を含むピクセルがあります (オブジェクト エッジの周辺など)。 動きが速いときは、エッジの周辺により多くの無効にされたピクセルが表示される可能性があります。 追加の無効にされたピクセルは、生の深度キャプチャの露出間隔が原因です。