どちらかの側から線を横切る人の数を数えたい。私は天井にカメラを置き、線がある床を撮影しています(カメラは人の頭のてっぺんを見るので、人検出よりも物体検出の方が多いです)。
この問題または同様の問題のサンプル ソリューションはありますか? それで私は彼らから学ぶことができますか?
編集 1: いつでも複数の人が一線を越えています。
どちらかの側から線を横切る人の数を数えたい。私は天井にカメラを置き、線がある床を撮影しています(カメラは人の頭のてっぺんを見るので、人検出よりも物体検出の方が多いです)。
この問題または同様の問題のサンプル ソリューションはありますか? それで私は彼らから学ぶことができますか?
編集 1: いつでも複数の人が一線を越えています。
人間以外が一線を越える可能性がある場合は、人を検出する必要はなく、動きを検出するだけで済みます。運動検出にはいくつかのアプローチがあります。
おそらく最も単純なものがあなたの目標に合っています。ビデオストリームの連続するフレーム間の差を計算するだけで、この方法で「モーションマスク」を決定し、ラインクロスイベントを検出します
この「アルゴリズム」の改良として、「移動平均」法を検討することができます。
モーションの方向を決定するには、「モーション テンプレート」を使用できます。
検出器の精度を上げるために、任意のバックグラウンド減算手法を試すことができます (これは単純な解決策ではありません)。たとえば、除外する必要がある移動する背景がある場合 (例: 統計学習を使用)
言及されているすべてのアルゴリズムは、OpenCV ライブラリに含まれています。
更新:
cvCalcMotionGradient
, cvSegmentMotion
, cvUpdateMotionHistory
(ドキュメントを検索). OpenCV ライブラリには、モーション解析のサンプル コードが含まれています。motempl.cを参照してください。私はビデオベースの履歴書の専門家ではありませんが、問題を有限の画像セット (たとえば、フレームに入る、列に並ぶ、フレームから出るなど) に減らすことができれば、多くの形状認識アルゴリズムの 1 つを使用できます。 . 私はシェイプ コンテキストが優れていることを知っていますが、それがこのアプリケーションにとって十分に微妙かどうかは疑問です (頭と他のほとんどの丸いオブジェクトの違いはわかりません)。
基本的には、動画から重要な画像を抽出して、形状認識アルゴリズムでテストします。
PS 優れたモーション検出方法を使用すれば、主要な画像を見つけることができる場合があります。