论文: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. 【C#设计模式1】单例模式

    一.引言 最近在设计模式的一些内容,主要的参考书籍是<Head First 设计模式>,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了 ...

  2. charles 偏好设置

    本文参考:charles 偏好设置 charles 偏好设置  偏好设置,注意作用如下 用户界面 视图 启动设置 警告设置 视图选项 头和主体一起查看 请求和响应页查看 结构试图布局 序列试图布局 显 ...

  3. sql语句中,取得schema中的所有表信息及表的定义结构

    postgressql下'検索スキーマの中で.全てテーブルselect tablename from pg_tables where schemaname='test' mysql下'検索スキーマの中 ...

  4. @Value注入static属性

    1. 给参数注入,执行set方法 public class SendMessageCenter {     private static String message;    private stat ...

  5. [学习笔记] Blender 常用工具栏,选择及游标

    Shift + A 创建物体 选择工具: 默认是框选 shift 鼠标左键 加选, 再次可减选 游标 默认情况下游标在世界中心.创建新物体时,会自动被创建在游标的位置.可以随意改变游标的位置,便于建模 ...

  6. LeNet-5 pytorch+torchvision+visdom

    # ====================LeNet-5_main.py=============== # pytorch+torchvision+visdom # -*- coding: utf- ...

  7. redis 实现登陆次数限制

    title: redis-login-limitation 利用 redis 实现登陆次数限制, 注解 + aop, 核心代码很简单. 基本思路 比如希望达到的要求是这样: 在 1min 内登陆异常次 ...

  8. Linux下的静态库与动态库的生成与调用

    静态库与动态库 静态函数库 这类库的名字一般是libxxx.a,xxx为库的名字.利用静态函数库编译成的文件比较大,因为整个函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行 ...

  9. python-pillow图像处理模块

    from PIL import ImageColor ImageColor.getcolor('red','RGB') #颜色 模式 ImageColor.getcolor('red','RGBA') ...

  10. Abandoning Roads CodeForces - 1149D (最小生成树)

    大意: 给定无向图, 边权只有两种, 对于每个点$x$, 输出所有最小生成树中, 点$1$到$x$的最短距离. 先将边权为$a$的边合并, 考虑添加边权为$b$的边. 每条路径只能经过每个连通块一次, ...