百度高精地图的产品解析及经验挑战
- 在自动驾驶不断落地的当下,高精度地图作为车道级别、厘米精度的道路网络和交通信息地图,正从技术研发向规模投入迈进。百度作为国内顶尖图商之一,在高精地图的研发与应用上有着丰富经验。
百度高精地图的发展史
- 百度的高精地图研发在国内起步较早,历时较久。早在2013年时,百度就已经开始了自动驾驶以及高精地图的相关研究。随着自动驾驶的不停发展,我们高精地图也跟着自动驾驶一起发展,百度自动驾驶发布的每一款产品,其背后都有高精地图的支持。
- 同时,百度高精地图也作为一项独立的自动驾驶产品,对外交付给百度其他的合作伙伴。在2017年,百度就已经拿下了第一个高精地图的量产订单。2018年,百度率先完成了国内30多万公里高速公路和城市快速路的地图全覆盖。
- 可以说,百度的高精地图配套百度的自动驾驶,伴随着整个自动驾驶行业不断向前发展。
应用案例
-
百度高精地图在各种产品上都有着丰富的应用,比如现在提供的Robotaxi无人驾驶出租车,还有Minibus这样面向园区接驳的小巴,以及Valet Parkting在乘用车上提供的自主泊车。
-
同时,在整个Apollo的生态中,百度还与合作伙伴一起推出了很多其他的自动驾驶相关的产品,进行高精地图的落地应用。比如
Microcar
园区小微物流车,Freight Truck
长途的货运卡车及Mining Truck
面向矿山、码头这些特殊场景的专业用途的车量。 -
不同驾驶系统对高精地图的需求其实是不一样的。我们知道,地图可以显著提升自动驾驶的成功率、安全性和驾驶体验。但是,高精地图本身有一定的生产成本以及更新成本,所以不同的产品、不同的场景,会选择不同的自动驾驶方案。甚至于相同的产品,不同的人在自己的方案选择上也会有一些差异。因此,他们对高精地图的诉求,也会有差异。
-
以具体的例子,来看不同产品的不同的需求。
- 智能辅助驾驶,我们现在能够购买到的乘用车,比如小鹏、蔚来,都具有这样的功能。这些通常会定义在L2或者L2+,在这样的应用场景下有一些解决方案会选择不依赖高精地图,甚至会宣称完全不用高精地图。当然,也有厂商会选择依赖高精地图,但总体而言其依赖程度是较低的,内容也比较精简。
- 长途货运,这是在高速范围使用,在以前更多的是被定义在L3这个级别。这个级别对高精地图的依赖程度,要稍微高一些,但是肯定低于L4级别的要求。
- 园区的低速配送和接驳,这是面向园区的L4级别驾驶。针对的是园区的专用的道路。对地图的依赖程度也明显提升了。
- Robotaxi,全场景开放地图的无人驾驶出租车,这对地图要求一定是最高的。
-
以上列举的是一些典型的场景、典型的自动驾驶产品,因为产品定义的需要,导致他们对地图的依赖程度以及对于场景、范围的要求其实是有差异的,因为这两个差异最后会导致对地图的内容要求、质量要求和成本要求,都有所差异。
产品矩阵
- 百度目前提供的高精地图产品矩阵,实际上,已经基本能够满足市面上已有的各种层次的自动驾驶系统需要。首先,会用到传统导航的
SD Map
。这个导航地图和大家手机上使用的地图没有太多的差别。这部分主要是用来进行人机的交互,比如去规划、导航某一条路径,去查询一些信息。 - 然后,
HD Map
,这就是我们通常说的经典的高精地图。这样的高精地图,目前是用在L3、L4,这些自动驾驶的解决方案中。 - 现在,慢慢地我们也在尝试,根据自动驾驶的需要,从传统导航地图和经典高精地图这两个极端往中间走。比如,从SD地图出发,SD地图里面可能更多的是道路级信息,在这个基础上,我们是不是可以有提供更准确的,比如车道级的信息,来满足辅助驾驶的需求。其实,在自动驾驶还没有十分火爆之时,许多图商在辅助驾驶的领域下过功夫,我们称其为ADAS Map,这是一种面向L2的高精地图。再如,从L4级别的高精地图出发,进行降维。去年,百度就推出了高级智能辅助驾驶系统的ANP,对标特斯拉这种这样的解决方案。那么我们也配套了ANP的地图,相对于L4级别的高精地图而言,ANP地图会尝试对地图的质量要求、内容要求做一些精简,能更加适配这种量产乘用车对成本的要求。
百度高精地图组成
- 百度高精地图产品在具体组成上其实是不太一样。这里将L4级别的自动驾驶来介绍百度高精地图的组成。可以认为这就是目前百度高精地图最完整的一个全景。
- 目前百度高精地图主要分为四个部分:
- 第一部分,是定位的图层,顾名思义是用于定位。
- 第二部分,是静态矢量图层,是基于生产出来的矢量信息,这个也可以被称作狭义的高精地图。
在这个部分将会表达我们日常在道路上看到的所有的跟交通相关的信息。比如道路两旁的交通设施,道路本身的车道,道路上的其他标线、道路停止线等,以及基于这些交通设施实际上表达出来的一些语义关系,如拓扑关系,虚拟车道之间的连接关系,红绿灯的绑定关系等。 - 最后,在这两层最基本的数据之上,目前还提供了人类经验的图层以及动态的信息图层。
质量挑战
- 在做点云拼接的时候,较依赖于一开始的位置初值。就是一开始拿到的单帧的点云图像,它需要一个比较准确的位置。但是,在实际的整个场景当中,有很多是弱的GPS场景、弱的卫星信号场景,或者是完全没有卫星信号的场景。比如开车到立交桥下面,就会收到提醒说GPS信号弱,位置刷新可能不及时。这个过程当中就没有了一个初始的值,没有人告诉你这张图像、这帧点云是在哪里,是在什么位置发生的。这样自然也就没法把点云数据放到一个正确的位置上。在L4级别的这个地图里面,对于精度的要求是非常高的,比如说目前用的HD地图,基本都保证十厘米级的精度。并且整个图需要全体一致,绝不能把图简单地分解成无数个小图,然后去生产。最后需要有一套方案把数据摆放在一起去生产,这样才能完成城市级的,甚至是全国的交付需求。
- 在这个过程当中,百度投入的资源非常多,技术上的点也比较多。下面我们就举几个点来说明。
- 第一,百度有一套资源——自研GNSS后解算。这样能够帮我们拿到更准确的初值结果。
- 第二,百度在点云配准方面,相比于经典的ACP准配,我们自研基于深度学习的Deep VCP这样的点云配准网络。
- 第三,就是在整个大规模点云拼接的时候,几乎没有一套算法、一个方案能解决所有场景问题,并且针对一些初值更好的情况,更需要选用一些优化的方案,取得更高的性能比。所以在这个过程中,我们会去选择、进行一些分场景的优化手段。
产线挑战
-
高精地图的量产需要面临的问题不单单是数据量的问题,而是在整个地图生产过程当中,每一个环节步骤都面临巨大的挑战。
- 比如说数据处理的环节,每一份数据都可能经过上百个数据处理模块,这个过程中就需要生产管控的角色、质量管控的角色。整个生产流程非常长,参与的角色也特别多,周期把控和自由调配的难度非常大。
- 此外,从目前自动驾驶和高精地图发展的整个过程来看,对于不同高精地图产品产线需求是不同。实际上对于一份数据,它的需求总是会有些差异,怎么去应对这种定制化的需求?这也是一个必须注意的问题。
-
在实际过程中,百度会分层解耦地设计整个产线的架构。我们把最原始的一个交付需求,经过前台、中台以及后台的分解,这样在具体地面向一个资源的时候,就不需要太担心我自己是处在什么流程或者什么环节,这一切都是用分角色的方式去管理进展过程。此外,为了更好地缩短交付周期,使得整个交付周期更可控,百度会把采集的数据进行分批的流式生产,以及在整个环节当中,都会去适配各个环节最佳的数据处理的粒度。
算力挑战
- 目前百度每天有PB级的数据需要去处理。这放在任何一个公司、任何一个业务,都是一个非常大的挑战。在制图这方面,我们有上百个数据处理的环节,其效率、稳定性、扩展性都是需要解决的问题。
- 目前,百度基于整个高精地图的产线,打造了一套自己的数据处理平台。这个数据平台,是依托百度非常强大的基础设施,包括存储方面的和计算方面的能力,来打造整个的数据处理的流水线。在这个过程当中,百度也会尝试去开发和设计,适合自己的产品结构,适合自己的计算引擎,以及在这个过程中再进行算法的工程化,让算法的通用性和定制性、扩展性变得更好。
更新挑战
- 目前,在Robotaxi这个业务上是运用了车上实际已有的传感器、已有的数据来进行的更新。大概的过程就是车端传感器上有一个模块去检测实际的结果和高精地图之间的差异。如果检测到确实存在现实的变更,就会将传感器数据进行实时上传;利用这份数据,一方面能够进行数据的更新,另一方面,还能把这个数据录入到仿真的库里,能够进行仿真验证。当然仿真验证远远不够,在这个数据真实上车的时候,也会去做一些小规模的实际道路测试,最终才把这份地图更新到自动驾驶的车上去。