如何给你的数据集贴上地面真实性标签
地面真相标签是在现实世界中检查机器学习结果是否准确的过程。例如,自动驾驶系统可以在没有人类司机或人类干预的情况下移动。
相反,这些类型的汽车使用传感器感知环境。例如,地面真理标签程序为汽车应用的视频和图像贴上标签。
我们都知道,贴标签是一个繁琐而耗时的过程。但是,有必要创建测试数据来准确评估我们的感知算法。地面真相标签器是我们为减少这些痛点而创建的一个工具。
本教程将研究如何为物体检测和语义分割创建地面真实数据。我们将使用算法来实现标签过程的自动化,并整合来自其他传感器的地面真实信息。
前提条件
要跟上本教程,你需要具备以下条件。
- 安装了[MATLAB]。
- 对[MATLAB]基础知识的了解。
如何找到该应用程序
要找到这个应用程序。
- 在窗口的顶部,点击
APPS,然后点击下拉箭头,如下图所示。

- 在自动化部分找到地表真值标记器。

- 点击地表真值标签器,打开它。
地面真相标签器允许我们为汽车应用的视频和图像贴标签。我们都知道,标签是一个繁琐而耗时的过程,但它是必要的。
它为我们提供了评估感知算法的测试数据。
我们这个教程的工作流程将是。
- 为检测和语义分割创建基础真实数据。
- 使用一种算法来自动进行标记过程。
- 整合来自其他传感器的地面真实信息。
创建用于物体检测和语义分割的地面真实数据
一旦我们打开应用程序,我们需要将数据加载到其中。要做到这一点,点击左上角的load 。
如果你点击它,该应用程序将询问你要输入的数据类型。正如你所看到的,我们有三个选项:视频、图像序列和自定义阅读器。
这个应用程序中最常见的数据文件格式是视频和图像序列。但是,如果你的文件格式与上述文件格式不同,我们就使用自定义阅读器。
在本教程中,我们将加载一个25秒的视频到应用程序中。做完这些后,我们通过点击标签按钮,从ROI(感兴趣区域)标签开始。

当你点击它时,下面的窗口就会打开。

现在,让我们从vehicle ,然后点击ok 。注意,你可以在定义ROI之前给你的数据贴上标签。
另外,这个应用程序有一个工作区,如下图所示,你所有的标签都储存在这里,你可以看到它们。

完成这些后,给车辆贴上界线盒的标签。要给数据贴上边界框的标签,点击工作区顶部的标签。

让我们给子标签贴上标签。子标签是与父标签相关的部分。例如,我们可以把车辆号牌甚至是车轮作为子标签。
例如,让我们把我们的车辆命名为tarlight 。要标注,子标签,请点击sub-labels ,就在label 按钮旁边,用边界框在你的输入上标注它们。
你可以有任意多的界线框,只要你想。如果你点击sub-label 按钮,就会出现一个类似贴标签的新窗口,提示用户输入子标签的名称。
要在输入的图像上制作标签,你必须选择父标签的边框,然后在这个主边框的边框内制作你的标签。如果你不先选择父标签,你将无法制作你的子标签。
从定义上看,子标签是父数据或ROI的一部分。

我们可以为我们的标签和子标签指定属性。属性信息构成了与标签相关的元数据。
在我们的例子中,我们把车辆作为父标签。所以现在车辆的属性可以是车辆类型。这个属性窗口允许用户以列表形式输入各种类型。你可以有你想要的数量。

做好属性后,你点击ok ,它出现在窗口的左侧。例如,你选择车辆,向左移动,并选择下面的车辆类型,为你的车辆类型贴上标签。

我们对这些标签很满意。你可能注意到,当我们切换框架时,标签就不存在了,如下图所示。要转到下一帧,请点击下图中圈出的前进按钮。

我们会注意到,我们可以继续重复整个贴标签的过程,但这将是多余的。因此,在这种情况下,引入自动化是最理想的。
使用一种算法来自动化标签过程。
在Matlab中有许多内置的算法可以帮助实现这一目标。你可以使用内置的算法或编写你的算法。要做到这一点,Matlab允许所有这些选项。
要使用一个算法,点击select algorithm ,选择或导入要使用的算法。

在本教程中,我们将使用Point Tracker 算法。选择算法后,你选择你要跟踪的车辆。
同时,你要输入你想跟踪的时间。它是在你输入start time 和end time 的播放部分旁边指定的。
例如,我们要跟踪汽车七秒钟。

完成后,点击automate 。一旦点击,窗口将显示使用指定算法的说明。仔细阅读说明,并点击窗口顶部的播放按钮。

完成后,点击accept 。你可以看一下label summary ,看看标签的进行情况。

其他能力
比方说,我们想给车道贴标签。在这种情况下,我们不能使用边界框,我们将使用线并标注车道。这意味着你在车道上画线,并对其进行标注。

你也可以用pixel label 。 例如,假设我们想给道路贴标签。我们将制作一个名为road 的标签,并使用pixel 标签。在下图的窗口顶部有一个未来的flood fill 。它使你能够一次给一个大的区域贴上标签。

请注意,你可以用erase 擦除你从未打算贴标签的部分。因为flood fill ,在一个广泛的区域内随机地进行标注,你应该擦除错误的标注。另外,你还可以把那些你可能错过的使用brush 。
另一个叫做smart polygon 的功能允许我们对你要贴的标签进行边界划分,并对其进行分割。在这之后,你可以保存你的工作。
整合来自其他传感器的地面真实信息
这个功能允许你整合来自其他信号的地面真实信息。例如,让我们打开一个已经与激光雷达数据进行时间同步的视频。
要打开这个,请执行下面的命令。
groundTruthLabeler('01_city_c2s_fcw_10s.mp4', 'ConnectorTargetHandle', @LidarDisplay);
注意,视频
01_city_c2s_fcw_10s.mp4是Matlab的视频,它是现成的。所以你所需要做的就是在命令窗口中执行这个命令。
这个命令打开了两个窗口。

第一个是带有视频数据的地面实况标签器,以及包含同步激光雷达数据的点云播放器。你会注意到它是同步的,因为如果你通过激光雷达播放器刷屏,我们也在通过视频播放器刷屏。
这很重要,因为激光雷达数据可以提供视觉传感器单独无法确定的信息。例如,激光雷达数据提供了车辆与周围物体的距离。
结论
地面实况贴标机在贴标过程的自动化方面非常有效。尽管贴标过程很耗时、很繁琐,但这个应用程序只需点击一个按钮就能完成。
另外,正如我们所看到的,使用该应用程序非常简单。这个应用程序为所有可能的算法打开了大门。
现在要由用户根据她/他的工作决定使用哪种算法。然而,我们知道,算法的准确性各不相同,不限制任何特定的算法是一个好主意。