准备材料:
YOLOv4:下载地址
CUDA10.2:下载地址
cudnn7.6.5.32:下载地址
opencv3.4.10
1、安装CUDA
安装cuda首先查看自己所使用的gpu型号,cuda enable列表中找到对应的型号,注意区分下图中的台式与笔记本的型号,本人电脑为RTX2060。
下载完cuda10.2之后,直接按照默认方式安装即可,这里可以先退出杀毒软件,否则会不停弹出拦截。安装完cuda后,将cudnn中的文件拷贝进cuda相应目录。
随后需要修改添加环境变量与系统变量,如下图所示:
环境变量:系统变量:
然后重启,修改后的环境变量生效。
命令行模式下(cmd)进入CUDA安装目录的\extras\demo_suite工作目录,然后分别运行
bandwidthTest.exe和deviceQuery.exe
如果输出中都出现Result=Pass,就成功了。
2、编译YOLOv4为DLL
在darknet-master\build\darknet路径下找到yolo_cpp_dll.vcxproj,用记事本打开,修改其中两处CUDA 10.0为CUDA 10.2。随后用VS2015打开yolo_cpp_dll.sln。右击“项目”->“属性”->“C\C++”->“预处理器”->“预处理器定义”,首行添加“CUDNN"。接着以“x64 release”方式编译(即菜单栏“生成”->“生成解决方案”)完成后,在darknet-master\build\darknet\x64目录下新生成:yolo_cpp_dll.dll和yolo_cpp_dll.lib,同时该目录下还有pthreadGC2.dll、pthreadVC2.dll。这4个文件后续会用到。
3、创建VS2015工程
创建一个工程,右击“项目”->“属性”属性页中,配置为:Release,平台为:x64。
1、添加“配置属性”>“VC++目录”>“包含目录”如下图:
2、添加“配置属性”>“VC++目录”>“库目录”如下图:
3、“配置属性”>“链接器”>“输入”>“附加依赖项”如下图:
4、添加dll
将yolo_cpp_dll.dll、pthreadGC2.dll、pthreadVC2.dll和opencv3.4.10\opencv\build\x64\vc14\bin目录下opencv_world3410.dll一共4个文件全部拷贝到工程根目录下,根目录的打开方式是:项目右击,点击“在文件资源管理器中打开文件夹”,将上述4个文件拷贝进弹出的文件夹中即可。
另一种dll添加方式,与上述方式选一种即可。修改环境变量,将darknet-master\build\darknet\x64与opencv3.4.10\opencv\build\x64\vc14\bin两条路径添加进环境变量Path中,然后重启。
5、添加程序
程序里面用到的weights cfg name文件在这里下载:下载链接
#define _CRT_SECURE_NO_WARNINGS
#define OPENCV
#include <iostream>
#include <vector>
#include <opencv2/core.hpp>