Paper Reading:DetNet
论文:DetNet: A Backbone network for Object Detection
发表时间:2018
发表作者:(Face++)Chao Peng, Gang Yu (Tsinghua University)Zeming Li
发表刊物/会议:ECCV
论文链接:论文链接
DetNet
基于CNN的目标检测器可以分为两类:单阶段(one-stage)检测器,如YOLO、SSD、RetinaNet,以及双阶段(two-stage)检测器,典型的如Faster-RCNN、R-FCN、FPN。这两类检测器都要使用到在ImageNet上预训练的分类网络作为骨干网。这也正是被作者认为有缺陷的地方。图像分类毕竟不同于目标检测,它既不需要识别目标的语义特征,也不需要对目标进行定位。
具体说来,使用分类网络作为目标检测的骨干网有两个问题:
1). 最近提出的检测器如FPN,它为了能够检测不同尺寸的目标增加了额外的阶段。我们经常使用ResNet或VGG作为骨干网,像ResNet50它总共包含5个阶段(C1-C5),但是FPN在此基础上增加了一个阶段,而增加的这个阶段是没有经过预训练的。
2). 传统的骨干网采用更大的降采样率产生更大的感受野,这对于图像分类来说有效,即牺牲了空间分辨率,不利于精确定位大的目标和识别小的目标。具体地说:1、大物体的回归弱:在FPN等物体检测网络中,大物体是在比较深的特征图上预测(因为深的特征图对应原图的比例大,感受野大,对应的anchor的scale大),然而由于特征图越深,物体边缘的清晰度就越差(模糊),就很难准确回归; 2、小物体在小分辨率特征图上不可见:由于特征图的分辨率减少到原来的1/32,或者更小,小物体在上面是不可见的(32x32的物体在上面只有一个点),FPN等方法,使用分辨率大但是比较浅的层来解决这个问题,由于这些层的语义信息比较弱,没有充分的能力去识别物体,FPN把浅层和语意信息强的深层相加,来提升浅层的语义表达能力,但是由于小物体已经在“深层”中消失,所以他们的语义信息也会丢失。
DetNet兼顾以上两大问题,具体说来,首先为了识别不同尺寸的目标,DetNet也像FPN一样增加了额外的阶段,但即使增加了额外的阶段DetNet也保持了高分辨率。但是,高分辨显然会带来计算和内存的开销,为了不降低DetNet网络的效率,作者采用了一种低复杂度的扩张的瓶颈层.
框架
上图是应用于FPN的不同骨干网络,其中(A)为含传统骨干网的特征金字塔网络,(B)为用于图像分类的传统骨干网,(C)为DetNet提出的骨干网。这里作者受限于版面大小,没有将第一阶段(stage 1,with stride 2)展示出来。从图(C)也可以明显地看出DetNet的不同之处,首先相比(B)这一传统的分类网络,DetNet增加了一个阶段P6,FPN也同样是增加了P6,目的是为了识别更大的目标。其次作者所说的保持空间分辨率,也就是在最后三个阶段(P4,P5,P6)分辨率一直保持着16X。
DetNet的结构是在ResNet50的基础上进行改进,因为ResNet50本身性能优异,经常用来作为目标检测的骨干网。为了和ResNet50进行PK,DetNet的前4个阶段(1,2,3,4)保持了和ResNet50一致。在上文中也有所提及,要为目标检测设计一下高效且有用的骨干网络要面对两方面的挑战。首先,你要为深层网络维持高的空间分辨率,但高分辨率势必又会带来时间和内存上的巨大的成本。其次,如果减小降采样率也就相当于减小了有效的感受野,这对于图像分类和语义分割来说都是有害的。那面对这两项挑战,DetNet是如何做的呢?
通过下面这幅图来分析DetNet59的细节,它是由ResNet50扩展而来。
- 引入一个新的阶段P6,随后将用于FPN中的目标检测。同时,从第4阶段开始,固定空间分辨率为输入图像的16X降采样;
- 因为自第4阶段后空间尺寸被固定,为了增加一个新的阶段P6,作者引入了dilated bottleneck(如下图B)。
- 使用dilated bottleneck作为一个基础的网络块有效地扩大的感受野。由于dilated convolution仍然是耗时的,所以第5阶段和第6阶段保持和第4阶段一样的通道数(256 input channels for bottleneck block)。这一点也不同于传统骨干网,后者在后一个阶段会将通道数翻倍。
很容易将DetNet和目标检测器(无论是否应用特征金字塔结构)结合,下图是基于DetNet的FPN结构。因为DetNet只是改变了FPN的骨干网络,所以固定除骨干网以外的其它结构。而且,因为没有减少ResNet-50自第4阶段后的空间尺寸,所以只简单地沿从顶向下的方向(in top-down path way)将这些阶段的输出进行相加。
实验
作者使用8张Pascal TITAN XP GPU进行端到端的训练,权重衰减因子为0.0001,动量为0.9。每个mini-batch含2张图片,因为有8卡张并行训练,所有有效batch-size是16。为了避免过高的内存消耗,图象大小做了调整,短边统一为800像素,长边为1333像素。训练过程使用经典的"2x"方法,初始学习率设置为0.02,在120k和160k次迭代时乘以一下0.1的衰减因子,最终在180k次迭代后终止。此外,在最开始的500个迭代,使用学习率为0.02 x 0.3进行预热。
上面是在FPN中使用三种不同的骨干网进行测试的对比结果。相比ResNet-59,DetNet-50新增一个阶段P6,很自然地会认为DetNet-50之所以表现优于ResNet-59完全是得意于更多的参数,但和ResNet-101的对比可以看出,虽然ResNet-101的参数远多于DetNet-50,表现却弱于DetNet50,所以说并不是参数多少决定的,只能说DetNet-50在设计上更加合理。
为了进一步检验DetNet在目标检测上的性能,基于DetNet-59和ResNet-50的FPN从头进行训练,也就是说不使用ImageNet上的预训练参数。结果(见上表)表明DetNet-59的mAP高出ResNet-50约1.8个点,这也就进一步证明了DetNet更适合于目标检测。
Paper Reading:DetNet的更多相关文章
- Paper Reading: Stereo DSO
开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...
- [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph
<Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...
- Paper Reading: Perceptual Generative Adversarial Networks for Small Object Detection
Perceptual Generative Adversarial Networks for Small Object Detection 2017-07-11 19:47:46 CVPR 20 ...
- Paper Reading: In Defense of the Triplet Loss for Person Re-Identification
In Defense of the Triplet Loss for Person Re-Identification 2017-07-02 14:04:20 This blog comes ...
- Paper Reading - Attention Is All You Need ( NIPS 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1706.03762 Motivation: The inherently sequential nature of ...
- Paper Reading - Convolutional Sequence to Sequence Learning ( CoRR 2017 ) ★
Link of the Paper: https://arxiv.org/abs/1705.03122 Motivation: Compared to recurrent layers, convol ...
- Paper Reading - Deep Captioning with Multimodal Recurrent Neural Networks ( m-RNN ) ( ICLR 2015 ) ★
Link of the Paper: https://arxiv.org/pdf/1412.6632.pdf Main Points: The authors propose a multimodal ...
- Paper Reading - Deep Visual-Semantic Alignments for Generating Image Descriptions ( CVPR 2015 )
Link of the Paper: https://arxiv.org/abs/1412.2306 Main Points: An Alignment Model: Convolutional Ne ...
- Paper Reading - Mind’s Eye: A Recurrent Visual Representation for Image Caption Generation ( CVPR 2015 )
Link of the Paper: https://ieeexplore.ieee.org/document/7298856/ A Correlative Paper: Learning a Rec ...
随机推荐
- Fakes里的stub和shim的区别
stub常用于虚拟接口.类.方法,无法重写静态方法(stub需要传递到具体调用代码中) shim常用于重写静态方法(在ShimsContext.Create()作用域内,拦截Runtime动态修改方法 ...
- [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等
详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...
- 《Mysql 一条 SQL 语句是如何执行的?》
一:概述 - 首先需要认识一下 Mysql 整体的基础架构 - 二:Mysql 的分层 - MySQL 可以分为 Server 层和存储引擎层两部分 - Server 层 - Server 层包括连 ...
- Vue基础知识学习(后端)
### Vue学习(后端) Vue安装 -引入文件安装,直接在官网下载vue.js引入项目中 -直接引用CDN -NPM安装(构建大型应用使用,在这不用) -命令行工具(构建大型单页应用,在这不用) ...
- Vue起飞前的准备
Vue起飞前的准备 一.什么是ECMAScript,以及es6的诞生? 1997年 ECMAScript 1.0 诞生 1999年12月 ECMAScript 3.0诞生,它 是一个巨大的成功,在业界 ...
- docker&k8s-配置/常用命令
kubectl delete deployment,ingress,svc demo-mml-jp-ylmopt-web-1 -n demo-mml #删除预生产环境mml组ylmopt-web ...
- 机器学习-svd实现人脸识别
加载sklearn中的人脸数据集 from sklearn.datasets import fetch_lfw_people faces = fetch_lfw_people() 执行上面的第二行程序 ...
- c++学习-----引用
引用相当于给一个对象起个别名 必须初始化 引用只是与一个对象bind,所以引用无法改变 引用不是一个对象,所以没有引用的引用 引用的初始化值必须是一个对象,而不能是字面量或表达式 引用不是地址,所以引 ...
- MyBatis_01 框架
Mybatis概述 Mybatis是什么 Mybatis是一个持久层框架. Mybatis的作用 Mybatis是一个持久层框架,当然作用就是操作数据库的(增删改查). 为什么需要学习Myba ...
- java字节和字符的区别
字节: 1.bit=1 二进制数据0或1 2.byte=8bit 1个字节等于8位 存储空间的基本计量单位 3.一个英文字母=1byte=8bit 1个英文字母是1个字节,也就是8位 4.一个汉字 ...