IOU

IoU(Intersection over Union,即交并比,是目标检测中常见的评价标准,主要是衡量模型生成的bounding box和ground truth box之间的重叠程度,计算公式为:

img

img

TP TN FP FN的概念

T或者N代表的是该样本是否被分类分对,P或者N代表的是该样本被分为什么

TP(True Positives)意思我们倒着来翻译就是“被分为正样本,并且分对了”,TN(True Negatives)意思是“被分为负样本,而且分对了”,FP(False Positives)意思是“被分为正样本,但是分错了”,FN(False Negatives)意思是“被分为负样本,但是分错了”。

按下图来解释,左半矩形是正样本,右半矩形是负样本。一个2分类器,在图上画了个圆,分类器认为圆内是正样本,圆外是负样本。那么左半圆分类器认为是正样本,同时它确实是正样本,那么就是“被分为正样本,并且分对了”即TP,左半矩形扣除左半圆的部分就是分类器认为它是负样本,但是它本身却是正样本,就是“被分为负样本,但是分错了”即FN。右半圆分类器认为它是正样本,但是本身却是负样本,那么就是“被分为正样本,但是分错了”即FP。右半矩形扣除右半圆的部分就是分类器认为它是负样本,同时它本身确实是负样本,那么就是“被分为负样本,而且分对了”即TN

image-20220410191510174

Baseline

基线(Baseline):被用为对比模型表现参考点的简单模型。基线帮助模型开发者量化模型在特定问题上的预期表现。

confusion

1.混淆矩阵

①:混淆矩阵是对分类问题的预测结果的总结。使用计数值汇总正确和不正确预测的数量,并按每个类进行细分,这是混淆矩阵的关键所在。混淆矩阵显示了分类模型的在进行预测时会对哪一部分产生混淆。它不仅可以让我们了解分类模型所犯的错误,更重要的是可以了解哪些错误类型正在发生。正是这种对结果的分解克服了仅使用分类准确率所带来的局限性。

②:在机器学习领域和统计分类问题中,混淆矩阵(英语:confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一列代表一个类的实例预测,而每一行表示一个实际的类的实例。之所以如此命名,是因为通过这个矩阵可以方便地看出机器是否将两个不同的类混淆了(比如说把一个类错当成了另一个)。

2.图解

confusion_matrix
img

该图解释:

横轴是预测类别,纵轴是真实类别;

每一行之和为50,表示每个类各有50个样本,第一行说明类1的50个样本有43个分类正确,5个错分为类2,2个错分为类3。

每一行代表了真实的目标被预测为其他类的数量,比如第一行:43代表真实的类一中有43个被预测为类一,5个被错预测为类2,2个被错预测为类3;

表格里的数目总数为150,表示共有150个测试样本,

GT box

Ground Truth box

img

如上图所示,绿色的框为飞机的Ground Truth,红色的框是提取的Region Proposal。那么即便红色的框被分类器识别为飞机,但是由于红色的框定位不准(IoU<0.5),那么这张图相当于没有正确的检测出飞机。如果我们能对红色的框进行微调,使得经过微调后的窗口跟Ground Truth更接近,这样岂不是定位会更准确。

Precision(精度)和Recall(召回率)的概念

有了上面TP TN FP FN的概念,这个Precision和Recall的概念一张图就能说明。

img

image-20220410192027825,翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是傻子也知道这个分类器很垃圾。Precision就是检测出来的框的数目(或者是面积吧),除以一共画出来的框。比如说有时候你预测出来10个框,只有5个是正确的,那Precision就是5/10 = 50%。这个只是简单的比喻,可能里面会有细节上的错误。

image-20220410192051070,翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。Recall就是预测出来的正确的框,除以正确的框再加上没有预测出来的ground truth的框。距离来说就是,假设你有10个类别,你预测了6个框,6个框全中了,但是还有4个没框的,这时候Recall就是6/10=60%

mAP@0.5

mAP@0.5:mean Average Precision 通俗来说,就是给每一类分别计算AP,然后做mean平均。

那AP是什么呢,之前我一直以为是Average Precision,没错,就是平均精确度,可是这个怎么定义呢?AP是Precision-Recall Curve(PRC)下面的面积!!!

AP是Precision-Recall Curve(PRC)下面的面积!!!

img

PRC怎么看:先看平滑不平滑(蓝线明显好些),在看谁上谁下(同一测试集上),一般来说,上面的比下面的好

mAP@0.5:0.95

mAP@0.5:0.95 是在不同 IoU (从 0.5 到 0.95, 步长0.05) 设置下的平均值,又可写作mmAP或 AP

可视化结果解释

results
  • Box:推测为Box损失函数均值,越小边界盒越精准
  • Objectness:推测为目标检测loss均值,越小目标检测越准;
  • Classification:推测为分类loss均值,越小分类越准;
  • Precision:准确率(找对的正类/所有找到的正类);

img

翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有分类器认为是正类的比例”,衡量的是一个分类器分出来的正类的确是正类的概率。两种极端情况就是,如果精度是100%,就代表所有分类器分出来的正类确实都是正类。如果精度是0%,就代表分类器分出来的正类没一个是正类。光是精度还不能衡量分类器的好坏程度,比如50个正样本和50个负样本,我的分类器把49个正样本和50个负样本都分为负样本,剩下一个正样本分为正样本,这样我的精度也是100%,但是显然这个分类器不太行。

  • Recall:召回率(找对的正类/所有本应该被找对的正类);

img

翻译成中文就是“分类器认为是正类并且确实是正类的部分占所有确实是正类的比例”,衡量的是一个分类能把所有的正类都找出来的能力。两种极端情况,如果召回率是100%,就代表所有的正类都被分类器分为正类。如果召回率是0%,就代表没一个正类被分为正类。

  • mAP@0.5 & mAP@0.5:0.95:m表示平均,@后面的数表示判定iou为正负样本的阈值@0.5:0.95表示阈值取0.5:0.05:0.95后取均值

一般训练结果主要观察精度召回率波动情况

(波动不是很大则训练效果较好)

然后观察mAP@0.5 & mAP@0.5:0.95 评价训练结果

参考链接:

https://www.cnblogs.com/Flat-White/p/14724045.html

https://blog.csdn.net/weixin_41990671/article/details/107300314

https://blog.csdn.net/hsqyc/article/details/81702437