主要内容

使用多边形标签对象

图片标志,贴标签机视频,地面实况贴标签机(自动驾驶工具箱)应用程序使您能够使用各种交互式绘图工具标签图像。使用这些标签创建地面实况数据训练算法。

对多边形的标签

你可以画多边形形状对象在你的图像或视频帧,并使用标签的对象的多边形。您也可以将多边形的标签,使您能够标签不同的对象作为同一类的实例。出口多边形标签保存栈的顺序在标签定义多边形和真理与地面是兼容的格式要求:

  • 语义分割网络使用H——- - - - - -W标签的矩阵。使用多边形保持标签的顺序创建或重新排序(使用置后置前选项)。语义分割需要一个图像的像素映射标签。要做到这一点,你必须把标签,(失去标签的分层顺序)。想象把所有的多边形标签最大的透明度和保护所有的矩阵填充区域作为一个标签。

  • 分割网络使用一个实例H——- - - - - -W——- - - - - -NumObjects面具堆栈。

  • 原始多边形的NumObjects1单元阵列,每个单元格包含2点。

在本例中,您加载一个形象,创建多边形ROI标签,相关修改偏好画多边形,和后处理导出地面真理对象数据使用例如分割和语义分割训练网络。

无标号数据加载

你可以加载图片存储在一个数据存储,从一个文件夹,或负载之前贴标签机会话。图片必须是可读的imread。在本例中,您是包含许多车辆装载数据,包括船、油轮和飞机。

加载数据编程

使用这个过程以编程方式加载数据存储的图片:

  1. 创建一个数据存储从一个文件夹的图像。例如,如果您有一个名为“stopSignImages”,包含图片的文件夹,你可以创建一个数据存储的图片代码。

    imageFolder = fullfile (toolboxdir (“愿景”),“visiondata”,“stopSignImages”);imd = imageDatastore (imageFolder);

  2. 加载数据存储到图片标志:

    imageLabeler (imd);

或者,您可以加载图像的文件夹直接进入图片标志:

imageFolder = fullfile (toolboxdir (“愿景”),“visiondata”,“stopSignImages”);imageLabeler (imageFolder);

直接从应用程序加载数据

点击进口加载图像或点击公开会议打开一个保存会话。

创建多边形标签

遵循以下步骤,使用一个帆船的形象,一艘油轮,和飞机,打开图片标志应用程序然后导入”boats.png“图像视觉/ visiondata文件夹中。

  1. ROI标签左边的窗格中,点击标签

  2. 选择多边形标签类型和名称帆船

  3. 可选地,您可以更改标签通过单击预览颜色。

  4. 点击好吧

    帆船标签出现在ROI标签窗格。

  5. 重复步骤1到4创建一个油轮标签和飞机标签。你可以移动一个标签列表中通过左击并向上或向下拖动标签。

画多边形ROI标签

  1. 选择帆船标签,然后用鼠标,画一个多边形ROI周围每一个帆船。

  2. 选择油轮标签和画一个多边形在油轮船舶ROI。

  3. 选择飞机标签和飞机周围画一个多边形的ROI。

    帆船、油轮和飞机标以多边形

修改多边形偏好和堆垛顺序

有许多方法来修改ROI标签的外观。你也可以设置堆垛顺序文件导出的地面真理。堆垛顺序显示一个对象是否在另一个对象的前面还是后面,和是必需的,为了解决重叠的地区建立一个语义标签地图。

在接下来的步骤中,您修改的颜色标签,设置标签的外观名称标签时,修改标签的不透明度,视图标签的一个类的实例,并设置叠加顺序。

  1. 修改飞机ROI的颜色标签,右键单击飞机标签ROI标签窗格中,选择编辑标签。点击预览和选择一个颜色。

  2. 显示ROI标签名称标签,选择总是显示ROI标签菜单的视图部分。

  3. 增加标签不透明,使用多边形滑块的标签不透明度部分。增加透明度有助于识别标签在其他标签的前面还是后面。

    所有对象完全不透明

  4. 前面的油轮标签是帆船标签,但它应该是。出口的位置影响堆垛顺序地面真理。修改堆垛顺序,右键单击油轮ROI场景中标签并选择置后

    油轮帆船背后出现在现场

  5. 查看实例ROI标签,选择通过实例ROI的颜色下拉菜单中视图部分。

    每个对象都是一个不同的颜色

  6. 通过点击导出标签地面实况数据出口并选择到工作空间。垫地面实况数据文件名称gTruth

后处理出口标签例如或语义分割网络

您可以使用导出的,贴上地面实况培训细分网络或语义分割网络实例。

遵循以下步骤来处理多边形分割数据语义分割或实例。

一步 描述 过程

1 -显示地面实况数据

导出的地面实况对象包含五个对象和三个定义的数据。

输入gTruth在MATLAB®命令行。

> > gTruth gTruth = groundTruth属性:数据源:[1×1 groundTruthDataSource] LabelDefinitions:[3×5表]LabelData:(1×3表)

2 -得到多边形数据

LabelData房地产集团数据标签的名字。的帆船标签单元阵列包含三个元素油轮单元阵列包含一个元素,和飞机单元阵列包含一个元素。

类型gTruth.LabelData

> > gTruth。LabelDataans = 1×3 table Sailboat Tanker Airplane __________ __________ __________ {3×1 cell} {1×1 cell} {1×1 cell}

3 -堆栈地面实况多边形数据

帆船和油轮是重叠的。这些信息(像素)的相对排序是迷失在这种格式。

使用gatherLabelData按照标签类型对象函数组的数据。这产生一个表包含五个对象堆叠。

使用gatherLabelData财产和存储输出。

> > = gatherLabelData (gTruth [labelType.Polygon], ' GroupLabelData ', ' LabelType ') = 1×1单元阵列{1×1表}

显示表的内容。

> > {1}。多边形Data ans = 1×1 cell array {5×2 cell}

4 -查看地面实况数据的深度

的内容PolygonData显示的顺序堆放多边形。订单和标签顺序是一致的,包括油轮,你发送到后面。

现在标签被夷为平地,底部是油轮,油轮的帆船上面覆盖重叠。

显示多边形数据。

> > {1}。多边形Data{1} ans = 5×2 cell array {12×2 double} {'Airplane'} { 6×2 double} {'Sailboat'} { 7×2 double} {'Sailboat'} {13×2 double} {'Sailboat'} { 9×2 double} {'Tanker' }

多边形数据转换为语义分割

一步 描述 过程

1 -创建一个标签ID映射

创建一个关联类名映射到类id。

一会={“飞机”、“帆船”、“油轮”};classIds = 1:元素个数(类名);labelIDMap = containers.Map(类名,classIds);

2 -提取多边形

从输出中提取多边形坐标和多边形标签结构。

多边形=从{1}.PolygonData {1} (: 1);polygonLabels =从{1}.PolygonData {1} (:, 2);

3 -平多边形语义分割图

标签名称转换为id。

将多边形坐标转换成语义分割图。

polygonLabelIDs = cellfun (@ (x) labelIDMap (x) polygonLabels);图象尺寸= (645 - 916);%的大小(boats_im) outputIm = poly2label(多边形polygonLabelIDs图象尺寸);

例如分割多边形数据进行转换

一步 描述 过程

比如Preallocate面具堆栈分割

Preallocate面具堆栈高度和宽度等于图像的维度,和通道深度与多边形的数量相同。
多边形=从{1}.PolygonData {1} (: 1);numPolygons =大小(多边形,1);图象尺寸= (645 - 916);%大小(boats_im) maskStack = false([图象尺寸(1:2)numPolygons]);

将多边形转化为实例面具

每个多边形转换成一个单独的面具,将其插入到面具堆栈。

i = 1: numPolygons maskStack (:,:, i) = poly2mask(多边形{我}(:1),…多边形{我}(:,2),图象尺寸(1)图象尺寸(2));结束

另请参阅

应用程序

功能

对象

相关的话题