RRC:Accurate Single Stage Detector Using Recurrent Rolling Convolution

这篇论文网上翻译不全,自己大概翻译一下,很粗糙,也有一些没看懂,需要用时再回来详细学习吧

Accurate Single Stage Detector Using Recurrent Rolling Convolution

采用递归滚动卷积的精确单级检测器

摘要

大多数最近成功的精确物体检测和定位方法使用了RCNN型两级卷积神经网络(CNN)的一些变体,其中在第一阶段提出了合理的区域,然后是第二阶段用于决策细化。尽管培训简单,部署效率高,但在基准测试中考虑mAP的高IoU阈值时,单级检测方法并不具有竞争力。在本文中,我们提出了一种新颖的单级端到端可训练物体检测网络来克服这一局限。我们通过在多尺度特征映射上引入循环滚动卷积(RRC)架构来构建对象分类器和“深入上下文”的边界框回归器来实现这一点(deep in context)。我们在具有挑战性的KITTI数据集中评估了我们的方法,该数据集测量了IoU阈值为0.7的方法。我们通过RRC表明,单个基于VGG-16的简化模型已经明显优于以前发布的所有结果。在撰写本文时,我们的模型在KITTI汽车检测(硬级别)中排名第一,第一个是骑车人检测,第二个是行人检测。以前的单阶段方法未达到这些结果。该代码是公开的。

介绍

在许多实际应用中,稳健地检测具有高定位精度的对象,即通过高交叉联盟(IoU)预测边界框位置对于服务质量至关重要。例如,在基于视觉的机器人臂应用中,在拾取物体时生成稳健且准确的操作的过程高度依赖于物体定位精度。在高级驾驶辅助系统(ADAS)中,准确定位汽车和行人也与自主行动的安全性密切相关。最近在物体检测方面取得的进展很大程度上取决于前馈深度卷积神经网络(CNN)的成功应用。在基于CNN的方法的许多变体中,它们可以粗略地分成两个流。首先是R-CNN风格[9]两阶段方法。在这些方法中,在第一阶段提出了合理的区域,然后是第二阶段以进行决策细化。另一种方法旨在消除区域建议阶段并直接训练单级端到端探测器。单级探测器通常更容易训练,并且在生产中计算效率更高[12]。然而,当在基准测试中考虑mAP以获得高IoU阈值时(例如KITTI car [6]),这种优势在很大程度上被覆盖,因为两阶段方法通常在性能上是有利的。我们稍后将证明单阶段方法的这种弱点并不是因为无法识别复杂场景中的对象,而是因为无法生成高质量的边界框。图1的左栏中示出了两个示例。

可以通过实验证明,大多数低质量边界框来自小物体或重叠物体的失效定位。在任一情况下,传统的边界框回归变得高度不可靠,因为必须利用上下文(例如,遮挡区域周围的多尺度信息或特征)确定正确边界框的确切位置。这就是为什么采用某种形式的上下文感知细化程序来消除这些错误是有效的。快速R-CNN的RoI池化和分类阶段可以被认为是通过重新采样特征映射来利用这种上下文的简单方法。

在本文中,我们展示了可以在单阶段网络中无缝集成上下文感知细化过程。通过使用新颖的递归滚动卷积(RRC)架构,洞察力可以是“deep in context”的过程。换句话说,在需要时,可以将上下文信息逐渐地和选择性地引入边界框回归器。整个过程完全由数据驱动,可以端到端地进行培训。我们在具有挑战性的KITTI数据集中评估了我们的方法,该数据集将mAP视为高IoU阈值。在我们的实验中,我们使用减少的VGG-16网络而不是完整的VGG网络或更新的ResNet作为我们预先训练的基础网络,以便我们能够充分说明新增加的RRC的有效性。这保证了这种改进不仅仅是由功能更强大的骨干网络引入。结果表明,我们的方法明显优于单一模型的所有先前公布的结果。我们的模型集合在提交给基准测试的所有方法中排名第一。

首先,展示了,训练一个端到端的单阶段检测器同时保证较高的检测精度是完全可行的;

其次,发现了提升bbox的IoU的关键是使用Reccurrent Rolling Convolution去获取context信息。

相关工作

具有区域提议阶段的卷积神经网络方法最近在对象检测领域非常成功。在R-CNN论文[9]中,选择性搜索[20]用于生成对象提议,CNN用于向分类器提取和提供特征。后来提出了两种加速方法来研究R-CNN。在[8]中,RoI池用于有效地生成对象提议的功能。在[16]中,作者使用CNN而不是选择性搜索来执行区域提议。许多作者在[16]中采用了该框架,并提出了许多在基准测试中表现良好的变体,认为mAP具有较高的IoU阈值。例如,在[23]中,作者提出使用尺度依赖池和分层级联排斥分类器来提高精度并获得良好的结果。 [21]中使用了子类别信息来加强区域提出阶段,并在KITTI取得了有希望的成果。

R-CNN样式方法的一个问题是,为了处理大量提议,第二阶段中的计算通常很重。提出了不依赖于区域提案的各种单阶段方法来加速检测流程。 SSD [12]是单阶段模型,其中前馈过程中具有不同分辨率的特征图直接用于检测具有指定范围大小的对象。这种巧妙的设计节省了大量的计算,并且执行速度比[16]快得多。它在IoU阈值为0.5的数据集中取得了良好的效果。但是,我们将在实验中显示,当我们增加边界框质量的标准时,性能会显着下降。 YOLO [14]是另一种快速的单阶段方法,它产生了有希望的结果,然而,它并不像SSD那样准确,尽管定制版本更快。我们注意到已经提出了完全卷积的两阶段方法[5]来降低第二阶段的计算复杂度。但是,它在很大程度上依赖于更大更深的骨干网络。 [7]的动机类似于我们的动机,但它没有通过使用循环结构来考虑上下文信息。

尽管递归神经网络(RNN)已被广泛应用于图像字幕[11,22],机器翻译[19,1]和多媒体[15]等许多领域,但使用序列建模来提高物体检测精度的想法一直是只有少数作者探讨过。一项鼓舞人心的工作是[18],其中作者将检测问题形式化为边界框生成程序,并使用长期短期记忆(LSTM [10]通过使用匈牙利损失来学习CNN特征的这一过程。显示这种方法能够更加鲁棒地检测重叠对象。但是,在这个公式中,序列中的第一个边界框基本上由“浅层上下文”网络决定,因为第一个输出仅以最后一层提取的特征为条件。如果管道中的第一个对象已经具有挑战性(例如,小物体,遮挡,失焦,运动模糊等)以检测在许多实际应用中并不罕见,那么这可能是有问题的。此外,该方法仅使用IoU阈值0.5进行评估。与[18]不同,我们提出的RRC架构通过“deep in context”的网络有效地检测每个对象,并实现了最先进的性能。在较高的IoU阈值下。

分析与我们的方法

强大的物体检测系统必须能够同时检测具有截然不同的比例和纵横比的物体。在更快的R-CNN [16]中,它依赖于最后一个卷积层的每个重叠3×3区域的大的感知场来检测小物体和大物体。由于使用了多个池化层,因此最终图层要素图的最终分辨率远小于输入图像。这对于检测小物体可能是有问题的,因为在低分辨率特征图中,表示小物体的精细细节的特征可能很弱。如[17]中那样在多尺度输入图像上运行网络是缓解此问题的一种方法,但计算效率较低。

SSD论文[12]提出了一个富有洞察力的替代方案。该模型利用了这样的事实:在大多数用于检测的CNN模型中,由于汇集,不同层中的内部特征图已经具有不同的尺度。因此,利用较高分辨率的特征图来检测相对较小的物体和较低分辨率的特征图以检测较大的物体是合理的。这种方法的优点在于它不仅通过将这些对象的分类和边界框回归重新定位到更高分辨率的层,提供了更准确地定位小对象的机会,因为单阶段方法它也比以前快得多。两阶段方法,因为这种多尺度处理不会给原始骨干网络增加额外的计算。

然而,SSD无法超越最先进的两阶段方法。实际上,当在评估中使用高IoU阈值时,差距变得更加显着。我们现在分析并讨论为什么这是SSD的限制。我们还将展示我们如何在我们提出的单阶段模型中解决这种限制,并在后面的章节中实现最先进的结果。在SSD中使用多尺度特征图可以在数学上定义如下,

这里Φn表示特征地图中的层n,fn(·)是在特征地图中将第(n-1)层转换为第n层的非线性块。fn(·)可以是卷积层,池化层,ReLU层等的组合,f1(I)是将输入图像I转移到第一层特征映射的第一个非线性块。τn(·)是将第n层特征图转换为特定比例范围的检测结果的函数。D是聚合所有中间结果并生成最终检测的最终操作。

根据公式2,我们可以发现它在很大程度上依赖于强有力的假设来表现良好。因为每层中的特征图仅对其比例的输出负责,所以假设每个Φ本身必须足够精细以支持感兴趣对象的检测和准确定位。通过复杂性意味着1)特征图应该具有足够的分辨率来表示对象的精细细节; 2)每一层的feature ma都必须要由足够深的网络去形成,这样才能抽象出足够抽象的特征去囊括不同形状不同状态的同一类物体; 3)特征图包含适当的上下文信息,基于该上下文信息可以鲁棒地推断重叠对象,被遮挡对象,小对象,模糊或饱和对象的确切位置[16,12,18]。从公式(1)和(2),我们观察到当k大时Φn比Φn-k深得多,因此上述第二条件不适用于Φn-k。结果是,τn-k(·),将第(n-k)层中的特征图转换为其检测输出的函数可能比τn(·)更弱,更难训练。(浅层的特征图提取的特征不够准确,难以训练)更快的R-CNN没有这个深度问题,因为它的区域提议是从最后一层特征图生成的,即

但是公式(3)也有自己的问题,因为它确实打破了第一个条件。 因此,我们认为在单级检测器中学习的更合理的功能可以定义如下

其中H是包含所有feature map的集合,其对于等式2中的检测函数D(·)有贡献。(2)。 不同于公式(2),Φ^ n(·)现在是一个考虑所有贡献feature map并输出新特征的函数Φn表示相同的维数。

方程(4)中定义的函数D^(·)确实满足特征映射复杂度的前两个条件,因为Φ^ n-k(H)输出的特征映射不仅与Φn-k具有相同的分辨率,而且还包含在更深层中提取的特征。值得注意的是,尽管对方程(2)进行了修改,但D^(·)仍然是单阶段过程。换句话说,如果我们也可以使方程(4)满足上述第三个条件并设计一个有效的架构来训练它,我们将能够全面克服以前单阶段方法的局限性,并有机会超越 即使对于高IoU阈值,两阶段方法。

图2. Recurrent Rolling Convolution架构。 该图示出了两次连续迭代的RRC。 包括conv4 3,FC6,conv8 2,conv9 2和conv10 2的第一级中的所有特征映射(实心框)先前由骨干缩减的VGG16网络计算。 在每个阶段中,箭头表示自上而下/自下而上的特征聚合。 这些特征聚合的所有权重都是跨阶段共享的。 箭头所选择的特征被连接到相邻的特征图并由虚线框示出。 在各阶段之间,还有额外的1x1卷积运算符将聚合特征映射转换为其原始大小,以便它们为下一个RRC做好准备。 这些权重也在迭代中共享。 每个RRC迭代都有自己的输出,并在训练期间连接到自己的损失函数。

循环滚动卷积

RNN用于条件特征聚合

我们现在在Φ( ^ H)中定义细节,以便由此函数生成的特征映射包含用于检测的有用上下文信息。 Φ( ^ ·)中的上下文信息对于不同的感兴趣对象意味着不同。例如,当检测到小物体时,它意味着Φ( ^ ·)应该返回包含该物体的更高分辨率特征的特征图,以表示缺失的细节。当检测被遮挡的对象时,Φ( ^ ·)应该返回包含这种对象的鲁棒抽象的特征映射,使得该特征对于遮挡是相对不变的。当检测重叠对象时,Φ( ^ ·)应返回包含边界细节和高级抽象的特征图,以区分不同的对象。然而,对于诸如Φp的中间级特征映射,其中p是正整数,所有上述上下文信息可以从其较低级别对应物Φp-q或其较高级别对应物Φp+r检索,其中q和r也是正整数。难点在于手动定义函数Φ^p(H)的固定规则很难从H中检索Φp-qΦp+r的相应特征,手动选择q和r也很困难。因此,我们必须从数据中系统地学习这个特征检索和聚合过程。

然而,Φ( ^ H)的学习可能很麻烦,因为H是包含不同层和不同尺度的多个特征图的集合,我们不知道应该涉及哪个特征图以及应该对特征施加什么样的操作。 映射当前感兴趣的对象。 因此,从H到有用Φ( ^ H)的直接映射必须求助于具有多层非线性的相当大的深度网络。 这不会使计算效率高且易于训练的单级网络。 另一种方法是设计一个迭代过程,其中每个步骤都会产生一个小而有意义且一致的进展。 该过程可以在数学上描述如下,

其中F是函数,在步骤t,仅将Φ^ t p及其直接的较高和较低级别对应物映射到步骤t + 1处的新Φ^ p。函数F由一些可训练的权重W参数化。

如图3所示从图中可以看出,I是输入图像,它被馈送到网络,并输出特征图Φ^ 1。当函数τ用于分类和边界盒回归时,输出仅限于Φ^ 1。然后,在步骤2中,函数F将执行特征聚合以带来必要的上下文信息,并且给出新的Φ^ 2。然后函数F能够输出基于更新的特征映射Φ^ 2的细化结果。注意,我们可以在训练期间对每个步骤施加监控信号,以便系统在特征聚合中找到有用的上下文信息,从而在检测方面取得真正的进展。一个重要的见解是,如果F和中的权重分别在步骤上共享,则这是一个循环网络。由于循环用于确保每个步骤都进行特征聚合,因此无法被忽略。使每步的特征融合都很平滑。否则,极易发生过拟合进而导致意想不到的偏差。

RRC模型细节

如果对每个feature map Φ^应用上式(5),这是我们提出的Recurrent Rolling Convolution模型。值得注意的是,的一个函数,同时其直接相关层为,如果分别对于存在单独的F.在足够的迭代之后,中的值最终将受到H中的所有特征映射的影响。

所提出的RRC模型在图2中详细示出。该图显示了我们如何使用简化的VGG-16骨干模型将RRC应用于KITTI数据集[12,13]。输入图像的大小为1272x375,有3个通道,因此原始conv4_3层和FC7层的大小分别为159x47x512和80x24x1024,其中512和1024是通道数。在特征聚合之前,我们使用了额外的3x3卷积层来进一步将它们的通道减少到256。在SSD之后,我们还使用了层conv8_2,conv9_2和conv10_2进行多尺度检测,不同之处在于我们的conv8_2层有256个而不是512个通道。我们发现多尺度特征图中的统一通道编号可以促进更一致的特征聚合。

我们使用一个卷积层和一个反卷积层来向下聚合特征。例如,对于层conv8_2,使用具有1x1内核的卷积层来生成大小为40x12x19的feature map。经过ReLU和反卷积层后,它们连接到FC7。同样,图中的所有左箭头指示这种向下操作。我们使用一个卷积层和一个最大池化层来执行向上特征聚合。另外以图层conv8_2为例,1x1卷积跟在ReLU和最大池化层的后面,得到的20x6x19feature map连接到conv9_2.同样,图中所有右箭头指示这样的向上操作。我们将此特征聚合过程称为“rolling”,因为左指向和右指向箭头类似于它。

一旦第一次完成滚动,分别对每一层执行1x1卷积,以减少到原始设置的通道数。在该信道减少之后,整个特征聚合在第一次迭代中完成。这种通道缩减很重要,因为它确保了两个连续的特征聚合之间的每个特征映射的统一形状。它还使循环滚动成为可能。在训练期间,对应于每个箭头的卷积内核以及通道缩减都在迭代之间共享。我们将此迭代过程称为循环滚动卷积。

讨论

RRC是一个循环的处理过程,每次迭代过程中收集聚合用于检测的相关特征。这些重要特征包含对具有挑战性的目标有重要的上下文信息。对于每个RRC,都有一个单独的损失函数对其进行指导学习。这可以确保逐渐导入相关特征,并在每次迭代中实现期望中的进展。由于RRC可以执行多次,因此,得到的特征是"deep in context"。RRC并不是针对特定边界框制定的。因此,可以利用上下文信息中的深度来检测每个目标物体。

损失函数

每次迭代在训练期间都有自己的损失函数。 在SSD之后,对象类别分类的损失函数是交叉熵损失。 平滑L1损失用于边界框回归。

边界框回归空间离散化

在我们的设置中,图层中的一组feature map(例如conv4_3)负责对特定尺寸范围的边界框进行回归。 因为边界框回归本质上是一个线性过程,因此如果该范围太大或特征过于复杂,则边界框回归的鲁棒性将受到显着影响。 因为RRC结构为feature map带来了更多的上下文信息,所以它将不可避免地使feature map更加丰富,基于该feature map,对于原始对象范围,边界框回归可能更难。 为了克服这个问题并使边界框回归更加稳健,我们通过为特定要素图分配多个回归器来进一步离散特定要素图中的边界框回归空间,以便每个回归量对更简单的任务负责。

结束语

在本文中,我们提出了一种新的循环滚动卷积结构来改进单级探测器。 我们发现RRC能够逐步且一致地在特征图之间聚合相关的上下文信息,并生成非常准确的检测结果。 RRC在KITTI检测的所有三个基准测试中都获得了最先进的结果。 据我们所知,这是第一个获得如此令人信服的结果的单级探测器。 该代码是公开的。 在未来的工作中,我们计划在对象检测的上下文中研究支持内存的循环体系结构,并量化其对检测性能的影响。 我们也有兴趣将RRC推广到3D对象检测和相关应用程序的任务。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值