深度センサー
深度センサーとは、物体との深度(距離)を計測するセンサーのことです。
大雑把にいえば「色」ではなく「距離」を記録するデジタルカメラです。 そのため「深度カメラ」などとも呼ばれます。
ほとんどの深度センサーは普通のデジタルカメラとほぼ同じ手順で制御でき、だいたい32ビット整数のRGBA値の代わりに、32ビット浮動小数点数で距離(メートル単位)が返ってきます。
たとえばiPhoneであればARKit、AndroidであればARCoreという深度センサー向けのAPIが用意されていますが、どちらも普通のカメラ向けのAVFoundationやCamera2と同様の手順で扱えるようになっています。
主な方式
ステレオビジョン
ステレオビジョンは2つのカメラを使用して異なる視点から撮影した画像の視差を利用して深度を計算します。人間の目と同じ原理で動作し、主に広大な大自然などの屋外に適しています。
ストラクチャードライト
ストラクチャードライトは、レーザーやLED光源を使用して物体にパターンを投影し、その歪みを解析して深度を計算します。高精度な3Dモデルの再構築が可能で、主に室内での使用に適しています。
この方式を用いるXbox 360の「Kinect」が安価で登場したことが深度センサーは急激に知名度を上げたきっかけとなりました。その価格も研究用などで300万円していたものが量産効果などにより3万円になりました。
Time of Flight (ToF)
Time of Flight (ToF) は、光が物体に反射して戻るまでの時間を測定し、その時間差から距離を計算します。シンプルな構造で近距離から中距離の測定に適しています。
主に非接触でオンオフできるボタンとして家電製品などでも広く利用されています。
LiDAR (Light Detection and Ranging)
LiDAR (Light Detection and Ranging)は、大量のToFセンサーを使って広範囲を一斉にスキャンするものです。「数は力だ」というシンプルな発想であり、広範囲(高解像度)を高速(並列)にスキャンできますが、当然のようにToFセンサーの数に比例して価格も鰻登りです。
iPhone 12 Pro以降に搭載されている「3つ目のカメラ」として有名です。