Yolo 自制数据集dect训练改进

发布于:2024-03-29 ⋅ 阅读:(23) ⋅ 点赞:(0)

上一文请看

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的简单使用-腾讯云开发者社区-腾讯云

本文含有隐藏内容,请 开通VIP 后查看