简介
这个报告中主要介绍了高德地图在城市路段中建图和以及长时间维护和导航的一些工作。笔者对导航方面了解不多,所以主要整理其中建图的部分。视频链接在:Vision-Meets-Mapping-3 (VMM3) CVPR 2021 Tutorial Recording,报告 PPT 在:Mapping and Navigating in a Hectic World
高德地图中的计算机视觉应用主要分为两部分,分别是建图和导航。其中建图部分包括两部分:面向用户的标准地图(SD Map)以及内部使用的高清地图(HD Map);导航部分则分为:定位和车道线导航。
标准地图(SD Map)
基本流程
建图部分的大致流程如下:
大致分为:获取数据以及物体自动识别、和现有地图融合以及人工检查,最后更新至服务器。
其中从图像中获取道路数据的流程大致为:
- 检测:从图像中识别到标识牌,获取每个标识牌的图像位置(Bounding Box)
- 分类:对不同类型标识牌进行分类,如限速标志或者路线等
- 符号和文字识别:从标识牌中获取道路信息,如:具体限速、通行时间等
建图中遇到的挑战
在城市场景下,通常车流量较大,且根据天气和手机硬件的区别(高德地图主要为移动端应用),数据的质量很不稳定,像上图中光照明亮且没有车流的情况很少,而在正常时段获得的图片可能是这样的,包含图片的畸变、以及压缩导致图像分辨率下降:
而且需要识别的标志物有时候也不会像上图中的标识牌角度端正且明显,如摄像头从远处看的话是很小的:
且城市场景会很复杂,没有统一标准:
在识别过程,很多元素的语义是模糊的,如文字(需要区分是否和道路信息相关)、道路(是否能让车辆通行)等
此外,环境一直在进行快速变化。最后是对使用者的定位,大部分情况下手机 GPS 的性能不能满足高精度定位的要求。
应对策略
对上述提到的挑战,Xiaofeng Ren 列举了一下他们团队采用的办法:
小物体识别
这里主要列举了一下对训练过程深度学习网络的优化,由于我对这一块不是很熟悉,所以就简单罗列一下
- 获取更多数据:对网络进行迭代训练
- 使用 Label Smoothing, Multi-class focal loss 等方法来处理标签语义不清晰以及错误
- 采用半监督(semi-supervised) 的训练方式,如(pseudo label, teacher-student 等)
- 对小物体进行算法优化:使用 Simplified BIFPN 和 parameter remapping
环境变化识别
这里报告的重点主要还是针对导航的应用,即对道路信息的变化识别(如标识牌发生变化等),大致的思路是将观测到的数据和已有数据进行匹配,主要分为以下几个级别:
- 对象层面上的匹配:基于标识牌的语义信息进行比较
- 内容层面上的匹配:基于物体和其他物体的关系进行比较(如摄像头的安装位置)
- 场景层面上的匹配:从多个图片中获取信息,来判断这些物体是否来自同一场景
- 位置层面上的匹配:基于 SFM 来判断两个物体是否来自同一位置
定位精度
一个基本的思路是使用语义 SFM 来修正位置,但有以下问题:在城市场景使用 SFM 需要的数据量太大,成本受限,以及图片质量问题。 高德地图的做法使用深度学习来提高系统的鲁棒性和效率,并且和道路网络能够保持一致性,一个例子如下:
高精地图(HD Map)
高精地图要求的精度大致为:10cm/100m。此外同样需要降低维护成本以及需要保持地图和环境一致。
Challenges & Solution
高精地图建图过程中会遇到以下一些问题:
数据对齐
首先需要将观测到的数据(点云)和先验数据对齐,由于 GPS 的精度问题,车辆两次通过同一道路的位置测量可能会不一致,对齐前两数据的偏差可能会达到 1m,而高精地图需要要求这个偏差降低到 5 cm 以内。Xiaofeng Ren 提出了以下思路来进行数据对齐:
- 局部点云配准:使用 ICP、语义(线、面特征)或者基于学习的方法进行配准
- 全局优化:考虑全局的一致性,基于样条曲线进行大规模稀疏 LQPR (这里不太清楚 LQPR 是什么,结合图来看就是引入几何约束进行全局稀疏图优化(PGO))
- 激光SLAM:建图过程中需要考虑到在某些场景下 IMU-GNSS 构成的组合导航的精度可能下降到 60%,因此需要引入 Lidar SLAM,但 Lidar SLAM 也会有诸如低密度、噪声点多的情况。解决的方式有:
- 引入点云特征来降低噪声影响,如几何特征(线、平面),语义特征(Pole(杆子))
- 将 IMU-RTK 加入 Lidar SLAM 进行融合
物体识别和地图建立
首先需要结合图像和点云进行物体识别,同样也对精度有一定要求,如高召回率、定位精度以及能够在有限场景和数据下进行,如下图所示:
采用的方法主要有:
- 利用图像和点云进行同时识别
- 结合深度学习和传统方法
- 使用 Multi Scale 的融合方式,他们用了一个 BPNet-S3 的开源网络框架
- 从 SD Map 中重复利用数据以及模型
- 加入先验信息
建图过程中可能会遇到的问题有,道路边缘不明显、路杆和树干混淆等、车道线模糊等:
地图更新
这里高德地图对地图更新的要求是:低成本以及只使用视觉设备(相机)。这里 Xiaofeng Ren 提到他们目前不考虑点云的原因是基于成本以及点云本身的质量(噪声)不够高。这里他们给出一个高精地图和观测匹配的例子:
基于这种方案(使用特定设备去更新地图)的成本还是较高,因此他们使用一种成本更低的方法,使用已有的数据来进行环境变化检测。虽然低成本的设备的数据质量不够用来进行高准确率的地图更新,但是将其用来进行 Change Detection,将检测到变化的区域再使用高质量数据来更新即可,整体流程如下:
下面是一张基于低成本设备的变化检测例子,这里 Xiaofeng Ren 没有提到的他们的具体做法,大致上还是通过深度学习进行物体识别和语义分割。再以某种方式和高精地图相比较来检查环境是否有发生变化。
导航
TODO。导航这部分不太熟悉所以就先不看了。主要是介绍他们对应用导航部分基于 AR 做的一些处理使用户能够获得更清晰的导航信息。