主要内容

groundTruth

地面真值标记数据

描述

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

创建

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

描述

例子

gTruth= groundTruth (数据源Labeldefs.labelData返回一个对象,该对象包含可导入的基础真值标签图片标志贴标签机视频应用。

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

  • Labeldefs.指定基础真值数据的标签、子标签和属性定义,并设置标签财产。

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

属性

全部展开

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

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

此属性是只读的。

标签定义,指定为表。要创建此表,请使用其中一个选项。

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

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

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

此表介绍了所指定的表所需和可选列标签财产。

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

要求

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

要求

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

可选

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

属性创建标签定义时labelDefinitionCreator对象而无需指定颜色,返回的标签定义表包含此列,但所有列值都是空的。

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

可选

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

在MATLAB命令行创建标签定义表时,如果您设置类型labeltype.pixellabel.对于任何标签,都需要这个列。

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

可选

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

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

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

可选

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

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

层次结构 包含每个标签定义的Sublabel和属性数据的结构。为了一个例子层次结构格式,请参阅开始使用图像贴标程序或者开始使用视频标签

可选

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

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

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

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

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

此属性是只读的。

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

或者,对于按标签类型分组的ROI标签数据,使用单列标记roilabeldata.,可以使用并指定为包含至少一个标签类型的结构,rectangledata.Polygondata.LineData, 或者ProjCuboidData

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

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

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

  • 是帧中标签的数量。

  • xy指定矩形的左上角。

  • w指定矩形的宽度,这是它的长度x设在。

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

labelType。长方体

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

  • 是帧中标签的数量。

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

  • xlenylen, 和zlen指定长方体的长度沿x设在,y设在,z旋转之前,分别在旋转之前分别进行速度。

  • Xrot.yrot, 和zrot指定长方体的旋转角度x设在,y设在,z分别设在。这些角度是顺时针正的,当看在他们相应的轴向前的方向。

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

labelType。ProjectedCuboid

-My-8形式的矢量[x1, y1, w1, h1, x2, y2, w2, h2],地点:

  • 是帧中标签的数量。

  • X1,Y1指定了xy投影长方体正面左上位置的坐标

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

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

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

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

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

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

标有预定的长方体

labeltype.line.line.

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

labeltype.pixellabel.

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

labeltype.polygon.

单元格数组的-by-1向量为标签的数量。每个单元格数组包含一个N这种形式的数字矩阵[(x1, y1;x2 y2;...;xN yN)N多边形点点。

labeltype.custom. 标签被精确地存储在时间表中指定的位置。如果您导入groundTruthMultisignal对象中包含自定义标签数据的地面实况贴标签机app,此数据不导入app。在收集标签数据进行训练时,使用自定义数据,并将其与app中的标签数据相结合。

金宝app支持GroundTruth对象

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

添加非ROI的地面真理数据(矩形PixelLabel)或场景标签类别到agroundTruth对象,提供带有一个标签定义labelType这是自定义.当你将自定义数据加载到标签应用程序中时,它是不可见的。

对象的功能

SelectLabelsByGroup. 根据标签组选择基础真值标签
SelectLabelsByType. 根据标签类型选择地面真值标签
selectlabelsbyname. 按标签名称选择地面真理标签
换行员 在地面真实数据中更改文件路径
gatherLabelData 从地面收集标签数据

例子

全部折叠

从图像集合创建数据源。

data =负载(“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,'停止标志', labelType.Rectangle);addLabel (ldc,“carRear”, labelType.Rectangle);labeldefs = create(LDC)
labeldefs =2×5表名称类型LabelColor组描述  ____________ _________ __________ ________ ___________ {' 矩形stopSign”}{0 x0 char}{”没有 '} {' '} {' carRear的矩形}{0 x0 char}{‘没有’}{' '}

初始化Rectangle Rois的标签数据。

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

构造一个标签数据表。

labelnames = {'停止标志'“carRear”};labelData =表(stopSignTruth carRearTruth,'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)
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双}

创建一个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'
外部=1 x1单元阵列{'VisionTeampixellabels.png'}

构建像素标签数据的标签数据表。

labelData =表(数据文件,'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”;数据源= 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 =细胞(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 =表(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