<< 2024/04 >> | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 |
|
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 で保存することにしました。 頑張ってエンコード処理を実装したのに(笑) となると、今度はファイルサイズが問題でして・・・と鶏と卵の話になるので、必要な時に必要な分だけ記録させたいという方針となります。 で、ようやく表題の件に辿り着くのですが、動態検知を実装しました。 嫁さんをカメラの前で行ったり来たりさせてテスト(笑) 動態検知と言うと、すごく複雑な処理をさせている気がしますが「そこに何かが動いたかどうか」を検知させるだけであれば、到って単純に実装が出来ます。 アルゴリズムとしては・・・ 1)カメラから時間Xの静止画を取り出す。 2)バッファに記録する。 3)またカメラから時間X’の静止画を取り出す。 4)2のバッファと比較して明度が違う部分を抽出する。 バッファに記録する際に時間XとX’を考慮して残像処理などをする必要があったり、JPEG 化によるノイズなどの微妙な変化も考慮する必要がありますが、大雑把な方法としてはこれでいけます。 あとは変化した部分が、どれくらいの量なのかを判定して(これが感度になります。厳密に行うのであれば、残像処理をきちんと処理して、量ではなく、個別の面積で判定すれば固体判定も出来るはず)指定した量を超えたならば「なにか動いた」と判定できるわけです。 「色」ではなく「明度」で行い更に「時間」を使うのは、単純に「特定の座標にある色が変化したら『何かがそこを塞いだ』と判定」とすることもできるんですが、自然環境の場合、自然光などの変化により色を使うと昼間は良いけど、夜になると反応しっぱなしになったりするからです。 「明度」を使えばこれらに対応できますし「時間」を使うことにより、前回の時間からこれくらい変化したらという判定を行うことも出来ます。 (ただし、この方法は夜間に車のヘッドライトなどに照らされた箇所などにも反応してしまうので、厳密には動態検知では無いんですが) まぁ、とりあえず実装できたので、これを使って録画容量を減らすことが出来そうです。 ・・・これも出来たら、今度はカメラの移動もソフト側でやりたくなる気もするんですが、本業はネット屋さんですからこれくらいにしときます(笑) [更新日付:2013/06/13 19:25:40]
トラックバックを見る(0) Log Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+sl+8e08cc1ce8b6810beb8fc93b0caed0706cab2943] TB Link [https://akisoftware.com/cgi-bin/blom.exe?akisoft+tb+8e08cc1ce8b6810beb8fc93b0caed0706cab2943] 記事へのコメント コメントはありません |
@AKISoftOfficialをフォロー
掲示板 サポートBBS PMailServer BBS アクセスの多い記事
最新記事(カテゴリ別)
PMailServer2 Version 2.53 をリリースしました。
04/08 00:50 フリー版からの製品版移行時の MTA 並列数について 02/17 23:52 メールサーバーの開発を始めて20年 02/07 21:46 PMailServer2 Version 2.52a をリリースしました。 12/26 14:02 PMailServer2 Version 2.52 をリリースしました。 10/01 10:48 PMailServer2 Version 2.51b をリリースしました。 09/19 01:43 PMailServer2 Version 2.51b(仮) Memo 09/12 00:33 PMailServer2 Version 2.51a をリリース、及び脆弱性についてのお知らせ 09/05 01:15 PMailServer2 Version 2.51a Memo 08/21 00:48 アドレスV125(K5)のスターターリレーの交換 08/04 10:10 最新コメント
コメントはありません
UUアクセス数
今日は 487回
昨日は 271回 トータル 306403回 3ヶ月記事別ランキング
プロフィール
Z80から68系、8086系を経由して
Pascalに移行。現在は Delphiをメインに C/C#も囓ってみたり。 「無い物は作れ」の精神で年がら年中なにかを作っています。 すぐ自前で作りたがるので無駄に工数が上がったりして自爆してみたりもします。 好きな物は麺類とお煎餅 Blom内検索
BLOM Version 1.39 ©2007-15 A.K.I Software all rights reserved. |