2021.05.20 Darknet yolov3检测及训练
Darknet yolov3检测及训练
本文均采用无gpu版本
一.使用官网权重文件检测图片:
配置好opencv,使用cmake编译,生成darknet.exe文件,F:\darknet\build\darknet\x64目录进入终端输入:
参数释义:
1.darknet.exe: 执行此程序
2.Detector: 预定义参数,调用run_detector函数,其中包含“test检测”,“train训练”,“valid验证”,“demo摄 像头实时”几种操作
3.Test: 此次操作为验证
4.Cfg/coco.data: 模型检测的类别,类文件名,Classes是检测物品种类数,train存放待训练图片集路径,names存放待识别物体名称
5.Yolov3.weights: 官网下载的已训练好的权重文件
6.-thresh+数值:阈值,识别率高于多少在结果中标注框并展示(左图thresh=0.25,右图0.5)
- tbbt.jpg:待检测图片路径
- -ext_output:输出识别出的物体的坐标及大小
二.训练自己的数据集:
- 下载yolo_mark,便于标注待训练图片集
- 图片集放入img文件夹,新建obj.data,只检测烟雾所以classes=1;新建obj.names,写入待识别物体名称
- 新建train.txt,启动标记程序yolo_mark.cmd, 拉框选中目标,图片路径自动存入train.txt, 标记框坐标自动存入对应txt文件
- 将img文件夹、obj.data、obj.names、train.txt复制到darknet的data目录下;创建model目录,复制darknet/cfg目录下的yolov3.cfg到darknet/model目录,并重新命名为yolo-obj.cfg,此文件定义yolo神经网络的结构、学习速率、迭代次数等参数
- 修改yolo-obj.cfg
注释3.4行,取消注释6.7行 迭代次数,至少2000次才比较准确
修改classes=1 filters=(classes + 5)x3卷积核个数,也是输出通道数
- 下载预训练模型参数 darknet53.conv.74,并将其复制到darknet/model目录下,执行训练命令
有gpu时预期图像:训练完成以后,在darknet/backup目录会生成yolo-obj_last.weights文件,然后如chapter1命令检测
浙公网安备 33010602011771号