0
0
Processing speed is a matter of life and death for image processing applications, and I've heard that OpenCV4 is already compatible with GPU execution, but when will GOOGLE COLAB support OpenCV4?
=====================
実行速度は画像処理のアプリにとって非常に重要で、GOOGLE COLABはいつGPU処理に対応するOpenCV4以上をサポートすることになるのでしょうか。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
#1
総合スコア7658
投稿2023/02/14 05:06
編集2023/02/14 06:31google colabで
python
1import cv2 2print(cv2.getBuildInformation())
を実行したら「OpenCL: YES」なので、
ビルドしたOpenCVを動かしてみた
を参考に試してみました
コードは、下記の「検証用コード」から修正し、「ランタイムのタイプ」を「GPU」にして実行します
「OpenCVの画像処理をGPU(CUDA)で高速化する」を読んでresizeをマルチコア対応するお話。
また、入力画像は、下記の「len_std.jpg」(256x256カラー)です
画像認識
下記を実行したら、「CPU = 8.074358057975768[msec]」くらいでした
python
1import sys 2import time 3import cv2 4 5### VALUES 6NUM_REPEAT = 10000 7 8### Read source image 9#img_src = cv2.imread("lena.jpg") 10img_src = cv2.imread("len_std.jpg") 11 12### Run with CPU 13time_start = time.time() 14for i in range (NUM_REPEAT): 15 #img_dst = cv2.resize(img_src, (300, 300)) 16 img_dst = cv2.resize(img_src, (3840, 2160)) 17time_end = time.time() 18print ("CPU = {0}".format((time_end - time_start) * 1000 / NUM_REPEAT) + "[msec]")
下記を実行したら、「OpenCL = 0.7466637849807739[msec]」くらいでした
8.074358057975768 / 0.7466637849807739 ≒ 11倍の高速化
(効果は実行時に割り当てられるgpuの機種等によって変わると思います)
python
1import sys 2import time 3import cv2 4 5### VALUES 6NUM_REPEAT = 10000 7 8### Read source image 9#img_src = cv2.imread("lena.jpg") 10img_src = cv2.UMat(cv2.imread("len_std.jpg")) 11 12### Run with OpenCL 13time_start = time.time() 14for i in range (NUM_REPEAT): 15 #img_dst = cv2.resize(img_src, (300, 300)) 16 img_dst = cv2.resize(img_src, (3840, 2160)) 17time_end = time.time() 18print ("OpenCL = {0}".format((time_end - time_start) * 1000 / NUM_REPEAT) + "[msec]")
#2
総合スコア7658
投稿2023/02/14 06:45
#1 の続き
最適な Colab のプランを選択する
の一番左の「Pay As You Go」を購入して、「ランタイムのタイプを変更」で「GPU」を選んで、「GPUクラス」で「プレミアム」を選ぶと、「OpenCL = 0.5429462671279908[msec]」くらいになりました
8.074358057975768 / 0.5429462671279908 ≒ 15倍の高速化
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
面白い解決法有難うございます。
これからやってみようと思います。
ただ、OpenCLが出ましたので、どこがOpenCLでしょうか。
またどうぞ宜しくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア7658
投稿2023/02/14 08:21
編集2023/02/15 06:37どこがOpenCL
#1 で紹介した
ビルドしたOpenCVを動かしてみた
の「Pythonから呼んでみた」に、
「OpenCLを動かすにはUMatというMat互換のクラスを使うだけで大丈夫っぽい。」
とあります
【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
の16〜22ページも参考になると思います
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
有難うございます!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。