【OpenCV】OpenCV 4.3.0(CUDA 10.1)をWindowsでビルドしてPythonから使う方法~導入編~

画像に関わる方なら、OpenCVを使用した経験があると思います。

OpenCVはC++やPythonでよく使用されるIntel製の画像処理のオープンソースライブラリであり、誰でも利用できます。

使用するOSはWindowsもしくはLinux、ほとんどがUbuntuだと思いますがこの2つのOSが代表的であり、言語としてはC++・Pythonで多く用いられています。

画像を扱う際には、深層学習などでNvidia製のGPUを使用することが一般的になってきましたが、OpenCVでGPUを使用するには環境構築という観点から、ややハードルが高いです。

Windowsであるとさらにハードルが高くなりますが、今回はWindows環境でGPUありのOpenCVをPythonで使用できるように環境を構築したいと思います。

Windows環境でのビルドは作業内容が複雑になるので、全3回に分けて紹介します。第1回目は概略とどのようにビルドするかの紹介です。

開発者はLinux環境 or WSLを使えということですね。

この記事(3回分)を読んだら理解できること

  • Windows環境でのGPU有効のOlienCVのソースからのビルド方法
  • Anacondaの仮想環境でソースからビルドしたGPU有効のOlienCVをPythonで利用する方法

どういうときに使用するのか

大前提として、Pythonではpipで提供されているopencv-pythonでは、GPUは使用できません。また、youtube-dlで有名な動画を扱うffmpegも使用できないため、ソースからビルドする必要があります。

  • PythonでOpenCVを使用し、GPUで高速化するケース
  • C++でOpenCVを使用し、GPUで高速化するケース
  • PythonでOpenCVの中でffmpegを使用するケース

事前にインストールが必要なソフトウェア・ライブラリとバージョン

PythonやNumpyなど以下のソフトウェア・ライブラリは仮想環境でインストールではなく本体にインストールしてます。

  • Visual Studio 2019
  • Git
  • CMake 3.16.3(バージョン関係ないと思いますが記載してます。)
  • Anaconda
  • Python 3.7系(3.8系や3.6系でも問題ないと思いますが、合わした方が良いと思います。)
  • Numpy 1.19.4(バージョン関係ないと思いますが記載してます。)
  • CUDA 10.1

環境・バージョン

  • Windows 1809(バージョン関係ないと思いますが記載してます。)
  • Geforce RTX 2080 Ti(Compute Capability 7.5)
    (後で各々のハードウェアでOpenCVをソースからビルドするときにビルド時間短縮のために、Compute Capabilityのバージョンを確認してもらいます。ビルド自体にバージョンは関係ありません。
    Compute Capability確認画面)

概略

非常に作業内容が多いので、ここで一旦まとめたいと思います。以下のフローで実現したいと思います。

  1. ソフトウェア・ライブラリの事前準備
  2. CMakeのための事前準備
  3. CMakeによるOpenCVビルド
  4. PythonでのGPU有効でのOpenCV動作確認
  5. Anacondaの仮想環境でソースビルドしたOpenCVの使用方法

まとめ

WindowsでOpenCVのGPU版をビルドするイメージは掴めたでしょうか?第2回の記事では、事前にインストールが必要なソフトウェア・ライブラリの紹介とそのためのアクション、さらにCMakeを利用したビルドを行うための事前準備について紹介したいと思います。

第1回目の記事はこちらです。【OpenCV】OpenCV 4.3.0(CUDA 10.1)をWindowsでビルドしてPythonから使う方法~導入編~

第2回目の記事はこちらです。【OpenCV】OpenCV 4.3.0(CUDA 10.1)をWindowsでビルドしてPythonから使う方法~事前準備編~

第3回目の記事はこちらです。【OpenCV】OpenCV 4.3.0(CUDA 10.1)をWindowsでビルドしてPythonから使う方法~ビルド編~