2011-08-10 9 views
12

OpenCV(またはEmgu CV)を使用して「人数計算システム」を開発したいと考えています。人数計算システム

いくつかの例やオープンソースプロジェクトの実装方法や紹介方法を教えてください。

(私はいくつかの作業行っている:。、背景を削除するには、しきい値その後、差分を抽出する運動履歴を使用して、そのように、まだ良い結果)

編集1:私は高い人々が(のダースを流し数えていますそれらは同時に通ってもよい)。

編集2:少なくとも80%正確でなければなりません。人々はほぼ5メートルの幅のドアを歩いています。問題は、カメラの位置や角度を制御できないことです。カメラは2.5mの高さで10mの距離からその場所を叫んでいます。

+2

指定したい点:システムの精度はどれくらいでなければなりませんか? 「人の流れ」とは何ですか?それはそれが10人の幅であることを意味するのか、それとも多くの人々が通過する1メートルの大きなアーチ道なのでしょうか? – Tipx

+0

コメントありがとうございます。私は私の質問を更新しました。 –

+0

あなたはまだ「人の流れ」の程度を記述していません。どれだけの人が話していますか?複数の人が頻繁に同時に入力しますか?あなたは、あなたのシステムは、バックグラウンドとは異なるにもかかわらず、「まだ良い結果はありません」と言います。どのような結果が出てきたのか、なぜ問題があるのか​​を説明できますか? – Gravity

答えて

3

ありがとうのOpenCVの最近のバージョンに付属しているHOGの歩行者検出器(> = 2.2)をチェックしてください。

OpenCVソースのmodules/objdetect/src/hog.cppおよびsamples/cpp/peopledetect.cppを参照してください。残念ながら、まだ公式な文書はありません。

+0

ありがとうございます。私はすでにHOGをチェックしています。混雑した流れには適していません。それは予測できません。 –

6

部屋にいる人を数えるシステムを人数計算システムと呼ぶ場合は、2台のレーザー(通常のレーザートイ)と2台のフォトレジスタを備えたマイクロコントローラーでハードウェアを実装することをお勧めします。マイクロコントローラーSerialPortオブジェクトを持つC#アプリケーションを作成し、arduinoがUSBを介して送信するデータを読み込みます。arduinoは、「誰かが部屋に入った」と「誰かが部屋を出た」のために1を送ります。その後、C#でロギングと統計を簡単に行うことができます。

Arduionoサイト:$ 1 here

フォトレジスターは:here

このソリューションはかなり良い品質であるカメラを使用するよりも実装するたくさん安く、easyerです。

私はあなたを助けました。

+0

ありがとうございます。しかし私は人の高密度な流れを数えています。 –

+0

密度は問題ありません。レーザーは常に反応します。 あなたのプロジェクトをより具体的に告げる。あなたはドアから部屋に出入りする人を数えていますか、それとも何か他の人ですか? – Bosak

+0

私があなたに与えたアイデアは、私が人数計算システムで働いているので、私が作ろうとしている方法であります。しかし、1つのドアがあり、人々がほとんどすべてのものを1つずつ持ち歩いています。それを私と共有してください。 :) – Bosak

2

ていますか?これが当てはまらない場合は、シーンを通って移動する他の種類のものを考えることに気を配っていますか?そうであれば、シーンに出入りするブロブを数えることができるからです。ちょっと聞こえないかもしれませんが、私はいくつかの種類の動画を撮影し、群の動きのピクセルをクラスター単位で距離でグループ化します。距離計はいくつかの制限を考慮に入れることができます。たとえば、クラスタ内のピクセルが何らかの回帰直線(カメラが床と整列している場合はまっすぐな線)をグループ化するように人々は「しばしば」立つでしょう。シーンの中でそれらを追跡する必要はありません。ただちに出入りすることに気付いてください。たとえば、シーン内で自分自身で入力したり、ペアまたはグループで離れるなどの問題が発生します。 ..幸運:)

0

それは本当にカメラの位置に依存します。

この問題は、基本的に顔の検出と認識であることを前提にしています。

顔を見つける方法はたくさんありますが、これは私が少し慣れているアプローチです。

顔検出のためには、肌色の画像のセグメンテーションを行う必要があります。これにより、皮膚領域が抽出されます。 [腕、胸(Vカットトップを着用している場合)、顔、脚など]次に、肌の領域のプロファイルと訓練した顔のプロファイルを整列させる必要があります。

アップ、肌領域ラインの場合とプロフィールから離れすぎdevateていません[あなたは顔がどのように見えるかの一般的なプロファイルを作成するために、固有顔を使用する必要があります]、それは考えられています面。顔が確認されたら、顔を認識用の固有顔データストアに追加します。処理を節約するために、前の顔を探している場合は検索領域を制限することを検討してください。 [フレームレートとその人が最後に見えた時間]

「群衆の流れ」と言えば、群衆の中の顔の密度を意味すると思います。

これで、動画内の動く物体が人であることを確認しました。今すぐ注意する必要がありますし、それらを再び新しい人物とみなさないようにしてください。

このアプローチ:本当に顔領域を検出する能力に依存します。これは、ビデオ内の人々が訓練されたデータのプロファイルに適合していない場合には、機能しない可能性があります。また、人がビデオ内にサングラスを置くと影響を受ける可能性があります。 [おそらく "新しい顔"と考えられるだろう]

0

私は、密集した人がたくさんの閉塞を抱えている場合は、機械学習アルゴリズムを使用する必要があると思います。たとえば、暗黙の形状モデルをフィーチャに使用できます。