主要内容

groundTruth

地面真值标签数据

描述

groundTruth对象包含关于数据源、标签定义和一组基本真实值标签的标记标签注释的信息。您可以导出或导入groundTruth对象的图片标志而且贴标签机视频应用程序。

创建

要导出groundTruth对象,在应用程序工具条上选择出口标签>到工作空间.应用程序将对象导出到MATLAB®工作区。要创建groundTruth对象时,使用groundTruth函数(此处描述)。

描述

例子

gTruth= groundTruth (数据源labelDefslabelData对象返回一个对象,该对象包含可导入图片标志而且贴标签机视频应用程序。

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

  • labelDefs的标签、子标签和属性定义,并设置LabelDefinitions财产。

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

属性

全部展开

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

若要从原始数据源访问图像,请使用VideoReaderimageDatastore.您还可以使用自定义读取函数。详情请参见使用自定义图像源阅读器进行标记

此属性是只读的。

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

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

  • 使用一个labelDefinitionCreator对象生成标签定义表。如果您将此表保存到mat文件中,则可以通过选择将标签定义加载到标签应用程序会话中负载>标签定义从应用程序工具条。

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

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

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

要求

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

要求

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

可选

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

属性创建标签定义时labelDefinitionCreator对象,则返回的标签定义表包括此列,但所有列值都为空。

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

可选

在标签应用程序中定义像素标签时labelDefinitionCreator对象时,生成的标签定义表包括此列。

在MATLAB命令行中创建标签定义表时,如果设置类型labelType。PixelLabel对于任何标签,都需要这一列。

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

可选

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

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

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

可选

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

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

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

可选

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

例如,考虑一个标签定义为天空植被车道StopSign,车辆,从贴标签机视频应用程序。

  • 标签定义包括像素标签,因此该表包含PixelLabelID列。

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

  • 标签定义没有分配的组,因此集团列是“没有”适用于所有标签定义。

请注意

标签应用程序只能加载像素id在1到255之间的像素数据。

此属性是只读的。

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

或者,对于按标签类型分组的ROI标签数据,可以使用单个列进行标记ROILabelData,可以使用并指定为包含至少一种标签类型的结构,RectangleDataPolygonDataLineData,或ProjCuboidData

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

标签类型 每个时间戳标签的存储格式
labelType。矩形

-by-4数值矩阵的形式[x, y, w, h],地点:

  • 是帧中标签的数量。

  • x而且y指定矩形的左上角。

  • w指定矩形的宽度,即矩形沿x设在。

  • h指定矩形的高度,即矩形沿y设在。

labelType。长方体

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

  • 是帧中标签的数量。

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

  • xlenylen,zlen指定长方体沿的长度x设在,y设在,z-轴,在应用旋转之前。

  • xrotyrot,zrot指定长方体沿的旋转角度x设在,y设在,z分别设在。当观察它们对应轴的正向时,这些角是顺时针正的。

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

有中心点、长度和旋转角度标记的长方体

labelType。ProjectedCuboid

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

  • 是帧中标签的数量。

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

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

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

  • x2, y2指定了xy投影长方体背面的左上角位置的坐标。

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

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

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

标记投影长方体

labelType。行

单元格数组的-by-1向量,其中是帧中标签的数量。每个单元格数组包含一个N-by-2数值矩阵的形式[(x1, y1;x2 y2;...;xN yN)N折线上的点。

labelType。PixelLabel

所有像素标签定义的标签数据存储在单个标签中1PixelLabelData图像或框架。每个元素都包含像素标签图像的文件名。像素标签图像描述了对应图像中包含的标签。标签可以描述为1通道或3通道标签矩阵。使用PixelLabelData对于任何标签应用程序,都必须使用单通道标签矩阵,其中的值为类型uint8.您可以通过编程方式将3通道像素标签数据矩阵转换为单通道标签矩阵,以便与标签器应用程序一起使用。

labelType。多边形

单元格数组的-by-1向量,其中是标签的数量。每个单元格数组包含一个N-by-2数值矩阵的形式[(x1, y1;x2 y2;...;xN yN)N多边形上的点。

labelType。自定义 标签完全按照时间表中指定的方式存储。如果你导入groundTruthMultisignal对象中包含自定义标签数据地面真相标签在收集用于训练的标签数据时使用自定义数据,并将其与应用中标记的数据相结合。

金宝app支持的GroundTruth对象

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

若要添加不是ROI的真实数据(矩形PixelLabel)或场景将类别标记为groundTruth对象提供标签定义labelType这是自定义.当你将自定义数据加载到标签应用程序中时,它是不可见的。

对象的功能

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

例子

全部折叠

从图像集合创建数据源。

数据=负载(“stopSignsAndCars.mat”);imagefilename = data.stopSignsAndCars.imageFilename(1:2)
imageFilenames =2 x1细胞{' stopSignImages / image001.jpg '} {' stopSignImages / image002.jpg '}
imageFilenames = fullfile(toolboxdir(“愿景”),“visiondata”, imageFilenames);dataSource = groundTruthDataSource(imageFilenames);

定义用于指定基本真理的标签。使用labelDefinitionCreator创建标签定义表。

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

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

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

构造一个标签数据表。

labelNames = {“stopSign”“carRear”};labelData = table(stopSignTruth, careartruth,“VariableNames”labelNames)
labelData =2×2表stopSign carRear  _________________ ___________________ {[ 856 318 39 41]} {[398 378 315 210]} {[445 523 52 54]} {[332 633 691 287]}

创建一个ground truth对象。

gTruth = groundTruth(数据源,labelDefs,labelData)
属性:DataSource: [1x1 groundTruthDataSource] LabelDefinitions: [2x5 table] LabelData: [2x2 table]

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

从图像创建数据源。

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

定义用于指定基本真理的标签。使用labelDefinitionCreator创建标签定义表。

ldc = labelDefinitionCreator();addLabel (ldc,“车道”, labelType.Line);labelDefs = create(ldc);

在图像中指定两个车道标记。

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

构造一个标签数据表。

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

创建一个groundTruth对象。

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 = create(ldc)
labelDefs =2×6表名字类型LabelColor PixelLabelID组描述  ______________ __________ __________ ____________ ________ ___________ {' 人”}PixelLabel {0 x0 char}{[1]}{”没有 '} {' '} {' 背景”}PixelLabel {0 x0 char}{[2]}{‘没有’}{' '}

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

dataFile = {“visionteamPixelLabels.png”
外部=1x1单元阵列{' 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 = groundTruthDataSource(videoName);

定义用于指定基本真理的标签。使用一个labelDefinitionCreator对象创建标签定义表。

ldc = labelDefinitionCreator();addLabel (ldc,“汽车”, labelType.Rectangle);addLabel (ldc,“LaneMarkers”, labelType.Line);labelDefs = create(ldc)
labelDefs =2×5表名称类型LabelColor组描述  _______________ _________ __________ ________ ___________ {' 汽车的矩形}{0 x0 char}{”没有 '} {' '} {' LaneMarkers”}{0 x0 char}{‘没有’}{' '}

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

numRows = numel(dataSource.TimeStamps);carsTruth = cell(numRows,1);laneMarkerTruth = cell(numRows,1);

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

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

创建标签数据表。

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

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

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

提示

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

版本历史

在R2017a中引入