0.实验设计
首先通过ap指标来分析为什么bayes nms的效果差(在faster上面),之后结合nms动画来具体分析原因。
1. 整体
序号 | AP/AR | 说明 | Normal | Bayes | Bayes(原始score) |
---|---|---|---|---|---|
1 | Average Precision (AP) | @[ IoU=0.50:0.95 area= all maxDets=100 ] | 0.377 | 0.371 | 0.375 |
2 | Average Precision (AP) | @[ IoU=0.50 area= all maxDets=100 ] | 0.592 | 0.581 | 0.588 |
3 | Average Precision (AP) | @[ IoU=0.75 area= all maxDets=100 ] | 0.411 | 0.404 | 0.407 |
4 | Average Precision (AP) | @[ IoU=0.50:0.95 area= small maxDets=100 ] | 0.219 | 0.212 | 0.218 |
5 | Average Precision (AP) | @[ IoU=0.50:0.95 area=medium maxDets=100 ] | 0.414 | 0.407 | 0.411 |
6 | Average Precision (AP) | @[ IoU=0.50:0.95 area= large maxDets=100 ] | 0.487 | 0.483 | 0.485 |
7 | Average Recall (AR) | @[ IoU=0.50:0.95 area= all maxDets= 1 ] | 0.310 | 0.311 | 0.311 |
8 | Average Recall (AR) | @[ IoU=0.50:0.95 area= all maxDets= 10 ] | 0.496 | 0.498 | 0.498 |
9 | Average Recall (AR) | @[ IoU=0.50:0.95 area= all maxDets=100 ] | 0.519 | 0.521 | 0.522 |
10 | Average Recall (AR) | @[ IoU=0.50:0.95 area= small maxDets=100 ] | 0.323 | 0.322 | 0.324 |
11 | Average Recall (AR) | @[ IoU=0.50:0.95 area=medium maxDets=100 ] | 0.557 | 0.560 | 0.559 |
12 | Average Recall (AR) | @[ IoU=0.50:0.95 area= large maxDets=100 ] | 0.659 | 0.664 | 0.664 |
对比可以发现bayes的AR增加了,但是AP反而降低了。小物体的AR减少了一些。
Bayes NMS改变的是score。
score的改变对最终指标(mAP)的影响有两方面:
- nms过程中的局部极大值改变(主要影响Recall)。这就有好有坏了。好:更准->score更高,更可能是局部极大值。
- 计算AP时det的顺序(主要影响Precision)。好:更准->score更高。
AR的降低有两种可能,都出在NMS的过程中:
- score降低,被nms的maxDet=100排除掉。
- 优质det的score被降低,被劣质det给抑制掉。
2.NMS后的匹配质量
整体来说,并没有出现soft-nms中那样多出好几个框的情况。匹配框的质量有所提高。比如img_id=1296:
Normal
Bayes:
框的质量提升了。
3. 具体分析
方法为观察每一张图片的AP,寻找那些Bayes比Normal差(AP小)的图片,并根据nms动画寻找原因。
用到的文件夹有:
nms动画
\nms_anime_nms_Faster_r50_Baye_nms
\nms_anime_nms_Faster_r50_Normal_nms
ap的差(Bayes - base):
\BAYE_SUB_BASE_COMPARE
每张图片的ap:
\BAYE_BASE_PR
img_id=1296
1296中一共有4个物体,上面的“NMS后的匹配质量”中的两张图片就是1296的匹配结果,Bayes(简称B)和Normal(简称N)的匹配结果是一致的,甚至Bayes的效果还要好一些,因为其匹配的dt质量更高。但是Bayes的AP低了很多。
具体的AP结果如下:
Normal:
Bayes:
为何?
观察动画:
Normal:
而对于同一个物体,BayesNMS如下:
B的顺序和N的相反,这是因为那些小框更加密集,所以分数更高。顺序一反,第一个框就成了FP,自然AP就降低了。
img_id = 10363
主要原因是Recall的下降,并且是中、大物体的Recall下降。
Normal:
Bayes:
可以看出来框的质量下降了。这是因为score的改变
优质框:0.522 -> 0.538
劣质框:0.501 -> 0.580
两个框的分数都有所提升。但是由于劣质框周边有更近的Det,导致bayes后的score更高。进而在nms的过程中,劣质框将优质框抑制掉。