PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018
PeleeNet是DenseNet的一个变体,没有使用流行的深度可分离卷积,PeleeNet和Pelee仅通过结构上的优化取得了很不错的性能和速度,读完论文可以学到很多网络设计的小窍门。
来源:晓飞的算法工程笔记 公众号
论文: Pelee: A Real-Time Object Detection System on Mobile Devices
Introduction
基于DenseNet的稠密连接思想,论文通过一系列的结构优化,提出了用于移动设备上的网络结构PeleeNet,并且融合SSD提出目标检测网络Pelee。从实验来看,PeleeNet和Pelee在速度和精度上都是不错的选择。
PeleeNet
PeleeNet基于DenseNet思想,加入了几个关键的改进。
Two-Way Dense Layer
受GoogLeNet的启发,论文将原来的dense layer改为2-way dense layer,如图1b所示,新的路径叠加两个$3\times 3$卷积来学习获取不同的感受域特征,特别是大物体特征。
Stem Block
DenseNet使用stride=2的$7\times 7$卷积对输入进行初步处理,受Inception-v4和DSOD启发,论文设计了一个高效的stem block,结构如图2所示,两条路径能提取不同的特征。这样可以在不带来过多计算耗时的前提下,提高网络的特征表达能力。
Dynamic Number of Channels in Bottleneck Layer
在DenseNet中,使用bottleneck layer进行输入特征的压缩,但是bottleneck layer的输出固定为dense layer输出的4倍。在网络的早些层中,会存在bottleneck layer的输出比输入更多的情况,导致效率下降。为此,论文将bottleneck layer的输出大小跟输入挂钩,保证不大于输入大小,从图4可以看出,修改后计算效率提升了一倍。
Transition Layer without Compression
DenseNet在dense layer间使用transition layer进行特征维度压缩,压缩比为0.5。论文通过实验发现这个操作会减弱网络特征的表达能力,所以将transition layer的输出维度固定为输入的大小,不再压缩。
Composite Function
DenseNet使用Conv-Relu-BN的预激活方式,论文将其修改为Conv-BN-Relu的后激活方式,这样卷积层和BN层在inference时能够进行合并运算,提高计算速度。另外,论文在最后的dense layer添加了$1\times 1$卷积,用以获得更强的特征表达能力。
Architecture
PeleeNet的结构如表1所示,包含一个stem block、4个特征提取阶段以及最后的stride为2的平均池化层。论文纠结使用3个特征提取阶段还是4个特征提取阶段,3个阶段需要stem block更多地缩减特征图大小,考虑到开头过快地减小特征图会大小会减弱网络的表达能力,最终仍采用4个阶段。
Pelee
基于SSD,将PeleeNet作为主干网络并做了几个优化,提出目标检测网络Pelee,主要的优化点如下:
- Feature Map Selection,使用5个尺寸的特征图(19x19, 10x10, 5x5, 3x3, 1x1),为了减少计算消耗,没有使用38x38的特征图。
- Residual Prediction Block,在进行预测之前,使用图4的ResBlock进行特征提取,保证特征表达能力。
- Small Convolutional Kernel for Prediction,由于使用了ResBlock进行了特征的进一步提取,在预测部分可以使用$1\times 1$卷积核加速,准确率与$3\times 3$卷积差不多。
Experiment
PeleeNet
对PeleeNet的key feature进行验证。
与其它轻量级网络对比。
PeleeNet在各种设备上的实际推理速度对比。
Pelee
Pelee与其它网络的设置对比。
各改进措施的性能对比。
与其它网络的在VOC上的性能对比。
各设备上的推理速度对比。
与其它网络的在COCO上的性能对比。
CONCLUSION
PeleeNet是DenseNet的一个变体,没有使用流行的深度可分离卷积,PeleeNet和Pelee仅通过结构上的优化取得了很不错的性能和速度,读完论文可以学到很多网络设计的小窍门
如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】
PeleeNet:精修版DenseNet,速度猛增至240FPS | NeurIPS 2018的更多相关文章
- 【转载】NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩、机器学习及最优化算法
原文:NeurIPS 2018 | 腾讯AI Lab详解3大热点:模型压缩.机器学习及最优化算法 导读 AI领域顶会NeurIPS正在加拿大蒙特利尔举办.本文针对实验室关注的几个研究热点,模型压缩.自 ...
- NeurIPS 2018 中的贝叶斯研究
NeurIPS 2018 中的贝叶斯研究 WBLUE 2018年12月21日 雷锋网 AI 科技评论按:神经信息处理系统大会(NeurIPS)是人工智能领域最知名的学术会议之一,NeurIPS 2 ...
- ChannelNets: 省力又讨好的channel-wise卷积,在channel维度进行卷积滑动 | NeurIPS 2018
Channel-wise卷积在channel维度上进行滑动,巧妙地解决卷积操作中输入输出的复杂全连接特性,但又不会像分组卷积那样死板,是个很不错的想法 来源:晓飞的算法工程笔记 公众号 论文: C ...
- 蚂蚁金服“定损宝”现身AI顶级会议NeurIPS
小蚂蚁说: 长期以来,车险定损(通过现场拍摄定损照片确定车辆损失,以作为保险公司理赔的依据)是车险理赔中最为重要的操作环节.以往传统保险公司的车险处理流程,一般为报案.现场查勘.提交理赔材料.审核.最 ...
- 2018 AI产业界大盘点
2018 AI产业界大盘点 大事件盘点 “ 1.24——Facebook人工智能部门负责人Yann LeCun宣布卸任 Facebook人工智能研究部门(FAIR)的负责人Yann LeCun宣布卸 ...
- InfoQ一波文章:AdaSearch/JAX/TF_Serving/leon.bottou.org/Neural_ODE/NeurIPS_2018最佳论文
和 Nested Partition 有相通之处? 伯克利提出 AdaSearch:一种用于自适应搜索的逐步消除方法 在机器学习领域的诸多任务当中,我们通常希望能够立足预先给定的固定数据集找出问题的答 ...
- zz姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖
姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖 近日,美国艾尔弗·斯隆基金会(The Alfred P. Sloan Foundation)公布了2019年斯隆研究奖(Sloan Research ...
- (转载) AutoML 与轻量模型大列表
作者:guan-yuan 项目地址:awesome-AutoML-and-Lightweight-Models 博客地址:http://www.lib4dev.in/info/guan-yuan/aw ...
- (转)AutoML 与轻量模型大列表: awesome-AutoML-and-Lightweight-Models
Awesome-AutoML-and-Lightweight-Models 原文:http://bbs.cvmart.net/articles/414/zi-yuan-automl-yu-qing-l ...
随机推荐
- remmina 软件rdp协议链接windows失败
remmina 1.42 链接 win10 提示失败......其他版本win还没有测试过. 忘记了在那个论坛有是说加密问题,照着改确实可以.具体原因是默认设置加密方式这一项不知道为什么不起作用,手 ...
- 深入LUA脚本语言,让你彻底明白调试原理
这是道哥的第008篇原创 一.前言 上篇文章我们聊了gdb的底层调试机制,明白了gdb是利用操作系统提供的系统信号来调试目标程序的.很多朋友私下留言了,看到能帮助到大家,我心里还是很开心的,其实这也是 ...
- monkey 基本用法
monkey测试步骤: 一.使用模拟机 1.安装好虚拟机,比如说天天模拟机.夜神模拟机.雷神模拟机 2.将需要测试的APK装在虚拟机上 3.cmd>adb shell 连接模拟机 4.输入命令m ...
- WebSocket实现站内消息实时推送
关于WebSocket WebSocket是HTML5 开始提供的一种在单个TCP连接上进行全双工通讯的协议.什么是全双工?就是在同一时间可以发送和接收消息,实现双向通信,比如打电话.WebSocke ...
- 个人微信公众号搭建Python实现 -开发配置和微信服务器转入-配置说明(14.1.2)
@ 目录 1.查看基本配置 2.修改服务器配置 3.当上面都配置好,点击提交 4.配置如下 1.查看基本配置 登录到微信公众号控制面板后点击基本配置 这里要讲的就是订阅号 前往注册微信公众号 2.修改 ...
- Java基础进阶:时间类要点摘要,时间Date类实现格式化与解析源码实现详解,LocalDateTime时间类格式化与解析源码实现详解,Period,Duration获取时间间隔与源码实现,程序异常解析与处理方式
要点摘要 课堂笔记 日期相关 JDK7 日期类-Date 概述 表示一个时间点对象,这个时间点是以1970年1月1日为参考点; 作用 可以通过该类的对象,表示一个时间,并面向对象操作时间; 构造方法 ...
- (十二)、file--判断文件类型命令
一.命令描述与格式 描述:linux在查看一个文件前,要首先确定该文件中数据的类型,之后再使用适当的命令或者方法打开该文件,在linux中文件的扩展名并不代表文件的类型,也就是说扩展名与文件的类型没有 ...
- JVM 经典垃圾收集器
本文部分摘自<深入理解 Java 虚拟机第三版> 概述 如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的实践者.Java 虚拟机规范中对垃圾收集器的实现做出规定,因此不同的厂 ...
- 2.k8sPod、控制器、service
一.Pod生命周期 Pod是k8s中最小的管理单元(逻辑上存在,实际不存在),是一组容器的集合 同一个Pod中的容器共享网络和存储(通过pause容器实现),由一个统一的IP向集群内部提供服务 Pod ...
- java 多线程40个问题汇总(转)
java 多线程40个问题汇总,自己也记录一份,如有侵权,联系删除 ref from :http://www.cnblogs.com/xrq730/p/5060921.html 1.多线程作用 - 利 ...