自动驾驶高清地图问题的研究

小白学视觉

共 4526字,需浏览 10分钟

 ·

2021-02-09 18:03

点击上方小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

地图是构建自动驾驶技术的关键组成部分。与如今广泛用于导航的常规网络地图服务不同,自动驾驶汽车(AV)的特殊需求需要一类新的高清(HD)地图。这些高清地图需要具备以前所未有的厘米级分辨率,这比今天Web地图服务提供的米级分辨率要高一到两个数量级。


视音频设备需要如此高的分辨率,因为它们需要执行复杂的操作,例如,钻入自行车道以转弯并安全地通过骑自行车的人。在美国,标记的自行车道通常为4英尺(1.2米)宽,但对于未标记的车道则可以窄至2英尺(0.6米)。车道标记本身为4英寸(10厘米)宽。厘米级的精确地图使AV能够自信地推断其在车道中的位置,评估与路缘的距离并果断采取必要的行动。


今天,我们将分享我们如何shi用于自动驾驶的高清地图,以及如何生成和组织高清地图中的各种信息以供AV使用。主要面向有兴趣了解高清地图及其如何为自动驾驶提供动力的小伙伴们。


什么是高清地图?


高清地图并不是新提出的的。几家绘图和自动驾驶公司已经开始制作和使用高清地图。但是,关于这些地图的构建方式,其包含的信息的丰富程度以及准确性的精确度,还处于初期。各个公司正在快速发展以改进这些高清地图,因此,目前各种提供商和消费者之间几乎没有一致的标准。


我们正在构建高清地图的目的是用于大规模运营的自动驾驶汽车。总体目标是成为第一个大规模运营的自动驾驶汽车的地图提供者。这里的规模意味着数十万辆自动驾驶汽车。鉴于此,我们将高清地图视为自治堆栈中的专用组件。


高清映射技术(HD映射)中包含哪些内容不包含哪些内容是根据一组原则确定的。有人会问,为什么这很重要?如果我们为一个用例构建HD地图,该地图也可能用作其他方面,从而提高高清地图的实用性。让我们思考两个例子。


构建高清地图,以供共享驾驶网络中的AV使用,也可以与手机上的虚拟现实(AR)应用程序一起使用。前者侧重于道路要素和驾驶员需求少的高需求路线,而后者侧重于路边,店面和室内装饰,公共地标等。这两个用例之间几乎没有重叠。拥有一套清晰的原则有助于我们构建正确的高清映射技术。地图构建技术与计算机技术的紧密集成可以通过创建和利用共享组件来加快开发速度。因此,当今为自用而使用的大多数高清地图都与相应的计算机软件堆栈垂直集成。


有四个主要原则可以获知我们如何定义地图以及如何进行构建。


映射预计算


从自动驾驶技术的角度来看,映射操作包括在AV开始驱动之前,我们可以做的所有事情以进行预计算。在某些情况下,这种预计算可以完全解决主要问题的各个子部分。例如,可以离线且以高度准确的方式解决诸如道路,交叉路口,路牌等静态物体的感知和定位。人工操作人员可以整理预先计算的数据以确保高质量。在其他情况下,无法提前完全解决问题,但可以预先计算部分,近似或中间结果,从而使实时计算工作变得更加容易。


我们使用后者先建立各种地图代表有关世界动态部分的贝叶斯先验概率的片段,例如观察到的速度曲线和未标记的停车位。预先计算的结果包括世界的空间和时间方面,并进行索引以进行有效检索。


映射以提高安全性众所周知,将地图用于导航。安全驾驶的AV不仅需要执行专业的导航,还需要采用最佳实践来降低驾驶过程中的风险。因此,高清地图的设计不仅包含每个车道路段的限速信息,而且还包含从Lyft网络上的实际人工驾驶员得出的符合我们最高安全标准的速度曲线。


地图作为唯一传感器


在运行时,系统将地图视为具有特殊感知和预测功能的传感器。与其他传感器(例如照相机和激光雷达)相比,地图没有范围限制。它可以感觉到的东西超出了当今AV传感器典型的100–200m范围。它还不受动态对象(如其他车辆)的运行时遮挡的影响。将地图视为另一个传感器,使我们能够设计有效的地图访问模式,并将地图数据更自然地集成到堆栈中(例如,传感器融合组件)。



映射为全球共享状态


通过在视音频团队的共同努力,视音频可以实现更高的安全性和效率水平。可以将上述预先计算的数据视为整个AV车队的记忆,该机队中的每个AV都可以将其作为地图的一部分进行访问。该内存很大,并且变化缓慢。此外,在运行时,可以从各个角度和角度以分布式的方式查看视音频舰队,一起感知世界。然后,地图变成共享的数据结构,该结构既驻留在云端,又驻留在每个AV中。AV使用该地图读取和写入此记忆。后者就是我们如何在车队的AV之间共享实时信息的想法。


测绘车


我们使用包含最新传感器(例如高清摄像头,激光雷达,雷达,GPS和惯性测量单元(IMU))的车队来构建高清地图。早些时候,我们选择使传感器配置和硬件构造与自动驾驶汽车所使用的相同。这种限制使我们可以轻松地确保我们构建的高清地图可以与后续的软件堆栈正确配合工作,该软件堆栈支持各种自动驾驶功能,例如定位,感知,预测和计划。


根据我们的经验,在映射和系统功能开发之间互换共享汽车可以使我们更好地利用车队,同时保持较低的车队管理开销。同样,只有一个硬件SKU可使我们更轻松地管理硬件开发。我们的地图构建过程还使用与自治功能开发相同的数据收集日志。这使我们能够重用汽车收集的所有里程来构建更好的地图。地图构建数据收集运行不需要自动驾驶汽车进入自动驾驶模式,也就是汽车自己驾驶。

分层地图

HD地图中包含的信息表示为图层。通过分层组织信息,可以轻松地独立设计,构建,测试和发布新信息。这些层彼此完全对齐并以一种方式索引,该方式允许针对AV的当前位置以及本地邻域进行有效的信息并行查找。我们认为网络地图服务提供的基本道路网络数据是最底层的。每个后续图层都会向地图添加其他详细信息。我们的高清地图包含多个图层。HD的四个值得注意的层是:几何地图层,语义地图,地图先验层和实时知识层。


几何地图层


几何地图图层包含世界的3D信息。此信息的组织非常详细,以支持精确的计算。来自激光雷达,各种相机,GPS和IMU的原始传感器数据将使用同时定位和地图绘制(SLAM)算法进行处理,首先构建由地图数据收集运行所探索的区域的3D视图。SLAM算法的输出是对齐的密集3D点云和制图工具采用的非常精确的轨迹。使用在相应相机图像中为该3D点观察到的颜色对3D点中的每个进行着色。对3D点云进行后处理,以生成存储在几何地图中的派生地图对象。两个重要的派生对象是体素化的几何图和地图。通过将点云分割为5cm x 5cm x 5cm小的体素来生成体素化的几何图。


在实时操作中,几何图是访问点云信息的最有效方法。它在精度和速度之间提供了一个很好的平衡。分割算法可识别点云中的3D点,以构建地面模型(定义为地图的可驱动表面部分)。这些地面点用于在小部分中建立地面参数模型。地面地图是对齐地图后续图层(例如语义地图)的关键。它在精度和速度之间提供了一个很好的平衡。


语义地图层


语义地图层通过添加语义对象建立在几何地图层上。语义对象包括用于安全驾驶的各种交通2D和3D对象,例如车道边界,交叉路口,人行横道,停车位,停车标志,交通信号灯等。这些对象包含与之关联的丰富元数据,例如速度限制和车道转弯限制。


虽然3D点云可能包含代表交通信号灯的所有像素和体素,但在语义地图层中,存储了一个清晰的3D对象,该对象标识了交通信号灯及其各种组件的3D位置和边界框。我们结合计算机视觉和点分类算法来生成这些语义对象及其元数据的假设。这些算法的输出不够准确,无法生成高保真度地图。操作员通过丰富的可视化和注释工具对这些假设进行后处理,以验证质量并修复任何遗漏。


几何和语义地图层提供有关世界上对自动驾驶汽车至关重要的静态和物理部分的信息。它们以很高的保真度构建而成,对于基本事实是什么几乎没有歧义。我们将地图视为一个组成部分,不仅可以了解我们对世界的物理和静态部分的理解,而且还可以了解环境的动态和行为方面。地图先验层和实时知识层表示此信息。这些层中的信息不仅可以从视音频车队的日志中进行计算,还可以从包含数百万个Lyft驾驶员的Lyft乘车共享网络中进行计算。

语义图

地图先验层


地图先验层包含有关动态元素以及人类驾驶行为的派生信息。此处的信息可能与地图的语义部分和几何部分有关。例如,派生的信息,例如十字路口的交通信号灯通过其各种状态(例如(红色,左保护,绿色,黄色,红色)或(红色,绿色,左保护,黄色,红色))循环的顺序和在地图先验层中编码每个状态所花费的时间。这些先验是近似的,可以作为车载自主系统的提示。


另一个例子是在地图上停车先验。预测和计划系统使用这些停车先验来确定物体的速度并做出适当的决定。停车先验被表示为车道上具有多边形区域的元数据,该元数据捕获了在车道中该位置遇到停放的车辆的可能性。当AV在事先具有较高停车位的地图区域中遇到静止的车辆时,它将更加积极地探索将AV绕过车辆的路线计划,并降级将AV排在车辆后面的计划。同样,知道人们通常停在哪里,可以使感知系统对车门打开和检测到行人时更加谨慎,因为行人可能上下车。


实时知识层


实时层是地图中最顶层的层,旨在具有可读/写功能。这是地图上唯一设计为在乘车的AV使用地图时进行更新的图层。它包含实时交通信息,例如观测到的速度,拥堵,新发现的建筑区域等。实时层旨在支持在整个AV车队之间收集和共享实时全球信息。

实时知识

上面的每个地图图层都是独立构建的。派生层可能依赖于先前层的中间输出。例如,语义层使用由几何层生成的地面地图来标识车道多边形的z位置。在最后一步中,将特定算法用于将地图的所有图层拼接在一起,然后再将其作为一个一致的组件发布到自动驾驶汽车上。


下载1:OpenCV-Contrib扩展模块中文版教程
在「小白学视觉」公众号后台回复:扩展模块中文教程即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。

下载2:Python视觉实战项目52讲
小白学视觉公众号后台回复:Python视觉实战项目即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。

下载3:OpenCV实战项目20讲
小白学视觉公众号后台回复:OpenCV实战项目20讲即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。

交流群


欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~


浏览 28
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报