主要内容

groundTruthMultisignal

多信号地真值标签数据

自从R2020a

描述

groundTruthMultisignal对象包含有关地面真实数据源、标签定义和多个信号的标记标签注释的信息。信号源可以是视频、图像序列、激光雷达点云或任何其他包含多个信号的自定义格式。您可以导出或导入groundTruthMultisignal对象的地面真相标签应用程序。

为深度学习应用程序创建训练数据groundTruthMultisignal对象,使用gatherLabelData函数。

创建

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

描述

例子

gTruth= groundTruthMultisignal (数据源labelDefsroiDatasceneData对象返回一个对象,该对象包含可导入地面真相标签应用程序。

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

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

  • roiData指定标记的感兴趣区域(ROI)标签的识别信息、位置和时间戳,并设置ROILabelData财产。

  • sceneData为标记的场景标签指定标识信息和时间戳,并设置SceneLabelData财产。

属性

全部展开

地面真相数据的来源,指定为矢量MultiSignalSource对象。这些对象包含描述标记地面真相数据的来源的信息。该表描述的类型MultiSignalSource可以在此向量中指定的对象。

MultiSignalSource对象类型 数据源 类引用
VideoSource 视频文件 vision.labeler.loading.VideoSource
ImageSequenceSource 图像序列文件夹 vision.labeler.loading.ImageSequenceSource
VelodyneLidarSource 威力登®数据包捕获(PCAP)文件 vision.labeler.loading.VelodyneLidarSource
RosbagSource Rosbag文件 vision.labeler.loading.RosbagSource
PointCloudSequenceSource 点云序列文件夹 vision.labeler.loading.PointCloudSequenceSource
CustomImageSource 自定义图像格式 vision.labeler.loading.CustomImageSource

类型的新类型可指定其他数据源MultiSignalSource对象,使用vision.labeler.loading.MultiSignalSource类。

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

  • 地面真相标签应用程序,创建标签定义,然后将它们导出为groundTruthMultisignal对象。

  • 使用一个labelDefinitionCreatorMultisignal对象生成标签定义表。如果将该表保存到mat文件中,则可以将标签定义加载到地面真相标签通过选择App会话开放>标签定义从应用程序工具条。

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

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

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

要求

SignalType

SignalType枚举,指定每个标签定义支持的信号类型。金宝app有效值为图像对于视频或图像序列等图像信号,PointCloud对于激光雷达信号,或者时间用于场景标签定义。

如果标签定义支持多种信号类型,则标签定义对每金宝app种信号类型都有单独的行。例如,考虑一个名为.在地面真相标签在应用程序中,您将此标签在图像信号中绘制为矩形,在激光雷达点云信号中绘制为长方体。在LabelDefinitions表格出现两次,并有这些名字SignalType,LabelType值。

名字 SignalType LabelType
“汽车” 图像 矩形
“汽车” PointCloud 长方体

要求

LabelType

labelType指定每个标签定义类型的枚举。

用于ROI标签定义SignalType图像有效的LabelType枚举:

  • labelType。矩形

  • labelType。行

  • labelType。PixelLabel

  • labelType。多边形

  • labelType。ProjectedCuboid

用于ROI标签定义SignalTypePointCloud,唯一有效的LabelType枚举是labelType。长方体

对于场景标签定义,唯一有效LabelType枚举是labelType。场景

还可以将不是ROI或场景标签的真实数据添加到groundTruthMultisignal对象。在标签定义表中,指定标签定义labelType自定义

要求

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

可选

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

中导出标签定义地面真相标签应用程序或创建它们使用labelDefinitionCreatorMultisignal对象时,即使没有指定组,标签定义表也包含此列。应用程序为每个标签定义分配一个集团的价值“没有”

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

可选

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

中导出标签定义地面真相标签应用程序或创建它们使用labelDefinitionCreatorMultisignal对象时,即使没有指定描述,标签定义表也包含此列。的描述对于这些标签定义是一个空字符向量。

LabelColor RGB三元组的1 × 3行向量,指定标签定义的颜色。取值范围为[0,1]。颜色黄色(RGB三元组[1 1 0])是保留的选择标签的颜色地面真相标签应用程序。

可选

中定义标签时地面真相标签应用程序,您必须指定一个颜色。因此,导出的标签定义表总是包含此列。

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

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

可选

中定义像素标签时地面真相标签App或labelDefinitionCreatorMultisignal对象时,生成的标签定义表包括此列。

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

层次结构 结构,包含每个标签定义的子标签和属性数据。的例子层次结构格式,请参阅导出和探索多个信号的地真值标签

可选

属性中定义子标签或属性时地面真相标签App或labelDefinitionCreatorMultisignal对象时,生成的标签定义表包括此列。

所有信号的ROI标签数据,指定为ROILabelData对象。

矩形长方体ProjectedCuboid多边形,标签类型,非浮点数组的基本真实数据的数据类型为

场景标签数据跨越所有信号,指定为SceneLabelData对象。

对象的功能

selectLabelsByLabelName 根据标签名称选择多信号地真值
selectLabelsByLabelType 根据标签类型选择多信号地真值
selectLabelsByGroupName 根据标签组名称选择多信号地真值
selectLabelsBySignalName 根据信号名称选择多个信号地真值
selectLabelsBySignalType 根据信号类型选择多个信号地真值标签
gatherLabelData 从地面实况收集同步标签数据
writeFrames 将地面真实数据的信号帧写入磁盘
changeFilePaths 更改多信号地面真实数据中的文件路径

例子

全部折叠

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

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

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

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

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

将信号源组合成一个数组。

dataSource = [vidSource pcseqSource]
dataSource = 1x2异构MultiSignalSource (VideoSource, PointCloudSequenceSource)数组,属性为:SourceName SourceParams SignalName SignalType Timestamp NumSignals

属性为基本真相数据创建一个标签定义表labelDefinitionCreatorMultisignal对象。

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

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

  • 标签定义没有分配的组,因此对于所有标签定义,中对应的单元格集团列设置为“没有”

  • 是像素标签定义,所以表中包含PixelLabelID列。

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

ldc = labelDefinitionCreatorMultisignal;addLabel (ldc,“汽车”“矩形”);addLabel (ldc,“卡车”“ProjectedCuboid”);addLabel (ldc,“车道”“行”);addLabel (ldc,“路”“PixelLabel”);addLabel (ldc,“阳光”“现场”);labelDefs = create(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双}{'Road'}图像PixelLabel {'None'} {' '} {0x0 char} {[1]} {'Sunny'}时间场景{'None'} {' '} 0x0 char} {0x0 double}

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

numVideoFrames =数字(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.)时间戳{1},carData laneData,...“VariableNames”, {“汽车”“车道”});

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

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

结合两个来源的ROI标签数据。

signalNames = [dataSource.SignalName];roiData = vision. labler .labeldata. roilabeldata (signalNames,{videoData,lidarData})
roiData = ROILabelData with properties: video_01_city_c2s_fcw_10s: [204x2时间表]lidarSequence: [34x1时间表]

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

sunnyData = seconds([0 10]);labelNames = [“阳光”];sceneData = vision. labler .labeldata. scenelabeldata (labelNames,{sunnyData})
sceneData = SceneLabelData与属性:Sunny:[0秒10秒]

根据信号源、标签定义以及ROI和场景标签数据创建一个ground truth对象。对象中导入此对象地面真相标签应用程序手动标签或运行标签自动化算法。属性从此对象中提取深度学习模型的训练数据gatherLabelData函数。

gTruth = groundTruthMultisignal(dataSource,labelDefs,roiData,sceneData)
gTruth = groundTruthMultisignal with properties: DataSource: [1x2 vision.label .loading.]MultiSignalSource] LabelDefinitions: [7x7 table] ROILabelData: [1x1 vision.labeler.labeldata.ROILabelData] SceneLabelData: [1x1 vision.labeler.labeldata.SceneLabelData]

提示

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

  • 要创建groundTruthMultisignal对象,包含ROI标签数据但不包含场景标签数据,则指定SceneLabelData属性设置为空数组。要创建这个数组,在MATLAB命令提示符中输入以下代码。

    sceneData = vision. labler .labeldata. scenelabeldata .empty

版本历史

R2020a中引入