USBウェブカムを利用した多点監視カメラシステムの製作 (ソフト使用編)
USBウェブカムを利用した多点監視カメラシステムの製作 (構想編)
へ戻る
USBウェブカムを利用した多点監視カメラシステムの製作 (構想編2)
へ戻る
USBウェブカムを利用した多点監視カメラシステムの製作 (ソフト開発編) へ
以下では、windowsXP環境で、3台のUSBウェブカムを動かすやりかたを解説します.プログラム開発は、ソフト開発編をごらんください.
●免責
このプログラムおよび情報を用いた結果生じたいかなる損害にも、当方は関知いたしません.
このプログラムおよび情報は、泥棒が入らないことを保証するものではありません.
なので、このシステムを使用しながら泥棒に入られても、当方はその損害を賠償いたしません.
自己責任でご使用ください.
●windowsXP環境で動く実行ファイルは、こちらをダウンロード (zip) してください.XP以外のOSでは動作確認しておりません. orz
●解凍すると、USBCAMフォルダの下に、カメラA, カメラB, カメラC
というフォルダが現れます.これらが3台のUSBウェブカムにそれぞれ対応します.
これらのフォルダは、単にコピーして増殖させただけです.よって、カメラ台数を増やしたい場合には、フォルダごとコピーすればOKです.フォルダ名は、「監視カメラ4」でも「その4」でもなんでも構いません.
ただし、後述する
USBCAM.ini の一部分を書き換える必要
があります.そこだけケアしてください.
●各フォルダの中には、.exe、.dll、.ini
ファイルが入っています.
.exeをダブルクリックすればプログラムが起動します.
.dllが、openCVのdllです..dllは.exeと同じフォルダに入れておくのが手間要らずで良いと思います.
●USBCAM.ini
ファイルはプログラムの動作を決める重要なファイルです.カスタマイズしなくてもこのまま使って支障はないと思いますが、カメラ台数を増やすとか処理性能を変更したい場合には、実行する前にユーザー自身でカスタマイズしてお使いください.
・CameraNo
0
USBカムを3つ接続したなら、この番号は、0か1か2
のどれかにします.openCVがひっつかむUSBカムの番号が、0から順に振られるみたいだからです.したがって、たとえば、フォルダをコピーして、camera1,
camera2, camera3の3つのフォルダを作りましたら、各フォルダの USBCAM.ini
に、次の要領で番号をふります.フォルダ名は「CAM1」でもなんでもOKです.
カメラAフォルダのUSBCAM.ini → CameraNo
0
カメラBフォルダのUSBCAM.ini →
CameraNo 1
カメラCフォルダのUSBCAM.ini
→ CameraNo 2
・SpeedBackGround
0.2
動き検出の応答速度です.
パラメータ範囲は、いちおう 0.001〜0.999
ですが、現物あわせで0.2ぐらいがちょうどよさそうなので0.2にしてあります.
些細な動きでもJPEG保存させたい場合は、数値を大きくします.
よほどハデな動きでしかJPEG保存したくない場合は、数値を小さくします.
・ThresholdMoveDetect
15
動き検出のしきい値です.
パラメータ範囲は、いちおう 0〜255
ですが、現物あわせで15ぐらいがちょうどよさそうなので15にしてあります.
些細な動きでもJPEG保存させたい場合は、数値を小さくします.
よほどハデな動きでないとJPEG保存しなくしたい場合は、数値を大きくします.
たぶん、50を超える設定だと全然動き検出にひっかからなくなると思うので、50を超えた設定はありえないと思いますが.
・DebugMode
0
動き検出のパラメータを変えたときに、動き検出の効き具合を目で観察したいときがあります.そういうときに、1にします.すると、映像ウインドウが3枚開くようになります.1枚目はカメラ画像.2枚目は平均画像.3枚目は動き検出画像が表示されます.
通常は、無駄な処理をしないために、0にしておくのがよいでしょう.すると、カメラ画像だけが表示されるようになります.
・IntervalFileSave
2000
風でカーテンがそよいでいる画像でも、動きが有ればバシバシとJPEG保存してしまうわけなので、なんか歯止めがほしい場合があります.このパラメータを2000にすると、JPEG保存頻度が、最短でも2000msすなわち2秒になります.つまり2秒以上間隔を開けでJPEG保存しますので、あまりにも大量のJPEGが保存されてしまうのを防ぐことができます.
・FPS
1
USBウェブカムの撮影速度を指定します.1なら、毎秒1コマです.動画撮影するときは普通は毎秒30コマにしますが、本プログラムではJPEGファイルしか保存しないので毎秒1コマでも困らないので1にしました.PCの処理速度的には、毎秒5コマぐらいであれば毎秒1コマと同じでした.でも、さすがに毎秒30コマだと、USBウェブカムを3台も接続すると、PCの処理が重たくなってマウスの反応が遅くなったりします.
・UPDOWN
1
カメラを実際に取り付けるときに、天井に取り付けなくちゃいけない場合があります.こんなときは、カメラ画像がさかさまになってしまいますので、UPDOWN=1
にすることで、カメラ画像をさかさにします.普通にカメラを取り付けたときは、UPDOWN=0 にしておきます.
●実際のUSBCAM.ini
は、カメラAフォルダから順に、こんな内容です.
CameraNo 0
0-
SpeedBackGround 0.2
0.001-0.999
ThresholdMoveDetect 15
0-255
DebugMode 0
1:True 0:False
IntervalFileSave
2000 画面をファイルセーブしたら3000ms以内には次のファイルセーブしない.もし0ならファイルセーブしない
FPS
1
30以下
UPDOWN
1
1または0
1なら上下さかさま映像にする
-----
CameraNo 1
0-
SpeedBackGround 0.2
0.001-0.999
ThresholdMoveDetect 15
0-255
DebugMode 0
1:True 0:False
IntervalFileSave
2000 画面をファイルセーブしたら3000ms以内には次のファイルセーブしない.もし0ならファイルセーブしない
FPS
1
30以下
UPDOWN
0 1または0
1なら上下さかさま映像にする
-----
CameraNo 2
0-
SpeedBackGround 0.2
0.001-0.999
ThresholdMoveDetect 15
0-255
DebugMode 0
1:True 0:False
IntervalFileSave
2000 画面をファイルセーブしたら3000ms以内には次のファイルセーブしない.もし0ならファイルセーブしない
FPS
1
30以下
UPDOWN
0 1または0
1なら上下さかさま映像にする
●.exeを起動すると、コンソール画面と、画像表示画面が開きますが、とくにやることはありません.あとは、まったりと泥棒さんを監視しましょう.といっても、写るのは、家族が洗濯物を干したりする画像ばっかりなんですけどね.
あと、debug
modeのときに表示される動き検出画面には、動きを検出すると、赤い●が表示されます.