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