マンションの総会で「最近いろいろ治安が悪いから監視カメラ (防犯カメラ) を付けよう」 というのが議題に上がった. まぁ細かいことは省いて要点を言うと
「だったらカメラはいい物を買って, キャプチャボードで取り込めばよい. いくらなんでも 200 万よりはるかに安く出来るだろう. 」 と再反論しようかとも思ったが, 隣付き合いもあるしあまり総会で「おたく」と目立ってもしかたないと止めておいた.
結局うちのマンションはカメラは高い金払って設置されたが, その時から安価に監視カメラが取り付けられないだろうかと個人的に 興味が沸いてきた. 最近は PC も安くなってきたため実用上は PC で構築した方がいいとは思うものの, PC で出来たって面白くもなんともないため, コンパクトで低消費電力な LANDISK (HDL-160U) を使って構築してみることにした.
内容的には LANDISK に USB カメラを接続し, gspyというカメラ画像に 変化が現れるとその画像を保存するソフトを使って静止画像を取り貯め, 何か起こったら貯めた画像を見てみるというものです.
USB カメラは繋がれば何でもいいはずですが, せっかくなんで高画質な CCD カメラを使いたいと考え, Logicool QcamPro 4000 を使うことにします. LANDISK における QcamPro のつなげ方は こちらに書きましたので割愛します.
続いて gspy ですが, 本来は X 用のアプリですがソースの中に cspy という名のコンソール版が存在しますのでそれを使います. ただし, ソースの中に一部 x86 用アセンブラで記述されている部分があるため, そのままでは LANDISK で動きません. 幸い w3cam-0.7.2 の中に, C で記述されたほぼ同じ内容の関数があったので, それを流用することにしました. ついでに, cspy はパラメータをソースに直接書いて指定する方式でしたが, 定義ファイルを読み込むよう改造しました. また, なぜか R と B が逆の画像が得られたので w3cam のソースを参照して 手を加えました. そこで, オリジナルと違うという意味で + を付け, cspy+ としています.
cspy+ のソース一式はこちらです. また, コンパイル環境を持ってない方のため, 実行形式も こちらに置いておきますが, 何分私の LANDISK は過去にいろいろいじくっているのでもしかしたら ライブラリが無い等で動かないかもしれません.
使い方ですが, 引数に以下の二つをオプションを付けました.
-f | 設定ファイル指定, 無い場合はデフォルト |
-v | 設定状況表示 |
cspy+ -f filename |
さてこの設定ファイルですが, 記述は
PICTURE_INTERVAL 15 |
実験の結果, LANDISK における実行時の平均負荷は 20% 前後でした (2 秒毎に動画検出の場合). 熱がどうなるか心配ですが 4 月の室内で 1 日動かしてみましたが特に 熱がひどくなったようには感じませんでした.
画像の大きさは一枚 50Kbyte 前後. 1 分に一度動画検出して画像を得たとした場合 (かなり多めの見積りです), HDL-160U の利用可能容量を少なめに 120Mbyte と見積もったとしても 5 年近くのデータを蓄積できることになります. 本稿執筆時における HDL-160U + QcamPro 4000 は 3 万ちょっとで買えるようです. 信頼性はイマイチかもしれませんが, 3 万ちょっとで監視カメラができるとは... (まぁ所詮静止画ですが)