私は kinect を使用してコンピューター ビジュアル ソフトウェアを実行しています。私はプログラムを設定して、特定の距離を超えるものをすべて除外するようにしています。何かが手になるのに十分な大きさの近くに入ると、私のプログラムはそれを想定します。
ただし、この機能を拡張したいと考えています。現在、手が深度フィルタリングされた領域を離れると、ソフトウェアはその位置を追跡しなくなります。深さに関係なく、認識した後に手をたどるにはどうすればよいですか?
私は kinect を使用してコンピューター ビジュアル ソフトウェアを実行しています。私はプログラムを設定して、特定の距離を超えるものをすべて除外するようにしています。何かが手になるのに十分な大きさの近くに入ると、私のプログラムはそれを想定します。
ただし、この機能を拡張したいと考えています。現在、手が深度フィルタリングされた領域を離れると、ソフトウェアはその位置を追跡しなくなります。深さに関係なく、認識した後に手をたどるにはどうすればよいですか?
私は Kinect コントローラーを使用していませんが、 https ://github.com/dajuric/accord-net-extensions に実装されている高速テンプレート マッチング アルゴリズムを試すことができ ます。
標準のグレースケール画像の代わりに深度画像を使用してください。サンプルが含まれています。
PS このライブラリは、カルマン フィルター処理、粒子フィルター処理、JPDAF、カムシフト、平均シフト (サンプルを含む) などの他の追跡アルゴリズムも提供します。
Mean Shift Tracking を見ることができます: http://www.comp.nus.edu.sg/~cs4243/lecture/meanshift.pdf
これにより、ブロブが小さくなったり大きくなったり (さらに近づいたり近づいたり) した場合でも、ブロブを追跡できます。
Kinect コントローラーを使用したことはありませんが、レーザー スキャナーで遊んだことがありますが、水平面内でのみ範囲が返されました。しかし、私たちが使用した手法は Kinect にも適用できます。
識別したいオブジェクトを見つけたら、オブジェクトの中心点を計算しました[X,Y]
( [X,Y,Z]
Kinect の場合)。r
次の「フレーム」では、から指定された半径内のすべての点を探し、[X,Y]
見つかった点について、次の「フレーム」に使用する新しい中心を計算し[X,Y]
ました。
可能な最大オブジェクト速度とフレームレートを使用しr
て、オブジェクトが 2 つの測定フレーム間で追跡から逃れられないようにする最小速度を計算しました。