OpenCVとtkinterを使った動体検知プログラムを作ってみた

仕事の関係上、たまーに防犯カメラをチェックしなくてはならない時があるんです。

が、防犯カメラの動画管理デッキの操作などが、本当に役に立たない!

再生、戻しなど4倍速が限度で、スライダーを動かしても画面表示が追従しない。突然ぱっとその時間に画面が切り替わります。

防犯カメラってリアルタイムで見ている訳じゃないんですよね。 問題があって「だいたい昼から夕方にかけてかー。写っているといいな」程度で昼から倍速でザッピングして、 ある程度時間範囲を絞ってから、じっくりその時間動画を追いかけるパターン。

ところが今契約している所の防犯カメラの記録デッキがそれが出来なくて、なんどもクレームいれたのですが改善されない。

「いやー、うち(某有名メーカー)の名前で作ってるデッキですけど、中身はOEMで、稼働プログラムも同じです。」 「たしかこれ中国で作られたやつで、簡単にアップデート依頼だせないとかなんとか言ってました」

じゃ、面倒だから動画出力して扱うか、という事で自分で作ってみました。 ちなみに2時間で約1G動画ですが、そのデッキからの出力に2分かかります。

で、まぁこんな感じでやっつけで作ってみました。 変化のあった場所が右側リストに表示されて、クリックすると対象ポジションに移動。 さらにその対象も自動でRecも出来るという(自画自賛

だったんですが、防犯カメラの動画には役に立たなかった! いや、最終的には役にたったんですが、実はデッキから出力されている物の動画データがAVIだって忘れていまして。

aviのままでも動体検知は出来るのですが、aviでフレームレートが変動すると、ちょっと対応が面倒な事になります。 なのでmpgに変換対応してからとかひよった運用になりました。

話を動体検知に戻しますと、OpenCVライブラリを使うと簡単ですね。 いまは色々な所にサンプルがあります。

ただ何処にもGUIを使った便利なものがなかったので、GUI部分を基本つくっただけという感じでした。