【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】

开源算法选择

darknet源码github地址

win10下搭建darknet环境

注:每一步比如cuda、cudnn安装环境变量配置等等网上都有详细讲解,如果是完全零基础开始可以结合我的步骤与网上每一步的讲解,或者留言我看到后会尽快回复

  1. 下载visual studio 2017 community(只安装C++和windows SDK即可,大概需要15个G空间)注:先下载vs2017再下载cuda和cudnn
    旧版本vs2017官方下载地址

  2. 下载cuda11.1 (11.1自动配置环境变量,其他版本看情况添加)
    注:如果之前下载过cuda可以考虑卸载重新安装,使用程序与功能将所有cuda相关的nvdia产品卸载干净

  3. 下载cudnn8.0.5(将bin include lib\x64相应文件拷贝至cuda目录)
    cudnn下载地址
    cudnn下载

  4. 验证cuda和cudnn安装成功

    1. cmd内输入nvcc -V查看cuda是否安装成功
    2. 1.cd C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.1\extras\demo_suite 后运行deviceQuery.exe和bandwidthTest.exe运行deviceQuery.exe
      运行bandwidthTest.exe
  5. 下载CMake >= 3.18
    cmake官方下载地址
    cmd内输入cmake --version查看是否安装成功

  6. 下载opencv >= 2.4
    opencv官方下载地址
    添加环境变量如下后重启生效
    opencv环境变量

  7. 下载darknet源码

git clone https://github.com/AlexeyAB/darknet.git
  1. 打开darknet中makefile文件 修改对应参数并保存
  2. 打开darknet.vcxproj文件,将cuda版本改为自己的版本号(共两处)
  3. 使用vs2017打开darknet.sln文件,vs2017会弹出:
    在这里插入图片描述
    直接点确定即可
  4. 右边栏配置darknet头文件,如opencv等(网上教程很多)
  5. Vs2017上方调成release x64
    release x64
    右侧侧边栏配置头文件,右键项目点击属性
    配置头文件
    首先选择VC++目录中的包含目录和库目录
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    点击链接器 → 输入 → 附加依赖项
    添加opencv\build\x64\vc14\lib目录下的opencv_worldXXXX.lib,带d的是debug文件,我们是release模式所以选择不带d的,我的是opencv_world3413.lib,不同版本的opencv后面数字不一样
    在这里插入图片描述
    最后右键项目点击生成即可
    在x64目录下可找到darknet.exe
    darknet,exe
  6. 依次按上面方法编译yolo_cpp_dll.sln文件和yolo_console_dll.sln文件(顺序不能错)
  7. 网络顺利生成,进入darknet源码中build\darknet\x64目录下打开cmd,运行命令:
darknet.exe detector test data/coco.data cfg/yolov4.cfg backup/yolov4.weights

(yolov4.weight去上方给出的github链接darknet源码下载)
15. 输入图片路径person.jpg看到如下预测图即搭建成功
person.jpg

模型训练

数据增强

  1. 先对数据集重命名为自然数排列
    在这里插入图片描述

  2. 水平或竖直方向进行平移
    在这里插入图片描述

  3. 图片缩放
    通过opencv的resize函数
    在这里插入图片描述

  4. 图片翻转(垂直、左右、180度)
    在这里插入图片描述

  5. 任意旋转
    在这里插入图片描述

  6. 平移剪裁
    在这里插入图片描述

  7. 高斯噪声
    在这里插入图片描述

  8. 色彩增强
    (1)亮度
    在这里插入图片描述
    (2)清晰度
    在这里插入图片描述

修改cfg文件

cfg文件参数意义可参考:参考帖子

  1. 在x64\cfg目录下找到yolov4-custom.cfg复制一份到该目录下重命名为:yolo-obj.cfg,使用vscode打开yolo-obj.cfg文件
  2. 修改cfg文件中batch=64
  3. Subdivisions=16,32,64(训练时显示out of memory则调大,需要是32的倍数)
  4. Max_batches=classes * 2000(三个目标6000,五个目标10000,最低不低于6000)
  5. Steps=80% * max_batches, 90% * max_batches
  6. Width,height416 * 416或者618 * 618(32的倍数,越大精确度越高,训练时长越长)
  7. Ctrl + F打开搜索工具输入yolo共三处,将class=调为自己的目标类数
  8. 修改yolo层上最近的convolutional层的filter参数:filter=(class+5)* 3
    (如果class=1,filter=18,class=2,filter=21)

标注

使用LabelImg
下载地址:labelImg下载地址
在这里插入图片描述
压缩包解压后双击labelImg.exe即可打开,GUI界面后命令行窗口可忽略
gui界面
左边功能栏annotion默认格式为pascalVOC,即xml格式,本人训练基于darknet的yoloV4,故再次点击切换至YOLO格式,即txt格式
在这里插入图片描述

数据集整理

  1. 在x64\data目录下创建obj文件夹,将数据集放入
  2. 在x64\data目录下创建pru.names(可根据自己需要修改XXX.names 在这里插入图片描述
  3. 在x64\data目录下创建pru.data
    在这里插入图片描述
    其中classes问训练目标类数,train和valid问训练集和验证集的路径,names为步骤1里创建的XXX.names文件,backup照写即可
  4. 在对应路径下创建train.txt和valid.txt文件
  5. 按照一定比例将数据集生成训练集和验证集,本人设置为0.75和0.25
    在这里插入图片描述
    注:训练集和验证集格式为绝对路径,不然会出错
    在这里插入图片描述
    在这里插入图片描述
  6. 生成后将txt文件放入obj文件夹中
    在这里插入图片描述

训练

  1. 下载权重文件(本人训练yolov4-custom.cfg,下载yolov4.conv.137)
  2. 在x64目录下打开cmd,使用指令开始训练:
Darknet.exe detector train data\pru.data cfg\yolov4-pru.cfg yolov4.conv.137
  1. 训练过程中loss可视化
    在这里插入图片描述
    训练结束后会给出多个weights文件,在x64目录下打开cmd使用指令:
Darknet.exe detector map data\pru.data cfg\yolov4-pru.cfg backup\yolov4-pru_XXXX.weights

map指令使用的是之前XXX.data文件中指定的验证集路径(同样需要为绝对路径)
在这里插入图片描述
选择mAP(mean average precision)或者IOU最高的权重文件作为最终使用的就行了

评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值