开始使用掩码R-CNN实例分割
实例分割是一种增强类型的对象检测,它为对象的每个被检测实例生成分割映射。实例分段将单个对象视为不同的实体,而不考虑对象的类别。相比之下,语义分割将同一类的所有对象视为属于单个实体。
Mask R-CNN是一种流行的深度学习实例分割技术,它对检测到的对象执行像素级分割[1].掩码R-CNN算法可以容纳多个类和重叠的对象。
您可以创建一个预先训练的掩码R-CNN网络使用maskrcnn
对象。该网络在MS-COCO数据集上进行训练,可以检测80个不同类别的对象。要执行实例分割,将预先训练的网络传递给segmentObjects
函数。
如果您想修改网络以检测额外的类,或调整网络的其他参数,那么您可以执行迁移学习。关于如何训练一个Mask R-CNN的例子,请参见使用掩码R-CNN执行实例分割.
屏蔽R-CNN网络架构
面具R-CNN网络由两个阶段组成。第一阶段是区域提议网络(RPN),它基于锚盒预测对象提议边界盒。第二阶段是R-CNN检测器,它对这些建议进行细化、分类,并计算这些建议的像素级分割。
Mask R-CNN模型建立在Faster R-CNN模型的基础上。掩码R-CNN用一个roiAlignLayer
提供了更精确的亚像素级ROI池。掩码R-CNN网络还添加了用于像素级对象分割的掩码分支。有关更快R-CNN网络的更多信息,请参见R-CNN,快速R-CNN,快速R-CNN.
这张图左边显示了一个经过修改的Faster R-CNN网络,右边显示了一个掩码分支。
若要配置用于迁移学习的Mask R-CNN网络,请在创建时指定类名和锚框maskrcnn
对象。您可以指定其他网络属性,包括网络输入大小和ROI池大小。
准备掩码R-CNN训练数据
加载数据
要训练一个Mask R-CNN,您需要以下数据。
数据 | 描述 |
---|---|
RGB图像 | 作为网络输入的RGB映像,指定为H——- - - - - -W-by-3数值数组。 例如,这个示例RGB图像是从CamVid数据集中修改的图像[2]经过编辑,删除了个人身份信息。 |
地面真理边界框 | 用于RGB映像中的对象的边界框,指定为NumObjects-by-4矩阵,行格式为[xywh])。 例如, 盒子= 394 442 36 101 436 457 32 88 619 293 209 281 460 441 210 234 862 375 190 314 816 271 235 305 |
实例的标签 | 的标签,指定为NumObjects-by-1 string vector或aNumObjects-by-1的字符向量单元数组。) 例如, 标签= 6×1单元格数组{'Person'} {'Person'} {'Vehicle'} {'Vehicle'} {'Vehicle'} {'Vehicle'} {'Vehicle'} |
实例的面具 | 对象实例的掩码。掩码数据有两种格式:
例如,这个蒙太奇显示了样本RGB图像中六个对象的二进制掩码。 |
创建读取数据的数据存储
使用数据存储读取数据。数据存储必须以1 × 4单元阵列的形式返回数据,格式为{RGB图像、边界框、标签、掩码}。您可以使用以下步骤创建这种格式的数据存储:
创建一个
imageDatastore
返回RGB图像数据创建一个
boxLabelDatastore
它将边界框数据和实例标签作为两列单元格数组返回创建一个
imageDatastore
并指定一个自定义读函数,该函数将掩码数据作为二进制矩阵返回方法组合三个数据存储
结合
函数
图像、边界框和掩码的大小必须与网络的输入大小匹配。如果需要调整数据的大小,则可以使用imresize
来调整RGB图像和遮罩的大小,以及bboxresize
函数调整边界框的大小。
有关更多信息,请参见用于深度学习的数据存储(深度学习工具箱).
可视化培训数据
要在映像上显示实例掩码,请使用insertObjectMask
.您可以指定一个颜色映射,以便每个实例以不同的颜色显示。的实例掩码如何显示面具
变量上的RGB图像即时通讯
变量使用行
colormap。
imOverlay = insertObjectMask(im,masks,Color=lines(numObjects));imshow (imOverlay);
若要在图像上显示带有标签的边界框,请使用showShape
函数。控件中带有边界框大小和位置数据的标记矩形bboxes
中的变量和标签数据标签
变量。
imshow imOverlay showShape (“矩形”、bboxes标签=标签颜色=“红色”);
火车面具R-CNN模型
训练一个面具R-CNN网络使用trainMaskRCNN
函数。示例请参见使用掩码R-CNN执行实例分割.
参考文献
[1] He, kaiing, Georgia Gkioxari, Piotr Dollár,和Ross Girshick。“面具R-CNN。”ArXiv: 1703.06870 (Cs)2018年1月24日。https://arxiv.org/pdf/1703.06870。
[2]布罗斯托,加布里埃尔·J.,朱利安·福克尔,罗伯托·西波拉。视频中的语义对象类:一个高清地面真相数据库。模式识别字母30,no。2(2009年1月):88-97。https://doi.org/10.1016/j.patrec.2008.04.005。
另请参阅
应用程序
功能
相关的例子
更多关于
- MATLAB中的深度学习(深度学习工具箱)
- 用于深度学习的数据存储(深度学习工具箱)