OpenCV2.3

OpenCV-2.3.2-GPU-demo-pack-win32を試す

スポンサーリンク

久々の投稿ですがSourceforgのOpenCVのページにGPUデモのプログラムが公開されていました。

http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.3.1/

 

バージョンもOpenCV2.3.2 って、まだ公開されていないのに...

 

で早速、このファイルをダウンロードし、試してみました。

私の環境は

OS:Windows7 64bit (ただし、サンプルは32bit動作)

CPU:Core i7 870 (2.93GHz)

GPU:NVIDIA GeForce GTX470

 

で、パフォーマンス評価用のサンプル(demo_performance.exe)を実行した時の結果がこちら↓

CPU msec  GPU msec  SPEEDUP  DESCRIPTION
matchTemplate
4805x86.5src 3000, templ 5, 32F, CCORR
54521x24.9 src 3000, templ 25, 32F, CCORR
79231x25.4 src 3000, templ 5, 32F, CCORR
minMaxLoc
7 1 x4.81 src 2000, 32F, no mask
28 2 x14.3 src 4000, 32F, no mask
 106 3 x28.2 src 8000, 32F, no mask
 remap   
 8 0 x35.9 src 1000,8UC1
 30 0 x50.6 src 2000,8UC1
 124 2 x59.1 src 4000,8UC1
 12 0 x32.2 src 1000,8UC3
 42 1 x34.6 src 2000,8UC3
 164 4 x34.7 src 4000,8UC3
 11 0 x37.8 src 1000,8UC4
 40 0 x41.4 src 2000,8UC4
 156 3 x43.7 src 4000,8UC4
 29 0 x79.7 src 1000,16SC3
 117 1 x88.8 src 2000,16SC3
 481 4 x98.1 src 4000,16SC3
 dft   
 107 3 x29.2 size 1000, 32FC2, complex-to complex
 4028 x45.3 size 2000, 32FC2, complex-to complex
 1781 32 x55.4 size 4000, 32FC2, complex-to complex
 cornerHarris
 129 19 x6.55 size 2000, 32F
 499 70 x7.06 size 4000, 32F
 integral
2815x1.82 size 4000, 8U
209x2.04 size 4000, 8U
209x2.11 size 4000, 8U
219x2.2 size 4000, 8U
219x2.15 size 4000, 8U
norm
1395x27.3size 2000, 32FC4, NORM_INF
3108x35.2size 3000, 32FC4, NORM_INF
55514x38.2size 4000, 32FC4, NORM_INF
meanShift
3048x36.3 size 400, 8UC3 vs 8UC4
118729x40.2 size 800, 8UC3 vs 8UC4
SURF
5179117x43.9
BruteForceMatcher
12308x144match
12579x136knnMatch, 2
13019x139knnMatch, 3
12209x135radiusMatch
magnitude
410x86size 2000
881x85size 3000
1621x95size 4000
add
100x20.1size 2000, 32F
221x21.4size 3000, 32F
411x23.9size 4000, 32F
log
250x55.8size 2000, 32F
540x66.1size 3000, 32F
971x71.3size 4000, 32F
exp
250x53size 2000, 32F
580x73.7size 3000, 32F
101x74.6size 4000, 32F
mulSpectrums
240x53size 2000, 32F
580x73.7size 3000, 32F
1011x74.6size 4000, 32F
resize
70x33.5size 1000, 8UC1, up
280x50.4size 2000, 8UC1, up
641x53.3size 3000, 8UC1, up
20x26.6size 1000, 8UC1, down
80x51.6size 2000, 8UC1, down
180x94.6size 3000, 8UC1, down
212x8.5size 1000, 8UC3, up
828x10.2size 2000, 8UC3, up
18717x10.9size 3000, 8UC3, up
70x13.8size 1000, 8UC3, down
261x23.8size 2000, 8UC3, down
581x32.7size 3000, 8UC3, down
271x17.1size 1000, 8UC4, up
1084x26size 2000, 8UC4, up
2509x27.5size 3000, 8UC4, up
90x14.6size 1000, 8UC4, down
320x37.4size 1000, 8UC4, down
731x52size 1000, 8UC4, down
92x4.72size 1000, 32FC1, up
416x6.25size 2000, 32FC1, up
8813x6.45size 3000, 32FC1, up
20x4.92size 1000, 32FC1, down
100x12.1size 2000, 32FC1, down
231x17.2size 3000, 32FC1, down
cvtColor
290x37.1size 4000, CV_GRAY2BGRA
821x61.8size 4000, CV_BGR2YCrCb
1051x71.3size 4000, CV_YCrCb2BGR
1231x84.4size 4000, CV_BGR2XYZ
1161x83.7size 4000, CV_XYZ2BGR
1952x72.9size 4000, CV_BGR2HSV
5502x189size 4000, CV_HSV2BGR
erode 
93x2.65size 2000
227x3.07size 3000
3911x3.35size 4000
threshold   
00 x1.62size 1000, 8U, THRESH_BINARY
10 x6.15size 2000, 8U, THRESH_BINARY
30 x11.1size 3000, 8U, THRESH_BINARY
60 x11.4size 4000, 8U, THRESH_BINARY
10 x7.49size 1000, 32F, THRESH_BINARY
60 x18.8size 2000, 32F, THRESH_BINARY
140 x19.6size 3000, 32F, THRESH_BINARY
251 x21.9size 4000, 32F, THRESH_BINARY
pow   
50x32.9size 1000, 32F
200x57.1size 2000, 32F
440x58.2size 3000, 32F
831x55.8size 4000, 32F
projectPoints
492x23.3size 1000000
372x16.1size 714285
261x24.5size510203
190x20.9size 364430
120x21.6size 230307
solvePnPRansac
217118x1.84num_points 5000
392120x3.25num_points 18800
1315127x10.3num_points 70688
4984160x31num_points 265786
GaussianBlur
1 0x4.268UC1, size 1000
6 1x5.618UC1, size 2000
14 2x6.088UC1, size 3000
24 3x6.368UC1, size 4000
5 0x7.578UC4, size 1000
24 2x10.28UC4, size 2000
56 4x11.88UC4, size 3000
100 8x11.78UC4, size 4000
2 0x5.1632FC1, size 1000
8 1x7.3932FC1, size 2000
17 2x7.632FC1, size 3000
33 3x8.6332FC1, size 4000
pryDown
185x3.558UC1, size 4000
102x3.628UC1, size 3000
41x3.418UC1, size 2000
10x2.748UC1, size 1000
646x9.528UC3, size 4000
383x108UC3, size 3000
161x9.268UC3, size 2000
40x7.718UC3, size 1000
667x8.988UC4, size 4000
384x9.148UC4, size 3000
172x6.368UC4, size 2000
40x7.988UC4, size 1000
1076x15.616SC4, size 4000
603x15.616SC4, size 3000
261x14.916SC4, size 2000
70x10.216SC4, size 1000
295x5.732FC1, size 4000
173x5.9232FC1, size 3000
71x5.6532FC1, size 2000
10x4.6232FC1, size 1000
886x1332FC3, size 4000
523x13.832FC3, size 3000
221x12.732FC3, size 2000
50x4.9232FC3, size 1000
1227x1732FC4, size 4000
674x16.932FC4, size 3000
301x16.632FC4, size 2000
70x14.432FC4, size 1000
pyrUp
515x8.978UC1, size 2000
121x8.528UC1, size 1000
1458x17.38UC3, size 2000
362x16.58UC3, size 1000
19811x17.68UC4, size 2000
482x16.78UC4, size 1000
1708x19.616SC3, size 2000
442x20.116SC3, size 1000
695x12.232FC1, size 2000
171x11.432FC1, size 1000
2057x27.332FC3, size 2000
211x26.232FC3, size 1000
equalizeHist
21x1.93size 1000
102x4.78size 2000
233x6.37size 3000
Canny
293 x9.63
reduce
10x7.79size 1000, dim = 0
10x10.1size 1000, dim = 1
60x14.5size 2000, dim = 0
60x25.2size 2000, dim = 1
130x17.5size 3000, dim = 0
130x29.3size 3000, dim = 1

average GPU speedup: x29.202

 

sizeの表記は、size1000の場合、画像サイズは1000×1000となります。

 

一般的にGPUを使った画像処理ではメモリの転送時間がかかり処理時間トータルでは、あまり高速化されない

と言われる場合も多いので、ソースコードを見てみないと、いまいち結果をそのまま信用できない...

でも、とりあえずは、そこそこ速そうな結果でした

 

ソースコードは こちら

https://code.ros.org/trac/opencv/changeset/6950?utm_source=twitterfeed&utm_medium=twitter

 

OpenCVへ戻る

 

コメント

タイトルとURLをコピーしました