Win10用命令行编译带有cuda的opencv

0. 环境

笔记本win10
NVIDIA GeForce GTX 1660 Ti


1. 准备x64 Native Tools Command Prompt

1.1 准备Visual Studio Installer

需要安装visual studio 2019

Win10用命令行编译带有cuda的opencv_第1张图片

 

1.2 安装工作负荷

为了安装x64 Native Tools Command Prompt,勾上使用C++的桌面开发
Win10用命令行编译带有cuda的opencv_第2张图片

安装完毕后,会带有x64这个工具

Win10用命令行编译带有cuda的opencv_第3张图片


 

 

2. cuda+cudnn+tensorRT(其实cuda即可)

2.0 环境

笔记本win10
NVIDIA GeForce GTX 1660 Ti
visual studio 2019

2.1 安装cuda tool kit

FastDeploy 1.0要求cuda >= 11.2
cuda >= 11.2
cudnn >= 8.2


https://developer.nvidia.com/cuda-toolkit-archive
选择 11.2下载并安装

确认显卡驱动版本:
到这页面查看cuda driver要求的显卡驱动版本>=461.33:https://docs.nvidia.com/cuda/archive/11.2.2/cuda-toolkit-release-notes/index.html
右键桌面 -> NVIDIA控制面板 -> 系统信息 -> 看到驱动程序版本是 512.78 满足要求

安装cuda_11.2.2_461.33_win10.exe

把C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2添加到PATH
右键我的电脑 -> 高级系统设置 -> 环境变量 -> 编辑Path -> 添加C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

2.2 TensorRT

从Release Notes查找需要的版本
https://docs.nvidia.com/deeplearning/tensorrt/archives/index.html#trt_8

看到TensorRT 8.4.3 适配cuDNN 8.4.1

TensorRT 8.4.3
下载源码
https://developer.nvidia.com/nvidia-tensorrt-8x-download
下载了TensorRT 8.4 GA Update 2 for x86_64 Architecture,TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4.zip

EA 版本代表抢先体验(在正式发布之前)。
GA 代表通用性。 表示稳定版,经过全面测试。
亲亲,这边建议你用TensorRT最新版本的 GA release 呢

解压TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4.zip
把TensorRT-8.4.3.1.Windows10.x86_64.cuda-11.6.cudnn8.4内的TensorRT-8.4.3.1,拷贝到D:\Programs\TensorRT-8.4.3.1

2.3 cudnn

https://developer.nvidia.com/rdp/cudnn-archive
https://docs.nvidia.com/deeplearning/cudnn/install-guide/index.html#install-windows

下载了:cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive,下载这个需要登陆。

2.3.1 zlib

下载并解压到D盘:http://www.winimage.com/zLibDll/zlib123dllx64.zip

Add the directory path of zlibwapi.dll to the environment variable PATH.
右键我的电脑 -> 高级系统设置 -> 环境变量 -> 编辑Path -> 添加D:\Programs\zlib123dllx64\dll_x64

2.3.2 安装

解压cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive.zip


解压出来的文件夹cudnn-windows-x86_64-8.4.1.50_cuda11.6-archive中的文件,
复制到
C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2

2.4. 验证

 win+r–>输入cmd–>回车 在命令行下输入nvcc -V
Microsoft Windows [版本 10.0.19044.2251]
(c) Microsoft Corporation。保留所有权利。

C:\Users\qjfen>nvcc -V
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2021 NVIDIA Corporation
Built on Sun_Feb_14_22:08:44_Pacific_Standard_Time_2021
Cuda compilation tools, release 11.2, V11.2.152
Build cuda_11.2.r11.2/compiler.29618528_0

C:\Users\qjfen>


3 opencv

3.0 环境

win10
NVIDIA GeForce GTX 1660 Ti
Visual Studio 2019
cuda 11.2.2
TensorRT-8.4.3.1
cudnn-windows 8.4.1


3.1 准备源码(opencv3.4)

https://opencv.org/releases/
下载了
opencv-3.4.16.tar.gz 

放在E:\Workspaces

解压

3.2. x64 Native Tools Command Prompt for VS 2019

在Windows菜单中,找到x64 Native Tools Command Prompt for VS 2019打开,执行如下命令

E:
cd Workspaces\opencv-3.4.16
mkdir build && cd build

// --------------------------------------------------------------------------------
// no cuda

cmake .. -G "Visual Studio 16 2019" -A x64 ^
         -DBUILD_DOCS=OFF ^
         -DBUILD_EXAMPLES=OFF ^
         -DBUILD_TESTS=OFF ^
         -DBUILD_PERF_TESTS=OFF ^
         -DSOFTFP=OFF ^
         -DCMAKE_INSTALL_PREFIX="E:\Workspaces\opencv-3.4.16\install"


// --------------------------------------------------------------------------------
// with cuda

cmake .. -G "Visual Studio 16 2019" -A x64 ^
         -DBUILD_DOCS=OFF ^
         -DBUILD_EXAMPLES=OFF ^
         -DBUILD_TESTS=OFF ^
         -DBUILD_PERF_TESTS=OFF ^
         -DSOFTFP=OFF ^
         -DCMAKE_INSTALL_PREFIX="E:\Workspaces\opencv-3.4.16\install" ^
         -DCUDA_TOOLKIT_ROOT_DIR="C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.2\bin" ^
         -DCUDA_ARCH_BIN=7.2 ^
         -DCUDA_ARCH_PTX=7.2 ^
         -DWITH_CUDA=1 ^
         -DENABLE_FAST_MATH=1 ^
         -DCUDA_FAST_MATH=1 ^
         -DWITH_CUBLAS=1

编译

msbuild OpenCV.sln /m /p:Configuration=Release /p:Platform=x64

Win10用命令行编译带有cuda的opencv_第4张图片

 Win10用命令行编译带有cuda的opencv_第5张图片

 

安装

msbuild INSTALL.vcxproj /m /p:Configuration=Release /p:Platform=x64

Win10用命令行编译带有cuda的opencv_第6张图片
3.3 测试

 

visual studio 2019打开E:\Workspaces\opencv-3.4.16\samples\cpp\example_cmake
修改CMakeList.txt

添加
set(CMAKE_BUILD_TYPE "Release")


find_package(OpenCV REQUIRED)
修改为
# find_package(OpenCV REQUIRED)
set(OPENCV_INSTALL_DIR "E:\\Workspaces\\opencv-3.4.16\\install")
include(${OPENCV_INSTALL_DIR}/OpenCVConfig.cmake)

编译

Win10用命令行编译带有cuda的opencv_第7张图片

运行

运行前需要把E:\Workspaces\opencv-3.4.16\install\x64\vc16\bin目录下的dll拷贝到可执行程序opencv_sample.exe的同一目录下。

Win10用命令行编译带有cuda的opencv_第8张图片

 opencv-cpu版本:

Win10用命令行编译带有cuda的opencv_第9张图片

 opencv-cuda版本:

Win10用命令行编译带有cuda的opencv_第10张图片

 

 

你可能感兴趣的:(OpenCV,深度学习,c++,开发语言)