一、准确率&回归率
- 术语表:
- | 预测正例 | 预测反例 |
---|---|---|
真值正例 | TP | FN |
真值反例 | FP | TN |
- 准确率Precision公式表示:
P r e c i s o n = T P T P + F P Precison=\frac{TP}{TP+FP} Precison=TP+FPTP
- 回归率Recall公式表示:
R e c a l l = T P T P + F N Recall=\frac {TP}{TP+FN} Recall=TP+FNTP
Precision表示预测为正例的结果中有多少是对的,比如100个样本,预测正例为50个,正确的样本有TP=25个,预测错误的有FP=25个。那么Precision就等于50%。但考虑极端情况下,只使用准确率是不合适的,比如100个样本,预测正例1个,恰好真值为正例也是TP=1个,FP=0个,那么Precision=100%,但是有99个都被预测成了反例。Recall指标就是为了权衡这个问题,进而更好衡量真值正例的预测情况,还需要计算预测正例在真值正例(=TP+FN)中的比例。只有两个指标都很高的时候,说明结果才是好的。
二、AP的概念
-
P-R图
以Recall为横轴,Precision为纵轴,并将每次的值画出连线,就可以得到P-R图。随着Recall增加,Precision会逐渐降低,并在某个值附近上下波动。
-
AP(Average Precision)
AP为平均精度,使用积分的方式来计算PR曲线与坐标轴围成的面积:
∫ 0 1 f ( r ) d r \int_{0}^{1}f(r)\,{\rm d}r ∫01f(r)dr
实际操作不计算积分,而是对其进行平滑操作来简化计算,对PR曲线上的每个点,Precision取该点右侧最大的值,如图所示:
计算出AP后,对所有类别的AP加和求平均就得到整个数据集上的mAP。
三、目标检测中的mAP
不同的数据集会给出不同的mAP计算方法。
目标检测算法最终会得到score1和bbox,按照score降序排序,通过设定score阈值来分出正类例和反类例(带有对类别的预测),因此评价mAP可以是在多个阈值尺度下分开的正反例来计算的:
- 【训练时】使用区域选择算法得到候选区域
- 【训练时】对于候选区,计算每一个候选区和标定框(真值)之间的IoU
- 【训练时】设定一个IoU阈值,大于这个阈值的候选区标定为正例,小于的标定为反例。得到一组测试集,及训练好的权重模型。
- 【预测时】将上面得到的测试集,通过分类器权重模型,算出每一个图片是正样本的score。
- 【预测时】设定一个score阈值,大于等于这个值的方框类别视为预测正例,反之为预测反例。
- 【预测时】根据第五步的结果算出Precision和Recall。
- 调整score的阈值,得到某个类别对应Recall从0到1对应的Precision值,计算出所有类的AP后就可以计算mAP了。
-
Interplolated AP(略)
-
MS COCO mAP
A P 50 \ AP_{50} AP50:IoU阈值为0.5时的AP测量值
A P 75 \ AP_{75} AP75:IoU阈值为0.75时的AP测量值
A P S \ AP_{S} APS: 像素面积小于 3 2 2 \ 32^{2} 322的目标框的AP测量值(小尺度)
A P M \ AP_{M} APM:像素面积在 3 2 2 − 9 6 2 \ 32^{2}-96^{2} 322−962之间的目标框的AP测量值(中尺度)
A P L \ AP_{L} APL:像素面积大于 9 6 2 \ 96^{2} 962的目标框的AP测量值(大尺度)
Reference
目标检测的指标AP与mAP - 知乎 (zhihu.com)
每一个预测框都对应着N+1个score,也就是对应着N个类别预测和一个background,选择score得分最高的那个作为这个框的类别。 ↩︎