主要内容

SceneLabelData

现场标签的地面真实数据

描述

SceneLabelData对象存储在a中定义的场景标签定义的地面真理数据TroundtruthmultiSignal.对象。

创建

当您导出时TroundtruthmultiSignal.来自A的对象地面真理贴标机应用程序会话,SceneLabelData属性将场景标签存储为SceneLabelData对象。创建一个SceneLabelData以编程方式对象,使用vision.labeler.labeldata.SceneLabelData功能(这里描述)。

描述

例子

场景= Vision.Labeler.Labeldata.ScenelabeldAta(labelNamesLabeldata.为多个信号创建一个包含场景标签数据的对象。创建的对象,场景中列出的场景标签名称包含属性labelNames.这些属性存储了相应的场景标签数据Labeldata.

输入参数

展开全部

场景标签名称,指定为字符串数组。指定存在的所有场景标签的名称TroundtruthmultiSignal.您正在创建的对象。您可以从现有的现场标签名称获取TroundtruthmultiSignal.通过访问的对象LabelDefinitions对象的属性。使用此代码并替换GTRUTH.一个名字TroundtruthmultiSignal.对象变量。

isSceneLabel = gtruth . labeldefinition . labeltype ==“现场”;gTruth.LabelDefinitions.Name (isSceneLabel)

在出口时TroundtruthmultiSignal.对象,SceneLabelData对象包含每个场景标签的标签数据属性,即使某些场景标签没有标签数据。

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

例子:[“晴”、“雨”、“城”、“乡”]

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

每个场景标签矩阵都有大小N2。这个矩阵中的每一行都对应于应用了场景标签的时间范围。N时间段的个数。矩阵中的行是这种形式的[rangestart,范围], 在哪里rangeStart范围指定应用的场景标签的时间范围的开始和结束。

行元素具有类型持续时间的所有时间戳的最小值和最大值的范围TroundtruthmultiSignal.对象。如果没有应用场景标签,则指定一个空矩阵。

例子:秒([0 5;10个20])指定一个持续时间矩阵对应于一个场景标签TroundtruthmultiSignal.对象。单位是秒。场景标签在0到5秒和10到20秒之间应用,覆盖对象中的所有信号。指定此矩阵作为包含附加场景标签矩阵的单元格数组的一部分。

属性

展开全部

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

当出口SceneLabelData来自A的对象地面真理贴标机的会话,属性名对应于场景标签名存储在LabelDefinitions出口的财产TroundtruthmultiSignal.对象。

创建A.SceneLabelData对象编程,labelNamesLabeldata.输入参数定义创建对象的属性名称和值。

假设你想创建一个TroundtruthmultiSignal.对象,该对象包含场景标签,描述场景是晴天、雨天、城市还是农村。在字符串数组中指定场景标签,labelNames

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

将每个场景标签的标签数据存储在矩阵的单元格数组中,Labeldata..每个矩阵包含相应的场景标签的数据labelNames

Labeldata = {Sunnydata,Rainydata,Urbandata,Rowndata}
1×4 cell array {1×2 duration} {2×2 duration} {0×0 duration} {4×2 duration}

SceneLabelData对象,Scenedata.,将此数据存储在具有相应信号名称的属性中。您可以指定Scenedata.SceneLabelData财产的TroundtruthmultiSignal.对象。

scenedata = Vision.Labeler.Labeldata.SceneLabeldata(LabelNames,Labeldata)
sceneData = SceneLabelData带有属性:rainy: [2×2 duration] sunny: [0 sec 10.15 sec] rural: [4×2 duration] urban: [0×0 duration]

对象功能

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 (“开车”),'divertdata'“lidarSequence”);目录(pcSeqFolder)负载时间戳.mat.rmpath(pcSeqFolder) lidarSourceData = load(fullfile(pcSeqFolder),'timestamps.mat'));sourceName = pcSeqFolder;sourceParams =结构;sourceParams。时间戳=时间戳;pcseqSource = vision.labeler.loading.PointCloudSequenceSource;pcseqSource.loadSource (sourceName sourceParams);

将信号源组合成一个阵列。

dataSource = [vidSource pcseqSource]
DataSource = 1x2异构MultiSignalSource(VideoSource,PointCloudSequenceSource)数组,具有属性:SourceName SourceParams信号名称信号TypePe时间戳NumSignals

创建一个标签定义表为地面真值数据使用labelDefinitionCreatorMultisignal对象。

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

  • 标签定义没有描述,也没有指定的颜色,因此描述LabelColor列是空的。

  • 标签定义没有指定的组,因此对于所有标签定义,集团列设置为'没有任何'

  • 是一个像素标签定义,所以表格包括Pixellabelid.柱子。

  • 没有标签定义具有子标签或属性,因此该表不包括一个层次结构存储此类信息的列。

ldc = labelDefinitionCreatorMultisignal;addLabel (ldc,“汽车”“矩形”);addLabel (ldc,“卡车”“ProjectedCuboid”);addLabel (ldc,'车道'“行”);addLabel (ldc,“路”'pixellabel');addLabel (ldc,“阳光”“现场”);labelDefs =创建(ldc)
labeldefs = 6x7表名称signalype labeltype组描述labelcolor pixellabelid ______________________________________________________________0 dource} {'none'} {0x0 double} {'car'} pointcloud cumoid {'none'} {''} {0x0 char} {0x0 char} {0x0 double} {'truck'}图像projectedcuboid {'none'} {'''} {0x0 char} {0x0 double} {'line'} {'line'}图片线{'没有'} {''} {0x0 char} {0x0 char} {0x0 double} {'道路'} image pixellabel {'none'} {''} {0x0 char} {[1]} {'sunny'}时间场景{'none'} {''} {0x0 char} {0x0 double}

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

numvideoframe = numel(vidsource.timestamp {1});cardata = cell(numvideoframes,1);lanedata = cell(numvideoframes,1);TruckData = Cell(NumVideoframes,1);Cardata {1} = [304 212 37 33];Lanedata {1} = [70 458;311 261];Truckdata {1} = [309,215,33,24,330,211,33,24];videodata =时间表(Vidsource.Timestamp {1},Cardata,Lanedata,...“VariableNames”, {“汽车”'车道'});

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

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

将ROI标签数据组合到两个来源。

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

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

sunnyData = seconds([0 10]);labelNames = [“阳光”];scenedata = vision.labeler.labeldata.scenelabeldata(labelnames,{sunnydata})
scenedata =具有属性的场景:sunny:[0 sec 10 sec]

从信号源,标签定义和ROI和场景标签数据创建一个地面真理对象。您可以将此对象导入其中地面真理贴标机用于手动标记的应用程序或在其上运行标签自动化算法。您还可以通过使用的深度学习模型从此对象中提取培训数据Gatherlabeldata.函数。

gtruth = tourttruthmultiSignal(DataSource,Labeldefs,Roidata,Scenedata)
gTruth = groundTruthMultisignal with properties: DataSource: [1x2 vision.label .loading.]ROILabelData: [1x1 vision. laber .labeldata. MultiSignalSource] LabelDefinitions: [6x7 table]SceneLabelData: [1x1 vision. laber .labeldata.SceneLabelData]

提示

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

    sceneData = vision.labeler.labeldata.SceneLabelData.empty

在R2020A中介​​绍