论文提出Light-Head R-CNN,一个精简的two-stage目标检测器设计准则,在表达能力很强的精简特征图上使用轻量级的R-CNN子网,不仅大量减少推理耗时,还提高了准确率,结合Xception-like的主干网络能够达到30.7mAP和102FPS



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

论文: Light-Head R-CNN: In Defense of Two-Stage Object Detector

Introduction


  目前的two-stage目标检测算法都有相似的特性,一个复杂的head连接着主干网络,而Faster R-CNN的全连接层和R-FCN的score map都是相当耗时的。因此,论文提出基于light-head的思路来设计快速且准确的two-stage detector,核心思想是通过large-kernel separable convolkution来产生特征表达能力很强的精简特征图,特征图的大小为\(\alpha\times p\times p\),\(\alpha\le 10\),同时精简RoI-wise的子网,从而大幅减少模型计算量

  由于light-head的结构,Light-Head R-CNN能够轻松的达到准确率和速度的最佳平衡,在大小型主干网络上都有很好的准确率和速度表现

Our Approach


Light-Head R-CNN

  Head主要指接在主干网络后面的结构,优化主要包含两个部分,分别针对R-CNN子网和RoI warping

  • R-CNN subnet

  Faster R-CNN使用两个大型卷积进行子网的RoI-wise的特征提取,虽然有利于分类,但由于前面的特征维度很大,导致计算量巨大。为了加速子网,R-FCN则先产生region-based的的score maps,channels为\(\#classes\times p\times p\),然后直接进行pool和average vote得到结果,虽然子网速度很快,但score map的产生相对耗时和耗内存,而且缺乏RoI-wise的特征提取,准确率可能不够

  基于上述问题,Light-Head R-CNN使用简单且廉价的全卷积层作为R-CNN子网,能很好的达到性能和准确率的平衡,如图2c所示。全连接层的耗时也RoI输出特征图数量有关,所以还要进行相关优化

  • Thin feature maps for RoI warping

  RoI warping的作用是使输入R-CNN子网的特征图大小固定,这里采用较小channel的精简特征图(thin feature maps)作为RoI warping前的输入。通过实验,在精简特征图上进行RoI warping不仅能提高准确率,还能节省内存和计算时间。如果使用PSRoI pooling,配合精简特征图能够增加额外的计算来加强R-CNN以及减少channel数。如果使用RoI pooling,配合精简特征图能够减少R-CNN的开销并丢弃Global Average Pooling来提升准确率

Light-Head R-CNN for Object Detection

  基于以上的讨论,Light-Head R-CNN在通用物体检测上的实现如图2C所示,后面的讨论会有两种设定,设置L为大主干网络,设置S为小主干网络

  • Basic feature extractor

  对于设置L,使用ResNet-101作为基础模型,对于设置S,则使用类似Xception的小网络。图2的"Conv layers"代表基础网络,conv4和conv5的卷积block标记为\(C_4\)和\(C_5\)

  • Thin feature maps

  论文在\(C_5\)上使用类似Inception和GCN的大型分解卷积,对于设置L和设置S,\(C_{mid}\)分别为256和64,而\(k\)和\(C_{out}\)则统一为15和\(10\times p\times p\),这样的特征提取能极大地提高感受域,从而提取更强大的特征图

  • R-CNN subnet

  子网只采用2048维的全连接层,后面再同时接两个全连接层来预测RoI的类别和位置回归,位置的回归只采用4维,而非\(\#classes\times 4\)维。由于精简特征图的强大表达能力,这样简单的子网也能达到很高的准确率

  • RPN(Region Proposal Network)

  RPN是用于\(C_4\)上的滑动类不可知的目标检测器,anchor的尺寸和长宽比分别维\(\{1:2,1:1,2:1\}\)和\(\{32^2,64^2,128^2,256^2,512^2\}\),使用IoU=0.7的NMS来去除重叠的bbox

Experiments


  论文实验比较多,这里只列举了部分比较重要的实验

Ablation Experiments

  • Thin feature maps for RoI warping

  为了验证精简特征图的作用,设计了图4的类似R-FCN的网络,通过1x1卷积将特征图channel数从3969降低到490,然后子网改为全连接进行分类和定位回归

  B1为原R-FCN,B2为增大输入和anchor数的R-FCN。尽管大幅降低了channel数,网络的性能只有小幅度的降低

  基于R-FCN,在使用大型分离卷积来增强特征图后,性能得到了提升,说明是相当有用的

  • R-CNN subnet

  表格里的Faster R-CNN为同样加大输入和anchor数的版本,可以看到,使用light-head能够进一步提升准确率

Light-Head R-CNN: High Accuracy

Light-Head R-CNN: High Speed

CONCLUSION


  论文在研究了当前的two-stage网络存在的速度问题后,针对性地提出Light Head R-CNN,一个精简的two-stage目标检测器设计准则,在表达能力很强的精简特征图上使用轻量级的R-CNN子网,不仅大量减少推理耗时,还提高了准确率,结合Xception-like的主干网络能够达到30.7mAP和102FPS

参考内容





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

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

Light-Head R-CNN : 旷世提出用于加速two-stage detector的通用结构,速度达102fps的更多相关文章

  1. 旷世提出类别正则化的域自适应目标检测模型,缓解场景多样的痛点 | CVPR 2020

    论文基于DA Faster R-CNN系列提出类别正则化框架,充分利用多标签分类的弱定位能力以及图片级预测和实例级预测的类一致性,从实验结果来看,类该方法能够很好地提升DA Faster R-CNN系 ...

  2. QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加速高分辨率小目标检测的级联稀疏查询)

    QueryDet: Cascaded Sparse Query for Accelerating High-Resolution Small Object Detection(QueryDet:用于加 ...

  3. CNN结构:可用于时序预测复合的DNN结构-AcGANs、误差编码网络 ENN

    前言:模式识别问题 模式函数是一个从问题定义域到模式值域的一个单射. 从简单的贝叶斯方法,到只能支持二分类的原始支持向量机,到十几个类的分类上最好用的随机森林方法,到可以支持ImageNet上海量18 ...

  4. 解析opencv中Box Filter的实现并提出进一步加速的方案(源码共享)。

    说明:本文所有算法的涉及到的优化均指在PC上进行的,对于其他构架是否合适未知,请自行试验. Box Filter,最经典的一种领域操作,在无数的场合中都有着广泛的应用,作为一个很基础的函数,其性能的好 ...

  5. [CLPR] 用于加速训练神经网络的二阶方法

    本文翻译自: http://www.codeproject.com/Articles/16650/Neural-Network-for-Recognition-of-Handwritten-Digi ...

  6. ShuffleNet系列学习笔记

    ShuffleNet是旷世提出的高效轻量化网络,是一款很值得一提的轻量化网络,其相关论文也是很有价值的. ShuffleNet V1 该网络提出于2017年,论文为<ShuffleNet: An ...

  7. Linux 守护进程创建

    1. 守护进程: 是Linux中的后台服务进程.它是一个生存期较长的进程,通常独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.守护进程常常在系统启动时开始运行,在系统关闭时终止 2. ...

  8. 告别DNS劫持,一文读懂DoH

    如果评选一个差评服务器榜单,除去育碧高居榜首外,一定也少不了 Nintendo Switch 让人头秃的联网服务.尽管任天堂已经架设了香港 CDN 服务器用于加速,但是更新安装的速度也没有什么大幅改变 ...

  9. 对DiscuzQ的一些使用见解

    之前因为体验了DiscuzQ,在几番纠结后,把博客换成了DiscuzQ(以下简称DZQ). 在一个月的使用中,发现这个程序对于个人来说,十分不友好. 于是今天又换回了Wordpress. 在这里说一下 ...

  10. [人脸活体检测] 论文:Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection

    Aurora Guard- Real-Time Face Anti-Spoofing via Light Reflection 论文简介 该论文提出的方法已经部署到百万台终端,整篇文章底气十足.作者设 ...

随机推荐

  1. bootstrap响应式网页布局

    bootstrap可以说是没有布局和审美概念的后端狗的福利.使用它的栅格系统可以轻松的对网页进行布局,而且可以做到响应式的布局.看起来很酷,接下来我就会总结自己在开发博客系统中用到的知识点及实战案例给 ...

  2. ysoserial URLDNS利用链分析

    在分析URLDNS之前,必须了解JAVA序列化和反序列化的基本概念.其中几个重要的概念: 需要让某个对象支持序列化机制,就必须让其类是可序列化,为了让某类可序列化的,该类就必须实现如下两个接口之一: ...

  3. 我的小程序之旅七:微信公众号设置IP白名单

    一.为什么要配置IP白名单 此处IP为服务器对公网IP: 在IP白名单内的IP地址作为来源,获取access_token接口才可调用成功. 而想要调用公众号相关API,就必须获取access_toke ...

  4. nmap top N端口获取

    使用nmap 扫描时可能会扫描tcp top100 top1000 端口, 有时需要去配置文件提取,配置文件路径/usr/share/nmap/nmap-services, 具体根据实际安装情况调整: ...

  5. core-js/modules/es7.arrat......................报错

    拉入代码之后出现如图提示,导致原因是因为core-js版本太高,可以用cnpm install core-js@2成功解决,安装一个项目前最后将node-moudel删除,重新安装

  6. [Node] nvm 安装 node 和 npm

    Node JS 安装 安装 node version manager (nvm) Windows: https://github.com/coreybutler/nvm-windows/release ...

  7. 【Azure 服务总线】如何批量删除Azure Service Bus中的Topics(数量较多,需要过滤后批量删除)

    问题描述 Azure Service Bus 的门户操作页面上,是否可以批量删除其中的Topics呢? 问题解答 Azure Service Bus门户或Service Bus Explorer工具没 ...

  8. 【Azure Redis 缓存】Redisson 连接 Azure Redis出现间歇性 java.net.UnknownHostException 异常

    问题描述 在Java项目中,使用Redisson作为连接Redis的客户端,间歇性的出现了DNS Monitor throwable 错误. DNSMonitor throwable="ja ...

  9. EFCore之命令行工具

    介绍 EFCore工具可帮助完成设计数据库时候的开发任务,主要用于通过对数据库架构进行反向工程来管理迁移和搭建DbContext和实体类型.EFCore .NET命令行工具是对跨平台.NET Core ...

  10. 十: SQL执行流程

    SQL执行流程 1. MySQL 中的 SQL执行流程 MySQL的查询流程: 1.1 查询缓存 Server 如果在查询缓存中发现了这条 SQL 语句,就会直接将结果返回给客户端:如果没 有,就进入 ...