检测精度 | 检测速度 |
---|---|
Precision,Recall,F1 score | 前传耗时 |
IoU(Intersection over Union) | 每秒帧数 FPS(Frames Per Sencond) |
P-R curve | 浮点运算量(FLOPS) |
AP、mAP |
检测速度
检测精度 下面会逐步介绍
在机器学习领域和统计分类问题中,混淆矩阵(英语:confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一列代表一个类的实例预测,而每一行表示一个实际的类的实例。之所以如此命名,是因为通过这个矩阵可以方便地看出机器是否将两个不同的类混淆了(比如说把一个类错当成了另一个)。
涉及到准确率(查准率)和召回率(查全率)。这一块内容其他博主介绍也十分详细。
precision(单一类准确率) : 预测为positive的准确率。
准确率和置信度的关系图。
意思就是,当我设置置信度为某一数值的时候,各个类别识别的准确率。可以看到,当置信度越大的时候,类别检测的越准确。这也很好理解,只有confidence很大,才被判断是某一类别。但也很好想到,这样的话,会漏检一些置信度低的类别。
recall(真实为positive的准确率),即正样本有多少被找出来了(召回了多少)。
召回率(查全率)和置信度的关系图。
意思就是,当我设置置信度为某一数值的时候,各个类别查全的概率。可以看到,当置信度越小的时候,类别检测的越全面。
mAP 是 Mean Average Precision 的缩写,即 均值平均精度。可以看到:精度越高,召回率越低。
但我们希望我们的网络,在准确率很高的前提下,尽可能的检测到全部的类别。所以希望我们的曲线接近(1,1)点,即希望mAP曲线的面积尽可能接近1。
F1分数(F1-score)是分类问题的一个衡量指标。一些多分类问题的机器学习竞赛,常常将F1-score作为最终测评的方法。它是精确率和召回率的调和平均数,最大为1,最小为0。
对于某个分类,综合了Precision和Recall的一个判断指标,F1-Score的值是从0到1的,1是最好,0是最差。
???这个框体的输出结果是做什么用的,我也没搜到…
损失函数是用来衡量模型预测值和真实值不一样的程度,极大程度上决定了模型的性能。
Box:YOLOV5使用 GIOU loss作为bounding box的损失,Box推测为GIoU损失函数均值越小,方框越准
Objectness:推测为目标检测loss均值,越小目标检测越准
Classification:推测为分类loss均值,越小分类越准
val BOX: 验证集bounding box损失
val Objectness:验证集目标检测loss均值
val classification:验证集分类loss均值
Precision:精度(找对的正类/所有找到的正类)
Recall:真实为positive的准确率,即正样本有多少被找出来了(召回了多少)
mAP@0.5:0.95(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。
mAP@0.5:表示阈值大于0.5的平均mAP
results.txt中最后三列是验证集结果,前面的是训练集结果,全部列分别是:
训练次数,GPU消耗,边界框损失,目标检测损失,分类损失,total,targets,图片大小,P,R,mAP@.5, mAP@.5:.95, 验证集val Box, 验证集val obj, 验证集val cls
这里我设置的一个batchsize是8,所以一次读了8张照片
val_batchx_labels:验证集第x轮的实际标签
val_batchx_pred:验证集第x轮的预测标签