Cascade RCNN 采用级联的方式,几乎对任意的RCNN都起到提升2到4点AP的作用

Faster R-CNN系列改进回顾


RCNN系列存在的问题

在RCNN系列中IoU的阈值决定了一个RoI属于正样本或是负样本,如果我们抬高阈值,则得到的RoI肯定是更接近真实物体,那么训练得到的检测器肯定会更为准确 (更好的proposal得到更好的bbox)

但同时会导致两个问题:

  1. 过拟合,更高的IoU阈值会导致选出更少的正样本 (如下图所示),正负样本的严重不均衡导致训练过拟合
  2. 严重的mismatch问题

Mismatch问题

训练阶段bbox回归学习的正样本是和GT的IoU大于阈值的Proposals,而测试阶段由于没有GT,用于bbox回归坐标的正样本是所有的Proposals,可能存在IoU小于阈值的,会导致性能下降,随着IoU阈值的提高,问题会变得更加严重

实验与发现

作者对不同的IoU阈值设置做了三组实验,c图展示了proposals的分布,横纵轴为经过bbox回归前后的候选框IoU分布,d图展示了测试阶段将bbox判断为正样本的IoU阈值 (注意区分IoU的含义)

可以发现,候选框IoU和IoU阈值接近时,训练效果更好,而越远,mismatch的效果会更严重

所以作者得出一个结论

单一IoU阈值无法对所有IoU的proposals进行优化

级联R-CNN

既然单一IoU阈值没法适配所有的情况,那就多整几个

—— Cascade R-CNN

级联RCNN的结构如图所示,I表示图片,B表示bbox回归,C表示分类,H表示RCNN网络部分

图中表示的结构很清晰,将前一个回归网络输出的bbox作为下一个检测器的输入继续进行回归,整三遍再输出,越靠后的检测器设置的IoU阈值越高

总结

级联主要是为了解决mismatch的问题,通过逐个RCNN块不断地提高bbox的IoU值,使得和更高的阈值能够相匹配,而因为正负样本均衡也不会出现过拟合的问题,多个RCNN回归级联适配了更多阈值的proposals