深度学习
  • 前言
  • 第一章:经典网络
    • 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 提供支持
在本页
  • 前言
  • R-CNN 详解
  • 总结

这有帮助吗?

  1. 第四章:物体检测

Learning to Segment Every Thing

上一页YOLOv3: An Incremental Improvement下一页SNIPER: Efficient Multi-Scale Training

最后更新于4年前

这有帮助吗?

tags: MaskX R-CNN, Mask R-CNN

前言

首先回顾一下YOLO系列论文,通过半监督学习的方式将模型可检测的类别从80类扩展到了9418类,YOLO9000能成功的原因之一是物体分类和物体检测使用了共享的特征,而这些特征是由分类和检测的损失函数共同训练得到的。之所以采用半监督学习的方式训练YOLO9000,一个重要原因就是检测数据的昂贵性。所以作者采用了数据量较小的COCO的检测标签,数据量很大的ImageNet的分类标签做半监督学习的样本,分别训练多任务模型的检测分支和分类分支,进而得到了可以同时进行分类和检测的特征。

之所以在最开始回顾YOLO9000,是因为我们这里要分析的MaskX\mathbf{Mask}^XMaskX R-CNN 和YOLO9000的动机和设计是如此的相同:

  1. 他们都是在多任务模型中使用半监督学习来完成自己的任务,YOLO9000是用来做检测,MaskX\mathbf{Mask}^XMaskX R-CNN 是用来做语义分割;

  2. 之所以使用半监督学习,因为他们想实现一个通用的模型,所以面临了数据量不够的问题:对比检测任务,语义分割的数据集更为稀缺(COCO的80类,Pascal VOC的20类),但是Visual Genome(VG)数据集却有3000类,108077张带有bounding box的样本;

  3. 它们的框架算法都是继承自另外的框架:YOLO9000继承自YOLOv2, MaskX\mathbf{Mask}^XMaskX R-CNN 继承自。

不同于YOLO9000通过构建WordTree的数据结构来使用两个数据集,MaskX\mathbf{Mask}^XMaskX R-CNN 提出了一个叫做权值迁移函数(weight transfer function)的迁移学习方法,将物体检测的特征迁移到语义分割任务中,进而实现了对VG数据集中3000类物体的语义分割。这个权值传递函数便是MaskX\mathbf{Mask}^XMaskX R-CNN 的精华所在。

MaskX\mathbf{Mask}^XMaskX R-CNN 详解

1. 权值迁移函数:T\mathcal{T}T

MaskX\mathbf{Mask}^XMaskX R-CNN 基于Mask R-CNN(图1)。Mask R-CNN通过向中添加了一路FPN的分支来达到同时进行语义分割和目标检测的目的。在RPN之后,FPN和是完全独立的两个模块,此时若直接采用数据集C分别训练两个分支的话是行得通的,其实这也就是YOLO9000的训练方式。

图1: Mask R-CNN 流程

但是MaskX\mathbf{Mask}^XMaskX R-CNN 不会这么简单就结束的,它在检测分支(Fast R-CNN)和分割分支中间加了一条叫做权值迁移函数的线路,用于将检测的信息传到分割任务中,如图2所示。

图2: R-CNN 流程

图2的整个框架是搭建在Mask R-CNN之上的,除了最重要的权值迁移函数之外,还有几点需要强调一下:

  1. 着重强调,T\mathcal{T}T 的输入参数是权值(图2中的两个六边形),而非Feature Map;

  2. 虽然Mask R-CNN中解耦了检测和分割任务,但是权值迁移函数T\mathcal{T}T是类别无关的;

对于一个类别ccc,wdetcw_{det}^cwdetc​表示检测任务的权值,wsegcw_{seg}^cwsegc​表示分割任务的权值。权值迁移函数将wdetcw_{det}^cwdetc​看做自变量,wsegcw_{seg}^cwsegc​看做因变量,学习两个权值的映射函数T\mathcal{T}T:

Wsegc=T(wdetc;θ)W_{seg}^c = \mathcal{T}(w_{det}^c; \theta)Wsegc​=T(wdetc​;θ)

其中θ\thetaθ的是类别无关的,可学习的参数。T\mathcal{T}T 可以使用一个小型的MLP。wdetcw_{det}^cwdetc​可以使分类的权值wclscw_{cls}^cwclsc​,bounding box的预测权值wregcw_{reg}^cwregc​或是两者拼接到一起[wclsc,wregc][w_{cls}^c, w_{reg}^c][wclsc​,wregc​]。

2. MaskX\mathbf{Mask}^XMaskX R-CNN 的训练

含有掩码标签和检测标签的COCO数据集定义为AAA,只含有检测标签的VG数据集定义为BBB,则所有的数据集CCC便是AAA和BBB的并集:C=A∪BC=A\cup BC=A∪B。图2显示MaskX\mathbf{Mask}^XMaskX R-CNN的损失函数由Fast R-CNN的检测任务和RPN的分类任务组成。当训练检测任务时,使用数据集C;当训练分割任务时,仅使用包括分割标签的COCO数据集,即AAA。

训练MaskX\mathbf{Mask}^XMaskX R-CNN时,有两种类型:

  1. 多阶段训练:首先使用数据集CCC训练Faster R-CNN,得到wdetcw_{det}^cwdetc​;然后固定wdetcw_{det}^cwdetc​和卷积部分,在使用AAA训练T\mathcal{T}T和分割任务的卷积部分。在这里wdetcw_{det}^cwdetc​可以看做分割任务的特征向量。在Fast R-CNN中就指出多阶段训练的模型不如端到端训练的效果好;

  2. 端到端联合训练:理论上是可以直接在CCC上训练检测任务,在AAA上训练分割任务,但是这会使模型偏向于数据集AAA,这个问题在论文中叫做discrepency。为了解决这个问题,MaskX\mathbf{Mask}^XMaskX R-CNN在反向计算mask损失函数时停止wdetcw_{det}^cwdetc​相关的梯度更新,只更新权值迁移函数中的θ\thetaθ。

总结

截止到日前,尚无高质量的MaskX\mathbf{Mask}^XMaskX R-CNN源码公布,有很多论文中没有涉及的细节尚无处可考,等作者开源之后会继续补充该文章。

仿照YOLO9000的思路,MaskX\mathbf{Mask}^XMaskX R-CNN使用半监督学习的方式将分割类别扩大到3000类。采用WordTree将分类数据添加到Mask R-CNN中,将分割类别扩大到ImageNet中的类别应该是未来一个不错的研究方向,推测应该很快就有相关进展发表。

然后一个更精确,更快的的权值迁移函数也是一个非常有研究前景的一个方向,毕竟现在计算机视觉方向的趋势是去掉低效的全连接。

YOLO9000
Mask R-CNN
Faster R-CNN
Fast R-CNN