论文: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网络的效率,作者采用了一种低复杂度的扩张的瓶颈层.

框架

DetNet1

上图是应用于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扩展而来。

  1. 引入一个新的阶段P6,随后将用于FPN中的目标检测。同时,从第4阶段开始,固定空间分辨率为输入图像的16X降采样;
  2. 因为自第4阶段后空间尺寸被固定,为了增加一个新的阶段P6,作者引入了dilated bottleneck(如下图B)。
  3. 使用dilated bottleneck作为一个基础的网络块有效地扩大的感受野。由于dilated convolution仍然是耗时的,所以第5阶段和第6阶段保持和第4阶段一样的通道数(256 input channels for bottleneck block)。这一点也不同于传统骨干网,后者在后一个阶段会将通道数翻倍。

DetNet2

很容易将DetNet和目标检测器(无论是否应用特征金字塔结构)结合,下图是基于DetNet的FPN结构。因为DetNet只是改变了FPN的骨干网络,所以固定除骨干网以外的其它结构。而且,因为没有减少ResNet-50自第4阶段后的空间尺寸,所以只简单地沿从顶向下的方向(in top-down path way)将这些阶段的输出进行相加。

DetNet3

实验

作者使用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进行预热。

DetNet4

上面是在FPN中使用三种不同的骨干网进行测试的对比结果。相比ResNet-59,DetNet-50新增一个阶段P6,很自然地会认为DetNet-50之所以表现优于ResNet-59完全是得意于更多的参数,但和ResNet-101的对比可以看出,虽然ResNet-101的参数远多于DetNet-50,表现却弱于DetNet50,所以说并不是参数多少决定的,只能说DetNet-50在设计上更加合理。

DetNet5

为了进一步检验DetNet在目标检测上的性能,基于DetNet-59和ResNet-50的FPN从头进行训练,也就是说不使用ImageNet上的预训练参数。结果(见上表)表明DetNet-59的mAP高出ResNet-50约1.8个点,这也就进一步证明了DetNet更适合于目标检测。

Paper Reading:DetNet的更多相关文章

  1. Paper Reading: Stereo DSO

    开篇第一篇就写一个paper reading吧,用markdown+vim写东西切换中英文挺麻烦的,有些就偷懒都用英文写了. Stereo DSO: Large-Scale Direct Sparse ...

  2. [Paper Reading]--Exploiting Relevance Feedback in Knowledge Graph

    <Exploiting Relevance Feedback in Knowledge Graph> Publication: KDD 2015 Authors: Yu Su, Sheng ...

  3. 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 ...

  4. 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 ...

  5. 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 ...

  6. 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 ...

  7. 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 ...

  8. 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 ...

  9. 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 ...

随机推荐

  1. Fakes里的stub和shim的区别

    stub常用于虚拟接口.类.方法,无法重写静态方法(stub需要传递到具体调用代码中) shim常用于重写静态方法(在ShimsContext.Create()作用域内,拦截Runtime动态修改方法 ...

  2. [转帖]详解Linux系统inode原理--硬链接、软链接、innodb大小和划分等

    详解Linux系统inode原理--硬链接.软链接.innodb大小和划分等 原创 波波说运维 2019-07-17 00:03:00 https://www.toutiao.com/i6713116 ...

  3. 《Mysql 一条 SQL 语句是如何执行的?》

    一:概述 - 首先需要认识一下 Mysql 整体的基础架构 -  二:Mysql 的分层 - MySQL 可以分为 Server 层和存储引擎层两部分 - Server 层 - Server 层包括连 ...

  4. Vue基础知识学习(后端)

    ### Vue学习(后端) Vue安装 -引入文件安装,直接在官网下载vue.js引入项目中 -直接引用CDN -NPM安装(构建大型应用使用,在这不用) -命令行工具(构建大型单页应用,在这不用) ...

  5. Vue起飞前的准备

    Vue起飞前的准备 一.什么是ECMAScript,以及es6的诞生? 1997年 ECMAScript 1.0 诞生 1999年12月 ECMAScript 3.0诞生,它 是一个巨大的成功,在业界 ...

  6. docker&k8s-配置/常用命令

      kubectl delete deployment,ingress,svc demo-mml-jp-ylmopt-web-1 -n demo-mml  #删除预生产环境mml组ylmopt-web ...

  7. 机器学习-svd实现人脸识别

    加载sklearn中的人脸数据集 from sklearn.datasets import fetch_lfw_people faces = fetch_lfw_people() 执行上面的第二行程序 ...

  8. c++学习-----引用

    引用相当于给一个对象起个别名 必须初始化 引用只是与一个对象bind,所以引用无法改变 引用不是一个对象,所以没有引用的引用 引用的初始化值必须是一个对象,而不能是字面量或表达式 引用不是地址,所以引 ...

  9. MyBatis_01 框架

    Mybatis概述 Mybatis是什么 Mybatis是一个持久层框架.   Mybatis的作用 Mybatis是一个持久层框架,当然作用就是操作数据库的(增删改查).   为什么需要学习Myba ...

  10. java字节和字符的区别

    字节: 1.bit=1  二进制数据0或1 2.byte=8bit  1个字节等于8位 存储空间的基本计量单位 3.一个英文字母=1byte=8bit 1个英文字母是1个字节,也就是8位 4.一个汉字 ...