カメラ動画データ1フレームをOpenCV Mat配列にコピーするのに要する時間 [OpenCV]
カメラから画像1フレーム分のデータを取得しWindowに表示するまでの時間を、下記の条件で計測した。
計測条件
◆カメラ仕様
- 解像度: 2592 pixels × 1944 pixels
- フレームレート: 14 fps
- モノクロ
- インターフェース: USB 3.0
◆PC仕様
- プロセッサ: Intel Core i7-3930K CPU 3.20GHz
- RAM: 16.0GB
- OS: Windows 7 Professional
◆開発環境
- 環境: Visual Studio 2010 Professional
- 言語: C/C++
◆計測仕様
- カメラメーカ提供のライブラリを利用しWindowを表示するまでを計測(デフォルト)
- OpenCVで利用するMat形式の変換処理を加えて計測。
- 2項に加えWindow作成をメーカ製からOpenCV用(C++関数)に変更して計測。
計測方法
プロジェクト形式は、C/C++コンソールアプリケーションとし、時間計測は以下の関数を利用して計測。
- QueryPerformanceFrequency(&frequency)
- QueryPerformanceCounter(&start_time)
- QueryPerformanceCounter(&end_time)
結果
計測を10回行い平均値、最大値、最小値を求めた。(単位:秒)
計測条件No | 平均 | 最大 | 最小 |
1 | 0.079 | 0.222 | 0.002 |
2 | 0.268 | 0.403 | 0.223 |
3 | 0.314 | 0.297 | 0.284 |
考察
OpenCV用データ形式への変換処理は大きな配列のコピーとなるため、その処理に多大な時間がかかっている。これは許容できない値であり、何らかの対応が必要となる。
例えば配列の高速コピーを行う方法、コピーしないでOpenCVを利用する方法、それにカメラ側データ処理についての調査等を行う必要がある。
参考サイト
時間計測
- http://soundengine.jp/wordpress/tips/try/67/
- http://www.hiramine.com/programming/windows/timerperformancecomparison.html
OpenCVデータ
- http://ameblo.jp/ns-programming-memo/entry-11229431837.html
- http://d.hatena.ne.jp/jumbo8dekai/20111230/1325229941
- http://d.hatena.ne.jp/sakusan_net/20080626/1214449256
2013-11-13 00:34
nice!(1)
コメント(0)
トラックバック(0)
コメント 0