YOLOv7训练结果解析
前言:
已训练完模型,且把结果下载下来,以下某一次id识别训练结果为例,如下图所示。
注:YOLOv7每次train完成(如果没有中途退出)都会在run目录下生成expX目录(X代表生成结果次数 第一次训练完成生成exp0 第二次生成exp1…以此类推)
expX目录下会保存可视化的训练结果 result.png,result.txt,weights(last.pt和best.pt)等等。
1.P曲线
P_curve.png:准确率precision
与置信度confidence
的关系图。
【置信度confidence
:用来判断边界框内的物体是正样本还是负样本,大于置信度阈值的判定为正样本,小于置信度阈值的判定为负样本即背景。】
那么图片就好理解了,即置信度阈值越高,模型才认为图片是该物品,模型判断的越准确,这是很自然的,无需解释。但置信度阈值过高,可能会导致掉那些忽略信度低,但确实有该物品的图像。
可以看到,14个类别的曲线,有的精度比较好,有的不太好,通过整合成一条曲线来展示一个综合性能,即蓝线,是全体类别判断精度。
2.R曲线
Recall/召回率/查全率曲线。显然,置信度越底,查全率会越高,即不容易漏过有对象的图片。蓝线同上。
3.P-R曲线
precious
与recall
之间的关系,PR曲线下围城的面积称作AP,所有类别AP的平均值即为mAP。
毫无疑问,我们希望R越低越好,P越高越好,但这是矛盾的,前者需要置信度阈值降低,后者需要置信度阈值增高,它们是一对矛盾的性能度量指标。
于是有了PR_curve,精确度和召回率曲线,此处的P为mAP(mean Average Precision),即平均精度,毫无疑问,我们希望P与R都能到1,即曲线围成最大的正方框,面积接近1。
平衡点(BEP)是 P=R
(准确率 = 召回率)时的取值,即斜率为1,F1值越大,我们可以认为该学习器的性能较好。
4.result.png
Box:YOLO V7使用 GIOU Loss作为bounding box的损失,Box推测为GIoU损失函数均值,越小方框越准;
Objectness:推测为目标检测loss均值,越小目标检测越准;
Classification:推测为分类loss均值,越小分类越准;
Precision:精确率,,或者说正确率(所有分类正确中的正样本比例);翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是显然这个分类器不太行。比如说机器一共标了十个框框,这十个框框标的对象和标签都对应了,那么不管有没有漏标对象,精度都算是百分之百。
Recall:召回率,又叫查全率(有多少正样本被找到);翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。比如说机器要检测的图里由十个飞机,但机器只标了五个,尽管这五个都标对了,精度是100%,那么recall依旧只有50%。因为机器漏标了一半。
val Box: 验证集bounding box损失
val Objectness:验证集目标检测loss均值
val classification:验证集分类loss均值
mAP@0.5:阈值大于0.5的平均mAP。【其中,mAP指PR曲线下的面积AP的平均值,@后面的数表示判定IoU为正负样本的阈值】
mAP@0.5:0.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。【@0.5:0.95表示阈值取0.5:0.05:0.95后取均值】
坐标为轮数(epoch),纵坐标为各类损失,越小,效果越好些。个人认为box为预测标框与标注标框偏差,obj是图片有无识别出对象偏差,cls为对象分类偏差。
一般训练结果主要观察精度和召回率波动情况(波动不是很大则训练效果较好)
然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果。如果训练比较好的话图上呈现的是稳步上升。
5.F1_curve.png
F1-score
与置信度间的关系。F1-score
是分类问题的一个衡量指标,是精确率precision
和召回率recall
的调和平均数,最大为1,最小为0。【1是最好,0是最差】
引用“第一个衡量指标:mAP曲线的面积大小。”
6.result.txt
训练完成后生成的result.txt,我在第一列对它们进行了解释,目前还不知道最后三行是啥意思。
参考文章:
yolov5 训练结果解析_yolov5训练结果图_g_grace1的博客-CSDN博客
更多推荐
所有评论(0)