私は屋内に向けて静止しているカメラを持っています。人々は、カメラから約5メートル以内にカメラを通り過ぎます。 OpenCVを使用して、過去を歩いている個人を検出したい-私の理想的な戻り値は、境界矩形を持つ検出された個人の配列です。
私はいくつかの組み込みサンプルを見てきました。
誰でもこれを行うためのガイダンスやサンプルを提供できますか?できればPythonで?
OpenCVの最新のSVNバージョンには、HOGベースの歩行者検出の(文書化されていない)実装が含まれています。事前学習済みの検出器とpythonラッパーも付属しています。基本的な使用法は次のとおりです。
from cv import *
storage = CreateMemStorage(0)
img = LoadImage(file) # or read from camera
found = list(HOGDetectMultiScale(img, storage, win_stride=(8,8),
padding=(32,32), scale=1.05, group_threshold=2))
したがって、追跡する代わりに、各フレームで検出器を実行し、その出力を直接使用することもできます。
見る src/cvaux/cvhog.cpp
実装用およびsamples/python/peopledetect.py
より完全なpythonの例(両方ともOpenCVソースにあります)。
ニック、
探しているのは、人の検出ではなく、動きの検出です。あなたが解決しようとしていることについてもっと詳しく教えていただければ、より良い回答が得られます。とにかく、結果をどうしようとしているかに応じて、動き検出を行う多くの方法があります。最も単純なものはしきい値処理が続く差分処理であり、複雑なものは適切なバックグラウンドモデリング->前景減算->形態学的操作->連結成分分析、それに続く必要に応じてブロブ分析です。 opencvコードをダウンロードして、サンプルディレクトリを確認します。あなたが探しているものを見るかもしれません。また、OCVに関するOreillyの本があります。
これがお役に立てば幸いです、ナンド
これは明らかに重要な作業です。インスピレーションを得るには科学出版物を調べる必要があります( Google Scholar はあなたの友人です)。人間の検出と追跡に関する論文を次に示します。 高速平均シフトモードシークによる人間の追跡
これは、コンピュータビジョンコースの一環として行ったプロジェクトに似ており、すぐに解決するのは難しい問題であると言えます。
前景/背景のセグメンテーションを使用して、すべてのブロブを見つけてから、それらが人間であると判断できます。問題は、人々が一緒に行ったり、お互いを通り過ぎたりする傾向があるため、うまく機能しないことです。そのため、ブロブは2人で構成されている可能性が高く、その後、歩いていくにつれてブロブが分割されてマージされることがわかります。
1つのBLOBで複数の人を区別する方法が必要になります。これは、誰もが単一のSOポストで回答できることを期待する問題ではありません。
私のアドバイスは、利用可能な研究に飛び込み、そこで何かを見つけることができるかどうかを確認することです。これを行う製品が存在することを考えると、問題は解決できません:Autolivには、車のIRカメラを使用して歩行者を検出する製品があり、店舗に出入りする顧客のカウントを扱う他の製品を見てきました。