【论文解析】Cascade R-CNN: Delving into High Quality Object Detection

论文链接
CVPR2018的文章。和BPN一样,本文主要关注的是目标检测中IoU的阈值选取问题,但是BPN主要针对的是SSD等single-stage的detector,感兴趣的童鞋可以看我的另一篇博文BPN
目标检测中,detector经常是用低IoU阈值来train的,如果提高IoU阈值,则会导致两个问题:
(1)IoU提高以后,训练中positive samples的数量会指数级减少,从而导致过拟合。
(2)预测和训练用不同阈值,会导致不匹配。

问题发现

在这里插入图片描述
可以看到,图a中低阈值的IoU训出的detector会有很多close false positives,设想如果IoU阈值设为刚好0.5,那么在0.5附近就会有很多的close false positives,我们就很难让检测器reject这些close false positives。
在这里插入图片描述
同时,在c中可以得出一个结论,一个检测器只能在某一quality level上最优。quality level用detector的IoU设定阈值来确定。同时在d图中可以看到,u=0.5在low IoU样本表现得最好,但是在高IoU level时就比不过u=0.6了。所以总的来说,a detector optimized at a single IoU level is not necessarily optimal at other levels。
同时,直接用大阈值来训练检测器不一定会提高效果,可以看到d图中u=0.7的时候,它会降低performance,AP只有0.319。这其中很大的一部分原因就是:和low quality的detector相比,hypotheses的分布会改变,原因和上面提到的问题1类似。

目标检测

iterative BBox

论文中阐述了一下bounding box的回归方程,在这里就贴一下:
在这里插入图片描述这个Lloc在R-CNN中用的时L2 loss,在fast-rcnn中就改成了smooth L1 loss了。
然后Lloc用来对距离向量进行操作:
在这里插入图片描述
但是和classificatoin相比, 这个bounding box回归的梯度往往小于它,所以很多工作提出了单次回归对于精确的定位来说根本不够,所以就提出了多次回归的方法,
在这里插入图片描述
在这里插入图片描述
但是,它忽略的两个问题:

  1. u=0.5的回归器对于更好的hypothese来说不是最优的,所以对于u≥0.85的bounding box来说,会降低它的效果。
  2. 在图2中,每次iteration之后,bounding box的分布会显著地改变,所以回归器如果对于初始分布最优,那它对于其他分布可能不是最优。
    在这里插入图片描述

integral loss

在这里插入图片描述
只是单纯地多次分类提高分类精度,每次分类针对的IoU阈值变高,但是这样对定位毫无帮助,并且容易过拟合。
在这里插入图片描述

Cascade R-CNN

在这里插入图片描述
级联R-CNN,总的来说就是多次回归,但是每次回归的回归器都是不一样的,所用的阈值不断提高,同时回归器训练时也是用提高的阈值训练的(和iterative BBox不同)
在这里插入图片描述
T时级联的总数。
级联R-CNN和iterative BBox的不同:

  1. 首先,iterative BBox时后处理过程,用了改善bounding box,但是级联回归是一个重采样过程,它会改变预测值的分布。
  2. 其次,因为它在训练和预测中都有使用,所以不会导致预测和训练分布的不同
  3. 各个回归器都在其stage上是最优的,因为不同stage的分布都重采样了。这在图4中也有体现
    在这里插入图片描述

loss

在这里插入图片描述
bt是上个stage回归后的bounding box。值得注意的是,有几个stage就有几个loss,t指的是stage的级数。

实验

本文选择的三个stage是{0.5,0.6,0.7}。本文实验了三个baseline,faster rcnn(VGG),R-FCN和FPN。

Quality mismatch

在这里插入图片描述
图5(a)中,三条实线是用不同阈值训练的单一的检测器,可以看出u=0.5在低IoU阈值表现得好,在高IoU阈值比不过u=0.6. 然后我们为了理解这是怎么发生的,在b中我们加入了一些ground truth bounding boxes。 可以看到,u=0.7有了很大的提高。所以说,高阈值的检测器所需的样本必须匹配quality。虚线表示用cascade里面的proposals代替原样本,可以发现检测器得到了很好的提高。

和iterative BBox和integral loss的比较

在这里插入图片描述
虽然都超过了baseline,但是cascade r-cnn的提升还是大了很多。
在这里插入图片描述
图7(a)是和iterative BBox定位的比较,可以看出单一回归器的使用会降低高IoU的hypotheses,这个影响在iterative BBox中会累计,但是cascade中later stages的表现在all levels都比BBox好。
图7(b)则是integral loss的分类AP,u=0.6在all IoU表现得最好,u=0.7最差,融合也没效果。

消融实验

在这里插入图片描述
在这里插入图片描述
(这里有个小小的疑问,Table 标号不应该放在表的上方吗)

和state-of-the-art的比较

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_37615398/article/details/85011652