win10下Opencv源码编译支持CUDA加速的Python环境,超级详细教程!
环境准备
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