主要内容

幻灯片r-cnn入门,例如分段

实例分割是增强类型的对象检测类型,用于为每个检测到的对象实例生成分段映射。实例分段将单个对象视为不同的实体,无论对象的类别如何。相比之下,语义分割认为与属于单个实体的同一类的所有对象。

存在几个深度学习算法以执行实例分段。一种流行的算法是掩模R-CNN,它在更快的R-CNN网络上展开,在检测到的对象上执行像素级分段[1]。掩模R-CNN算法可以容纳多个类和重叠对象。

有关展示如何培训面具R-CNN的示例,请参阅使用面膜R-CNN深度学习的实例分割

培训数据

要培训面具R-CNN,您需要以下数据。

数据 描述
RGB Image.

作为网络输入的RGB图像指定为H-经过-W.-3号数字阵列。

例如,该样本RGB图像是来自Camvid数据集的修改图像[2]已编辑以删除个人可识别的信息。

街道场面的RGB图象与车辆和行人的

地面真理边界盒

RGB图像中对象的边界框,指定为anumobjects.-4矩阵,格式的行[XyW.H])。

例如,bboxes.变量显示样本RGB图像中的六个对象的边界框。

Bboxes = 394 442 36 101 436 457 32 88 619 293 209 281 460 441 210 234 862 335 190 314 816 235 190

实例标签

每个实例的标签,指定为anumobjects.- 1个字符串向量或anumobjects.-By-1个字符向量阵列。)

例如,标签变量显示样本RGB图像中的六个对象的标签。

标签= 6×1个单元阵列{'person'} {'person'} {'车辆'} {'车辆'} {'车辆'} {'车辆'} {'车辆'}

实例面具

对象实例的掩模。掩码数据有两种格式:

  • 二进制掩码,指定为逻辑大小H-经过-W.-经过-numobjects.。每个掩码都是图像中的一个实例的分割。

  • 多边形坐标,指定为anumobjects.-By-2单元阵列。阵列的每一行包含(Xy)沿图像中的一个实例的边界的多边形的坐标。

    面具R-CNN网络需要二进制掩码,而不是多边形坐标。要将多边形坐标转换为二进制掩码,请使用Poly2mask.功能。这Poly2mask.函数设置多边形内部的像素1并在多边形外设置像素到0.。此代码显示如何转换多边形坐标masks_polygon.变量到大小的二元面具H-经过-W.-经过-numobjects.

    densemasks = false([h,w,numobjects]);为了i = 1:numObjects densemasks(:,i)= poly2mask(masks_polygon {i}(:,1),masks_polygon {i}(:,2),h,w);结尾

例如,该蒙太奇显示了样本RGB图像中的六个对象的二进制掩模。

六个二进制面具显示两个行人和四辆车的分割

可视化培训数据

要在图像上显示实例掩码,请使用InsertObjectMask.。您可以指定彩色映射,以便每个实例以不同的颜色出现。此示例代码显示了如何显示实例掩码面具在RGB图像上变量我是可变使用线彩色地图。

imoverlay = InsertObjectMask(IM,Masks,'颜色',线条(numobjects));imshow(imoverlay);

每个行人和车辆都在RGB图像上有一个独特的FalseColor色调

要在图像上显示带有标签的边界框,请使用ShowShape.功能。此示例代码显示如何显示标记的矩形形状,其中包含边界框大小和位置数据bboxes.可变和标签数据标签多变的。

imshow(imoverlay)showshape(“矩形”,bboxes,“标签”,标签,“颜色”“红色的”);

红色矩形标记为“行人”和“车辆”围绕每个对象的环绕实例

预处理数据

格式化并调整数据

使用数据存储读取数据。数据存储必须以格式{RGB映像,边界框,标签,掩码}作为一个1-4个单元格数组返回数据。图像的大小,边界框和掩码必须与网络的输入大小匹配。如果您需要调整数据大小,那么您可以使用imresize调整RGB图像和掩码的大小,以及bboxresize.调整边界框中的函数。

有关更多信息,请参阅深入学习的数据购物(深度学习工具箱)

表格迷你批次数据

培训面具R-CNN网络需要自定义训练循环。在自定义训练循环中管理迷你批次观察,创建一个小公子(深度学习工具箱)来自数据存储的对象。这小公子对象将数据投入到adlarray.(深度学习工具箱)在深度学习应用程序中实现自动差异的对象。如果您有支持的GPU,那么万博1manbetx小公子对象还将数据移动到GPU。

下一个(深度学习工具箱)功能会产生下一个迷你批次的数据小公子

面具R-CNN网络架构

掩模R-CNN网络由两个阶段组成。首先是区域提案网络(RPN),其预测基于锚盒的对象提案边界框。第二阶段是R-CNN检测器,其改进这些提案,对它们进行分类,并计算这些提案的像素级分段。

MASK R-CNN模型构建在更快的R-CNN模型上,您可以使用它创建使用Fasterrcnlayers.。用一个替换ROI最大池池层roialignlayer.提供更准确的子像素级ROI池。掩模R-CNN网络还为像素级别对象分割添加掩模分支。有关R-CNN网络的更多信息,请参阅R-CNN,FAST R-CNN和更快的R-CNN入门

此图显示了左侧的修改后的R-CNN网络和右侧的蒙版分支。

火车面具R-CNN网络

在自定义训练循环中训练模型。对于每次迭代:

  • 使用该数据读取当前迷你批次的数据下一个(深度学习工具箱)功能。

  • 使用该评估模型梯度dlfeval.(深度学习工具箱)功能和自定义辅助功能,用于计算批量培训数据的渐变和总体损失。

  • 使用诸如此类的函数更新网络被动参数adamupdate.(深度学习工具箱)要么sgdmupdate.(深度学习工具箱)

有关显示如何使用培训的蒙版R-CNN执行实例分段的示例,请参阅使用面膜R-CNN深度学习的实例分割。在该示例中,您可以选择使用CPU或单个GPU培训掩模R-CNN。

有关使用并行GPU处理训练掩模R-CNN的屏蔽R-CNN的示例,请参阅使用掩模R-CNN的多键实例分段

参考

[1]他,Kaiming,Georgia Gkioxari,PiotrDollár和罗斯吉伦克。“面具R-CNN。”arxiv:1703.06870 [CS],2018年1月24日。https://arxiv.org/pdf/1703.06870。

[2]荆棘,加布里埃尔J.,Julien Fauuaryur和Roberto Cipolla。“视频中的语义对象类:高清地面真相数据库。”模式识别字母30,否。2(2009年1月):88-97。https://doi.org/10.1016/j.patrec.2008.04.005。

也可以看看

应用

功能

对象

相关例子

更多关于

外部网站