实例分割是增强类型的对象检测类型,用于为每个检测到的对象实例生成分段映射。实例分段将单个对象视为不同的实体,无论对象的类别如何。相比之下,语义分割认为与属于单个实体的同一类的所有对象。
有几种深度学习算法可以进行实例分割。一个流行的算法是Mask R-CNN,它扩展了Faster R-CNN网络,对检测到的物体进行像素级分割[1].掩模R-CNN算法可以容纳多个类和重叠对象。
有关如何训练Mask R-CNN的示例,请参见使用面膜R-CNN深度学习的实例分割.
要训练Mask R-CNN,您需要以下数据。
数据 | 描述 |
---|---|
RGB Image. | 作为网络输入的RGB图像指定为H-经过-W-3号数字阵列。 例如,该样本RGB图像是来自Camvid数据集的修改图像[2]这些信息已经过编辑,以删除个人身份信息。 |
真实边界框 | RGB图像中对象的边界框,指定为aNumObjects- × 4矩阵,行格式为[xywh])。 例如, Bboxes = 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- 1个字符串向量或aNumObjects-By-1个字符向量阵列。) 例如, 标签= 6×1个单元阵列{'person'} {'person'} {'车辆'} {'车辆'} {'车辆'} {'车辆'} {'车辆'} |
实例的面具 | 对象实例的掩模。掩码数据有两种格式:
例如,这个蒙太奇显示了样本RGB图像中6个对象的二进制掩码。 |
要在图像上显示实例掩码,请使用insertObjectMask
.您可以指定彩色映射,以便每个实例以不同的颜色出现。此示例代码显示了如何显示实例掩码面具
的RGB图像我是
变量使用行
彩色地图。
imOverlay = insertObjectMask (im,面具,'颜色'行(numObjects));imshow (imOverlay);
要在图像上显示带有标签的边界框,请使用ShowShape.
函数。此示例代码显示如何显示标记的矩形形状,其中包含边界框大小和位置数据bboxes
可变和标签数据标签
变量。
imshow imOverlay showShape (“矩形”bboxes,“标签”、标签“颜色”,“红色”);
使用数据存储读取数据。数据存储必须以格式{RGB映像,边界框,标签,掩码}作为一个1-4个单元格数组返回数据。图像的大小,边界框和掩码必须与网络的输入大小匹配。如果您需要调整数据大小,那么您可以使用imresize.
调整RGB图像和掩码的大小,以及bboxresize.
调整边界框中的函数。
有关更多信息,请参阅用于深度学习的数据存储(深度学习工具箱).
训练一个Mask R-CNN网络需要一个定制的训练循环。要管理自定义培训循环中的小批观察数据,创建一个小公子
(深度学习工具箱)来自数据存储的对象。的小公子
对象将数据投入到adlarray.
(深度学习工具箱)在深度学习应用程序中实现自动差异的对象。如果您有支持的GPU,那么金宝app小公子
对象也将数据移动到GPU。
的下一个
(深度学习工具箱)方法生成下一个小批数据小公子
.
掩模R-CNN网络由两个阶段组成。首先是区域提案网络(RPN),其预测基于锚盒的对象提案边界框。第二阶段是R-CNN检测器,其改进这些提案,对它们进行分类,并计算这些提案的像素级分段。
Mask R-CNN模型建立在Faster R-CNN模型的基础上,您可以使用它来创建Fasterrcnlayers.
.将ROI最大池化层替换为roialignlayer.
提供更精确的亚像素级ROI池。Mask R-CNN网络还添加了一个用于像素级目标分割的Mask分支。有关Faster R-CNN网络的更多信息,请参见Getting Started with R-CNN, Fast R-CNN, and Faster R-CNN.
这张图左边显示了一个改进的Faster R-CNN网络,右边显示了一个掩码分支。
在自定义训练循环中训练模型。对于每次迭代:
使用该数据读取当前迷你批次的数据下一个
(深度学习工具箱)函数。
使用该评估模型梯度dlfeval
(深度学习工具箱)函数和一个自定义助手函数,该函数计算成批训练数据的梯度和总体损失。
使用如下函数更新网络可学习参数adamupdate.
(深度学习工具箱)或者sgdmupdate
(深度学习工具箱).
有关如何使用经过训练的Mask R-CNN执行实例分割的示例,请参见使用面膜R-CNN深度学习的实例分割.在这个例子中,您可以选择使用CPU或单个GPU训练Mask R-CNN。
有关使用并行GPU处理训练掩模R-CNN的屏蔽R-CNN的示例,请参阅使用Mask R-CNN的多类实例分割.
[1] He, Kaiming, Georgia Gkioxari, Piotr Dollár, Ross Girshick。“面具R-CNN。”ArXiv: 1703.06870 (Cs),2018年1月24日。https://arxiv.org/pdf/1703.06870。
[2] Brostow, Gabriel J., Julien Fauqueur和Roberto Cipolla。视频中的语义对象类:高清晰度地面真相数据库模式识别字母30,不。2(2009年1月):88-97。https://doi.org/10.1016/j.patrec.2008.04.005。
roialignlayer.
|小公子
(深度学习工具箱)