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

文章目录

  • 开源算法选择
  • 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下载地址
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第1张图片

  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【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第2张图片
      【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第3张图片
  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会弹出:
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第4张图片
    直接点确定即可
  4. 右边栏配置darknet头文件,如opencv等(网上教程很多)
  5. Vs2017上方调成release x64
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第5张图片
    右侧侧边栏配置头文件,右键项目点击属性
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第6张图片
    首先选择VC++目录中的包含目录和库目录
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第7张图片
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第8张图片
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第9张图片
    点击链接器 → 输入 → 附加依赖项
    添加opencv\build\x64\vc14\lib目录下的opencv_worldXXXX.lib,带d的是debug文件,我们是release模式所以选择不带d的,我的是opencv_world3413.lib,不同版本的opencv后面数字不一样
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第10张图片
    最后右键项目点击生成即可
    在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看到如下预测图即搭建成功
【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第11张图片

模型训练

数据增强

  1. 先对数据集重命名为自然数排列
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第12张图片

  2. 水平或竖直方向进行平移
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第13张图片

  3. 图片缩放
    通过opencv的resize函数
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第14张图片

  4. 图片翻转(垂直、左右、180度)
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第15张图片

  5. 任意旋转
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第16张图片

  6. 平移剪裁
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第17张图片

  7. 高斯噪声
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第18张图片

  8. 色彩增强
    (1)亮度
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第19张图片
    (2)清晰度
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第20张图片

修改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界面后命令行窗口可忽略
【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第21张图片
左边功能栏annotion默认格式为pascalVOC,即xml格式,本人训练基于darknet的yoloV4,故再次点击切换至YOLO格式,即txt格式
【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第22张图片

数据集整理

  1. 在x64\data目录下创建obj文件夹,将数据集放入
  2. 在x64\data目录下创建pru.names(可根据自己需要修改XXX.names 【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第23张图片
  3. 在x64\data目录下创建pru.data
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第24张图片
    其中classes问训练目标类数,train和valid问训练集和验证集的路径,names为步骤1里创建的XXX.names文件,backup照写即可
  4. 在对应路径下创建train.txt和valid.txt文件
  5. 按照一定比例将数据集生成训练集和验证集,本人设置为0.75和0.25
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第25张图片
    注:训练集和验证集格式为绝对路径,不然会出错
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第26张图片
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第27张图片
  6. 生成后将txt文件放入obj文件夹中
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第28张图片

训练

  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可视化
    【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第29张图片
    训练结束后会给出多个weights文件,在x64目录下打开cmd使用指令:
Darknet.exe detector map data\pru.data cfg\yolov4-pru.cfg backup\yolov4-pru_XXXX.weights

map指令使用的是之前XXX.data文件中指定的验证集路径(同样需要为绝对路径)
【全网最全最完整】windows下darknet安装搭建与模型训练方法【亲测有效】_第30张图片
选择mAP(mean average precision)或者IOU最高的权重文件作为最终使用的就行了

你可能感兴趣的:(windows,深度学习,python)