主要内容

groundTruth

地面真理标签数据

描述

groundTruth对象包含关于一组基础真值标签的数据源、标签定义和已标记标签注释的信息。您可以导出或导入groundTruth对象的图像贴标器视频贴图应用程序。

创建

一个出口groundTruth对象,在应用程序工具条上,选择出口标签>到工作区.该应用程序将对象导出到MATLAB®工作区。创建一个groundTruth以编程方式对象,使用groundTruth功能(这里描述)。

描述

例子

gTruth=地面(数据源labelDefslabelData返回一个对象,该对象包含可导入的基础真值标签图像贴标器视频贴图应用程序。

  • 数据源指定地面真值数据的来源并设置数据源财产。

  • labelDefs指定地面真实数据的标签,sublabel和属性定义,并设置LabelDefinitions财产。

  • labelData指定已标记标签的标识信息、位置和时间戳,并设置LabelData财产。

属性

全部展开

地面真实数据的来源,指定为groundTruthDataSource对象。该对象包含描述地面真实数据被标记的视频、图像序列或自定义数据源的信息。

从原始数据源访问图像,使用VideoReaderimageDatastore.您还可以使用自定义读取功能。有关更多详细信息,请参阅使用自定义图像源阅读器进行标记

此属性是只读的。

标签定义,指定为表。要创建此表,请使用以下选项之一。

  • 在一个标签应用程序中,创建标签定义,然后导出它们作为groundTruth对象。

  • 使用一个labelDefinitionCreator对象以生成标签定义表。如果将该表保存到MAT-file中,则可以通过选择将标签定义加载到标签应用程序会话中加载>标签定义从App ToolStrip。

  • 在MATLAB命令行中创建标签定义表。

中指定的表的必选列和可选列LabelDefinitions财产。

描述 需要或可选
的名字 指定每个标签定义的名称的字符串或字符向量。

要求

类型 labelType指定每个标签定义的类型的枚举,例如矩形场景

要求

LabelColor RGB三元组的1×3行向量,可指定标签定义的颜色。值在范围内[0,1]。颜色黄色(RGB三重态[1 1 0])保留用于标签应用中的选定标签的颜色。

可选的

在标签应用程序中定义标签时,必须指定颜色。因此,导出的标签定义表总是包含此列。

属性创建标签定义时labelDefinitionCreator对象而不指定颜色时,返回的标签定义表包括此列,但所有列值均为空。

Pixellabelid. 标量,列向量,或者m整值标签id的-乘3矩阵。Pixellabelid.指定用于表示标签定义的像素标签值。像素标签ID值必须在0到255之间。

可选的

当您在标签应用程序或labelDefinitionCreator对象,生成的标签定义表包含此列。

当在MATLAB命令行创建标签定义表时,如果您设置类型labelType。PixelLabel对于任何标签,则需要此列。

集团 指定每个标签定义所属组的字符串或字符向量。

可选的

如果在MATLAB命令行中创建标签定义表,则无需包含a集团列。

如果您从标签应用程序导出标签定义或使用labelDefinitionCreator对象时,标签定义表包括此列,即使您没有指定组。应用程序分配每个标签定义a集团的价值“没有”

描述 描述每个标签定义的字符串或字符向量。

可选的

如果在MATLAB命令行中创建标签定义表,则无需包含a描述列。

如果您从标签应用程序导出标签定义或使用labelDefinitionCreator对象时,标签定义表包括此列,即使您没有指定描述。这描述对于这些标签定义是一个空字符向量。

层次结构 包含每个标签定义的子标签和属性数据的结构。例如层次结构格式,请参阅开始使用图像标签开始使用视频标签

可选的

在标签应用程序中,当您定义子标签或属性时,导出groundTruth对象包括此列。

例如,考虑一个名为天空植被车道StopSign,车辆,并出口了视频贴图应用程序。

  • 标签定义包括像素标签,因此表格包含Pixellabelid.列。

  • 两个标签包含属性,因此该应用程序创建了一个层次结构应用于所有标签定义的列。

  • 标签定义没有指定的组,因此集团列是“没有”对于所有标签定义。

此属性是只读的。

每个ROI和场景标签的标签数据,指定为a表格用于图像集合或时间表用于视频或图像序列。每列LabelData为单个标签定义保存标签,并对应于的名字中的每一行的值LabelDefinitions.这些LabelData描述表的元素。标签类别指定为labelType枚举。

或者,对于按标签类型分组的ROI标签数据,使用单列标记ROILabelData,可作为包含至少一种标签类型的结构使用和指定,RectangleDataPolygonDataLineData,或promcuboiddata.

表中描述了每种标签类型的存储格式。

标签类型 标签在每个时间戳的存储格式
labeltype.rectangle.

m- 4个数字矩阵[x,y,w,h],地点:

  • m是框架中的标签数。

  • Xy指定矩形的左上角。

  • W.指定矩形的宽度,即矩形沿边框的长度X设在。

  • H指定矩形的高度,这是它的长度y设在。

labeltype.cuboid.

m-乘9的数字矩阵的形式[xctr, yctr, zctr, xlen, ylen, zlen, xrot, yrot, zrot],地点:

  • m是框架中的标签数。

  • xctryctr,zctr指定长方体的中心。

  • xlenylen,zlen指定长方体的长度沿X设在,y设在,Z.-axis,在应用旋转之前。

  • xrotyrot,zrot指定沿着长方体的旋转角度X设在,y设在,Z.分别。当在其相应轴的向前方向上看时,这些角度是顺时针正的。

该图显示了这些值如何确定长方体的位置。

labelType。ProjectedCuboid

m这个形式的- × 8向量[x1, y1, w1, h1, x2, y2, w2, h2],地点:

  • m是框架中的标签数。

  • (x1, y1)指定Xy投影长方体正面左上位置的坐标

  • w1指定投影长方体正面的宽度。

  • H1.指定投影长方体正面的高度。

  • x2, y2指定Xy坐标,用于投影长方体背面的左上方位置。

  • w2指定投影长方体背面的宽度。

  • H2.指定投影长方体背面的高度。

该图显示了这些值如何确定长方体的位置。

标签预计长方体

labelType。线

m- 1个细胞阵列矢量,在哪里m是框架中的标签数。每个单元阵列包含一个N.这种形式的数字矩阵[(x1, y1;x2 y2;...;xN yN)为了N.折线上的点。

labelType。PixelLabel

所有像素标签定义的标签数据存储在一个单独的m1Pixellabeldata.m图像或框架。每个元素都包含像素标签图像的文件名。像素标签图像描述了相应图像中包含的标签或标签。标签可以描述为1或3声道标签矩阵。使用Pixellabeldata.对于任何标签应用程序,你必须使用一个单通道标签矩阵,其中的值是类型uint8.您可以转换一个3通道像素标签数据矩阵为一个单通道标签矩阵编程使用的标签应用程序。

labelType。多边形

m- 1个细胞阵列矢量,在哪里m是标签的数量。每个单元阵列包含一个N.这种形式的数字矩阵[(x1, y1;x2 y2;...;xN yN)为了N.多边形中的点。

labelType。自定义 标签被精确地存储在时间表中指定的位置。如果您导入groundTruthMultisignal包含自定义标签数据的对象地面实况贴标签机应用程序,此数据未导入应用程序。在收集标签数据时使用自定义数据进行培训并将其与应用程序中标记的数据组合起来。

万博1manbetx支持的地下对象

视频贴图仪应用程序 图像贴标程序应用程序
数据源 视频文件,图像序列文件夹,自定义阅读器 图像文件
标签定义 矩形线Pixellabel.,或场景标签类型 矩形线Pixellabel.,或场景标签类型
标签数据 时间表的矩形线Pixellabel.,或场景标签类型 表(没有时间表)矩形线Pixellabel.,或场景标签类型

添加不属于ROI (矩形线Pixellabel.) 要么场景将类别标记为groundTruth对象,使用labelType那是自定义.当你将自定义数据加载到标签应用程序中时,它是不可见的。

对象功能

selectLabelsByGroup 通过标签组选择地面真理标签
selectLabelsByType 根据标签类型选择地面真值标签
selectLabelsByName 根据标签名称选择地面真值标签
changeFilePaths 更改地面真实数据中的文件路径
Gatherlabeldata. 从地面收集标签数据

例子

全部收缩

从图像集合创建数据源。

data = load(“stopSignsAndCars.mat”);imagefilenames = data.stopsignsandcars.imagefilename(1:2)
imagefilenames =.2 x1细胞{' stopSignImages / image001.jpg '} {' stopSignImages / image002.jpg '}
imageFilenames = fullfile (toolboxdir ('想象'),“visiondata”, imageFilenames);数据源= groundTruthDataSource (imageFilenames);

定义用于指定基础实值的标签。使用labelDefinitionCreator创建标签定义表。

ldc = labelDefinitionCreator ();addlabel(LDC,“stopSign”, labelType.Rectangle);addlabel(LDC,'卡里尔', labelType.Rectangle);labelDefs =创建(ldc)
labelDefs =2×5表名称类型LabelColor组描述  ____________ _________ __________ ________ ___________ {' 矩形stopSign”}{0 x0 char}{”没有 '} {' '} {' carRear的矩形}{0 x0 char}{‘没有’}{' '}

初始化矩形roi的标签数据。

stopSignTruth = {[856 318 39 41];[445 523 52 54]};carartruth = {[398 378 315 210];[332 633 691 287]};

构造一个标签数据表。

labelNames = {“stopSign”'卡里尔'};labelData =表(stopSignTruth carRearTruth,“VariableNames”labelNames)
labelData =2×2表stopsign carrear _____________________ {[856 318 39 41]}}}}}}}}}} {[332 633 691 287]

创建一个ground truth对象。

gTruth = groundTruth(数据源、labelDefs labelData)
gTruth = groundTruth with properties: DataSource: [1x1 groundTruthDataSource] LabelDefinitions: [2x5 table] LabelData: [2x2 table]

创建一个groundTruth对象存储表示已标记道路的数据。

从映像创建数据源。

数据源= groundTruthDataSource ({“stopSignTest.jpg”});

定义用于指定ground truth的标签。使用labelDefinitionCreator创建标签定义表。

ldc = labelDefinitionCreator ();addlabel(LDC,'车道', labelType.Line);labelDefs =创建(ldc);

在图像中分配两个车道标记。

lanemarkertruth = {[257 254; 311 180] [327 183; 338 205; 374 250]};

构造一个标签数据表。

labelNames = {'车道'};Labeldata =表(LaneMarkertruth,“VariableNames”labelNames)
labelData =表格车道  ____________________________ { 2 x2双}{3 x2双}

创建Toundtruth对象。

gTruth = groundTruth(数据源、labelDefs labelData)
gTruth = groundTruth with properties: DataSource: [1x1 groundTruthDataSource] LabelDefinitions: [1x5 table] LabelData: [1x1 table]

创建一个groundTruth对象来存储表示场景各部分的数据。

创建数据源。

数据源= groundTruthDataSource ({“visionteam.jpg”});

使用labelDefinitionCreator创建标签定义表。定义标签,“人”“背景”.将对应的标签类型赋值为Pixellabel.

ldc = labelDefinitionCreator ();addlabel(LDC,“人”, labelType.PixelLabel);addlabel(LDC,“背景”, labelType.PixelLabel);labelDefs =创建(ldc)
labelDefs =2×6表名字类型LabelColor PixelLabelID组描述  ______________ __________ __________ ____________ ________ ___________ {' 人”}PixelLabel {0 x0 char}{[1]}{”没有 '} {' '} {' 背景”}PixelLabel {0 x0 char}{[2]}{‘没有’}{' '}

指定图像的像素标签数据的位置。

外部= {“visionteamPixelLabels.png”}
外部=1 x1单元阵列{' visionteamPixelLabels.png '}

为像素标签数据构造一个标签数据表。

labeldata = table(数据文件,“VariableNames”, {'pixellabeldata'})
labelData =表格PixelLabelData  _____________________________ {' visionteamPixelLabels.png '}

创建一个groundTruth对象。

gTruth = groundTruth(数据源、labelDefs labelData)
gTruth = groundTruth with properties: DataSource: [1x1 groundTruthDataSource] LabelDefinitions: [2x6 table] LabelData: [1x1 table]

从视频创建数据源。

VideoName =.'caltech_cordova1.avi';DataSource = TountTruthDataSource(VideoName);

定义用于指定基础实值的标签。使用一个labelDefinitionCreator对象创建标签定义表。

ldc = labelDefinitionCreator ();addlabel(LDC,“汽车”, labelType.Rectangle);addlabel(LDC,“LaneMarkers”, labelType.Line);labelDefs =创建(ldc)
labelDefs =2×5表名称类型LabelColor组描述_______________ _________ ______________________________ {'none'} {'none'} {'lanemarkers'} {'none char} {'none'} {''}

为汽车和车道标记创建标签数据。

numRows =元素个数(dataSource.TimeStamps);carsTruth =细胞(numRows, 1);laneMarkerTruth =细胞(numRows, 1);

向第一帧添加两个汽车标签和两个车道标记。

Carstruth {1} = [182 186 31 22; 404 191 53 34];lanemarkertruth {1} = {[257 254; 311 180] [327 205] 338 205; 374 250]};

创建一个标签数据表。

labelNames = {“汽车”“LaneMarkers”};labelData =表(carsTruth laneMarkerTruth,“VariableNames”, labelNames);

创建一个groundTruth对象。要将此对象导入标签应用程序,请从中选择选项打开>导入标签菜单。

gTruth = groundTruth(数据源、labelDefs labelData)
gtruth =带有属性的地面:DataSource:[1x1 ToundTruthDataSource] Labeldefinitions:[2x5表] Labeldata:[250x2时间表]

提示

  • groundTruth基于视频的数据源的对象依赖于操作系统的视频阅读功能。一个groundTruth使用视频数据源创建的对象仅在用于创建它的平台上保持一致。创建平台独立groundTruth对象,将视频转换为图像序列,并将图像序列包含相关的时间戳。

在R2017A介绍