質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

意見交換

クローズ

5回答

780閲覧

When will GOOGLE COLAB support OpenCV4?

insecticide

総合スコア315

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

0グッド

0クリップ

投稿2023/02/13 09:47

編集2023/02/13 13:40

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

jbpb0

総合スコア7651

投稿2023/02/14 05:06

編集2023/02/14 06:31

google 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

jbpb0

総合スコア7651

投稿2023/02/14 06:45

#1 の続き

最適な Colab のプランを選択する
の一番左の「Pay As You Go」を購入して、「ランタイムのタイプを変更」で「GPU」を選んで、「GPUクラス」で「プレミアム」を選ぶと、「OpenCL = 0.5429462671279908[msec]」くらいになりました
8.074358057975768 / 0.5429462671279908 ≒ 15倍の高速化

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

insecticide

総合スコア315

投稿2023/02/14 08:07

面白い解決法有難うございます。
これからやってみようと思います。
ただ、OpenCLが出ましたので、どこがOpenCLでしょうか。
またどうぞ宜しくお願い致します。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

jbpb0

総合スコア7651

投稿2023/02/14 08:21

編集2023/02/15 06:37

#3

どこがOpenCL

#1 で紹介した
ビルドしたOpenCVを動かしてみた
の「Pythonから呼んでみた」に、
「OpenCLを動かすにはUMatというMat互換のクラスを使うだけで大丈夫っぽい。」
とあります

【関東GPGPU勉強会#3】OpenCVの新機能 UMatを先取りしよう
の16〜22ページも参考になると思います

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#5

insecticide

総合スコア315

投稿2023/02/14 14:09

有難うございます!

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問