端到端是无法闭环的,只能开环仿真测试,目前唯一的端到端测试平台即CARLA,全球最大最顶尖的端到端算法比赛,即CVPR 2024 Autonomous Grand Challenge,当然也是采用CARLA测试,同时也有基于CARLA的算法比赛项目。
CARLA是英特尔、丰田和西班牙巴塞罗纳计算机视觉中心联合推出的开源自动驾驶仿真平台,也是唯一具备强化学习和模仿学习(99%的端到端都是Imitation learning模仿学习)赛道的仿真平台,并且这是在2017年,彼时根本没人知道端到端自动驾驶,但丰田想到了,当然丰田这种传统车厂几乎不可能使用这种完全黑盒子,不具备可确定性,不具备可解释性,无法评估安全系数的技术。
顺便说一下,自动驾驶领域最早的测试数据集KITTI,是丰田早在2011年底与德国卡尔斯鲁厄科技学院联合完成的,2012年3月发布,至今仍然是自动驾驶领域内最权威的测试数据集,特别是视觉深度领域,拥有绝对的霸主地位,毫不夸张地说,任何自动驾驶领域的厂家(含芯片厂家)和研究者都绕不开KITTI,包括特斯拉和Waymo。
首席作者Alexey Dosovitskiy,俄罗斯人,2012年莫斯科国立大学毕业,他更出名的论文是《An Image is Worth 16x16 Words: Transformers for Image Recognition at Scale》也就是鼎鼎大名的ViT,凭借此论文,跻身全球AI杰出人才前50名,目前在英特尔工作。
几种自动驾驶仿真对比
CARLA由Embodied人工智能基金会维护,CARLA的技术生态和发展路线将由Intel(英特尔)、Toyota Research Institute(丰田研究院)、Futurewei、NVIDIA(英伟达)、Synkrotron(深信科创)五位理事单位及CARLA研发团队共同规划。深信科创CTO潘余曦博士代表深信科创担任理事会成员,深信科创工程师严宋扬加入CARLA核心研发团队。作为CARLA唯一理事会中国成员,深信科创有CARLA的商业版即SYNKROTRON Oasis仿真平台。
CARLA特色包括:
虚幻引擎驱动:CARLA基于Epic Games的虚幻引擎4构建,这意味着它可以生成高保真的3D环境,提供视觉上的真实性,这对于测试车辆感知系统尤其重要。
实时模拟:CARLA能够实现实时的仿真速度,这对于快速迭代和验证算法至关重要。而且,它还支持多GPU设置以提高性能。
开放源代码:开源的特性使得开发者可以深入理解其工作原理,修改并扩展功能,以满足特定需求。
传感器数据:提供多种虚拟传感器,如摄像头、激光雷达(LiDAR)、毫米波雷达等,这些传感器能模拟真实世界的数据流,用于训练和测试自动驾驶算法。
可配置性:环境、天气条件、交通规则等均可按需进行调整,从而创建出无数个不同的测试场景。
跨平台:支持Windows、Linux和macOS操作系统,兼容多种编程语言,包括Python和C++。
灵活的API:提供易于使用的API,让用户可以方便地控制模拟世界,并获取传感器数据。
主要应用场景包括自动驾驶算法开发:利用CARLA,用户可以测试路径规划、目标检测或避障算法,在各种复杂的环境中验证它们的鲁棒性。
数据集生成:可以生成大规模、多样化的合成数据集,用于训练深度学习模型,减少对真实世界数据的依赖。
教学与研究:教育工作者可以使用CARLA作为工具,让学生在虚拟环境中学习自动驾驶的基本概念和技术。
验证平台: 对于硬件在环(Hardware-in-the-Loop, HIL)测试,CARLA提供了一个理想的平台,可以在不涉及实际车辆的情况下测试控制系统。
CARLA目前最新版本为0.9.15,2023年底推出,CARLA最新增加的town 15就是巴塞罗纳校园的复制,0.9.15版本支持Digital Twin,可以加入开源地图制作软件OpenStreetMap,程序化制作地图。支持英伟达的Omniverse导入。CARLA也可以和交通模拟软件SUMO联合,对于目前火热的NOA测试,国内企业大部分都是采用CARLA和SUMO联合仿真测试的。
CARLA与SUMO联合仿真
为了在仿真世界中实现车辆动力学,首先需要实现物理引擎;下面简要介绍一下CARLA底层采用的Unreal Engine(虚幻引擎,简称UE)的物理引擎
目前业界主要有三大物理引擎,分别是PhysX、Havok、Bullet。
Bullet:开源的物理引擎,具有广泛的跨平台支持,并以其稳定性和高性能而闻名,被广泛应用于游戏和动画领域。
PhysX:由NVIDIA开发的实时物理模拟引擎,广泛用于游戏开发,提供高性能、精确和逼真的物理模拟功能。
Havok:一款可靠且广泛应用的物理引擎,提供出色的碰撞检测和物体模拟功能,被广泛应用于游戏和影视制作领域。
Unreal Engine(简称UE)原生默认支持PhysX物理引擎解决方案,这也是大部分项目常用的技术方案。与此同时,UE 从4.23版本之后,也推出了Unreal Chaos物理系统。CARLA当前版本(0.9.15)基于UE4.26,这个版本的UE同时支持PhysXVehicles和ChaosVehicles(前者被标记为deprecated),但基于上面的分析,CARLA中依旧选用了PhysXVehicles。
车辆动力学方面,CARLA车辆的基类是CarlaWheeledVehicle,它继承自PhysXVehicle组件的WheeledVehicle。生成车辆时,这个类的构造函数初始化了VehicleBounds和baseMovementComponent,前者用于保存和获取车辆的长宽高,后者是继承于UE的MovementComponent的移动组件类。在这个类的BeginPlay函数中,设置了车门以及初始化了轮胎摩擦力。另外类中有一些设置(Setter)和获取(Getter)函数,包括车辆状态、控制信号、BoundingBox、物理(动力学)特性等。
CARLA支持UE PhysX车辆动力学,也支持CarSim车辆动力学,默认为前者。VehicleControl是一个结构体,包括了控制车辆所需的所有变量,即油门、转向、刹车等。当车辆接收到输入的控制信号时,CARLA车辆移动组件会调用ProcessControl函数来将控制信号应用到车辆上。
车辆动力学部分自然离不开丰田的贡献,当然丰田对纯电车缺乏兴趣,CARLA的车辆动力学主要是针对燃油车的。
CARLA提供的城市环境内容也是免费的,涵盖城市布局、多种车辆模型、建筑物、行人、路标等。该仿真平台支持传感器套件的灵活设置,并提供可用于训练驾驶策略的信号,例如GPS坐标、速度、加速度以及碰撞和其他违规行为的详细数据。CARLA可以定义广泛的环境条件,包括天气和时间。
CARLA TOWN2中的四种典型天气与时间,分别是晴天、日落、雨天和雨后
CARLA实现了各种大气条件和照明条件。它们在太阳的位置和颜色、天空漫射的强度和颜色以及环境遮挡、大气雾、云量和降水量等方面存在差异。最初版的CARLA支持两种照明条件(正午和日落)以及9种天气条件(不同的云量、降水量和街道上是否有水坑)。这将实现总共18种照明天气组合。最新版的估计有上百种,即便商业软件都很难做到。
环境由静态对象(如建筑物、植被、交通标志和基础设施)以及动态对象(如车辆和行人)的三维模型组成。所有模型都经过精心设计,以平衡视觉质量和渲染速度:CARLA使用low-weight的几何模型和纹理,但通过精心制作材质和使用可变细节级别来保持视觉真实感。所有的三维模型都有一个共同的比例,它们的大小反映了真实物体的大小。2017年第一版的库包括40个不同的建筑、16个动画车辆模型和50个动画行人模型。
CARLA 通过以下步骤使用这些资源来构建城市环境:(a)规划道路和人行道;(b)手动放置房屋、植被、地形和交通基础设施;(c)指定动态对象可以出现(生成)的位置。2017年的第一版只设计了两个城镇:Town1的可行驶道路总长度为2.9 km,用于训练;Town2的可行驶道路为1.4 km,用于测试。这两个城镇见下图。
最新版本则设计了10或更多个城镇,最大的面积高达100平方公里。
最初版本基于标准的UE4车型(PhysXVehicles)来设计非玩家车辆,其运动学参数调整为现实模式。CARLA还实现了一个控制非玩家车辆行为的基本控制器:车道跟随、遵守红绿灯、速度限制和交叉路口决策。车辆和行人可以相互察觉和避开。更先进的非玩家车辆控制器将被集成到未来的版本中。行人根据特定城镇的导航地图在镇上游荡,相互避开,尽量避开车辆。如果汽车与行人相撞,行人将从仿真世界中删除,并在短暂的时间间隔后在不同的位置生成新的行人。
为了增加视觉多样性,CARLA在将非玩家角色添加到仿真中时对其外观进行随机化。每个行人都穿着从预先指定的衣柜中随机抽取的一套衣服,并可选择配备以下一种或多种物品:智能手机、购物袋、吉他盒、手提箱、雨伞等。每辆车都是根据特定车型的一组材料随机喷漆的。但是中国交通场景最常见的,丝毫不在乎交通规则的低速三轮或四轮电动车(老头乐)以及千奇百怪的两轮电动车却没有,这是非常大的缺失。
感知方式有三种,常规摄像头,深度真值和语义分割真值。因此CARLA也能给无人驾驶的感知系统打分。
三种自动驾驶方法得分对比
来源:Wayve
上图中,MP代表传统的模块分割流水线方式,IL代表目前火热的端到端,RL代表强化学习,2017年第一版论文,对三者做了简单对比,放到今天大模型流行的情况下,对比可能差别较大。需要指出强化学习的训练时间需要12天,而IL只需要14个小时。
三种自动驾驶方法的平均行驶里程
来源:Wayve
综合来看,MP表现最好,端到端对新环境和新天气适应能力最好,强化学习各方面都很差。
CARLA的评价系统有三项得分,分别是Driving Score (DS) 和 Route Completion (RC) 以及 Infraction Score (IS)。有两种方式,一是基于地图的,另一种是基于传感器的。
2024年自动驾驶算法大赛的CARLA比赛有40个团队参加,基本上都是基于端到端的。
基于传感器的前三名如下,其中英伟达、微软和软银投资的英国Wayve在端到端自动驾驶领域拥有绝对优势。
传感器组第一名Wayve(即表中的ours)的得分
来源:Wayve
上表是传感器组第一名Wayne(即表中的ours)的得分,L: Lidar, C: Camera, R: Radar, M: Map, priv: privileged, OD: Object Detection (3D position and pose), IS: Instant Segmentation, SS: Semantic Segmentation, D: Depth, BS: BEV semantics.
Wayve的算法框架
Wayve的算法框架,核心是META的LlaMA和llava next video编码器,前者典型参数为70亿,后者也是70亿,后者还有更高的340亿参数版。
中国道路环境最复杂的,商业化的仿真测试平台需要花费极高的成本才能对中国道路环境和交通流做仿真,显然CARLA这种开源社区或许是应对中国道路环境的最佳方式。
免责说明:本文观点和数据仅供参考,和实际情况可能存在偏差。本文不构成投资建议,文中所有观点、数据仅代表笔者立场,不具有任何指导、投资和决策意见。