概要
- ColabでOpencv GPUを使用する
それだけです。
はじめに
Colabは無料で使えて、なおかつGPUまで無料で使えるのがいいですよね。
ある時、**「OpencvのGPUバージョンも、もしかしたらColabで使えのでは?」**と思い、方法を探したときの備忘録になります。
ColabでOpencv GPU
pip
でインストールできるopencv-python
やopencv-contrib-python
では、GPUは使えないですよね(もし、使えるのであれば僕の苦労が水の泡となってしまう)
なので、1からbuildする必要があります。
また、僕が実験した感じ、opencvのバージョンは最新じゃないとopencvが認識されませんでした。
参考にしたサイトは以下になります。
コード
まずは、opencv
とopencv_contrib
をクローンして来て、buildします。参考サイトのコードそのまま持ってきたので、DNNの部分とかは無くていいですね。
!git clone https://github.com/opencv/opencv
!git clone https://github.com/opencv/opencv_contrib
!mkdir /content/build
%cd /content/build
!cmake -DOPENCV_EXTRA_MODULES_PATH=/content/opencv_contrib/modules -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DBUILD_EXAMPLES=OFF -DWITH_OPENEXR=OFF -DWITH_CUDA=ON -DWITH_CUBLAS=ON -DWITH_CUDNN=ON -DOPENCV_DNN_CUDA=ON /content/opencv
!make -j8 install
割と時間がかかるので、終わったら以下のコマンドで確認
import cv2
print(cv2.cuda.getCudaEnabledDeviceCount())
1
みたいに使えるデバイスの数が出てきたらOK
一応動作確認として動かしてみます。
import cv2
from google.colab.patches import cv2_imshow
img_src = cv2.imread("images.png")
img_gpu_src = cv2.cuda_GpuMat()
img_gpu_src.upload(img_src)
img_gpu_dst = cv2.cuda.resize(img_gpu_src, (300, 300))
img_dst = img_gpu_dst.download()
cv2.imwrite("Ξガンダム.png", img_dst)
無事変換できました。
クシィガンダム...カッコよすぎますね。次の第二部が楽しみです。
#おわりに
今回はColabでOpencv GPUを使う方法を紹介させて頂きました。正直いつ使うかわからないですが、色々調べてやっとこさ出来たので、とりあえず執筆しました。誰かのお役に立てれば幸いです。
閃光のハサウェイが小説と同じ展開かそうでないか、気になりすぎて夜も眠れない...