RFB论文阅读

论文:Receptive Field Block Net for Accurate and Fast Object Detection . Songtao Liu, Di Huang,Yunhong Wang

 

摘要

目前性能最好的物体检测器依赖于深度CNN骨干,如ResNet-101Inception,它们得益于其强大的特征表示,但却承受着高昂的计算成本。相反,一些基于模型的轻量化检测器实现了实时处理,但其准确性经常受到批评。在本文中,我们探索了一种替代方法,通过使用hand-crafted的机制加强轻量级特征来构建快速而准确的检测器。受人类视觉系统的感受野(RFs)结构的启发,提出了一种新的RF blocks(RFB)模块,该模块考虑了RFs的大小和离心率(Eccentricity)之间的关系,提高了特征的可辨识性和鲁棒性。我们进一步将RFB组装到SSD的顶部,构建RFB Net检测器。了评估其有效性,在两个主要基准上进行了实验,结果表明,RFB网络能够在保持实时速度的同时达到先进的超深检测器的性能。开源:https://github.com/ruinmessi/RFBNet. 

Keywords: Real-time Object Detection; Receptive Field Block (RFB)

 

 


引言

近年来,R-CNN[8]及其有代表性的更新后代,如Fast R-CNN[7]Faster RCNN[26],不断提升了目标检测在重大挑战和基准上的性能,如Pascal VOC[5]MS COCO[21]ILSVRC[27]。他们将这个问题表示为一个两阶段的问题,并建立一个典型的pipeline,其中第一阶段假设给定图像内的类别无关候选边界框,第二阶段根据基于CNN的深度特征对每个候选框进行分类。们普遍认为,在这些方法中,CNN的表示起着至关重要的作用,并且期望学习到的特征能够提供高鉴别能力的编码对象特征和良好的鲁棒性,特别是对于中等的位置偏移(通常是由不准确的候选包围框引起的)。最近的一些工作证实了这一事实。例如,[11][15]从更深层次的CNN主干中提取特征,如ResNet[11]Inception [31];[19]引入自顶向下的体系结构构建特征金字塔,集成了低层和高层信息;最新的最出色的Mask R-CNN[9]生成RoIAlign层,以生成更精确的区域特征。所有这些方法都采用改进的特征以达到更好的效果;然而,这些特征基本上来自深度神经网络,其计算成本较高,因此推理速度较慢。

为了加速检测,提出了一个单阶段框架,其中候选框生成阶段被丢弃。尽管这些开创性的尝试,比如You Look Only Once (YOLO)[24]Single Shot Detector (SSD)[22],展示了实时处理的能力,但它们往往牺牲了准确性,与最先进的两阶段解决方案[20]相比,精确度明显下降了10%40%。最近,反卷积SSD (DSSD)[6]RetinaNet[20]大大改善了精度分数,可以与两级检测器报告的最高分数相媲美。不幸的是,他们的性能提升也归功于非常深入的ResNet-101[11]模型,这限制了效率。

根据上面的讨论,要构建一个快速而强大的检测器,一个合理的选择是通过引入某些hand-crafted的机制来增强轻量级网络的特征表示,而不是顽固地深化模型。另一方面,神经科学方面的一些发现表明,在人类视觉皮层中,人群感受野(population Receptive Field,pRF)的大小与视网膜离心率(eccentricity)的函数,虽然在不同的图片中有所不同,但在每个图片[36]中,pRF随着离心率增大,如图1所示。它有助于突出靠近中心区域的重要性,并提高对小空间变化的不敏感性。感受野中的像素对神经节点输出的贡献是不一样的,更具体一些是:感受野中心的像素的贡献更大些。理由:Forward pass过程:中心像素有更多的路径将该像素的信息传递给神经节点,边缘的像素有较少的路径将其像素信息传递给神经节点。相似地, Backward pass过程:感受野中心像素从相应的神经节点获取的梯度也更多。理论感受野区域中的像素的贡献符合Gaussian分布。由于Gaussian分布从中心高边快速衰减,有效感受野只是是理论感受野的一部分。

图片1.jpg 

目前的深度学习模型,通常在特征上使用规则的采样网格设置相同大小的RFs,这可能会导致特征可鉴别性和鲁棒性的损失。

Inception[33]考虑多种大小的RFs,它通过使用不同的卷积核设置多分支CNN来实现这一概念。它的变体[32,31,16]在目标检测(在两阶段框架中)和分类任务中取得了竞争的结果。然而,Inception所有的内核都是在同一个中心采样的,使用具有不同卷积核大小的多个分支来捕获多尺度信息, 但是所有卷积核都在同一个中心进行采样,这需要更大的卷积核才能达到相同的采样覆盖率,因而会丢失一些关键细节

类似的想法出现在[3]中,其中ASPP被利用来捕获多尺度信息。该算法在顶层特征图上应用几个不同atrous rate的并行卷积来改变采样点到中心的距离,在语义分割中取得了较好的效果。但空洞卷积在前一个feature map上,并且使用了基于相同尺度的conv kernel,提取到的特征判别性还是不够,可能会造成目标和上下文的混淆。

可变形CNN[4]试图根据物体的尺度和形状自适应地调整RFs的空间分布。虽然它的采样网格是灵活的,但没有考虑RFs离心率的影响,即一个RF中的所有像素对输出响应的贡献都是相等的,而不强调最重要的信息。

受人类视觉系统中RFs结构的启发,本文提出了一种新的模块Receptive Field Block(RFB),以增强从轻量级CNN模型中学习到的深度特征,使其有助于快速准确的检测。具体来说,RFB利用了与不同大小RFs对应的不同内核的多分支池化,利用扩张卷积来控制它们的离心率,并对其进行reshape以生成最终表示,如图2所示。RFB利用了Figure1中结论,即离心率增加的同时要增加视野大小(在d图中rate1->3->5 ,卷积核大小也从1->3->5),距离conv center中心比较近的权重要使用小卷积核赋予更大的权重

然后,我们将RFB模块组装到SSD[22]的顶部,构建了一个先进的单级检测器(RFB Net)。多亏了这样一个简单的模块,RFB Net提供了相对不错的分数,可以与最新的基于骨干网的检测器相媲美[19,18,20],并保持了原始轻量级检测器的快速速度。此外,RFB模块是通用的,对网络体系结构的约束很少。

Contributions

1. 我们提出RFB模块来模拟人类视觉系统中RFs的大小和离心率的配置,旨在增强轻量级CNN网络的深度特征。

2. 我们提出了基于RFB网络的检测器,通过简单地用RFB替换SSD[22]的顶部卷积层,在保持计算成本控制的同时,显示了显著的性能提高。

3. 我们展示了RFB Net以实时处理速度在Pascal VOCMS COCO上取得了最先进的结果,并通过将RFBMobileNet[12]相链接,展示了RFB的泛化能力。

 

相关工作

回顾本研究,我们的目标是在不增加太多计算负担的情况下,改善高速单阶段探测器的性能。因此,我们采用RFB来增强基于轻量级模型的特征表示,而不是采用非常深入的骨干,它模仿了人类视觉系统中RFs的机制。际上,关于CNNRFs的研究已经有好几篇了,最相关的是Inception系列[33,32,31]ASPP[3],以及Deformable CNN

Inception采用多个不同内核大小的分支来捕获多尺度信息。然而,所有的核都是在同一个中心采样的,这需要更大的核才能达到相同的采样覆盖率,从而丢失了一些关键的细节。对于ASPP但空洞卷积在前一个feature map上,并且使用了基于相同尺度的conv kernel,提取到的特征判别性还是不够,可能会造成目标和上下文的混淆Deformable CNN[4]学习单个物体的独特分辨率,不幸的是,它具有与ASPP相同的缺点。

RFB确实不同于它们,它强调了菊花形(daisy-shape)结构中RF大小和离心率之间的关系,在这种结构中,更小的核将更大的权重分配给靠近中心的位置,声称它们比更远的位置更重要。4种典型空间RF结构的差异如图3所示。另一方面,InceptionASPP并没有被成功地用于改进one-stage检测器,而RFB在这个问题上展示了一种利用它们的优势的有效方法。

图片2.jpg 

 

方法

在本节中,我们将回顾人类视觉皮层,介绍我们的RFB组件和模拟这种机制的方法,并描述RFB网络检测器的架构以及它的训练/测试计划。

 

视觉皮层回顾

在过去的几十年里,功能性磁共振成像(fMRI)已经实现了以毫米为分辨率的无创测量人类大脑活动,射频建模已经成为一个重要的感官科学工具,用于预测反应和阐明大脑计算。由于人类神经科学仪器经常观察到许多神经元的聚集反应,因此这些模型通常被称为pRF模型[36]。基于fMRIpRF模型,有可能研究大脑皮层多个视野图(visual field maps之间的关系。在每个皮质图上,研究者发现pRF大小与离心[36]呈正相关,而相关系数在视野图上有所不同,如图1所示。

 

RFB

提出的RFB是一个多分支卷积块。其内部结构可分为两部分:具有不同卷积核的多分支卷积层和空洞卷积。前Inception相同,负责模拟多种大小pRF,后再现了人类视觉系统中pRF大小与离心率之间的关系。图2说明了RFB及其对应的空间池化区域图。下面我们将详细阐述这两部分及其功能。

图片3.jpg 

多分支卷积层:根据CNNRF的定义,利用不同的卷积核来实现多个大小的RFs是一种简单而自然的方法,它应该优于共享固定尺寸的RFs

采用Inception家族中的最新版本Inception V4Inception-ResNet-V2。具体来说,我们首先在每个分支中使用1 × 1的卷积层构成的瓶颈结构,以减少特征图中的通道数量,再加上n × n的卷积层。其次,我们将5×5卷积层替换为两个叠加的3×3卷积层,以减少参数和更深层次的非线性层。出于同样的原因,我们使用1 ×n加上n×1卷积层来代替原来的n×n卷积层。最终,我们采用了来自ResNet[11]Inception-ResNet V2[31]shortcut设计。

扩张池化或卷积层:这个概念最初是在Deeplab[2]中引入的,它也被命名为空洞卷积层。这种结构的基本目的是生成更高分辨率的特征图,在更大的区域和更多的上下文捕获信息,同时保持相同数量的参数。该设计迅速证明了其在语义分割[3]方面的能力,并已被一些著名的对象检测器采用,如SSD[22]R-FCN[17],以提高速度或/和准确性。

在本文中,我们利用扩张卷积来模拟pRFs离心对人类视觉皮层的影响。各个分支的结果串接后执行1x1卷积,再与Shortcut逐元素相加。

图片4.jpg 

4显示了多分支卷积层和扩张池化/卷积层的两种组合。在每个分支上,具有特定卷积核大小的卷积层后面是一个相应膨胀的池化/卷积层。卷积核的大小和扩张与视皮层pRFs的大小和离心率具有相似的正功能关系。最终,所有分支的特征串接起来,合并成一个空间池化或卷积阵列,如图1所示。

RFB的具体参数,如内核大小、每个分支的扩张、分支的数量等,在检测器内的每个位置都略有不同,下一节将对此进行说明。

 

RFB Net目标检测架构

所提出的RFB网络检测器重用了SSD[22]的多尺度、单级框架,其中嵌入了RFB模块,改进了轻量化骨干提取的特征,从而提高了检测器的准确性和速度。由于RFB很容易集成到cnn中,我们可以尽可能地保留SSD架构。主要的改进是用RFB代替了顶部的卷积层,图5给出了一些较小但活跃的卷积层

图片5.jpg 

Lightweight backbone:我们使用的骨干网与SSD[22]的骨干网完全相同。简而言之,它是在ILSVRC CLS-LOC数据集[27]上预先训练的VGG16[30]架构,其中fc6fc7层被转换为卷积层,并带有子采样参数,pool5层由2×2-s2修改为3×3-s1。用扩张卷积层填充孔洞,去掉所有的dropout层和fc8层。尽管最近已经提出了许多成熟的轻量级网络(例如:DarkNet[25]MobileNet[12]ShuffleNet[39]),我们还是将重点放在这个主干上,以实现与原始SSD[22]的直接比较。

RFB on multi-scale feature maps:在原来的SSD[22]中,在基础网络之后是一组级联的卷积层,形成一系列空间分辨率不断减小、感受野不断增大的特征图。在我们的实现中,我们保持了SSD相同的级联结构,但具有相对较大分辨率的特征映射的前卷积层被RFB模块取代。在原始版本的RFB中,我们使用一个单一的结构设置来模拟离心的影响。由于pRF的大小和偏心率在不同的视觉图上不同我们相应地调整RFB的参数,形成RFB-s模块,模拟浅层人类视网膜中较小的pRFs,并将其置于conv4_3特征之后,如图4和图5所示。最后几个卷积层保留了下来,因为它们的特征映射的分辨率太小,无法应用像5 × 5这样的大核滤波器。

训练配置

我们基于Pytorch1的框架实现了RFB网络检测器,利用了SSD的pytorch存储库提供的开源基础设施的几个部分。我们的训练策略主要遵循SSD,包括数据增强、 hard negative mining先验框尺度和长宽比,以及损失函数(例如平滑L1损失和softmax损失),同时我们略微改变我们的学习速率调度,以更好地适应RFB

 

 

 

 

 

 

 

 


上一篇:

首页 所有文章 机器人 计算机视觉 自然语言处理 机器学习 编程随笔 关于