Created
November 23, 2020 10:16
-
-
Save hstm/2f1f1cdb31b1bd3c958e5fed6fdbc143 to your computer and use it in GitHub Desktop.
CMake OpenCV with CUDA on Windows 10
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
OpenCV with CUDA | |
OpenCV 4.3.0 and OpenCV Contrib 4.3.0 | |
Visual Studio 2019 | |
CUDA 10.2 | |
Python 3.7 | |
CMake 3.17 | |
NVIdia Codec SDK https://developer.nvidia.com/nvidia-video-codec-sdk | |
Intel MKL version 2019 Update 5 (2019.0.5.068) and TBB version 2019 Update 8 (2019.0.5.068) | |
Intel Media SDK MediaSDK2019R1 | |
Ninja 1.10 | |
// Classic CMake build | |
// generic part | |
"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\tbb\bin\tbbvars.bat" intel64 | |
set "openCvSource=D:/opencv-4.3.0" | |
set "openCVExtraModules=D:/opencv_contrib-4.3.0/modules" | |
set "openCvBuild=%openCvSource%\build" | |
set "buildType=Release" | |
set "generator=Visual Studio 16 2019" | |
set "pathToAnaconda=C:/Users/hstm/anaconda3" | |
set "pyVer=37" | |
// configure with Intel MKL, TBB, VTK, OpenCV non-free, and Eigen | |
"C:\Program Files\CMake\bin\cmake.exe" -B"%openCvBuild%/" -H"%openCvSource%/" -G"%generator%" -DCMAKE_BUILD_TYPE=%buildType% -DOPENCV_EXTRA_MODULES_PATH="%openCVExtraModules%/" ^ | |
-DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON ^ | |
-DBUILD_opencv_world=ON ^ | |
-DWITH_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2" -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DCUDA_ARCH_PTX=7.5 -DWITH_NVCUVID=ON ^ | |
-DWITH_OPENGL=ON -DWITH_VTK=ON -DVTK_DIR=D:/VTK-8.2.0-bin/bin/Release ^ | |
-DWITH_MFX=ON -DMKL_USE_MULTITHREAD=ON -DMKL_WITH_TBB=ON -DWITH_TBB=ON -DOPENCV_ENABLE_NONFREE=ON -DBUILD_opencv_rgbd=OFF ^ | |
-DWITH_EIGEN=ON -DEIGEN_INCLUDE_PATH=D:/eigen-3.3.7 ^ | |
-DBUILD_opencv_python3=ON -DPYTHON3_INCLUDE_DIR=%pathToAnaconda%/include -DPYTHON3_LIBRARY=%pathToAnaconda%/libs/python%pyVer%.lib ^ | |
-DPYTHON3_EXECUTABLE=%pathToAnaconda%/python.exe -DPYTHON3_NUMPY_INCLUDE_DIRS=%pathToAnaconda%/lib/site-packages/numpy/core/include ^ | |
-DPYTHON3_PACKAGES_PATH=%pathToAnaconda%/Lib/site-packages/ -DOPENCV_SKIP_PYTHON_LOADER=ON | |
// with vcpkg | |
-DCMAKE_TOOLCHAIN_FILE=C:/Users/hstm/bin/vcpkg-2020.01/scripts/buildsystems/vcpkg.cmake ^ | |
// stripped build | |
-DBUILD_opencv_cudaarithm=OFF -DBUILD_opencv_cudabgsegm=OFF -DBUILD_opencv_cudafeatures2d=OFF -DBUILD_opencv_cudafilters=OFF -DBUILD_opencv_cudaimgproc=OFF ^ | |
-DBUILD_opencv_cudalegacy=OFF -DBUILD_opencv_cudaobjdetect=OFF -DBUILD_opencv_cudaoptflow=OFF -DBUILD_opencv_cudastereo=OFF -DBUILD_opencv_cudawarping=OFF ^ | |
-DBUILD_opencv_cudacodec=OFF ^ | |
// build | |
"C:\Program Files\CMake\bin\cmake.exe" --build %openCvBuild% --target INSTALL --config Debug | |
// Ninja build | |
// generic part | |
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\VC\Auxiliary\Build\vcvars64.bat" | |
set "ninjaPath=C:/Users/hstm/bin/ninja-win" | |
set path=%ninjaPath%;%path% | |
set "openCvSource=D:/opencv-4.3.0" | |
set "openCVExtraModules=D:/opencv_contrib-4.3.0/modules" | |
set "openCvBuild=%openCvSource%\build" | |
set "buildType=Release" | |
set "generator=Ninja" | |
set "pathToAnaconda=C:/Users/hstm/anaconda3/envs/opencv_cuda" | |
set "pyVer=37" | |
"C:\Program Files\CMake\bin\cmake.exe" -B"%openCvBuild%/" -H"%openCvSource%/" -G"%generator%" -DCMAKE_BUILD_TYPE=%buildType% -DOPENCV_EXTRA_MODULES_PATH="%openCVExtraModules%/" ^ | |
-DINSTALL_TESTS=ON -DINSTALL_C_EXAMPLES=ON -DBUILD_EXAMPLES=ON ^ | |
-DBUILD_opencv_world=ON ^ | |
-DWITH_CUDA=ON -DCUDA_TOOLKIT_ROOT_DIR="C:/Program Files/NVIDIA GPU Computing Toolkit/CUDA/v10.2" -DCUDA_FAST_MATH=ON -DWITH_CUBLAS=ON -DCUDA_ARCH_PTX=7.5 -DWITH_NVCUVID=ON ^ | |
-DWITH_OPENGL=ON ^ | |
-DWITH_MFX=ON ^ | |
-DBUILD_opencv_python3=ON -DPYTHON3_INCLUDE_DIR=%pathToAnaconda%/include ^ | |
-DPYTHON3_LIBRARY=%pathToAnaconda%/libs/python%pyVer%.lib -DPYTHON3_EXECUTABLE=%pathToAnaconda%/python.exe ^ | |
-DPYTHON3_NUMPY_INCLUDE_DIRS=%pathToAnaconda%/lib/site-packages/numpy/core/include ^ | |
-DPYTHON3_PACKAGES_PATH=%pathToAnaconda%/Lib/site-packages/ -DOPENCV_SKIP_PYTHON_LOADER=ON | |
// -DOPENCV_ENABLE_NONFREE=ON -DBUILD_opencv_rgbd=OFF seem to have some conflicts (maybe with NVidia encoder?) | |
// build | |
"C:\Program Files\CMake\bin\cmake.exe" --build %openCvBuild% --target install | |
// Python test | |
set path=%openCvBuild%\install\x64\vc16\bin;%path% | |
python -c "import cv2; print(f'OpenCV: {cv2.__version__} for python installed and working')" | |
// CUDA test | |
"%openCvBuild%\install\x64\vc16\bin\opencv_perf_cudaarithm.exe" --gtest_filter=Sz_Type_Flags_GEMM.GEMM/29 | |
vcpkg config: | |
At the vcpkg directory prompt, install vtk, eigen3, ceres-solver, gflags, glog, hdf5, ffmpeg with the following command: | |
vcpkg install vtk:x64-windows eigen3:x64-windows gflags:x64-windows glog:x64-windows ceres:x64-windows hdf5:x64-windows ffmpeg:x64-windows |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment