Zoneminderに赤外線カメラ追加

赤外線カメラを発注していたのは支那のサイトの Aliexpress

前から Alibaba って支那の業者の製品を日本の業者に仲介するサイトがあるのだが、そもそもアリババって盗賊だし、盗賊市かよ!? って感じで言葉のイメージがよろしくない。

Alibaba は業者向けで、発注ロットが100個とか1万個とかそういう単位なので、一般人は手を出し辛い。そこで出てきたのが1個から売ってくれる Aliexpress なのだろう。

サイト自体の作りと販売システムはしっかりしていて、すぐにチャットで相談できるようになっている。ブツが届かなければ、Open Dispuiteで支払い停止できるみたいだし、さすが信用のおけない支那人相手の商売を成り立たせる仕組みだと感心する事しきりである。

話はそれたが、Aliexpress で調達したのが、
・FOSCAM FI8905W
・PoE給電アダプタ(5V、7.5V、9V、12V切替スイッチ付き)

の2点。カメラは上海、PoE給電アダプタは抗州ルートでいずれも無事到着した。これでコンセントの位置に関係無く、ネットワークケーブルの届く範囲に自由にカメラを配置できる。

そこで、ネットワークケーブルだが、これはAmazonで
・10m カテ6 Ethernetケーブル

を調達。

PoE給電アダプタは、普通のPoEの規格だと、48Vを送電する事になっていて、汎用電気機器に給電するには、電圧変換をしないといけないのだが、支那から取り寄せたアダプタは、切替スイッチがついているので、その点の問題はクリアしている。

ただ、誤算だったのが、取り出すDC電源のコネクタがφ2.1で、FOSCAM FI8905Wはφ1.3なので、このままでは繋がらず、共立エレショップを見ると、DCプラグ変換コネクタというのがあったので、これを調達。

この変換コネクタをFOSCAM FI8905Wに差し込むとかなりプラグが余り、ピッタリとは嵌らない。しかし、給電には問題無いので良しとする :-)

実際の画像は次の様な感じ。

FOSCAM FI8905WはDC-NCR13Uよりも2mは後方に配置しているのだが、映ってる範囲は遥かに狭い。しかし、赤外線に対する感度は高く、はっきりと映っている。

DC-NCR13Uは真っ暗な映像しか映っていなかったのが、FOSCAM FI8905Wの60個の赤外線LED投光器により、多少はマシになったが、やはり赤外線に対する感度が悪すぎる。

一時はDC-NCR13Uの夜間監視能力向上の為、赤外線投光器の設置も考えたが、この結果からすると、相当強力な赤外線投光器でなければ改善しないので、やはり屋内の近距離にしか使えなさそう。

FOSCAM FI8905Wは夜間の能力は申し分無いのだが、前述の通り、映る範囲が狭すぎるので、範囲をカバーするには距離が必要という事で、二階から見下ろす位置に設置するしか無さそうだ。

この監視カメラの動態検知をする OpenRD Ultimate だが、2台となると、かなり負荷が厳しい。1台のカメラに1台の Sheeva の処理能力が適正と思われる。

赤外線カメラFOSCAM FI8905W

OpenRD Ultimateを監視カメラサーバにして、DC-NCR13Uという赤外線カメラを軒下に設置して屋外の監視をしている。

しかし、このカメラ、赤外線ランプをONにしても照射距離が2m程度で、肉眼で見える明るさよりも暗く、赤外線ライトも3m先には届かないので、ウチの環境では、夜間は真っ暗しか写らない。

で、赤外線カメラで探してみると、こういう映像があって、Foscam FI8905Wってのが遠距離まで赤外線を照射し、かつ、かなり広範囲を映せている。

FI8918Wってのもあるが、これもYoutubeの動画を見ると、赤外線の照射範囲は狭いがけっこう遠くまで照らしているし、街灯の明かりでも映っているから、内蔵ソフトウエアが結構頑張ってる感じ。

値段の安いサイトを探し回ると、FI8905が$95.58でShipping Freeなるところを見つけ、ポチってしまった。もちろん支那のサイトで、詐欺られてるかもしれないので、もしもの場合に犠牲者を増やさない為にURLは貼らない。

7,848円で防水の赤外線LEDが60個付いたネットワークWifiカメラですよ?Unbelievable!

単なるUSBカメラのDC-NCR13Uに比べると、実売の価格は倍程度しか変わらないので、FI8905Wのコストパフォーマンスは凄すぎる。

まあ、DC-NCR13Uは屋外用では無いので比べるのが間違ってるのかもしれんが、屋内用のFI8918Wだって値段はFI8905Wと大差無いし、モーターでカメラ動くし、ネットワークWifiだし、暗闇でもかなり遠くまで映るしコストパフォーマンスがかなり良いと思う。

しかし、円高もあるが、ここまで価格が安くなると国内産業は厳しいねえ…。

【OpenRD Debian6】Zoneminderインストール

とりあえず、USBカメラをOprnRDにサクッと挿してみる。

Mar 21 02:13:10 silverfox kernel: [ 5419.372911] usb 1-1.1.2.1: New USB device found, idVendor=0ac8, idProduct=3420
Mar 21 02:13:10 silverfox kernel: [ 5419.380176] usb 1-1.1.2.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Mar 21 02:13:10 silverfox kernel: [ 5419.387885] usb 1-1.1.2.1: Product: Venus USB2.0 Camera
Mar 21 02:13:10 silverfox kernel: [ 5419.393168] usb 1-1.1.2.1: Manufacturer: Vimicro Corp.
Mar 21 02:13:10 silverfox kernel: [ 5419.400835] usb 1-1.1.2.1: configuration #1 chosen from 1 choice
Mar 21 02:13:10 silverfox kernel: [ 5419.522914] Linux video capture interface: v2.00
Mar 21 02:13:10 silverfox kernel: [ 5419.588143] uvcvideo: Found UVC 1.00 device Venus USB2.0 Camera (0ac8:3420)
Mar 21 02:13:10 silverfox kernel: [ 5419.604133] input: Venus USB2.0 Camera as /devices/platform/orion-ehci.0/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2.1/1-1.1.2.1:1.0/input/input0
Mar 21 02:13:10 silverfox kernel: [ 5419.617889] usbcore: registered new interface driver uvcvideo
Mar 21 02:13:10 silverfox kernel: [ 5419.639815] USB Video Class driver (v0.1.0)
Mar 21 02:13:11 silverfox kernel: [ 5420.784731] usbcore: registered new interface driver snd-usb-audio

挿しただけで認識。
ビデオデバイスのみならず、カメラ内臓マイクロフォンも使えるようだ。

ZoneMinderをサクッと入れてみる。

root@silverfox:~# aptitude install zoneminder
The following NEW packages will be installed:
apache2{a} apache2-mpm-prefork{ab} apache2-mpm-worker{ab} apache2-utils{a}

さすがに何も入れてないから、apache2とかmysqldとか連鎖インストールするものが多いな。勿論Yと答えて暫し待つ。

終わったら、ZoneMinderのWebインターフェースの初期設定。

root@silverfox:~# ln -sf /etc/zm/apache.conf /etc/apache2/conf.d/zoneminder.conf
root@silverfox:~# adduser www-data video
Adding user `www-data’ to group `video’ …
Adding user www-data to group video
Done.

グループ設定を有効にする為に再起動
root@silverfox:~# reboot

ブラウザで

http://192.168.11.8/zm/

とZoneMinderのWebインターフェースを開いてモニタ追加。
設定はこれと同じ。

で、あっさり動いた。しかし、メモリが少ないせいかWebの応答が遅いな…。
後はどの程度のパフォーマンスが出るのかを検証。

marvellの sheeva 1.2GHz は大体、今サーバにしているLet’s note CF-W2のIntel Pentium M 1.1GHzと同じ位ではないかと推測しているが、ZoneMinderをmodect状態にして放置してみる。

Let’s note CF-W2のUbuntu 10.10再構築

サポートされないパッケージ削除をしたせいだと思うが、ZoneMinderがサックリ削除されていた。

Ubuntu 10.10にパッケージがあるので、zoneminder 1.24.2-7ubuntu1を入れる。
xawtv でビデオデバイスがちゃんと動くかテストしようとしたら、segfault で起動せず。

カメラは韓国製の赤外線カメラだが、v4l-info でZoneMinderの設定情報を得る。

noizumi@bluewolf:~$ v4l-info

### v4l2 device info [/dev/video0] ###
general info
VIDIOC_QUERYCAP
driver                  : "uvcvideo"
card                    : "Venus USB2.0 Camera"
bus_info                : "usb-0000:00:1d.7-2.1"
version                 : 0.1.0
capabilities            : 0x4000001 [VIDEO_CAPTURE,STREAMING]

standards

inputs
VIDIOC_ENUMINPUT(0)
index                   : 0
name                    : "Camera 1"
type                    : CAMERA
audioset                : 0
tuner                   : 0
std                     : 0x0 []
status                  : 0x0 []

video capture
VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
index                   : 0
type                    : VIDEO_CAPTURE
flags                   : 0
description             : "YUV 4:2:2 (YUYV)"
pixelformat             : 0x56595559 [YUYV]
VIDIOC_G_FMT(VIDEO_CAPTURE)
type                    : VIDEO_CAPTURE
fmt.pix.width           : 320
fmt.pix.height          : 240
fmt.pix.pixelformat     : 0x56595559 [YUYV]
fmt.pix.field           : NONE
fmt.pix.bytesperline    : 640
fmt.pix.sizeimage       : 153600
fmt.pix.colorspace      : SRGB
fmt.pix.priv            : 0

controls
VIDIOC_QUERYCTRL(BASE+0)
id                      : 9963776
type                    : INTEGER
name                    : "Brightness"
minimum                 : -10
maximum                 : 10
step                    : 1
default_value           : 0
flags                   : 0
VIDIOC_QUERYCTRL(BASE+1)
id                      : 9963777
type                    : INTEGER
name                    : "Contrast"
minimum                 : 0
maximum                 : 20
step                    : 1
default_value           : 20
flags                   : 0
VIDIOC_QUERYCTRL(BASE+2)
id                      : 9963778
type                    : INTEGER
name                    : "Saturation"
minimum                 : 0
maximum                 : 10
step                    : 1
default_value           : 6
flags                   : 0

### video4linux device info [/dev/video0] ###
general info
VIDIOCGCAP
name                    : "Venus USB2.0 Camera"
type                    : 0x1 [CAPTURE]
channels                : 1
audios                  : 0
maxwidth                : 1280
maxheight               : 1024
minwidth                : 48
minheight               : 32

channels
VIDIOCGCHAN(0)
channel                 : 0
name                    : "Camera 1"
tuners                  : 0
flags                   : 0x0 []
type                    : CAMERA
norm                    : 0

tuner
ioctl VIDIOCGTUNER: Invalid argument

audio
ioctl VIDIOCGAUDIO: Invalid argument

picture
VIDIOCGPICT
brightness              : 32768
hue                     : 0
colour                  : 39321
contrast                : 65535
whiteness               : 39321
depth                   : 16
palette                 : YUYV

buffer
ioctl VIDIOCGFBUF: Invalid argument

window
VIDIOCGWIN
x                       : 0
y                       : 0
width                   : 320
height                  : 240
chromakey               : 0
flags                   : 0

という事で、ZoneMinderの設定は次の通りに

デバイスは/dev/video0、デバイスフォーマットがPAL、取り込みパレットがYUYV。

韓国製赤外線カメラはこれさえ合ってれば取りあえず画像は出るようになる。

カメラは上下逆さまに取り付けているのでオリエンテーションは反転。

ZoneMinder設定

昨日の続き

alarmが解除されないのは、フォーラムに載ってたりするが、MonitorのGeneralのタブのLinked Monitorsで自分自身を選択していると、alarm状態にてScoreが50から下がらなくなる。

Monitor設定を開いた時は、Linked Monitorsが空っぽだが、General以外のタブを選択して、Generalタブを再び選択すると現れる。この時に選択状態なら、Ctrlを押しながらクリックして選択解除して保存する。

Zoneの設定は、WikiのDefine Zonesに書いてある。

・Active 普通の設定。
・Inclusive 木など、風で揺れて誤検知しやすいエリアに指定する。他のActiveのZoneが検知中に、この領域で検知すれば有効になる。
・Exclusive 小さい領域の検知に使用する。他のAvtiveの領域検知中だと無効になる。
・Preclusive 光源などに対して指定する。明かりがついた時に監視エリア全体が変化し、誤検知の元となるので、これを指定すると、他のActiveの検知結果が無効になる。
・Inactive この領域を被せると、無効領域になる。

これらの指定を駆使し、トリガのパラメータを弄ると、モニタリング領域の細かい指定ができるようだ。

監視カメラソリューションは、車や人の通過によるパラメータ設定とか、現地合わせが面倒だなあ。

ZoneMinder

最近、ZoneMinder と戯れている。

Ubuntu 10.04 LTS を、Let’s note CF-W2で使用すると、Xが不安定で、DVDやビデオ再生でXがブチ落ちてハングアップしてしまうので、Ubuntu 9.04にZoneMinderを入れたが、リポジトリのパッケージは古いので、本家のUbuntu 9.04用パッケージを入れた。

入れ方は結構Webにあるが、
sudo ln -sf /etc/zm/apache.conf /etc/apache/conf.d/zoneminder.conf
sudo adduser www-data video

と設定して、再起動した方がいいみたい。
わしは、/etc/group を直接編集したから、再起動が必要だったのかよく分からないが、www-data の権限で、/dev/video0 が読めれば大丈夫。

で、ZoneMinderの設定でのハマりがあって、最初からあるモニターに設定をすると、動体検知でのalarm 状態から待機に戻らなくて、延々と画像を記録し続けるというのがある。

最初からあるモニターをさっくり削除して、”Add new monitor”で新しくモニターを作り直すとエンドレスアラーム状態の不具合から解放される。

わしが使っているカメラは、UVCカメラで、Device FormatがPAL、Device PalletがYUVVでZoneMinderで画像が取れる。この方式が違っていても画像が出ないので注意が必要。

既定のゾーンの設定で、Modect(Motion detect)でカメラに自宅前を見張らせておいたら、わしの帰宅を捉えた図(笑)

赤外線カメラなので、木々の葉の赤外線反射で白っぽくなる。

画面の中央やや左に光ファイバーケーブルがあり、こいつが風で結構揺れるのだが、それには反応しないので、よくできた動体検知だ。