每年六月,学术圈就会举办自动驾驶算法大赛The Autonomous Grand Challenge at the CVPR 2024 Workshop,今年也不例外,大赛吸引了超过480家团队参加。参赛的团队不乏业内人士,包括华为、小米、博世、吉利旗下的朗歌、长安、AMD、上汽、滴滴出行、奔驰。大赛由2024人工智能大会、中国汽车工业协会、国家智能网联汽车创新中心主办,上海人工智能实验室、英伟达、美团、清华、惠普、图宾根大学、Hugging Face、Wayve、机器之心等协办。
自动驾驶算法大赛分三个方向:
路径规划,再细分为端到端、CARLA仿真挑战、大语言模型自动驾驶;
感知,再细分为占用网络与动态追踪,多视角3D视觉,无图智能驾驶;
预测,包括世界模型预测。
端到端自动驾驶共有59个团队参加比赛,95%都是不知名的小团队甚至个人,除了第一名与第二名之间比分差别明显外,第三名之后都是0.01甚至0.0001比分的差距,这说明端到端的研究完全没有门槛。除了英伟达,大部分都是利用了视频到文本的开源大模型,所以大家得分非常靠近。
第一名英伟达得分0.9274,第二名是国内重卡智能驾驶初创企业零一汽车,得分0.8626,第三名是xiaokt001,得分0.8549,第四名是中科院与北京科技大学,得分0.8542,与第三名得分差距仅仅0.0007。英伟达一骑绝尘,遥遥领先。
英伟达的论文是Hydra-MDP: End-to-end Multimodal Planning with Multi-target Hydra-Distillation,顺便提一下,参赛的59家团队只有英伟达和零一汽车提交了论文,因为确实没啥可写的。英伟达的研究成果不仅可以用于汽车领域,工业环境、医疗和机器人等领域也可以使用。这一里程碑进一步得到CVPR 创新奖的认可,赞扬 NVIDIA 采用创新方法通过学习的开环代理指标来增强端到端驾驶模型。英伟达还推出 NVIDIA Omniverse Cloud Sensor RTX,这是一套设计用于精确传感器模拟的微服务,旨在加快各行业中完全AI Agent的开发。
目前端到端的学习方法有两种,一种称之为模仿学习,另一种称之为强化学习。其中,模仿学习是目前主流,再分为决策克隆和反函数优化控制。
模仿学习最初是单模单目标,但自动驾驶不仅要输出轨迹,还要避免碰撞,不仅有轨迹规划还要有避障控制。将来还会加上是否舒适,成本高低等等目标。还有一些硬规则,如红绿灯。再有就是感知的处理,一旦加入后处理,就意味着原始信息的流失,应该尽量避免,所以英伟达用仿真取代后处理。
英伟达Hydra-MDP架构
英伟达这是非全局型的端到端,它仍然有两个骨干网,这与目前流行的全局型端到端有着非常大的区别,虽然英伟达强调原始信息不流失,但这只是指骨干网提取特征到Decoder阶段不流失,而特征提取阶段仍然有可能流失,英伟达仍然在用非常传统的CNN骨干网,然而效果却明显比全局型的端到端要好很多,并且使用了基于激光雷达而非摄像头的BEV感知,大部分团队都是纯前视摄像头,不加任何处理。预测头增加了不少,包括舒适类、可行驶空间、非过错碰撞,多目标蒸馏还加入了基于规则的教师模型。
英伟达的感知部分近似图宾根大学提出的TransFuser结构。
Hydra-MDP的骨干网
Hydra-MDP的骨干网,主要用了谷歌的ViT-L,参数约为3.07亿,放在车载领域完全可以叫大模型了。
英伟达这种复杂感知的结构显然是得不到新兴企业的认同的,因为基本骨干网和人工定义规则的感知门槛太高了,不是新兴企业能玩得转的,也不如全局端到端更新潮。
零一汽车就使用了LLM大模型。
零一汽车端到端架构
零一汽车的论文非常简短,只有两页,零一汽车也大方承认自己用了开源大模型,并且说任何开源大模型都能胜任,零一汽车的方案最终选择了META的Llama的7B版本,取得了第二名的好成绩,零一汽车也提到了国产通用大模型书生,不过国产通用大模型书生最常见版本是200亿参数,这会对计算系统提出很高要求,英伟达H100得出马才行。
零一汽车的视觉化结果
奔驰也提出了一种端到端架构,称之为DUALAD: Disentangling the Dynamic and Static World for End-to-End Driving,奔驰的论文长达16页,德国人自然是非常严谨的。
奔驰DualAD主要是在BEVFormer和UniAD上加以改进,将任务分成动态智能体(Agent即其他交通参与物体如其他车辆、行人等等)和静态全局两种类型,分成两条数据流,流与流之间也有交互。
自动驾驶系统逐渐从严格模块化且主要依赖人工规则的流程,向更加全面的以学习为中心的范式转变。前者依赖于模块之间明确定义的接口,而后者则以端到端的方式处理整个驾驶任务。保留模块化结构(包括感知、预测和规划等典型子任务)同时允许潜在特征作为模块之间的接口。这样的效果远远好于那种彻底全局型的端到端。每个模块的潜在表示所选择的空间限制了可以学习的接口集合,允许对场景结构(如动态元素的一致运动)的归纳偏差进行建模,或者整合特定任务的属性。这进一步强调了选择适合的中间表示的重要性,因为它们严重影响信息流和后续模块的性能。因此,这些表示应仔细定制以匹配驾驶场景中对应的语义实体,以实现高性能的端到端架构。全局型端到端完全没有中间表示,意味着它将成为数据的奴隶,算法工程师完全失业,彻底的黑盒子,无法迭代,无法真实评估,只能在仿真器里评估,任何有责任心的企业都无法接受一个彻底的黑盒子智能驾驶系统。
为了对场景中的动态Agent进行建模,一种普遍的方法是使用带有以对象为中心的查询的注意力机制来检测环境中的单个Object。此外,结合时间序列信息能够跨越目标遮挡或丢失的场景。在这类工作中,目标查询提供了专门的潜在表示,每个都描述一个单一的目标。业内最常见的即BEV鸟瞰,BEV网格未与语义实例耦合,而是表示场景的一个空间区域。因此,无法显式建模和补偿Agent的运动。这是因为每个网格单元可能潜在地表示具有不同刚性运动变换的多个实体,甚至完全静态的元素,这取决于网格分辨率和目标大小。虽然基于网格的表示非常适合静态世界感知,但仅依赖它们来聚合传感器测量和时间信息会阻碍对高度动态Agent的感知。这也正是稠密BEV适合近距离场合,稀疏BEV适合远距离场合。
奔驰结合了以物体为中心的表示法来利用动态Agent的潜力,以及使用BEV网格表示法来表示静态场景元素。这种双流设计明确地对动态Agent应用对象和自身运动补偿,并允许对象查询和BEV查询同时关注当前时间戳的相机图像。除了与相机图像的自我注意力和交叉注意力之外,还引入了一个新的动态-静态交叉注意力块,允许对象查询关注BEV查询,从而促进流之间的一致性。
每个时间步t,一组N个多视图相机图像被输入到共享的图像特征提取器即Backbone中。得到的图像特征Ft被动态对象和静态流同时使用。前者关注场景中的动态目标,如汽车或行人。这些目标由一组对象查询qobj ∈ Qobj表示,这些查询可以解码为边界框bt = [x, y, z, w, l, h, θ, vx, vy]以及代理的预测类别c。同时,一个具有HBEV × WBEV维度的BEV查询网格qBEV ∈ QBEV使用Ft来推理静态场景。得到的BEV表示用于执行道路拓扑的全景分割,例如可行驶空间或车道标记。
通过动态-静态交叉注意力块,两个流之间的交互得以实现,其中对象查询qobj关注于表示静态场景结构的BEV查询qBEV。由于动态世界和静态世界的时间表示被解耦,可以为动态Agent的对象中心查询明确补偿对象和自身运动,而静态BEV查询仅需要依赖于自身车辆运动的传播。
目标检测任务,奔驰DualAD使用韩国人开发的VovNet-V2-99做骨干网,参数规模大约1个亿,效果比同类型的商汤的Uni-AD要好的多,但和传统算法比还远远不及。在地图语义分割、目标追踪方面,DualAD相比Uni-AD都优势明显。
开环规划方面,DualAD相比Uni-AD都优势明显。
DualAD参数方面与UniAD相差无几,规模不大,远比全局型端到端要小。
全局型端到端目前非常火爆,但实际性能远未达到实用地步,即使与局部端到端和传统算法比性能也差距很大,但传统算法提升的空间很小,所以人们才尝试端到端,不过端到端究竟有多大成长空间,还难以确定,未来端到端特别全局型难以成为主流。