自問する必要があるいくつかの質問を次に示します。あなたの質問は、かなり単純な追跡アルゴリズムが必要であることを示しています。どのような方法を調べましたか? opencv ライブラリは、始めるのに最適な場所です。チュートリアル (つまり、http://opencv-srf.blogspot.ro/2010/09/object-detection-using-color-seperation.html )を試してみましたか?アルゴリズム。
- オクルージョンを処理する必要がありますか (あるオブジェクトが別のオブジェクトの前に移動するとき?
- あなたのバックグラウンドはどれくらい単純ですか?それが変わらなければ、物事ははるかに簡単になります。
- オブジェクトが画像フレームの中央に自然に現れるか、またはオブジェクトが横から来る必要がありますか
- フレーム内を移動中にオブジェクトの色が変化することはありますか?
- これは 2D または 3D トラッキングの問題ですか?
一般に、追跡の問題は通常、上記の回答と他の多くの質問に基づいて 2 つの部分に分けられます。
- オブジェクト検出 (現在のフレーム)
- オブジェクトの関連付け (前のフレームから)
ここで最も単純な仮定を行うのは、疑似コードの実装です。これを行うには他にも多くの方法があることに注意してください。高密度特徴追跡、疎特徴、ヒストグラムベース、モーション
#object detection (relatively easy part)
Read b = Background Image (this image needs to be read before any objects are in the scene - it can be thought of as initialization stage)
Read c = Current Image
diff = c - b > Threshold
#everywhere there is a difference indicates a part of an object
#now abstract to higher level objects based on connected components. During occlusions you'll need to differentiate based on color, and maybe even motion if two objects are similar color
#Object association (relatively harder part)
For every object check if this object is already in your list (you'll need a distance metric here to check how similar this object is to another - based on histogram difference, feature points, motion etc...)
If in list, then add this information to the object's track
If in list, you want to consider if you need to update the object model based on the new information. Did the object change shape/color/motion?
If not in list add it