编译的安装顺序是,CUDA+CUDNN(安装包与压缩包不要删除,不要删除,不要删除,防止踩坑的后备),然后是VisualStdio,其次是OPENCV + 扩展库,最后是cmake。
环境变量配置,参考博文window10运行yolov4 GPU版 编译yolo_cpp_dll_小井dsc的博客-CSDN博客。其中,CUDA与OPENCV都需要进行环境配置,这对于以后的编译十分重要。
CUDA可以从nvidia官网进行安装,然后cudnn下载cuDNN Library for Windows (x86)即可,将各个文件夹下的分别对应放入cuda的文件夹内,然后配置环境变量。
VS是最好装的一个软件了,不需要博文参考。
OPENCV的编译坑非常多。参考:Windows系统下配置具有Contrib扩展模块的GPU版OpenCV(Windows10+VS2015+OpenCV3.4.3+CUDA9.0+cuDNN7.0)_stjuliet的博客-CSDN博客
opencv4.2.0-windows-cuda-源码编译 - 知乎
1.无法下载一些.data,.i,或者zip文件。在opencv的build打开cmakedownload.txt,里边有下载的网址,下载完成后放入.cache对应的文件夹下,命名规则是hash值+文件名,cmakedownload.txt中也有相应提示。
如若hash值不对应的话,再进行config时,依然会报错,而且以后进行编译也会有隐患,最好自己下载。
2.必须找到with_cuda这个选项,其次还需要设置扩展库的路径,注意斜杠的方向,或者从cmake中找,然后自动填充路径。
编译yolov4
1.先cmake,找到cuda选项、cudnn选项以及OPENCV_DIR等,必须全部找到,没有找到CUDA的话,说明安装顺序有问题,卸载CUDA再重新安装一遍。如果OPENCV_DIR没有的话,在Cmakelist中加入
注意:一定要找到build文件下,并且注意时反斜杠。
2.再进行生成,打开项目。
3.在VS中,找到BUILDALL选项,生成(也可以在此配置好库、依赖等),如果用不到import darknet的话,则不需要配置。然后找到install,右击生成。完成编译。
编译yolo_cpp_dll.dll 思路参考:WIN10+YOLOv4,windows上完美执行YOLOv4目标检测丶Java教程网-IT开发者们的技术天堂
1.先修改yolo_cpp_dll.vcxproj中的CUDA版本与VS中的版本一致。路径在:C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Microsoft\VC\v160\BuildCustomizations\CUDA 11.2.props,设置成Releas ×64
2.在VS中打开,进行生成,如果生成失败的话,出现错误MSB3721,那么将编译版本进行选择一下。都选择到最新即可。
3.添加包含库、库目录 参考:WIN10+YOLOv4,windows上完美执行YOLOv4目标检测丶Java教程网-IT开发者们的技术天堂
包含库
C:\Program Files (x86)\opencv\build\include
C:\Program Files (x86)\opencv\build\include\opencv
C:\Program Files (x86)\opencv\build\include\opencv2
库目录
C:\Program Files (x86)\opencv\build\x64\vc14\lib
添加依赖,解决报错Link错误,无法解析外部符号,参考:opencv4.2.0-windows-cuda-源码编译 - 知乎
CUDA C/C++选项中,修改device compute值参考https://www.cnblogs.com/learnAI/archive/2004/01/13/12436540.html
然后右击项目,即可生成。将生成后的yolo_cpp_dll.lib拷贝至根目录下,即可,解决报错OSError: [WinError 126] 找不到指定的模块。
在daeknet.py中添加,解决报错ForceCPU未定义问题。
os.environ["CUDA_VISIBLE_DEVICES"] = '0'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)