0

Microsoft Visual 2010 Express で OpenCV を使用してソフトウェアの開発を開始しています。コーディングを始める前に知っておく必要があるのは、従わなければならない手順です。

概要: (左パンチ、右パンチ) などの単純なボクシングの動きを検出し、結果を出力するソフトウェアを開発したいと考えています。

今、苦労しているのは、どのアプローチをとるべきかということです。この開発にどのように取り組むべきですか

  1. ビデオ映像をキャプチャし、処理のために 5 フレームごとに抽出できます。
  2. このフレームを抽出して保存する必要がありますか? おそらく、そこからキャプチャ フレームを差し引くための参照イメージがあります。
  3. フレームをキャプチャしたら、それを処理する最良の方法は次のとおりです。

      * Threshold it, then
      * Detect the edges, then 
      * Smooth the edges using some filter, then
      * Draw some BOUNDING boxes....?
    

この人たちについてどう思いますか、それとも何か足りないのでしょうか、それとももっと簡単な方法がありますか...? 助言がありますか...?

どんな答えでも大歓迎です Ps...それは私の宿題ではありません:)

4

2 に答える 2

0

あなたが探しているのは、例えば www.nada.kth.se/cvap/actions/ などの行動認識の研究分野です。または、可能な解決策は、例えば STIP (時空間関心点) メソッド www.di.ens.fr/~ です。 laptev/アクション/ . しかし、オクルージョンや異なる視点に対処しなければならない場合、最終的にこれは大変な作業になります。

于 2013-01-19T00:38:41.680 に答える
0

通常、パンチは非常に高速で見落とされる可能性があるため、5 フレームごとに分析するだけで十分かどうかはわかりません。

あなたが実際に見つけたいのは、拳の早送り(カメラに向かって)の動きだと思います。

OpenCV の場合、ソフトウェア パッケージでそれを行う方法についていくつかの例が既に提供されているので、まずそのような顔の動きから始めます。

顔を検出して追跡するには、CvHaarClassifierCascade を使用できますが、これは実行時の検出には十分な速度ではないため、Lukas-Kanade を使用して検出された顔の追跡を続けます。以前に見つかった面内の追跡に適したポイントをいくつか選択し、任意の面の中央からの距離を記憶し、各フレームで更新します。この男http://www.youtube.com/watch?v=zNqCNMefyV8を参照してください- Lukas-Kanade で追跡されたランダム ポイントの例。顔とは異なり、拳は表面がかなり均一であるため追跡が容易ではないことに注意してください。OpenCV で Lukas-Kanade のデモを確認してください。

もちろん、各フレームで実際の顔は離れていきます。時々 CvHaarClassifierCascade を再実行し、現在保持されている顔の位置を補間します。

拳についても上記を実行できるはずですが、拳の写真を使用して分類器をトレーニングする必要があります (顔でトレーニングされた分類器は OpenCV で既に提供されています)。

拳/顔を追跡すると、ポイントに何が起こるかを観察することができます. したがって、最近のフレームの単一ポイントの平均移動を計算すると、値が高いほど、パンチがあった可能性が高くなります。あるいは、どうにかしてそれらを正確に追跡できた場合、それぞれの距離が長くなれば、オブジェクトがカメラに近づいていることを意味し、パンチの可能性が高くなります。

少なくとも写真の拳のサイズの変化を知らなければ、手の動きが前方か後方か、またはユーザーが拳を左または右に動かしてそれを偽造したかどうかを区別するのが難しい場合があることに注意してください。たとえば、以前に最初に見つかった場所の画面の色ピクセルの数を増やすなど、それを検出するために、いくつかの特殊なアルゴリズムを (おそらく試行錯誤して) 考え出す必要がある場合があります。

于 2013-01-18T00:08:43.753 に答える