YoloV4学习笔记1_构建环境及测试(win10+VC2015+opencv4.4+yolov4)

YOLOV4学习笔记1_构建环境及测试(win10+VC2015+opencv4.4+yolov4)

本文参考:
https://space.bilibili.com/401357415 (感谢“神秘的二进制”手把手教学)
https://www.bilibili.com/video/BV1YZ4y1t7MH?spm_id_from=333.337.search-card.all.click
YOLOV4下载地址(其中有详细的使用说明):
https://github.com/AlexeyAB/darknet
下面网址中收集了yolo使用中的一些问题,遇到问题可以查询。
https://www.ccoderun.ca/programming/darknet_faq/#memory_consumption

一、下载yolov4的代码darknet,编译cpu版,并用coco数据集的训练结果进行图片检测实验

为了避免准备gpu版的各种环境,先简后难,先编译cpu版进行测试。

1、下载yolov4的代码darknet,

下载地址:https://github.com/AlexeyAB/darknet
准备好opencv的环境,版本4.0以上

2、编译darknet工程

vc2015打开 darknet-master\build\darknet\darknet_no_gpu.sln (cpu版)(VC2015以上的版本也可以)
修改工程属性中的目标平台为10.,原来是8.
在工程属性中添加opencv的include,lib路径,把opencv的dll复制到 darknet-master\build\darknet\x64目录下。
选择 64位编译模式,编译,成功生成 darknet-master\build\darknet\x64\darknet_no_gpu.exe

3、用coco数据集的训练结果进行图片检测实验

下载yolov4的coco数据集的权重文件yolov4.weights
https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.weights
把yolov4.weights放到darknet-master\build\darknet\x64\目录下
运行命令:darknet_no_gpu.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output dog.jpg
已制作了cmd文件“darknet_coco_no_gpu_test.cmd”方便执行此命令
dog.jpg识别成功并显示识别结果图像(release版)
注意:debug版时未显示识别结果图像,提示opecv什么错误,把结果图像保存到了“predictions.png”中

为了整洁,创建"dataset_coco"文件夹,把coco数据相关的文件都放到"dataset_coco"文件夹下,修改coco.data中的names路径,则cmd测试命令改为如下:
darknet_no_gpu.exe detector test dataset_coco/coco.data dataset_coco/yolov4.cfg dataset_coco/yolov4.weights -ext_output dog.jpg

最简单cpu版编译和测试就完成了,下面配置gpu版的环境并完成相同测试

二、编译gpu版,并用coco数据集的训练结果进行图片检测实验

*gpu版需要的环境比较多,操作相对复杂。
要求CC>=3.0,即gpu的算力,查看gpu算力:
https://en.wikipedia.org/wiki/CUDA#GPUs_supported
https://blog.csdn.net/qq_41070955/article/details/108269915
笔记本的GTX1070算力是6.1

下载cuda(ver10.2及以上)、cuDNN。
cuda下载地址: 注意cuda11.1版开始不支持vs2015了,如果电脑里没有2015之上的vs,就不要装更高版本的cuda。当然,如果不需要在vc中用cuda,则不要紧,安装cuda时选择不安装vs相关内容即可。
https://developer.nvidia.com/cuda-toolkit-archive (我们下载11.0版本 2.9G 比较大)
cuDNN下载地址:注意cuDNN和cuda版本必须相匹配,下载页上有匹配的说明。
https://developer.nvidia.com/rdp/cudnn-archive
下载cuDNN时需要注册登录(账号l**[email protected] 密码 Lx8***8)

安装cuda
安装cuda时,一定注意确认自定义安装选项中,CUDA下的“visual studio integration”是被选中状态(如果要vc调用的话)。
cmd总输入 nvcc --version 可以查看cuda是否安装成功。
YoloV4学习笔记1_构建环境及测试(win10+VC2015+opencv4.4+yolov4)_第1张图片

解压缩cuDNN的文件包,將里面的内容全部覆盖到CUDA的安装目录下:
D:\Program Files\NVIDia GPU Computing Toolkit\CUDA\v11.0

修改 darknet工程文件中的cuda版本号
文本文件打开 darknet.vcxproj,搜索"11.0"(原工程默认用的11.1),把版本号改为11.0,有两处。

vc2015打开 darknet-master\build\darknet\darknet.sln (gpu版)
修改工程属性中的目标平台为10.,原来是8.
在工程属性中添加opencv的include,lib路径,把opencv的dll复制到 darknet-master\build\darknet\x64目录下。

选择 64位编译模式,编译,出现如下错误:
nvcc fatal : Unsupported gpu architecture ‘compute_86’
原因:
1070GPU的算力为6.1,不支持8.6,而最新的工程中的CUDA配置了8.6参数
解决办法:
删除compute_86,sm_86参数。1660ti的算力支持7.5,故修改后的配置参数如下:
compute_50,sm_50
compute_61,sm_61
YoloV4学习笔记1_构建环境及测试(win10+VC2015+opencv4.4+yolov4)_第2张图片

重新编译,成功生成 darknet-master\build\darknet\x64\darknet.exe

cmd测试命令改为如下:
darknet.exe detector test dataset_coco/coco.data dataset_coco/yolov4.cfg dataset_coco/yolov4.weights -ext_output dog.jpg
已制作了cmd文件“darknet_coco_test.cmd”方便执行此命令

YoloV4学习笔记1_构建环境及测试(win10+VC2015+opencv4.4+yolov4)_第3张图片

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