代码下载:链接:百度网盘 请输入提取码 提取码:50r2
论文下载:链接:百度网盘 请输入提取码 提取码:c1bg
YOLOv3网络结构:
Darknet-53,正如其名,它包含53个卷积层,每个后面跟随着batch normalization层和leaky ReLU层。没有池化层,使用步幅为2的卷积层替代池化层进行特征图的降采样过程,这样可以有效阻止由于池化层导致的低层级特征的损失。
注:预处理时使用1*1的卷积核主要是为了增加通道数。
网络介绍:Darknet的非线性激活函数采用leaky_relu,而非relu了。YOLOv3详解 - 简书 (jianshu.com)https://www.jianshu.com/p/043966013dde
代码配置相关
注:基础配置可参考本人博客:(2条消息) [目标检测]——YOLOv5模型使用记录_Star星屹程序设计的博客-CSDN博客https://blog.csdn.net/weixin_42067873/article/details/118385070
1、pic.yaml数据文件配置
这里指定路径的时候,train、val、test文件是在voc_labels运行后生成的文件;配置路径时需要注意:这里的当前路径是该项目的当前路径,比如本项目是:F:/yolos/yolov3-master
2、部分超参数含义
lr0: 学习率 lrf: 余弦退火超参数 (CosineAnnealing) momentum: 学习率动量 weight_decay: 权重衰减系数 warmup_epochs: 预热学习epoch warmup_momentum: 预热学习率动量 warmup_bias_lr: 预热学习率 box: giou损失的系数 cls: 分类损失的系数 cls_pw: 分类BCELoss中正样本的权重 obj: 有无物体损失的系数 obj_pw: 有无物体BCELoss中正样本的权重 iou_t: 标签与anchors的iou阈值iou training threshold
3、训练结果生成
注:一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好),然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果
yolov3每次train完成(如果没有中途退出)都会在run目录下生成expX目录(X代表生成结果次数 第一次训练完成生成exp0 第二次生成exp1......以此类推)
expX目录下会保存训练生成weights以及result.txt(其中weights是训练生成权重,可用于detect),并以可视化的方式展示训练结果 -> result.png
Objectness:推测为目标检测loss均值,越小目标检测越准;
Classification:推测为分类loss均值,越小分类越准;
Precision:精度(找对的正类/所有找到的正类);
- Recall:召回率(找对的正类/所有本应该被找对的正类);
- mAP@0.5 & mAP@0.5:0.95:mAP是用Precision和Recall作为两轴作图后围成的面积,m表示平均,@后面的数表示判定iou为正负样本的阈值,@0.5:0.95表示阈值取0.5:0.05:0.95后取均值。