(十一)Cascade R-CNN----2018CVPR论文解读

Cascade R-CNN: Delving into High Quality Object Detection

级联R-CNN:致力于高质量目标检测

Abstract

在对象检测中,需要定义联合正负(IoU)阈值。以低IoU阈值训练的物体检测器,例如0.5,通常会产生噪声检测。但是,**随着IoU阈值的增加,检测性能趋于下降。**造成此问题的主要原因有两个:**1)在训练期间因正样本呈指数消失而过度拟合,以及2)最佳检测器的IoU与输入假设的IoU之间的推理时间不匹配。**为了解决这些问题,提出了一种多级目标检测架构Cascade R-CNN。它由一系列经过不断提高的IoU阈值训练的检测器组成,从而可以对接近的假阳性序列进行更多选择。对检测器的训练是逐步进行的,利用了这样的观察:检测器的输出是用于训练下一个更高质量的检测器的良好分布。对逐步改进的假设的重新采样保证了所有检测器都有一组等效大小的正例,从而减少了过拟合问题。推理时采用相同的级联过程,从而使假设与每个阶段的检测器质量之间的匹配度更高。在复杂的COCO数据集上,Cascade R-CNN的简单实现可以超越所有单模型物体检测器,实验还表明Cascade R-CNN可广泛应用于各种检测器架构,获得稳定的增益而不受基线检测器强度的影响。该代码将在https://github.com/zhaoweicai/cascade-rcnn提供。

1 Introduction

在这里插入图片描述
对象检测是一个复杂的问题,需要解决两个主要任务。首先,探测器必须解决识别问题,将前景物体与背景区分开并为其分配适当的物体类别标签。其次,探测器必须解决定位问题,为不同的物体分配准确的边界框。这两种方法都特别困难,因为检测器面临许多“接近”的误报,对应于“接近但不正确”的边界框。检测器必须在抑制这些接近的假阳性的同时找到真阳性。

许多最近提出的对象检测器都是基于两阶段R-CNN框架[12、11、27、21],其中检测被构造为结合了分类和边界框回归的多任务学习问题。与对象识别不同,定义正/负需要交越联合(IoU)阈值。然而,通常使用的阈值u(通常为u = 0.5)对正数建立了相当宽松的要求,因此生成的检测器经常会产生嘈杂的边界框,如图1(a)所示。大多数人会认为近似假阳性的假设经常通过IoU≥0.5的测试。虽然根据u = 0.5准则组装的示例丰富多样,但它们使训练能够有效拒绝近似误报的检测器变得困难。

在这项工作中,我们将假设的质量定义为具有基本事实的IoU,并将检测器的质量定义为用于训练它的IoU阈值。目标是研究迄今为止学习程度不高的学习高质量目标检测器的问题,该检测器的输出几乎没有误报,如图1(b)所示。基本思想是,单个检测器只能针对单个质量级别进行优化。这在对成本敏感的学习文献中是已知的[7,24],其中对接收器工作特性(ROC)的不同点的优化需要不同的损耗函数。主要区别在于我们考虑针对给定IoU阈值的优化,而不是误报率。

图1(c)和(d)展示了这种想法,图1(c)和(d)分别展示了三个训练有IuU阈值u = 0.5、0.6、0.7的检测器的定位和检测性能。如COCO [20]所示,根据输入建议的IoU评估本地化性能,并根据IoU阈值评估检测性能。请注意,在图1(c)中,每个边界框回归器在IoU接近于训练探测器的阈值的示例中表现最佳。这也适用于检测性能,甚至过拟合。图1(d)显示,对于低IoU实例,u = 0.5的检测器优于u = 0.6的检测器,在较高的IoU级别下其性能不佳。通常,在单个IoU级别上优化的检测器不一定在其他级别上最佳。这些观察结果表明,更高质量的检测要求检测器与其处理的假设之间的质量匹配更紧密。通常,只有在提出高质量建议时,检测器才能具有高质量。

然而,为了生产高质量的检测器,仅仅在训练期间增加u是不够的。实际上,从图1(d)中u = 0.7的检测器可以看出,这会降低检测性能。问题在于,从提议检测器发出的假设分布通常在质量低下严重失衡。通常,强迫更大的IoU阈值会导致正训练样本数量成倍减少。对于神经网络而言,这尤其成问题,因为神经网络被认为是非常密集的示例,并且使得“高级”训练策略很容易过度拟合。另一个困难是推断时检测器质量与测试假设质量之间的不匹配。如图1所示,对于高质量的假设,高质量的检测器仅是最佳的。当要求他们根据其他质量水平的假设进行检测时,检测可能不是最佳的。

**在本文中,我们提出了一种解决这些问题的新型检测器架构Cascade R-CNN。它是R-CNN的多级扩展,其中级联更深的检测器级依次对接近的假阳性更具选择性。**依次训练R-CNN阶段的级联,使用一个阶段的输出来训练下一个阶段。这是由于观察者的动机,即回归器的输出IoU几乎总是好于输入IoU。可以在图1(c)中进行观察,其中所有图都在灰线上方。这表明以某个IoU阈值训练的检测器的输出是良好的分布,可以训练下一个更高的IoU阈值的检测器。这类似于对象检测文献[31,8]中通常用于组装数据集的增强方法。主要区别在于,Cascade R-CNN的重采样过程并非旨在挖掘硬底片。相反,通过调整边界框,每个阶段的目标是找到一组良好的false positive,以训练下一阶段。当以这种方式操作时,适用于越来越高的IoU的一系列检测器可以克服过度拟合的问题,因此可以有效地进行训练。推断时,将应用相同的级联过程。如图1(c)和(d)所示,逐步改进的假设可以更好地与每个阶段不断提高的检测器质量匹配,从而实现更高的检测精度。

Cascade R-CNN的实施和端到端训练非常简单。我们的结果表明,在具有挑战性的COCO检测任务[20]上,尤其是在更高质量的评估指标下,没有任何障碍和哨声的香草实现方式大大超过了所有以前的最新单模型检测器。此外,可以使用任何基于R-CNN框架的两级对象检测器来构建Cascade R-CNN。我们已经观察到了一致的收益(2-4点),计算量略有增加。该增益与基线物体检测器的强度无关。因此,我们认为,这种简单有效的检测体系结构可能会引起许多对象检测研究的兴趣。

2 Related Work

由于R-CNN [12]架构的成功,通过结合提议检测器和区域分类器,检测问题的两阶段表述在最近变得很重要。为了减少R-CNN中的冗余CNN计算,SPP-Net [15]和Fast-RCNN [11]引入了区域特征提取的思想,显着加快了整个检测器的速度。后来,Faster-RCNN [27]通过引入区域提议网络(RPN)进一步提高了速度。这种架构已成为领先的目标检测框架。最近的一些工作已将其扩展为解决各种细节问题。例如,R-FCN [4]提出了有效的区域级完全卷积,而没有精度损失,从而避免了Faster-RCNN繁重的区域级CNN计算;而MS-CNN [1]和FPN [21]在多个输出层检测提议,以减轻RPN接收字段与实际对象大小之间的比例失配,以进行高召回提议检测。

或者,一级目标检测架构也已变得很流行,这主要是由于其计算效率高。这些架构接近经典的滑动窗口策略[31,8]。 YOLO [26]通过转发输入图像一次输出非常稀疏的检测结果。当使用高效的骨干网络实现时,它可以以合理的性能实现实时对象检测。SSD[23]以类似于RPN [27]的方式检测对象。 ,但使用不同分辨率的多个特征图来覆盖不同比例的对象。这些体系结构的主要限制是其精度通常低于两级检测器的精度。最近,RetinaNet [22]被提出来解决极端的前景-背景类别不平衡的密集物体检测,比最新的两级物体检测器获得更好的结果。

还提出了多阶段目标检测的一些探索。多区域检测器[9]引入了迭代包围盒回归法,其中多次应用R-CNN以产生更好的包围盒。CRAFT[33]和AttractioNet [10]使用了多阶段过程来生成准确的建议,并将其转发给Fast-RCNN。 [19,25]嵌入了[31]在对象检测网络中的经典级联架构。 [3]交替执行检测和分段任务,例如分段。

3 Object Detection

在本文中,我们扩展了Faster-RCNN [27,21]的两阶段体系结构,如图3(a)所示。 第一阶段是提议子网(“ H0”),应用于整个图像,以产生初步的检测假设,称为目标提议。 在第二阶段中,这些假设然后由表示为检测头的感兴趣区域检测子网(“ H1”)处理。 最终分类得分(“ C”)和边界框(“ B”)被分配给每个假设。 我们专注于对多级检测子网进行建模,并采用但不限于RPN [27]进行提议检测。

3.1. Bounding Box Regression

边界框b =(b x,b y,b w,b h)包含图像块x的四个坐标。边界框回归的任务是使用回归函数f(x,b)将候选边界框b回归到目标边界框g。这是从训练样本{g i,b i}中学到的,从而将边界框风险降到最低

R l o c [ f ] = i = 1 N L l o c ( f ( x i , b i ) , g i ) 1 \mathcal{R}_{l o c}[f]=\sum_{i=1}^{N} L_{l o c}\left(f\left(x_{i}, \mathbf{b}_{i}\right), \mathbf{g}_{i}\right) (1)
其中L loc是R-CNN [12]中的L2损失函数,但在Fast-RCNN [11]中已更新为平滑的L 1损失函数。为鼓励尺度和位置回归不变,Lloc对距离矢量∆进行运算=(δx,δy,δw,δh)由
δ x = ( g x b x ) / b w , δ y = ( g y b y ) / b h δ w = log ( g w / b w ) , δ h = log ( g h / b h ) 2 \begin{aligned}\delta_{x} &=\left(g_{x}-b_{x}\right) / b_{w}, & \delta_{y} &=\left(g_{y}-b_{y}\right) / b_{h} \\\delta_{w} &=\log \left(g_{w} / b_{w}\right), & \delta_{h} &=\log \left(g_{h} / b_{h}\right)\end{aligned} (2)
在这里插入图片描述
由于边界框回归通常对b执行较小的调整,因此(2)的数值可能会很小。因此,(1)的风险通常比分类风险小得多。为了提高多任务学习的有效性,通常用∆的均值和方差对∆进行归一化,即将δx替换为δ′x =(δx − µ x)/σx。这在文献中得到了广泛的应用[27 ,1,4,21,14]。

一些著作[9,10,16]认为f的单个回归步骤不足以进行精确定位。而是将f迭代地应用,作为后处理步骤
f ( x , b ) = f f f ( x , b ) 3 f^{\prime}(x, \mathbf{b})=f \circ f \circ \cdots \circ f(x, \mathbf{b}) (3)
完善边界框b。这称为迭代边界框回归,表示为迭代BBox。可以使用图3(b)的推理架构来实现,其中所有头都相同。但是,这个想法忽略了两个问题。首先,如图1所示,对于较高IoU的假设,在u = 0.5处训练的回归因子f次优。实际上,它会使大于0.85的IoU边界框降级。其次,如图2所示,边界框的分布在每次迭代后都会发生显着变化。虽然回归器对于初始分布而言是最佳的,但在此之后它可能会是次优的。由于这些问题,迭代式BBox需要大量的人为工程,包括提案积累,框投票等[9,10,16],并且收益有些不可靠。通常,仅应用两次f就没有任何好处。

3.2. Classification

在这里插入图片描述

分类器是一个函数h(x),它将图像块x分配给M + 1个类之一,其中类0包含背景,其余的要检测的对象。 h(x)是类别后验分布的M +1维估计,即h k(x)= p(y = k | x),其中y是类别标签。 给定训练集(x i,y i),可通过最小化分类风险来学习
R c l s [ h ] = i = 1 N L c l s ( h ( x i ) , y i ) 4 \mathcal{R}_{c l s}[h]=\sum_{i=1}^{N} L_{c l s}\left(h\left(x_{i}\right), y_{i}\right) (4)
其中Lcls是经典的交叉熵损失。

3.3. Detection Quality

由于边界框通常包含一个对象和一定数量的背景,因此很难确定检测结果是阳性还是阴性。这通常通过IoU指标解决。如果IoU高于阈值u,则将补丁视为该类的示例。因此,假设x的类别标签是u的函数,
y = { g y , IoU ( x , g ) u 0 ,  otherwise  5 y=\left\{\begin{array}{ll} {g_{y},} & {\operatorname{IoU}(x, g) \geq u} \\ {0,} & {\text { otherwise }} \end{array}\right. (5)
其中,y是地面真实物体g的类标签。 IoU阈值u定义了检测器的质量。

对象检测具有挑战性,因为无论阈值如何,检测设置都具有很高的对抗性。当u高时,正词没有背景,但是很难组装足够的正训练样本。当u低时,可以使用更丰富,更多样化的阳性训练集,但是训练有素的检测器几乎没有动力拒绝接近的假阳性。通常,很难要求单个分类器在所有IoU级别上均一地表现良好。根据推断,由于提议检测器产生的大多数假设,例如RPN [27]或选择性搜索[30]的质量较低,对于质量较低的假设,检测器必须具有更大的判别力。这些相互矛盾的要求之间的标准折衷方案是使u = 0.5。但是,这是一个相对较低的阈值,导致低质量的检测,大多数人认为接近的假阳性,如图1(a)所示。
在这里插入图片描述
一项简单的解决方案是使用图3(c)的架构开发一组分类器,并针对各种质量级别进行损失优化,
L c l s ( h ( x ) , y ) = u U L c l s ( h u ( x ) , y u ) 6 L_{c l s}(h(x), y)=\sum_{u \in U} L_{c l s}\left(h_{u}(x), y_{u}\right)(6)
其中U是一组IoU阈值。这与[34]的积分损失密切相关,其中U = {0.5,0.55,··,0.75},其设计适合于COCO挑战的评估指标。根据定义,分类器需要在推理时进行组合。该解决方案无法解决以下问题:(6)的不同损失作用于不同数量的正数。如图4的第一个图所示,一组正样本随u迅速减少。这尤其成问题,因为高质量的分类器容易过拟合。另外,需要那些高质量分类器来处理推论中压倒性的低质量建议,而这些建议并未得到优化。由于所有这些,(6)的合奏无法在大多数质量级别上实现更高的精度,并且该体系结构比图3(a)的增益很小。

4 Cascade R-CNN

在本节中,我们介绍图3(d)提出的Cascade R-CNN对象检测架构。

4.1. Cascaded Bounding Box Regression

如图1(c)所示,很难要求单个回归器在所有质量级别上都能完美地均匀执行。受级联姿势回归[6]和面部对齐[2,32]的启发,可以将困难的回归任务分解为一系列更简单的步骤。在CascadeR-CNN中,它具有图3(d)的体系结构,是级联退化问题。这依赖于一连串的专业回归器
f ( x , b ) = f T f T 1 f 1 ( x , b ) 7 f(x, \mathbf{b})=f_{T} \circ f_{T-1} \circ \cdots \circ f_{1}(x, \mathbf{b}) (7)
其中T是级联总数。请注意,级联中的每个回归变量f t均经过优化。样本分布{b t}到达相应阶段,而不是{b 1}的初始分布。这种级联逐步改善了假设。

它在几个方面与图3(b)的迭代BBox体系结构不同。首先,虽然迭代BBox是用于改善边界框的后处理过程,但级联回归是一种重采样过程,可以更改要在不同阶段处理的假设的分布。其次,由于它既用于训练又用于推理,因此训练和推理分布之间没有差异。第三,针对多个阶段的重采样分布,优化了多个专业回归变量{f T,f T-1,…,f 1}。这与(3)的单个f相反,后者仅对初始分布是最佳的。这些差异使您可以比迭代BBox进行更精确的定位,而无需进行进一步的人工操作。

如第3.1节所述,(2)中的∆ =(δx,δy,δw,δh)需要通过其均值和方差进行归一化,以进行有效的多任务学习。如图2所示。在训练时,将使用相应的统计量对每个阶段的Δ进行归一化。

4.2. Cascaded Detection

如图4左侧所示,初始假设的分布例如RPN提案严重倾向于低质量。这不可避免地导致对高质量分类器的有效学习。 Cascade R-CNN通过将级联回归作为重采样机制来解决此问题。这是由于在图1(c)中所有曲线都位于对角灰线上方,即受过一定u训练的包围盒回归器往往会产生更高IoU的包围盒。因此,从一组示例(x i,b i)开始,级联回归依次对较高IoU的示例分布(x’i,b’i)进行重采样。以这种方式,即使当检测器质量(IoU阈值)增加时,也可以将连续级的正例的集合保持在大致恒定的大小。如图4所示,在每个重采样步骤之后,分布向高质量示例的倾斜程度更大。结果有两个。首先,没有过度拟合,因为所有级别的示例都很多;其次,更深阶段的检测器针对更高的IoU阈值进行了优化。请注意,如图2所示,通过增加IoU阈值可以顺序删除一些离群值,从而可以更好地训练专用检测器序列。

在每个阶段t,R-CNN包括分类器h t和针对IoU阈值u t优化的回归器f t,其中u t> u t-1。通过最小化损失来保证
L ( x t , g ) = L c l s ( h t ( x t ) , y t ) + λ [ y t 1 ] L l o c ( f t ( x t , b t ) , g ) 8 L\left(x^{t}, g\right)=L_{c l s}\left(h_{t}\left(x^{t}\right), y^{t}\right)+\lambda\left[y^{t} \geq 1\right] L_{l o c}\left(f_{t}\left(x^{t}, \mathbf{b}^{t}\right), \mathbf{g}\right) (8)
其中bt = ft-1(xt-1,bt-1),g是xt的地面真实对象,λ= 1折衷系数,[·]指标函数,yt是ut给定的xt的标签(5)。与(6)的积分损失不同,这保证了一系列经过有效训练的,质量不断提高的探测器。推断而言,通过应用相同的级联过程,假设的质量得到了依次提高,并且只需要较高质量的检测器即可对较高质量的假设进行操作。如图1(c)和(d)所示,这可以实现高质量的物体检测。

5 Experimental Results

在MS-COCO 2017 [20]上对Cascade R-CNN进行了评估,其中包含约118k图像进行训练,5k验证(有效)和约20k测试(不提供注释)(test-dev)。 COCO风格的平均精度(AP)可将跨IoU阈值的AP平均取值范围为0.5到0.95。 这些评估指标可衡量各种质量的检测性能。 所有模型都在COCO训练集上进行训练,并在val集上进行评估。 最终结果也报告在测试开发集上。

5.1. Implementation Details

为了简单起见,所有回归器均与类无关。 Cascade R-CNN中的所有级联检测阶段都具有相同的架构,这是基线检测网络的头。除非另有说明,否则,级联R-CNN总共有四个阶段,一个RPN和三个用于U = {0.5,0.6,0.7}的检测。第一检测阶段的采样遵循[11,27]。在接下来的阶段中,如第4.2节所述,只需使用前一阶段的回归输出即可实现重采样。除了标准水平图像翻转之外,没有使用任何数据增强。推理是在单个图像尺度上进行的,没有其他的铃声和口哨声。 Caffe [18]在同一代码库上重新实现了所有基线检测器,以进行公平比较。

5.1.1 Baseline Networks

为了测试Cascade R-CNN的多功能性,使用三种流行的基线检测器进行了实验:带主干VGG-Net的Faster-RCNN [29],带ResNet主干的R-FCN [4]和FPN [21] [16]。这些基准具有广泛的检测性能。除非另有说明,否则使用其默认设置。使用端到端培训代替了多步训练。

在这里插入图片描述
在这里插入图片描述
Faster-RCNN:网络头具有两个完全连接的层。为了减少参数,我们使用[13]修剪不太重要的连接。每个完全连接的层保留2048个单元,并删除掉落层。在2个同步的GPU上,训练以0.002的学习率开始,在60k和90k迭代中减少了10倍,并在100k迭代中停止,每个GPU每次迭代包含4张图像。每个图像使用128个RoI。

R-FCN:R-FCN向ResNet添加了卷积,边界框回归和分类层。级联R-CNN的所有头都具有此结构。没有使用在线硬负挖矿[28]。训练以0.003的学习率开始,在4个同步的GPU上,在160k和240k迭代中,学习率降低了10倍,在280k迭代中停止了学习,每个迭代中每张图像只有一个图像。每个图像使用256个RoI。

FPN:由于尚未公开可用于FPN的源代码,因此我们的实现细节可能有所不同。RoIAlign[14]用于获得更强的基准。这被表示为FPN +,并用于所有消融研究中。与往常一样,ResNet-50用于消融研究,ResNet-101用于最终检测。训练在8个同步的GPU上进行了12万次迭代的学习率是0.005,接下来的60k迭代的学习率是0.0005,每个GPU每次迭代持有一张图像。每个图像使用256个RoI。

5.2. Quality Mismatch

图5(a)显示了三个单独训练的检测器的AP曲线,这些检测器的IoU阈值为U = {0.5,0.6,0.7}。在低IoU电平下,u = 0.5的检测器优于u = 0.6的检测器,但是在较高IoU的情况下性能不佳。但是,u = 0.7的检测器性能不如其他两个。为了理解为什么会发生这种情况,我们在推断时更改了建议的质量。图5(b)显示了将地面真相边界框添加到建议集中时获得的结果。尽管所有检测器都有所改善,但u = 0.7的检测器具有最大的增益,在几乎所有IoU级别上都可实现最佳性能。这些结果表明了两个结论。首先,对于精确检测,u = 0.5不是一个好的选择,对于低质量的建议而言,鲁棒性更强。其次,高精度检测需要与检测器质量相匹配的假设。接下来,原始检测器建议被更高质量的Cascade R-CNN建议(分别使用第二和第三阶段建议的u = 0.6和u = 0.7代替)。图5(a )还表明,当测试建议更符合检测器质量时,两个检测器的性能将得到显着改善。

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

5.3. Comparison with Iterative BBox and Integral Loss

在本节中,我们将Cascade R-CNN与迭代BBox和积分损耗检测器进行比较。迭代BBox是通过反复应用FPN + baseline三次来实现的。积分损耗检测器具有与Cascade R-CNN相同数量的分类头,其中U = {0.5,0.6,0.7}。
在这里插入图片描述
本地化:在图7(a)中比较了级联回归和迭代BBox的本地化性能。使用单个回归器会降低高IoU假设的本地化。当像迭代BBox那样迭代应用回归器时,此效果会累积,实际上性能会下降。请注意,经过3次迭代后,迭代BBox的性能非常差。相反,级联回归器在后期阶段具有更好的性能,在几乎所有IoU级别上都优于迭代BBox。

积分损失:积分损失检测器中所有分类器的检测性能(共享一个回归变量)如图7(b)所示。在所有IoU级别上,u = 0.6的分类器是最佳的,而u = 0.7的分类器是最差的。所有分类器的集合均未显示可见增益。

表1显示,迭代BBox和积分损耗检测器均稍微改善了基线检测器。级联R-CNN对于所有评估指标均具有最佳性能。对于较低的IoU阈值,增益是温和的,但对于较高的IoU阈值,增益是显着的。

5.4. Ablation Experiments

还进行了消融实验。

阶段比较:表2总结了阶段性能。由于多阶段多任务学习的优势,第一阶段的性能已经超过了基线检测器。第二阶段实质上提高了性能,第三阶段与第二阶段等效。这与积分损失检测器不同,后者的较高IOU分类器相对较弱。虽然在较低(较高)IoU指标下,前一个(后期)阶段比较好,但是所有分类器的整体效果最好。
在这里插入图片描述
IoU阈值:所有头部均使用相同的IoU阈值u = 0.5训练了初步的Cascade R-CNN,在这种情况下,各个阶段的区别仅在于它们接收的假设不同。每个阶段都用相应的假设进行训练,即解释图2的分布。表3的第一行显示了在基线检测器上级联得到改善。这表明优化相应样本分布的阶段的重要性。第二行表明,通过增加阶段阈值u,可以使检测器针对接近的假阳性结果更具选择性,并专门用于更精确的假设,从而带来额外的收益。这支持了第4.2节的结论。

回归统计数据:利用图2的逐步更新的回归统计数据,有助于有效地进行分类和回归的多任务学习。通过比较表3中的模型,可以看出它的好处。学习对这些统计数据并不敏感。

阶段数:表4总结了阶段数的影响。添加第二个检测阶段可显着改善基线检测器。三个检测阶段仍可带来不小的改进,但增加第4个阶段(u = 0.75)会导致性能略有下降。但是请注意,虽然AP的整体性能下降,但四阶段级联对于高IoU级别具有最佳性能。三级串级实现了最佳折衷。

5.5. Comparison with the state-of-the-art

在这里插入图片描述
表5中将基于FPN +和ResNet-101主干的Cascade R-CNN与最新的单模型对象检测器进行了比较。设置如5.1.1节所述,但总数为280k运行训练迭代,学习率下降到160k和240k迭代。 RoI的数量也增加到512。表5上的第一组检测器是一级检测器,第二组是两级检测器,最后一组是多级检测器(Cascade R-CNN的三级检测器+ RPN) )。所有比较过的最先进的探测器都经过u = 0.5训练。需要注意的是,我们的FPN +实现比原始FPN更好[21],提供了非常强大的基线。此外,从FPN +扩展到Cascade R-CNN的性能提高了约4点。在所有评估指标下,Cascade R-CNN的表现也大大优于所有单模检测器。这包括2015年和2016年COCO挑战赛获胜者的单模检测器(更快的R-CNN +++ [16]和G- RMI [17]),以及最近的可变形R-FCN [5],RetinaNet [22]和Mask R-CNN [14]。在COCO上最好的多级检测器AttractioNet [10]使用迭代BBox生成建议。尽管在AttractioNet中使用了许多增强功能,但香草Cascade R-CNN的性能仍然优于7.1点。请注意,与Mask R-CNN不同,Cascade R-CNN中未利用任何分段信息。最后,香草单模Cascade R-CNN还超越了精心设计的整体探测器,该探测器在2015年和2016年分别赢得了COCO挑战(分别为AP 37.4和41.6)1。

5.6. Generalization Capacity

表6中比较了所有三个基线检测器的三级Cascade R-CNN。所有设置如上,对FPN +的第5.5节进行了更改。

检测性能:同样,我们的实现优于原始检测器[27,4,21]。尽管如此,Cascade R-CNN在这些基线上始终可以提高2-4点,而与它们的强度无关。这些增益在val和test-dev上也一致。这些结果表明,Cascade R-CNN在检测器体系结构中广泛适用。

参数和时序:级联R-CNN参数的数量随级联级数的增加而增加。基线检测头的参数数量呈线性增加。另外,由于与RPN相比检测头的计算成本通常较小,因此在训练和测试方面,Cascade R-CNN的计算开销都较小。

6 Conclusion

在本文中,我们提出了一种多级目标检测框架Cascade R-CNN,用于设计高质量的目标检测器。事实证明,该体系结构避免了训练时过度拟合和推理时质量不匹配的问题。在具有挑战性的COCO数据集上对Cascade R-CNN进行可靠而一致的检测改进表明,需要对各种并发因素进行建模和理解才能推进目标检测。 Cascade R-CNN被证明适用于许多物体检测架构。我们认为,它对将来的许多对象检测研究工作很有用。

致谢
我们要感谢何凯明的宝贵讨论。

最后总结:
本篇文章主要解决了在目标检测中,检测框不是特别准,容易出现噪声干扰的问题,即close false positive,为什么会有这个问题呢?作者实验发现,因为在基于anchor的检测方法中,我们一般会设置训练的正负样本(用于训练分类以及对正样本进行坐标回归),选取正负样本的方式主要利用候选框与ground truth的IOU占比,常用的比例是50%,即IOU>0.5的作为正样本,IOU<0.3作为负样本等,但是这样就带来了一个问题,阈值取0.5是最好的吗?作者通过实验发现,1、设置不同阈值,阈值越高,其网络对准确度较高的候选框的作用效果越好。2、不论阈值设置多少,训练后的网络对输入的proposal都有一定的优化作用。基于这两点,作者设计了Cascade R-CNN网络,如下面图Figure3(d)所示,即通过级联的R-CNN网络,每个级联的R-CNN设置不同的IOU阈值,这样每个网络输出的准确度提升一点,用作下一个更高精度的网络的输入,逐步将网络输出的准确度进一步提高。

一句话总结就是:Cascade R-CNN就是使用不同的IOU阈值,训练了多个级联的检测器。

最后一个实验,作者对stage的数量进行了分析,如下图所示,作者发现stage为3的时候效果最好,继续增加效果反而下降了。

最后总结部分转自:https://blog.csdn.net/Chunfengyanyulove/article/details/86414810

发布了66 篇原创文章 · 获赞 23 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_18315295/article/details/104176605
今日推荐