阿里巴巴高德地图首席科学家任小枫:高精算法推动高精地图落地

232 阅读9分钟

2020云栖大会于9月17日-18日在线上举行,阿里巴巴高德地图携手合作伙伴精心组织了“智慧出行”专场,为大家分享高德地图在打造基于DT+AI和全面上云架构下的新一代出行生活服务平台过程中的思考和实践,并重点分享了「高精地图、高精算法、智能时空预测模型、自动驾驶、AR导航、车道级技术」等话题。

「高德技术」把本场讲师分享的主要内容整理成文并陆续发布出来,本文为第1篇。

阿里巴巴高德地图首席科学家任小枫分享的话题是《高精算法推动高精地图落地》。任小枫从算法出发,介绍了高精地图制作和落地的挑战,以及高德如何打磨和突破关键技术,把高精地图做到业界领先。

去年云栖大会,任小枫给大家整体介绍了视觉技术在高德的应用,主要分享了常规地图和AR导航、视觉定位方面的工作。今年时间比较短(每位讲师只有12分钟的演讲时间),主要介绍高精算法方面的工作。

什么是高精地图?主要是给自动驾驶场景用的地图。它和我们平时开车时所用到的地图很不一样。一个关键就是要精准。高精地图需要有精准元素,精确位置,精细表示。例如下图中的杆子、车道线、行驶轨迹等都需要在高精地图中精确的表示出来。

自动驾驶要成功落地,高精地图是必须做成的事情。高精地图有很多用途:给自动驾驶用来定位;静态目标的建模“识别”;路径/行为规划。这些对于自动驾驶来说是非常重要的功能。

高精地图落地的挑战主要在哪里?

精度!精度!精度!(重要的话说3遍)其他的挑战还有规模、成本、时效。

首先是精度。高德对高精地图制作的首要原则就是要准!要做到很高的精度,百米相对精度10厘米。就是在真实世界中,如果有两个元素在真实世界中相距100米,那他们的相对位置,跟真实世界比起来的误差必须在10厘米之内。这是一个非常高的目标。在这样一个高目标下,生产效率和成本就成了非常大的挑战,具体细节这里不展开解释了,目前高德已经做到了行业领先的水平。此外,还有鲜度和更新,最早期的时候以年为单位,后来到了月更新,周更新,日更新甚至更快,这样才能真正做到地图信息是准确有效的。

算法在解决高精地图面临的挑战中有很重要的作用。算法相关的工作主要有三部分:

  • 资料精度与对齐
  • 识别和生产自动化
  • 变化发现与更新
  • 资料精度

高精地图的首要原则是精准。高德从一开始就做了很大的投入,使用了很贵的采集车。用的高精度Riegl采集车,高精度激光雷度,它的测距精度能达到5mm,1M/sec;高精度的组合惯导;千寻基站解算…但即使这样大的投入和采集车配备,也并不意味着采集的数据资料就没问题了,还是会出现问题。比如轨迹,静止或运动的时候都会出错,出错的时候并不是很多,可能只有0.5%的比例,但出错的时候就会造成点云资料出问题,比如点云分层,工程师们需要做很多算法方面的工作去检测,在点云分层的时候把它修复。

经过一系列工作后,能在轨迹错误率上有明显的降低。单趟资料采集精度的问题解决后,很快就会遇到多躺资料对齐的问题。举例来说,一条路上很可能做多次采集,多次采集回来的点云,如果不做处理的话就会出现非常明显的重影,它是不贴在一起的,需要用算法的手段把它对齐。这也有很大的挑战,因为对精度的要求很高,在5cm以内。

各种场景的挑战很多,比如植被的影响。在不同季节的时候采集数据就会遇到这种情况,这些树和灌木会造成非常大的影响。同时在对齐的时候需要保持轨迹的刚性。因为原来采集回来的时候,轨迹的相对精度是很好的。在对齐过程中不能破坏和降低相对精度。而是要在原有基础上去提高相对精度,包括上下行的场景,如果是一条路,上下行不同两个方向和观测角度采集到的资料,以及桥上桥下,因为共视区域有限,对齐的挑战就更高了。

资料对齐

资料对齐怎么做?分为前端和后端两个部分。

前端有一个比较核心的算法就是点云匹配。比较常见的比如ICP或者GICP算法。但光是注意点云匹配是不够的,要把这个题解好,还需要解决很多其他的问题。比如稀疏点云特征提取,快速点云语义分割,快速车道线分割。这两块跟语义相关,在效率上是比较大的挑战。因为点云的资料数据量非常大,在计算时间上不能花太多时间。

前端做了很多工作,那对齐后端做什么呢,后端主要做大规模优化。因为轨迹的修整不能在单点做,需要很多条轨迹,甚至在整个城市的规模上一起去做调整。

高德也花了很多时间在做优化算法。比如做了一条基于样条曲线的稀疏优化算法。把它稀疏化以后就能达到百倍级的加速。能够比较好的解决在一个城市规模下的点云对齐问题。

识别和生产自动化

对齐问题解决后就是生产效率,即识别和生产自动化的问题。高精地图里元素很多,比如线性元素里就有车道线、护栏、路缘石、自然边界,还有所谓的OBJ,即地面标识、杆状物、交通标牌、桥、龙门架等等。这些都需要制作出来,采用自动化的方法,算法的方法就是非常重要的环节。它的输入有点云和图像识别。可以通过算法来生成HD地图元素。可以用算法来提高人工效率。

举几个有挑战性的例子。比如说下图的4种情况:

怎么解决?

输入主要是点云和图像。高德花了很长时间在优化模型能力和提高精度。包括:

  • 点云语义分割(多级随机聚合网络)
  • 图像全景分割(检测/分割深度融合)
  • 点云/图像融合(前融合+后融合)
  • 传统算法辅助(e.g. 拟合,三维)
  • 矢量化及建模(深度特征+图模型)

高德在这些方法做到了很高的水准:高准确度召回>98%;部分实现跳点作业,达到>99.5%召回;部分实现免人工检查,达到>99.5准确率。

变化发现与更新

在地图更新方面,高德有两套方案都在做,应用于不同的场景。一种是用激光的方法,一种是用视觉的方法。

激光的方法。因为要控制成本,所以使用了相对低成本的激光和相对低成本的组合惯导。输入的资料质量比较低,需要做很多事情去提高资料的精度。包括:

  • 紧耦合Lidar Slam/LIO
  • 实时语义分割
  • 定位地图:多重特征图层
  • In-the-loop重定位
  • 协方差模型
  • 全局位姿优化
  • 定位图层更新

上面这些都有相对比较成熟的解决方案。虽然输入资料差,但在更新场景下还是能达到很好的精度。

视觉的方法。由极低成本消费级相机和极低成本消费级组合惯导来做,这中间有很多视觉的算法。包括:

  • 紧耦合Visual Slam/VIO
  • 定位特征图层和语义图层
  • 特征+语义重定位
  • 全局位姿优化(融合VIO/重定位)
  • 定位特征图层及更新

现在已经做到15厘米;在严格评测的条件下已经是业界领先水平了。后续会继续提高精度。

视觉更新技术可以直接应用于构建地图。下面的图显示的是视觉建图和卫星影像的重叠。

变化发现的问题,高精地图如何做到更高的精度和更高频率的更新?

假设有一个极低成本的方案去采集图像,采集回来的肯定是一些质量很差的图像,在这些图像基础上要做对比,和真实世界的变化,比如下图里的两张图片里都有个电子眼,其实是同一个电子眼,但在图片上看着很不一样,需要用算法的手段来判断这是否为同一个电子眼。这里面就有很多图像算法的工作要做。包括:

这些方面高德都在做,也已经有了比较好的结果。这是高精地图制作过程中的一个必需的过程。这也是高德的特色所在,因为使用这些低成本的设备,能用现有的低成本的资料发现物理世界的变化。

高精地图是高德未来的一个重要方向。它的制作和落地是一个系统性的工程,除了算法以外,还有很多其他的关键工作要做。让我们一起努力。