Darknet版yolo算法实现,生成darknet.exe(Windows10下的安装、编译、实现)

PS:本文主要用于自我整理总结,涉及代码已成功在我电脑上运行,如果恰好帮到各位,不甚荣幸。

基础环境

本人实现环境及配置:
Windows10
CUDA10.2
cudnn8.0.5.39
Visual Studio 2019
opencv-2.4.13.6-vc14

代码下载:(下载后解压到相应文件夹)
GitHub:代码链接: link
权重下载:(看自己需求,在GitHub中都可以下载到,这里给出yolov4的权重)
权重链接: link

配置步骤

一、更改darknet.vcxproj

在你解压文件夹下".\darknet-master\build\darknet"找到darknet.vcxproj文件,选择记事本模式打开,搜索出以下两处CUDA:
第一处CUDA
第二处CUDA
将这两处的版本改为自己电脑的CUDA版本,比如我的就将11.1改为10.2

二、配置与生成darknet.exe

在同级目录中,用Visual Studio 2019打开darknet.sln,然后将上方解决方案配置和解决方案平台更改为Release和x64
在这里插入图片描述

然后右键解决方案中的darknet项目,选择属性进行配置:
选择VC++目录
包含目录配置
库目录配置
配置后,重新生成解决方案,如果没有其他错误,会在子目录"./x64"中生成darknet.exe
在这里插入图片描述

三、遇到的问题

报警信息过长,我只展示其中一部分,关键信息(加粗位置)对应上,可能你也是遇到同样问题。
①SDK版本选择问题
问题:
严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB8036 The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the
解决方案:
在属性页-常规中,将目标平台版本更换成10.0版本
目标平台版本
参考:
https://www.cnblogs.com/xiachongkun/p/8757146.html

②CUDA配置
问题:

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 MSB3721 命令““CUDA\v10.2\bin\nvcc.exe” -gencode=arch=compute_35,code=“sm_35,compute_35” -gencode=arch=compute_86,code=“sm_86,compute_86” --use-local-env -ccbin
解决方案:
将配置页-CUDA C/C+±Device中的Code Generation的compute_86,sm_86改成52
在这里插入图片描述
参考:
https://www.jianshu.com/p/420e30202575

运行

当一切顺利,在"./x64"文件夹下生成darknet.exe后,将之前下载好的权重yolov4.weights也放在"./x64"文件夹下,然后打开命令提示符,跳转到"./x64"文件夹,输入命令
darknet.exe detector test cfg/coco.data cfg/yolov4.cfg yolov4.weights -ext_output dog.jpg
即可得到下面的结果,代表运行成功,后面可以尝试训练自己数据集了。
在这里插入图片描述

备注

以上运行配置,命令,所需文件,都可以在源码下载GitHub页面上找到,希望大家认真查看吧,如果中途有其他问题可以一起讨论,不行就自己多搜索下,大佬还是很多的。

更新

2021/07/02

问题记录:
帮别人装下环境调试,成功生成darknet.exe了,也运行成功,导入图片,但是没有框显示出来??
问题解决:
因为之前看GitHub中作者写的最低标准是CUDA版本是10.2,所以帮人装的也是这个,但是可能与他的显卡不配套,计算检测框显示不出来,后来将CUDA版本换成10.1就可以了,成功达到出来检测框的结果。

2021/07/28

更新了如何训练自己的数据,想看的移步到这里
Windows10下Darknet版yolov4-tiny算法训练自己的数据

2021/10/22

更新了如何改变保存模型的步数及命名。
对darknet源码进行修改,改变保存模型的步数及命名

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
YOLO(You Only Look Once)是一种目标检测算法,而Darknet是一个用于实现YOLO算法的开源框架。 YOLO算法的特点是将目标检测任务看作是一个单次前向传递的回归问题,它将整个图像分成多个网格,并对每个网格预测边界框和类别概率。这种设计使得YOLO在速度上非常高效,可以实时地进行目标检测。 Darknet是一个用C语言编写的轻量级神经网络框架,专门用于实现YOLO算法。它提供了一个简单而灵活的接口,可以用于训练和测试YOLO模型。 为了使用YOLODarknet,你需要进行以下几个步骤: 1. 配置和编译Darknet:首先,你需要下载Darknet框架并解压。然后,你可以根据你的需求修改Makefile文件以配置编译选项。通过运行"make"命令,你可以生成可执行的Darknet文件。 2. 自定义数据集:为了训练YOLO模型,你需要准备一个数据集。你可以创建一个.data文件来配置数据集的路径、类别数量等信息。 3. 配置网络参数:YOLO模型的配置文件是一个.cfg文件。你可以修改yolov4-tiny.cfg文件中的filters和classes参数来适应你的数据集。 4. 训练模型:使用以下命令开始训练你的YOLO模型: ./darknet detector train datasets/attackgiant/attackgiant.data cfg/yolov4-tiny-attackgiant.cfg -map 5. 测试模型:为了测试你的模型,你需要下载预训练的权重文件。你可以从YOLOv4 model zoo下载yolov4.weights,并将其放置在当前目录下。然后,可以使用以下命令进行测试: ./darknet detector test ./cfg/coco.data ./cfg/yolov4.cfg ./yolov4.weights data/dog.jpg -i 0 -thresh 0.25 或者你可以直接运行一个名为image_yolov4.sh的脚本。 这些是使用YOLODarknet进行目标检测的基本步骤。通过逐步调整和训练,你可以获得更好的检测结果。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值