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 ...
随机推荐
- Maven笔记之核心概念及常用命令
Maven的核心概念 Maven是一款服务于java平台的自动化构建工具. 自动化构建工具还有:make->ant->maven->gradle 1.约定的目录 2.P ...
- JVM虚拟机(三):Java内存区域
运行时数据区 Java虚拟机再执行Java程序过程中会把它所管理的内存划分为若干个不同分工的数据区域. 程序计数器 程序计数器时一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示 ...
- synchronized实现原理及ReentrantLock源码
synchronized synchronized的作用范围 public class SynchronizedTest { // 实例方法,方法访问标志ACC_SYNCHRONIZED,锁对象是对象 ...
- 细品 Spring Boot+Thymeleaf,还有这么多好玩的细节!
@ 目录 1. Thymeleaf 简介 2. 整合 Spring Boot 2.1 基本用法 2.2 手动渲染 3. Thymeleaf 细节 3.1 标准表达式语法 3.1.1 简单表达式 3.1 ...
- Java源码赏析(六)Class<T> 类
目的 Class 类是每一个程序员都必须了解的,也是使用反射机制的基础. 这篇文章将Class 类的公共方法大致介绍了一遍(省略了安全.枚举.断言.注解相关代码). 代码 package java.l ...
- kali 2020安装docker
环境准备 kali虚拟机2020.01x64位版本 安装docker官方文档:https://docs.docker.com/engine/installation/linux/docker-ce/d ...
- Python实现多个pdf文件合并
背景 由于工作原因,经常需要将多个pdf文件合并后打印,有时候上网找免费合并工具比较麻烦(公司内网不能访问公网),于是决定搞个小工具. 具体实现 需要安装 PyPDF2 pip install PyP ...
- Winform 去掉 最大化 最小化 关闭按钮(不是关闭按钮变灰)终极解决办法
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 2.k8sPod、控制器、service
一.Pod生命周期 Pod是k8s中最小的管理单元(逻辑上存在,实际不存在),是一组容器的集合 同一个Pod中的容器共享网络和存储(通过pause容器实现),由一个统一的IP向集群内部提供服务 Pod ...
- Azure Terraform(一)入门简介
一,引言 众所周知,当企业将项目整体架构资源迁移到云上,云基础设施架构师就要根据现有项目搭建整体项目的基础设施资源的架构,然后我们的云运维工程师就要根据设计好基础设施的架构图来创建云上资源,但是在构筑 ...