主要内容

SceneLabelData

现场地面实况数据标签

自从R2020a

描述

SceneLabelData对象存储地面实况数据场景中定义的标签定义groundTruthMultisignal对象。

创建

当你出口groundTruthMultisignal对象从一个地面实况贴标签机应用程序会话,SceneLabelData出口对象的属性存储场景作为标签SceneLabelData对象。创建一个SceneLabelData对象编程,使用vision.labeler.labeldata.SceneLabelData函数(这里描述)。

描述

例子

sceneLabelData= vision.labeler.labeldata.SceneLabelData (labelNames,labelData)创建一个对象包含现场标签数据的多个信号。创建的对象,sceneLabelData与现场标签,包含属性名称中列出labelNames。这些属性指定的标签数据存储相应的场景labelData

输入参数

全部展开

现场标签名称,指定为一个字符串数组。指定所有场景的名称标签中groundTruthMultisignal您正在创建的对象。你可以现场从现有的标签名称groundTruthMultisignal对象通过访问LabelDefinitions该对象的属性。使用这个代码和替换gTruth的名称groundTruthMultisignal对象变量。

isSceneLabel = gTruth.LabelDefinitions。LabelType = =“现场”;gTruth.LabelDefinitions.Name (isSceneLabel)

在一个出口groundTruthMultisignal对象,SceneLabelData对象包含一个标签为每个场景数据属性标签,即使一些场景标签没有标签的数据。

创建的属性SceneLabelData对象指定的名称labelNames

例子:(“阳光”“雨”“城市”“农村”)

现场每个标签,标签数据指定的单元阵列持续时间矩阵。单元阵列中的每个矩阵包含场景的数据标签的在相应的位置labelNames输入。的SceneLabelData对象存储每个矩阵的属性名称相同的信号。

每个场景标签矩阵的大小N2。在这个矩阵每一行对应一个时间范围,现场标签已被应用。N是时间的数量范围。形式的矩阵中的行[rangeStart, rangeEnd],在那里rangeStartrangeEnd指定一个时间范围的开始和结束标签的应用场景。

行类型的元素持续时间和一定范围内的最小值和最大值的时间戳groundTruthMultisignal对象。如果现场没有应用标签,然后指定一个空矩阵。

例子:秒([0 5;10个20])指定一个持续时间标签在一个矩阵对应于一个场景groundTruthMultisignal对象。单位是秒。现场标签应用从0到5秒,再从10到20秒,所有信号在对象。这个矩阵指定为一个包含矩阵单元阵列的一部分额外的标签。

属性

全部展开

现场标签数据,指定为持续时间矩阵。的SceneLabelData每现场标签定义对象包含一个属性,每个属性包含一个持续时间矩阵的标签数据对应,现场标签。

当出口SceneLabelData对象从一个地面实况贴标签机应用程序会话属性名对应现场存储在标签名称LabelDefinitions导出的属性groundTruthMultisignal对象。

当创建一个SceneLabelData对象编程,labelNameslabelData输入参数定义创建对象的属性的名称和值。

假设您希望创建一个groundTruthMultisignal对象包含现场标签描述现场是否阳光明媚,雨天,城市或农村。在一个字符串数组,指定现场标签labelNames

labelNames = [“阳光”“雨”“城市”“农村”];

存储单元阵列中的每个场景标签标签数据的矩阵,labelData。每个矩阵包含的数据对应的标签labelNames

labelData = {sunnyData, rainyData、urbanData ruralData}
1×4单元阵列{1×2时间}{2×2时间}{0×0时间}{4×2时间}

SceneLabelData对象,sceneData,将这些数据存储在属性名称与相应的信号。您可以指定sceneDataSceneLabelData财产的groundTruthMultisignal对象。

sceneData = vision.labeler.labeldata.SceneLabelData (labelNames labelData)
sceneData = SceneLabelData属性:雨:[2×2时间]阳光:[0秒10.15秒]农村:[4×2时间]城市:[0×0时间]

对象的功能

labelDefinitionsAtTime 得到现场标签定义名称在指定时间戳
labelDataAtTime 得到现场标签数据在指定时间戳

例子

全部折叠

创建地面实况视频信号和激光雷达点云数据序列的信号捕获相同的驾驶场景。指定的信号来源,标签定义和ROI和现场标签数据。

创建视频数据从一个MP4文件来源。

sourceName =“01 _city_c2s_fcw_10s.mp4”;sourceParams = [];vidSource = vision.labeler.loading.VideoSource;vidSource.loadSource (sourceName sourceParams);

从一个文件夹创建源点云序列的点云数据(PCD)文件。

pcSeqFolder = fullfile (toolboxdir (“开车”),“drivingdata”,“lidarSequence”);目录(pcSeqFolder)负载timestamps.matrmpath (pcSeqFolder) lidarSourceData =负载(fullfile (pcSeqFolder,“timestamps.mat”));sourceName = pcSeqFolder;sourceParams =结构;sourceParams。时间戳=时间戳;pcseqSource = vision.labeler.loading.PointCloudSequenceSource;pcseqSource.loadSource (sourceName sourceParams);

结合信号来源到一个数组中。

数据源= [vidSource pcseqSource]
数据源异构MultiSignalSource = 1 x2 (VideoSource PointCloudSequenceSource)数组属性:SourceName SourceParams SignalName NumSignals SignalType时间戳

创建一个表的标签定义地面实况数据通过使用labelDefinitionCreatorMultisignal对象。

  • 标签定义出现两次。尽管被定义为一个矩形,您可以绘制矩形只对图像信号,如视频。的labelDefinitionCreatorMultisignal对象创建一个额外的行激光雷达点云的信号。在这些信号类型,你可以画画标签是长方体。

  • 标签定义没有描述和指定颜色,所以描述LabelColor列是空的。

  • 标签定义没有分配组,对于所有标签定义相应的细胞集团列被设置为“没有”

  • 是一个像素标签定义,那么表包括一个PixelLabelID列。

  • 没有标签定义sublabels或属性,所以表不包括层次结构列来存储这些信息。

ldc = labelDefinitionCreatorMultisignal;addLabel (ldc,“汽车”,“矩形”);addLabel (ldc,“卡车”,“ProjectedCuboid”);addLabel (ldc,“车道”,“行”);addLabel (ldc,“路”,“PixelLabel”);addLabel (ldc,“阳光”,“现场”);labelDefs =创建(ldc)
labelDefs = 7 x7表名SignalType LabelType组描述LabelColor PixelLabelID _____ __________售予________ ___________ __________ _______{‘汽车’}图像矩形{‘没有’}{‘}{0 x0 char} {0 x0双}{‘汽车’}PointCloud长方体{‘没有’}{‘}{0 x0 char} {0 x0双}{“卡车”}形象ProjectedCuboid{‘没有’}{‘}{0 x0 char} {0 x0双}{“车道”}图像行{‘没有’}{‘}{0 x0 char} {0 x0双}{“车道”}PointCloud行{‘没有’}{‘}{0 x0 char} {0 x0双}{‘路’}形象PixelLabel{‘没有’}{‘}{0 x0 char}{[1]}{‘阳光’}时间场景{‘没有’}{‘}{0 x0 char} {0 x0双}

创建ROI标签数据的第一帧视频。

numVideoFrames =元素个数(vidSource.Timestamp {1});carData =细胞(numVideoFrames, 1);laneData =细胞(numVideoFrames, 1);truckData =细胞(numVideoFrames, 1);carData {1} = [304 212 37 33];laneData {1} = (70 458;311 261);truckData{1} =[309215, 33岁,24330211年,33岁的24);可视数据=时间表(vidSource.Timestamp {1}, carData, laneData,“VariableNames”,{“汽车”,“车道”});

创建ROI标签序列中的第一个点云数据。

numPCFrames =元素个数(pcseqSource.Timestamp {1});carData =细胞(numPCFrames, 1);carData {1} = [27.35 18.32 -0.11 4.25 4.75 3.45 0 0 0);lidarData =时间表(pcseqSource.Timestamp {1}, carData,“VariableNames”,{“汽车”});

结合ROI标签数据的来源。

signalNames = [dataSource.SignalName];roiData = vision.labeler.labeldata.ROILabelData (signalNames{可视数据,lidarData})
roiData = ROILabelData属性:video_01_city_c2s_fcw_10s: [204 x2时间表]lidarSequence: [34 x1时间表)

创建场景标签数据前10秒钟的驾驶场景。

sunnyData =秒(10 [0]);labelNames = [“阳光”];sceneData = vision.labeler.labeldata.SceneLabelData (labelNames {sunnyData})
sceneData = SceneLabelData属性:阳光:[0秒10秒)

创建一个地面实况对象的信号来源,标签定义和ROI和现场标签数据。你可以将这个对象导入地面实况贴标签机应用手动标记或标签自动化运行算法。您还可以从这个对象中提取训练数据的深度学习模型通过使用gatherLabelData函数。

gTruth = groundTruthMultisignal(数据源、labelDefs roiData, sceneData)
gTruth = groundTruthMultisignal属性:数据源:[1 x2 vision.labeler.loading。MultiSignalSource] LabelDefinitions: [7 x7表]ROILabelData: [1 x1 vision.labeler.labeldata。ROILabelData] SceneLabelData: [1 x1 vision.labeler.labeldata.SceneLabelData]

提示

  • 创建一个groundTruthMultisignal对象包含ROI标签数据但没有现场标签数据,指定SceneLabelData属性是一个空数组。要创建这个数组,在MATLAB®命令提示符,输入此代码。

    sceneData = vision.labeler.labeldata.SceneLabelData.empty

版本历史

介绍了R2020a