SemanticKITTI数据集:用于激光雷达序列语义场景理解的数据集
引言
在论文文中,作者引入了一个大数据集用于激光的语义分割的研究。标注了KITTI视觉里程计基准的所有数据,并为所使用的汽车激光雷达的完整360度视野提供了密集的逐点注释,基于该数据集,有三个三个基准任务:
(i)使用单个扫描对点云进行语义分割,
(ii)使用多个过去扫描进行语义分割
(iii)语义场景预测
同时,作者也提供了baseline
介绍introduce
语义场景理解对于许多应用程序来说是必不可少的,也是自动驾驶汽车不可或缺的一部分。特别是,语义分割提供的细粒度理解对于区分可驾驶和非可驾驶表面以及对停车区和人行道等功能属性进行推理是必要的。目前,以所谓的高清晰度地图表示的这种理解主要是通过测量车辆提前生成的。但是,如果环境发生变化,自动驾驶汽车也应该能够在未映射的区域驾驶,并调整其行为。
目前,大多数自动驾驶汽车使用多个不同的传感器来感知环境。互补传感器模式能够应对特定传感器的缺陷或故障。除了照相机,还经常使用光探测和测距(LiDAR)传感器,因为它们提供不受照明影响的精确距离测量。
公开可用的数据集和基准对于研究的实证评估至关重要。它们主要实现三个目的:(i)它们提供了衡量进展的基础,因为它们允许提供可复制和可比的结果;(ii)它们揭示了当前技术水平的不足,从而为新方法和研究方向铺平了道路,以及(iii)它们使开发方法成为可能,而无需首先费力地收集和标记数据。
为了弥补这一差距,论文提出了SemanticKITTI,这是一个大型数据集,在点注释中显示了前所未有的细节,包含28个类,适用于各种任务。本文主要研究基于激光的语义分割,以及语义场景的完成。该数据集与其他激光数据集不同,因为我们提供了精确的序列扫描注释。
总的来说,我们注释了KITTI Vision benchmark的里程计基准的所有22个序列,包括43000多个扫描。此外,我们将整个水平360标注为◦ 旋转激光传感器的视野。图1显示了所提供数据集中的示例场景。
主要贡献是:
-
提供了一个点云序列的逐点注释数据集,每个扫描具有前所未有的类数和看不见的详细程度。
-
对点云语义分割的现有方法进行了评估。
-
通过多次扫描调查序列信息用于语义分割。
-
基于对移动汽车序列的注释,我们进一步引入了一个用于语义场景完成的真实数据集,并提供了基线结果。
-
与基准网站一起,点云标记工具也可公开使用,使其他研究人员能够在未来生成其他标记数据集。
SemanticKITTI数据集(重点)
我们的数据集基于 KITTI Vision Benchmark 的里程计数据集,显示了市中心的交通、住宅区,以及德国卡尔斯鲁厄周围的高速公路场景和乡村道路。
原始里程计数据集由 22 个序列组成,将序列 00 到 10 拆分为训练集,将 11 到 21 拆分为测试集。 为了与原始基准保持一致,我们对训练和测试集采用相同的划分。 此外,我们不会通过仅为训练数据提供标签来干扰原始里程计基准。 总体而言,我们提供了 23 201 个用于训练的完整 3D 扫描数据和 20 351 个用于测试的扫描数据
SemanticKITTI数据集采用和 KITTI 数据集相同的标定方法。这使得该数据集和kitti数据集等数据集可以通用。
作者提供了使用常用汽车激光雷达(即Velodyne HDL64E)生成的连续点云的标签。同时提供了整个序列的单独扫描,因此还可以研究聚合多个连续扫描如何影响语义分割的性能,并使用信息识别移动对象。
我们对28个类进行了注释,确保了类与Mapillary Visiotas数据集和Cityscapes数据集有很大的重叠,并在必要时进行了修改,以考虑稀疏性和垂直视野。更具体地说,我们不区分驾驶车辆的人和驾驶车辆的人,而是将车辆和驾驶车辆的人标记为自行车手或摩托车手。
此外,我们还区分了移动和非移动车辆与人类,即,如果车辆或人类在观察时在某些扫描中移动,则会获得相应的移动类别,如图2下半部分所示。图3列出了所有带注释的类,补充材料中可以找到对不同类的更详细讨论和定义。总之,我们有28个类别,其中6个类别被指定为移动或非移动属性,一个异常值类别被包括在反射或其他效应引起的错误激光测量中。
该数据集可通过基准网站公开获取,我们仅提供带有地面真实性标签的培训集,并在线执行测试集评估。此外,我们还将限制可能的测试集评估的数量,以防止过度拟合测试集
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PUhjJfF7-1639735738108)(C:/Users/ASUS/AppData/Roaming/Typora/typora-user-images/image-20211213220709811.png)]
图二
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tA1xZvHS-1639735738109)(C:/Users/ASUS/AppData/Roaming/Typora/typora-user-images/image-20211213220803661.png)]
图三
标注过程
为了使点云序列的标注切实可行,利用多视角来共同标注,可以使得一致性地标记多个扫描。为此,利用目前主流的slam算法闭环标注序列[5]。这一步骤是必要的,因为惯性导航系统(INS)提供的信息通常会导致地图不一致,即在一段时间后重新访问的街道有所不同-
这一步骤是必要的,因为惯性导航系统(INS)提供的信息通常会导致地图不一致,即一段时间后重新访问的街道高度不同。对于三个序列,我们必须手动添加闭环约束以获得正确的循环闭合轨迹,这对于获得注释的一致点云至关重要。循环闭合姿势允许我们加载特定位置的所有重叠点云,并将它们一起可视化,如图2所示。
我们将点云序列细分为100m×100m的分块。对于每个分块,我们只加载与分块重叠的扫描。这使我们能够一致地标记所有扫描,即使在遇到时间上遥远的循环闭包时也是如此。为了确保与多个磁贴重叠的扫描的一致性,我们显示每个磁贴内的所有点以及与相邻磁贴重叠的小边界。因此,可以从相邻的磁贴继续添加标签。
按照最佳实践,我们编写了一份标签说明,并提供了关于如何给某些物体(如站在墙上的汽车和自行车)贴标签的教学视频。
与基于图像的注释相比,使用点云的注释过程更为复杂,因为注释器通常需要更改视点。注释员在标记与遇到的最复杂的风景相对应的住宅区时,平均每个分块需要4.5小时,在标记公路分块时,平均需要1.5小时。我们明确地没有为KITTI数据集使用边界框或其他可用的注释,因为我们希望确保标签是一致的,并且逐点标签应该只包含对象本身。
数据集统计特征
图3显示了不同类的分布,以主类别作为x轴上的标签。地面类别、道路、人行道、建筑物、植被和地形是最常见的类别。摩托车手等级很少出现,但注释的分数仍超过10万。
对于在自然环境中捕获的数据集来说,类的不平衡计数是常见的,有些类总是表示不足,因为它们并不经常出现。因此,不平衡的分布是一种方法必须掌握的问题的一部分。总的来说,在其他数据集中,如城市景观[10],类别之间的分布和相对差异非常相似。
数据格式
语义分割与全景分割
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tjPZ3PBK-1639735738110)(http://www.semantic-kitti.org/images/folder_structure.svg)]
每个velodyne文件夹下的xxxx.bin文件为每次扫描的原始数据,每个数据点的标签的二进制表示储存在文件xxxx.label中。每个点的标签是32位无符号整数(也称为’uint32_t’),其中较低的16位对应于标签。上面的16位编码实例id,该id在整个序列中时间上是一致的,即,两次不同扫描中的同一对象获得相同的id。这也适用于移动车辆,但也适用于环路闭合后看到的静态对象。
我们还提供了姿势在pose.txt文件中,我们使用该文件对数据进行注释,该数据采用surfel-based SLAM approach(SuMa).标准
使用
该数据集最大的好处就是有脚本可以直接使用。功能包括但不限于:可视化、计算IOU等。按照脚本的介绍即可完成使用。https://gitee.com/herolin12/semantic-kitti-api#http://semantic-kitti.org/
- From KITTI Odometry
image_2
andimage_3
correspond to the rgb images for each sequence.velodyne
contains the pointclouds for each scan in each sequence. Each.bin
scan is a list of float32 points in [x,y,z,remission] format. See laserscan.py to see how the points are read.
- From SemanticKITTI:
labels
contains the labels for each scan in each sequence. Each.label
file contains a uint32 label for each point in the corresponding.bin
scan. See laserscan.py to see how the labels are read.poses.txt
contain the manually looped-closed poses for each capture (in the camera frame) that were used in the annotation tools to aggregate all the point clouds.