RFB Net 论文学习

论文地址:https://arxiv.org/abs/1711.07767
代码地址:https://github.com/ruinmessi/RFBNet

Abstract

目前领先的目标检测器都以CNN为网络主干结构,例如ResNet-101 和 Inception,深度网络在特征表现上很强大,但是计算成本很高。相反,一些轻量级检测器能完成实时处理任务,但是准确率稍差。这篇论文中,我们利用人工机制增强轻量级特征,尝试构建一个快速而准确的检测器。受人类视觉系统中感受野(Receptive Fields)的结构启发,我们提出了一个新的 RF Block(RFB) 模块,它将感受野的大小和离心率(eccentricity)纳入考虑范畴,增强特征的可区分性和鲁棒性。我们进一步将 RFB 和 SSD 组合在一起,构建 RFB Net 检测器。为了证明它的效率,实验主要在2个 benchmarks 进行测试,结果显示 RFB Net 能够超过目前最优秀的检测器,并能保持实时的速度。

1. Introduction

近些年来,Region-based CNN(R-CNN)以及它的衍生模型,如Fast R-CNN 和 Faster R-CNN,极大地提升了各种目标检测领域 benchmarks 和比赛上的成绩,如 Pascal VOC,MS COCO,和 ILSVRC。它们将检测问题分为2个阶段,第一阶段提出图片上的候选框,第二阶段则对每个候选框根据CNN深度特征进行分类。在这些方法中,CNN 角色至关重要,它学到的特征具有高度的可区分性,而且对物体位置的变动具有很好的鲁棒性。ResNet, Inception, Mask R-CNN, FPN等方法利用优化的特征来获得更好的结果,但是这些特征的计算成本都很高,这样推理的速度就会很慢。

为了加快检测速度,单阶段框架开始被提出来,其中不再包括目标候选框生成部分。尽管 YOLO 和 SSD 都说能达到实时效果,但是都牺牲了准确率,和 state of art 的双阶段方法比都掉了10%-40%的准确率。最近,Deconvolutional SSD (DSSD) 和 RetinaNet 的提出极大地改善了精度得分,可以和双阶段检测器一较高下。但是,它们的性能提升基本来自于很深的 ResNet-101模型,这就降低了它的效率。

要建一个快速而精确的检测器,一个合理的方法应该是增强轻量级网络的特征表现力,利用一定的人工机制,而不是一味地增加网络深度。另一方面,神经科学领域的发现显示,在人类的视皮层上,population Receptive Field (pRF) 的大小和它在视网膜上的位置有函数关系,如图1所示。它强调了中心附近区域的重要性,对不明显的空间移动不再那么敏感。一些较浅的模型很巧合地利用了这个机制来设计和学习池化层,表现都不错。

目前的深度学习模型,通常将感受野设为一样的大小,这可能会降低特征的可区分性以及鲁棒性。Inception 使用了不同大小的感受野,通过多个分支,不同卷积核的CNNs来实现了这个想法。它的衍生模型在目标检测(双阶段框架)和分类任务上取得优异的成绩。但是,Inception 所有的卷积核都是在同一个中心点采样。

受人类视觉系统中感受野的启发,这篇论文提出了一个新的模块,Receptive Field Block(RFB),来增强轻量级CNN 学到的特征,以此提升检测器的速度和精度。引入 RFB 的出发点通过模拟人类视觉的感受野加强网络的特征提取能力,在结构上 RFB 借鉴了Inception的思想,主要是在 Inception 的基础上加入了膨胀卷积层(dilated convolution),从而有效增大了感受野(receptive field)。尤其,RFB 利用多分支的池化操作,对不同大小的感受野有不同的卷积核,使用膨胀卷积层(dilated Conv layer)来控制离心率,对它们进行变形操作,进而产生最终的结果。我们然后将 RFB 模块加在 SSD 上(一个实时的轻量级主干结构),然后构建一个更先进的单阶段检测器(RFB Net)。由于这样的一个简单的模块,RFB Net 的性能能和目标最优秀的检测器相比较,而且速度更快。此外, RFB 模块更加地通用,对网络结构的约束很少。

这篇论文的主要贡献如下:

  1. 提出了RFB 模块来模拟人类视觉系统中的感受野的功能,目的增强轻量网络的深度特征。
  2. 构建出 RFB Net 检测器,将 SSD 最顶层的卷积层替换为 RFB,提升是明显的,而且计算成本被控制的很好;
  3. 证明 RFB Net 在 Pascal VOC 和 MS COCO 上获得 state of art 的成绩,而且速度是实时的,然后还将它和 MobileNet 连接起来,证明了 RFB 的通用性能。

图中虚线部分就是 RFB 结构。RFB结构主要有2个特点:

  • 不同尺寸卷积核的卷积层构成的多分支结构,这部分可以参考 Inception 结构。用不同大小的圆形表示不同尺寸卷积核的卷积层。
  • 引入膨胀卷积层,膨胀卷积层之前应用在分割算法 DeepLab 中,主要作用是增加感受野,和 Deformable 卷积有异曲同工之妙。在图中 RFB 结构用不同的 rate 表示膨胀卷积层的参数。在 RFB 结构最后会将不同尺寸和 rate 的卷积层输出进行 concatenate,达到融合不同特征的目的。在上图中,RFB结构用3种不同大小和颜色的输出叠加来展示。

在上图的最后一列,将融合后的特征与人类视觉感受野做对比,从图可以看出是非常接近的,这也是这篇论文的出发点,换句话说就是模拟人类视觉感受野进行 RFB 结构的设计。

2. Related Work

双阶段检测器: R-CNN 将候选框选取步骤(如 Selective Search)和分类步骤(通过CNN模型)直接结合起来,获得了很大的精度提升,开启了目标检测领域的深度学习时代。它的衍生模型又改进了双阶段框架,获得了业内领先的成绩。此外,一众的扩展版本进一步提升了检测准确率,如R-FCN和FPN,以及 Mask R-CNN。

**单阶段检测器:**最具代表性的单阶段检测器有YOLO 和 SSD。它们在整张特征图上预测多个目标的置信度和位置。这两个检测器采用轻量级的主干网络来加速,但是它们的精度和双阶段模型比,明显差不少。

最近,绝大多数的单阶段检测器(SSD,RetinaNet)都用 ResNet-101 代替之前的轻量级主干网络,并运用了一些特殊的技巧,如 deconvolution, 和 Focal Loss,这使得它们的成绩甚至能超过双阶段方法。但是,这极大地牺牲了它们在速度上的优势。

感受野: 我们的目标是提升高速度,单阶段检测器的性能,而且不会带来太多计算成本。因此,我们没有使用很深的主干网络,而是使用 RFB,模拟人类视觉系统中的感受野机制,来增强轻量模型的特征表现力。

RFB 实际上和 Inception block 及 ASPP 方法不同,它强调感受野大小和离心率之间的关系,较大的权值被赋给中心附近的位置,表明它们比远处位置的更重要。图3提供了4个常用的空间感受野结构。

3. Method

在这一部分,我们将重新了解下人类的视觉皮层,引入我们的 RFB 单元,介绍如何模拟这样一个机制,然后描述 RFB Net 检测器的结构以及训练/测试框架。

3.1 Visual Cortex Revisit

在过去的几十年中,通过核磁共振(fMRI)非侵入性地测量人类大脑活动已经实现,感受野模型也已成为一个重要的科学工具,用于预测人脑的反应和了解大脑的工作原理。因为人脑科学仪器经常观测到许多神经元的池化响应,这些模型因此通常被叫做pRF模型。基于fMRI和pRF模型,检测大脑皮层中诸多 visual field maps 之间的关系也就成为了可能。在每个皮层 map,研究人员发现 pRF 的大小和离心率是正相关的,而相关的系数在不同的 visual field maps 上变动的,如图1所示。

3.2 Receptive Field Block

RFB 是一个多分支的卷积模块。它的内部结构能被分为两个部分:拥有不同卷积核的多分支卷积层,和后面的膨胀池化或卷积层。前部分和 Inception 中的结构一致,负责模拟多个大小的 pRFs;后半部分产生人类视觉系统中 pRF 大小和离心率之间的关系。图2 是关于 RFB 和它对应的空间池化区域图。

Multi-branch convolution layer

根据CNN中感受野的定义,它很简单且很自然地运用不同的核来获得多个大小的感受野,这与固定大小感受野相比应该是要结果更优的。

我们采用 Inception 家族中最新的版本,即 Inception V4 和 Inception-ResNet V2。

  • 首先,我们在每个分支中使用 bottleneck 结构,它由一个 1 × 1 1\times 1 的卷积层构成,降低特征图的通道数,再加一个 n × n n\times n 的卷积层。
  • 其次,我们替换 5 × 5 5\times 5 的卷积层为两个摞在一起的 3 × 3 3\times 3 的卷积层,降低参数的个数以及较深的非线性层的个数。
  • 同样的原因,我们使用一个 1 × n 1\times n 和一个 n × 1 n\times 1 的卷积层来代替原来的 n × n n\times n 卷积层。
  • 最终,我们使用了 ResNet 中的 shortcut 结构和 Inception-ResNet V2。

上图是两种 RFB 的结构示意图。

(a) 是 RFB,整体结构上借鉴了 Inception 的思想,主要不同点在于引入了3个膨胀卷积层(如 3 × 3 C o n v , r a t e = 1 3\times 3 Conv, rate=1 ),这也是这篇文章增大感受野的方式之一。

(b) 是 RFB-s。RFB-s 和 RFB 相比有2个改进。一方面用 3 × 3 3\times 3 卷积层代替 5 × 5 5\times 5 卷积层,另一方面用 1 × 3 1\times 3 3 × 1 3\times 1 代替 3 × 3 3\times 3 卷积层,主要目的是减少计算量,类似 Inception 后期版本对 Inception 结构的改进。

Dilated pooling or convolution layer

这个概念原来由 Deeplab 提出,也被叫做带洞卷积层(atrous convolution layer)。这个结构基本的目的是产生一个高分辨率的特征图,在一个更大的区域获取信息,但也能保持同样的参数个数。这个设计在语义分割任务上被证明是有效的,在一些优秀的目标识别检测器上也有使用来提升速度和精度,如 SSD 和 R-FCN。

在这篇论文中,我们利用膨胀卷积来模拟视觉皮层上 pRFs 离心率的影响。图4 是两个多分支卷积层和膨胀池化/卷积层的结合形式。在每个分支,有特定大小卷积核的卷积层的后面,跟着一个有着膨胀操作的池化或卷积层。卷积核大小和膨胀操作是正相关的,正如视觉皮层中的 pRFs 大小和离心率。最终,所有分支的特征图被连接起来,变为一个空间池化或卷积数组,如图1所示。

RFB 中的特定参数,如核的大小,每个分支的膨胀,以及分支的个数,在每个检测器内,在每个位置上都些微地不同。

3.3 RFB Net Detection Architecture

RFB Net 检测器使用了SSD中的多比例和单阶段框架,RFB 模块嵌在里面用于改善从轻量主干网络中提取的特征,这样检测器既有速度也有精度。由于 RFB 很容易被整合入CNNs,我们可以继续使用 SSD 架构。最主要的改变就是,将最顶层的卷积层替换为 RFB。另一些较小的变动在图5中显示。

上图是 RFB-Net300 的整体结构示意图,基本和 SSD 类似,不同的是:

  • 主干网上用两个 RFB 结构替换原来的新增的两层。
  • c o n v 4 3 conv4_3 c o n v 7 f c conv7_fc 在接预测层之前分别接 RFB-s 和 RFB 结构,这两个结构的示意图如前面的图4所示。

Lightweight backbone

我们使用和 SSD 中完全一样的主干网络。该主干网络就是一个 VGG16,在 ILSVRC CLS-LOC 数据集上进行的预训练,它的 fc6 和 fc7 层被转换为有下采样参数的卷积层,它的 pool5 层由 2 × 2 s 2 2\times 2-s2 变为 3 × 3 s 1 3\times 3-s1 。膨胀卷积层被用于填充空洞,移除所有的 dropout 层和 fc8 层。尽管有许多轻量网络最近被提出来,如 DarkNet, MobileNet, ShuffleNet,我们仍然使用这个主干网络,来和原来的 SSD 进行直观的比较。

RFB on multi-scale feature maps

在原来的 SSD 中,基网络后面跟着一组级联卷积层,来产生一系列的特征图,这些特征图的空间分辨率是逐渐降低的,而视野是逐渐增大的。在我们的实现中,我们保留了 SSD 的级联结构,但是前面的卷积层(它的特征图有着相对较大的分辨率)被替换为 RFB 模块。在 RFB 中,我们使用一个单一的结构来模拟离心率的作用。因为 pRFs 的大小和离心率的比率在视觉图之间互不相同,我们因此调整 RFB 的参数来产生一个 RFB-s 模块,它模拟浅层视网膜上较小的 pRFs,将它放在 c o n v 4 3 conv4_3 特征后面,如图4和图5所示。最后一些的卷积层被保留下来,因为它们特征图的分辨率太小了,没法使用大卷积核( 5 × 5 5\times 5 )滤波器。

3.4 Training Settings

我们基于 Pytorch 框架实现 RFB Net 检测器,利用了 ssd.pytorch 库提供的开源架构中的多个部分。我们的训练策略延续了 SSD,包括数据增广,困难样本挖掘(hard example mining),默认边框的比例和纵横比,以及损失函数(定位的 smooth L1 损失和分类的 softmax 损失),我们小幅度地改了学习率来更好地适应 RFB。更多的细节将在下面的实验部分给出。所有新的卷积层都用 MSRA 方法初始化。

4. Experiments

Pls read paper for more details.

猜你喜欢

转载自blog.csdn.net/calvinpaean/article/details/85232789