cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015

  • 安装所需软件/库
  • Step1. 下载安装Anaconda3
  • Step2. 下载安装cmake 3.14
  • Step3. 下载安装CUDA 10.0
  • Step4. 下载安装cuDNN 7.6
  • Step5. 使用VS和CUDA编译测试文件
  • Step6. 下载安装TBB
  • Step7. 下载编译opencv-4.0.0和contrib
  • 支线任务

Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015)

参考资料:

  • windows 10 64bit下安装Tensorflow+Keras+VS2015+CUDA8.0 GPU加速;
  • Win10 下Cmake编译配置 Opencv3.1 + Cuda7.5 + VS2013;
  • WIN10 + OpenCV3.4 + CUDA8.0 + Cmake3.9.0 + TBB + VS2015配置/重编译;
  • Win10安装CUDA10和cuDNN;
  • OpenCV 3.1.0 重编译——支持CUDA8.0;
  • opencv+cuda编译出现LNK2019 cv::__termination错误;
  • 图像质量评价方法PSNR+SSIM&&评估指标SROCC,PLCC.

---------------------- 超长文多图预警!!! ----------------------

安装所需软件/库

  • Anaconda3;
  • cmake 3.14;
  • CUDA 10.0;
  • cuDNN 7.6;
  • opencv-4.0.0;
  • opencv_contrib-4.0.0;
  • TBB 2019.

我下载的软件和库如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第1张图片

Step1. 下载安装Anaconda3

点击链接:Anaconda3,进入下载页面,注意先选择Windows系统,再点击Download进行下载,如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第2张图片
下载完成开始安装软件。其他步骤可以选择默认,直接点击Next>。安装路径也可以使用默认的安装位置(C盘),这里我改在了D盘, 可根据个人喜好选择。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第3张图片
路径选好后,下面这一步,记得把红框部分都勾选上,然后点击Install,等待安装:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第4张图片
安装完成之后,打开cmd命令窗口,输入

python -V

出现

Python 3.7.3 :: Anaconda, Inc.

证明安装成功。
下图我自己安装了3.7.2的版本,所以显示结果稍有差别。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第5张图片
Anaconda3下载安装完毕!

Step2. 下载安装cmake 3.14

进入cmake 3.14下载页。选择适合个人操作系统的 .msi 文件进行下载,比如我个人的电脑是64位操作系统,选择 cmake-3.14.5-win64-x64.msi ,如下图所示;如果是32位,则选择 cmake-3.14.5-win32-x86.msi

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第6张图片
下载完成,先把之前安装的旧版本cmake卸载掉,才可安装新版本cmake。(如果电脑已安装cmake,也可尝试不安装新版本,使用旧版本cmake进行编译,也许同样能编译成功)

安装进入下图界面注意选择第三项,添加cmake到系统路径,下面是否创建桌面图标根据个人喜好勾选,选好后点击Next进入下一步。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第7张图片
安装路径根据个人喜好修改,这里我把C盘改成了D盘。如不愿意修改,也可以安装到默认路径C:\Program Files\CMake\。路径修改好后,直接点击Next进入下一步,开始软件安装。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第8张图片
安装完成后出现以下画面,点击Finish,结束安装。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第9张图片
cmake安装完毕!

Step3. 下载安装CUDA 10.0

进入CUDA 10.0下载页。Win10操作系统,可按照下图深绿色部分进行选择;如果非Win10,则根据个人操作系统选择合适的选项。选好后点击下图红色框内的Download进行下载。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第10张图片
下载完成后,打开安装程序。提示将CUDA的安装文件提取到临时文件夹中,提取路径可选择默认(提取到C盘)或自定义,然后点击OK。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第11张图片
等待文件提取:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第12张图片
提取结束,出现NVIDIA程序安装界面:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第13张图片
出现以下画面,AGREE AND CONTINUE点起来。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第14张图片
选择Custom(Advanced),然后NEXT。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第15张图片
这里,全都要,然后NEXT。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第16张图片
这里进入关键一步,选择安装位置,可选择默认或自定义。这些路径在后面配置环境变量的时候需要用到,一定要注意保持一致。比如在这里我都安装在了D盘,之后环境变量也要写D盘的路径。都选好后点击NEXT,开始安装。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第17张图片
等待安装:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第18张图片
安装完成后,NEXT。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第19张图片
然后CLOSE,结束安装。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第20张图片
安装完成,配置系统环境变量。首先确认是否下图的两项环境变量:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第21张图片

将刚才CUDA安装路径添下的相应文件夹添加到Path中,如下图:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第22张图片
验证CUDA是否安装成功。cmd或是PowerShell中输入:

nvcc -V

如正确安装,则会出现以下输出结果:

在这里插入图片描述
CUDA安装、配置完成!

Step4. 下载安装cuDNN 7.6

点击此链接:cuDNN 7.6,进入下载页。下载前必须登陆NVIDIA账号,如果已有NVIDIA账号,点击Login,进入登陆界面;如果没有账号,则需要注册以后登陆。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第23张图片
登陆界面如下,输入注册好的账号和密码,点击Login进入下载页。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第24张图片
进入下载页面后先勾选同意条款 I Agree To… ,然后选择与cuda版本对应的cuDNN库,我们这里选择第一个 … for CUDA 10.0 ,然后Win10系统选择 cuDNN Library for Windows 10 ,开始下载cuDNN库。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第25张图片
下载完成后解压文件,解压出来的cuda目录下包含如下内容:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第26张图片
接着,我们将以上文件夹中的文件,复制到已安装的cuda文件夹的相应位置下:

  • 将bin中的 cudnn64_7.dll ,复制到D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\bin
  • 将include中的 cudnn.h ,复制到D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\include
  • 将lib\x64中的 cudnn.lib ,复制到D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64.

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第27张图片
请根据个人安装cuda的路径,找到文件复制的位置。如果之前cuda的安装路径为默认路径,则把上面的路径的盘符D:都改为C:即可找到相应路径。

以上文件都复制完以后,将库路径D:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0\lib\x64,添加到环境变量中。(同样地,路径需要根据个人情况做相应修改)

点击右下角的Environment Variables环境变量按钮:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第28张图片
双击Path行进入编辑环境变量界面:
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第29张图片
右边点击New新建按钮,添加红色方框内的路径:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第30张图片

cuDNN安装、配置完毕!

Step5. 使用VS和CUDA编译测试文件

进入D:\Program Files\NVIDIA Corporation\CUDA Samples\v10.0文件夹,打开Samples_vs2015.sln这个工程:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第31张图片
编译生成1_Utilities中所有的文件。注意红框部分选择Releasex64

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第32张图片
如果编译成功,则可以看到下图提示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第33张图片
D:\Program Files\NVIDIA Corporation\CUDA Samples\v10.0\bin\win64\Release中会生成一些应用程序和库文件,我们只需要deviceQuery.exebandwidthTest.exe进行验证。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第34张图片
在文件夹空白处Shift+鼠标右键,选择Open PowerShell window here,打开PowerShell
窗口,运行deviceQuery.exe。窗口输入:

.\deviceQuery.exe

显示Result = Pass,表示安装测试成功。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第35张图片
接下来运行bandwidthTest.exe,窗口输入:

.\bandwidthTest.exe

同样的,显示Result = Pass,表示安装测试成功。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第36张图片
VS和CUDA编译测试完毕!

Step6. 下载安装TBB

点此链接下载TBB 2019, 下载页面如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第37张图片
下载后,根据个人喜好,可将文件解压到任意路径,这里解压到了D:\Program Files目录下,如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第38张图片
然后设置环境变量,将D:\Program Files\tbb2019_20190410oss_win\tbb2019_20190410oss\bin\intel64\vc14添加到Path中:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第39张图片
TBB安装、配置完成!

Step7. 下载编译opencv-4.0.0和contrib

点击以下链接进行下载:

  • opencv-4.0.0;
  • opencv_contrib-4.0.0.

新建一个文件夹,用来存放提取出来的opencv和contrib源码文件,方便后续编译查找和添加路径,这里我们命名为opencv400_source(可根据个人喜好命名):

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第40张图片
再新建一个文件夹,作为目标文件夹,编译后的opencv文件将会生成到该目录下,命名为opencv400_CUDA
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第41张图片
打开D:\opencv400_source\opencv_contrib-4.0.0\modules\cudev路径下的CMakeLists.txt文件:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第42张图片

set(the_description “CUDA device layer”)

下一行增加

set(OPENCV_SKIP_DLLMAIN_GENERATION ON)

这么做是为了避免后续使用VS2015生成opencv库文件时,出现LNK2019 cv::__termination错误。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第43张图片
打开cmake,设置源码路径D:\opencv400_source\opencv-4.0.0\sources和目标路径D:\opencv400_CUDA,然后点击Configure:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第44张图片
弹出编译环境选择界面,选择Visual Studio 14 2015x64,然后点击Finish:cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第45张图片
接下来进行编译配置:

  • 添加contrib路径:D:\opencv400_source\opencv_contrib-4.0.0\modules
  • 勾选OPENCV_ENABLE_NONFREE
  • 勾选WITH_CUDA
  • 勾选WITH_TBB

然后点击Configure。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第46张图片

在这里插入图片描述
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第47张图片

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第48张图片
这时还会出现红色部分,继续进行相应配置:

  • 添加TBB相关路径;
  • 去掉勾选WITH_MATLAB

TBB路径可对照下图进行相应添加。去掉勾选WITH_MATLAB,是为了在之后VS2015编译过程中,避免出现 Error: MEXEXT: Unsupported platform 形式的错误。配置完成点击Configure。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第49张图片
之后出现TBB_VER_FILE的路径配置,已自动填写,检查确认无误,直接点击Configure。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第50张图片
表单全白,说明配置没有问题,点击Generate。
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第51张图片
显示Generating done,说明cmake编译opencv顺利完成!
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第52张图片

编译生成的文件在目标文件夹D:\opencv400_CUDA下,用VS2015打开OpenCV.sln工程:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第53张图片
先不要急着ALL_BUILD,先生成opencv_coreopencv_cudacodec。如果这两个项目能够通过,我们再全部生成;如果报错,说明之前的cmake编译有问题,根据错误提示进行相应的查找和分析,这样可以节省大量的时间。
生成顺序如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第54张图片
opencv_core生成成功:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第55张图片
opencv_cudacodec生成成功:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第56张图片
接下来开始ALL_BUILD,生成过程相当漫长,可以该干嘛干嘛去。完事回来,蹦出以下错误:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第57张图片
该错误提示链接失败,无法打开opencv_cudabgsegmopencv_cudaobjdetect的库文件。接下来我们单独对这两个项目重新生成:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第58张图片
喜闻乐见,opencv_cudabgsegm生成成功:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第59张图片
opencv_cudaobjdetect也同样生成成功:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第60张图片
这时,我们可以在D:\opencv400_CUDA\lib\Debug目录下,确认生成相应的.lib文件:
cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第61张图片
重新ALL_BUILD,坐等结果。。。
生成成功!没有报错!
这就预示着之后生成INSTALL项目一路坦途一马平川,该填的坑都填平了,可以哼着小曲小嗨一会儿。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第62张图片
鼠标轻轻一抖,INSTALL生成起来。果不其然,生成得舒心又顺畅:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第63张图片
install文件夹下,出现了相当亲切的文件目录:binincludex64\vc14\lib,接下来大家知道该怎么做了。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第64张图片
配置编译好的opencv。
首先配置环境变量,在Path中添加D:\opencv400_CUDA\install\x64\vc14\bin,注销或重启电脑使其生效:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第65张图片
接下来配置VS项目属性。
新建一个控制台应用程序,在项目名称上右键,然后点击 Properties(属性):
VC++ Directories 中添加 Include DirectoriesLibrary Directories

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第66张图片
Include Directories 中添加以下两个路径:

D:\opencv400_CUDA\install\include\opencv2
D:\opencv400_CUDA\install\include

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第67张图片
Library Directories中添加以下路径:

D:\opencv400_CUDA\install\x64\vc14\lib

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第68张图片
接下来要输入附加依赖项,就是在 LinkerInputAdditional Dependencies 里面,把生成的所有 .lib的文件名都写上。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第69张图片

下面是一个比较便捷的操作,以生成debug的库名称为例。在 D:\opencv400_CUDA\install\x64\vc14\lib 文件夹空白处Shift+鼠标右键,点击 Open PowerShell window here,打开PowerShell命令窗口。

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第70张图片
输入以下命令行:

dir *d.lib -Name >debug_lib.txt

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第71张图片

在文件夹中会生成一个名为 debug_lib.txt 的文本文件,里面包含了所有debug版本的库文件名,如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第72张图片

Ctrl+A选中全部文本,将所有文件名复制粘贴到 Additional Dependencies 的文本框中,点击OK:

在这里插入图片描述

到这里,opencv配置完成!

接下来要做的就是测试刚才编译生成的opencv库,看看是否可以正常使用GPU加速。
找到 D:\opencv400_source\opencv-4.0.0\sources\samples\cpp\tutorial_code\gpu\gpu-basics-similarity 文件夹下的 gpu-basics-similarity.cpp 文件:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第73张图片

把该文件中的内容复制到刚才配置好opencv的测试工程中,注意选择x64Debug版本,然后在项目名称上右键,点击Build(生成):

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第74张图片
项目顺利生成:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第75张图片
到此,opencv编译和测试全部完成!!!
用GPU尽情加速吧,少年!!!

支线任务

如果你想把这个例程跑起来,就需要对上面的代码做一定的修改。不难,有兴趣的朋友可以自己尝试。
将下图作为输入图像:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第76张图片
将原图缩小5分之一再放大回原尺寸的图像,作为待测图像,如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第77张图片
运行结束,将会得到CPU和GPU运算时间对比,以及图像质量评价结果,如下图所示:

cmake编译opencv: Win10+cmake3.14.4+cuda10.0+cudnn7.6+opencv-4.0.0+contrib+vs2015_第78张图片
Mission completed! Well done, Boy!

你可能感兴趣的:(深度学习)