每日文献(十)——Part two
今天从第四部分 级联RCNN开始介绍。
目录
四、级联RCNN
4.1 级联边界框回归
4.2 级联检测
五、实验结果
5.1 实现细节
5.1.1 基准工作
5.2 质量不匹配
5.3 与迭代bbox和积分损失的比较
5.4 消融实验
5.5 与最先进的方法对比
5.6 泛化能力
5.7 PASCAL VOC数据集结果
六、结论
四、级联RCNN
在本节中,我们将介绍如图3 (d)所示的Cascade RCNN目标检测架构。
4.1 级联边界框回归
如图1 (c)所示,很难要求单个回归量在所有质量水平上完全一致地执行。受级联姿态回归[6]和人脸对齐工作的启发,复杂的回归任务可以分解为一系列更简单的步骤[2,35]。在级联R-CNN中,它被框架为级联回归问题,架构如图3 (d)所示。这依赖于一系列专门的回归器
其中为级联的总级数。注意,级联中的每个回归量都是在到达相应阶段的样本分布{b}而不是{b1}的初始分布的基础上进行优化的。这种级联逐渐改善了假设。
它在几个方面不同于图3 (b)的迭代BBox架构。首先,迭代BBox是一种用于改进边界盒的后处理过程,而级联回归是一种重采样过程,它改变了不同阶段要处理的假设的分布。其次,由于它同时用于训练和推理,因此训练分布和推理分布之间没有差异。第三,针对不同阶段的重采样分布,优化多个专门化回归量{,−1,⋅⋅⋅⋅,1}。这与(2)的单一相反,(2)只对初始分布最优。这些差异使定位比迭代BBox更精确,无需进一步的人工工程。
如3.1节所述,(1)中的Δ=(,,,, <e:1>)需要归一化才能有效地进行多任务学习。在每个回归阶段之后,它们的统计数据将依次发展,如图2所示。在训练时,使用相应的统计量在每个阶段对Δ进行规范化。
4.2 级联检测
如图4左侧所示,初始假设(例如RPN建议)的分布严重倾向于低质量。这不可避免地导致了对高质量分类器的无效学习。级联R-CNN通过依赖级联回归作为重采样机制来解决这个问题。这是因为在图1 (c)中,几乎所有的曲线都位于对角线灰色线之上,也就是说,经过训练的边界框回归器倾向于产生更高IoU的边界盒。因此,从一组示例(,b)开始,级联回归依次重新采样一个IoU较高的示例分布(',b ')。通过这种方式,即使检测器质量(IoU阈值)增加,也可以将连续阶段的正例集保持在大致恒定的大小。图4说明了这一点,在每个重采样步骤之后,分布更倾向于高质量的示例。两个后果随之而来。首先,没有过度拟合,因为在各个层面上都有大量的正例。其次,针对更高的IoU阈值,对较深阶段的检测器进行了优化。请注意,通过增加IoU阈值,一些异常值会被依次删除,如图2所示,从而实现经过更好训练的专用检测器序列。

在每个阶段,R-CNN包括一个分类器<e:1>和一个针对IoU阈值优化的回归器,其中>−1。这是通过最小化损失来学习的
其中b =−1(−1,b−1),是真实值目标,=1是权衡系数,[⋅]是指示函数,是由(3)给出的标记。与(4)的积分损失不同,这保证了一系列有效训练的检测器质量不断提高。在推理时,通过应用相同的级联过程,假设的质量依次得到提高,并且只需要高质量的检测器在高质量的假设上运行。这可以实现高质量的目标检测,如图1 (c)和(d)所示。
五、实验结果
Cascade R-CNN主要在MSCOCO 2017[22]上进行评估,其中包含约118k用于训练的图像,5k用于验证(val),约20k用于不提供注释的测试(test-dev)。co -style Average Precision (AP)在IoU阈值范围从0.5到0.95之间平均AP,间隔为0.05。这些度量度量各种质量的检测性能。所有模型在COCO训练集上进行训练,并在val集上进行评估。最后的结果也报告在测试开发集上。在COCO训练集上进行训练,在val集上进行评估。最后的结果也报告在测试开发集上。
5.1 实现细节
为简单起见,所有回归量都是类不可知论的。cascade - cnn中所有的级联检测阶段都有相同的架构,它是基线检测网络的头部。Cascade R-CNN总共有四个阶段,一个RPN和三个检测阶段={0.5,0.6,0.7},除非另有说明。第一检测阶段的采样如下[13,30]。在接下来的阶段中,重采样是通过简单地使用前一阶段的回归输出来实现的,如第4.2节所示。除标准水平图像翻转外,未使用数据增强。推理是在一个单一的图像尺度上进行的,没有进一步的铃声和口哨。所有基线检测器都使用Caffe[20]重新实现,在相同的代码库上进行公平的比较。
5.1.1 基准工作
为了测试Cascade R-CNN的通用性,实验采用了三种常用的基线检测器:基于VGG-Net[32]的Faster R-CNN、基于ResNet[18]的R-FCN[4]和基于ResNet[18]的FPN[23]。这些基线具有广泛的检测性能。除非特别说明,否则将使用它们的默认设置。采用端到端训练代替多步训练。
Fasrt RCNN
网络头有两个完全连接的层。为了减少参数,我们使用[15]来修剪不太重要的连接。每个完全连接层保留2048个单元,删除掉掉的层。训练以0.002的学习率开始,在60k和90k迭代时减少10倍,并在100k迭代时停止,在2个同步gpu上,每个gpu每次迭代保存4张图像。每张图像使用128个roi。
R-FCN
R-FCN为ResNet增加了一个卷积、一个边界框回归和一个分类层。喀斯喀特R-CNN的所有负责人都有这种结构。未使用在线硬负挖掘[31]。训练以0.003的学习率开始,在160k和240k迭代时学习率降低了10倍,并在280k迭代时停止,在4个同步gpu上,每个gpu每次迭代保存一张图像。每张图像使用256个roi。
FPN
由于FPN没有公开的源代码,我们的实现细节可能会有所不同。使用RoIAlign[16]作为更强的基线。这被标记为FPN+,在所有消融研究中使用。与往常一样,ResNet-50用于消融研究,ResNet-101用于最终检测。训练使用0.005的学习率进行12万次迭代,0.0005的学习率用于接下来的6万次迭代,在8个同步的gpu上,每个gpu每次迭代保存一个图像。每张图像使用256个roi。
5.2 质量不匹配
图5 (a)显示了三个单独训练的检测器的AP曲线,IoU阈值增加={0.5,0.6,0.7}。在低IoU水平下,=0.5的检测器优于=0.6的检测器,但在较高的IoU水平下表现不佳。但是,=0.7的检测器不如其他两个检测器。为了理解为什么会发生这种情况,我们在推理时改变了建议的质量。图5 (b)显示了将真实值边界框添加到建议集时得到的结果。虽然所有检测器都得到了改进,但=0.7的检测器的增益最大,在几乎所有IoU级别上都实现了最佳性能。这些结果提出了两个结论。首先,=0.5不是精确检测的好选择,只是对低质量建议更具鲁棒的。其次,高度精确的检测需要与探测器质量相匹配的假设。接下来,原始检测器建议被更高质量的Cascade R-CNN建议取代(第二阶段和第三阶段建议分别为=0.6和=0.7)。图5 (a)还表明,当测试建议更接近检测器质量时,两个检测器的性能显著提高。

在所有级联阶段测试所有Cascade R-CNN探测器产生了类似的观察结果。图6显示,当使用更精确的假设时,每个检测器都得到了改进,而更高质量的检测器具有更大的增益。例如,=0.7的检测器对于第一阶段的低质量建议表现不佳,但对于更深层次的级联阶段中可用的更精确的假设则要好得多。此外,图6中联合训练的检测器优于图5 (a)中单独训练的检测器,即使使用的是相同的建议。这表明检测器在Cascade R-CNN框架内得到了更好的训练。

5.3 与迭代bbox和积分损失的比较
在本节中,我们将级联R-CNN与迭代BBox和积分损失检测器进行比较。迭代BBox通过三次迭代地应用FPN+基线来实现。积分损失检测器也有三个分类头,分别为U={0.5,0.6,0.7}。
定位:图7 (a)比较了级联回归和迭代BBox的定位性能。对于高IoU假设,使用单一回归量会降低定位性能。当迭代地应用回归量时,这种影响会累积,就像在迭代BBox中一样,并且性能实际上会下降。请注意,迭代BBox在3次迭代后的性能非常差。相反,级联回归器在后期具有更好的性能,在几乎所有IoU水平上都优于迭代BBox。
积分损失:积分损失检测器中所有分类器的检测性能,共享一个回归量,如图7 (b)所示。在所有IoU水平上,分类器=0.6是最好的,而分类器=0.7是最差的。所有分类器的集合没有显示出明显的增益。
从表1可以看出,迭代BBox和积分损耗检测器都略微改善了基线检测器。级联R-CNN在所有评估指标中都具有最佳性能。对于较低的IoU阈值,收益是温和的,但对于较高的IoU阈值,收益是显著的。


5.4 消融实验
通过几个消融实验来分析所提出的级联R-CNN。
阶段对比:表2总结了姐u但表现。注意,由于多阶段多任务学习的好处,第一阶段已经优于基线检测器。更深层次的级联阶段更倾向于高质量的本地化,鼓励学习有助于本地化的功能。通过在各个阶段之间共享特性,这有利于早期的级联阶段。第二阶段大大提高了性能,第三阶段与第二阶段相当。这与积分损失检测器不同,在积分损失检测器中,较高的IoU分类器相对较弱。虽然前(后)阶段在低(高)IoU指标下更好,但所有分类器的集合总体上是最好的。

IoU阈值:对所有头部使用相同的IoU阈值=0.5来训练初步级联R-CNN。在这种情况下,各个阶段的不同之处在于它们接受的假设。每个阶段都使用相应的假设进行训练,即考虑图2的分布。表3的第一行显示了在基线检测器上的级联改进。这表明了优化相应样本分布阶段的重要性。第二行显示,通过增加阶段阈值,检测器可以对接近的假阳性更有选择性,并专门用于更精确的假设,从而获得额外的收益。这支持了第4.2节的结论。

回归统计:利用图2中逐步更新的回归统计,有助于有效地进行分类和回归的多任务学习。通过比较表3中有/没有它的模型,可以看出它的好处。学习对这些统计数据不敏感。
阶段数:阶段数的影响总结于表4。添加第二个检测阶段显著改善了基线检测器。三个检测阶段仍然会产生显著的改进,但是添加第四个阶段(=0.75)会导致性能略有下降。然而,请注意,虽然整体AP性能下降,但四级级联在高IoU级别时具有最佳性能。三级级联实现了最好的折衷。

5.5 与最先进的方法对比
表5将基于FPN+和ResNet-101主干网的Cascade R-CNN与最先进的单模型目标探测器进行了比较。设置如5.1.1节所述,但总共运行了280k次训练迭代,在160k和240k次迭代时学习率下降。roi的数量也增加到512个。表5中的第一组检测器为一级检测器,第二组为两级检测器,最后一组为多级检测器(Cascade R-CNN为3级+RPN)。所有比较的最先进的探测器都用=0.5进行训练。值得注意的是,我们的FPN+实现比原来的FPN[23]更好,提供了一个非常强大的基线。此外,从FPN+扩展到Cascade R-CNN,性能提高了约4个点。在所有评估指标下,Cascade R-CNN的表现也大大优于所有单模检测器。这包括COCO挑战赛获胜者的单模型参赛作品(Faster rcn++[18]和G-RMI[19]),以及最近的transformable R-FCN [5], RetinaNet[24]和Mask R-CNN[16]。与COCO上最好的多级检测器AttractioNet[11]相比,尽管它使用了许多增强功能,但香草级联R-CNN仍然比它高出7.1分。请注意,与掩码R-CNN不同,级联R-CNN中没有利用分割信息。最后,普通的单模型Cascade R-CNN也超过了2015年和2016年赢得COCO挑战赛的精心设计的集成探测器(AP分别为37.4和41.6)1。

5.6 泛化能力
三种基线检测器的三级级联R-CNN比较见表6。所有设置如上所述,仅对FPN+进行了第5.5节的更改。
检测性能:同样,我们的实现比原始检测器更好[30,4,23]。尽管如此,Cascade R-CNN在这些基线上持续提高了2 ~ 4个点,与它们的强度无关。这些收益在val和测试开发上也是一致的。这些结果表明级联R-CNN广泛适用于各种检测器架构。
参数和时序:级联RCNN参数的数量随着级联级数的增加而增加。基线检测器头的参数数呈线性增长。此外,由于与RPN相比,检测头的计算成本通常较小,因此Cascade R-CNN在训练和测试时的计算开销都很小。
5.7 PASCAL VOC数据集结果
在PASCAL VOC数据集[8]上进一步对Cascade R-CNN进行了实验。随后[30,25],对模型进行VOC2007和VOC2012训练,并进行VOC2007测试。更快的R-CNN(与AlexNet和VGG-Net)和R-FCN(与ResNet)进行了测试。训练细节与5.1.1节相似,AlexNet也被修剪。由于本文的目标是探索高质量的检测,我们使用了COCO度量进行评估2。表7的检测结果表明,Cascade R-CNN在PASCAL VOC上也比多种检测架构有了显著的改进。这些增强了我们对Cascade R-CNN的鲁棒性的信念。

六、结论
在本文中,我们提出了一个多级目标检测框架,Cascade R-CNN,用于设计高质量的目标检测器。这种结构被证明可以避免训练时的过拟合和推理时的质量不匹配的问题。Cascade R-CNN在具有挑战性的COCO和流行的PASCAL VOC数据集上的可靠和一致的检测改进表明,需要对各种并发因素进行建模和理解,以推进目标检测。层叠RCNN被证明适用于许多目标检测体系结构。我们相信它对许多未来的目标检测研究工作是有用的。