カメラからの2つの写真を比較して、動きを検出するのに十分な違いがあるかどうかを確認するにはどうすればよいですか?


18

電話をCCTVシステムとして使用して、家の部屋を制御し、何かが動いているときにアラートを表示したい。

今のところ、私が成功したのは、毎分画像を取​​得し、PHPスクリプト経由でサーバーにアップロードすることです。ここで、現在の写真と1分前の写真を比較して、誰かが部屋に入ったかどうかを検出したいと思います。したがって、基本的には、写真のピクセルの違いを比較する必要があります(ただし、雲が1分間に挨拶し、明るさを変えただけであることも考慮に入れます)

誰がそれを達成するか、または読むためのドキュメントの手がかりを持っていますか?


4
私はこの数年前に何かをしました。私のテクニックは、画像をセクションに分割し、たとえば20 * 20グリッドにし、各セルの平均色の値を見つけて(そのセルの各ピクセルの平均色を取得して)保存しました。次の画像についても同じことを行い、平均色に十分な差がある場合は(許容範囲はあなたに任せます)、動きを想定できます。それは光や影渡すなどの微妙な変化に気づくだろうと細かいので、許容範囲をしないでください


また、CHDKはイメージをグリッドに分割します。 chdk.wikia.com/wiki/UBASIC/Scripts:_AdaptiveMD 動きを検出し、照明の変化を検出しない場合、多くのグリッドセルの変化は動きではなく、わずかなグリッドセルの変化は動きであると言えます。
エンドリス

回答:


10

あなたが探しているのは、バックグラウンド減算技術です。ノイズの多い画像と変化する照明条件では、それは重要なことです。このための現在の最新技術は低ランクのマトリックス表現ですが、2つではなく多くの(約1ダース)画像が必要です。いくつかの強力な数学が続きます。各画像はピクセルのベクトルと見なされ、ベクトルはマトリックスに結合され、このマトリックスは低ランクのマトリックスとレムナントに分解されます。低ランクのマトリックス列は背景であり、残りはオブジェクトを移動しています。いくつかのオープンソースの実装がありますが、完全なイメージパイプラインIIRCではなく、因数分解自体のためだけです。

マトリックス分解の論文とコードはこちら http://www.ece.rice.edu/~aew2/sparcs.html

CSブログの概要と他のコードへのリンクを次に示します。

https://sites.google.com/site/igorcarron2/matrixfactorizations

http://nuit-blanche.blogspot.com/search/label/MF

他のいくつかの手法の調査:http : //www.vis.uni-stuttgart.de/uploads/tx_vispublications/Brutzer2011-2.pdf


1
このCWを意図的に作成しましたか?
Loremのイプサム

1
「CW」とはどういう意味ですか?
mirror2image

ああ、wikiの質問。実用的なことをやっているこのまったく新しいテクのpplsを紹介するのは良い考えだと思いました。同意できない場合は、お気軽に削除してください。また、他のpplsもこの技術の経験が豊富かもしれません。私は始めたばかりです。
mirror2image

CWは、コミュニティWikiの質問です。これが意味することは、あなたの答えに対する賛成票に対する評判(この場合は4x10 = 40)は得られないということです。一部の人々は意図的にこのような答えをしますが、たいていは偶然です。あなたのためにこれを元に戻しましたので、あなたはあなたの担当者を取得します。126から181になりました:)
ロレムイプサム

5

要確認:(明るさだけでなく)影があります。

基本的に各次元の解像度を縮小し、縮小した画像を比較しているため、James Websterのアイデアはあまり好きではありませんあなたが良い値を取得し、翌日これらの値が異なる天候または他の環境効果のために時代遅れになる可能性があるまで)

しかし、公平を期すために、私も本当に良い解決策を持っていません。私の最初のアイデアは、各画像を空の部屋の参照画像と比較し、差分画像でエッジ検出を実行することでした。しかし、これは影も検出します。しかし、私はあなたが影と他のオブジェクトを区別することはできないと思います...少なくとも私は方法がわかりません。ただし、エッジの検出後、2つのフレーム間で結果を比較することができます。これは、影のほとんどの動きが遅いためです(まだ、車が通過するときや雲が通過するときに問題が発生します)


突然変化する何かを検出する必要があります。影は、1分ごとにあまり変化しません。ただし、太陽の全体的な明るさは変わります。
エンドリス

2
たとえば、車が通り過ぎて窓から自分の影を落としたり、ヘッドライトによって他のオブジェクトの影を落としたりすると、影は速く動きます。
フィリップウェント

4

「行列因子分解」手法は、あなたの仕事をするのに役立ちません!@ mirror2imageで参照されている論文は、バックグラウンドの減算に関するものですが、「行列分解」に基づいていません。

動いている物体(人間であれ車両であれ)を検出するためにランニングビデオを使用することは、活発な研究分野です。

基本的な原理として、システムは複数の写真をサンプリングして典型的な静的な背景を推定し、入ってくる画像と背景のエネルギーの差を取ります。エネルギーが大きい場合、ピクセルは前景として分類されます。このようなフォアグラウンドのセットは、システムにオブジェクトのエントリがあるかどうかを示します。

あなたの研究論文(ともあなたが本当に実装する場合は、比較的シンプルな)への最高の参照は次のようになります- W4システムがそれを見つけ、こことピカルディペーパーを参照してくださいここで、システム内の他の技術のための、より詳細な調査として。

問題に適用される多くの課題があります。

  1. ノイズの存在は、大きなあいまいさの問題を引き起こします。ここでのアプローチは、効率的な時間フィルタリングを適用し、ノイズの分散を考慮して、しきい値の影響を受けないようにすることです。

  2. 影の存在は、前景でもなければあいまいさでもありません。色と強度の違いをモデル化して、影と実際の前景を区別する論文があります。

  3. 背景は、木や海などを振るような複雑なものにすることができます。

  4. バックグラウンドは、以前の「学習した」バックグラウンドが新しいバックグラウンドに適応する場合、照明の変化がゆっくりまたは突然になる可能性があります。

最も参照されているランドマークペーパーの1つは、Wall flowerアルゴリズムと呼ばれ、さまざまなシナリオを組み合わせて堅牢な移動物体検出を生成する最適な方法を示しています。


2

正確な解決策はわかりませんが、画像のハッシュを作成する必要があります。画像から抽出されたより小さなデータセットは、画像全体よりも優れています。

私は、色ヒストグラムはそれにとって良い選択だと思います。

画像を領域に分割し、これらの領域に個別のヒストグラムを作成すると、侵入者の位置/経路を特定できます。


ありがとう 参考までに、侵入者の経路を特定したくありません。1分では十分ではありませんが、アラートを送信するだけで十分です。ありがとう。

1
一部の侵入者は1分で終了する可能性があることに注意してください!できるだけ頻繁に確認してください。プログラムが遅すぎる場合は、画像の解像度を下げます。

1
ええ、実際、私は10代ごとに写真を撮り、侵入者を検出した場合にのみ、または問題がなければすべての分をアップロードする予定です。

1

差を2回取る、つまり差を付けると役立つ場合があります。したがって、ピクセルの二重導関数が一部の領域でしきい値よりも大きい場合、誰かが部屋に入ったと見なすことができます。明るさの変化は、画像全体でほぼ一定の勾配を与えますが、ヘッセ行列または二重導関数を使用すると、部屋の動きや大きな変化を適切に示すことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.