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. linq一般用法

    最一般的用法 var rows = from c in dataTrue.AsEnumerable() from t in dataPre.AsEnumerable() ].ToString().St ...

  2. IOT设备的7大安全问题

    IOT设备的7大安全问题 串口安全 IOT设备一般包含各类串口,并且这些串口缺乏认证机制.一旦暴露给了hacker,hacker可以很容易的查找敏感信息和dump固件,从而导致各类安全问题.建议厂家在 ...

  3. CMMS系统中工单派案&调度

    系统为客户经理提供一个有效的调度控制台,由客户经理负责将需要外派现场处理的工单进行统一的分配调度,系统显示每个技术人员的时间表,根据专业技能.可用性.距离或其他资格标准筛选技术服务人员,并向调度人员提 ...

  4. 不想用锐捷怎么办?锐捷出问题|锐捷不能用怎么办?用menohust代替吧

    首先获取 MentoHUST(代替锐捷网络认证客户端) V4.1.0.2001 绿色免费版 解压到任意目录 用管理员身份 启动  安装&卸载 .bat(右键用管理员运行)  这个文件可能乱码了 ...

  5. 基于 HTML5 + Canvas 实现的 PID 可视化系统

    前言 随着工业物联网和互联网技术的普及和发展,人工填料的方式已经逐渐被机械设备取代.工业厂商减小误操作.提升设备安全以及追求高效率等制造特点对设备的要求愈加高标准.严要求.同时机械生产以后还需遵从整个 ...

  6. OptimalSolution(6)--栈和队列

    一.设计一个有getMin功能的栈 题目:实现一个特殊的栈,在实现栈的基本功能的基础上,再实现返回栈中最小元素的操作.pop.push.getMin操作的时间复杂度都是O(1). 思路:设计两个栈,一 ...

  7. django-VIews之HttpResponse(一)

    HttpResponse(content,conent_type=None,status=None,charset=None,*args,**kwargst) content:返回给视图的内容 con ...

  8. fenby C语言 P30

    int a[5],*p=a; int a[5],*p=&a[0]; #include <stdio.h> int main(void){ int a[5],*p=a,i; for( ...

  9. 《鸟哥的Linux私房菜--基础篇》学习

    第四章 显示日期与时间的指令:date 输入: (base) liyihuadeMacBook-Pro:~ liyihua$ date 输出: Thu Jun 6 08:44:02 CST 2019 ...

  10. 刷题翻车:python 布尔运算操作符的优先级

    前两天在 xue.cn 体验答题挑战,我有道题做错了,却不明白错在哪里.题目大概如下,代码运行后将打印什么? if True or False and False: print('1') else: ...