gatherLabelData
从地面实况收集同步标签数据
语法
描述
返回从多信号地真值数据收集的同步标签数据,labelData
= gatherLabelData (gTruth
,signalNames
,labelTypes
)gTruth
.函数返回指定信号的标签数据signalNames
所指定的标签类型labelTypes
.
[
另外,使用前面语法中的参数返回与收集的标签数据关联的信号时间戳。labelData
,时间戳
= gatherLabelData(___)
使用时间戳
与writeFrames
函数写入关联的信号帧groundTruthMultisignal
对象到磁盘。使用这些框架和相关标签作为机器学习或深度学习模型的训练数据。
[___= gatherLabelData(___“SampleFactor”,
指定用于对标签数据进行子抽样的抽样因子。sampleFactor
)
例子
收集标签数据并写入相关信号帧
为视频信号和激光雷达点云序列信号收集标签数据groundTruthMultisignal
对象。将与该标签数据相关的信号帧写入磁盘并可视化这些帧。
将点云序列文件夹路径添加到MATLAB®搜索路径中。视频已经在MATLAB搜索路径上了。
pcSeqDir = fullfile(toolboxdir(“开车”),“drivingdata”,...“lidarSequence”);目录(pcSeqDir);
加载一个groundTruthMultisignal
对象,该对象包含视频和激光雷达点云序列的标签数据。
数据=负载(“MultisignalGTruth.mat”);gTruth = data.gTruth;
指定从其中收集标签数据的信号。
signalNames = [“video_01_city_c2s_fcw_10s”“lidarSequence”];
视频包含矩形标签,而激光雷达点云序列包含长方体标签。从视频中收集矩形标签,从激光雷达点云序列中收集长方体标签。
labelTypes = [labelType.]矩形labelType。长方体];[labelData,timestamps] = gatherLabelData(gTruth,signalNames,labelTypes);
显示来自两个信号的前八行标签数据。两个信号都包含车
标签。在视频中车
标签被绘制为一个矩形包围框。在激光雷达点云序列中车
标签绘制为长方体包围框。
videoLabelSample = head(labelData{1}) 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,时间戳);
从以下信号写入2帧:* 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 =预览(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
由input指定的。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。场景
.
sampleFactor
- - - - - -样本的因素
1
(默认)|正整数
抽样因子用于对标签数据进行子抽样,指定为正整数。的抽样因子K
包括每一个K
第Th信号帧。增加采样因子以从高采样率的信号(如视频)中删除冗余帧。
例子:“SampleFactor”,5
输出参数
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
函数收集数据矩形
标签命名车
和一个行
标签命名车道
.该表包含信号中四个时间戳的标签数据。
该图显示了第三个激光雷达信号的标签数据表groundTruthMultisignal
对象。的gatherLabelData
函数收集数据长方体
标签,也叫车
.的车
标签出现在两种信号类型中,因为它被标记为矩形
视频信号标签和一个长方体
激光雷达信号标签。该表包含信号中四个时间戳的标签数据。
时间戳
-信号时间戳
单元格阵列持续时间
向量
信号时间戳,返回为米
——- - - - - -N
单元格阵列持续时间
向量,地点:
米
是groundTruthMultisignal
对象gTruth
.N
信号的数量是多少signalNames
.labelData {m, n}
控件的时间戳n
的信号signalNames
这是在米
thgroundTruthMultisignal
的对象gTruth
.
如果从多个信号中收集标签数据,则信号时间戳将与指定的第一个信号的时间戳同步signalNames
.
限制
的
gatherLabelData
函数不为子标签或属性收集标签数据。如果标签包含子标签或属性,则在labelData
输出时,函数只返回父标签的位置。
版本历史
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。