ROI标签的地面真实数据
的ROILabelData
对象中存储每个信号的感兴趣区域(ROI)标签定义的地面真值数据地面多路信号
对象。
当您导出地面多路信号
来自地面真理贴标机应用程序会话,ROILabelData
属性将ROI标签存储为ROILabelData
对象。创建ROILabelData
对象编程时,使用vision.labeler.labeldata.ROILabelData
函数(这里描述)。
信号名
- - - - - -信号的名字信号名称,指定为字符串数组。中出现的所有信号的名称地面多路信号
对象。您可以从现有的名称获取信号名称地面多路信号
通过访问数据源
属性。使用此命令并替换格特鲁斯
写着你的名字地面多路信号
对象变量。
gTruth.DataSource.SignalName
在一个出口地面多路信号
对象,ROILabelData
对象包含每个信号的标签数据属性,即使某些信号没有ROI标签数据。
所创建的属性ROILabelData
对象中指定的名称信号名
.
例子:[“视频\u 01\u城市\u c2s\u fcw\u 10s”“lidarSequence”]
唇形目
- - - - - -每个信号的ROI标签数据每个信号的ROI标签数据,指定为时间表的单元格数组。单元格数组中的每个时间表都包含位于相应位置的信号数据信号名
输入。的ROILabelData
对象将每个时间表存储在与该信号具有相同名称的属性中。
每个信号的时间表格式取决于来自地面多路信号
导出或正在创建的对象。
每个时间表包含存储在中的每个标签定义的一列LabelDefinitions
财产地面多路信号
对象。排除信号类型不支持的标签定义。例如,假设您定义了金宝app行
ROI标签命名为“莱恩”
.激光雷达点云信号的时间表不包括车道
列,因为这些信号不支持金宝app行
ROI标签。在数据源
财产地面多路信号
对象,SignalType
属性列出有效的信号类型。
时间表的高度是由信号中的时间戳的数量定义的。在数据源
财产地面多路信号
对象,时间戳
属性列出信号时间戳。
对于每个标签定义,在该时间戳标记的所有ROI标签将组合到表中的单个单元格中。考虑存储在地面多路信号
对象,格特鲁斯
.在每个时间戳,汽车
包含三个标签,卡车
包含一个标签,和车道
包含两个标签。
gTruth.ROILabelData.video_01_city_c2s_fcw_10s
5×4 4个时间表时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间时间汽车、卡车、汽车、汽车、卡车、汽车、卡车、汽车、汽车、汽车、卡车、汽车、汽车、汽车、汽车、汽车、卡车、汽车、汽车、汽车、卡车、汽车、汽车、汽车、汽车、UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU\\\\厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄厄{2×1细胞}0.15秒{3×4双细胞}{1×4双细胞}{2×1细胞}0.2秒{3×4双细胞}{1×4双细胞}{2×1细胞}
ROI标签数据的存储格式取决于标签类型。
标签类型 | 标签在每个时间戳的存储格式 |
---|---|
labelType。矩形 |
|
|
该图显示了这些值如何确定长方体的位置。 |
|
该图显示了这些值如何确定长方体的位置。
|
labelType。行 |
|
labelType。PixelLabel |
所有像素标签定义的标签数据存储在一个单独的米-by-1 |
labelType。多边形 |
|
labelType。自定义 |
标签的存储方式与时间表中指定的完全相同。如果导入 |
如果ROI标签数据包括子标签或属性,则每个时间戳处的标签必须指定为结构。
标签结构字段 | 描述 | ||||||
---|---|---|---|---|---|---|---|
位置 |
父标签在给定时间戳处的位置 格式 |
||||||
AttributeName1,…,AttributeNameN |
父标签的属性 每个定义的子标签都有自己的字段,字段的名称对应于属性名。属性值是一个字符向量 |
||||||
SublabelName1,…,SublabelNameN |
父标签的子标签 每个定义的子标签都有自己的字段,字段的名称对应于子标签的名称。每个子标签字段的值是一个结构,其中包含给定时间戳下所有具有该名称的标记子标签的数据。 该表描述了子标签结构的格式。
|
SignalName1,…,SignalNameN
- - - - - -每个信号的ROI标签数据(作为单独的属性)ROI标签数据,指定为时间表。的ROILabelData
对象的每个信号包含一个属性,其中每个属性包含相应于该信号的ROI标签数据的时间表。
当出口ROILabelData
来自地面真理贴标机应用程序会话中,属性名称与存储在数据源
出口货物的财产地面多路信号
对象。
当创建一个ROILabelData
对象编程,信号名
和唇形目
输入参数定义所创建对象的属性名称和值。
假设你想创建一个地面多路信号
对象,包含视频信号和激光雷达点云序列信号。在字符串数组中指定信号,信号名
.
signalNames = [“video_01_city_c2s_fcw_10s”“lidarSequence”];
存储视频ROI标签,可视数据
,激光雷达点云序列ROI标签,利多卡因
,在一个时间表单元数组中,唇形目
.每个时间表都包含相应的输入信号的数据信号名
.
labelData ={可视数据,lidarData}
1×2单元阵列{204×2时间表}{34×1时间表}
的ROILabelData
对象,roiData
,将此数据存储在具有相应信号名称的属性中。您可以指定roiData
在ROILabelData
财产的地面多路信号
对象。
roiData = vision.labeler.labeldata.ROILabelData (signalNames labelData)
roiData = ROILabelData with properties: video_01_city_c2s_fcw_10s: [204×2时刻表]lidarSequence: [34×1时间表]
为视频信号和激光雷达点云序列信号创建地面真实数据,捕获相同的驾驶场景。指定信号源、标签定义、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)负载时间戳rmpath(pcSeqFolder) lidarSourceData = load(fullfile(pcSeqFolder),“timestamps.mat”)); sourceName=pcSeqFolder;sourceParams=struct;sourceParams.timestaps=时间戳;pcseqSource=vision.labeler.loading.PointCloudSequenceSource;pcseqSource.loadSource(sourceName,sourceParams);
将信号源组合成一个阵列。
数据源=[vidSource pcseqSource]
dataSource = 1x2异构MultiSignalSource (VideoSource, PointCloudSequenceSource)数组属性:SourceName SourceParams SignalName SignalType Timestamp NumSignals
创建一个标签定义表为地面真值数据使用labelDefinitionCreatorMultisignal
对象。
的汽车
标签定义出现两次。尽管汽车
定义为矩形,则只能为图像信号(如视频)绘制矩形。的labelDefinitionCreatorMultisignal
对象为激光雷达点云信号创建额外的行。在这些信号类型中,您可以绘制汽车
标签仅为长方体。
标签定义没有描述,也没有指定的颜色,因此描述
和LabelColor
列是空的。
标签定义没有指定的组,因此对于所有标签定义,标签中的对应单元格集团
列设置为“没有”
.
路
是一个像素标签定义,所以表格包括PixelLabelID
柱
没有标签定义有子标签或属性,因此表不包括等级制度
用于存储此类信息的列。
ldc=labelDefinitionCreatorMultisignal;添加标签(ldc,“汽车”,“矩形”);添加标签(ldc,“卡车”,“ProjectedCuboid”);添加标签(ldc,“车道”,“行”);添加标签(ldc,“路”,“像素标签”);添加标签(ldc,“阳光灿烂”,“现场”);labelDefs =创建(ldc)
labelDefs = 6 x7表名SignalType LabelType组描述LabelColor PixelLabelID _________ __________ _______________ ________ ___________ __________ ____________ {' 汽车的}图像矩形{”没有 '} {' '} { 0 x0 char} {0 x0双}{‘汽车’}PointCloud长方体{”没有 '} {' '} { 0 x0 char} {0 x0双}{“卡车”}形象ProjectedCuboid{‘没有’}{' '}{0x0 char} {0x0 double} {'Lane'} Image Line {'None'} {' '} {0x0 char} {0x0 double} {'Road'} Image PixelLabel {'None'} {' '} {0x0 char} {'Sunny'} Time Scene {'None'} {' '} {0x0 char} {'Sunny'} {'None'} {' '} {0x0 char} {' 0x0 char} {' 0x0 double}
创建视频第一帧的ROI标签数据。
numVideoFrames=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}=[309215,33,24330211,33,24];videoData=timegram(videoData.Timestamp{1,1,carData),laneData,...“VariableNames”, {“汽车”,“车道”});
为序列中的第一个点云创建ROI标签数据。
numPCFrames=numel(pcseqSource.Timestamp{1});carData=单元(numPCFrames,1);卡达塔{1}=[27.35 18.32-0.11 4.25 4.75 3.45 0 0];lidarData=时间表(pcseqSource.Timestamp{1},carData,“VariableNames”, {“汽车”});
合并两个源的ROI标签数据。
signalNames=[dataSource.SignalName];roiData=vision.labeler.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.labeler.labeldata.SceneLabelData(labelNames,{sunnyData})
sceneData=具有以下属性的SceneLabelData:Sunny:[0秒10秒]
从信号源、标签定义、ROI和场景标签数据创建地面真实值对象。您可以将此对象导入地面真理贴标机App用于手动贴标或在其上运行自动贴标算法。您还可以从该对象中提取训练数据,用于深度学习模型gatherLabelData
函数。
gTruth = groundTruthMultisignal(数据源、labelDefs roiData, sceneData)
gTruth=groundTruthMultisignal,具有以下属性:数据源:[1x2 vision.labeler.loading.MultiSignalSource]LabelDefinitions:[6x7表格]ROILabelData:[1x1 vision.labeler.labeldata.ROILabelData]SceneLabelData:[1x1 vision.labeler.labeldata.SCENABELDATA]
你点击一个链接对应于这个MATLAB命令:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你也可以从以下列表中选择一个网站:
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。