Motivation
从这张图里面可以很好地看出来作者的出发点,即在目标检测里面,分类的分数其实并不能够准确地反应框是否准确, 像上面,都是分类分数高,而iou低的case,而真正iou高的框,分类的分数却没有那么高,而这些框会在做NMS的时候被分高的给干掉.
因此作者提出一种iou_aware的方式来替换这个分数.
那么整个过程就是首先要先预测iou, 然后在测试的时候,对于过nms的分数,用分类和iou来加权的方式,比如
整个过程,从想法到过程比较自然,有理有据。
值得注意的地方
- 在Iou loss这里,作者最终选的是BCE
个人认为这相比于gt是0,1的二分类而言,是soft了一些。或许也可以尝试KL-div
关于loss这里,作者做的对比实验如下
从表里面可以看出,相比之下, BCE要比L2-loss要好一些.
可能分类比回归更容易学吧.
-
作者给了如果用gt-iou来代替predict-iou的话,结果对比如下
会发现当使用gt-iou来做的话,指标要比使用predict-iou 好很多,说明这里面还大有可为. -
为什么Iou-aware会有用, 作者给了一个图
图a是原始的RetinaNet的 iou与 det-score的图,会发现这里面有很多分类分低,但是iou挺大的case, 如下
这说明,其实有很多较为精确的框的,但是因为分低而被杀掉了.
图b,是本文的方法所统计的结果,会发现,高iou, 低score的case少了很多.
这充分说明了这个方法的有效性.
另外图c,是用gt-iou来看的情况. 对于gt-iou来说,当iou大的时候,基本上和score呈正相关了.
thoughts
iou 作为衡量框准确性的一个重要指标要比单纯的分类分数要可信。尤其是在一些自动标注的任务上,使用Iou作为框精确性的一个衡量,应该是很有用的。