[表紙頁]へ  関連記事の目次へ

[2018年7月7日]
多カメラ動画並走に、挑戦中 

1台の“PC(マシン)”に複数の“USBカメラ”を繋ぎ込んで、どれだけの数の画面/窓に“動画表示/並走”が出来るか?ってのを課題にしているのだが、それを「自作プログラム(UCam10.exe)」を逐次改造し、様々なUSBカメラ(ジャンク品)を買い集めながら、しつこく/執念深くやって来た。

今回、やっと、6画面/6窓まで、全動画並走が出来るようになった♪(図1)
多少のギクシャク感はあるが、これは「自作プログラム」の記述ミスに起因する部分もある。(動画1<クリック>

一番の勝因は、特性の似通ったカメラ(群)が手に入って、それらを組み合わせたこと。
 +Microsoft製HD-3000−1台
 +Logicool製Qcam Orbit/Sphere AF(V-UCC22)−3台
 +Logicool製QVR-1(V-UU22)−2台

それに、多画面表示が容易な“横長表示”のマシンもヒントになったが、「自作プログラム」を、自分で好きなように改変出来るってことが、何より大きい♪

6画面並走は実現出来たが、(インジケータ/ラジオ・ボタンの)“走査の速さ”を見ていると、カメラ群をちゃんと揃えると、10台位までは並走可能なのではないか?と思った。尤も、現状では、そんなに並走台数は必要無いけれど、一度確かめてみたい気もする。
 
−−−−−−−−−−−−−−−−−−−−−−−−−
+++ 自作プログラム(部分) +++

「自作プログラム(UCam10.exe)」の全体については、また別に整理して記録しておきたいと思っているが、まだまだ落ち着きそうにないので、取り敢えず、部分的な留意点だけを残す。

「6画面/6窓並走」プログラムの“作成道具”として、最初に選んだ「VC++ 2008 Express」と「OpenCV 2.0」で十分だったこと。
途中で、何度もVC++OpenCVのバージョン・アップも考えたが、“入れ替えの煩わしさ”の方が重荷だったので、結局は替えず。

・・・カメラからの映像信号は、OpenCVの基本形通りに、読み込んで指定窓(Mado[1]など)に表示する。
それを、カメラ6台分、単純に並べただけだ。(図3)
基本から少し外れている箇所は、cv::waitKey(1)内の「待ち時間(1)」で、入門書などには、cv::waitKey(30)と書いてあるが、(“0”はダメだが、)“1”でも構わないようだ。
ここで、“キー入力検出”が出来るらしいのだが、実際には、(30)にしても、キーが上手く読めなかった。(他の仕事が忙し過ぎるからだろうか?苦笑)

“映像読み込み指示”は、cama >> fa_buf;などだが、カメラからの映像信号を捕捉出来ない時は、この一行指示ですら、なかなか応答が無くて、時間が掛かる。
そんな時は、set_indicator(cam_no1);が次に進まないから、メニュー上の「ラジオ・ボタン」が停まったままになるわけだ。
(系と相性の悪いカメラだと、これがずっと停まったままになり、プログラムが一種の暴走状態になってしまって、電源を落とさないと、けりが付かなくなることがある)

逆に、「ラジオ・ボタン」がスムーズ/流れるように走っていれば、カメラ(群)からの読み込みが速いから、カメラ台数ももっと増やせそうだ!?ってことになる。(笑)

このルーチンの前部で、カメラの“映像サイズ(VGA、QVGAなど)”の指定をしている。(図4<クリック>
例えば、cama.set(CV_CAP_PROP_FRAME_WIDTH, FwL)で、横幅:Fwlを640...などにセット出来るようにしている。
しかし、6画面/6窓位になると、VGA(640x480)では、“映像読み出し”がスムーズでない時や、全然読み出せない時がある。(色々な物事が、重荷になって来るからだろうな)
なので、比較的安定して読み出せるQVGA(320x240)に落とせるようにしてある。

+++ 8画面 & 画面撮影 +++

6画面/6窓が成功したので、調子付いて、8画面/8窓も試してみた。(図5)
...だが、追加した有り合せのUSBカメラ(UCAM DLA200H)の方が付いて来なかった。(図5右下2窓)
ちゃんとした映像信号が読み出せないまま、(ニセ信号で?)通過してしまっている。
これに替えて、「Logicool製HD 720p(Webcam C270)」も試したが、やはり、映像は出なかった。

目下の悩みは、“更に信号の性質の悪いカメラ”を付加した場合、「自作プログラム」が応答しなくなるドツボにはまる!)ことで、[Ctrl+Shift+Esc]キーで呼び出す[プロセス終了]など、ソフト的な方法では、どうやっても終了出来ず。
最後は、「電源ボタン」で強制的に終らせる方法しかない。
毎回、こんなことをやらねばならないプログラムでは、ダメだ!(怒泣)

更にカメラ台数を増やすには、素性の悪いものは使えないようだ。やはり、上記と同じカメラを揃えねばならないかな?
しかし、全部が“可動式”では、コストパフォーマンスも低いし、面白味も少ない。
出来れば、固定型で安価なのを揃えたいが、選ぶのがなかなか難しい。
後日、「V-U0019(C210)」を買ってみたのだが、失敗だった!今の系には入れられない。全部が、それらだけの系にすれば、動く可能性は有りそうだが。

まぁ、これだけ画面数/窓数が多くなると、通常なら“映像キャプチャの仕方”が問題だが、今はデータ採取だけだから、デジカメ(DMC-FX01など)を据えて撮影している。(図6<クリック>
しかし、近距離だと歪が大きくて、如何にも見苦しい!
出来れば、ボタン一つで、スクリーン全体を(動)記録して行く方法も考えたい。(貧乏暇無し!笑)


[表紙頁]へ  関連記事の目次へ