小哥哥我最近又在一家无人驾驶公司实习了,主攻高精地图、语义地图方向,今天为大家讲一讲我阅读各大媒体科技板块、各个技术科普公众号、看过各无人驾驶公司流出视频进行反推,以及自身日常工作接触任务后,对高精地图是什么这个问题的理解。
高精地图
高精地图是现阶段无人驾驶“有地图模型”类方案的支柱。有地图流派,高精地图的好坏直接可以度量一家无人驾驶公司的技术水平,因为几乎所有技术,都可以用于HD-map的构建。
先上一张图,来点感觉。
HD-map包括的图层
这是此篇博客的核心部分,作为科普性质的blog,帮助大家理清HD-map具体指哪些东西。
目前HD-map的技术和具体规范仍在发展中,各位玩家对其定义和所含内容也不尽相同,不过概括地讲,HD-map会包含以下几种图层。
1.几何图,2D,纯以点、线、多边形三种元素构成的图层,是道路和建筑位置、边界及方向的一个抽象,而存储时只存储点的坐标,常见的便是经纬度坐标。多点一起存储便是折线,闭合折线是多边形。
2.矢量图,行车有方向之分,这个图是弥补几何图没有方向的缺点而生的,在数据结构里,就是有向图和无向图的区别。
这个图依据交通规则的方向规则制成,对与路径规划,尤其是长期规划紧密相连,我们从A到B,大体的路径便是由各路段的分段矢量接合而成。
3.路网图,路网图建立在几何图之上,对几何元素表达的含义以一定的规范(目前国内以OpenDrive为基础改进的Apollo的路网规范被许多玩家接受)进行编辑,例如规定车道最2边的线是路沿,那么一个人虽然没走过那条路,但知道这个规范,看到一张新地图的路,也会自然而然地认为最2边是路沿。
路网图的意义有2条。一是这些规范本身是对知识、规则的抽象编码,使得路网图能够表达丰富的信息。二是路网图可以以基于可扩展标记语言xml规范演变的语言格式进行保存,便于加载、传输、解析。
4.点云图,无论是camera稠密重建还是lidar直接扫描,点云地图比上述3图包含了更多3维空间信息,更接近真实空间,也有更多的障碍物信息。
点云图的意义主要集中在近距离感知、局部定位、短期规划上。但地图大了以后,点云数量巨大,对于存储和及时加载是很大的考验,所以必须考虑云端存储、在线申请局部地图、高速传输、增量加载新地图删除旧地图的事情。
5.特征图,特征图通常是点云图的一个子集,以一种标准度量所有点时,特征点在局部点云中表现突出,获得极值,所以被记录下来,并拥有专门的描述子,便于快速查找。
特征图常被作为区域点云的索引,可快速查找并定位到某一小片点云附近,通过这种方法,我们便可以完成上一个图中所说的在线区域点云申请的第一步——定位局部点云块。
6.动态图,最简单的动态图例子,便是堵车线路,通过接入其他智能终端的实时观察、预测信息,我们的车可以提前几条街就知道某条路上在堵车,便可以合理规避。这一层可以对接任何动态信息,以车联网、物联网技术为支撑,在车的行为规划中,可以获得较大的时间优势。
7.语义图,终于讲到语义图了,语义本就有层次之分,一般来说,场景级、物体级、单点云点or单像素是比较通用的空间分级方法,时间上还有静态和动态之分。语义图是最接近人类进行“道路行车”这个任务所用时知识的表示。
语义地图
语义图不是一个单独的图层,语义图能够以以上任何一种地图作为载体,将语义映射到其中。
举个例子,红绿灯这个物体作为一个语义,
(1)在几何图上,表示为一个点,有经纬度;
(2)在矢量图上,与其对应的道路的可行进方向一致;
(3)在路网图上,表示为一个带标签的点或遵守画红绿灯规范画法的多边形;
(4)在点云图或特征图上,表示为一小片点云,这些点是红绿灯表面结构被传感器扫描到的点,记录其三维坐标;
(5)在动态图上,表示为一个遵守此路口交通灯计时规范,与真实交通灯同步,一定时间后改变颜色表示是否可行驶的多边形;
(6)在语义未映射前,在图像上,是一片被分割为红绿灯的像素。
其实上述各种语义图,均属于概率图范畴,是世界的一个简化概率模型,为无人驾驶提供先验知识。语义可以从图像深度学习中获得,通过分类、检测、分割等模型,但其实语义还可以由人的知识定义,只要这种定义和表示够普适和简洁。
不过真正开车时,还需要看看周围情况,得出后验,临场做一些应对突发事件的决定,地图和感知的这种关系,好比考驾照时笔试和车考吧,而考驾照,不就是在学开车吗?我们的车也是在学开车啊!!!
如何建图
这部分恕我不能透露太多,只能告诉大家HD-map构建和传感器、感知、定位、传输、deep learning等技术都有关联,计划安排、政策支持、规范制定都会对其产生影响。并且目前对于自动化和精度的要求越来越高,高精地图也分为2D和3D,2D已经可以适用很多任务了,而且数据少,但现在也有做3D的。
我基本在探寻自动化语义建图,前路漫漫啊。
更新
第2次更这篇blog已经是一年之后了,主要是对原文的一些修正和补充,这期间我对高精地图的认知也有了一些改变,依然希望抛砖引玉。
车路协同
这个技术可以理解为,车在自动驾驶的过程中,有“上帝视角”进行辅助,或者说游戏玩家得到了管理员权限,开启全局地图和全局监控,可以随时得知其他玩家的状况。这个技术常常和“数字城市”、“智慧交通”等概念联系在一起,同时还频繁和5G眉来眼去,其实也没有那么神奇,就是云端有一个城市道路高精地图数据库,通过5G实时通信进行行驶状态的上载和控制指令的下载,并可以在云端分析多个车辆的运行状况和进行一定程度的预测和调度。
我个人认为自动驾驶任务中车路协同并不能代替单车智能,他们的关系更像是佛洛依德心理学中的自我与本我,自动驾驶的大部分实际操作会由“本我”单车智能进行执行,而“自我”车路协同借助更多的高精地图信息,更可能做一些高级抽象任务的决策,前者决定了车开的多好,后者决定的路线走的多正确。
传感器之争
这个本质是钱的争论。Waymo一直坚持使用旋转式的激光雷达,lidar确实好用,尤其是在探测几何结构方面优势明显,可是贵啊,动辄几万几十万。特斯拉的自动驾驶,就不用激光雷达,用摄像头+超声搞定,真的是省了不少钱,不过特斯拉的安全等级在业界只能定义为L2.5,都不到L3级。固态激光雷达名义上降低了激光雷达的成本,但固态激光雷达是类似于相机形式的,一般要4~5个相机才能涵盖360度无死角感知,所以,固态激光雷达的价格和旋转式激光雷达差别并不大,至少目前并不大。其实相同覆盖角度下,固态已经能够做到更大的感知分辨率,已经很体现性价比了。这2种雷达都在发展,只是固态发展空间更大。还有公司宣称用摄像机+高级稠密重建达到激光雷达的效果,这种技术有一定的吸引力,不过依然解决不了摄像机的顽疾——摄像头失效环境问题,比如光线不足,重复纹理等等。当然激光雷达也有自己是失效状况,比如雾天、雪天。