gatherLabelData
语法
描述
返回从多信号接地真值数据收集的同步标签数据,labelData
= gatherLabelData (gTruth
,signalNames
,labelTypes
)gTruth
.函数返回指定信号的标签数据signalNames
指定的标签类型labelTypes
.
(
另外,使用前面语法中的参数,返回与收集到的标签数据相关联的信号时间戳。labelData
,时间戳
= gatherLabelData(___)
使用时间戳
与writeFrames
函数写入相关的信号帧groundTruthMultisignal
对象到磁盘。使用这些框架和相关标签作为机器学习或深度学习模型的训练数据。
(___= gatherLabelData(___,
除了使用先前语法中的任何参数组合外,还使用一个或多个名称-值参数指定选项。例如,名称=值
)Verbose = True
启用工作区环境的显示。
例子
收集标签数据并写入相关信号帧
为视频信号和激光雷达点云序列信号收集标签数据groundTruthMultisignal
对象。将与该标签数据相关联的信号帧写入磁盘并可视化这些帧。
将点云序列文件夹路径添加到MATLAB®搜索路径中。视频中已经介绍了MATLAB搜索路径。
pcSeqDir = fullfile(toolboxdir)“开车”),“drivingdata”,…“lidarSequence”);目录(pcSeqDir);
加载一个groundTruthMultisignal
对象,该对象包含视频和激光雷达点云序列的标签数据。
Data = load()“MultisignalGTruth.mat”);gTruth = data.gTruth;
指定从中收集标签数据的信号。
signalNames = [“video_01_city_c2s_fcw_10s”“lidarSequence”];
视频包含矩形标签,而激光雷达点云序列包含长方体标签。从视频中收集矩形标签,从激光雷达点云序列中收集长方体标签。
labelTypes = [labelType.]矩形labelType。长方体];[labelData,timestamp] = gatherLabelData(gTruth,signalNames,labelTypes);
显示来自两个信号的前八行标签数据。两个信号都包含车
标签。在视频中,车
标签绘制为矩形边界框。在激光雷达点云序列中车
标签绘制为一个长方体边界框。
videoLabelSample = head(labelData{2}) lidarLabelSample = head(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”]);fileNames = writeFrames(gTruth,signalNames,outputFolder,timestamp);
* video_01_city_c2s_fcw_10s * lidarSequence
加载写入的视频信号帧imageDatastore
对象。控件加载关联的矩形标签数据boxLabelDatastore
对象。
imds = imageDatastore(文件名{1});blds = boxLabelDatastore(labelData{1});
加载写入的激光雷达信号帧fileDatastore
对象。类加载关联的长方体标签数据boxLabelDatastore
对象。
fds = fileDatastore(文件名{2},“ReadFcn”, @pcread);clds = boxLabelDatastore(labelData{2});
可视化编写的视频帧使用愿景。放像机
对象。可视化的书面激光雷达框架使用pcplayer
对象。
videoPlayer = vision.VideoPlayer;ptCloud = preview(fds);ptCloudPlayer = pcplayer(ptCloud.XLimits,ptCloud.YLimits,ptCloud.ZLimits);而hasdata (imd)%读取视频和激光雷达帧。I = read(imds);ptCloud = read(fds);可视化视频和激光雷达帧。放像机(我);视图(ptCloudPlayer ptCloud);结束
删除点云序列文件夹的路径。
rmpath (pcSeqDir);
输入参数
gTruth
- - - - - -多信号接地真值数据
groundTruthMultisignal
对象|向量的groundTruthMultisignal
对象
多信号接地真值数据,指定为agroundTruthMultisignal
的对象或向量groundTruthMultisignal
对象。
每一个groundTruthMultisignal
对象gTruth
必须包括?中指定的所有信号signalNames
输入。
此外,每个对象必须包括每个收集到的标签定义至少一个标记的标签。假设gTruth
是一个groundTruthMultisignal
对象,该对象包含单个视频信号的标签数据video_front_camera
.对象包含标记的矩形感兴趣区域(ROI)标签车
的标签定义,而不是卡车
标签定义。如果使用此语法收集类型的标签矩形
从这个对象,然后gatherLabelData
函数返回一个错误。
labelData = gatherLabelData(gTruth,“video_front_camera”, labelType.Rectangle);
signalNames
- - - - - -信号名称
特征向量|字符串标量|字符向量的单元数组|字符串数组
要从中收集标签数据的信号的名称,指定为字符向量、字符串标量、字符向量的单元数组或字符串向量。信号名必须是存储在输入多信号接地真值数据中的有效信号名;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”)
labelTypes
- - - - - -标签类型
labelType
枚举标量|labelType
枚举向量|单元阵列labelType
枚举标量和向量
要从中收集标签数据的标签类型,指定为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_camera
和video_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。线),…labelType.Cuboid};
有效枚举类型
您可以指定这些枚举类型中的一个或多个。
labelType。矩形
-矩形ROI标签labelType。长方体
-长方体ROI标签(点云)labelType。ProjectedCuboid
-投影长方体ROI标签(图像和视频数据)labelType。行
-线ROI标签labelType。PixelLabel
-像素ROI标签labelType。多边形
-像素ROI标签labelType。场景
-场景标签
要收集场景的标签数据,必须指定labelTypes
随着labelType。场景
枚举标量。不能指定任何其他标签类型labelType。场景
.
名称-值参数
指定可选的参数对为Name1 = Value1,…,以=家
,在那里名字
是参数名和吗价值
是对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
例子:(SamplingFactor
=5
)将子采样因子设置为5
每五帧掉一次。
SamplingFactor
- - - - - -因子的子采样图像
1
(默认)|整数|整数向量
用于对标签数据进行子采样的样本因子,指定为正整数。的样本因子K
包括每一个K
信号帧。增加采样因子,从高采样率的信号(如视频)中删除冗余帧。要设置SamplingFactor
对于投影长方体数据,必须指定LabelData
名称-值参数labelType。ProjectedCuboid
.
使用采样数据来减少重复数据,例如具有相同场景和标签的图像序列。它还可以帮助减少训练时间。
GroupLabelData
- - - - - -对标签数据中的列进行分组
“LabelName”
(默认)|“LabelType”
对标签数据中的列进行分组,指定为“LabelName”
或“LabelType”
.
“LabelName”
—按标签定义将标签数据分组成列。“LabelType”
—按标签类型将标签数据分组成列。您可以使用此选项收集标签数据,同时保留由标签类型确定的感兴趣区域(ROI)堆叠顺序。
IncludeAttributeAndSublabel
- - - - - -逻辑上指示是否在标签数据输出中返回属性和子标签数据
假
(0
)(默认)|真正的
(1
)
用于指示标签数据输出中是否返回属性和子标签数据,指定为逻辑假
(0
)或真正的
(1
).的值假
表示只收集与roi对应的位置值。的值真正的
中的每个表LabelData
包含结构体,其中包含与每个标签关联的位置、属性和子标签。
输出参数
labelData
-标签数据
表的单元格数组
标签数据,作为类型返回米
——- - - - - -N
表的单元格数组,其中:
米
的数量是多少?groundTruthMultisignal
对象gTruth
.当
labelTypes
包含ROIlabelType
枚举,N
信号的数量在吗signalNames
元素的个数labelTypes
.在这种情况下,labelData {m, n}
控件的标签数据表n
的信号signalNames
这是在米
thgroundTruthMultisignal
的对象gTruth
.表中只包含标签类型的标签数据n
的位置labelTypes
.当
labelTypes
只包含labelType。场景
枚举,N
等于1
.在这种情况下,labelData {m}
中所有信号的场景标签数据表米
thgroundTruthMultisignal
的对象gTruth
.
对于给定的标签数据表,资源描述
这张桌子大小合适T
——- - - - - -l
,地点:
T
信号中存在标签数据的时间戳数。l
为该信号收集的标签类型的标签定义的数目。台(t、l)
方法收集的标签数据l
这里的标签t
时间戳。
如果其中一个信号在时间戳处没有标签数据,则相应的标签数据表不包含该时间戳的行。
对于表中的每个单元格,返回的标签数据格式取决于标签的类型。
标签类型 | 标签在每个时间戳的存储格式 |
---|---|
labelType。矩形 |
|
|
图中显示了这些值如何确定长方体的位置。 |
|
图中显示了这些值如何确定长方体的位置。
|
labelType。行 |
|
labelType。PixelLabel |
所有像素标签定义的标签数据都存储在一个米1 |
labelType。多边形 |
|
labelType。场景 |
逻辑1 (真正的 ),如果应用了场景标签。否则逻辑0 (假 ) |
标签数据格式
方法收集标签数据的单元格数组gatherLabelData
函数。该函数从三个标签中收集标签groundTruthMultisignal
具有变量名的对象gTruth1
,gTruth2
,gTruth3
.
的视频信号
video_front_camera
,该函数收集类型的标签矩形
和行
.对于一个激光雷达点云序列信号存储在一个名为
lidarData
,该函数收集类型的标签长方体
.
方法的调用gatherLabelData
函数。
labelData = gatherLabelData([gTruth1 gTruth2 gTruth3],…(“video_front_camera”,…“lidarData”],…{[labelType。矩形labelType。线),…labelType.Cuboid};
labelData
输出是一个3 × 2单元格的表数组。单元格数组的每一行都包含标签数据groundTruthMultisignal
对象。第一列包含视频信号的标签数据;video_front_camera
.第二列包含点云序列信号的标签数据;lidarData
.该图显示了labelData
单元阵列。
该图显示了第三个视频信号的标签数据表groundTruthMultisignal
对象。的gatherLabelData
函数为a收集数据矩形
标签命名车
和一个行
标签命名车道
.该表包含信号中四个时间戳的标签数据。
该图为第三节激光雷达信号的标签数据表groundTruthMultisignal
对象。的gatherLabelData
函数为a收集数据长方体
标签,也称为车
.的车
标签出现在两种信号类型中,因为它被标记为矩形
标签用于视频信号和a长方体
激光雷达信号标签。该表包含信号中四个时间戳的标签数据。
时间戳
-信号时间戳
单元阵列持续时间
向量
信号时间戳,作为米
——- - - - - -N
单元阵列持续时间
向量,地点:
米
的数量是多少?groundTruthMultisignal
对象gTruth
.N
信号的数量在吗signalNames
.labelData {m, n}
的时间戳n
的信号signalNames
这是在米
thgroundTruthMultisignal
的对象gTruth
.
如果从多个信号中收集标签数据,则信号时间戳将与第一个信号的时间戳同步signalNames
.
版本历史
在R2020a中引入
MATLAB命令
您点击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。