高精度地图制作(二)
之前有写过一篇高精度地图制作的介绍,后面也思考了一些问题,其中比较困扰我的是高精度地图如何做到实时更新?高精度地图的维护成本?最近看了ZENRIN公司关于高精度地图的介绍PPT[1],得到了很大的启发,简单的做一个学习记录。
这个PPT的思路非常清晰,非常建议学习,下载见文末参考链接。下面开始介绍,多图预警,流量党请先收藏再看。
高效的高精度地图创建(使用GPU加速地图制作过程)
首先PPT的主题是"高效的高精度地图创建(使用GPU加速地图制作过程)",也就是说本文主要介绍了如果用GPU加速高精度地图制作过程。
你在东京的时候如何到达目的地?
想象一下你要去东京的某个景点,这时候你拿出手机,打开地图导航,一气呵成。也就是说我们需要东京的地图,才知道自己在哪里,如何去哪里,强调了地图的重要性。
接下来介绍下ZENRIN的历史,创建于1948年,在地图领域耕耘了60年,100%覆盖了日本有住宅区域的地图。
下面开始正式介绍高精度地图。
什么是高精度地图?
相比于传统地图,高精度地图不仅仅提供了道路信息,还提供了车道信息,交通标志,以及这些道路的位置信息,精度比传统导航地图更高,自动驾驶要求的精度在10cm以内。
三维信息
标识了车道线,路沿,红绿灯的三维位置信息。
语义信息
语义信息包括道路的结构化信息(哪里分流,哪里并道),同时标识车道停止线,信号位置等。
高精度地图保存格式
根据更新的需要,高精度地图一般分为几层,其中底图信息层是相对变动最少的,而动态信息层则是实时获取红绿灯的状况,路况信息等需要实时更新的信息,最后统一保存到数据库。
如何制作高精度地图
典型高精度地图制作过程分为3步:数据采集,数据处理,验证
采集车
地图采集需要专门的硬件,包括摄像头,激光雷达,轮速计,IMU和GNSS,一套下来价值不菲。
采集的数据非常大
可以看到采集的数据量非常大,即使这里是每隔2.5m拍一张照片,也就是说对道路做了采样之后的数据依然庞大。
点云注册
点云注册是制作高精度地图的基础,把2次采集的点云拼接起来,就合成了一张完整的道路,具体可以参考autoware的源码。
查找点云中的对象
接着就是查找点云地图中的对象,有些比较稀疏的对象,可以结合摄像头的融合,得出对象的具体信息,也就是说传感器融合在制图过程中非常关键。
制图并且验证
最后的过程就是提取道路几何信息,标注,并且进行质量检查,这些步骤都是在办公室用软件完成的。
高精度地图的挑战
这里提出了高精度地图的几大挑战:大量的数据需要处理,大量的计算时间,需要很多有经验的操作员,需要实时更新。也就是说这些问题也是一直困扰业界的问题。
如何加速制图过程?
这里提出了通过GPU和深度学习来加速制作地图
制作地图需要哪些工作?
这张图片非常好,完整的介绍了整个制作地图需要的步骤,然后逐个介绍如果通过GPU来加速这些过程,我找了下这里提到的"NVIDIA high performance mapping SDK"没找到,不知道是否是定制的一款SDK,没有公开?
点云注册(制作地图过程之一)
通过对比通过CPU的PCL库和GPU的ICP库进行点云注册,效率提高了4.6到5倍。
物体识别、分类(制作地图过程之一)
通过深度学习的场景分割和车道线识别,可以有效的减少人工操作。
制作地图的Pipeline
这张图很关键,讲述了整个高精度地图的流水线制作过程,很值得学习。
对比输出
这是制作高精度地图的最后一步骤,第一步是点云注册,之后是点云和图像融合辅助标识出车道等信息,最后一步原始提取,把上述融合的数据提取出重要的部分,主要是道路的部分,对数据做压缩。
利用反馈来更新地图
为了解决实时更新道路的问题,通过可靠和精确的定位来反馈真实世界的变化,并且把反馈加入到高精度地图中。
概念证明:制作整个日本的地图
这里提出了一个很好的问题,如何制作整个日本的地图,证明工作量的挑战。
日本和美国的区别
由于上述的深度学习用到模型,这里提出了如果要制作日本的地图,那么深度学习模型需要从新用日本的数据训练,这里简单对比了为什么基于美国的模型的数据对比。
我有个新奇的想法是,能不能像秦王扫六合一样,统一整个世界的交通规则?
结论
最后得出2点结论,一是GPU和AI确实可以帮忙自动的创建和更新地图;二是优化针对制作日本地图的流水线。
学习笔记
首要的一点,这个PPT回答了我的一些问题,比如:
- 高精度地图如何做到实时更新?
通过确认过精确位置的反馈来更新高精度地图,如果指望人主动发起更新可能不现实,但是如果是汽车主动发起,也就是每个车有义务对地图做更新,那么未来技术上还是可行的。
- 高精度地图的维护成本?
首先采集的数据确实非常大,计算量也很大,但是我们可以通过GPU和AI做加速来解决这些问题,并且也提出了一个很好的问题,证明如何制作整个日本的地图。
最后体会最深的就是关于制作地图的pipeline,并且详细的列出了制作高精度地图的各个过程,以及如何优化,其中图像和点云的融合,还有如何抽取压缩地图信息介绍的都很有启发。
关于英伟达地图SDK,发邮件问了下作者,目前得到的答复如下:
I saw "NVIDIA's High Performance Mapping SDK" in your introduction, but I can't find it in NVIDIA's official website. Is this a publicly released SDK?
No, it’s not released to the public and still under R&D phase, I believe. You may get more precise information if you contact NVIDIA directly.
看来英伟达还在开发这个SDK