论文下载:https://arxiv.org/abs/1711.07767
源码下载:https://github.com/ruinmessi/RFBNet
Abstract:
目前性能最好的目标检测器依赖于深层CNN的骨干网络,例如ResNet-101和Inception,它们得益于强大的特征表示,但计算成本很高。相反,一些轻量级的目标检测器实现了实时处理,但它们的准确性受到影响。在本文中,我们探索了一种替代方法,通过使用手工制作的机制来增强轻量级特征,从而构建快速准确的检测器。受人类视觉系统中感受野(RFs)结构的启发,我们提出了一种新颖的RF Block(RFB)模块,该模块考虑了RFs大小和偏心率之间的关系,以增强特征识别性和鲁棒性。我们进一步将RFB组装到SSD的顶部,构建RFB Net检测器。为了评估其有效性,在两个主要基准上进行了实验,结果表明,RFB网络能够在保持实时速度的同时达到先进的深层检测器的性能。
1、Introduction
近年来,基于区域的卷积神经网络(R-CNN)及其具有代表性的更新后代,如Fast R-CNN和Faster R-CNN,一直在提升目标检测在主要挑战和基准上的性能,如Pascal VOC、MS COCO和ILSVRC。他们将这个问题描述为两个阶段的问题,并构建了一个典型的pipeline,其中第一阶段主要是提取给定图像中的region proposals,第一阶段不需要考虑目标类别,第二阶段根据基于CNN的深度特征对每个proposals进行分类。人们普遍认为,在这些方法中,CNN表示起着至关重要的作用,学习到的特征被期望用于提供高分辨能力的编码对象特征和良好的鲁棒性,尤其是对适度的位置偏移(通常由不准确的方框引起)。最近的一些努力证实了这一事实。例如,[11]和[15]从更深层次的CNN主干中提取特征,如ResNet和Inception;[19] 引入自上而下的体系结构来构建特征金字塔,集成低层和高层信息;最新的高性能Mask R-CNN使用了一个ROIAlign层,以生成更精确的区域特征。所有这些方法都采用了改进的特征,以达到更好的效果;然而,这些特征基本上来自更深层的神经网络,计算成本高,推理速度慢。
为了加快检测速度,我们研究了一个单阶段框架,其中丢弃了对象建议生成阶段。即使这是开拓性的尝试,名为YOLO和SSD的检测器说明了实时处理的能力,但它们往往会牺牲准确性,与最先进的两阶段解决方案相比,明显下降10%到40%。最近,DSSD and RetinaNet大幅改善了精度分数,与二阶段检测器报告的最高分数相当。不幸的是,它们的性能提升也归功于非常深的ResNet-101模型,这限制了检测效率。
图1 人类群体感受野(pRF)特性的规律
(A) 在一些人类视网膜图中,pRF大小是偏心率的函数,其中有两种趋势是明显的:
(1)在每张图中pRF大小随偏心率增加而增加;
(2)各图之间pRF的大小不同。
(B) 基于(A)中参数的PRF空间阵列。每个圆的半径是适当偏心率下的RF尺寸。
根据上面的讨论,为了构建一个快速而强大的检测器,合理的替代方案是通过引入某些手工制作的机制来增强轻量级网络的特征表示,而不是顽固地加深模型。另一方面,神经科学的几项发现表明,在人类视觉皮层中,群体感受野(pRF)的大小是视网膜图中偏心率的函数,尽管在不同的图之间有所不同,但在每个图中,它随着偏心率的增加而增加,如图1所示。这有助于突出靠近中心区域的重要性,并提高对小空间位移的不敏感性。一些肤浅的描述符恰好利用这种机制来设计或学习它们的池化模式,并在匹配图像块时表现出良好的性能。
对于当前的深度学习模型,它们通常在特征图上用规则的采样网格将RFs设置在同一大小,这可能会导致特征可分辨性和鲁棒性的损失。Inception[33]考虑了多种大小的RFs,它通过使用不同的卷积核启动多分支CNN来实现这一概念。其变体[32,31,16]在目标检测(两阶段框架)和分类任务中取得了竞争性的结果。然而,Inception中所有卷积核都在以同一个中心进行采样。一个类似的想法出现在[3]中,其中利用一个空洞空间金字塔池化(ASPP)来捕获多尺度信息。该算法在顶部特征图上采用多个具有不同空洞率的并行卷积来改变距中心的采样距离,这在语义分割中被证明是有效的。但这些特征与之前相同内核大小的卷积层相比只有一个统一的分辨率,与雏菊形状的特征相比,最终的特征往往不那么独特。可变形CNN[4]试图根据对象的大小和形状自适应调整RFs的空间分布。虽然其采样网格是灵活的,但没有考虑感受野离心率的影响,感受野中的所有像素对输出响应的贡献相等,并且没有强调最重要的信息。
受人类视觉系统中RFs结构的启发,本文提出了一种新的模块,即感受野块(RFB),以增强从轻量级CNN模型中学习到的深层特征,从而有助于实现快速准确的检测器。具体地说,RFB利用多分支池化,用不同大小卷积核对应不同大小的RFs,应用空洞卷积层来控制它们的偏心度,并对它们进行reshape以生成最终表示,如图2所示。然后,我们将RFB模块组装到SSD[22]的顶部,这是一种带有轻量级主干网络的实时方法,并构建了一个高级单阶段检测器(RFB网络)。由于有了这样一个简单的模块,RFB Net提供了相对不错的分数,可以与最新的基于更深层主干网络的探测器相媲美[19,18,20],并保持了原始轻量级检测器的速度。此外,RFB模块是通用的,对网络架构几乎没有限制。
我们的主要贡献可以总结如下:
1、我们提出了RFB模块来模拟人类视觉系统中RFs的大小和偏心率的配置,旨在增强轻量级CNN网络的深层特征。
2、我们提出了基于RFB网络的检测器,通过简单地用RFB替换SSD[22]的顶部卷积层,它显示出显著的性能,同时仍能控制计算成本。
3、我们展示了RFB Net以实时处理速度在Pascal VOCand和MS COCO上实现了最先进的结果,并通过将RFB链接到MobileNet[12]展示了RFB的通用化能力。
2、Related Work
两阶段检测器:R-CNN[8]直接结合了裁剪框建议的步骤,如选择性搜索[35],并通过CNN模型对其进行分类,与传统方法相比,产生了显著的精度提高,从而开启了目标检测的深度学习时代。它的后代(例如,Fast R-CNN[7],Faster R-CNN[26])更新了两阶段框架并实现了卓越的性能。此外,还提出了一些有效的扩展来进一步提高检测精度,如R-FCN[17]、FPN[19]、MaskR CNN[9]。
一阶段检测器:最具代表性的一阶段检测器是YOLO[24,25]和SSD[22]。它们基于整个特征图预测多个对象的置信度和位置。这两种检测器都采用了轻量级的backbone来加速,而它们的精度显然落后于两阶段方法。
最近更先进的单阶段检测器(如DSSD[6]和RetinaNet[20])通过更深层次的ResNet-101更新了其原有的轻量级backbone,并应用了某些技术,如反卷积deconvolution[6]或focal loss[20],其得分可与最先进的两阶段方法相媲美,甚至更优。然而,这样的性能提升在很大程度上消耗了它们在速度方面的优势。
感受野:回想一下,在这项研究中,我们的目标是在不产生太多计算负担的情况下提高高速单阶段检测器的性能。因此,RFB模仿人类视觉系统中的RFs机制,用于增强基于模型的轻量级特征表示,而不是应用非常深的backbone。实际上,有几个研究讨论了CNN中的RFs,最相关的是Inception系列[33,32,31]、ASPP[3]和可变形卷积[4]。
图3 空间RFs的四种典型结构
(a)展示了在Inception中多个大小的卷积核
(b) 演示ASPP中类似菊花池的配置
(c) 采用可变形conv,根据物体特性产生自适应RF
(d) 说明了RFB的机制。每个结构的颜色图是从训练模型中的一个对应层导出的有效RF,在[23]中用同样的反向传播方法描述。在(a)和(b)中,我们调整初始Inception和ASPP中的RF大小以进行公平比较
Inception block采用多个具有不同卷积核大小的分支来获取多尺度信息。然而,所有的卷积核都在同一个中心进行采样,这需要更大的卷积核才能达到相同的采样覆盖率(在红点处采样,需要大小为整张特征图大小的卷积核才能覆盖整张特征图),因此会丢失一些关键的细节。对于ASPP,空洞卷积改变了距中心的采样距离,但这些特征与之前相同卷积核大小的卷积层具有一致的分辨率(这些采样点的感受野与上一卷积层的卷积核大小相同),这会平等对待所有位置上的线索(平等对待每一个红点,因为每个红点的感受野相同,都是上一层卷积层卷积核的大小,而RFB每一个红点的感受野不一样,不是平等对待),可能会导致对象和上下文之间的混淆。可变形卷积[4]学习单个对象的独特分辨率,不幸的是,它与ASPP有相同的缺点。RFB确实与它们不同,它强调了雏菊形配置中RF尺寸和偏心率之间的关系,在雏菊形配置中,较小的卷积核将更大的权重分配给靠近中心的位置,声称它们比较远的位置更重要。四种典型空间结构的差异见图3。另一方面,Inception和ASPP还没有成功地用于改进单阶段检测器,而RFB显示了在这个问题上利用它们的优势的有效方法。
3、Method
在本节中,我们将回顾人类视觉皮层,介绍我们的RFB组件和模拟这种机制的方法,并描述RFB网络检测器的体系结构及其训练测试计划。
3.1、Visual Cortex Revisit(回顾视觉皮层)
在过去几十年中,功能磁共振成像(fMRI)以毫米为单位无创的测量人脑活动已成为现实,RF建模已成为一种重要的感官科学工具,用于预测反应和阐明大脑计算。由于人类神经科学仪器经常观察许多神经元的共同反应,因此,这些模型通常被称为pRF模型[36]。基于fMRI(功能磁共振成像)和pRF建模,可以研究大脑皮层许多视觉场图之间的关系。在每个皮层图上,研究人员发现pRF大小和偏心率之间存在正相关[36],而视野图中的相关系数不同,如图1所示。
3.2、Receptive Field Block
我们所提出的RFB是一个多分支卷积块。它的内部结构可分为两个部分:具有不同卷积核的多分支卷积层和后面的空洞池化或卷积层。前面的部分与Inception部分相同,负责模拟多个尺寸的pRF,而后一部分再现了人类视觉系统中pRF尺寸和偏心率之间的关系。图2示出了RFB及其相应的空间池化区域图。下面我们将详细阐述这两个部分及其功能。
图2 通过组合具有不同卷积核的多个分支和空洞卷积层来构造RFB模块。多种卷积核类似于不同大小的pRF,而空洞卷积层为每个分支分配一个单独的偏心率,以模拟pRF的大小和偏心率之间的比率。通过在所有分支中拼接和一个1×1的卷积,产生了最终的RF空间阵列,与人类视觉系统中的阵列类似,如图1所示。
Multi-branch convolution layer(多分支卷积层):
根据RF在CNNs中的定义,应用不同的卷积核来实现多尺度大小的RFs是一种简单而自然的方法,应该优于共享固定大小的RFs。
我们采用了最新版本的变更,即Inception系列中的Inception V4和Inception ResNet V2[31]。具体来说,首先,我们在每个分支中使用bottleneck结构,由1×1 conv层组成,来减少特征图的通道数然后加上n x n卷积层。其次,我们将5×5 conv层替换为两个堆叠的3×3 conv层,以减少参数和更深的非线性层。出于同样的原因,我们使用一个1×n加上一个n×1的conv层来代替原始的n × n的卷积层。最终,我们应用了ResNet[11]和Inception ResNet V2[31]中的shortcut设计。
Dilated pooling or convolution layer(空洞池化或卷积层):
这个概念最初是在Deeplab[2]中引入的。这种结构的基本意图是生成分辨率更高的特征图,在更大的区域和更多的上下文中捕获信息,同时保持相同数量的参数。这种设计很快被证明能胜任语义分割[3],并已被一些著名的目标检测器采用,如SSD[22]和R-FCN[17],以提高速度或/和准确性。
图4 RFB和RFB-s的体系结构。RFB-s被用于在浅层人类视网膜图中模拟较小的pRFs,使用更多带有小卷积核的分支。在[32]之后,我们使用两层3×3 conv代替5×5来减少参数
在本文中,我们利用空洞卷积来模拟人类视觉皮层中pRF偏心的影响。图4示出了多分支卷积层和空洞池化或卷积层的两种组合。在每个分支上,具有特定卷积核大小的卷积层后面是相应的空洞池化或卷积层。卷积核大小和膨胀系数与视觉皮层中pRF的大小和偏心度具有相似的正相关关系。最后,将所有分支的特征图连接起来,合并成图1中的空间池化或卷积阵列。
RFB的具体参数,例如卷积核大小、每个分支的膨胀系数和分支数,在检测器内的每个位置略有不同,这将在下一节中阐明。
3.3 RFB Net Detection Architecture(RFB网络检测器结构)
本文提出的RFB网络检测器重用了SSD的多尺度和一阶段框架[22],其中嵌入RFB模块,以改善从轻量级backbone中提取到的特征,从而使检测器更准确、更可靠并且检测速度仍然保持足够的快。由于RFB易于集成到CNN中的特性,我们可以尽可能保留SSD架构。主要的修改在于用RFB替换顶部卷积层,图5给出了一些较小但有效的卷积层。
图5 RFB-Net300的pipeline。conv4_3特征图由RFB-s跟踪,RFB-s具有较小的RFs,而步距为2的RFB模块是通过在原始RFB中操作步距为2的多种卷积核的卷积层生成的
Lightweight backbone(轻量级主干网):
我们使用与SSD完全相同的主干网。简而言之,它是在ILSVRCCLS-LOC数据集[27]上预先训练的VGG16[30]体系结构,其中fc6和fc7层被转换为带有下采样参数的卷积层,并且它的pool5层从2×2-s2更改为3×3-s1。使用空洞卷积层填充孔洞和所有的dropout层,丢弃fc8层。尽管最近提出了许多已完成的轻量级网络(例如DarkNet[25]、MobileNet[12]和ShuffleNet[39]),但我们将重点放在这个主干上,以实现与原始SSD[22]的直接比较。
RFB on multi-scale feature maps(多尺寸特征图上的RFB):
在原始SSD[22]中,基础网络之后是一系列卷积层,形成一系列空间分辨率不断降低,感受野不断增大的特征图。在我们的实现中,我们保持了SSD的相同级联结构,但是具有相对较大分辨率的特征图的前面的一些卷积层被RFB模块取代。在RFB的初级版本中,我们使用单一结构设置来模拟偏心率的影响。由于视觉图之间pRF的大小和偏心率不同,我们相应地调整RFB的参数,以形成RFB-s模块,该模块模拟浅层人类视网膜主题地图中较小的pRF,并将其置于conv4_3特征之后,如图4和图5所示。最后几个卷积层被保留下来,因为它们的特征图的分辨率太小,无法应用像5×5这样的大卷积核。
3.4 Training Settings
我们基于Pytorch框架实现了我们的RFB网络检测器,利用了ssd提供的开放源代码的几个部分。我们的训练策略主要遵循SSD,包括数据增强、难样本挖掘、default boxes的比例,以及损失函数(例如,用于定位的的smooth L1 loss和用于分类的softmax loss),同时我们稍微改变学习速率以更好地适应RFB。所有新的卷积层都使用MSRA方法初始化。
4 Conclusion
在本文中,我们提出了一种快速而强大的目标检测器。与广泛采用的大幅加深backbone的方式不同,我们选择通过引入一种手工制作的机制来增强轻量级网络得到的特征表示,即感受野块(RFB),它模仿人类视觉系统中的RF结构。RFB衡量RFs的尺寸和偏心率之间的关系,并生成更具辨别力和鲁棒性的特征。RFB安装在基于CNN的轻量级SSD上,并且最终的检测器在Pascal VOC和MS COCO数据集上得到了显著的性能提升,其最终精度甚至可与现有性能最好的基于深度模型的检测器相媲美。此外,它还保留了轻量级模型处理速度方面的优势。
时间关系实验部分就不翻译了。。。
版权声明:本文为CSDN博主「象牙山首富_」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_42390283/article/details/122872938
暂无评论