文章:Semantic 3D Grid Maps for Autonomous Driving
作者:Ajinkya Khoche, Maciej K Wozniak, Daniel Duberg and Patric Jensfelt
编辑:点云PCL
来源:arXiv 2022
欢迎各位加入知识星球,获取PDF论文,欢迎转发朋友圈。文章仅做学术分享,如有侵权联系删文。未经博主同意请勿擅自转载。
公众号致力于点云处理,SLAM,三维视觉,高精地图等领域相关内容的干货分享,欢迎各位加入,有兴趣的可联系dianyunpcl@163.com。未经作者允许请勿转载,欢迎各位同学积极分享和交流。
摘要
地图在自动驾驶的发展中扮演着重要角色,本文调查了不同地图表示的文献,发现虽然世界是三维的,但为了满足实时约束,通常仍然依赖于二维地图表示,高水平的情境意识需要三维表示包括语义信息。本文提出的分层的三维栅格地图框架UFOMap可以满足实时约束,此外展示了如何使用它来有效地支持更复杂的功能,例如计算被遮挡的空间部分和累积来自语义分割网络的输出。
图1:采用10厘米体素大小的UFOMap处理SemanticKITII数据集00的10HZ数据,在单线程模式下每个传感器帧处理时间不到40毫秒。顶部:生成地图的完整视图,底部:地图的一部分放大视图
主要贡献
环境地图可以用于建立情境感知,定位自动驾驶车辆(AV),规划安全的轨迹,考虑道路几何、交通规则和周围物体的位置,赋予地图语义信息可以进一步增强对周围环境的理解。在本文中,我们演示了使用最近提出的UFOMap实现AV的高分辨率稠密语义地图的实时制图是可能的。3D网格可以自然地作为一种上层表示,从中可以派生任务特定的表示,此外,展示了这种表示形式可以提供的另一个好处,即作为信息融合的媒介。
本文做出了以下贡献:
1)调查了自动驾驶中的地图表示法的文献。
2)演示了网格地图的最新进展,使得自动驾驶中可以进行稠密、高分辨率、实时的3D建图。
3) 演示了如何实时地使用语义信息来操纵地图信息,这将允许支持下游任务,这些任务对于通用表达具有不同的要求。
4)演示了地图提供传感器/信息融合的手段,以LiDAR为基础的语义分割评估为例。
图2:放大显示图1中的部分,展示稠密、高分辨率的3D地图
主要内容
地图表示
简要概述了不同类型的地图表示法及其中存储的信息,图3呈现了一份不全面的表示方法。
图3:自动驾驶中使用的不完整地图表示方法概述, HD地图用于存储地图先验信息,如车道和可驾驶区域的位置, 特征地图通常用于定位,包含地标的位姿描述, 网格地图离散化了世界并通常从传感器数据在线构建,并用作规划的输入, 在自动驾驶中,常见的是2D网格,但3D版本很少,因为计算成本高, 还常常使用例如LiDAR产生的点云作为地图表示
A. HD地图
在地图制作过程中,对鲁棒性的要求导致一些地图信息被离线生成,并在任务执行期间作为先验知识使用,高精地图(HD Maps)用于建模道路的几何形状和拓扑结构,它包括车道边界、中心线、后继-前置关系、速度限制或方向,大多数早期的工作依赖于手动标注,仅最近才将此过程自动化[11]。OpenDRIVE是最早为驾驶模拟器系统化道路描述而提出的格式之一,使用布条曲线来模拟道路段 [12],然而用这种方式表示连接性被证明是麻烦的,Bender等人 [10] 使用折线表示左右车道的边界,这也使他们能够隐式地表示连接性,他们的格式被称为Lanelets,允许在复杂场景(如交叉口和合并处)中编码驾驶规则(称为规制元素),Lanelets还被扩展以包括物理对象(如道路标记、防撞栏)和受限移动区域(如停车场、人行道或建筑物),Lanelet及其扩展是轻量级的,并已被广泛用于各种任务,如可达性分析[14]、场景生成[15]以及用于运动规划[16]或交互[17]的基准测试。
B. 特征地图
特征地图以从传感器数据中提取的特征及其在空间中的位置的形式存储稀疏环境描述,提取的特征取决于传感器和所针对的应用,传统上基于图像的特征,例如边缘和角点已被广泛研究,特征通常伴随有一个描述子,简化匹配。最近,深度神经网络(DNN)用于提取和学习特征表示[18],[19]。这种方法可用于在不同的光照或天气条件下实现鲁棒的重新定位[20]。特征地图可以很好地支持定位相关任务,但对于大多数其他任务来说并不合适,因为它们提供对象/障碍物的稀疏表示,根本不适合表示可行驶空间。
C. 稠密点云地图
通过对齐激光雷达点云和相应的位姿,可以获得稠密的点云地图,在激光雷达里程计和地图构建领域中已经开发了许多方法。Zhang等人通过在快速扫描匹配和较慢的建图匹配之间交替进行,实现了实时激光雷达里程计和地图构建[22],最近的工作旨在通过添加视觉里程计作为先验[23]或通过将3D点投影到范围图像或鸟瞰图中来提高匹配效率[24]来改善该解决方案的鲁棒性,其他人选择基于曲面元素(surfel)的地图表示,因为它容易渲染[25]。然而,使用稠密点云表示的主要缺点是缺乏可扩展性,由于高内存消耗,往往阻止研究人员在自动驾驶应用中使用它。
D. 栅格地图
Moravec 和 Elfes 提出了栅格地图的概念,并在之后进行了改进,基本思想是将空间离散化为 2D 或 3D 的网格单元,在自动驾驶应用中,通常选择 2D 表示,因为它计算成本较低,更容易实现和维护。2D 占据栅格被广泛用于模拟规划算法所需的自由/占据空间,以计算安全轨迹。
中级表示法是 2.5D 表示,例如,高度图建模地面高度。在 [28] 中,2D 栅格的每个单元格存储高度对应位置上的数据沿高度方向的分布的高斯混合模型,另一种表示方法是 [29] 中提出的 sticks,在此具有相同特征值的体素沿高度方向合并,因此,这实质上是一个 2D 栅格,其“柱子”表示数据, Stixels [30] 类似于超像素,是在图像的列中将具有相同语义类别标签的点进行聚类而定义的,它们在静态和动态环境设置中都被证明是有用且有效的 [31]。
在 HD 地图的范畴下,一个相对常见的地图格式是栅格化地图,它实质上是一个 2D 栅格,NuScenes 数据集以 10 px/m 的分辨率编码驾驶区域和人行道。Argoverse [33]提供了驾驶区域和地面高度的掩膜,分辨率均为 1 米,使用地面高度图可以显著减少来自 LiDAR 数据的错误目标检测,将栅格扩展到 3D 时,单元格称为体素,通常,动态分配固定大小的体素并使用体素哈希算法组织, Voxblox [34] 就是一个例子,存储每个体素的截断有符号距离函数(TSDF),然而,Voxblox 随着环境规模的增大而遇到困难,表示 3D 信息的一种高效方式是使用八叉树,八叉树递归地将空间划分为最小分辨率(选为设计参数),其固有的分层结构使其能够以不同的分辨率进行有效的搜索,通过为具有更多信息的空间优先分配内存,它还提供了一种有效的地图扩展方式。OctoMap [35] 是基于八叉树的广泛使用的 3D 地图。
图4:与图1相同,但显示存储在体素中的时间长短,蓝到红的颜色表示时间从较早到较新。
其他地图使用案例
如前面所说地图通常用于定位、路径规划和决策制定,这里列举了一些地图的其他用例。
A. 语义地图
在计算机视觉中,语义信息是区别背景和前景的重要方式,使用深度神经网络对相机和LiDAR数据进行语义分割,可以直接对稠密地图、特征地图和网格地图进行注释[37],这样可以将同一输出用于多个任务,例如可行驶区域检测或道路地标检测[11]。最近,研究人员还在实例级别跟踪方面取得了有希望的结果[38],然而,神经网络仅在数据集作者预定的固定类别上进行训练,这可能会产生以下问题。例如,某个群体可能有兴趣对不同类型的车辆进行分割(例如,汽车、卡车、救护车、公交车、警车),而另一组可能满足于将所有车辆分为一类,可以将地图视为维护这种不同语义视图的一种方式。
B. 信息融合
自动驾驶汽车通常将多个传感器的信息融合在一起以实现稳健性,一般来说,有两种类型的融合过程:后期融合和前期融合。在后期融合中,信息首先在传感器级别进行处理,然后进行融合。另一方面,在前期融合中,传感器数据首先进行融合,然后再进行处理。传感器融合也可以随时间而发生,通过结合在不同时间和位置获取的读数,再次考虑使用深度神经网络估计语义分割的示例,研究人员通常限制自己使用单个图像或LiDAR扫描作为输入,观察到测量之间有足够的重叠,可以合理地期望将神经网络的连续估计融合在一起,随着车辆前进,可以改善整体的语义分割。因为世界是三维的,将物体投影到二维会导致信息丢失,并创建一个简化的地图,这种方式是比较难以跟踪临时遮挡的物体或估计移动物体的三维姿态,所以我们认为三维网格对于信息融合是理想的,此外,世界的三维模型将为遮挡提供更好的模型,还可以更好地理解行人的行为或越野地形。
UFOMap方案介绍
在前面描述的地图表示可能具有鲁棒性或计算效率,但是它们是围绕特定应用程序设计的,这使得难以将它们用于其他任务,为了实现高级车辆自主性,我们认为地图表示应满足两个要求:灵活性和易用性。地图可以满足多种下游任务,其性质和结构随时间可能会改变。灵活性指的是建图框架适应这些变化的能力,不能做到这一点将限制其可用性,甚至会冒着将来开发受到建图框架设计限制的风险。为了易于使用,建图框架应使用户能够快速访问,它还应该为用户提供直观的查询方式,据我们所知,目前为止,用于自主驾驶的现有地图框架没有同时满足这些要求,并且还能满足密集,三维和实时约束。在实验中,我们展示了UFOMap可以满足这些要求。
在这项工作中建立在UFOMap 3D网格建图框架[https://github.com/UnknownFreeOccupied/ufomap.git]的基础之上。UFOMap使用八叉树数据结构。最高分辨率的体素称为叶节点,并用于存储占用情况,传感器数据使用光线追踪集成到地图中,即从传感器原点投射一条光线,并更新对应于测量点的叶节点的占用概率,而沿着光线的其他叶节点则被标记为自由栅格。
除了占据概率之外,UFOMap还具有存储每个体素的颜色,语义和时间步长信息的能力,每个叶子节点的时长表示给定体素最近更新的时间,如图4所示。语义存储为动态分配的标签值对数组,这使得UFOMap可以在一个体素中存储多个语义标签,并且使用户有扩展可能的语义列表的灵活性。UFOMap可以高效地基于空间位置和内容本身查询信息,例如,可以查找自车辆附近100米范围内的所有“汽车”或“行人”,这些查询也可以在多个分辨率下进行,为此,信息会传播,以便粗略的体素可以总结其子体素的信息。
实验
这里展示了实时稠密语义3D地图的实验,解决了一些地图上描述的限制,并展示了SemanticKITTI数据集的一些例子,LiDAR点云,其中每个点都带有颜色和最高的语义标签,使用ROS以10 Hz的频率输入到UFOMap中,当新的传感器测量数据到达时,叶节点的占用概率和语义信息将根据公式1进行更新,图1显示了其中一个序列的示例,该地图的分辨率为10厘米,每次传感器数据的融合平均需要40毫秒。
表格I显示使用地图与单帧扫描进行激光雷达语义分割评估,以百分比表示,在与网络的单次扫描估计相比较时,累积在UFOMap中的信息表现出了轻微的IOU平均值提升,值得注意的是,融合两个网络的估计进一步改善了结果,而无需进行额外的标注和神经网络训练。
地图操作和运行比较,在图5的顶部一行,我们看到了地图部分区域的颜色和语义信息,我们可以高效地提取背景/前景对象(底部一行),使用基于语义的查询,可以轻松获得适用于不同用例的表示形式。
图5:在SemanticKITTI 数据集上以10厘米分辨率渲染UFOMap中的占用体素 (a) 整个场景的颜色信息和 (b) 语义信息 (c) 背景和 (d) 前景物体。
近来很多3D的应用在兴起,3D传感器在进步,随着虚拟网络的发展转到物理实际中的应用,比如(ADAS,AR,MR)自动驾驶中需要理解 汽车行人交通标识,同时也需要理解三维物体的状态静止和移动。
图6显示了场景的快照,其中所有被遮挡的体素都标记为青色。
图6:显示在构建地图时的部分地图,坐标轴表示自我车辆,标记为青色的部分是旧的地图或未知的信息,可以看出,自车后面的空间被重新分类为未知。
图11列出了包含4540个扫描的序列的计算性能的平均值,在内存效率、将测量集成到地图中所需的时间以及发布地图以供不同组件使用方面,UFOMap远远超过了OctoMap,OctoMap在每次迭代中都发布整个地图,使其速度非常慢,对于此实验,OctoMap的发布速率降低到每一百次迭代一次,相比之下,UFOMap仅发布地图的更新部分,使每次迭代的发布可扩展,值得注意的是,在任何时候,接收端的最终结果仍然相同,即环境的整个地图。
总结
本文全面回顾了用于自动驾驶的现有地图表示方法,并介绍了UFOMap作为一种实现户外环境实时语义三维建图的方法。目前,UFOMap无法很好地处理动态物体,这可以在图6中观察到,两个骑自行车的人进入场景,从而引入了噪声,将环境的动态行为纳入我们的框架是下一步研究的方向。
更多详细内容后台发送“知识星球”加入知识星球查看原文。
智驾全栈与3D视觉学习星球:主要针对智能驾驶全栈相关技术,3D/2D视觉技术学习分享的知识星球,将持续进行干货技术分享,知识点总结,代码解惑,最新paper分享,解疑答惑等等。星球邀请各个领域有持续分享能力的大佬加入我们,对入门者进行技术指导,对提问者知无不答。同时,星球将联合各知名企业发布自动驾驶,机器视觉等相关招聘信息和内推机会,创造一个在学习和就业上能够相互分享,互帮互助的技术人才聚集群。
以上内容如有错误请留言评论,欢迎指正交流。如有侵权,请联系删除
扫描二维码
关注我们
让我们一起分享一起学习吧!期待有想法,乐于分享的小伙伴加入知识星球注入爱分享的新鲜活力。分享的主题包含但不限于三维视觉,点云,高精地图,自动驾驶,以及机器人等相关的领域。
联系客服