コンテンツにスキップ

Build OpenCV with CUDA

Requirement

CUDA

インストール済だった為作業無し

cuDNN

bin,include,libそれぞれ下記にコピー

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.6

note

プロジェクト出力

build
$ cd hogehoge/opencv
$ mkdir build
$ cd build

# minimum?
$ cmake .. -G "Visual Studio 17 2022" -A x64
# cuda
$ cmake .. -G "Visual Studio 17 2022" -A x64 -T host=x64 -DCMAKE_BUILD_TYPE=RELEASE -DBUILD_SHARED_LIBS=OFF -DWITH_CUDA=ON -DCUDA_NVCC_FLAGS="-allow-unsupported-compiler" -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DWITH_CUDNN=ON -DWITH_NVCUVID=ON -DOPENCV_DNN_CUDA=ON -DOPENCV_EXTRA_MODULES_PATH=E:/Research/opencv/opencv_contrib/modules -DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DWITH_PYTHON=ON -DINSTALL_PYTHON_EXAMPLES=ON -DBUILD_opencv_python2=OFF -DBUILD_opencv_python3=ON -DBUILD_EXAMPLES=ON -DWITH_OPENGL=ON -DOPENCV_ENABLE_NONFREE=OFF -DBUILD_opencv_world=ON

-DOPENCV_EXTRA_MODULES_PATH: 任意の場所を指定

2022 Visual Studio 17 2022
2019 Visual Studio 16 2019

opencv world not in build folder - OpenCV Q&A Forum

opencv_world*.dllは標準ではビルドされないのでオプションにて指定する必要あり

ビルド

$ cd hogehoge/opencv/build
$ cmake --build . --config RELEASE --target INSTALL

path

opencv\opencv\build\installに出力される

利用するにあたり、PATHを通す(Visual C++ではいらないかも?)

  • opencv\opencv\build\install\include
  • opencv\opencv\build\install\x64\vc17\staticlib
  • (opencv\opencv\build\install): 必要性について未検証

Visual C++

c++コンソールアプリケーションにて検証

プロジェクトのプロパティ>VC++ディレクトリにてインクルードディレクトリ,ライブラリディレクトリにそれぞれ先程のパスを設定

[ProjectName]>プロパティより、下記項目を設定

  • VC++ディレクトリ
    • インクルードディレクトリ
      opencv\opencv\build\install\include
    • ライブラリディレクトリ
      opencv\opencv\build\install\x64\vc17\staticlib
  • リンカー>全般
    • 追加のライブラリディレクトリ
      opencv\opencv\build\install\x64\vc17\staticlib

ライブラリが正しくビルドされていない?

Q&A

一致するランタイムライブラリを使用する

再度ビルドしてみる

  • OpenCV + OpenCV Contribをビルド 【Windows編】 | スワローインキュベート

  • Environment

    • OpenCV: 4.6.0: Clone後に最新となっていたので該当tagにswitch
    • OpenCV Contrib: 4.6.0
  • CMake guiにてオプション追加

    • BUILD_CUDA_STUBS
    • BUILD_opencv_world
    • WITH_CUDA
    • OPENCV_EXTRA_MODULES_PATH=[opencv_contrib]/modules
  • Visual Studio 2022にてOpenCV.slnを開く

  • ビルド>パッチビルドより下記のビルドにチェックを入れ、ビルド
    • ALL_BUILD
    • INSTALL

Debugビルドが通らなかった為Debugについては無効化してパッチビルド

再度VC++を設定

VC++ include E:\Research\opencv\opencv_build\install\include
VC++ librry E:\Research\opencv\opencv_build\install\x64\vc16\lib

Reference

default use

Releases·opencv/opencvよりopencv-x.x.x-vc14_vc15.exeをDL


最終更新日: August 14, 2023
作成日: August 14, 2023