深度学习高手笔记(卷2):经典应用
上QQ阅读APP看书,第一时间看更新
 第1章 双阶段检测

bt2-L 1.7 MaskX R-CNN

在本节中,先验知识包括:

Mask R-CNN(1.6 节);

YOLOv2(2.3节)。

YOLO9000[22]通过半监督学习的方式将模型可检测的类别从80类扩展到了9418类,YOLO9000类别扩展有效的原因之一是目标分类和目标检测使用了共享的特征,而这些特征是由分类和检测的损失函数共同训练得到的。采用半监督学习的方式训练YOLO9000的一个重要原因就是检测数据价格高昂。所以,YOLO9000采用了数据量较小的COCO的检测标签、数据量很大的ImageNet的分类标签作为半监督学习的样本,分别训练多任务模型的检测分支和分类分支,进而得到了可以同时进行分类和检测的特征。


[22] 参见Joseph Redmon、Ali Farhadi的论文“YOLO9000: Better, Faster, Stronger”。

之所以先介绍YOLO9000,是因为本节要分析的MaskX R-CNN[23]和YOLO9000的动机和设计有很多相同点。


[23] 参见Ronghang Hu、Piotr Dollár、Kaiming He等人的论文“Learning to Segment Every Thing”。

它们都是在多任务模型中使用半监督学习来完成自己的任务的:YOLO9000用来做检测,MaskX R-CNN用来做实例分割。

使用半监督学习:因为它们想将目标类别扩展到更广的范围,所以面临数据量不够的问题,对比检测任务,实例分割的数据集更为稀缺(COCO的80类,PASCAL VOC的20类),但是Visual Genome(VG)[24]数据集有3000类108 077张带有目标框的样本。


[24] 参见Ranjay Krishna、Yuke Zhu、Oliver Groth等人的论文“Visual Genome: Connecting Language and Vision Using Crowdsourced Dense Image Annotations”。

它们的框架算法都继承自另外的框架:YOLO9000继承自YOLOv2,MaskX R-CNN继承自Mask R-CNN。

不同于YOLO9000通过构建WordTree的数据结构来使用两个数据集,MaskX R-CNN提出了一个叫作权值迁移函数(weight transfer function)的迁移学习方法,将目标检测的特征迁移到实例分割任务中,进而实现了对VG数据集中3000类样本的实例分割。这个权值迁移函数便是MaskX R-CNN的精华所在。