主要内容

gatherLabelData

收集同步标签数据从地面真理

自从R2020a

描述

labelData= gatherLabelData (gTruth,signalNames,labelTypes)返回同步标签数据来自multisignal地面实况数据,gTruth。该函数返回指定的标签数据信号signalNames和指定的标签类型labelTypes

例子

(labelData,时间戳)= gatherLabelData (___)另外返回信号的时间戳与收集相关标签数据,使用参数从之前的语法。

使用时间戳writeFrames函数编写相关的信号的帧groundTruthMultisignal对象到磁盘。使用这些框架和相关的标签作为机器学习的训练数据或深度学习模型。

(___)= gatherLabelData (___,名称=值)指定选项使用一个或多个名称参数除了参数从以前的语法的任意组合。例如,Verbose = True允许显示工作区环境。

例子

全部折叠

收集标签数据的视频信号和激光雷达点云序列信号从一个groundTruthMultisignal对象。写相关的信号帧标签数据到磁盘和可视化框架。

添加点云序列MATLAB®文件夹路径搜索路径。视频已经在MATLAB搜索路径。

pcSeqDir = fullfile (toolboxdir (“开车”),“drivingdata”,“lidarSequence”);目录(pcSeqDir);

加载一个groundTruthMultisignal对象,该对象包含标签数据的视频和激光雷达点云序列。

data =负载(“MultisignalGTruth.mat”);gTruth = data.gTruth;

指定要收集标签数据的信号。

signalNames = [“video_01_city_c2s_fcw_10s”“lidarSequence”];

视频包含矩形标签,而激光雷达点云序列包含长方体标签。收集矩形标签从视频和长方体标签从激光雷达点云序列。

(labelType labelTypes =。矩形labelType.Cuboid];[labelData,时间戳]= gatherLabelData (gTruth、signalNames labelTypes);

显示标签的前八行数据从两个信号。这两个信号包含数据标签。在视频中,标签是被描绘成一个矩形边界框。在激光雷达点云序列标签是被描绘成一个长方体包围盒。

videoLabelSample =头(labelData {1}) lidarLabelSample =头(labelData {2})
videoLabelSample =表车_________________ {[299 213 42 33]}lidarLabelSample =表车____________________________________________________ {[17.7444 6.7386 3.3291 3.6109 3.2214 3.5583 0 0 0]}

写与聚集相关联的信号帧标签数据到临时文件夹位置,用一个文件夹/信号。使用返回的时间戳gatherLabelData编写函数来表示信号帧。

outputFolder = fullfile (tempdir, (“videoFrames”“lidarFrames”]);文件名= writeFrames (gTruth, signalNames outputFolder,时间戳);
写2帧从以下信号:* video_01_city_c2s_fcw_10s * lidarSequence

加载视频信号帧使用写的imageDatastore对象。通过使用加载矩形标签相关的数据boxLabelDatastore对象。

imd = imageDatastore(文件名{1});建筑物= boxLabelDatastore (labelData {1});

加载写框架通过使用激光雷达信号fileDatastore对象。通过使用一个负载相关的长方体标签数据boxLabelDatastore对象。

fds = fileDatastore(文件名{2},“ReadFcn”,@pcread);cld = boxLabelDatastore (labelData {2});

可视化视频帧用写的vision.VideoPlayer对象。可视化书面通过使用激光雷达帧pcplayer对象。

放像机= vision.VideoPlayer;ptCloud =预览(fds);ptCloudPlayer = pcplayer (ptCloud.XLimits ptCloud.YLimits ptCloud.ZLimits);hasdata (imd)%读视频和激光雷达帧。我=读(imd);ptCloud =阅读(fds);%可视化视频和激光雷达帧。放像机(我);视图(ptCloudPlayer ptCloud);结束

删除点云序列文件夹的路径。

rmpath (pcSeqDir);

输入参数

全部折叠

Multisignal地面实况数据,指定为一个groundTruthMultisignal对象或向量的groundTruthMultisignal对象。

每一个groundTruthMultisignal对象gTruth必须包括所有指定的信号吗signalNames输入。

此外,每个对象必须包括至少一个标记标签每收集标签定义。假设gTruth是一个groundTruthMultisignal对象包含标签数据为单个视频信号命名video_front_camera。感兴趣的对象包含明显的矩形区域(ROI)的标签标签定义而不是卡车标签定义。如果你使用这种语法收集类型的标签矩形从这个对象中,那么gatherLabelData函数返回一个错误。

labelData = gatherLabelData (gTruth,“video_front_camera”,labelType.Rectangle);

收集的信号名称标签数据,指定为一个特征向量,字符串标量,单元阵列的特征向量,或字符串向量。中存储的信号名称必须是有效信号名称输入multisignal地面实况数据,gTruth

获得的信号从一个名字groundTruthMultisignal对象,使用这种语法,gTruth是对象的变量名:

gTruth.DataSource.SignalName

例子:“video_01_city_c2s_fcw_10s”

例子:“video_01_city_c2s_fcw_10s”

例子:{“video_01_city_c2s_fcw_10s”、“lidarSequence”}

例子:[" video_01_city_c2s_fcw_10s”“lidarSequence”)

标签类型的收集标签数据,指定为一个labelType枚举标量,labelType枚举向量,或单元阵列labelType枚举标量和向量。的gatherLabelData函数收集标签数据为每个指定的输入信号signalNames和每个groundTruthMultisignal对象指定的输入gTruth。元素的数量labelTypes必须匹配信号的数量吗signalNames

收集标签数据单标签类型/信号

收集单个标签类型标签数据/信号,指定labelTypes作为一个labelType枚举标量或矢量。在所有groundTruthMultisignal对象gTruth,gatherLabelData函数集labelTypes (n)标签的数据signalName (n),在那里n的索引标签类型和相应的信号名称的标签数据聚集。每个返回的表的输出labelData细胞数组只包含一个标签数据类型/信号。

在这个代码示例,gatherLabelData收集标签类型的函数矩形从一个视频信号video_front_camera。函数也收集类型的标签长方体从激光雷达点云序列信号存储在一个文件夹命名lidarData。的gTruth输入包含groundTruthMultisignal对象的数据收集。

labelData = gatherLabelData (gTruth,(“video_front_camera”,“lidarData”),[labelType.Rectangle, labelType.Cuboid];

收集单个标签标签数据类型从单独的信号,你必须为每个信号重复标签类型。在这个代码示例,gatherLabelData收集标签类型的函数矩形video_left_cameravideo_right_camera视频信号。

labelData = gatherLabelData (gTruth,(“video_left_camera”,“video_right_camera”),[labelType.Rectangle, labelType.Rectangle];

收集多个标签类型标签数据/信号

收集多个标签类型标签数据/信号,指定labelTypes作为一个单元阵列labelType枚举标量和向量。在所有groundTruthMultisignal对象gTruth,gatherLabelData函数集labelTypes {n}标签的数据signalName (n),在那里n的索引标签类型和相应的信号名称的标签数据聚集。这些标签的功能组的数据类型为每个信号的每一个表groundTruthMultisignal对象。

在这个代码示例,gatherLabelData收集标签类型的函数矩形video_front_camera视频信号。函数也收集类型的标签长方体从激光雷达点云序列信号存储在一个文件夹命名lidarData。的gTruth输入包含groundTruthMultisignal对象的数据收集。

labelData = gatherLabelData (gTruth,(“video_front_camera”,“lidarData”),{[labelType。矩形labelType.Line),labelType.Cuboid};

有效的枚举类型

您可以指定一个或多个枚举类型。

  • labelType.Rectangle——矩形ROI标签

  • labelType.Cuboid长方体ROI标签(点云)

  • labelType.ProjectedCuboid——预计长方体ROI标签(图片和视频数据)

  • labelType.Line行ROI标签

  • labelType.PixelLabel像素ROI标签

  • labelType.Polygon像素ROI标签

  • labelType.Scene——现场标签

为场景收集标签数据,您必须指定labelTypes随着labelType.Scene枚举标量。你不能指定任何其他类型的标签labelType.Scene

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

例子:(SamplingFactor=5)设置二次抽样的因素5每五帧。

样本因子用于子样品标签数据,指定为一个正整数。一个样本的因素K包括每一个K信号帧。增加样本的因素从样本率高的信号冗余帧数下降,如视频。设置SamplingFactor与预计的长方体数据,您必须指定LabelData名称-值参数labelType.ProjectedCuboid

使用抽样数据来减少重复数据,比如同一场景的图像序列和标签。它还可以帮助减少训练时间。

组从标签数据列,指定为“LabelName”“LabelType”

  • “LabelName”——组标签数据列的标签定义。

  • “LabelType”——组织的标签标签成列的数据类型。您可以使用这个选项来收集标签数据,同时保留的(ROI)叠加顺序取决于类型的标签。

逻辑表明如果属性和sublabel数据返回标签数据输出,指定为一个逻辑(0)或真正的(1)。的值表明,只有位置值对应于收集roi。的值真正的表明每个表LabelData包含结构体包含的位置、属性和sublabels每个标签。

输出参数

全部折叠

标签数据,作为一个返回——- - - - - -N单元阵列表、地点:

  • 的数量是groundTruthMultisignal对象gTruth

  • labelTypes包含ROIlabelType枚举,N信号的数量吗signalNames和元素的数量labelTypes。在这种情况下,labelData {m, n}包含一个标签数据表nth的信号signalNames这是在thgroundTruthMultisignal的对象gTruth。只有标签的表包含标签数据类型的nth的位置labelTypes

  • labelTypes仅包含labelType.Scene枚举,N等于1。在这种情况下,labelData {m}现场标签数据包含一个表的所有信号thgroundTruthMultisignal的对象gTruth

对于一个给定的标签数据表,资源描述表的大小T——- - - - - -l,地点:

  • T是时间戳的数量在标签的信号数据的存在。

  • l是标签的数量定义标签类型收集的信号。

  • 台(t、l)包含的标签收集的数据lth的标签t时间戳。

如果一个没有标签的信号数据的时间戳,那么相应的标签数据表不包括一行的时间戳。

为表中的每个单元格的格式返回标签数据取决于类型的标签。

标签类型 存储格式的标签在每一个时间戳
labelType.Rectangle

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

  • 是标签的帧数。

  • xy指定矩形的左上角。

  • w指定矩形的宽度,也就是沿其长度x设在。

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

labelType.Cuboid

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

  • 是标签的帧数。

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

  • xlen,ylen,zlen指定的长方体的长度x设在,y设在,z分别设在前旋转被应用。

  • xrot,yrot,zrot为长方体沿着指定的旋转角度x设在,y设在,z分别设在。这些角时clockwise-positive在相应的轴的前进方向。

图中显示这些值如何确定一个长方体的位置。

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

labelType.ProjectedCuboid

8向量的形式(x1, y1, w1, h1, x2, y2, w2, h2),地点:

  • 是标签的帧数。

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

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

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

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

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

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

图中显示这些值如何确定一个长方体的位置。

标签预计长方体

labelType.Line

1矢量的细胞阵列,是标签的帧数。每个单元包含一个数组N2数值矩阵的形式[(x1, y1;x2 y2;…;xN yN)N分多段线。

labelType.PixelLabel

标签数据的所有像素标签定义存储在一个单一的1PixelLabelData图像或帧。每个元素包含一个像素标签图像文件名。一个像素标签图像描述标签或标签中包含相应的形象。标签可以被描述为一个1 -或3 -频道标签矩阵。使用PixelLabelData贴标签机的任何应用程序,您必须使用一个单通道标签矩阵的值类型uint8。你可以三路像素标签数据矩阵转换为单通道标签矩阵与贴标签机应用程序以编程方式使用。

labelType.Polygon

1矢量的细胞阵列,是标签的数量。每个单元包含一个数组N2数值矩阵的形式[(x1, y1;x2 y2;…;xN yN)N点在多边形。

labelType.Scene 逻辑1(真正的)如果现场应用标签。否则逻辑0()

标签数据格式

考虑一个单元阵列的标签使用收集的数据gatherLabelData函数。从三个函数收集标签groundTruthMultisignal对象和变量名gTruth1,gTruth2,gTruth3

  • 视频信号命名video_front_camera,函数收集类型的标签矩形

  • 激光雷达点云序列信号存储在一个文件夹命名lidarData,函数收集类型的标签长方体

这个代码显示了调用gatherLabelData函数。

labelData = gatherLabelData ([gTruth1 gTruth2 gTruth3),(“video_front_camera”,“lidarData”),{[labelType。矩形labelType.Line),labelType.Cuboid};
labelData输出是一个3×2单元阵列表。单元阵列的每一行包含标签的数据groundTruthMultisignal对象。第一列包含视频信号数据的标签,video_front_camera。第二列包含的标签数据点云序列信号,lidarData。这图显示了labelData单元阵列。

labelData单元阵列

这个图显示了视频信号标签数据表在第三groundTruthMultisignal对象。的gatherLabelData收集数据的函数矩形标签命名和一个标签命名车道。在四个表包含标签数据时间戳的信号。

标签的视频信号数据表labelData单元阵列

这个图显示了激光雷达信号标签数据表在第三groundTruthMultisignal对象。的gatherLabelData收集数据的函数长方体标签,也叫。的标签出现在两个信号类型,因为它被标记为一个矩形和一个标签的视频信号长方体标签,激光雷达信号。在四个表包含标签数据时间戳的信号。

标签为点云数据表信号labelData单元阵列

信号时间戳,作为一个返回——- - - - - -N单元阵列的持续时间向量,地点:

  • 的数量是groundTruthMultisignal对象gTruth

  • N信号的数量吗signalNames

  • labelData {m, n}包含的时间戳nth的信号signalNames这是在thgroundTruthMultisignal的对象gTruth

如果你收集标签数据从多个信号,信号时间戳同步时间戳的指定的第一个信号signalNames

版本历史

介绍了R2020a