上一文请看
Yolo自制detect训练-CSDN博客
简介
如下图:
首先看一下每个图的含义
loss
loss分为cls_loss, box_loss, obj_loss三部分。
cls_loss用于监督类别分类,计算锚框与对应的标定分类是否正确。
box_loss用于监督检测框的回归,预测框与标定框之间的误差(CIoU)。
obj_loss用于监督grid中是否存在物体,计算网络的置信度。
具体参考yolov5_box_loss-CSDN博客
损失函数(IoU、GIoU、DIoU、CIoU)_ciou损失函数-CSDN博客
metrics
mAp
mAp代表的就是动态的precision和recall的关系
mAP@0.5 全称是 mean Average Precision(IoU=0.5),即将IoU设为0.5时,计算每一个类别下所有图片的平均AP,即mAP。
mAP(IoU@0.5),跟Pascal VOC mAP标准计算方式一致;mAP@.5:.95(mAP@[.5:.95]):表示在不同IoU阈值(0.5~0.95,步长0.05)(0.5、0.55、0.6、0.65、0.7、0.75、0.8、0.85、0.9、0.95)上的平均mAP。
参考:
【如何通俗易懂的理解mAP】——mAP理解_map更通俗地中文说法-CSDN博客
mAP@0.5 与 mAP@0.5:0.95 是什么意思,YOLOv5-CSDN博客
Precision & recall
实例说明】
问题:假设某个学校有1000个王者荣耀玩家,其中有10个是王者段位,判断这个玩家是不是王者选手?现在我有一个分类器,检测出来有20个王者选手,其中包含5个真正的王者选手。那么上述指标该如何计算呢?
分析:检测出来有20个王者选手,说明有980个选手被预测为非王者选手。这20个检测为王者选手包含5个真正的王者选手,说明另外15个实际为非王者选手,所以,
accuracy = (5+980-5) / 1000 = 0.98
precision = 5 / 20 = 0.25
recall = 5 / 10 = 0.5
F-score = 2 / (1/0.25 + 1/0.5) = 0.33
sensitivity = recall = 0.5
specificity = (980-5) / (1000-10) = 0.98
从这个案例我们可以发现,虽然分类器的accuracy可以达到98%,但是如果我的目的是尽可能的找出隐藏在这1000人中的王者选手,那么这个分类器的性能是不达标的,这也就是为什么要引入precision和recall以及F-score评价指标的原因。
参考:
【深度学习】分类指标accuracy,recall,precision等的区别_accuracy precision recall计算出来是不是差不多-CSDN博客
超参数调整
yaml
如下图所示:
可以对应选择不同的超参数yaml
来调整超参数重新训练
数据增强
参考;
【目标检测】数据增强:YOLO官方数据增强实现/imgaug的简单使用-腾讯云开发者社区-腾讯云