地图导航现在已经成为大多数都市人出行的必要工具。地图导航利用丰富的图像、文字、语音等多媒体介质,一步步地指引我们在错综复杂的路网和路况中到达目的地,让人类的出行变得更加便捷、安全、高效和舒适。
△ 传统导航
大家可能有这样的感觉,近些年来,地图导航产品实际上没有太大的变化,各种产品在功能和体验上也逐渐趋同。这主要是因为我们车辆的配置、地图的内容以及用户的需求没有发生根本性的变化。可以说地图导航处于一个很成熟的市场阶段。
而汽车行业目前最火的技术无疑就是自动驾驶了,也就是让计算机代替人来驾驶汽车。大家也许会问,既然人不再是驾驶的主体,那导航还需不需要?计算机也需要导航吗?
答案是肯定的,只是与传统的导航相比,自动驾驶需要的导航发生了明显的变化。这里面最大的区别,就是两者使用的地图是不同的。
传统导航用的是普通的导航地图,也就是我们手机里导航APP使用的地图。而自动驾驶用的是ADAS或者是高精度地图,后者在道路几何描述上,从精度和细腻度上都提高了一个量级。
为什么自动驾驶系统需要高精度地图呢?这还得归结于一个很尴尬的事实,那就是计算机还没有形成人类如此强大的感知能力。
回想一下我们自己用导航的经验,我们把目测到的街景和地图上所绘制的街景做一个迅速的匹配,就知道自己在地图上的位置。结合语音文字或者图像,就能清晰地理解导航指令的意思,做出正确的操作。即使开始两次不熟悉导航,在经过一两次训练之后,就能很顺利地使用导航了。
但对于计算机来讲,这些导航指令的背后意味着相当多的运算,包括定位、感知、决策、控制等。在这些领域,电脑目前没有办法与人脑相比,这就需要我们把各方面的先验信息,比如地图信息,整理得更细致更精准。
就像一个婴儿,咀嚼和消化能力不强,需要我们把食物弄碎做成流食时才喂给他们一样。试想,如果哪天电脑在感知方面完胜人脑,就像AlphaGo在围棋方面秒杀人类一样,用传统地图甚至不用地图实现无人驾驶也是可以的。
△ 高精度地图
首先,高精度地图对道路几何描述得更加精准和精细。比如传统的导航地图能用几个采样点表示一条街道,会告诉你这条街上有几条车道。而高精度地图可以把每条车道的中心线和车道线的几何形态都精准地描述出来。所以,有些人习惯把这类地图称为自动驾驶地图,因为它就是为自动驾驶量身定做的。
第二点,如果说传统汽车导航软件的功能大同小异的话,那自动驾驶的地图导航引擎可能千差万别。这是因为,每一个自动驾驶解决方案中用到的传感器不一样,计算单元计算能力不一样,所采用的各类算法不一样,每种算法对于地图的依赖程度不一样。这些需求上的不确定性势必会导致地图内容和地图导航所提供服务的差异化。另外,地图导航的存在形式也不尽相同。传统的导航是由人和导航设备两部分组成,人承接了所有的感知决策等操作。在自动驾驶中,地图导航模块可以与各个模块单独组合成为一个整体,形成“定位+地图”模块,“感知+地图”模块等等,再从更上层进行拼接。
同时,地图也可以像以前一样,作为一个独立的模块存在,与各个模块平行共存,以消息或调用的形式给其他模块提供服务。前者可以降低系统耦合度,适合模块化结构,极大程度发挥地图数据和地图服务的精准性;后者可以进行整体协调,避免很多重复计算,从整体上优化效率、功能和存储。
第三点,传统导航和自动驾驶导航在各个功能模块上也有区别。传统导航可以分成如下几个模块。
路径规划,回答了去哪里的问题。
地图匹配,回答了在哪里的问题。
导航指令,回答了怎么去的问题。
人机交互,主要起到了让人更好地理解导航、操作导航的作用。
其实在自动驾驶领域,这些模块都还是存在的,只是因为导航的受众从人变成了计算机,这几个模块也有了或大或小的变化。
△ 路径规划
第一,路径规划模块。自动驾驶的路径规划要从街道级别做到车道级别。而且在路线选择的时候,要充分考虑自动驾驶车的偏爱,传统的最短或最快路径并不一定适合自动驾驶车辆,反而安全性可能会成为路径规划的主要考量。
第二,地图匹配模块。这一部分受定位精度影响很大。如果有多传感器融合形成的高精度定位结果,地图匹配这个功能将变得很简单。
但为了实现高精度定位,自动驾驶的地图导航模块往往需要提供足够多的地图信息给定位模块,比如提供车道线来辅助横向纠偏,提供立体标识物的信息辅助纵向纠偏。
第三,导航指令模块。这部分的体量要远远大于传统的导航。传统导航可以简简单单地告诉前方是一个什么样的路口,人类就可以理解下面要做的一系列动作。
对于计算机,我们可能需要很清晰很细致地把这个路口的描述出来,比如总共几条车道,宽度多少,前后关联关系,车道的几何形状如何等等,这样才能一步一步手把手地“教”计算机如果通过这个路口。计算机的很多运算都是基于这些精准的信息来进行的,一点点的偏差,都可能会造成决策上的失误。
第四,人机交互模块。可能很多人都认为,计算机并不需要传统导航中的图像,语音,文字等导航信息来辅助驾驶,甚至地图渲染也不需要。但实际上,在相当长一个历史时期内,人和计算机是要有互动的。
人需要理解计算机处理的过程,这样才能够逐渐的建立对计算机决策的信任。从这个意义上讲,地图和导航信息的可视化是必要的。它更多地用来展示自动驾驶计算的过程,解释它对当前情景的一个判定过程。而人类获取这些信息之后,也可以逐渐增加对自动驾驶的信任感,了解其行为方式,并与其展开互动。
第一,要充分挖掘高精度地图的特点。比如,高精度地图的相对精度往往优于绝对精度,特别是考虑到我国地图加偏这个情况。这就要求我们把地图看得“长”一些,“远”一些,充分利用地图的几何走势,而不能过分纠结于单点精度。
第二,要充分结合自动驾驶设计方案来制定。前面说到过,由于自动驾驶解决方案不一样,地图在其中所起的作用也不尽相同。所以说,没有最好的自动驾驶地图导航,只有最符合每家解决方案的地图导航。过分地追求大而全的地图服务,实际上是对资源的浪费,也很难把处理效率提高。
第三,要充分倾听各个模块的需求,让各个模块用得放心。地图可以给自动驾驶几乎所有的算法模块提供必要的数据信息,所以各个模块或多或少都会对地图有所依赖。但这里面有一个“适度”依赖的问题。完全不依赖地图,势必会增加每个模块处理的难度。
过度地依赖地图,尤其是过度地依赖地图的绝对精度,难免会对最后的结果产生不可预期的影响。这需要地图与其他模块共同磨合,将需求合理化、清晰化,这样才能将地图用得恰到好处。
第四,地图导航不能成为系统性能的瓶颈。自动驾驶目前的一个最大瓶颈就是处理器的算力不足,而地图导航面对的恰恰是大面积大体量的地图数据。如何保证高效的服务,不让其成为系统性能的瓶颈,是地图导航需要研究的问题。这里面涉及到地图格式,缓存策略,数据读写管理策略以及各类服务算法的优化。另外地图与各模块接口的体量也是影响地图效率的重要瓶颈,需要精细化定制。
第五,同时满足人和自动驾驶对于导航的需求。特别是针对L3级别的自动驾驶来说,人不能离开驾驶位,所以存在一个人类驾驶和自动驾驶的磨合期,双方需要进行交流,进行互动。
自动驾驶技术的发展,其实也是一个人类教会计算机开车的过程,所以在地图导航这个方向上,人类和计算机应该逐渐形成某种“共识”。这也就决定了我们有可能设计一套同时为人和计算机服务的地图导航模块,让人更好地理解计算机的决策过程,必要时也可以让计算机学习到人对于当前处理“不满意”的地方。当然,这需要我们从展示内容,展示方式,互动方式上进行有创造力的设计。
— 完 —
量子位AI+系列沙龙--智慧城市
加入社群
量子位AI社群开始招募啦,量子位社群分:AI讨论群、AI+行业群、AI技术群;
欢迎对AI感兴趣的同学,在量子位公众号(QbitAI)对话界面回复关键字“微信群”,获取入群方式。(技术群与AI+行业群需经过审核,审核较严,敬请谅解)
诚挚招聘
量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复“招聘”两个字。
量子位 QbitAI · 头条号签约作者
վ'ᴗ' ի 追踪AI技术和产品新动态
喜欢就点这里吧 !