title_parttitle_parttitle_part
静岡県浜松市であれこれソフトを開発している A.K.I Software のブログです。日々の開発日記やサーバー・セキュリティ関連の話題なども掲載。
<< 2018/04 >>123456789101112131415161718192021222324252627282930
Powered by BLOM JPT3815W を使ってカメラから動態検知を実装
小さくも大きくも閉じたりもしません
13/06/13 19:25 / その他のソフト

レコーダーソフトをマルチスレッド処理していたのですが、いまひとつ安定しません。
元々 http 処理の部分はスレッドセーフでは無いので、しょうがないので全面的に書き直しして、マルチスレッド対応に書き直したところ、ようやく安定しました(^-^

カメラが勝手に再起動しても再接続して録画を続けるのでようやく安心して放置することが出来るようになりました。
(撮影する方向や角度は記憶させて置くことができるので起動時に固定させることが出来ます)

Motion JPEG 以外で撮影も出来るようになり、これでようやく24時間体制で記録し続けていても問題の無い環境になりました。

が、問題が1つ出てきました。
レコードとエンコードを担当する PC が省電力仕様なので CPU パワーがそんなにありません。(わざとダウンクロックさせているくらい)

普段使う分にはそんなに気になるレベルでは無いんですが、H.264 エンコードをリアルタイムにエンコードさせるとなるとそれなりに CPU パワーが必要になります。

送られてきた JPEG をそのまま Motion JPEG で保存するならばそれなりに FPS は稼げるのですが、日付時刻を入れる処理などをする関係で一旦 Bmp(DIB)に変換して必要な処理を行ってから再度 Motion JPEG ならば Jpeg にエンコード。MP4 ならば H.264 にエンコードする必要があります。

Jpeg 変換ならばまぁなんとかいけるんですが、H.264 となると、さすがにきつくリアルタイムにソフトエンコをさせると CPU が遅いので 4fps とかまで下がってしまいます。

まぁ 30fps のヌルヌル動画を求めているわけではありませんので(更に言えば 640x480 を全力で受信しても MAX 12fps がいいところですしね)4fps でも構わないんですが、それでも 10fps 位は欲しいよなーってことで Motion JPEG で保存することにしました。
頑張ってエンコード処理を実装したのに(笑)

となると、今度はファイルサイズが問題でして・・・と鶏と卵の話になるので、必要な時に必要な分だけ記録させたいという方針となります。

で、ようやく表題の件に辿り着くのですが、動態検知を実装しました。

photo


嫁さんをカメラの前で行ったり来たりさせてテスト(笑)

動態検知と言うと、すごく複雑な処理をさせている気がしますが「そこに何かが動いたかどうか」を検知させるだけであれば、到って単純に実装が出来ます。

アルゴリズムとしては・・・
1)カメラから時間Xの静止画を取り出す。
2)バッファに記録する。
3)またカメラから時間X’の静止画を取り出す。
4)2のバッファと比較して明度が違う部分を抽出する。

バッファに記録する際に時間XとX’を考慮して残像処理などをする必要があったり、JPEG 化によるノイズなどの微妙な変化も考慮する必要がありますが、大雑把な方法としてはこれでいけます。

あとは変化した部分が、どれくらいの量なのかを判定して(これが感度になります。厳密に行うのであれば、残像処理をきちんと処理して、量ではなく、個別の面積で判定すれば固体判定も出来るはず)指定した量を超えたならば「なにか動いた」と判定できるわけです。

「色」ではなく「明度」で行い更に「時間」を使うのは、単純に「特定の座標にある色が変化したら『何かがそこを塞いだ』と判定」とすることもできるんですが、自然環境の場合、自然光などの変化により色を使うと昼間は良いけど、夜になると反応しっぱなしになったりするからです。

「明度」を使えばこれらに対応できますし「時間」を使うことにより、前回の時間からこれくらい変化したらという判定を行うことも出来ます。
(ただし、この方法は夜間に車のヘッドライトなどに照らされた箇所などにも反応してしまうので、厳密には動態検知では無いんですが)

まぁ、とりあえず実装できたので、これを使って録画容量を減らすことが出来そうです。

・・・これも出来たら、今度はカメラの移動もソフト側でやりたくなる気もするんですが、本業はネット屋さんですからこれくらいにしときます(笑)

[更新日付:2013/06/13 19:25:40]
トラックバックを見る(0)
Log Link [http://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+8e08cc1ce8b6810beb8fc93b0caed0706cab2943]
TB Link [http://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+8e08cc1ce8b6810beb8fc93b0caed0706cab2943]

記事へのコメント

コメントはありません

名前
コメントキー
 
コメントする時はキーを正確に入力して下さい
コメント
アドレスを含んだコメントはできません
© 2008-10 A.K.I Software all rights reserved.