Receptive Field Block Net for Accurate and Fast Object Detection
Receptive Field Block Net for Accurate and Fast Object Detection
作者:Songtao Liu, Di Huang*, and Yunhong Wang
Beijing Advanced Innovation Center for Big Data and Brain Computing
Beihang University, Beijing 100191, China
fliusongtao, dhuang, yhwangg@buaa.edu.cn
论文链接:https://arxiv.org/abs/1711.07767
代码链接:https://github.com/ruinmessi/RFBNet
- 方法概述
这篇文章收录于ECCV2018,提出了一种准确且快速的目标检测算法RFB-NET,强调通过人为设计机制,使用轻量级网络来实现其高准确性和高速率。
1.1 主要思路
文章提出RFB模块进行人类视觉系统的大小和离心率的模拟,旨在增强轻量级CNN网络的深层特征。将RFB模块集成到SSD网络结构的顶端卷积层,在控制计算损失的情况下准确度有一定提升。通过将其连接到MobileNet证明其通用能力。
1.2 方法框架
RFB模块其内部结构如图1所示可以分为两个部分:具有不同内核的多分支卷积层和空洞卷积层。不同内核的多分支卷积层模拟多种尺寸的pRF,后一部分的空洞卷积层再现了人类视觉系统中pRF尺寸与离心率之间的关系。
图1 RFB模块结构
1.3 文章亮点
文章设计RFB模块进行人类视觉系统的大小和离心率的模拟,在轻量级网络上保持速度优势的同时提高了准确率,并且具有很强的通用能力。
2.方法细节
2.1研究背景
近年来,基于区域卷积神经网络的two-stage目标检测算法,如Fast R-CNN 、Faster R-CNN算法都在Pascal VOC, MS COCO, ILSVRC等数据集上持续提升了物体检测的性能。但是此类算法都是基于高计算成本的深度神经网络,所以相对而言速度就慢得多。因此,one-stage类目标算法应运而生,如YOLO,SSD算法,他们大多基于简单的网络架构,以牺牲计算精度为代价,获得了较快的速度。综上所述,设计一个使用轻量级网络能快速准确检测目标的算法是一个很有意义的研究方向。而作者实现的RFB-NET就是强调不要一味地加深模型,而是通过人为设计机制增强轻量级网络的特征表示来设计这个算法。
2.2 设计思想
设计思想来源于群感受野模型的提出。在神经科学中的一些发现揭示,在人类视觉皮层中,population Receptive Field(pRF)群感受野模型用于精确分析视觉皮层对视觉刺激的反应。如图2群感受野的规律及表示图所示,A图群感受野(pRF)的大小是其视网膜图中离心率的函数,表现为随着偏心率而增加,距离中心点越近的区域对未来输出特征图的贡献越大。B图是参考A图的函数关系画出的人眼视觉感受野,它有助于突出更靠近中心的区域的重要性,并提高对小空间变化的不敏感性。
图2 群感受野的规律及表示
2.3同类感受野算法对比
目前也有一些算法提出了感受野的做法。从图3所示的几个也用到感受野特征的算法中可以做进一步的比较。Inception考虑到多种尺寸的感受野,因而采用具有不同内核大小的多个分支来捕获多尺度信息。但是,Inception中的所有内核都在同一中心进行采样,这需要更大的内核才能达到相同的采样覆盖率,从而丢失了一些关键细节。ASPP在顶部特征图上应用了几个具有不同膨胀率的并行卷积,以改变与中心的采样距离,这证明了语义分割中的有效性。但是这些特征仅具有来自相同内核大小的先前卷积层的均匀分辨率,并且与菊花形状的卷积层相比,所得特征往往不那么独特。Deformable CNN试图根据物体的尺度和形状自适应地调整RF的空间分布。尽管其采样网格是灵活的,但不考虑RF的离心率的影响,其中RF中的所有像素对输出响应贡献相同并且不强调最重要的信息。RFB确实与它们不同,它突出了菊花形状配置中感受野尺寸和离心率之间的关系,其中较大的重量分配给较小的内核靠近中心的位置,声称它们比更远的更重要。另一方面,尚未成功采用Inception和ASPP来改进one-stage目标检测算法,而RFB则展示了在这个问题上利用其优势的有效方法。
图3 典型感受野算法对比
2.4 RFB结构细节
RFB模块是多分支卷积块。如图4所示其内部结构可以分为两个部分:具有不同内核的多分支卷积层和空洞卷积层。前一部分与Inception完全相同,使用具有不同内核的多分支池化层模拟多种尺寸的pRF,后一部分的空洞卷积层再现了人类视觉系统中pRF尺寸与离心率之间的关系。在RFB结构中最后会将不同尺寸和rate的卷积层输出进行concat,达到融合不同特征的目的。在图4的最后一列中将融合后的特征与人类视觉感受野做对比,从图可以看出是非常接近的,这也是这篇文章的出发点,换句话说就是模拟人类视觉的感受野进行RFB结构的设计。
图4 RFB模块结构
2.5 RFB与RFB-s的实现
图5中(a)与(b)显示了RFB与RFB-s实现细节上的一些差异。分支卷积层采用最新版本Inception系列中的Inception V4和Inception-ResNet V2。RFB-s通过调整RFB的参数模拟人类视网膜图中的较小pRF,使用更多具有较小核的分支。具体来说,首先,我们在每个分支中使用瓶颈结构,由1*1卷积层组成,以减少特征映射中的通道数量。其次,我们用两个堆叠的3*3卷积层替换5*5卷积层,以减少参数和更深的非线性层。出于同样的原因,我们使用1*n加上n*1卷积层来代替原始的n*n卷积层。最后,我们应用ResNet 和Inception-ResNet V2的shortcut。最终,所有分支的特征映射被连接,合并成如图5所示卷积层。
图5 RFB与RFB-s实现细节
2.6 RFB-NET网络结构
RFB-NET网络结构如图6所示,重用了SSD的多尺度和单级框架。将RFB模块嵌入SSD结构中用以改善从轻量级主干提取的特征,使得探测器更准确且仍然足够快。由于RFB的特性可以轻松集成到CNN中,我们可以尽可能地保留SSD架构。使用与SSD完全相同的骨干网络。具体来说,它是在ILSVRC CLS-LOC数据集上预先训练的VGG16架构,其中fc6和fc7层被转换为具有子采样参数的卷积层,并且其pool5层从2* 2-s2变为3 * 3-s1。空洞卷积层用于填充空穴,并且去除所有的丢失层和fc8层。
图6 RFB-NET网络结构
3. 实验结果
在PASCAL VOC 2007数据集上的测试结果如表1所示。结果显示RFB Net512获得了最好的效果,并且保持了一定的速度。
表1 PASCAL VOC 2007数据集测试结果
在与同类使用感受野思想的算法比较中,为了公平地表示,改变Inception的参数使之与RFB-NET具有相同的感受野大小,重命名为Inception-L,同样地,把ASPP改成ASPP-S。然后,将这些模块也集成到SSD网络中进行测试。测试结果如表2所示,RFB-NET性能最优。
表2 同类感受野思想的算法比较结果
在COCO test-dev 2015数据集上的测试结果如表3所示。在结果中,测试结果最高的是RetinaNet800,为了最求最高效率,将原有的RFB Net以下两个有效的改进:(1)对conv7_fc的输出特征做了上up-sample,然后和conv4_3的输出特征做融合,基于融合后的特征做预测。这种做法其实是借鉴了FPN算法的思想。(2)在RFB结构中增加了7*7大小的卷积分支。这两点改进对效果的提升有一定帮助,而且带来的计算量也少。将这个网络命名为RFN Net512-E。
表3 COCO test-dev 2015数据集测试结果
RFB模块具有很强的通用性,对网络架构的限制小,所以很容易集成到网络中。为了进一步测试RFB模块的泛化能力,我们将RFB连接到MobileNet-SSD。在数据集MS COCO上的测试结果如表4所示。
表4 RFB模块通用性
4.总结与收获
1.模拟人眼视觉感受野大小与离心率进行RFB模块设计
2.模块通用性强,可集成到其他网络中
Receptive Field Block Net for Accurate and Fast Object Detection的更多相关文章
- Paper Reading:Receptive Field Block Net for Accurate and Fast Object Detection
论文:Receptive Field Block Net for Accurate and Fast Object Detection 发表时间:2018 发表作者:(Beihang Universi ...
- [论文理解] Receptive Field Block Net for Accurate and Fast Object Detection
Receptive Field Block Net for Accurate and Fast Object Detection 简介 本文在SSD基础上提出了RFB Module,利用神经科学的先验 ...
- 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps
CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...
- 关于感受野 (Receptive field) 你该知道的事
Receptive field 可中译为“感受野”,是卷积神经网络中非常重要的概念之一. 我个人最早看到这个词的描述是在 2012 年 Krizhevsky 的 paper 中就有提到过,当时是各种不 ...
- Understanding the Effective Receptive Field in Deep Convolutional Neural Networks
Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...
- 泡泡一分钟:FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM
FMD Stereo SLAM: Fusing MVG and Direct Formulation Towards Accurate and Fast Stereo SLAM FMD Stereo ...
- Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing
Sparse Interactions, Receptive Field and Parameter Sharing是整个CNN深度网络的核心部分,我们用本文来具体分析其原理. 首先我们考虑Feedf ...
- 论文解读《Understanding the Effective Receptive Field in Deep Convolutional Neural Networks》
感知野的概念尤为重要,对于理解和诊断CNN网络是否工作,其中一个神经元的感知野之外的图像并不会对神经元的值产生影响,所以去确保这个神经元覆盖的所有相关的图像区域是十分重要的:需要对输出图像的单个像素进 ...
- 2 - Rich feature hierarchies for accurate object detection and semantic segmentation(阅读翻译)
Rich feature hierarchies for accurate object detection and semantic segmentation Ross Girshick Jeff ...
随机推荐
- (二)AS给button添加点击事件
三种方法给Button添加点击事件 (一)通过button的id,添加继承View.OnClickListener的监听实现 <Button android:id="@+id/btn_ ...
- 修改vuex状态机中的数据
vuex状态机中的数据是必须提交mutation来修改,如果现实开发中,我们需要修改,而又不想提交mutaition,应该怎么做呢? 先来回顾一下场景,有一个列表是存在vuex中的 这个列表展 ...
- javascript创建一个基于数组的栈结构
栈是一种遵从后进先出(LIFO)原则的有序集合.新添加或待删除的元素都保存在栈的同 一端,称作栈顶,另一端就叫栈底.在栈里,新元素都靠近栈顶,旧元素都接近栈底. 栈拥有以下方法: push(eleme ...
- windows 利用环境变量%PATH%中目录可写提权
使用PowerUp的时候有时候会有这种结果 [*] Checking %PATH% for potentially hijackable DLL locations... Permissions : ...
- [考试反思]0821NOIP模拟测试28:沉默
这次不能把我前面的分数段都列出来了,因为实在太多了. 这次也不能把我后面的分数段列出来了,因为我后面没有了. yxm,mikufun,Pairs170100分第10.50分第29. 我:爆零,倒数第一 ...
- CSPS模拟 77
%%两位AK爷zkt和skyh T1 位间独立,分别讨论 T2 维护标记,代替移位 T3 同一点对,多种联通,没法搞. 发现最多四路连通,考虑容斥. 显然的奇加偶减. 发现统计某种颜色的点之间的联通数 ...
- Spark安装与学习
http://www.cnblogs.com/jerrylead/archive/2012/08/13/2636115.html
- 考试T1护花
传送门 这题的提议似乎有什么问题,只要约翰选好了要抓那头牛,他就不会吃草了,站在原地傻等? 这题就是贪心,但在用cmp中比较单位时间吃草数量时,要用double型,不然可能会有点一样... 还有就是主 ...
- 原来JS是这样的 - 原型链
上一篇提到属性描述符 [[Get]] 和 [[Put]] 以及提到了访问描述符 [[Prototype]],看它们的特性就会很容易的让人想到经典的面向对象风格体系中对类操作要做的事情,但带一些 int ...
- Docker swarm集群增加节点和删除节点
Docker swarm集群增加节点 docker swarm初始化 docker swarm init docker swarm 增加节点 在已经初始化的机器上执行:# docker swarm j ...