论文提出了实时的超轻量级two-stage detector ThunderNet,靠着精心设计的主干网络以及提高特征表达能力的CEM和SAM模块,使用很少的计算量就能超越目前的one-stage detectors,在ARM平台也达到了实时性,GPU的速度更是达到267fps



来源:【晓飞的算法工程笔记】 公众号

论文: ThunderNet: Towards Real-time Generic Object Detection

Introduction


  one-stage detector和two-stage detector分别有着实时优势和准确率优势。two-stage detector实时性较差,几乎不能在移动设备上运行,尽管已经有了light-head版本,但对于小主干网络而言,这依然是过度设计的。而one-stage由于缺少ROI-wise的特征提取,准确率一直较差

  为此,论文提出TunderNet,一个超轻量级的two-stage detector。在综合考虑输入分辨率,主干网络和detection head后,整体架构如图2,主要有两部分创新:

  • Backbone part,提出轻量级主干网络SNet
  • Detection part,参考Light-Head R-CNN的设计,对RPN和R-CNN子网进一步压缩。对于小主干和小特征图产生的性能退化问题,提出两个高效的block:Context Enhancement Module(CEM),组合多尺寸的特征图来整合本地和全局上下文信息;Spatial Attention Module(SAM),使用RPN中的上下文信息来优化RoI warping的特征分布

  ThunderNet准确率比目前的轻量级one-stage detector都要高,且仅用了很少的计算量,在ARM和x86设备上分别达到了24.1fps和47.3fps

ThunderNet


Backbone Part

  • Input Resolution

  two-stage detector的输入通常都很大,为了减少计算量,ThunderNet使用$320\times 320$的输入分辨率。需要注意,输入分辨率应该与主干网络的能力匹配

  • Backbone Networks

  由于图像分类和图像检测需要主干网络用不同的属性,简单地直接应用图像分类的网络作为主干不是最优的:

  1. Receptive field:感受域是卷积网络中很重要的特性,大的感受域能更有效地利用更多的上下文信息以及处理远距离的像素间关系,这对定位任务相当重要,特别是大目标
  2. Early-stage and late-stage features:主干网络的early-stage特征图较大,低层特征能表达空间细节,而late-stage的特征图较小,高层特征更具区分能力。一般定位任务对低层特征更敏感,高层特征对分类任务更重要。在实际中发现,在大网络中定位任务比分类任务要难,表明低层特征对定位更重要,而过小的网络由于弱表达能力限制了两种任务的准确率,表明低层和高层特征都是重要的

  目前的轻量级主干网络都不符合上面的因素:ShuffleNetV1/V2限制了感受域的大小(121 pixels vs. 320 pixels,(这里的计算方法暂时不了解,另外下面说V2为121 pixels,跟这里不一致,希望了解的读者能留言告知)),ShuffleNetV2和MobileNetV2则缺少了early-stage的特征,而Xception则没有足够的高层特征

  基于以上的观察,论文改造ShuffleNetV2,设计了轻量级主干网络SNet用于实时检测,共3个版本: SNet49更快速推理;SNet535更准确;SNet146是耗时和准确率的折中,结构如表1所示,主要改进如下:

  • 将所有3x3的深度卷积替换成5x5的深度卷积,扩大感受域(121 to 193 pixels)但不会带来过多额外的计算
  • 对于SNet146和SNet535,移除Conv5,然后增加early-stage的层的channel数,这样能不带来过多额外的计算的情况下提供更多低层特征
  • 对于SNet49,将conv5压缩到512维,然后增加early-stage的层的channel数,这样能很好地平衡低层特征和高层特征

Detection Part

  • Compressing RPN and Detection Head

  Light-Head R-CNN虽然已经够轻量级了,但是相对于小主干网络,仍然是过度设计的。为了解决这一问题,论文将256-channel 3x3卷积压缩为5x5深度卷积和256-channel 1x1卷积的组合,加大卷积核大小来增加感受域,而anchor box的尺寸和长宽比分别为${322,642,1282,2562,512^2}$和${1:2,3:4,1:1,4:3,2:1}$

  对于detection head,Light-Head R-CNN在RoI warping前生成很精简特征图(thin feature map)大小$\alpha\times p\times p$ ,$\alpha=10$,$p=7$为池化大小。由于主干网络更小,缩小$\alpha=5$来移除多余的计算,用PSRoI align($(p\times p\times c)\times w\times h$ to$c\times p\times p$)进行RoI warping,将245-d的RoI特征输出为$\alpha$-d,之后在R-CNN子网接一个1024-d全连接

  • Context Enhancement Module(CEM)

  Light-Head R-CNN使用Global Convolutional Network(GCN)来产生精简特征图,GCN使用$k\times 1 + 1\times k$和$1\times k + k\times 1$卷积代替$k\times k$卷积,这样能提升感受域,但会带来两倍的计算量,不能采用。因此,论文借鉴FPN的思想,提出了Context Enhancement Module(CEM)来整合多尺度的局部上下文信息和全局的上下文信息

  CEM融合$C_4$,$C_5$和$C_{glb}$,其中$C_{glb}$为global average pooling的全局特征,然后用1x1卷积将每组特征图压缩至$\alpha\times p\times p=245$,再$C_5$和$C_{glb}$进行2x上采样和直接复制(broadcast),最后进行融合。通过利用局部和全局信息,CEM能够有效地扩大感受域和改善精简特征图的表达能力。对比FPN,CEM精算量相当小

  • Spatial Attention Module

  由于ThunderNet使用了更小的主干网络和输入分辨率,这增加了检测的难度。论文提出Spatial Attention Module(SAM),在空间维度对RoI warping前的特征图进行re-weight,核心思想是利用RPN的信息来优化特征图的特征分布

  RPN能够识别目标区域,因此,RPN的中间特征能用来区分前景特征。SAM接受RPN的中间特征$\mathcal{F}{RPN}$和来自CEM的特征$\mathcal{F}{CEM}$,输出$\mathcal{F}^{SAM}$。整体流程如图4,$\theta$为维度转化函数,将特征图转化为特定channel,一般用1x1卷积,最后的Sigmoid将数值限制在$[0,1]$

  SAM包含两个函数,第一个是推理函数,用来加强前景特征同时抑制背景特征。另一个是反向传播函数,因为SAM增加了额外的R-CNN梯度到RPN,需要稳定RPN的训练,RPN特征$i$与全部SAM特征$j$相关

Experiments


Implementation Details

  每张图训练和测试分别有2000和200 RoIs,输入分辨率为$320\times 320$,使用多尺寸训练${240,320,480}$,使用SSD的数据增强,在VOC和COCO分别训练62.5K和375K,使用OHEM和Soft-NMS

Results on PASCAL VOC

  可以看到,ThunderNet能达到SOTA,而且相对于同准确率的模型,计算量降低了很多

Results on MS COCO

  MS COCO数据集包含很多小物体,尽管ThunderNet输入分辨率和主干网络都较小,但是准确率依然能在大幅减少参数量的情况下达到目前的SOTA

Ablation Experiments

  • Input Resolution

  可以看到,小主干网络与大输入分辨率和大主干网络和小输入分辨率都达不到最优的结果,两者需要match

  • Backbone Networks

  论文将SNet146和SNet49作为baselines,对主干网络的设计进行实验对比:

  1. 5×5 Depthwise Convolutions,对比$5\times 5$深度卷积和$3\times 3$卷积。从5(b)和5(c)可以看出,$5\times 5$卷积提供的大感受域对目标检测很重要
  2. Early-stage and Late-stage Features,对比early-stage和late-stage特征的平衡关系。从5(d)、5(f)和5(g)可以看出,高层特征对分类有很多作用,但是对目标检测则不一定作用。因此,需要平衡高低层特征

  1. Comparison with Lightweight Backbones,将SNet与其它轻量级主干网络进行对比,SNet检测准确率是最好的
  • Detection Part

  论文将压缩后的Light-Head R-CNN with SNet146作为baseline,对ThunderNet的detection part的设计进行对比:

  1. Baseline,性能达到21.9AP
  2. RPN and R-CNN subnet,用5x5深度卷积代替RPN中的3x3卷积,减少28%参数量,保持了差不多的准确率(7b)。将R-CNN子网的全连接输出减半至1024,减少13%参数量,准确率降低0.2AP(7c)
  3. Context Enhancement Module,将CEM应用到RPN和RoI warping,对比7c能提升1.7AP(7d)

  1. Spatial Attention Module,仅使用SAM能提升1.3AP和增加5%计算量(7c),图6可视化了7c和7e RoI warping前的特征图,SAM明显能加强前景特征
  2. 最后同时加入CEM和SAM,对比baseline能提升1.7AP(7f)
  • Balance between Backbone and Detection Head

  论文对比了主干网络和head的关系,large-backbone-small-head的准确率要高点,可能由于small-backbone-large-head的主干网络的特征太弱了,导致head过度设计

  • Inference Speed

  论文对比了不同设备上的不同网络的推理速度,Yhunder with SNet49在ARM和CPU上都能达到实时性,而所有的网络在GPU上都大于200fps,速度相当劲爆

CONCLUSION


  论文提出了实时的轻量级two-stage detector ThunderNet,在backbone部分,使用一个精心设计的目标检测专用的轻量级网络SNet,在detection部分,采用极度精简的detection head和RPN,提出Context Enhancement Module和Spatial Attention Module用于增强特征表达能力,最后对输入分辨率、backbone和detection head进行了缩减和平衡。ThunderNet使用很少量的计算量超越了目前的one-stage detectors,在ARM平台也达到了实时性,GPU的速度更是达到267fps

参考内容





写作不易,未经允许不得转载~

更多内容请关注 微信公众号【晓飞的算法工程笔记】

ThunderNet :像闪电一样,旷视再出超轻量级检测器,高达267fps | ICCV 2019的更多相关文章

  1. ECCV 2018 | 旷视科技提出GridFace:通过学习局部单应变换实现人脸校正

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕,旷视科技有多篇论文被此 ...

  2. 入职9月,旷视孙剑106分钟讲述CV创业科研的5大区别

    雷锋网按:本文为旷视科技首席科学家孙剑日前在 CCF-ADL上做的题为<如何在大公司和创业公司做好计算机视觉研究>的分享,主要介绍了近期计算机视觉的发展现状,ResNet基本原理和设计,旷 ...

  3. 旷视6号员工范浩强:高二开始实习,“兼职”读姚班,25岁在CVPR斩获第四个世界第一...

    初来乍到,这个人说话容易让人觉得"狂". "我们将比赛结果提交上去,果不其然,是第一名的成绩."当他说出这句话的时候,表情没有一丝波澜,仿佛一切顺理成章. 他说 ...

  4. 旷视MegEngine核心技术升级

    旷视MegEngine核心技术升级 7 月 11 日,旷视研究院在 2020 WAIC · 开发者日「深度学习框架与技术生态论坛」上围绕 6 月底发布的天元深度学习框架(MegEngine)Beta ...

  5. 旷视MegEngine基本概念

    旷视MegEngine基本概念 MegEngine 是基于计算图的深度神经网络学习框架. 本文简要介绍计算图及其相关基本概念,以及它们在 MegEngine 中的实现. 计算图(Computation ...

  6. 旷视研究院Detection组负责人

    http://www.skicyyu.org/ https://zhuanlan.zhihu.com/p/61910297 俞刚,旷视研究院Detection组负责人.2014年博士毕业于新加坡南洋理 ...

  7. 旷视科技 -- Face++ 世界最大的人脸识别技术平台

    旷视科技 -- Face++ 世界最大的人脸识别技术平台: https://www.megvii.com/

  8. 旷视等Oral论文提出GeoNet:基于测地距离的点云分析深度网络

    基于网格曲面的几何拓扑信息可以为物体语义分析和几何建模提供较强的线索,但是,如此重要的连接性信息在点云中是缺失的.为此,旷视西雅图研究院首次提出一种全新的深度学习网络,称之为 GeoNet,可建模点云 ...

  9. ECCV 2018 | 旷视科技提出统一感知解析网络UPerNet,优化场景理解

    全球计算机视觉三大顶会之一 ECCV 2018(European Conference on Computer Vision)即将于 9 月 8 -14 日在德国慕尼黑拉开帷幕.届时,旷视首席科学家孙 ...

随机推荐

  1. 一篇文章带您读懂List集合(源码分析)

    今天要分享的Java集合是List,主要是针对它的常见实现类ArrayList进行讲解 内容目录 什么是List核心方法源码剖析1.文档注释2.构造方法3.add()3.remove()如何提升Arr ...

  2. ado.net DataSet

    一.概念 DataSet是ADO.NET的中心概念.可以把DataSet当成内存中的数据库,DataSet是不依赖于数据库的独立数据集合.所谓独立,就是说,即使断开数据链路,或者关闭数据库,DataS ...

  3. 有了这个开源 Java 项目,开发出炫酷的小游戏好像不难?

    本文适合有 Java 基础知识的人群,跟着本文可学习和运行 Java 的游戏. 本文作者:HelloGitHub-秦人 HelloGitHub 推出的<讲解开源项目>系列,今天给大家带来一 ...

  4. 在linux中下载安装FTP服务

    一.环境及需求 阿里云服务器的Centos6.9版本,当时需要用到上传服务,所以我想着先搭建一个ftp,比较方便快捷,但是我参考了网上好多的博客,简单安装是没问题,但是时不时还会遇到好多坑,与其说是博 ...

  5. GPUImage学习总结

    GPUImage是iOS上一个基于OpenGL进行图像处理的开源框架,内置大量滤镜,架构灵活,可以在其基础上很轻松地实现各种图像处理功能. GPUImgae特性 1,丰富的输入组件 摄像头.图片.视频 ...

  6. 后端工程师必知必会的前端 css 知识

    后端工程师虽然大部分工作都是跟服务器缓存数据库打交道,但有时也需要写一些前端代码. 有些公司的OAM后台基本是由后端工程师承包的,所以前端基础知识是必须要掌握的:就算开发中不直接写前段代码,了解前端知 ...

  7. Python爬虫 - UserAgent列表

    PC端: PC_USER_AGENT = [ 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)', 'Mozilla/4.0 (compatibl ...

  8. Vue项目一、node.js和npm的安装和环境搭建

    一.为什么安装node.js及npm npm npm是Node.js的包管理工具(package manager),是全球最大的生态系统,同过npm可以找到很多丰富的插件来满足项目的需求. a1.现在 ...

  9. 前端---css3优化

    一.视差滚动(经过优化后的代码) .front::before { content: ''; position: fixed; // 代替background-attachment width: 10 ...

  10. 有关js的date的相关知识

    最近做项目,用了new Date().getTime()获取本地时间,但是如果用户篡改了手机时间,程序漏洞明显暴露.所以如果为保证程序的稳健安全性,应该是要使用网络时间的,也就是服务器时间.原理就是使 ...