课程介绍高精度地图的定义,其在无人驾驶各个模块的作用、高精度地图的采集与生产以及Apollo高精度地图的相关知识。
今天主要给大家分享百度L4车使用的高精度地图一些知识,我也想换个总结方法,以便让大家不会觉得枯燥。
一、高精度地图的采集与生产
首先我们看到高精度地图产生的环境便是半自动或全自动驾驶领域,这是必然的现象。可以看到上面的数字便是车辆的级别当然L5级别的车辆离我们还很遥远,但我们会朝着它的方向,不断前行。
1.什么是高精度地图?
HD Map 高分辨率地图 |
---|
HAD Map 高度自动驾驶地图 |
高精度地图最显著的特点1:表征路面的基准全面性 |
2高精度地图要求更高的实时性 |
3高精度地图=自动驾驶地图 |
2.高精度地图与导航地图
现如今的地图都是将街道组成一个个有向图,以便使用者能清晰明了的观察到信息,提供很好的方向引导,例如百度地图和高德地图。
当然如果对于自动驾驶汽车只标识这些信息,显然不够。必须将标识牌、红绿灯,,,等很多信息标注在高精度地图上,以便让汽车更加清楚地了解当前的道路情况。
3.高精度地图于模块的关系
可以看到,上图为高精度地图的大脑,大脑支配调度各个模块的运作,相当于地图是一切行为的基础。
上图便是现在百度主流的方案,关于定位于地图的利用之间的关系,很密切。
4.地图与模块的关系
可以 看到左侧是利用粒子滤波,它通过提取周围环境的特征(电线杆、树,,),通过这个特征,来判断当前位置,当然给一个特征显然不够,所以会在下一时刻找到另一个特征来增大定位准确度的概率。
右侧是基于车道线的匹配过程,通过Camera实时检测车道线,再经过提取车道线后的特征匹配,以达到吻合的结果。
5.地图与规划、预测、决策
我们无人车在规划路线时;
会有长距离规划:和人一样的规划方式,例如你从A到B,在地图上找到你要走的路线,去完成这条路线的路程。
短距离规划:根据实时的环境变化,去做一些局部的规划,目标很明确,但是路线会随时改变。
当然在车辆行驶时,你必须要能预测路上车辆和行人的变化,从而做出相应的动作,这就是导致规划方案不断变化的动态因素,但是这两者结合起来的话,就会给决策一个明确的数据,这时候就需要决策做出相应的方案了。
6.高精度地图与安全模块
安全有很多维度,不仅是对外部的描述,也有自身算法的稳定性等因素,会对汽车的安全造成影响,所以我们必须在安全方面狠下手来,把好关。因为我们最终的受益群体就是人类,必须对人类的安全负责任。
7.高精度地图与仿真系统
当然,仿真系统也是也是一个很重要的模块。因为一个产品的研发过程,会有很多改进的地方,如果每次都研发成成品,那费用高到离谱,所以我们必须把这种测试放到仿真系统中,才会降低时间和成本的消耗。
没有高精度地图,高可靠性的L3/L4自动驾驶无法落地
地图的作用-静态的Perception
把人类对于世界的感知和理解赋予自动驾驶系统。
当然在对各种环境进行研究时发现,有一些环境下根本用现如今的设备和算法不能实现的。
一、重庆交通
当然这是一个还算能看懂的交通,对于汽车来说,简直是要了老命,必须使用更优的设备和算法才能走在这样一个错综复杂的交通网中,还不会迷路。
二、雪天
根本无法使用雷达和摄像头对这种环境做出任何反应,就像一个雪盲症患者一样被抛到这样的环境下,只能依靠不精确的GPS撞出去。俗话说,闯出一片天地,应该就是说无人车在雪天的情况吧。
三、红绿灯
你以为是国内那些简简单单的红绿灯吗?你错了,这种红绿灯,人都要晕,更别说车,不信你看:
这是啥?简直就是星际迷航的太空红绿灯,负责调度各个星球的轨迹,以防发生碰撞。所以对于无人车来说,这样的几种特殊的环境下,还需要更进一步的研究,才能成为真正的L5级别。
高精度地图的作用—弥补系统性缺陷
关于Uber车祸的事件,我们加强了情况的研究和总结,得出的结论就是海量数据的传输速度在4G的速度下,不满足云端数据的传输需要,所以我们需要将5G网络嫁接到无人车的模块上,从而实现数据的实时检测,反馈给无人车。
二、高精度地图的采集与生产
1.高精度地图的采集与生产也是一个很复杂的过程,需要基于很多的算法来实现地图的生产,所以我们就开始慢慢的学习它的采集与生产的过程如下:
第一个就是需要通过多颗卫星,比如三颗卫星按理说就能定位到地球任何一点的位置,但是因为卫星定位存在一定的误差,不论是环境或者其他因素造成的,但都会有一些误差,所以我们必须使用四颗以上的卫星对其进行定位,以便达到精确定位的目的。
第二个就是IMU设备,当然它可以通过对车辆的加速度检测等物理性质检测,得到精确数据,传输给计算机,通过算法能强化高精度地图的定位精度,当时它会随着时间的推移而增大误差。
2.采集传感器的研究,它的主要设备如下所示:
我们看到可以通过车辆转动的数,来计算发现距离,这也是一个好办法,因为只要车辆不突然刹车导致车轮抱死滑动,一般都能通过车轮的圈数来判断距离。
另一个便是我们常常讲到的激光雷达,它的精度随着波长的改变而不断变化,但是它对于检测物体的坐标换算后能得到全局坐标的精确数据,很是有用。
3.地图生产-计算模型
我们知道单个设备对于信息的处理精度有很大的不足之处,于是我们便想到了将数据融合起来,经过融合的处理后,便能得到误差较小的数据,交由计算机处理。
下面提到一个公式:
J=Q(z-h(m,x))
该公式是一个高度简化的高精度地图计算模型,Q代表优化方程,z代表激光雷达扫描出来的点,h为方程预测最新的扫描点的位置,m为扫描到的点在地图中的位置,x代表无人车当前的位置。
这个方程的目的是通过最小化J求出测量点在地图中的准确位置。
4.视觉制图
我们现在主流的制图方案有两种一种是基于激光雷达(LiDAR),一种是基于视觉相机(Camera)。
于是我们得到下面的方案:
方案 | 特点 |
---|---|
激光雷达 | 信息准确,但是信息较少,不够丰富 |
相机视觉 | 色彩丰富,信息量大,但是处理起来不准确 |
LiDAR+Camera | 结合两者的优点,信息量丰富且准确 |
当然在制图的过程中还使用了点云来增加高精度地图的精度。
三、高精度地图的格式规范
1.格式规范-NDS
现如今全球比较通用的规范就两种,一种NDS,另一种OpenDRIVE。
NDS:规范的内容比较多,有一百多页,算是比较全面,包含的技术公司也会比较多。当然也会导致它实现起来比较复杂。
OpenDRIVE:是由德国一家公司制定,会对道路section、line和路口进行了规则的制定,现在听起来还是比较复杂,详细知识可以了解该方案。
四、业界高精度地图产品—1
上图是一个HERE HD地图的生产方式,通过一系列的采集于处理后,便可以得到最终可供使用的高精度地图,当然制图过程必须合法,在法律允许的范围内。
当然在HERE的信息采集时,通过一辆采集车,头顶一个16线的激光雷达,在街道行驶,以采集实时的数据。当然高精度地图的实时性导致了车辆必须不断的更新地图数据,以便保持信息的可用性。
Map-learing通过深度学习对道路特征的提取,采用的设备是激光雷达,这种设备采集的数据可靠性极强,有很大的实用性。
当然现在对于图形处理都是利用深度学习,因为其具有很高的准确度,再加上点云的处理就可以得到最终的精密地图。
如图的地图生产过程有图左侧所示的特点,百度Apollo也在对地图的制作过程中学习其他商家的优秀之处。
MobileEye
当然了MobileEye是一家很有名的公司,它很早就开始做辅助驾驶,现在也开始做自动驾驶。
可以看到,因为MobileEye被intel收购了,所以就把它的图标也加了进去,不过也很好看是吧。
当然能被intel收购,说明其技术还是比较雄厚,它与很多车厂都有合作,据说生产出来的车都有两千多万辆,可见实力很是强大。
第一个是感知,第二个是地图,第三个是driving的一些策略。
当然MobileEye在图像制图领域的实力是超强的,想想它的名字就能知道它的研发侧重点在哪里。
我们就对其制图方面进行研究和学习如下所示:
右侧汽车行驶时,有一个真实的场景图,最右侧是google 实况的地图,它会利用一根虚线,如图所示的绿线作为引导线,指引汽车的行进路线。
之所以汽车很难实施,有很大原因的信息量过大,无法实时传输的结果,也是我们务必突破的重要点。
Google Waymo
Google在对无人车行驶过程中,运用无人车基于高精度地图的静态信息和感知器对环境的动态感知融合两者,以便更好的利用信息。这也是目前大多数无人车研发者都会采用的模式。
地图包含的信息量很多,也很有用,例如对于红绿灯标识,减速区标识或者停车点进行标识,但是地图的信息毕竟是矢量图,所以谷歌在一篇文章提到地图通过静态的环境信息,这就同传统的高精度地图不同了。
这种高精度地图就很类似于栅格版的高精度地图,每个格里面都记录了所有的道路上一些物体的高度啊等更详细的信息。它也可以做一些过滤,让我们在对静态物体和动态物体的识别上减少了很大的计算量。
五、业界的高精度地图产品-2
上面也讲到了很多公司的优秀产品,下面我们做一些补充,再将一些优秀的产品和公司做一个简单介绍。
TomTom
该公司也是相对来说比较老的厂商了,它也主要是对地图等方面做文章,例如对标识的识别,基于激光雷达的物体处理等,主要也是基于激光雷达设备和神经网络算法对图像进行识别。
就是说我们把这个地图出来的结果然后下发到终端上,这是一个数据更新的过程。它能做到数据于云端的实时更新,这也是行业的一个很厉害的地方。
它会把环境的特征利用点云做出模拟的环境,以便在驾驶过程中,汽车行驶的道路能够用计算机实时处理,提高了计算能力。
六、Apollo地图采集方法
首先我们先来看看Apollo汽车的采集设备如下所示:
配备的设备及功能如下:
设备 | 功能 |
---|---|
64线激光雷达 | 采集路面信息 |
16线激光雷达 | 红绿灯或者高架信息 |
GPS | 基于基站,利用RTK方式精确定位 |
IMU | 检测和记录汽车行驶时的加速度,提供相关信息 |
长短焦 | 周围图像环境的采集 |
当然也会利用对传感器的正常工作进行检测,以确保采集工作的正常运行。所以阿波罗也提供了一键式安装方案,确保各个设备能正常工作的同时,也能数据一致,不会出现偏差。
基站搭建
为了提高定位的精度,外面也会采用基站搭建的方式。通过RTK差分数据来矫正误差值,为地图数据提供全局的坐标信息。
当然基站建设时需要在比较宽广平坦的地方,这样才能不断的观察卫星位置。一旦汽车与基站之间有遮挡物,当然是那种让信号很难逾越的物体时,就很难保证其实用性了。
采集流程
在采集之前,先检测设备能正常运行的标定,这样设备就可以开始进行采集工作了。当然在采集过程需要注意的一点就是双向车道覆盖三到五遍,目的也是为了能够达到一个较好的结果。
当然采集过程中,车速也不能太快,最好保持在六十迈以内就是很好的效果了。
然后我们会将地图信息打包压缩,这样就能将信息传输和共享,以便我们使用或者开发者共同使用了。
七、Apollo地图生产技术
我们主要分享在城市道路中如何生产地图。
数据采集:前面我们已经讲过了,采集数据时使用什么样的设备,经过什么样的流程等;
数据处理:数据大致分为点云和图像,因为L4级别的地图对精度要求比较高,所以主要是以点云为主。拿到点云后会对点云进行拼接,让数据具有可用性,这是对点云的处理。接下来我们会将点云压缩成图像,因为点云的精度很高,所以基于这样的图像作图像识别的精度也很高,这就是图像处理过程;
元素识别:我们大豆基于深度学习对元素进行识别和分类。但是如果没有车道线这种情况的话,车很难处理这种行为,所以如何对人离线的情况车又无法处理的情况我们需要更多的算法保证;
人工验证:就是在对汽车处理车道线或者红绿灯等逻辑上加入人的思维。例如车右转时,我们应该看哪个红绿灯等关联处理。
接下来我们学习当64线雷达感知到的点云图数据,如何利用起来进行数据融合加工的处理,拼接到一个完整的图。
接着是基于深度学习的要素识别。
在对要素识别是,很重要的方法是通过对点云数据的特征提取,因为点云的信息比较准确。例如从其中提取车道线或者路灯等。
接着我们学习人工生产验证的技术,左侧黑白图像是发射后的环境信息,融合处理成为右侧花花绿绿的高精度地图数据。
成果
在经过了上述的步骤制作后,我们就会得到一个定位地图、高精度动态图、路径规划地图和仿真地图。
当然路径规划地图和仿真地图都是基于定位地图和高精度地图制作的。
八、Apollo高精度地图
可以看到百度地图的数据元素也是很多的,这也是为了满足不同的复杂环境和驾驶需求。
其中最重要的是逻辑关系元素,其它的暂且不讲。
逻辑关系:就是把两个关系不是嵌入到各个元素中去,而是通过一个额外元素把这个两个元素关联起来。
这是我们的车道线模型,也是和OpenDRIVE的规则大致相同。
Apollo内部还是采用这种UTM的坐标系,该坐标系类似于把全球分成60个Zone,每个Zone的中心建立一个局部坐标系。它是一个比较复杂的系统,因为要把全球坐标系的每个位置都描述的非常精确。
我们基于的地图不仅仅是这一种坐标系,还有两种,当然想要更深入的了解,可以在下一步的学习中进行系统学习。
OpenDrive规范
规范的目的就是将所有的而东西做一个归类。例如我们会把地面上的所有标识归属为Objects,把标牌归属为Signal。
上图是我们Apollo对于规范的一些改进地方,详细地方可以详细查看。
HDMap
可以看到高精度地图的整个运行过程也是较为繁琐复杂的。
可以看到对于我们国家来说,高精度地图是一个非常机密的东西,并不是什么人都能来测绘。所以在我们国家不是所有厂商都能采集地图,只要取得国家测绘部门的许可后,才能对数据进行采集。
当然百度拥有采集数据的资格,但是在采集数据对于我们来说仍然面对着测绘政策的挑战。
可以看到百度现在已经覆盖了全国所有的高速公路,还有一些国道和省道,也预计下一步会覆盖所有的国道和大部分省道。
本次课程就到此结束了,谢谢大家看完了这么多繁琐的文字和图片。