目录
Comparison with the state-of-the-art
在目标检测中,需要通过IoU (intersection over union)阈值来定义正负。用低IoU阈值(例如0.5)训练的目标检测器通常会产生噪声检测,如图a所示,并且,随着IoU阈值的增加,检测性能趋于下降。这个问题有两个主要的原因导致:
1、由于在训练过程中正样本呈指数下降,过少的正样本导致网络训练期间过拟合;
2、检测器在最优的iou与输入预测的iou之间会产生mismatch。
多阶段目标检测体系结构Cascade R-CNN就是用来解决这些问题的。Cascade R-CNN由一组IOU不断增加的检测器组成,可以逐步的提高更接近目标的预测。检测器是一个阶段一个阶段地训练,后一个检测器利用前一个检测器的输出作为输入,这样就可以得到更高质量的预测。通过不断的提升IOU的信息可以保证所有的检测器都有一组等效尺寸的正样本,从而减少过拟合问题。同样的级联过程也可以应用于网络的推理阶段,使每个阶段的预测和检测器的信息更接近。在COCO数据集上,Cascade R-CNN的一个简单实现超越了所有单模型目标探测器。实验表明,级联R-CNN广泛适用于双阶段的检测器架构。原文代码。
Introduction
目标检测是一个复杂的问题,需要解决两个主要任务。首先,检测器必须解决识别问题,区分前景目标和背景目标,并为其分配匹配的类别标签。其次,探测器必须解决定位问题,为不同的目标分配精确的bounding box。许多目标探测器都是基于两阶段网络框架 Faster R-CNN的。双阶段检测网络是一个多任务学习问题,包括目标的分类和边界回归。与物体识别不同的是,定义正/负样本需要一个IoU阈值。通常使用的IOU阈值u=0.5,0.5对IOU的设置是相当低的。检测的目标经常包含很多噪声,如图 (a)所示。IOU阈值取0.5,会有很多假的预测信息也都包含在内,从而会产生很多错误的预测信息。
在Cascade R-CNN中,我们定义一个假设的阈值的IOU=u,并训练它,目的是尽可能的减少错误的目标框,如图(b)所示,其目的在是单个检测器的质量上保持最优结果。
根据图(c)和(d)代表定位和检测性能展示,蓝、绿、红三条线分别表示IOU阈值u=0.5、0.6、0.7。
在图(c)中,每个bounding box对于接近阈值的IoU的例子表现最好(原文这么说的,其实我并没有看出来,欢迎大家留言给予解释)。如果两个阈值相距比较远,就会存在mismatch问题。单一阈值训练出的检测器效果非常有限,单一阈值不能对所有的Proposals都有很好的优化作用。
图(d)展示,当RPN输出的proposal的IOU较小时,阈值u=0.5的RCNN检测器的效果要优于阈值u=0.6的RCNN检测器,当RPN输出的proposal的IOU较大时(接近0.7左右),效果相反。所以,在单个IOU级别上优化的检测器不一定在其他级别上是最优的。
这些观察表明,更好的检测结果需要探测器和预测之间更紧密的匹配。就是说,更好的检测结果是需要在预测框和真实框之间需要更大的IOU的阈值。然而,要生产一个好的检测结果,仅仅在训练期间提高IOU的阈值是不够的。事实上,就像图(d)中发现的u= 0.7的检测器那样,随着IOU的提升,更高的IOU阈值的网络得到的AP值更低,明显的看出来降低了检测性能。一般来说,增大IOU阈值会导致正训练样本的数量呈指数级减少。少量的正样本数据对于神经网络来说尤其成问题,非常少量的正样本容易导致过拟合问题。
本文提出的Cascade R-CNN网络架构,目的就是为了解决IOU阈值引起的上述问题。这是R-CNN双阶段网络系列的扩展,检测器级联更深入,对那么低IOU阈值的正样本信息有着更好的选择性。Cascade R-CNN是序列化排列的,逐次递进的训练,就是说当前的训练是以来上一阶段的训练结果的。这个想法的提出也是基于经验和观察提出的,因为我们在训练R-CNN网络时候发现,经过回归输出的IOU信息总是比输入到proposal之前的IOU要高。这表明,以一定的IoU阈值训练的检测器输出是一个良好的分布,以训练下一个较高的IoU阈值的检测器。就是说当训练R-CNN时候,有一个之前训练过的IOU结果会对我们本次训练结果有着更好的效果。通过调整每个阶段的bounding box,每个阶段的目标是找到一组IOU更高的、更贴近于ground truth的一组数据,用于训练下一阶段。通过这种级联的训练方式,可以逐步提高预测和真实框之间的IOU信息,从而解决过拟合的问题,得到有效的训练。网络推理过程,也同样使用级联过程。通过训练逐步改进proposal的预测框与ground truth的匹配程度。
Cascade R-CNN很容易实现,并且可以端到端进行训练。实验结果表明,在COCO检测任务上,在很大程度上超过了所有以前最先进的单个模型检测器。Cascade R-CNN可以在任意的双阶段的网络上进行构建,可以提升2-4个百分点,在计算复杂度上仅有略微的增加。通过这种级联方式的增益与base模型的检测效果好坏无关,都可以提升器原有的检测精度。因此,这种简单而有效的检测体系结构可以为许多目标检测研究工作带来帮助。
相关研究进展
由于R-C