1

この質問の前の画像に示されているようなフレームを持つビデオがあります。

それらのポイントに特定の色がある画像からポイントを検出するにはどうすればよいですか

これらのマーカーを検出し、以下の画像に示すように番号を付けました。

マーカーデータ

私の問題は次のとおりです。あるフレームでマーカーを検出したら、別のフレームでそれらを検出し、マーカーが以前の位置からどれだけ移動したかを調べる必要があります。ただし、2番目のフレームでコードを再度使用すると、一部のフレームでマーカー間で異なる番号が付けられることがあるため、ある画像から別の画像へのマーカーを追跡できません。また、各画像のマーカーを検出するのは面倒な作業になり、約 200 フレームのビデオでは多くの時間がかかります。

特定のマーカーがフレーム間でどれだけ移動したかを知るために、これらのマーカーを画像上で追跡するにはどうすればよいですか、または単に番号が変わらないようにこれらのマーカーに番号を付けるにはどうすればよいですか200。

副次的な質問として、フレームごとに顔と目を検出する必要がないように、実際に処理時間を短縮する方法があります (前の質問のリンクにある画像を参照してください。 )。

4

1 に答える 1

1

私の問題は次のとおりです。あるフレームでマーカーを検出したら、別のフレームでそれらを検出し、マーカーが以前の位置からどれだけ移動したかを調べる必要があります。ただし、2番目のフレームでコードを再度使用すると、一部のフレームでマーカー間で異なる番号が付けられることがあるため、ある画像から別の画像へのマーカーを追跡できません。また、各画像のマーカーを検出するのは面倒な作業になり、約 200 フレームのビデオでは多くの時間がかかります。

特定のマーカーがフレーム間でどれだけ移動したかを知るために、これらのマーカーを画像上で追跡するにはどうすればよいですか、または単に番号が変わらないようにこれらのマーカーに番号を付けるにはどうすればよいですか200。

オプティカル フロー技術の使用を検討してください - http://robotics.stanford.edu/~dstavens/cs223b/ ?

または、点群をより小さな部分に分割して、輪郭を検出してみてください。線を使用するか、この単純なアイデアを使用して分割できます (テストも分析もされていません)。

  1. 点群からすべての点の凸包 ( http://en.wikipedia.org/wiki/Convex_hull_algorithms ) を見つけます。
  2. 境界上にあるポイントは 1 つのグループになります。
  3. ポイント 2 からグループのポイントを処理した後、それらを削除します。
  4. ポイント 1 に進みます。

副次的な質問として、すべてのフレームで顔と目を検出する必要がないように、実際に処理時間を短縮する方法はありますか?

処理時間を短縮するためにできる簡単な方法がいくつかあります。

  • 各フレームの処理中に haar カスケードをロードしないでください。カメラ/ビデオ ファイルからフレームを取得する前に、一度だけロードしてください。
  • 各フレームで 1 つの顔だけを検索する必要がある場合は、CV_HAAR_FIND_BIGGEST_OBJECT フラグを使用します。検索すると、1 つの (最大の) オブジェクトのみが返されます。検索は最大のウィンドウから開始され、さらに haar 検出器が 1 つのオブジェクトを見つけると、検索を中止してこのオブジェクトを返すため、はるかに高速になるはずです。
  • パラメータをいじって、さまざまなカスケードをチェックする
  • nフレーム番号よりもフレーム番号で顔を見つけたら、フレームn+1全体で検索を実行しないでください -nフレームで顔を見つけた長方形を拡大し、この拡大された長方形でのみ検索します。どこまで広げればいいの?ユーザーが頭をどれだけ速く動かせるかによって異なります;) 50% は大きな許容範囲ですが、遅くもなります。最良のオプションは、この値を自分で見つけることです。
  • 画像があまり変わらない場合は、ほとんどのフレームで顔の検出をスキップして、前のフレームと同じ場所にあると想定できます。フレームが大きく変化したかどうかを確認してください。最も簡単な方法は、 OpenCV を使用したモーション検出です(著者が述べたように、減算の結果にバイナリしきい値を使用して、ノイズによる変化を無視することをお勧めします)。私はこの方法を学士論文 (アイトラッキング システム) で使用しましたが、非常にうまく機能し、システム全体の速度が向上しました。注 - 時々、通常の (haar カスケードを使用した) 検索を強制することをお勧めします (これを 3 フレームごとに 1 回行うことにしましたが、検索の頻度を減らして試すことができます)。使用されたカメラ領域の外に移動しましたが、システムはそれに気づきませんでした。
于 2013-10-11T01:47:40.867 に答える