[论文阅读]Cascade RCNN|Cascade R-CNN: Delving into High Quality Object Detection
题目:Cascade R-CNN: Delving into High Quality Object Detection
作者:Zhaowei Cai ; Nuno Vasconcelos
Motivation:
作者认为在目标检测过程中,决定正负样本的IOU通常会产生检测噪声,随着IOU增加,效果却变差。作者认为是由于1)单纯提高了IoU阈值,满足这个阈值条件的proposals必然比之前少了,IOU增加,正样本数量少,容易导致过拟合,导致检测效果变差。2)在inference阶段,proposal与训练时候的proposal分布不一样,,导致检测效果变差。于是作者提出Cascade R-CNN。
分析:
在training阶段,由于我们知道gt,所以可以很自然的把与gt的iou大于threshold(0.5)的Proposals作为正样本,这些正样本参与之后的bbox回归学习。
在inference阶段,由于我们不知道gt,所以只能把所有的proposal都当做正样本,让后面的bbox回归器回归坐标。
我们可以明显的看到training阶段和inference阶段,bbox回归器的输入分布是不一样的,training阶段的输入proposals质量更高(被采样过,IoU>threshold),inference阶段的输入proposals质量相对较差(没有被采样过,可能包括很多IoU<threshold的),这就是论文中提到mismatch问题,这个问题是固有存在的,通常threshold取0.5时,mismatch问题还不会很严重。
作者做实验也证明了这点:
可以得出以下结论:
1、只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好。
2、如果两个阈值相距比较远,就是我们之前说的mismatch问题了。
3、单一阈值训练出的检测器效果非常有限,单一阈值不能对所有的Proposals都有很好的优化作用。
于是乎Cascade R-CNN,并与现有的几种网络对比:
Iterative BBox的H位置都是共享的,而且3个分支的IoU阈值都取0.5。Iterative BBox存在的问题:
1、我们已经知道单一阈值0.5,是无法对所有proposal取得良好效果的。
2、此外,detector会改变样本的分布,这时候再使用同一个共享的H对检测肯定是有影响的。作者做了下面的实验证明样本分布在各个stage的变化。
可以看到每经过一次回归,样本都更靠近gt一些,质量也就更高一些,样本的分布也在逐渐变化。如果还是用0.5的阈值,在后面两个stage就会有较多离群点,使用共享的H也无法满足detector的输入的变化。
从上面这个图也可以看出,每个阶段cascade都有不同的IoU阈值,可以更好地去除离群点,适应新的proposal分布。
从上面这个图也可以看出,每个阶段cascade都有足够的样本,不会容易过拟合。
RPN提出的proposals大部分质量不高,导致没办法直接使用高阈值的detector,Cascade R-CNN使用cascade回归作为一种重采样的机制,逐stage提高proposal的IoU值,从而使得前一个stage重新采样过的proposals能够适应下一个有更高阈值的stage。
每一个stage的detector都不会过拟合,都有足够满足阈值条件的样本。
更深层的detector也就可以优化更大阈值的proposals。
每个stage的H不相同,意味着可以适应多级的分布。
在inference时,虽然最开始RPN提出的proposals质量依然不高,但在每经过一个stage后质量都会提高,从而和有更高IoU阈值的detector之间不会有很严重的mismatch。
Experiment:
还是不多说直接上图:
【完结】