无图的真相,零跑汽车第一

B站影视 欧美电影 2025-03-24 16:18 1

摘要:地图是先验信息,可以算一种置信度100%的算法,也可以算一种传感器,在中国要考虑严苛的交通规则和强大的抓拍体系,无论智能驾驶如何发展都离不开车道级LD地图,在北美特别是加州,可以不要,加州压实线变道不违法,但是是要被劝阻的。LD地图介于标准SD地图和高精度HD

地图是先验信息,可以算一种置信度100%的算法,也可以算一种传感器,在中国要考虑严苛的交通规则和强大的抓拍体系,无论智能驾驶如何发展都离不开车道级LD地图,在北美特别是加州,可以不要,加州压实线变道不违法,但是是要被劝阻的。LD地图介于标准SD地图和高精度HD地图,有些叫 SD Pro或HD Lite,实际上它与传统的SD地图差别很大,传统SD地图是给人类驾车导航的,侧重语义。LD地图是矢量地图,侧重拓扑,给智能驾驶系统导航用的。

高精度地图之所以无法量产,除了成本高、标准难确定外,最重要的障碍是地图和定位是硬币的两面,不可分割,高精度地图需要高精度定位,这一点经常被人忽略,实际很简单,给你一张高精度地图,但不告诉你位置在哪里,地图就无法使用。高精度定位成本也不低,目前只有无人出租车在用。同样车道级地图需要车道级定位,定位也是个麻烦。好在除了全局规划需要车道级绝对定位,局部规划不需要车道级绝对定位,只需要车道级相对定位。

所谓无图,实际是在线建矢量级地图再与离线的LD地图匹配,同时获得定位和导航信息,很接近早期的SLAM技术。早期的SLAM技术严重依赖激光雷达,BEV出现后,SLAM技术被淘汰,当然在地下停车场还有人用SLAM技术。

目前的无图,主要的工作就是如何在线建一个矢量高精度地图。至于离线的车道级地图矢量化,Waymo在2020年的论文《VectorNet: Encoding HD Maps and Agent Dynamics from Vectorized Representation》,论文的作者之一赵行后来回国在清华大学交叉信息研究院任教,2020年福布斯中国U30科学精英榜,是中国智能驾驶无图化奠基人。

VectorNet也是智能驾驶无图开篇之作,VectorNet算法流程:读取轨迹和地图数据,将其转换为向量化表示。对每个向量化的polyline折线实体,使用子图网络(MLP+GNN)进行局部子图编码,并输出局部特征。以每个实体的局部子图输出特征作为节点,节点间基于自注意力机制的相似度作为边构建全局图(GNN+self-attention),对所有向量化的polyline实体,使用GNN进行全局交互建模,输出每个实体的隐状态。对每个agent,使用一个MLP解码器生成多个可能的未来轨迹,并估计它们的概率。计算损失函数,使用ADE和FDE作为评价指标。此时BEV还没有大规模出现。

2021年,赵行和理想汽车发表论文《HDMapNet: An Online HD Map Construction and Evaluation Framework》,2022年BEV开始展露头角,有四篇论文论述BEV场景下的地图与定位,这四篇分别是清华大学赵行火星实验室和理想汽车联合的《VectorMapNet: End-to-end Vectorized HD Map Learning》,百度的《EgoVM: Achieving Precise Ego-Localization using Lightweight Vectorized Maps》,清华大学的《BEV-Locator: An End-to-end Visual Semantic Localization Network Using Multi-View Images》,华中科技大学与地平线合作的《MAPTR: STRUCTURED MODELING AND LEARNING FOR ONLINE VECTORIZED HD MAP CONSTRUCTION》。百度的方案比较依赖激光雷达,BEV下纯视觉流行,因此后来很少被提及。MapTR集合前人的研究成果,准确度很高,效率也高,无图开始商业化。2023年初MapTR v2问世,基本上是目前效率和准确度兼顾的最好的方案。

目前,零跑、广汽、滴滴、地平线、三星研究院、辉羲智能、阿里、浙大、四维图新在这个领域拥有强大研发实力,最突出的是名不见经传的零跑汽车和地平线。零跑汽车在智能驾驶领域颇为强大,传统目标检测算法得分全球第二,仅比第一名的商汤低0.001,并且在2024年3月以前,零跑一直是第一名。

实际MapTR沿着谷歌的VectorNet一路走下来的。

VectorNet框架

图片来源:论文《VectorMapNet: End-to-end Vectorized HD Map Learning》

HDMapNet框架

图片来源:论文《HDMapNet: An Online HD Map Construction and Evaluation Framework》

HDMapNet延续了传统方法上基于语义分割的思路,首先使用View Parsing Network (VPN)生成BEV Feature特征向量,然后地图预测任务head分为三个分支:

第一个给出在BEV feature上做语义分割的结果,将关注的车道线,道路边线,路口等做出分割,只有分割结果肯定是不够的。高精地图的表达形式中,车道线等地图要素是用实例(Instance)来表示的,具体在车道线上代表一段车道线,内部由线段上具有一定顺序的点来表示,实例之间也存在一定的拓扑关系,所以我们需要的是一个由实例构成的矢量图。第二个分支给出实例嵌入(Instance embedding),为BEV Feature的每个像素分配一个embedding,类似于NLP中的token向量,通过损失函数的设计,最终训练出属于同一实例相似度较高,不属于同一实例相似度较低的embedding,后续通过对embedding进行相似性度量,即可区分出不同的实例。第三个分支会给出车道线上每个点的方向,这个方向是由相邻两个点的连线方向确定的,并且可以有两种可能性,模型都会给出,并且只有真正落在车道线中心的点才给出方向,这一点通过在训练阶段将不落在车道线中心的点的方向真值赋为0来实现。

VectorMapNet主要由三部分组成:BEV feature 提取、地图元素检测和polyline生成。基于BEV feature建模Polylines分为两步,是因为地图元素的结构模式和位置具有广泛的多样性,共同学习它们可能具有挑战性。因此将该建模任务解耦成两部分:

实例级元素检测任务,通过预测元素关键点及其类标签来定位和分类所有地图元素;为每个检测到的地图元素生成polyline顶点序列的对象级序列生成任务。

VectorMapNet摒弃了通过语义分割得到地图的思路,而是使用端到端目标检测DETR的思路,将不规则的地图要素实例抽象成几个关键点(可以是bounding box,最大最小值,起点中点终点等等),这样就与目标检测的范式对齐了。只有关键点肯定是不够的,论文中后续通过Polyline Generator,即生成的方式逐个得到最终需要的有序点集,不需要后处理,实现了端到端生成矢量地图。

DETR也是transformer BEV的奠基者,没有之一。

图片来源:META

Polyline折线生成阶段,使用自回归网络对该分布进行建模,该网络在每一步输出下一个顶点坐标的预测分布参数。这种预测分布是在顶点坐标值和序列结束token EOS 上定义的。对polyline生成器进行训练,以最大化观测的折线相对于模型参数 θ 和 BEV feature 的对数概率。地图要素的点虽然是有序的,但起点不是唯一的,例如车道线可以有两种起点,闭合的元素如路口,任意一个点都可以作为起点,而生成的方式只能有唯一的起点,相当于对此做了不必要且不合理的约束,对结果肯定有一定的影响。

MapTR框架

图片来源:MapTR: Structured Modeling and Learning for Online Vectorized HD Map Construction

MapTR只使用了VectorMapNet的地图要素检测模块,而丢弃了后面的生成模块。也就是说MapTR没有先生成地图要素关键点,而是直接使用基于DETR和Deformable DETR的目标检测方式生成最终的地图要素点,但是是固定长度的,文中是20个点。查询序列query的设计方式与VectorMapNet完全一致。如果只设计m个实例query,那一个query需要预测20个毫无规则的点,显然信息量是不够的,所以二级query的方式更加显得有必要。Map的decoder一般包含6层,它们通过迭代更新分层查询。在每个解码器层中,MapTR采用多头自注意力机制(MHSA),让分层query相互交换信息(包括实例间和实例内)。然后,采用Deformable Attention来让分层query与BEV特征进行交互(这个思想受到BEVFormer的启发)。

MapTR加入了多边形,而不是仅仅使用折线。每一个点图实例都被分成了点集集合,但它不是单一的,而是不同组合的集合。点集主要分成了两种,包括polygon和Polyline, polyline主要就是包含起点和终点的一个顺序,polygon要复杂点,它是闭环,包括了顺时针和逆时针的各种组合。

MapTRv2

图片来源:MapTRv2: An End-to-End Framework for Online Vectorized HD Map Construction

2023年8月,华中科技大学与地平线升级了MapTR,即MapTRv2。第一代采用 GKT 作为基本的2D到BEV转换模块,考虑到它易于部署和高效的特性。MapTR兼容其他转换方法,并且能够保持稳定的性能。在MapTRv2里面还是用了英伟达发明的LSS,对于数据量较少的情况,这种纯几何投影的还是收敛的快一些,而且效果也挺不错的。用DETR这种端到端transformer做BEV的消耗算力更多,效率比较低。

与MapTR区别总结如下:首先实例中增加了centerline,其次线性的实例使用了固定方向,最后加了一些辅助头监督(只要性能不够就加辅助头)。

目前效果最好的是零跑汽车的FastMap,论文《FastMap: Fast Queries Initialization Based Vectorized HD Map Reconstruction Framework》,这个月刚刚发表。

FastMap框架图

图片来源:FastMap: Fast Queries Initialization Based Vectorized HD Map Reconstruction Framework

零跑认为MapTR的六层解码器层数太多了,车端没有这么多运算资源,通常都是一到二层,零跑汽车解码器只用了一层两级结构,通过热图引导的查询生成模块实现跨模态注意力机制,以智能初始化查询向量。采用交叉模式注意力机制,智能查询序列query矢量初始化,通过热力图引导query生成。同时加入几何先验信息。

主流在线矢量高清地图算法对比

图片来源:零跑汽车

mAP即平均正确率,FPS为帧率,这是基于RTX3090的帧率测试,如果是英伟达Orin,帧率会大幅下降,估计会下降至1/3-1/4,也就是说这里帧率16Hz,用英伟达Orin会下降到4Hz;如果是高通SA8650,估计会是1Hz,这仅仅是笔者估计。好在地图不需要太高帧率,速度不超过60km/h工况下,1Hz也可以勉强接受。

Epoch,在深度学习中,指的是整个训练数据集被遍历一次的过程。也就是说,如果你的训练数据集有N个样本,那么在一次Epoch中,这N个样本都会被模型学习一次。通过多次Epoch的训练,模型可以逐步优化其参数,以更好地拟合数据。Epoch值代表训练次数,数值越大,性能就越好,模型也越复杂,有可能消耗更多的运算资源,不仅是AI运算资源,还有CPU运算资源。

主流在线矢量高清地图算法对比

图片来源:MapTRv2论文

C代表摄像头,L代表激光雷达,同样条件下,加了激光雷达性能有明显提升。这里也有超过零跑汽车FastMap的,不过帧率太低了,完全无法落地,这个帧率测试也是基于RTX3090。

最近地平线鲜少地图领域内研究,不过其实力强大,或许很快就会有超过FastMap的模型出现。无图的发展里程显示了论文的重要性,论文一般领先实际车辆2-3年。

免责说明:本文观点和数据仅供参考,和实际情况可能存在偏差。本文不构成投资建议,文中所有观点、数据仅代表笔者立场,不具有任何指导、投资和决策意见。

来源:佐思汽车研究

相关推荐