パソコン・メモメモ備忘録

気の向くままパソコン関係等で気になることを書き記す。毎日更新を目指す!

Kinect V2 TOF Depth センサーの仕組み

SlideShare 上田 智章氏のスライド資料。今更ながらだが、この資料をみて、ようやく ToF 方式の Depth センサーの原理がわかった。ToF 方式では、光を照射して、物体に反射して返ってくるまでの時間を測って、距離を求める方式(KinectV2 だと、それを画素毎に求めることができる)。この時間をどうやって測っているのかが、個人的には謎だった。50cm~5m(往復で1~10m)を光が通過する短い時間を、更に細かい精度(mm 単位とか)で測定できるセンサがあるのか、と。

実際には、うまく距離(光の到達時間)を、明るさ(受光量)に変換して測定する方法ということらしい。ある一定時間、光を照射して、それをある一定期間だけ受光する。反射して返ってくる距離が長くて、遅れが生じると、受光期間内に照射した一部の光しか到達できなくて(遅刻して門を閉じられてしまう感じ?)、受光量が減ってしまう。

上記資料には、バックグラウンドの環境光分や、対象物によって反射率が違う点もうまくキャンセルして純粋に距離情報のみを取り出す方法についても書かれている。なかなか巧妙である。更に、受光期間のタイミングや長さをずらしていけば、色々な距離の範囲を色々な精度で計測することが出来そうである。

技術的ポイントは、光の照射タイミングと受光期間をかなり短い時間精度でコントロールできるか、という所だろうか。1mm 光が進むのに1/(3*10^11)秒、テラヘルツレベルの時間精度である。センサの受光量の精度は、最近のデジカメを見ていると 12~3 bit はいけそうなので、十分だろうか。

上記資料だと、100フレームの平均で 0.3mm の精度も出せるそうな(3秒あまり動かないこと前提だが)。使いようによっては、かなり凄いことが出来そうではある。職場にも1台あるが、活用していないな。便利なアプリが出ることを期待したい(他人任せ…)。