色付きの水滴が動き回る一連のビデオがあります。全部同じ色です。すべての液滴が同じ平面内にあるため、2D 追跡。
現時点では、背景の減算と液滴の検出に混合ガウスを使用しており、画像のセグメンテーションに関して非常に良い結果が得られています。
次のステップは、それらを追跡して速度を計算することです。現時点では、2 つの連続するフレームを単純に重ね合わせています。フレーム「i」と「i+1」としましょう。フレーム i+1 の液滴を指定すると、それをフレーム i の最も近い液滴に割り当てます。私は 30 ピクセルのしきい値を持っているので、半径 30 ピクセル内のより近い液滴のみを考慮します。
これは、液滴がそれよりも速く移動しておらず、シーンがクラスター化されていない場合に非常にうまく機能します。しかし、私は非常に速く動く水滴 (つまり 15 ~ 20 程度) でクラスター化されたシーンと、完全にフレームのようなフレームのオーバーラップを持っています。ドロップレットが 30 ピクセルを超えて移動したため (セグメンテーションではなく追跡)、単にドロップレットが失われたり、以前の位置に近づいた別のドロップレットに割り当てられたりすることがあります。
OpenCV には、この場合に役立つ機能があるかどうか疑問に思っています。非常に良いセグメンテーション、悪い追跡。以前 (このプロジェクトではなく) パーティクル フィルターを使用して、オブジェクトのダイナミクスを使用してオブジェクトの位置を予測しました。