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

[2018年4月28日]
カメラ切替表示のエラーを、調べてみた 

1画面(窓)をQVGA(320x240)」にしたらエラー発生までの時間が安定に再現性良くなったことや、「エラー停止までの時間表示」をしたら数値データが採り易くなったことなどから、根気良くデータを採取してグラフ化してみた。(図1)
随分綺麗に、直線上に乗っていた!
これなら、幾秒毎に表示を切り替えていたら、幾分後に(自作4画面表示の)プログラムがエラーで落ちるかが分かるわけだ。(わら)

(開始から暫くは機嫌良く、2台1組を2組、計4台の「USB2.0カメラ映像」を切替表示している)自作プログラムが、突然エラーで停止する要因は何か?は、未だ分からないが、例えば、「USERオブジェクト数」が1,400を超えると、エラーが発生するというのが、調べた結果だ。(図2<クリック>
この「オブジェクト数」は、(計算による推定値だが)「切替回数」に近い。...だけど、果たして、これが何の限界値なのかは不明。

エラーは、“(USB)カメラがオープンできない”ためで、これはOpenCVから出されるエラーのようだ。
これはマシンが、ノートDELL D430で、搭載メモリが2GBWin7というのが前提条件だが、並行して、カメラ6台を接続してあるNEC VY21A/W-5でも、この特性にそれ程大きな差はないようだ。...まぁ、他の系ではどうなるかは、分からないけど。

こうした「メモリ・リーク」や「ハンドル・リーク」、「USERオジェクトの増大」などは好ましくはないものの、今は抑える腕力が無いので、発生するものだということにしておいて、その対策として、エラーが起きる前に、(自作)プログラムを一度停止させて、自動的に解放/クリアしてしまう方法を考えている。
ただ、それを次に自動的に再起動させる方法が、なかなか難しそう。別プログラムを用意して、其処から停止・再起動をやらせる方法しかないかも。

−−−−−−−−−−−−−−−−−−−−−−−−−
+++ データの採取 +++

当苑の看視系は、“不審者の監視”や“防犯のための録画”のように四六時中看ているわけではないので、大方は“チラ看”だが、ふと気が付いたらエラーが発生していたって状況だ。

データ採取”は、エラー発生で、プログラムが停止しているので、やおら、「タスクマネージャ」を呼び出して、「プロセス」を表示させ、画面全体を丸ごと[Prt Scr]でコピーし、画像化ソフトで“jpgファイル”にする方法にした。(図3、図4<クリック>

それらの図から数値を読み取って、MS EXCELに写して、グラフ化した。
手間は大して掛からないのだが、時間待ちをしなければいけないので、時間が掛かって仕方が無い。(まぁ、他の作業をしたり、本を読んだりしているので、無駄な時間にはなっていないが)

採取した「プロセス値」は、いずれも殆ど一定値になっている。
それらには、なぜその値で止まるのかは良く分からないし、直接、エラー発生に関連しているようにも思えない。

ただ、「切替時間」と「動作維持期間」の関係は、役に立つ!ので、それをグラフにしたわけ。
これが分かれば、エラー発生前に自動的に処置が出来る。(はず!)

...勿論、(自作)プログラム内で「例外発生」をトラップして、プログラム自身である程度の処置は出来るかもしれない。
例えば、“自滅”とか、“別プログラム起動”とかは出来るはずだ。
しかし、同じ(自)プログラムを内部から即時再起動するのは、USB系の多重アクセスに繋がるからダメなのは分かっている。
実は、もっとスマートな解法が有るのかもしれない...とは思うが、今は兎に角、行け行けドンドン!


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