高画質でトラッキング機能搭載のWebカメラが 1,980円だったのです。そしてその日は小遣い日だったのです。
結構大きな箱に入ってるので荷物になるなあ、という思いが一瞬よぎるもすぐに振り払って即決でした。
ロゴが「Logicool」ではなく「Logitech」なので、日本向けのバージョンではないようです。
またドライバなど付属ソフトは無く、本体のみの販売でした。
とはいえ、ドライバ含むソフト類は以下のサイトから入手することができます。
http://www.logicool.co.jp/ja-jp/435/3480?section=downloads
実はこのカメラ以前から目をつけていて、やってみたいこともあったのです。
1.1台のマシン(以下カメラサーバ)に複数のカメラを搭載してみたい
2.動体追跡をしてみたい
3.ネットブックに繋げて車載カメラにしてみたい
「やってみたい」のが目的で、使い道があるのかと言われると困っちゃうのですが。
とりあえず1はできたので、備忘録がてらご紹介します。
いまカメラサーバとして使ってるのはこのマシンです。
OS には Ubuntu 9.04 を使っています。
ファイルサーバとして常時起動しているので、ついでにカメラをつけて部屋への出入りを動体検知し、
入退室などを写真に記録できるようにしています。この仕組みには Motion というソフトを使っています。
Motion は、単純に導入するだけでマシンに接続されたカメラを認識してくれるため、
細かい設定は別にすればインストールするだけで手軽に使えます。
しかし 2台以上のカメラを認識させる場合はそれぞれ用に別の設定ファイルを用意して、
個別に設定を施す必要があります。
設定ファイルや公式サイトには丁寧に説明が書いてある(っぽい)ので
多分英語が読めれば難しい話でもないのだと思うのですが、
なにぶん英語が苦手なもので、フィーリングで読んでトライアンドエラーで結果を得ています。
Motion の公式サイトはこちらです。
http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome
さて前置きはこのくらいで、設定をご紹介します。
通常、Motion は motion.conf という設定ファイル 1つに全ての設定情報を記載します。
しかし 2 台以上のカメラを使う場合は、
・motion.conf
・thread1.conf
・thread2.conf
の 3つに設定情報を記載するようになります。
設定の内容は合理的で、thread1, 2 にはカメラ毎の固有の設定を、motion.conf には
共通的な設定をそれぞれ記載します。
何を共通に切り出して何を個別に設定するかは環境次第だと思いますが、僕は
1. ビデオデバイスの指定
2. ビデオデバイスの種類
3. カメラの呼び名
4. リアルタイムに画像を公開するポート番号
5. 動体検知時にキックするスクリプト
6. 保存時ファイル名
を個別に設定しました。1, 2 はどんな環境でも必須だと思います。
1台目のカメラの情報は元々 motion.conf に記載していたので、thread1.conf の
方は 1-4 だけを指定して、5, 6 は共通設定扱いとし、2台目のカメラには
上書きする設定を記載しています。
ここら辺りは今後カメラをどう運用するか決めてから詰めて行こうと思っています。
1, 2 の設定内容は何を書けばいいか困るかと思うのですが、
ビデオデバイスは /dev/ 配下にあるそれっぽいデバイス名を指定すればよいです。
本機はUSBカメラなので、/dev/ 配下を観察しながらカメラを指し、
増えたデバイスを指定すれば間違いないと思います。
僕の環境では /dev/video0 が 1台目、 /dev/video1 が 2台目です。
2のビデオデバイスの種類は本機の場合 8 に設定して認識しました。
また、忘れてはいけない大事なポイントとして、 motion.conf から
thread1.conf と thread2.conf を認識させてあげる必要があります。
motion.conf の末尾に thread ディレクティブがコメントアウトされているので、
コレをコメントインし、正しいパスに書き直します。
僕の環境では次のように書きました。
thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
参考までに、僕の環境でのそれぞれの設定ファイルについて、
具体的な設定値は次の通りです(デフォルトのところなど一部省きます)。
--- motion.conf
daemon on
process_id_file /var/run/motion/motion.pid
setup_mode off
videodevice /dev/video0
input 8
width 640
height 480
framerate 2
text_right %Y-%m-%d\n%T-%q
target_dir /tmp/motion/
jpeg_filename %Y/%m/%d/%H/%Y%m%d_%H%M%S-%q
webcam_port 8081
webcam_quality 50
webcam_motion off
webcam_maxrate 1
webcam_localhost off
webcam_limit 0
control_port 8080
control_localhost on
control_html_output on
on_picture_save /home/motion/choice.sh %f
thread /etc/motion/thread1.conf
thread /etc/motion/thread2.conf
--- thread1.conf
# /etc/motion/thread1.conf
videodevice /dev/video0
input 8
text_left CAMERA 1
webcam_port 8081
--- thread2.conf
# /etc/motion/thread2.conf
videodevice /dev/video1
input 8
text_left Labo
jpeg_filename LABO-%Y/%m/%d/%H/%Y%m%d_%H%M%S-%q
on_picture_save none
webcam_port 8082
動体検知時にキックするスクリプトの設定を on_picture_save none と書いて無効化しています。
これやり方としてどうなんだろう、とも思いますがとりあえず問題は出てないので(syslogにも何もでないし)良しとしてます。
あと、この設定だとどんどんさくさくjpgファイルが溜まっていくので、cron で 14日前のファイル群を削除するよう設定しました。
設定の方法は色々あると思いますが、find で削除対象を探すと母数が多過ぎて負荷も時間もかかるので、
rm -R /tmp/motion/`date '+%Y/%m/%d' -d '14 days ago'`
のような決め打ちのスクリプトにしています。数がそんなに多くなさそうなら
/usr/bin/find /tmp/motion/ -name "*.jpg" -atime +14 -exec rm {} \;
のような方法の方が安全かもしれません。
カメラサーバに複数台のカメラを搭載する話は以上です。
動体追跡はまだ調査中です。できそうな話は見かけるのですが。
車載カメラ化は、同じく Motion を導入したネットブック↓にカメラを
追加認識させられたので(設定は1とほぼ被るので割愛)とりあえずそこまでとしています。
車持ってないので、今度レンタカーを借りるときにでも実験してみようと思っています。
-
購入金額
1,980円
-
購入日
2011年08月24日
-
購入場所
アキバパレットタウン
aoidiskさん
2012/01/08
そんな、スピードのあるものはしませんもんね。
初めのうちは、かなり遊べたな。
今じゃ、定位置で使ってますけどね。
いいですね。
YGGさん
2012/01/08
アレ、動きを検知した方向にカメラ向けるみたいですね。
定点観測的に使っているのと、Linux からトラッキングを
使うのがうまくいかないのとで僕も固定して使ってますが、
画質と安定性がすばらしくて気に入ってます。