论文:Receptive Field Block Net for Accurate and Fast Object Detection
发表时间:2018
发表作者:(Beihang University)Songtao Liu, Di Huang, Yunhong Wang
发表刊物/会议:ECCV
论文链接:论文链接

一些检测论文会依赖很深的 CNN 网络来提升效果,但此类网络会牺牲运行速度。在 RFB 论文中,作者由视觉感受野(Receptive Fields)出发提出了感受野 RFB 模块(Receptive Fields Block)。通过膨胀卷积和增加 Inception 结构等方法使得网络结构的感受野变大,这样可以在不增加网络深度的前提下保持较高的检测效果和较快的运行速度。
本文强调通过人为设计机制,使用轻量级网络来实现其高准确性和高速率。提出RFB模块进行人类视觉系统的大小和离心率的模拟,旨在增强轻量级CNN网络的深层特征。将RFB模块集成到SSD网络结构的顶端卷积层,在控制计算损失的情况下准确度有一定提升。通过将其连接到MobileNet证明其通用能力。

框架

通过改进 SSD 特征提取网络,使卷积核的感受野可以覆盖更多范围,提升检测效果。算法主要是对网络中卷积的结构进行改进,相当于把 SSD 的基础网络替换为一个类似于 Inception 的网络,并将普通卷积改为了膨胀卷积,使得每个卷积的感受野变得更大。RBF 网络通过模仿人类感受野使基础网络可以学到更多尺度的信息,从而在不增加参数的前提下提升准确率。

RFBNet 主要创新可以参考以下两张图:

RFB-NET整体框架1 RFB-NET整体框架2

作者参考 Inception 结构,将 SSD 的基础网络改进为多Branch结构。每个 RFB(感受野模块)由不同大小的普通卷积+Dilation Conv 构成。如 $11$ 卷积接 $33$ 卷积,$33$ 卷积接 $33$ 膨胀卷(感受野为 $99$),$55$ 卷积接 $33$ 膨胀卷积(感受野为 $1515$)。然后将这三个结构 concat 在一起共同作用。膨胀卷积如图所示,虽然 3*3 的卷积的参数个数和普通卷积一样,但其覆盖范围更大。

其实每个卷积核不覆盖很小的范围在 deformable conv 论文中也早有提及。作者在对比中提到,deformable 的每个像素的作用是相同的,但 RFB 结构可以通过对不同尺度的卷积设定不同权重使不同尺度的信息的作用不同。

在实现过程中,作者使用了两种不同类型的 RFB:

RFB-NET3

A 结构分支更多,卷积核更小,且没有 $55$ 卷积核(作者在使用中使用两个$33$ 卷积代替 $5*5$ 卷积)这两种构造在最后的 SSD 物体检测网络中的位置是不同的。根据作者的说法,在更靠前的网络,为了模仿人类更小的感受野,所以使用了更多分枝,且卷积核更小。事实上在使用过程中,只有第一层用了 A 结构。

RFB-NET4

我们看一下整体的网络结构,可以看到 RFB a 结构只在提取 VGG43 的特征时使用,其他的 RFB 都是 B 结构。另一个有趣的现象是最后几层依然使用了原始的卷积操作。因为在这些层 feature map 的尺寸已经很小了。较大的卷积核(5*5)不能运行在上面。

算法效果

VOC 数据集的 mAP 可以达到 80.5%。作者在其他基础网络上也测试了准确率,发现也有提升。证明 RFB 结构的效果提升具有普遍性。此外,作者尝试了使用 RFB 网络从零开始训练。最终的 mAP 为 77.6 (DSOD 为 77.7),整体表现差不多。

RFB-NET5 RFB-NET6

Paper Reading:Receptive Field Block Net for Accurate and Fast Object Detection的更多相关文章

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

  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. [paper reading] C-MIL: Continuation Multiple Instance Learning for Weakly Supervised Object Detection CVPR2019

    MIL陷入局部最优,检测到局部,无法完整的检测到物体.将instance划分为空间相关和类别相关的子集.在这些子集中定义一系列平滑的损失近似代替原损失函数,优化这些平滑损失. C-MIL learns ...

  4. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. Flutter easyrefresh示例 上拉加载+下拉刷新

    官方示例,简单改了下,实现功能为主. 代码如下: import 'dart:async'; import 'package:flutter/material.dart'; import 'packag ...

  2. 【MySQL】IN 的学习,以及和 EXISTS的区别

    1. EXISTS 的语法 语法: EXISTS subquery 参数: subquery 是一个受限的 SELECT 语句 (不允许有 COMPUTE 子句和 INTO 关键字). 结果类型: B ...

  3. angular入门 - 环境安装及项目创建

    1.安装node.js 下载,安装,在终端测试安装是否成功:node -v(查看nodejs版本) npm -v(查看npm版本) 下载地址:https://nodejs.org/en/downloa ...

  4. netcore mvc菜单,角色,权限

    netcore mvc快速开发系统(菜单,角色,权限[精确到按钮])开源 AntMgr https://github.com/yuzd/AntMgr 基于netcore2.0 mvc 开发的 快速搭建 ...

  5. 当后端返回的数据是以属性做开头,怎么用length取值

    在我们前端开发中,一般需要的数据是分条的如 [{},{},{},{}] ,这样的数据方便我们用length取值,尤其是在表格中.在控制台看的时候能轻易的看出1 2 3 4条,但有时候后台返回的数据不是 ...

  6. UIPath工具取得某个路径下的文件夹的名称

    UIPath工具取得某个路径下的文件夹的名称 处理的流程如下图 [Edit Code]按钮押下之后写入代码如下 Dim dir As New DirectoryInfo("C:\Users\ ...

  7. javascript jssdk退出微信的方法

    javascript jssdk退出微信的方法 <pre> $('.tctip').on('click',function () { setTimeout("WeixinJSBr ...

  8. COleVariant类

    COleVariant本质上是一个枚举,用同一种类型来表达不同的子类型.如同boost中的variant. COLeVariant类是对VARIANT结构的封装. VARIANT结构包含两部分.其一是 ...

  9. Python列表推导

    一. 列表推导式   ord() 函数是 chr() 函数(对于8位的ASCII字符串)或 unichr() 函数(对于Unicode对象)的配对函数, 它以一个字符(长度为1的字符串)作为参数,返回 ...

  10. docker部署Eurake服务,服务节点无法注册服务

    前言 昨天在部署一个docker项目时遇到了一个问题,故记录下来. 环境说明 Centos7 Docker version 18.06.3-ce, build d7080c1 问题说明 该项目分别启动 ...