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. 仿写vue UI 组件总结 (自己练习,仿照现有的UI组件)

    UI组件 Vue开发插件流程 本来是昨天要写总结的,感觉自己写不好,就放弃了.今天看到了iview和element有一些摩擦,是关于代码借鉴的问题(哈哈),不做评价.谁下生会写组件,我仿(chao)写 ...

  2. ArangoDB 界面介绍

    目录: 安装并运行本地ArangoDB服务器 使用Web界面与之交互 BASHBOARD COLLECTIONS QUERIES GRAPHS SERVICES USERS LOGS 安装: 下载地址 ...

  3. Scrapy 框架入门简介

    一.Scrapy框架简介 Scrapy 是用 Python 实现的一个为了爬取网站数据.提取结构性数据而编写的应用框架. Scrapy 常应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中. ...

  4. 深入理解.NET Core的基元(二) - 共享框架

    原文:Deep-dive into .NET Core primitives, part 2: the shared framework 作者:Nate McMaster 译文:深入理解.NET Co ...

  5. $POJ2942\ Knights\ of\ the\ Round\ Table$ 图论

    正解:图论 解题报告: 传送门! 一道,综合性比较强的题(我是萌新刚学$OI$我只是想练下$tarjan$,,,$QAQ$ 考虑先建个补图,然后现在就变成只有相互连边的点不能做邻居.所以如果有$K$个 ...

  6. 原生js实现导航栏吸顶

    实现滑动滚动条让导航栏吸顶原理:主要是通过监听scroll,设定一个滚动条垂直位移作为临界,让导航栏吸顶或者取消吸顶. 话不多说了,代码如下: window.onscroll = function ( ...

  7. Java 计算n对应的二进制位上有几个1,分别在什么位置

    Java计算n的二进制位上有几个1,分别在什么位置   public List<Integer> getBinOneCount(int n){     List<Integer> ...

  8. SpringMVC----执行流程+底层解析

    SpringMVC流程图如上面所示,根据上图,串联一下底层源码: 1.在DispatcherServlet中找到doDisPatch 2.观察方法体,然后找到getHandler方法 3.点进方法,发 ...

  9. 合并JSON对象的正确方式

    一. 前言 “JSON对象合并”是前端开发和 NodeJS 环境开发中非常常见的操作.开发者通常会通过循环遍历或一些库封装的方法或 JavaScript ECMAScript 2015 定义的 Obj ...

  10. svg路径蒙版动画

    svg路径蒙版动画,是比较实用的一种动画效果,能够绘制如下图所示的动画. 接下来细说这样的动画是如何做成的: 1.准备工作 2.SVG路径动画 3.SVG路径蒙版动画 4.复杂图形的编辑技巧 1.准备 ...