2013年11月28日木曜日

OpenCV 2.4.7でOpenCLを試してみた 5

2.4.7からOpenCVをビルドしなくてもOpenCLが利用できるようになっている。


カラー、白黒変換のAPIで処理時間を計測してみた。

処理内容

0 VGAサイズのカラー画像を読み込む

1 matのcloneでデータのコピー
2 cvtColorで白黒に変換
3 matのcloneでデータのコピー

4 表示
5 キー入力待ち

while()で1-5の処理の繰り返す

時間の計測は、1,2,3の前後でcv::getTickCount()を呼び、その差から計算している

CPU版
リリースモードでビルドしているが、Visual Studio から実行しているので、若干オーバヘッドが含まれている



1回目のcvtColorに時間がかかっているが、あとはほぼ一定の時間と思われる
1,3でのデータ転送量の比(3:1)が、そのまま処理時間の比と同じである

OCL版
処理内容は同じであるが使用する関数とMatがOCL対応になる



1回目は、カーネルのコンパイル時間が含まれており、5秒近くの処理時間がかかっている

2回目以降の処理時間は安定しているが、1,3での処理時間が変わらない結果となっている

1,2の処理時間も約4倍となっており、当方の環境ではVGAサイズの画像に対して簡単な処理をOCL化することは、まったく速くならないことが確認された。

特徴点やObject検出など計算量が多い場合には、処理時間の短縮が見込めるかも知れない


メモ
ocl版resizeでは、フィルターtタイプに、INTER NEAREST or INTER LINEARしか使えない
 他の値では、落ちる

0 件のコメント:

コメントを投稿