基于边缘计算的自动驾驶高精地图建图与定位方法
地平线基于边缘计算的众包高精度地图解决方案是基于地平线自研芯片--征程的快速处理及计算能力,在已量产自动驾驶计算平台Matrix上,将强大的视觉感知和建图能力结合在一起,从而在边缘处利用SLAM技术实现高精度地图的创建,并利用众包技术实现地图信息的实时更新。总的来说NavNet就是利用深度学习和同步建图及定位技术结合实现高精建图定位系统。
01背景介绍
随着人工智能的兴起, 汽车 行业也发生了翻天覆地的变化, 互联网 巨头和传统汽车行业投入了大量的人力与物力来参与自动驾驶相关技术研发与落地。高精度地图作为自动驾驶汽车必不可少的一个环节,它可以帮助自动驾驶汽车预先感知道路的复杂信息,并提供实时高精度的自车定位,结合智能路径规划,让汽车做出正确决策。但是高精度地图的实时建图、更新和定位却是个巨大的工业障碍,传统方式多以地面信息采集车前往全国各地采集信息,再去处理和补充地图数据,做成图后再为用户端发送更新包,用户在终端完成数据的更新才能实现一次地图数据的更新。这样的地图更新过程繁琐且亘长,无法满足自动驾驶车辆对地图更新和定位的要求,高精度地图要求车辆位置偏差小于10厘米,且可以反应实时路况信息,这对于地图的更新提出了更高的要求。更重要的是,数据的传输时延问题如何解决?高精地图计算量巨大,难道每辆车要背一个电脑么?当然不可以。而且随着自动驾驶级别的提高,自动驾驶技术上对高精地图的更新频率和覆盖范围也提出了极高的要求,需要海量的地图采集设备来支撑高精地图的大规模快速更新,因此“众包”的概念应运而生。
02解决方案
NavNet视觉众包地图与定位解决方案把地图更新所需的数据采集任务交给道路上的普通车辆而非专业采集车辆,赋能高精地图众包更新,将建图与定位计算全部在边缘完成,输出局部三维语义地图,既可与已有高精地图匹配进行定位,也可用于众包地图更新和高级驾驶辅助的高精度定位。
03技术路线及方法
地平线凭借出色的感知算法加持,在自主研发的AI芯片(征程)上实现基于边缘计算的自动驾驶高精度地图建图与定位的解决方案--NavNet。NavNet视觉众包地图解决方案,仅需一颗前视摄像头,运用深度学习和SLAM技术实现了道路场景的语义三维重建,将建图与定位的过程全部在车端实时进行。车辆通过前视摄像头捕捉即时交通信息,然后抽象出道路场景的特征(即实现场景语义三维重建),并直接在车端完成地图“绘制”与定位。
在这一过程中,NavNet主要完成以下工作流程:
(1)采集:通过摄像头、IMU、GNSS、CAN等传感器系统采集数据(路况)信息;
(2)分析:将深度学习与SLAM技术结合,加入图像语义分割、语义地图构建等语义信息;
(3)建图:通过视觉SLAM技术,建立3D高精地图;
(4)融合:将建图片段融合优化,提升地图完整和准确性;
(5)定位:通过车体定位与建图结果匹配,完成车辆高精度定位;
(6)生成:将建图与定位的数据结果加密后传送到云端数据库,解码后与全局地图匹配融合。
图1 NavNet架构图
(1)采集
在NavNet解决方案中,路况信息的采集通过几项相关的传感器来实现——摄像头,GNSS(Global Navigation Satellite System,全球导航卫星系统)和IMU(Inertial measurementunit,惯性测量单元)。当然除此之外,许多传感器设备的运行也离不开CAN总线的帮助。摄像头,用于采集信息,用来实现感知处理和实时建图定位;IMU+GNSS+CAN总线,用来实现车体自定位,主要用于确定车辆所处的大致位置。除了传感器的加持,处理过程也离不开算法平台的支持,在NavNet解决方案中算法模型所使用的模型平台--Matrix,该平台是基于地平线征程芯片的一款能够直接运行神经网络并实现图像视频的即时分割、检测和识别等功能的感知计算 智能硬件 设备平台,该平台设备可以根据摄像头搜集到的信息,将搜集到的视觉感知其数据进行处理与解析,输出解析之后的感知数据及结果。
NavNet众包高精地图解决方案利用Matrix感知计算平台,得到摄像头采集并处理之后的感知数据,用于之后车辆的分析与决策使用,而各项传感器实现车体自定位,则是对于车辆位置的大致判断,主要因为自定位技术的误差大,无法满足高精地图的要求,因此NavNet利用车体自定位技术+摄像头感知局部定位技术来完成数据的分析和车辆的高精定位。
(2)分析
地平线征程系列芯片,性能优且支持神经网络加速,在数据分析方面更多的是将深度学习与SLAM(simultaneous localization andmapping,即时定位与地图构建,让机器人在未知环境与位置中边移动边绘出地图)技术相结合的方式。采用这样的方法也是依仗深度学习在视觉数据分析与处理方面的优势,并结合机器人建图的方法以实现高精地图的实时创建,两种方法相结合的分析方式主要分为三种:
分析方法一:用深度学习方法替换传统SLAM中的一个或多个模块(如特征点提取,位姿估计,重定位等方面);
分析方法二:在传统SLAM中加入语义信息(如图像语义分割,语义地图构建等方面);
分析方法三:端到端SLAM,即输入为图像信息,输出则是动作信息。准确来说这一分析方法更接近于深度强化学习算法,即给定所处环境(可以理解为图像信息)和所要到达的目的地,以及完成任务后可以得到的奖励(reward),智能体需要自主学习相关信息,最终输出行为信息,并根据行为信息的反馈得到自己的奖励。
(3)建图
在地图创建方面,传统的高精地图创建主要依靠激光雷达等传感器,得到其点云感知数据,最后形成矢量地图。但是激光雷达价格昂贵,每辆车都配备非常好的激光雷达,其成本可想而知。当然,建立高精度地图并不是只有这一种方法。地平线NavNet采用的是通过单目摄像头建立3D高精地图,所采用的技术即为视觉SLAM(v-SLAM)技术,其技术框架主要包括VO(Visual Odometry,视觉里程计)、后端以及回环检测。
目前阶段,地平线NavNet更多地采用分析方法二,或者说通过语义SLAM的方式来实现高精度地图的创建。不过,随着时间的推移和产品迭代,地平线NavNet的技术也在日益成熟,其技术方式也在发生改进。这里,实现建图的技术方式又分为三种:
实现方式1:通过语义分割+点云重建+参数化来创建矢量地图;
实现方式2:通过语义分割检测+语义重建来创建矢量地图,这是对方式1的整合与精简,将后端优化、语义识别和参数化等方面和链路,融合成为一条优化模块——联合优化模块,既简化了工作的流程,节约时间和运算能耗,又可以实现同样的功能。这是地平线NavNet目前采用的方式。
图2 地平线算法结构
实现方式3:完全利用深度学习来创建矢量地图。这是NavNet最终的技术目标,这种方法下的计算量将更小,直接成图得到结果。实质上,它与上述分析方法三的思路和初衷都不谋而合。
(4)融合
在NavNet方案中,地平线提供云端地图融合优化参考设计,其能够自动将大量车辆采集的地图片段数据进行关联匹配,以矢量地图要素的属性参数为变量,根据属性的相似度约束建立统一的目标函数,优化求解以获得融合地图结果。这一融合优化过程既可以定时全量执行,也可以根据地图更新的结论,经过事件触发进行高效融合之后,提供更新、更精准的地图信息,即可快速地发布到车端供车辆定位导航使用。
图3 NavNet地图更新模式
NavNet方案在边缘侧可以进行地图要素的更新识别,甚至是更新量的计算,在边缘侧进行地图更新的好处在于,可以自动应对部分场景及地图的变化,完成符合交通规则和舒适性安全性要求的决策,即利用AI芯片的算力实现更好的边缘智能。选择在云端进行数据融合则是因为云端的存储量大,更适合进行数据融合,与传统地图相比,高精地图的图层数量更多,图层内容更加精细,因此它的数据量也是惊人的多,因此,在云端进行数据的存储和融合是最优的选择。
(5)定位
NavNet定位是通过车体的自定位,得到自动驾驶车辆的大致位置,再通过NavNet实时建图产生的结果,在附近区域内将局部地图信息与全局高精度地图做数据匹配,从而得到自动驾驶车辆当前的高精度位置信息及其周边环境的语义信息,得到相似性最高的匹配结果即视为当前车辆的位置信息。
NavNet解决方案中,车体自定位主要依赖于GPS+底盘轮速计+其他传感器的方式实现:首先,利用GPS定位系统,可首先确定自动驾驶车辆当前处在哪条道路上(该偏差一般在5~10米);随后,根据摄像头建图的语义信息,检测的车道线(虚、实线)及道路边缘(路沿或护栏),并与高精地图提供的车道线及道路边缘做比对,进一步修正无人车的横向定位;最后,根据建图的路面标志、交通标志牌、红绿灯等环境语义信息,与高精地图提供的要素做匹配,实现无人车纵向定位的修正,确定无人车当前的位置信息及周边环境,这一过程也称为语义定位技术。
图4 车体自定位技术
而NavNet同时采用语义定位技术,辅助车辆实现更加准确,精度更高的定位。语义定位技术主要依靠摄像头采集当前路况信息,将接受到的图像信息进行数学转换,形成3D结构的道路信息模型,将道路模型生成图像视角的点云信息模型,与此同时,采集的图像信息也会生成直观的道路信息模型,道路信息模型与点云信息模型做匹配,根据匹配结果确定是否当前局部信息与全局信息相吻合,从而确定当前的位置信息,实现无人车的高精度定位。语义定位与车体自定位相辅相成,根据车体自定位的范围可以减少语义定位的范围,节约算力,使得定位更高效,更准确。
图5 语义定位技术
(6)生成
NavNet中建图与定位后的数据及结果会通过加密芯片的加密再输出,最终将加密数据安全的传送到云端数据库中,图商可以在云端进行解码;众包产生的局部地图信息的更新将会与图商的全局地图进行匹配与融合,最终完成局部地图与全局地图的更新和再加工,实现自动驾驶精确定位和导航的需求。
当然,在数据的云端,数据的优化融合、质量验证等处理和管理都会做到安全保密和准确无偏。作为国内首款众包高精度地图建图与更新的产品,NavNet最重视的就是地图数据安全。NavNet利用边缘计算技术,将局部地图的创建放置在边缘处完成,而最终建好的局部地图与相应的语义信息,都会经过加密芯片的加密,之后传输到云端服务器当中。
04实现结果
利用深度学习与SLAM技术,NavNet最终实现高精度地图的建立,用户可以只利用一款产品即可实现自动驾驶高精度地图的创建与实时更新。最终,高精度地图的呈现形式如图6所示,比点云更简单的3D结构模型,助力高精度地图的创建与更新。
图6 NavNet建图结果
05总结与展望
边缘计算是真正能够达到实时处理的技术方法,其最大的优势是可靠性高、安全及隐私性高、传输成本低、实时性好、高效协同这五个方面。NavNet就很好地发挥并利用了边缘计算的这些优点,做到了以下几点:
安全:端上建图,端上处理,端上加密,不受网络攻击等问题的困扰;
高效:征程芯片数据处理能力强,数据的处理效率高;
快捷:边缘计算为地图赋能,实时性高,低时延,不受网络传输的困扰;
方便:车规级产品,易于携带存放,众包方式更新产品及其性能。
地平线凭借世界领先的视觉环境感知算法,与专属定制AI芯片相结合,通过软硬件协同优化设计,针对中国交通特色进行场景化研发,最终能同时处理地上地下、复杂路况的场景,并进行颗粒度、结构化的语义感知,为汽车打造自动驾驶大脑。