1、关于TP、FP、FN、TN
TP正确且预测为正 | FP错误且预测为正(虚警) |
FN错误且预测为负(漏检) | TF正确且预测为负 |
对角线:预测正确;反对角线:预测错误
准确率:
准确率
精确率:(实际为正 && 判断为正) / 判断为正 ,又叫查准率,看查得准不准
精确率
召回率:(实际为正 && 判断为正) / 实际为正,又叫查全率,看查得全不全(看似和精确率是倒数关系,实际不然,从集合交并的角度考虑)
召回率
2、PR曲线
PR曲线:反映模型在不同的置信度阈值下,精确度和召回率之间的关系。
PR曲线的绘制:通过改变分类器的阈值,计算不同阈值下的精确率和召回率,绘制曲线。
具体而言:
设置不同的置信度阈值,就会筛选出不同数量的预测框,从而TP、FP的数量也会不同(只有置信度高于给定置信度阈值的预测框,才会纳入TP、FP的统计范围),进而得到不同的精确度和召回率,这就是一个精确度对应多个召回率,以及一个召回率对应多个精确度的原因。
从曲线上看,刚开始时,设置的置信度阈值较高,得到的精确度就高,但是可能存在大量漏检,所以召回率低;在最后,置信度阈值设置的比较低,不容易发生漏检,进而召回率较高,但是存在大量的虚警(FP),因此精度较低。
过程中,会涉及到两个阈值,一个是置信度阈值、一个是IOU阈值。
置信度阈值:用来筛选出哪些预测框将被纳入TP、FP的统计范围
IOU阈值:用来确定预测框是不是TP
举个例子:
假设一张图片当中恰有5个苹果,但是在对该图片进行目标检测时,一共得到了10个类别标签是苹果的锚框。那么怎么去获取该锚框的真实label,也就是它实际上是不是一个苹果?
方法是计算模型预测出来的锚框和人工标注的锚框(称之为Groud Truth,真实值)的交并比,如果交并比超过0.5,那么认为该预测是正确的,即实际上该锚框框起来的是一个苹果。但是在实际预测当中,经常会出现多个预测锚框跟同一个GT(Groud Truth)的IoU值都大于0.5, 这个时候只将这些预测框中置信度最大的算是一个苹果,其他不算苹果(非极大值抑制)。
precision和recall的值都在0和1之间,不同的置信度阈值可能会计算出相同的recall或者precision,也就是说,一个recall可能对应多个precision,或者一个precision对应多个recall,所以PR曲线类似下图
我们称之为PR曲线下面积 PR-AUC(Area Under Curve)
3. AP
定义:AP是在不同的召回率下计算得到的精确度的平均值。
抛出个疑问:为什么不是不同精确度下计算得到的召回率的平均值呢?
召回率是一个覆盖面的度量,它表示了模型发现正实例的比例,它涵盖了从未检测出正类实例(召回率为0)到检测出所有正类实例(召回率为1)之间的所有情况。这种全面覆盖使得它成为衡量模型整体检测性能的基础。
如果在不同的精确度下计算召回率的平均值,则:精确度受负类样本影响较大:精确度的计算不仅涉及正类样本,还涉及负类样本,而召回率专注于正类样本。对于目标检测任务,尤其是当负类样本数量远大于正类样本时,使用召回率可以避免负类样本对评估结果的过大影响。
3.1 AP计算方法:11点插值方法
这种方法是早期的计算方法,在不同的召回率点上取精确度的值,并计算这些值的平均值
1. 定义11个召回率点:通常是0,0.1,0.2,0.3,...,1
2. 插值精确度:对于每一个召回率点r,取在该点及之后的所有召回率的对应的精确度的最大值
3. 计算这11个点精确度的平均值
3.2 AP计算方法:全插值方法
1. 对于每一个召回率r,同样取该点及之后的所有召回率的对应的精确度的最大值
2. 计算插值后的PR曲线下的面积
示例:
假设在不同的召回率下计算的精确度-召回率曲线仍然是上面的黄色折线,经过全插值后得到绿色折线
AP=绿色折线下围住的面积。
3.3 mAP
AP 是针对于一个类别而言的,把所有的类别的AP计算出来后,取平均值就是mAP
3.4 PR-AUC和AP的区别联系
- PR-AUC 通常不涉及插值,直接计算曲线下的面积。
- AP 通过插值方法处理精确度-召回率曲线,平滑曲线并消除波动。
-
两者在大多数情况下会给出相似的结果,但 AP 由于插值处理,通常会给出一个更高的值,因为它考虑了在每个召回率上的最佳精确度。
3.5. AP的计算过程
1. 获取模型的检测结果
首先,模型会在测试集上进行预测,生成一系列的检测结果,包括预测的边界框、类别和置信度分数。
2. 计算IOU
对于每个预测边界框,计算它与所有真实边界框之间的交并比(IoU, Intersection over Union)
3. 排序预测结果,确定TP、FP
按照预测框的置信度分数从高到低对进行排序。对所有超过置信度阈值的预测框,按照给定的IOU阈值(如0.5),确定TP和FP
- TP:预测边界框与某个真实边界框的 IoU 大于等于阈值,并且该真实边界框尚未被匹配。
- FP:预测边界框与所有真实边界框的 IoU 小于阈值,或该真实边界框已经被匹配过。
4. 计算精确度和召回率
设置置信度阈值递减,逐步计算累积的 TP 和 FP,并计算精确度和召回率:
-
累积 TP 和 累积 FP:遍历过程中累加 TP 和 FP 的数量。
-
精确度(Precision):每次累积的 TP 数量除以当前遍历的检测结果数量(TP + FP)。
-
召回率(Recall):每次累积的 TP 数量除以总的真实正样本数量(实际目标的数量)。
5. 绘制PR曲线
根据不同的置信度阈值,绘制精确度-召回率(PR, Precision-Recall)曲线。X 轴为召回率,Y 轴为精确度。
6. 计算AP
对于每一对相邻的召回率点(ri,ri+1),计算矩形的面积并累加得到AP
7. 计算mAP