文章目录

    • 环境准备
    • cmake编译
    • 注意事项
    • vs2015编译
    • 测试结果对比

环境准备

1 vs2015
2 anaconda+Python3.7.4+numpy
3 cuda和cudnn环境(cuda10.0+cudnn7.6.5)
4 cmake
5 OpenCV4.5.0以及OpenCV-contrib4.5.0压缩包
OpenCV4.5.0下载地址
https://www.bzblog.online/opencv/opencv-4.5.0/

OpenCV-contrib4.5.0下载地址:
https://www.bzblog.online/opencv/opencv_contrib/

cmake编译

将下载的exe文件进行安装,zip压缩包解压,得到如下目录;

进入OpenCV目录下,新建一个文件夹gpubuild,作为cmake编译文件存放目录。
打开cmake,目录选择如下:

完成后点击Configure
第一次运行,记得参数选择x64

点击Finish
等待configure完成,在这个界面中进行如下更改:
将build_java勾选取消、build_tests勾选取消、with vtk勾选取消

勾选上这个OPENCV_ENABLE_NONFREE

然后添加contrib的目录:

然后根据自己的anaconda中Python和numpy的路径来进行如下配置:

到这一步Python的环境就配置好了,接下来配置GPU环境:
勾选上WITH_CUDA

由于没有WITH_CUDNN,因此就手动添加,点击Add Entry进行如下设置

搜索cuda关键字

点击config运行之后,再点击generate安装,如果一切OK即可完成CMake部分;

注意事项

第一次编译的新手会遇到各种问题,其中最常见的一个网络问题就是无法下载第三方库,导致CMake编译失败,这里时候需要手动下载一下;

保证opencv\sources\.cache目录下的每个文件都不为0kb(0kb代表下载缓存失败)
需要到CMakeDownloadLog.txt查看缺失哪些文件

下载完成之后通过cmd命令查看对应文件的哈希值,如一致则将文件命名为:md5-文件名,删除原来为0KB的文件;

certutil -hashfile 文件绝对路径 MD5

重复上述操作,确保sources\.cache所以文件都下载了。

查看确保txt没有未下载项

vs2015编译

切换到release模型下,右键点击ALL_BUILD选择【生成….】运行完成

再次右键选择install,选择【生成…】这两次过程都会比较漫长,编译完成之后,就会得到intall目录,我们需要的就是它,其它都可以删掉了。这样我们就完成了OpenCV CUDA的编译。
那么这个Python版本的OpenCV是否已经安装了,实际上在点击install进行生成的时候,就已经把Python版本的OpenCV模块安装到Python环境中去了。

不过通过这种方式安装的Python版OpenCV通过pip list却无法显示出来,因为这个命令只能显示通过pip安装的模块,但是却是可以使用的。

测试结果对比

在yolov4推理代码中添加GPU调用代码

net.setPreferableBackend(cv.dnn.DNN_BACKEND_CUDA)
net.setPreferableTarget(cv.dnn.DNN_TARGET_CUDA)

CPU版推理时间

GPU版推理时间

加速推理效果还是很明显的!!!

参考博客:
https://blog.csdn.net/weixin_39717367/article/details/112118885
https://blog.csdn.net/qq_37781464/article/details/110078370

如果阅读本文对你有用,欢迎关注点赞评论收藏呀!!!
2021年2月23日12:42:43

本文地址:https://blog.csdn.net/JulyLi2019/article/details/113973614