深度学习中的AP和mAP总结
时间:2022-08-16 02:00:00
1. IOU是什么
首先给出IOU定义
Bp是预测框(predicted bounding box)。
Bgt这是一个真的框架(ground truth bounding box)。
IOU就是Bp与Bgt除以区域交集面积大小,如下图所示
2. Precision和Recall是什么
2.1 TP、FP、FN、TN
True Positive (TP): 是正确的检测,检测 IOU ≥ threshold。
False Positive (FP): 是错误的检测, 检测的 IOU < threshold。
False Negative (FN): 没有检测到真值。即漏检。
True Negative (TN): 没有真值,也没有检测到。
只看文字不容易理解,如下图所示(https://manalelaidouni.github.io/Evaluating-Object-Detection-Models-Guide-to-Performance-Metrics.html)
图中,绿框是检测框,红框是真框。
TP:左边的第一张图是TP,即检测框和真实框IOU>=threshold。
FP:中间两张图都是FP,因为真实框和检测框IOU< threshold(其中第二张图没有真实框,认为是IOU为0)。
FN:最右侧是FN, 没有检测框,但实际上是框架。
TN:对于TN,也就是说,没有真正的框架,也没有检测框。被检测图中没有框架。
2.2 Precision和Recall的定义
3. Average Precision
3.1 Precision 和 Recall的计算
总共有15个真框(绿色)和24个检测框(红色)。其中,检测框使用(A,B,…,Y)进行标号,对应的置信度标在字母旁边。
第一列是相应的图片编号,第二列是当前的预测框(bounding box,bbox),第三列是bbox对应的信心度,第四列说明当前bbox是TP还是FP(根据IOU和threshold判断,具体数值省略)。
所有上表bbox按置信度,做降序。
举例, 计算第二行 (图 7): Precision = TP/(TP FP) = 1/2 = 0.5 and Recall = TP/(TP FN) = 1/15 = 0.066。
3.2 P-R曲线的绘制
描点法绘制Precision-Recall图,如下:
(1) 所有点插值法(interpolation performed in all points)
从上面P-R向左看曲线最右边的点,遇到第一个(按横坐标recall,第一个从右到左)比现在好precision如果值较大,则取此点。如果横坐标recall如果是一样的,那的precision对应的点。
例如,从右到左的第一点是G或O,大于当前precision(G、O)值的的是X、N、T、K、Q、V。其中precision最大的是precision(X),因此取X。
以此类推,取J、R。
然后,根据X、J、R做水平线,和P-R曲线的竖线相交,得到如下红色虚线。即为所有点插值法P-R曲线。
根据上图,你可以把整个所有点插值法P-R曲线划分下面的区域,如下图所示。
然后,可以计算AP,AP最初的定义是
也就是说,针对自变量r,积分曲线p。
即将四个区域的面积相加。
上述计算方法也称为上述计算方法Area under curve (AUC)。
(2)11点插值法
11点插值法是固定取横坐标recall值为11点(0,0,0.1,…,1),间隔为0.1。
与法律(1)不同的是,从左到右相交的策略不同。一般不使用这种方法。
COCO中的mAP和AP是一个值。
参考文献
[1] (https://jonathan-hui.medium.com/map-mean-average-precision-for-object-detection-45c121a31173)
[2] https://github.com/rafaelpadilla/Object-Detection-Metrics
[3]https://blog.zenggyu.com/en/post/2018-12-16/an-introduction-to-evaluation-metrics-for-object-detection/