当前位置:   article > 正文

【论文翻译】:Cascade R-CNN: High Quality Object Detection and Instance Segmentation

cascade r-cnn: high quality object detection and instance segmentation

摘要

在对象检测中,交集联合(IoU)阈值经常用于定义正/负。用于训练探测器的阈值定义了其质量。虽然常用的阈值0.5导致噪声(低质量)检测,但检测性能经常会因较大阈值而降低。这种高质量检测的悖论有两个原因:

  1. 过度拟合,由于大阈值的正样本消失,
  2. 检测器和测试假设之间的推理时间质量不匹配。

提出了一种多级物体检测结构,级联R-CNN,由一系列以增加的IoU阈值训练的探测器组成,以解决这些问题。使用检测器的输出作为下一个的训练集,顺序地训练检测器。这种重新采样逐步改善了假设质量,保证了所有探测器的等效尺寸的正训练集,并使过度拟合最小化。在推理中应用相同的级联,以消除假设和检测器之间的质量不匹配。没有铃声或口哨声的Cascade R-CNN的实现在COCO数据集上实现了最先进的性能,并显着改善了对通用和特定物体检测数据集的高质量检测,包括VOC,KITTI,CityPerson和WiderFace 。最后,级联R-CNN被推广到实例分割,与Mask R-CNN相比具有重要的改进。为了便于未来的研究,可以在 https://github.com/zhaoweicai/cascade-rcnn (Caffe) 和 https://github.com/zhaoweicai/Detectron-Cascade-RCNN (Detectron)上获得两种实现方式。

1 INTRODUCTION

对象检测是一个复杂的问题,需要解决两个任务。 首先,探测器必须解决识别问题,区分前景物体与背景,并为它们分配适当的物体类标签。其次,探测器必须解决定位问题,为不同物体分配精确的边界框。 最近提出的许多物体探测器所基于的两个任务的解决方案的有效架构是两阶段R-CNN框架[21],[22],[37],[47]。 这种帧检测作为一个多任务学习问题,结合分类,解决识别问题和边界框回归,解决本地化问题。

尽管这种架构取得了成功,但这两个问题很难准确解决。 这部分是由于存在许多“接近”误报,对应于“接近但不正确”的边界框。 有效的检测器必须找到图像中的所有真阳性,同时抑制这些接近的误报。 该要求使得检测比其他分类问题更困难,例如, 对象识别,其中正面和负面之间的差异不是细粒度的。 事实上,必须仔细确定正面和负面之间的界限。 在文献中,这是通过对候选和地面真实边界框之间的联合交叉(IoU)得分进行阈值处理来完成的。 虽然阈值通常设置为u = 0.5的值,但这对于积极因素是非常宽松的要求。 由此产生的探测器经常产生噪声边界框,如图1(a)所示。大多数人认为接近误报的假设经常通过IoU≥0.5测试。 虽然在u = 0.5标准下组装的训练样本丰富且多样化,但是它们使得难以训练能够有效地拒绝接近误报的探测器。
在这里插入图片描述
在这项工作中,我们将检测假设的质量定义为具有基本事实的IoU,并将检测器的质量定义为用于训练它的IoU阈值。 质量提高的假设的一些例子如图1(c)所示。 目标是调查研究高质量物体探测器的研究不足的问题。 如图1(b)所示,这些探测器产生很少的误报。 起始前提是单个检测器只能针对单个质量水平进行优化。 这在成本敏感的学习文献[12],[42]中是已知的,其中接收机操作特性(ROC)的不同点的优化需要不同的损失函数。 主要区别在于我们考虑给定IoU阈值的优化,而不是误报率。

支持这一前提的一些证据在图2中给出,图2分别给出了用IoU阈值u = 0.5,0.6,0.7训练的三个探测器的边界框定位性能,分类损失和检测性能。定位和分类作为检测假设IoU的函数进行评估。检测作为IoU阈值的函数进行评估,如COCO [36]。图2(a)示出了三个边界框回归器倾向于在用于检测器训练的阈值附近的IoU的示例中实现最佳性能。图2(c)显示了类似的检测效果,直到最高阈值的某些过度拟合。对于低IoU,用u = 0.5训练的探测器优于用u = 0.6训练的探测器,在较高的IoU下表现不佳。通常,针对单个IoU值优化的检测器对于其他值不是最佳的。分类损失也证实了这一点,如图2(b)所示,其峰值接近用于探测器训练的阈值。通常,阈值确定分类器最具判别性的分类边界,即具有最大余量[6],[15]。

在这里插入图片描述
上述观察结果表明,高质量检测需要检测器质量与检测假设质量之间的紧密匹配。如果提供高质量的建议,探测器将只实现高质量。然而,这不能通过在训练期间简单地增加阈值u来保证。相反,如图2(c)中u = 0.7的检测器所示,强制u的高值通常会降低检测性能。我们提到这个问题,即训练具有较高阈值的检测器导致较差的性能,作为高质量检测的悖论。这个问题有两个原因。首先,对象提议机制倾向于产生对低质量严重不平衡的假设分布。结果,在训练期间使用较大的IoU阈值会以指数方式减少正向训练示例的数量。这对于神经网络尤其成问题,神经网络非常密集,使得“高u”训练策略非常容易过度拟合。其次,检测器的质量与推理时可用的假设之间存在不匹配。因为,如图2所示,高质量的探测器只是高质量假设的最佳选择,对于质量较低的假设,探测性能会大幅下降。

在本文中,我们提出了一种新的探测器架构,表示为Cascade R-CNN,它解决了这些问题,以实现高质量的物体探测。新架构是R-CNN的多阶段扩展,其中更深层次的探测器阶段依次更加选择性地抵抗近似误报。正如分类器级联[49],[54]所常见的那样,R-CNN级的级联被顺序训练,使用一级的输出来训练下一级这利用了观察到边界框回归量的输出IoU几乎总是好于其输入IoU,如图2(a)所示,其中几乎所有的图都在灰线上方。结果,用特定IoU阈值训练的检测器的输出是用于训练下一个更高IoU阈值的检测器的良好假设分布。这与通常用于组装数据集以进行对象检测的boostrapping方法有一些相似之处[14],[54]。主要区别在于Cascade R-CNN进行的重新采样并不是为了挖掘硬性负面因素。相反,通过调整边界框,每个阶段都旨在为下一阶段的训练找到一组良好的近似误报。这种重新采样的主要结果是检测假设的质量从一个阶段到下一个阶段逐渐增加。结果,检测器序列解决了高质量检测悖论背后的两个问题。首先,因为重采样操作保证了序列中所有检测器的训练的大量示例的可用性,所以可以训练高IoU的检测器而不过度拟合。其次,在推理时使用相同的级联程序产生一组质量逐渐提高的假设,与检测器级的质量增加很好地匹配。这使得检测精度更高,如图2所示。

Cascade R-CNN非常易于实施和端到端的培训。 我们的研究结果表明,在具有挑战性的COCO检测任务[36]中,特别是在更严格的评估指标下,没有任何花边和口哨的香草(????)实施超过了几乎所有先前的最先进的单模型探测器。 此外,Cascade R-CNN可以使用基于R-CNN框架的任何两级物体探测器构建。 我们观察到一致的增益(2到4个点,更严格的本地化指标),计算的边际增长。 对于我们测试的所有模型,此增益与基线物体探测器的强度无关。 因此,我们相信这种简单有效的检测架构可能对许多物体检测研究工作感兴趣。

该手稿的初步版本先前已在[3]中发表。在最初的出版物之后,Cascade R-CNN已经在许多不同的代码库中成功复制,包括流行的Detectron [20],PyTorch1和TensorFlow2,显示了与实现代码库无关的一致和可靠的改进。在这个扩展版本中,我们通过向级联添加掩码头,将Cascade R-CNN扩展到实例分段,表示为级联掩码R-CNN。这显示出对流行的Mask R-CNN [25]实现了非平凡的改进。还提出了一个新的更广泛的评估,表明Cascade R-CNN与检测和实例分割文献中提出的许多互补增强相兼容,其中一些是在[3]之后引入的,例如, GroupNorm [56]。最后,我们进一步展示了一系列实验的结果,这些实验在各种流行的通用/特定物体检测数据集上进行,包括PASCAL VOC [13],KITTI [16],CityPerson [64]和Wider-Face [61]。这些实验表明,高质量物体检测的悖论适用于所有这些任务,并且Cascade R-CNN能够实现比以前可用的方法更有效的高质量检测。由于这些属性,以及它的通用性和灵活性,Cascade R-CNN最近被COCO 2018实例分段挑战3,OpenImage 2018挑战4和更广泛挑战20185的获胜团队采用。为了便于未来的研究,我们已经在两个代码库中发布了代码,Caffe [31]和Detectron [20]。

2 RELATED WORK

由于R-CNN [22]探测器的成功,该探测器结合了提议探测器和区域分类器,这种两阶段架构在最近已成为主流。为了减少冗余CNN计算,SPP-Net [26]和Fast R-CNN [21]引入了区域特征提取的思想,使得能够通过对象实例共享大量特征计算。然后,更快的R-CNN [47]通过引入区域提议网络(RPN)实现了进一步的加速,成为现代物体检测的基石。后来,一些工作扩展了这个探测器,以解决各种细节问题。例如,R-FCN [8]提出了有效的区域完全卷积,以避免更快的R-CNN的重CNN计算;并且Mask R-CNN [25]添加了一个网络头,用于计算对象掩码以支持实例分割。最近的一些工作集中在标准化特征统计[45],[56],建模实例之间的关系[28],非最大抑制(NMS)[1]和其他方面[39],[50]。

尺度不变性是有效物体检测的重要条件,在文献[2],[37],[52]中也受到了极大的关注。虽然自然图像包含各种尺度的物体,但RPN [47]实现的滤波器的固定感受野大小使其容易出现尺度不匹配。为了解决这个问题,MS-CNN [2]通过在多个层产生输出,引入了多尺度对象建议网络。这利用了不同层的不同感知字段大小来生成一组特定于规模的提议生成器,然后将其组合成强大的多规模生成器。类似地,FPN [37]在多个输出层检测高召回提议,通过在不同网络深度的特征映射之间添加自上而下连接来求助于尺度不变的特征表示。 MS-CNN和FPN都依赖于用于多尺度物体检测的特征金字塔表示。另一方面,SNIP [52]最近在现代物体检测中重新审视了图像金字塔。它在训练期间对来自不同物体尺度的梯度进行归一化,使得整个探测器是特定尺度的。通过在推理中使用图像金字塔来实现尺度不变检测。

一阶段对象检测体系结构也因其计算效率而变得流行。 YOLO [46]输出非常稀疏的检测结果,并通过高效的骨干网络将输入图像转发一次,从而实现实时物体检测。 SSD [40]以类似于RPN [47]的方式检测对象,但使用不同分辨率的多个特征图来覆盖各种尺度的对象。这些探测器的主要限制是它们的精度通常低于两级探测器的精度。 RetinaNet [38]探测器被提出用于解决密集物体检测的极端前景 - 背景类不平衡,实现与两级探测器相当的结果。最近,CornerNet [33]提出将对象边界框检测为一对关键点,放弃了由更快的R-CNN首先引入的广泛使用的锚点概念。通过一些培训和测试增强功能,该探测器取得了非常好的性能。 RefineDet [65]为单次发射的SSD添加了一个锚点细化模块[40],以提高定位精度。这有点类似于所提出的级联R-CNN实现的级联本地化,但忽略了高质量检测的问题。

还提出了多阶段物体检测的一些探索。 [17]的多区域检测器引入了迭代边界框回归,其中R-CNN被多次应用以产生连续更准确的边界框。 [18],[19],[60]使用多阶段程序来生成准确的提议,将其转发到准确的模型(例如,快速R-CNN)。 [43],[62]提出了一种顺序定位对象的替代程序。 虽然这与Cascade-RCNN在精神上类似,但这些方法迭代地使用相同的回归量来进行精确定位。 另一方面,[34],[44]在对象检测网络中嵌入了[54]的经典级联体系结构。 最后,[7]在检测和分割任务之间进行迭代,以实现改进的实例分割。

在发布该手稿的会议版本后,一些作品追求了Cascade R-CNN背后的想法[5],[32],[41],[55]。 [41],[55]将其应用于单次物体探测器,分别显示了对于普通物体和行人的高质量单次探测的重要改进。 IoU-Net [32]更详细地探索了高质量的本地化,通过级联更多的边界框回归步骤实现了对Cascade R-CNN的一些增益。 [24]表明,在Cascade R-CNN的帮助下,可以在没有ImageNet预训练的情况下实现最先进的物体探测器。 这些工作表明Cascade R-CNN的思想是健壮的,适用于各种对象检测架构。 这表明,尽管物体检测的未来发展,它仍应继续有用。

3 HIGH QUALITY OBJECT DETECTION

在本节中,我们将讨论高质量物体检测的挑战。

3.1 Object Detection

虽然这项工作中提出的想法可以应用于各种探测器架构,但我们关注的是Faster R-CNN [47]的流行的两阶段架构,如图3(a)所示。 第一阶段是提议子网,其中整个图像由骨干网络处理,例如, ResNet [27]和提议头(“H0”)用于产生初步检测假设,称为对象建议。 在第二阶段,这些假设由感兴趣区域检测子网络(“H1”)处理,表示为检测头。 根据假设分配最终分类分数(“C”)和边界框(“B”)。 整个探测器是端到端学习的,使用带有边界框回归和分类组件的多任务丢失。
在这里插入图片描述

3.1.1 Bounding BoxRegression

边界框b =(bx,by,bw,bh)包含图像块x的四个坐标。 边界框回归旨在使用回归量f(x,b)将候选边界框b回归到目标边界框g中。 这是通过最小化风险从训练集(gi,bi)中学习的
在这里插入图片描述
是光滑的L1损失函数。 为了促进比例和位置的不变性,smoothL1对距离矢量Δ=(δx,δy,δw,δh)进行定义
在这里插入图片描述
由于边界框回归通常对b进行较小的调整,因此(4)的数值可以非常小。 这通常使回归损失远小于分类损失。 为了提高多任务学习的有效性,Δ通过其均值和方差归一化,例如, δx被替换为
在这里插入图片描述
这被广泛用于文献[2],[8],[25],[37],[47]。

3.1.2 Classification

分类器是函数h(x),它将图像块x分配给M + 1个类之一,其中类0包含背景,其余类包含要检测的对象。 h(x)是类上后验分布的M + 1维估计,即hk(x)= p(y = k | x),其中y是类标签。 给定训练集(xi,yi),通过最小化分类风险来学习
在这里插入图片描述

3.2 Detection Quality

考虑与类标签y相关联的边界框g的基础事实对象,以及边界框b的检测假设x。 由于b通常包括对象和一定量的背景,因此可能难以确定检测是否正确。 这通常通过并集联合(IoU)度量来解决
在这里插入图片描述
如果IoU高于阈值u,则将补丁视为边界框g的对象类的示例并且表示为“正”。 因此,假设x的类标签是u的函数,
在这里插入图片描述
如果IoU未超过任何对象的阈值,则x被分配给背景并表示为“负”

虽然不需要为边界框回归任务定义正/暗示例,但还需要IoU阈值u来选择用于训练回归量的样本集。
在这里插入图片描述
虽然用于这两个任务的IoU阈值不必相同,但这在实践中是常见的。 因此,IoU阈值u定义了检测器的质量。 大阈值鼓励检测到的边界框与其地面实况对应部分紧密对齐。 小阈值奖励产生松散边界框的探测器,与地面实况重叠很小。

物体检测的一个主要挑战是,无论选择何种阈值,检测设置都是非常普遍的。当你很高时,积极的背景较少,但很难组装大型的正训练集。当你很低时,可能会有更丰富和更多样化的积极训练集,但训练有素的探测器几乎没有动机拒绝接近误报。通常,很难保证单个分类器在所有IoU级别上均匀地执行。在推论中,由于提议检测器产生的大多数假设,例如, RPN [47]或选择性搜索[53]具有低质量,检测器必须对低质量假设更具判别性。这些相互冲突的要求之间的标准妥协是确定u = 0.5,这在几乎所有现代物体探测器中都使用。然而,这是一个相对较低的阈值,导致大多数人认为接近误报的低质量检测,如图1(a)所示。

3.3 Challenges to High Quality Detection

尽管过去几年在物体检测方面取得了重大进展,但很少有人试图解决高质量检测问题。 这主要是由于以下原因。

首先,评估指标在历史上更加强调低质量检测体系。对于性能评估,IoU阈值u用于确定检测是成功(IoU(b,g)≥u)还是失败(IoU(b,g)<u)。许多物体检测数据集,包括PASCAL VOC [13],ImageNet [48],Caltech Pedestrian [11]等,使用u = 0.5。这部分是因为这些数据集是在不久之前建立的,当时对象检测性能远远不如今天。然而,这种宽松的评估标准甚至被相对较新的数据集采用,例如WiderFace [61]或CityPersons [64]。这是许多这些数据集的性能已经饱和的主要原因之一。其他如COCO [36]或KITTI [16]使用更严格的评估指标:KITTI中汽车的平均精度为u = 0.7,COCO中的平均精度u = [0.5:0.05:0.95]。虽然最近的工作集中在这些不太饱和的数据集上,但大多数探测器的设计仍然具有u = 0.5的松散IoU阈值,与低质量检测方案相关。在这项工作中,我们表明,当有更严格的评估指标时,还有很大的改进空间,例如:使用u≥0.75,通过专门为高质量方案设计探测器,可以实现显着改进。

其次,由于高质量检测的悖论,高质量物体检测器的设计不是现有方法的简单概括。为了克服悖论,有必要匹配假设发生器和物体探测器的质量。在文献中,已经努力提高假设的质量,例如,通过迭代边界框回归[18],[19]或更好的RPN设计[2],[37],以及一些提高物体探测器质量的努力,例如:通过在一组IoU阈值上使用积分损失[63]。这些尝试无法保证高质量检测,因为它们只考虑其中一个目标,而忽略了两个任务的质量需要同时增加的事实。一方面,如果检测器保持低质量,则提高假设的质量几乎没有益处,因为后者未被训练以区分高质量和低质量假设。另一方面,如果仅增加检测器质量,则对其进行分类的高质量假设太少,导致无检测改进。实际上,因为如图4(左)所示,正样本集随着u快速下降,高u检测器容易过度拟合。因此,如图2(c)所示,高u检测器可以容易地过度拟合并且比低u检测器更差。
在这里插入图片描述

4 CASCADE R-CNN

In this section we introduce the Cascade R-CNN detector

4.1 Architecture

Cascade R-CNN的架构如图3(b)所示。 它是图3(a)的快速R-CNN架构的多阶段扩展。 在这项工作中,我们专注于检测子网,简单地采用图3(a)的RPN [47]进行提案检测。 但是,Cascade R-CNN不限于此提议机制,其他选择应该是可能的。 如上一节所述,目标是同时提高假设和检测器的质量,以实现高质量的物体检测。 这是通过级联边界框回归和级联检测的组合实现的。

4.2 Cascaded Bounding Box Regression

在训练期间可以容易地产生高质量的假设,其中可以获得地面真实边界框,例如, 通过围绕地面真相抽样。 当事实不可用时,难以在推理中产生高质量的提议。 通过级联边界框回归解决了这个问题。

如图2(a)所示,单个回归量通常不能在所有质量水平上均匀地表现。 然而,正如通常对姿势回归[10]或面部对齐[4],[58],[59]所做的那样,回归任务可以分解为一系列更简单的步骤。 在Cascade R-CNN探测器中,该想法是使用具有图3(b)结构的级联回归器实现的。 这包括一系列专门的回归量。
在这里插入图片描述
其中T是级联阶段的总数。 关键点是每个回归量ft都针对前一个回归量生成的边界框分布{bt}进行了优化,而不是初始分布{b1}。 通过这种方式,假设逐步得到改善。
在这里插入图片描述
这在图5中示出,其示出了在不同级联阶段的回归距离矢量Δ=(δx,δy,δw,δh)的分布。 请注意,大多数假设随着它们在级联中的进展而变得更接近基本事实。 还有一些假设无法满足后期级联阶段更严格的IoU标准。 这些被宣布为异常值并被淘汰。 应该注意的是,如3.1.1节所述,Δ需要是均值/方差归一化,如(5)所示,用于有效的多任务学习。 在该异常值去除步骤之后计算的均值和方差统计量用于在每个级联阶段归一化Δ。 我们的实验表明,级联边界框回归的这种实现在训练和推理中产生了非常高质量的假设。

4.3 Cascaded Detection

如图4左侧所示,RPN产生的初始假设分布严重倾向于低质量。 例如,只有2.9%的例子对于IoU阈值u = 0.7是正的。 这使得训练高质量探测器变得困难。 Cascade R-CNN通过使用级联回归作为重采样机制来解决该问题。 这受图2(a)的启发,其中几乎所有的曲线都在对角灰线上方,表明为某个u训练的边界框回归器倾向于产生更高IoU的边界框。 因此,从示例{(xi,bi)}开始,级联回归连续重新采样较高IoU的示例分布{(x’i,b’i)}。这使得连续阶段的正例集合保持大致 即使检测器质量u增加,也会保持恒定的尺寸。 图4说明了此属性,显示了每个重采样步骤后示例分布如何更倾向于高质量示例。

在每个阶段t,R-CNN头包括分类器ht和针对相应的IoU阈值ut优化的回归器ft,其中ut> ut-1。这些是通过loss来学习的。
在这里插入图片描述
其中bt = ft-1(xt-1,bt-1),g是xt的基础事实对象,λ= 1权衡系数,yt是ut标准下的xt标签,根据(9),[·]是指标函数。注意,使用[·]意味着边界框回归的IoU阈值u与用于分类的IoU阈值u相同。这种级联学习对探测器训练有三个重要影响。首先,在大的IoU阈值u下过度拟合的可能性降低了,因为在所有阶段都有积极的例子(见图4)。其次,更深阶段的探测器对于更高的IoU阈值是最佳的。第三,由于随着IoU阈值的增加,一些异常值被移除(见图5),边界框回归的学习效果在后期阶段会增加。同时改进假设和探测器质量使Cascade R-CNN能够击败高质量探测的悖论。在推论中,应用相同的级联。假设的质量是顺序改进的,并且更高质量的检测器仅需要在更高质量的假设上操作,对于这些假设它们是最佳的。这使得能够获得图1(b)的高质量物体检测结果,如图2所示

4.4 Differences from Previous Works

Cascade R-CNN与先前的工作具有相似性,使用迭代边界框回归和检测的积分损失。 但是,存在重要的差异

迭代边界框回归: 一些工作[17],[18],[27]之前曾提出使用单个边界框回归量f不足以进行精确定位。 这些方法迭代地应用,作为精炼边界框b的后处理步骤。
在这里插入图片描述
这称为迭代边界框回归并表示为迭代BBox。 它可以用图3(c)的推理架构实现,其中所有头都是相同的。 注意,这仅用于推理,因为训练与两级物体检测器的训练相同,例如, 图3(a)的快速R-CNN,u = 0.5。 这种方法忽略了两个问题。 首先,如图2所示,在u = 0.5时训练的回归f对于较高IoU的假设是次优的。 它实际上降低了大于0.85的IoU的边界框精度。 其次,如图5所示,边界框的分布在每次迭代后显着变化。 虽然回归量对于初始分布是最佳的,但在此之后它可能是非常不理想的。 由于这些问题,迭代BBox需要相当数量的人工工程,以提案积累,盒子投票等形式,并且有一些不可靠的收益[17],[18],[27]。 通常,除了两次应用f之外没有任何好处。

Cascade R-CNN在几个方面与迭代BBox不同。 首先,虽然迭代BBox是用于改进边界框的后处理过程,但Cascade R-CNN使用级联回归作为重新采样机制,其改变由不同阶段处理的假设的分布。 其次,由于级联回归用于训练和推理,因此训练和推理分布之间不存在差异。 第三,多个专用回归量{fT,fT-1,···,f1}对于不同阶段的重采样分布是最佳的。 这与(13)的单个f不同,它仅对初始分布是最佳的。 我们的实验表明,Cascade R-CNN能够实现比迭代BBox更精确的定位,并且不需要人工设计。

积分损失: [63]提出了一个具有图3(d)结构的分类器集合,并用积分损失进行训练。 这是一个损失函数:
在这里插入图片描述
它针对各种质量水平,由一组IoU阈值U = {0.5,0.55,···,0.75}定义,选择这些阈值以符合COCO挑战的评估指标。

Cascade R-CNN在几个方面与该探测器不同。首先,(14)未能解决各种损失条款对不同数量的正数进行操作的问题。如图4(左)所示,正样本集随u快速下降。这尤其成问题,因为它使得高质量分类器非常容易过度拟合。另一方面,如图4所示,当IoU阈值u增加时,级联R-CNN的重新采样产生几乎恒定数量的正例。其次,在推断时,需要高质量的分类器来处理压倒性低质量的提议,因为它们不是最佳的。这与Cascade R-CNN的高质量探测器不同,后者仅需要在更高质量的假设下操作。第三,积分损失旨在符合COCO指标,并且根据定义,分类器在推理中被整合。 Cascade R-CNN旨在实现高质量检测,最后阶段的高质量检测器本身可以获得最先进的检测性能。由于所有这些,对于大多数质量水平,图3(d)的积分损失检测器通常不能胜过图3(a)的香草检测器。这与Cascade R-CNN不同,后者可以有显着的改进。

5 INSTANCE SEGMENTATION

实例分割在最近变得流行[7],[25],[39]。 除了确定其对象类之外,它还旨在预测每个实例的像素级分割。 这比对象检测更困难,对象检测仅预测每个实例的边界框(加上类)。 通常,除了对象检测之外还实现实例分割,并且更强的对象检测器通常导致改进的实例分割。 最流行的实例分割方法可以说是Mask R-CNN [25]。 与Cascade R-CNN一样,它是两级探测器的变体。 在本节中,我们通过添加类似于Mask R-CNN的分段分支,将Cascade R-CNN架构扩展到实例分段任务。

5.1 Mask R-CNN

Mask R-CNN [25]通过在训练期间与现有检测分支并行地添加分段分支来扩展更快的R-CNN。 它具有图6(a)的架构。 训练实例是用于训练检测任务的正例。 在推理中,对于所有检测到的对象,对象检测用分段掩码补充。
在这里插入图片描述

5.2 Cascade Mask R-CNN

在掩码R-CNN中,分段分支与检测分支并行插入。然而,Cascade R-CNN具有多个检测分支。这提出了以下问题:1)添加分段分支的位置和2)要添加的分段分支。我们在Cascade R-CNN中考虑了三种掩模预测策略。前两个策略解决了第一个问题,在级联R-CNN的第一级或最后一级添加了单个掩码预测头,分别如图6(b)和(c)所示。由于用于训练分割分支的实例是检测分支的正数,因此它们的数量在这两种策略中不同。如图4所示,稍后将分段头放置在级联上导致更多示例。然而,因为分割是逐像素操作,所以大量高度重叠的实例不一定与对象检测一样有用,对象检测是基于补丁的操作。第三个策略解决了第二个问题,为每个级联阶段添加了一个分支分支,如图6(d)所示。这最大化了用于学习掩模预测任务的样本的多样性。

在推理时,所有三种策略都预测最终对象检测阶段产生的片上的分割掩模,而不管实现分割掩模的级联阶段和有多少分割分支。 最终的掩模预测是从图6(b)和(c)的体系结构的单个分割分支获得的,并且是从图6(d)的体系结构的三个分割分支的集合中获得的。 我们的实验表明,Cascade Mask R-CNN的这些架构优于Mask R-CNN。

6 EXPERIMENTAL RESULTS

在本节中,我们对Cascade R-CNN探测器进行了广泛的评估

6.1 Experimental Set-up

在多个数据集和基线网络架构上进行了实验

6.1.1 Datasets

大部分实验在MS-COCO 2017上进行[36],其中包含118k的训练图像,5k的验证(val)和20k的测试,没有提供注释(test-dev)。 COCO平均精度(AP)测量平均AP在IoU阈值范围内从0.5到0.95,间隔为0.05。它测量各种质量的检测性能,鼓励高质量的检测结果,如3.3节所述。所有模型都在COCO训练集上进行训练,并在val集上进行评估。最终结果也报告在test-dev集上,以便与最先进的技术进行公平比较。为了评估级联R-CNN的稳健性和泛化能力,还对Pascal VOC [13],KITTI [16],CityPersons [64]和WiderFace [61]进行了实验。还使用与对象检测相同的评估指标在COCO上评估实例分段。唯一的区别是IoU是根据掩码而不是边界框计算的。

6.1.2 Implementation Details

为简单起见,所有回归量都是类不可知的。 所有级联R-CNN检测级都具有相同的架构,即基线检测器的检测头。 除非另有说明,否则级联R-CNN实现有四个阶段:一个RPN和三个检测头,阈值U = {0.5,0.6,0.7}。 第一个检测阶段的采样遵循[21],[47]。 在后续阶段,重新采样是通过使用前一阶段的所有回归输出来实现的,如第4.3节所述。 除标准水平图像翻转外,未使用任何数据增强。 推断是在单个图像尺度上进行的,没有进一步的铃声和口哨声。 使用相同的代码库,所有基线检测器都使用Caffe [31]重新实现,以实现公平的比较。 在Detectron平台上实现了FPN和Mask R-CNN基线的一些实验。

6.1.3 Baseline Networks

为了测试Cascade R-CNN的多功能性,使用多个流行基线进行了实验:使用VGG-Net [51]主干,R-FCN [8]和FPN [37]更快的R-CNN和MS-CNN [2] 使用ResNet主干[27],用于对象检测的任务,使用ResNet主干进行掩码R-CNN [25]进行实例分割。 这些基线具有广泛的性能。 除非另有说明,否则使用其默认设置。 使用端到端培训代替多步培训。

Faster R-CNN: 网络头有两个完全连接的层。 为了减少参数,[23]用于修剪不太重要的连接。 每个完全连接的层保留2048个单元,并除去掉落层。 这些变化对检测性能的影响可以忽略不计。 训练开始时学习率为0.002,在60k和90k迭代时减少了10倍,并在2个同步GPU上停止了100k次迭代,每次迭代每次持有4个图像。 每个图像使用128个RoI。

R-FCN: R-FCN向ResNet添加卷积,边界框回归和分类层。 对于此基线,所有级联R-CNN头都具有此结构。 没有使用在线硬负采矿[50]。 训练开始时学习率为0.003,在160k和240k迭代时减少了10倍,并在4个同步GPU上停止了280k次迭代,每次迭代每次持有一个图像。 每个图像使用256个RoI。

FPN: 由于当我们进行原始实验时,官方源代码不能公开用于FPN [3],实现细节与后来在Detectron实现中提供的有些不同。 RoIAlign [25]用于更强的基线。 这表示为FPN +并且用于所有消融研究,ResNet-50作为通常的骨干。 对于120k迭代,训练使用0.005的学习率,对于接下来的60k迭代,使用8个同步GPU的学习率为0.0005,每个迭代每个持有一个图像。 每个图像使用256个RoI。 我们还在Detectron平台上重新实现了FPN的Cascade R-CNN,当时它是公开的。

MS-CNN: MS-CNN [2]是用于特定对象类别的流行的多尺度物体检测器,例如, 车辆,行人,面部等。它被用作KITTI,CityPersons和WiderFace实验的基线检测器。 对于此基线,Cascade R-CNN采用了与MS-CNN相同的两步训练策略:首先训练提议子网,然后进行联合端到端训练。 所有检测头仅在第二步添加,其中学习率最初为0.0005,在10k和20k迭代时减少10倍并且在批量大小为4的图像的GPU上停止在25k迭代。

Mask R-CNN: 掩码R-CNN用作实例分割的基线。 使用默认的Detectron实施,使用1x学习计划。 训练开始时学习率为0.02,在60k和80k迭代时减少了10倍,在8个同步GPU上停止了90k次迭代,每次迭代持有2个图像。 每个图像使用512个RoI。

6.2 Quality Mismatch

设计了一组初步实验,以评估提案和检测器质量之间的错配对检测性能的影响。图7(a)示出了在U = {0.5,0.6,0.7}中增加的IoU阈值的三个经过单独训练的检测器的AP曲线。 u = 0.5的探测器在低IoU水平下优于u = 0.6的探测器,但在较高水平下表现不佳。但是,u = 0.7的检测器性能低于其他两个。为了理解这种情况发生的原因,我们在推断时改变了提案的质量。图7(b)显示了将基础真值边界框添加到提议集中时获得的结果。虽然所有探测器都得到了改进,但u = 0.7的探测器具有最大的增益,并且几乎所有IoU级别的探测器都具有最佳性能。这些结果表明了两个结论。首先,常用的u = 0.5阈值对于精确检测无效,对于低质量提议更简单。其次,精确检测需要与检测器质量匹配的假设。
在这里插入图片描述
接下来,原始提案被更高质量的级联R-CNN提案所取代(u = 0.6和u = 0.7分别使用了第二和第三阶段提案)。图7(a)表明,当测试提案的质量与探测器质量相匹配时,两个探测器的性能得到显着改善。在所有级联阶段测试不同质量的级联R-CNN检测器产生类似的观察结果。图8显示通过使用更精确的假设改进了每个探测器,更高质量的探测器表现出更大的增益。例如,u = 0.7的检测器对于第一阶段的低质量提议表现不佳,但对于更深级联阶段可用的更精确假设更好。即使在使用相同的提议时,图8的联合训练的检测器也优于图7(a)的单独训练的检测器。这表明探测器在Cascade R-CNN架构中受到更好的训练。
在这里插入图片描述

6.3 Comparison with Iterative BBox and Integral Loss

在本节中,我们将Cascade R-CNN与迭代BBox和积分损耗检测器进行比较。 通过在推理中迭代地应用FPN +基线的检测头三次来实现迭代BBox。 积分损失检测器使用三个分类头实现,使用U = {0.5,0.6,0.7}。

定位: 级联回归和迭代BBox的定位性能在图9(a)中进行了比较。 单个回归量的使用降低了高IoU假设的定位。 当迭代地应用回归量时,这种效应累积,如在迭代BBox中,并且性能实际上随着迭代次数而下降。 注意3次迭代后迭代BBox的性能非常差。 相反,级联回归器在后期阶段具有更好的性能,在几乎所有IoU级别上都优于迭代BBox。 注意,尽管级联回归可以略微降低高输入IoU,例如, IoU> 0.9,这种下降可以忽略不计,因为如图4所示,具有如此高IoU的假设的数量非常小。
在这里插入图片描述
积分损耗: 图9(b)总结了积分损耗检测器的所有分类器的检测性能,共享一个回归量。 u = 0.6的分类器在所有IoU水平上是最好的,u = 0.7产生最差的结果。 所有分类器的整体都没有明显的增益。
在这里插入图片描述
表1显示迭代BBox和积分损失在基线检测器上略微改善,并且对高质量检测无效。 另一方面,Cascade R-CNN在所有IoU级别上实现了最佳性能。 正如预期的那样,低IoU的收益是温和的,例如 对于AP50为0.8,但对于较高的那些有重要意义,例如 AP80为6.1,AP90为8.7。 请注意,在此工作之前很少探索高质量的对象检测。 这些实验表明:1)它比低质量检测有更大的改进空间,低质量检测侧重于AP50,2)如果有效解决,整体AP可以得到显着改善。

6.4 Ablation Experiments

进行了一些消融实验,以便更好地理解Cascade R-CNN

阶段性比较: 表2总结了阶段性能。 请注意,由于多阶段多任务学习的好处,第一阶段已经优于基线检测器。 由于更深层次的级联阶段更喜欢更高质量的本地化,因此它们鼓励学习有利于它的特征。 由于骨干网络的功能共享,这有利于早期的级联阶段。 第二阶段大大提高了性能,第三阶段相当于第二阶段。 这与积分损耗检测器不同,其中较高的IoU分类器相对较弱。 虽然前(后)阶段在低(高)IoU指标上更好,但所有分类器的整体是最好的整体。
在这里插入图片描述
IoU阈值: 对于所有磁头,使用IoU阈值u = 0.5训练级联R-CNN。 在这种情况下,阶段仅在其输入的假设上不同。 每个阶段都用相应的假设进行训练,即考虑图5的分布变化。表3的第一行表明该级联在基线检测器上有所改进。 这支持了应该针对相应的样本分布优化阶段的声明。 第二行显示当阈值u跨阶段增加时性能进一步提高。 正如4.3节所讨论的那样,探测器对于近距离误报具有更高的选择性,并且专门用于更精确的假设。
在这里插入图片描述
回归统计: 在3.1.1节中,我们看到距离向量Δ由回归统计量(均值和方差)归一化,如(5)所示。 在Cascade R-CNN中,这些统计数据逐步更新,如图5所示。在更深的阶段更新(5)的统计数据有助于分类和回归的有效多任务学习。 根据经验,学习对这些统计数据的确切值不是非常敏感。 为简单起见,我们为所有阶段设置μ= 0,第一阶段Σ=(σx,σy,σw,σh)=(0.1,0.1,0.2,0.2),第二阶段为Σ/ 2,Σ/ 3为 第三,在我们所有的实验中。 表3的第三和第四行表明,与使用所有阶段(第一和第二行)中第一阶段的统计数据相比,这是有益的。

阶段损失: Cascade R-CNN有多个检测头,每个检测头都有自己的损耗。 我们已经探索了两种结合这些损失的方案:衰变和平均值。 在平均值中,阶段t的损失接收权重wt = 1 / T,其中T是阶段的数量。 在衰变中,重量是wt = 1 / 2t-1。 对于这两种方案,阶段t的头部参数的学习速率被重新调整为1 / wt,以确保它们被充分训练。 骨干网络参数不需要重新缩放,因为它们从所有阶段接收梯度。 表3显示1)avg对于高质量度量具有稍好的性能,但对于低质量度量更差,以及2)这两种方法具有相似的总体AP。 衰减方案用于本文的其余部分。

阶段数: 表4总结了Cascade R-CNN性能阶段数的影响。 添加第二阶段显着改善了基线检测器。 三个检测阶段仍然产生非平凡的改进,但第四阶段(u = 0.75)的添加具有轻微的性能降低。 但请注意,虽然整体AP降级,但四级级联在高IoU级别时具有最佳性能。 三级级联实现了成本和AP性能之间的最佳平衡,并用于其余实验。
在这里插入图片描述

6.5 Comparison with the state-of-the-art

基于FPN +探测器和ResNet-101骨干网的Cascade R-CNN的实现与表56中的最先进的单模型探测器进行了比较。设置是6.1.3节的设置,但是 训练使用了280k迭代,学习率降低了160k和240k。 RoI的数量也增加到512.表的顶部报告为一级探测器,中间到两级,底部到多级(Cascade R-CNN的3级+ RPN)。 请注意,所有比较现有技术的探测器都是用u = 0.5训练的。

最初的观察结果是我们的FPN +实现优于原始FPN [37],提供了非常强大的基线。 然而,从FPN +到Cascade R-CNN的扩展将性能提高了~4分。 实际上,在所有评估指标下,没有任何铃声和口哨声的香草Cascade R-CNN表现优于几乎所有单模型探测器。 这包括2016年COCO挑战赛冠军G-RMI [29],最近的Deformable R-FCN [9],Reti- naNet [38],Mask R-CNN [25],RelationNet [28],DetNet [35],CornerNet [33]等注意这些方法中的一些利用了一些训练或推理增强,例如 多尺度,软NMS [1]等,使得比较非常不公平。 最后,与之前最好的COCO多级探测器AttractioNet [18]相比,香草级联R-CNN的增益为7.1点。

表5中唯一优于级联R-CNN的探测器是SNIP [52],它使用多尺度训练和推理,更大的输入尺寸,更强的骨干,软NMS和一些其他增强功能。 为了更公平的比较,我们实施了Cascade R-CNN,具有多尺度训练/推理,更强大的骨干(ResNeXt-152 [57]),掩模监控等。这种增强的级联R-CNN超过SNIP 5.2点。 它还优于单模型MegDet探测器(50.6 mAP),该探测器在2017年赢得了COCO挑战,并使用了许多其他增强功能[45]。 Cascade R-CNN在概念上很简单,易于实现,并且可以以即插即用的方式与许多探测器架构相结合。
在这里插入图片描述

6.6 Generalization Capacity

为了更彻底地测试这一说法,使用三个基线探测器实现了三级Cascade R-CNN:更快的R-CNN,R-FCN和FPN +。 所有设置如上所述,FPN +探测器的6.5节中讨论了变化。 表6显示了三种检测器的AP性能的比较。

检测性能: 同样,我们的实现比原始检测器更好[8],[37],[47]。 尽管如此,Cascade R-CNN还是在所有基线上都提高了2到4个点,与其强度无关。 对val和test-dev观察到类似的增益。 这些结果表明级联R-CNN可广泛应用于检测器架构。

参数和定时: 级联R-CNN参数的数量随着级数的增加而增加。 增加是线性的,并且与基线探测器头的参数基数成比例。 然而,由于头部的计算量比骨干网络少得多,因此Cascade R-CNN在训练和测试时都具有很小的计算开销。 如表6所示。
在这里插入图片描述
Codebase和Backbone: FPN的Cascade R-CNN也在各种骨干网络的Detectron代码库[20]上重新实现。 表7总结了这些实验,显示了跨主干的非常一致的改进(3~4分)。 Cascade R-CNN也被其他研究小组在PyTorch和TensorFlow上独立复制。 这些再次表明Cascade R-CNN可以跨检测器架构,主干网,代码库和实现提供可靠的增益。

Fast R-CNN: 如图3(b)所示,级联R-CNN不限于标准的快速R-CNN架构。 为了测试这一点,我们使用预先收集的提议以快速R-CNN的方式训练Cascade R-CNN。 表7的结果表明,级联R-CNN的增益适用于除快速R-CNN之外的框架。
在这里插入图片描述
组标准化: 组标准化(GN)[56]是最近的标准化技术,发布在Cascade R-CNN之后。 它解决了由于可以从小批量大小得出的不准确统计数据而必须冻结批量标准化(BN)[30]以进行对象检测器训练的问题[45]。 GN是BN的替代品,与批量大小无关,具有与大批量同步BN相当的性能。 表7显示具有GN的级联R-CNN具有与其他架构所观察到的相似的增益。 这表明Cascade R-CNN将继续有用,即使文献中继续出现建筑增强。

6.7 Proposal Evaluation

表8总结了使用FPN检测器和ResNet-50骨干网实现的级联R-CNN的提议召回性能。 第一个Cascade R-CNN阶段的提案召回接近FPN基线。 边界框回归阶段的增加显着改善了回忆,例如 AP1k从59.1到70.7,AP1kl接近20点。 这表明额外的边界框回归在提高提案召回性能方面非常有效。 第三阶段的增加具有较小但不可忽略的增益。 这种高提议召回性能确保了后来的高质量对象检测任务。
在这里插入图片描述

6.8 Instance Segmentation by Cascade Mask R-CNN

表9总结了图6的级联掩模R-CNN策略的实例分割性能。这些实验使用掩模R-CNN,在具有1x调度的Detectron上实现作为基线。 所有三种策略都改善了基线性能,尽管其增益小于物体检测(见表2),特别是在高质量时。 例如,对象检测的AP90改进为8.7分降至1.8分,表明留有足够的空间来改善高质量的实例分割。 比较策略,(c)优于(b)。 这是因为(b)在第一阶段训练掩模头,但在最后阶段后进行测试,导致掩模预测不匹配。 (c)减少了这种不匹配。 通过策略(d)向每个阶段添加掩码分支与(c)相比没有明显的好处,但需要更多的计算和存储器。 策略(b)在成本和AP性能之间具有最佳权衡,并在本文的其余部分中使用。
在这里插入图片描述
为了评估级联掩码R-CNN的实例分段鲁棒性,在表10中比较了几个骨干网络。由于该架构可以检测对象,因此还显示了检测结果。 请注意,额外的屏蔽监控使这些更好于表7.级联屏蔽R-CNN的增益对于所有骨干网络都非常一致。 即使最强的模型ResNeXt-152 [57]用于训练数据增强和1.44x时间表,级联掩模R-CNN的检测增益为2.9点,实例分割增益为1.0点。 添加推理增强功能,增益仍为检测点2.1点和实例分割点数0.8点。 这种稳健性解释了为什么Cascade R-CNN被广泛用于COCO挑战2018,其中任务是实例分割,而不是对象检测。
在这里插入图片描述

6.9 Results on PASCAL VOC

Cascade R-CNN在PASCAL VOC数据集上进一步测试[13]。在[40],[47]之后,模型在VOC2007和VOC2012 trainval(16,551图像)上进行了培训,并在VOC2007测试(4,952张图像)上进行了测试。评估了两种检测器架构:更快的R-CNN(使用AlexNet和VGG-Net主干)和R-FCN(使用ResNet-50和ResNet-101)。第6.1.3节详细讨论了培训细节,并对AlexNet和VGG-Net进行了修剪。更具体地说,更快的R-CNN(R-FCN)训练开始时的学习率为0.001(0.002),在30k(60k)时减少了10倍,并在45k(90k)次迭代时停止。由于标准VOC评估指标(IoU为0.5的AP)相当饱和,并且该工作的重点是高质量检测,因此COCOmetrics用于评估7。表11总结了所有探测器的性能,表明Cascade R-CNN在所有情况下都显着改善了整体AP。这些结果进一步证明了Cascade R-CNN的稳健性。
在这里插入图片描述

6.10 Additional Results on other Datasets

除了通用对象检测数据集之外,Cascade R-CNN还在一些特定的对象检测任务上进行了测试,包括KITTI [16],CityPerson [64]和WiderFace [61]。 MS-CNN [2]是一种在这些任务中表现出色的探测器,被用作所有这些任务的基线。

KITTI: 自动驾驶最受欢迎的数据集之一,KITTI包含7,481个训练/验证图像,7,518个用于持有注释的测试。 2D物体检测任务包含三个类别:汽车,行人和骑车人。 评估基于IoU的VOC AP分别为0.7,0.5和0.5。 由于这项工作的重点是高质量检测,Cascade R-CNN仅在汽车类别上进行了测试。 如表12所示,在测试集上,中等基线的基线改善了0.87分,硬状态的基线改善了1.9分。 考虑到MS-CNN是一个强大的探测器并且KITTI汽车检测任务相当饱和,这些改进是非常重要的。
在这里插入图片描述
CityPersons: CityPersons是最近发布的行人检测数据集,收集在多个欧洲城市。 它包含2,975个训练和500个验证图像,以及1,575个用于持有注释测试的图像。 评估基于IoU = 0.5时的未命中率(MR)。 我们还报告了IoU = 0.75的MR结果,这与高质量检测更相称。 这与最近采用更严格的COCO度量用于行人和面部检测的趋势一致,参见例如 表13比较了级联R-CNN的验证集性能与基线MS-CNN的验证集性能(验证和测试集上的性能通常与该数据集相当)。 Cascade R-CNN具有很大的性能提升,特别是对于更严格的评估指标。 例如,它在MR75的Reasonable设置上将基线性能提高了~10个点。
在这里插入图片描述
WiderFace: 最具挑战性的人脸检测数据集之一,主要由于其在规模,姿势和遮挡方面的多样性,WiderFace包含32,203个图像,393,703个注释面,其中12,880个用于训练,3,226个用于验证,其余用于测试 举行注释。 评估基于IoU = 0.5的VOC AP,在三个子集上,简单,中等和硬,具有不同的检测难度。 同样,我们在IoU = 0.5和IoU = 0.75时使用AP并在验证集上进行评估。 表14显示,虽然Cascade R-CNN接近AP50的基线MS-CNN,但它显着提升了AP75的性能。 硬件上的增益小于简单和中等的增益,因为前者主要包含非常小且严重遮挡的面,因此难以进行高质量检测。 该观察反映了表6的COCO实验,其中APS的改善小于APL。
在这里插入图片描述

7 CONCLUSION

在这项工作中,我们提出了一个多阶段物体检测框架,Cascade R-CNN,用于高质量物体检测,这是检测文献中很少探讨的问题。 该结构被证明可以克服训练期间过度拟合的高质量检测挑战以及推理期间的质量不匹配。 这是通过顺序训练阶段来实现的,使用一个训练阶段来训练下一个阶段,并且在推理中应用相同的级联。级联R-CNN被证明在多个具有挑战性的数据集(包括COCO)上实现了非常一致的性能提升。 PASCAL VOC,KITTI,CityPersons和WiderFace,用于通用和特定物体检测。 对于许多物体探测器,骨干网络以及用于检测和实例分割的技术也观察到了这些增益。 因此,我们认为Cascade R-CNN可用于许多未来的物体检测和实例分割研究工作。

致谢: 这项工作由NSF奖项IIS-1546305和IIS-1637941以及NVIDIA的GPU捐赠资助。 我们还要感谢Kaiming He的宝贵讨论。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/497467
推荐阅读
相关标签
  

闽ICP备14008679号