LoginSignup
1
3

OpenCV with CUDA ビルドの備忘録

Last updated at Posted at 2023-04-14

やること

OpenCV with CUDA をビルドする
※OpenCVとOpenCV contribをダウンロードし、一緒にビルドしてあげる必要があるそう。

環境

VisualStudio 2017
CUDA 11.3
Windows10
※OpenCVは、C++で使用することを想定している。

各手順

  1. CMake GUIインストール
    以下に従い、最新版をインストール
    CMake【インストール編】
    cmake のインストール(Windows 上)

  2. 1回目のconfigure実行までは以下を参考にして行う。
    OpenCV + OpenCV Contribをビルド 【Windows編】

  3. 以下を参考に、Pythonのインストール。Python インストール後、要再起動
    https://www.kkaneko.jp/tools/win/windows_opencv.html
    上記参考サイトでは、pipで以下のコマンドをたたいていたが、
    pip install -U pip setuptools
    pip install -U numpy pylint flake8
    pip install h5py
    pip uninstall python-opencv
    追加で、pip install h5py も行う。

  4. 2回目のconfigure実行時は、以下を参考にして行う。
    OpenCV 4.1.0をCUDA対応でビルド
    ・しかし、参考ページとは異なり、WITH_TBBはONにしていない。また、私の場合、以下の赤字の項目に加えて、WITH_CUDA, WITH_OPENGLをON、OPENCV_EXTRA_MODULE_PATHに、opencv_contribフォルダ内のmodulesフォルダへのパスを設定した。
    ・CUDA_ARCH_BIN, CUDA_ARCH_PTXはGPUのcopute capabilityを設定する。
    ・CUDA_GENERATIONは各自のGPUの世代を設定する。
    Opencv with cuda img1.png

  5. 2回目のconfigure実行後、generateを行い、opencvをビルドする。
    詳細は、以下を参照
    OpenCV + OpenCV Contribをビルド 【Windows編】

※以上、ビルドが完了すると、opencvのビルド用フォルダ内に、installフォルダがあることが確認できる。このinstallフォルダ内のincludeフォルダ内にヘッダ、x64→vc15フォルダ内に、bin, libが入っている。

参考までに、ビルド結果、1つ失敗したが問題なかった。

注意点

色んな情報を参考にし、ビルドを試みたが、かなりはまったため、注意点も記載する。

・環境変数でPROXYの設定を行い、再起動しておくこと(PROXY環境下の場合)
→これを行わないと、configureとかのログで、proxyで、アクセスに失敗したといったログが表示されていた。

・OpenCV関連をCドライブ以下に配置した場合は、一応CMAKE guiを管理者権限で実行すること
 → 管理者権限でない場合、データの書き込みがうまくいかず、configure等でエラーが発生する場合があるらしい。
CMakeを用いたOpenCVビルド

・使用しているCUDAに合わせたOpenCVをインストールすること。
 → 最初は、OpenCV4.5.1を使おうとしたが、configureが通らなかった。
※以下に、OpenCV-CUDAの対応関係が記載されているが、CUDA11.3にマッチしたOpenCVの記載はなかった、、、とりあえず、使っているCUDAにあったOpenCVをインストールする必要があるのはわかった。
OpenCVをCUDA付きでビルドする際にサポートされる範囲
 → 私の場合、以下の記事を参考にし、OpenCVは4.5.2を使用した。
OpenCV 4.5.2 + CUDA11.3 + RTX3070 チューニングビルド

・1回目のconfigure押下後に、表示される画面で、赤線部がx64になっていることを確認すること
 → 参考記事では、デフォがx64になっていたが、私の環境では、なぜかデフォがWin32だった、、、その場合、generateでエラーが起き、ビルドもできない。
Opencv with cuda img2.png

・私の環境では、「VS studioのプロジェクトのプロパティ->デバッグ->環境」に、以下、h5pyへのpathを追加しなければ、opencv with cudaを用いたVisualStudioでの処理実行時に、「hdf5.dll, zlib.dlが存在しない」とエラーが出てきてしまった。

「VS studioのプロジェクトのプロパティ->デバッグ->環境」に、以下、h5pyへのpathを追加しなければ、先ほどと同様に、処理実行時に、「hdf5.dll, zlib.dlが存在しない」とエラーが出てきてしまった。

「C:\Program Files\Python39\Lib\site-packages\h5py」

・また、以下のように、cudaの中に備わっている画像処理ライブラリ(NPP)を使えるようにしなければ、プログラム実行時に、
 npp系のdllがないとエラーが出る。

a.「VS studioのプロジェクトのプロパティ->デバッグ->環境」に、以下のようなcudaのbinディレクトリへのpathの追加

「$(CUDA_PATH)\bin」

b.「VS studioのプロジェクトのプロパティ->C/C++->全般->追加のインクルードディレクトリ」に、以下のようなcudaのincludeディレクトリへのpathの追加

「$(CUDA_PATH)\include」

c.「VS studioのプロジェクトのプロパティ->リンカー->全般->追加のライブラリディレクトリ」に、以下のようなcudaのlibディレクトリへのpathの追加

「$(CUDA_PATH)\lib」
「$(CUDA_PATH)\lib\x64」

d.「VS studioのプロジェクトのプロパティ->リンカー->入力->追加の依存ファイル」に、以下のようなcudaの中に備わっている画像処理ライブラリ名の追加

「nppc.lib
 nppial.lib
 nppicc.lib
 nppidei.lib
 nppif.lib
 nppig.lib
 nppim.lib
 nppist.lib
 nppisu.lib
 nppitc.lib
 npps.lib」

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3