2017-02-27-深度学习论文笔记:R-FCN

Abstract

  • 提出了一个region-based, fully convolutional的网络来准确高效的进行物体检测。
  • 不同于Faster R-CNN,本论文的region-based detector是完全卷积化的,几乎一张图像上所有的计算都是共享的。
  • 为了实现这一目标,我们提出position-sensitive score maps,以解决在图像分类的平移不变性(translation-invariance)和物体检测中的平移可变性(translation-variance)之间的困境。

Introduction

  • 最近流行的用于目标检测的深度学习框架依据RoI层的不同可以分为两大subnetworks:
    • 一类是共享的、fully convolutional的subnetwork。
    • 另一类是RoI-wise的subnetwork,不共享计算。
  • 在图像分类网络中,一个convolutional subnetwork会以一个sptial pooling layer更随着几个fully-connected layer最为结尾,所以图像分类中的sptial pooling layer自然转化为目标检测中的RoI pooling layer。
  • ResNet和GoogleLeNets都被设计成fully convolutional的。
  • 在ResNet论文中,Faster R-CNN中的RoI pooling layer被不自然的插入到两个卷积层集之间,带来了准确率的提升,但是速度由于unshared per-RoI计算降低。
  • 假设图像分类网络中更深层的卷积层对translation不敏感。
  • 为了将translation variance结合到FCN中,我们通过使用一组专用卷积层作为FCN输出来构造一组位置敏感得分图(position-sensitive score maps)。每一个得分图将相对于相对空间位置(例如,“在对象的左边”)的位置信息进行编码。在这个FCN之上,我们附加一个位置敏感的RoI池层(position-sensitive RoI pooling layer),从这些得分图中获取信息,没有跟随的重量(卷积/ fc)层。

Our approach

  • 本论文的方法参考与R-CNN,也是使用two-stage的目标检测策略。

    • region proposal
    • region classification
  • 虽然不依赖于region proposal的目标检测方法确实存在,但是region-based system依旧在几个基准上保持领先的准确性。

  • Overall architecture of R-FCN:

    2017-02-27-深度学习论文笔记:R-FCN_第1张图片

    用RPN来提出candidate RoIs,然后这些RoIs被应用到score maps,在RPN和R-FCN之间共享特征。

    最后卷积层为每个类别产生一组 k2 个position-sensitive score maps,因此具有带有C个对象类别(背景为+1)的 k2(C+1) 通道的输出层。

    每一个category有一个 k2 的score map

  • RPN以一个position-sensitive RoI pooling layer结束,该层聚合最后卷积层的输出并产生每个RoI的分数。我们的position-sensitive RoI pooling layer进行选择性合并,each of the k × k bin aggregates responses from only one score map out of the bank of k × k score maps。利用端到端训练,这个RoI层管理最后的卷积层以学习专门的position-sensitive score maps。

    2017-02-27-深度学习论文笔记:R-FCN_第2张图片

Backbone architecture

  • 本论文R-FCN基于ResNet-101。
  • ResNet-101具有100个卷积层,后面是global average pooling和一个1000-class的fc层。我们移去了average pooling layer and the fc layer,仅使用convolutional layer来计算feature maps。
  • 我们使用ResNet-101,在ImageNet上进行预训练,ResNet-101中的最后一个卷积块是2048-d,并且我们附加随机初始化的1024-d 1×1卷积层以减小尺寸。然后,我们应用 k2(C+1) 通道卷积层来生成分数图,如下所述。

Position-sensitive score maps & Position-sensitive RoI pooling.

  • 为了将位置信息显式编码到每个RoI中,我们将RoI矩形划分为k x k个bins。
  • 构造最后的卷积层为每个类别产生的 k2 个分数图。
  • 利用average pooling。
  • bounding boxes regression。

Training

  • OHEM: online hard example mining

  • loss function:

  • 在前向传播中:每张图片N个proposals。我们计算所有N个proposal的loss,排序,选择最高的B个RoIs。然后在选中的proposal上进行反向传播。

  • decay:0.0005

  • momentum:0.9

  • single-scale training。

  • B=128

  • lr = 0.001 ~20k, 0.0001 ~ 10k

  • 同Faster R-CNN一趟,使用4步alternating training,在训练RPN和训练R-FCN之间。

Inference

  • 为公平期间,在300个RoIs上进行评估,结果之后用NMS进行处理,IoU阈值0.3

À trous and stride

  • 将ResNet-10的有效stride从32减为16像素,提高了score map的分辨率。
  • Algorithme à trous

你可能感兴趣的:(论文笔记,目标检测,深度学习)