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

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

文章目录

开源算法选择

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. Widthheight416 * 416或者618 * 61832的倍数越大精确度越高训练时长越长
  7. Ctrl + F打开搜索工具输入yolo共三处将class=调为自己的目标类数
  8. 修改yolo层上最近的convolutional层的filter参数filter=class+5* 3
    如果class=1filter=18class=2filter=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文件中指定的验证集路径同样需要为绝对路径
在这里插入图片描述
选择mAPmean average precision或者IOU最高的权重文件作为最终使用的就行了

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: windows