LANDISK を監視カメラにする

[戻る]

はじめに

マンションの総会で「最近いろいろ治安が悪いから監視カメラ (防犯カメラ) を付けよう」 というのが議題に上がった. まぁ細かいことは省いて要点を言うと

  1. システム導入費は 200 万円近くする
  2. 場所は入り口と駐車場, 駐輪場, エレベータ
  3. 係員がモニタの前に居るわけでなく単に録画しているだけ 不届者への牽制と万一の際の証拠が目的
というものであった. 管理費や修繕積み立ての中から 200 万も崩すわけだから議論になり, 「牽制なんだからダミーカメラでいいじゃないか」とかいう意見もあったし, 私は私で「PC と安物の USB カメラで作ればいいのでは」と意見したが, 安物 USB カメラは暗闇に弱く, 駐車・駐輪場には不向きと反論された.

「だったらカメラはいい物を買って, キャプチャボードで取り込めばよい. いくらなんでも 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
などと, 間に空白を入れて設定したい内容の値を記述します. 記載が無い場合はデフォルト値を用います. 設定できる内容とそのデフォルト値は -v オプションで見ることができます. 面倒なので詳細説明は割愛します. まぁ この辺を参照すれば類推できるはずです.

実験の結果, LANDISK における実行時の平均負荷は 20% 前後でした (2 秒毎に動画検出の場合). 熱がどうなるか心配ですが 4 月の室内で 1 日動かしてみましたが特に 熱がひどくなったようには感じませんでした.

画像の大きさは一枚 50Kbyte 前後. 1 分に一度動画検出して画像を得たとした場合 (かなり多めの見積りです), HDL-160U の利用可能容量を少なめに 120Mbyte と見積もったとしても 5 年近くのデータを蓄積できることになります. 本稿執筆時における HDL-160U + QcamPro 4000 は 3 万ちょっとで買えるようです. 信頼性はイマイチかもしれませんが, 3 万ちょっとで監視カメラができるとは... (まぁ所詮静止画ですが)

注意事項


2005.4