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

  1. 方法概述

这篇文章收录于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的更多相关文章

  1. 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 ...

  2. [论文理解] Receptive Field Block Net for Accurate and Fast Object Detection

    Receptive Field Block Net for Accurate and Fast Object Detection 简介 本文在SSD基础上提出了RFB Module,利用神经科学的先验 ...

  3. 机器视觉:Convolutional Neural Networks, Receptive Field and Feature Maps

    CNN 大概是目前 CV 界最火爆的一款模型了,堪比当年的 SVM.从 2012 年到现在,CNN 已经广泛应用于CV的各个领域,从最初的 classification,到现在的semantic se ...

  4. 关于感受野 (Receptive field) 你该知道的事

    Receptive field 可中译为“感受野”,是卷积神经网络中非常重要的概念之一. 我个人最早看到这个词的描述是在 2012 年 Krizhevsky 的 paper 中就有提到过,当时是各种不 ...

  5. Understanding the Effective Receptive Field in Deep Convolutional Neural Networks

    Understanding the Effective Receptive Field in Deep Convolutional Neural Networks 理解深度卷积神经网络中的有效感受野 ...

  6. 泡泡一分钟: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 ...

  7. Convolutional Neural Networks(2):Sparse Interactions, Receptive Field and Parameter Sharing

    Sparse Interactions, Receptive Field and Parameter Sharing是整个CNN深度网络的核心部分,我们用本文来具体分析其原理. 首先我们考虑Feedf ...

  8. 论文解读《Understanding the Effective Receptive Field in Deep Convolutional Neural Networks》

    感知野的概念尤为重要,对于理解和诊断CNN网络是否工作,其中一个神经元的感知野之外的图像并不会对神经元的值产生影响,所以去确保这个神经元覆盖的所有相关的图像区域是十分重要的:需要对输出图像的单个像素进 ...

  9. 2 - Rich feature hierarchies for accurate object detection and semantic segmentation(阅读翻译)

    Rich feature hierarchies for accurate object detection and semantic segmentation Ross Girshick Jeff ...

随机推荐

  1. JUC - ReentrantLock 的基本用法 以及 lock()、tryLock()、lockInterruptibly()的区别

    ReentrantLock 与 synchronized对比 最近有在阅读Java并发编程实战这本书,又看到了ReentrantLock和synchronized的对比,发现自己以前对于Renntra ...

  2. javascript单线程,异步与执行机制

    js的单线程模型与游览器的进程/线程息息相关,在了解js单线程与异步的时候,建议先看看这篇文章 为什么是单线程 由于js是可操作dom的,如果js是多线程,在多线程的交互下,处于界面中的dom节点就可 ...

  3. 你编写的Java代码是咋跑起来的?

    如果你是一名 Java 开发人员,你肯定指定 Java 代码有很多种不同的运行方式.比如说可以在开发工具(IDEA.Eclipse等)中运行,可以双击执行 jar 文件运行,也可以在命令行中运行,甚至 ...

  4. Unity中的资源管理

    一.AssetBundle 相关 Q1:Unity中的SerializedFile是怎么产生的?请问用Unload(false)可以清除吗?因为读取了Bundle里面的内容后已经赋值给其他物体了.而且 ...

  5. (JavaScript) JS方式调用POS机蓝牙打印

    function print(mac_address) { if (!mac_address) { mui.toast('请选择蓝牙打印机'); return; } main = plus.andro ...

  6. [知识图谱]Neo4j知识图谱构建(neo4j-python-pandas-py2neo-v3)

    neo4j-python-pandas-py2neo-v3 利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱 Neo4j知识图谱构建 1.运行环境: pyt ...

  7. Flex简记

    display的flex属性的使用对象分为1.容器即包含有元素的元素,2.项目,即某一个元素.就容器而言,flex可以实现换行(flex-wrap),改变容器内元素的排列方向(flex-directi ...

  8. [考试反思]0714/0716,NOIP模拟测试3/4

    这几天时间比较紧啊(其实只是我效率有点低我在考虑要不要坐到后面去吹空调) 但是不管怎么说,考试反思还是要写的吧. 第三次考试反思没写总感觉缺了点什么,但是题都刷不完... 一进图论看他们刷题好快啊为什 ...

  9. 「刷题」GERALD07加强版

    是LCT了. 首先我们不知道联通块怎么数. 然后颓标签知道了是LCT. 那么考虑一下怎么LCT搞. 有一个很普遍的思路大家也应该都知道,就是如何求一个区间中某种颜色的个数. 这个可以很简单的用主席树来 ...

  10. NOIP模拟 19

    最近试考的脑壳疼 晚上还有一场555 T1 count 研究性质题. 研究好了AC,研究不明白就没头绪 首先枚举n的因子d 其次发现因为是树,所以如果合法,贡献只能是1 然后发现如果合法,一定是一棵一 ...