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

编程知识 更新时间:2023-05-02 16:56:28

文章目录

  • 开源算法选择
  • win10下搭建darknet环境
  • 模型训练
    • 数据增强
    • 修改cfg文件
    • 标注
    • 数据集整理
    • 训练

开源算法选择

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下载地址

  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
  5. 下载CMake >= 3.18
    cmake官方下载地址
    cmd内输入cmake --version查看是否安装成功

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

  7. 下载darknet源码

git clone https://github/AlexeyAB/darknet.git
  1. 打开darknet中makefile文件 修改对应参数并保存
  2. 打开darknet.vcxproj文件,将cuda版本改为自己的版本号(共两处)
  3. 使用vs2017打开darknet.sln文件,vs2017会弹出:

    直接点确定即可
  4. 右边栏配置darknet头文件,如opencv等(网上教程很多)
  5. Vs2017上方调成release x64

    右侧侧边栏配置头文件,右键项目点击属性

    首先选择VC++目录中的包含目录和库目录



    点击链接器 → 输入 → 附加依赖项
    添加opencv\build\x64\vc14\lib目录下的opencv_worldXXXX.lib,带d的是debug文件,我们是release模式所以选择不带d的,我的是opencv_world3413.lib,不同版本的opencv后面数字不一样

    最后右键项目点击生成即可
    在x64目录下可找到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看到如下预测图即搭建成功

模型训练

数据增强

  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界面后命令行窗口可忽略

左边功能栏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最高的权重文件作为最终使用的就行了

更多推荐

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

本文发布于:2023-04-27 10:43:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/889216a3ddf8186a0bc98b99dff41259.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:最全   最完整   模型   方法   windows

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 106877文章数
  • 26987阅读数
  • 0评论数