深度学习
  • 前言
  • 第一章:经典网络
    • ImageNet Classification with Deep Convolutional Neural Network
    • Very Deep Convolutional Networks for Large-Scale Image Recognition
    • Going Deeper with Convolutions
    • Deep Residual Learning for Image Recognition
    • PolyNet: A Pursuit of Structural Diversity in Very Deep Networks
    • Squeeze-and-Excitation Networks
    • Densely Connected Convolutional Networks
    • SQUEEZENET: ALEXNET-LEVEL ACCURACY WITH 50X FEWER PARAMETERS AND <0.5MB MODEL SIZE
    • MobileNet v1 and MobileNet v2
    • Xception: Deep Learning with Depthwise Separable Convolutions
    • Aggregated Residual Transformations for Deep Neural Networks
    • ShuffleNet v1 and ShuffleNet v2
    • CondenseNet: An Efficient DenseNet using Learned Group Convolution
    • Neural Architecture Search with Reinforecement Learning
    • Learning Transferable Architectures for Scalable Image Recognition
    • Progressive Neural Architecture Search
    • Regularized Evolution for Image Classifier Architecture Search
    • 实例解析:12306验证码破解
  • 第二章:自然语言处理
    • Recurrent Neural Network based Language Model
    • Learning Phrase Representations using RNN Encoder-Decoder for Statistical Machine Translation
    • Neural Machine Translation by Jointly Learning to Align and Translate
    • Hierarchical Attention Networks for Document Classification
    • Connectionist Temporal Classification : Labelling Unsegmented Sequence Data with Recurrent Neural Ne
    • About Long Short Term Memory
    • Attention Is All you Need
    • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
  • 第三章:语音识别
    • Speech Recognition with Deep Recurrent Neural Network
  • 第四章:物体检测
    • Rich feature hierarchies for accurate object detection and semantic segmentation
    • Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition
    • Fast R-CNN
    • Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
    • R-FCN: Object Detection via Region-based Fully Convolutuional Networks
    • Mask R-CNN
    • You Only Look Once: Unified, Real-Time Object Detection
    • SSD: Single Shot MultiBox Detector
    • YOLO9000: Better, Faster, Stronger
    • Focal Loss for Dense Object Detection
    • YOLOv3: An Incremental Improvement
    • Learning to Segment Every Thing
    • SNIPER: Efficient Multi-Scale Training
  • 第五章:光学字符识别
    • 场景文字检测
      • DeepText: A Unified Framework for Text Proposal Generation and Text Detection in Natural Images
      • Detecting Text in Natural Image with Connectionist Text Proposal Network
      • Scene Text Detection via Holistic, Multi-Channel Prediction
      • Arbitrary-Oriented Scene Text Detection via Rotation Proposals
      • PixelLink: Detecting Scene Text via Instance Segmentation
    • 文字识别
      • Spatial Transform Networks
      • Robust Scene Text Recognition with Automatic Rectification
      • Bidirectional Scene Text Recognition with a Single Decoder
      • multi-task learning for text recognition with joint CTC-attention
    • 端到端文字检测与识别
      • Reading Text in the Wild with Convolutional Neural Networks
      • Deep TextSpotter: An End-to-End Trainable Scene Text Localization and Recognition Framework
    • 实例解析:字符验证码破解
    • 二维信息识别
      • 基于Seq2Seq的公式识别引擎
      • Show and Tell: A Neural Image Caption Generator
      • Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
  • 第六章:语义分割
    • U-Net: Convolutional Networks for Biomedical Image Segmentation
  • 第七章:人脸识别
    • 人脸检测
      • DenseBox: Unifying Landmark Localization with End to End Object Detection
      • UnitBox: An Advanced Object Detection Network
  • 第八章:网络优化
    • Batch Normalization
    • Layer Normalization
    • Weight Normalization
    • Instance Normalization
    • Group Normalization
    • Switchable Normalization
  • 第九章:生成对抗网络
    • Generative Adversarial Nets
  • 其它应用
    • Holistically-Nested Edge Detection
    • Image Style Transfer Using Convolutional Nerual Networks
    • Background Matting: The World is Your Green Screen
  • Tags
  • References
由 GitBook 提供支持
在本页
  • 简介:
  • 1. 动机
  • 2. R-FCN详解
  • 2.1 骨干架构(backbone architecture)
  • 2.2 位置敏感网络
  • 2.3 R-FCN的训练
  • 2.4 R-FCN结果可视化

这有帮助吗?

  1. 第四章:物体检测

R-FCN: Object Detection via Region-based Fully Convolutuional Networks

简介:

位移不变性是卷积网络一个重要的特征,该特征使得卷积网格在图像分类任务上取得了非常好的效果,所谓唯一不变性,是指图片中物体的位置对图片的分类没有影响。但是在物体检测的场景中,我们需要知道检测物体的具体位置,这时候我们需要网络对物体的位置非常敏感,即我们需要网络具有“位移可变性”。R-FCN 的提出便是解决分类任务中位移不变性和检测任务中位移可变性直接的矛盾的。

同时,作者分析了Faster R-CNN 存在的性能瓶颈,即ROI之后使用Fast R-CNN 对RPN提取的候选区域进行分类和位置精校。在R-FCN中,ROI之后便不存在可学习的参数,从而将Faster-RCNN的速度提高了2.5-20倍。

1. 动机

在R-CNN系列论文中,物体检测一般分成两步:

  1. 提取候选区域;

  2. 候选区域分类和位置精校。

在R-FCN之前,state-of-the-art的Faster-RCNN使用RPN网络进行候选区域(Proposal Region)选择,然后再使用Fast R-CNN进行分类。在Faster R-CNN中,首先使用ROI层将不同大小的候选区域归一化到统一大小,之后接若干个全连接层,最后使用一个多任务作为损失函数。多任务包含两个子任务:

  1. softmax的分类任务;

  2. 用于位置精校的回归任务

Faster R-CNN之所以这样做主要是因为其使用了VGG 作为特征提取器。在第一章中,我们了解到VGG之后的GoogLeNet 和ResNet 均是使用了全卷积的结构,即使用1×11\times11×1卷积代替全连接。1×11\times11×1卷积具备全连接层增加非线性性的作用,同时还保证了特征点的位置敏感性。可见在物体检测任务中引入1×11\times11×1卷积会非常有帮助的。

在Faster R-CNN中,为了保证特征的“位移敏感性”,作者根据RPN提取了约2000个候选区域,然后使用全连接层计算损失函数,然而候选区域有大量的特征冗余,造成了一部分计算资源的浪费。

R-FCN采用了和Faster R-CNN相同的过程,在R-FCN中做了如下改进

  1. 模仿FCN,R-FCN采用了全卷积的结构;

  2. R-FCN的两个阶段的网络参数全部共享;

  3. 使用位置敏感网络产生检测框;

  4. 位置敏感网络无任何可学习的参数。

R-FCN的结构如图1

图1:R-FCN核心思想

在图1中,CCC表示物体检测中物体的类别数目。在R-FCN中,一个ROI会被分成k×kk\times kk×k个bin。下面我们来详细解析R-FCN。

2. R-FCN详解

图2:R-FCN流程图x=yx = yx=y

2.1 骨干架构(backbone architecture)

R-FCN使用的是残差网络的ResNet-101[6]结构,ResNet-101采用的是100层卷积+Global Averaging Pooling(GAP)+fc分类器的结构,ResNet101卷积的最后一层的Feature Map的个数是2048。在R-FCN中,去掉了ResNet的GAP层和fc层,并在最后一个卷积层之后使用1024个1×1×20481\times1\times20481×1×2048卷积降维到1024-d,然后再使用k2×(C+1)k^2\times(C+1)k2×(C+1)个1×1×1024−d1\times1\times1024-d1×1×1024−d的卷积生成k2×(C+1)−dk^2\times(C+1)-dk2×(C+1)−d的位置敏感卷积层。其中ResNet部分使用在ImageNet上训练好的模型作为初始化参数。

2.2 位置敏感网络

图1和图2中ResNet之后接的便是位置敏感网络。该层的大小和ResNet-101最后一层的大小相同,维度是k2×(C+1)k^2\times(C+1)k2×(C+1)。C+1C+1C+1为类别数,表示CCC类物体加上1类背景。k是一个超参数,表示把ROI划分grid的单位,一般情况下,k=3k=3k=3。在R-FCN中,一个ROI区域会被等比例划分成一个k×kk\times kk×k的grid,每个位置为一个bin,分别表示该grid对应的物体的敏感位置(左上,正上,右上,正左,正中,正右,左下,正下,右下)编码(图3)。

图3:图解位置敏感ROI Pooling过程(k=3)

对于一个尺寸为w×hw\times hw×h的ROI区域,每个bin的大小约为wk×hk\frac{w}{k} \times \frac{h}{k}kw​×kh​。在第(i,j)th(i,j)^{th}(i,j)th bin中(0<=i,j<k)(0<=i,j<k)(0<=i,j<k)中,定义了一个只作用于该bin的位置敏感ROI池化(position-sensitive ROI pooling),即求位置敏感分值图(position-sensitive score mpas)中每个bin的均值

rc(i,j∣θ)=1n∑(x,y)∈bin(i,j)zi,j,c(x+x0,y+y0∣θ)r_c(i,j|\theta) = \frac{1}{n} \sum_{(x,y)\in bin(i,j)} z_{i,j,c}(x+x_0, y+y_0 | \theta)rc​(i,j∣θ)=n1​(x,y)∈bin(i,j)∑​zi,j,c​(x+x0​,y+y0​∣θ)

在上式中,θ\thetaθ表示整个网络所有需要学习的参数,rc(i,j∣θ)r_c(i,j|\theta)rc​(i,j∣θ)表示第ccc类物体在第(i,j)(i,j)(i,j)个bin处的响应值,zi,j,c(x+x0,y+y0∣θ)z_{i,j,c}(x+x_0, y+y_0 | \theta)zi,j,c​(x+x0​,y+y0​∣θ)表示在位置敏感分值图中每个bin对应的横跨特征图中⌊iwk⌋≤x<⌈(i+1)wk⌉\lfloor i\frac{w}{k}\rfloor \leq x < \lceil (i+1)\frac{w}{k}\rceil⌊ikw​⌋≤x<⌈(i+1)kw​⌉和⌊ihk⌋≤y<⌈(i+1)hk⌉\lfloor i\frac{h}{k}\rfloor \leq y < \lceil (i+1)\frac{h}{k}\rceil⌊ikh​⌋≤y<⌈(i+1)kh​⌉的部分特征值。

如图3所示,一个维度为w×h×[k2×(C+1)]w\times h\times[k^2\times(C+1)]w×h×[k2×(C+1)]的ROI区域可以展开成k2k^2k2个w×h×(C+1)w\times h\times(C+1)w×h×(C+1)个ROI区域,每个ROI区域的第(i,j)(i,j)(i,j)个grid对应物体的一个不同的敏感位置,这样我们可以提取k2k^2k2个维度为wk×hk×(C+1)\frac{w}{k}\times \frac{h}{k} \times (C+1)kw​×kh​×(C+1)的分值图,每个分值图求均值之后再整合到一起便得到了一个k2×(C+1)k^2\times(C+1)k2×(C+1)的位置敏感分值。对该位置敏感分值的k2k^2k2个区域求均值得到一个1×1×(C+1)1\times1\times(C+1)1×1×(C+1)的向量,使用softmax函数(注意不是softmax分类器)便可以得到每个类别的概率值。至此,R-FCN的分类任务介绍完毕。

现在开始介绍分类任务,在ResNet101之后,使用4个1×1×10241\times1\times10241×1×1024卷积得到一个维度维4的卷积。该卷积层对应的ROI区域根据物体的位置分成k2k^2k2个bin,这样便得到了一个4×k24\times k^24×k2的特征向量,物体的位置信息(x,y,w,h)(x,y,w,h)(x,y,w,h)通过平均或者投票的方式可以得到。注意R-FCN得到的位置信息和物体的类别没有关系,这一点和Faster R-CNN是不同的。

2.3 R-FCN的训练

R-FCN也是采用了分类和回归的多任务损失函数:

L(s,tx,y,w,h)=Lcls+λ[c∗>0]Lreg(t,t∗)L(s,t_{x,y,w,h}) = L_{cls} + \lambda[c^*>0]L_{reg}(t,t*)L(s,tx,y,w,h​)=Lcls​+λ[c∗>0]Lreg​(t,t∗)

其中c∗c^*c∗表示分类得到的ROI区域的类别;[c∗>0][c^*>0][c∗>0]表示如果括号内的判断满足,结果为1,否则结构为1;λ\lambdaλ为多任务的比重,是一个需要根据模型的收敛效果调整的超参数;LclsL_{cls}Lcls​为softmax分类损失函数,LregL_{reg}Lreg​为bounding box回归损失函数。

2.4 R-FCN结果可视化

图4中的可视化展示了R-FCN的bin的工作原理,如果ROI区域能够比较精确的框柱物体的位置(图4.a),那么每个bin对应的Feature Map都应该能得到非常高的响应;如果ROI区域(图4.b)的定位的不是非常准确,那么部分bin的响应就不是非常明显,那么通过投票或者求均值的方法就能筛选出更精确的检测框。

图4:R-FCN可视化

上一页Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks下一页Mask R-CNN

最后更新于4年前

这有帮助吗?

R-FCN采用了和Faster R-CNN相同的框架(图2),关于Faster R-CNN的解释,可以参考论文或者我的。

(a)

(b)

解析