SSブログ

カメラ動画データ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++

◆計測仕様

  1. カメラメーカ提供のライブラリを利用しWindowを表示するまでを計測(デフォルト)
  2. OpenCVで利用するMat形式の変換処理を加えて計測。
  3. 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を利用する方法、それにカメラ側データ処理についての調査等を行う必要がある。

 

参考サイト

時間計測

OpenCVデータ


この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。