9月12日,由商汤绝影「绝世高手」联合行业自媒体「汽车之心」行家说栏目,邀请到重磅嘉宾:上海人工智能实验室青年科学家李弘扬、青年科学家蔡品隆,商汤研究院研发总监卢乐炜、商汤研究院算法研究员邓瀚铭,一同与大家分享《从 UniAD 到智驾 AGI,解读智驾新趋势》,深入解读 UniAD 技术亮点,探讨智驾未来行业新趋势。
以下为本次直播内容整理总结:
自动驾驶大模型研发思路
最近商汤及联合实验室的论文《Planning-oriented Autonomous Driving(UniAD)》(以路径规划为导向的自动驾驶)获得了2023 CVPR Best paper。
商汤研究院和上海人工智能实验室 OpenDrive Lab 在过去一年的时间里贡献了许多在自动驾驶领域的工作成果,比如 BEV Former、Persformer、Occupancy Network 等工作。
团队最早从 deformable、DTR 等领域着手,随着研究的深入,我们也希望深耕自动驾驶技术。基于此,我们率先提出了业内较早的环视感知算法方案 BEV Former,也成为行业内的 baseline 方案,并且有着较高的引用量。
此后我们沿用此路线,提出了业内首个结合大模型的 BEV Former V2 解决方案,而我们的 BEVFormer++ 算法也在 Waymo 纯视觉 3D 检测挑战赛中斩获第一,BEVFormer V2 的相关研究成果在自动驾驶 nuScenes 数据集的 3D 检测任务上也创造了新的纪录。同时,我们也是业内较早提出的 Occupancy Network 解决方案的团队。
基于以上的工作,我们开始探索感知决策一体化的端到端算法框架。
现有的是自动驾驶研发工作都集中于单一模块,各模块之间优化误差会传递到下一个模块,导致最终自动驾驶系统效果与设定目标有所偏差,同时随着自动驾驶的发展和应用,传统的自动驾驶系统并不能够利用越来越海量的数据实现优化。而端到端算法框架能够结合感知和规划算法,利用海量数据,实现更好的提升。我们希望基于 UniAD,能够推动自动驾驶从模块化设计到端到端设计的研发趋势。
首个感知决策一体化自动驾驶通用大模型 UniAD
-
模块化研发
现有自动驾驶系统的研发分为感知、预测、规控等主要模块的研发,各模块件的研发都是相对独立的,优化指标并不相同。如目标检测的指标是平均精度(mAP:mean Average Precision),而预测的评测指标是终点位移误差(minFDE:Minimum Final displacement error),规控算法的检测指标则需要考虑碰撞率和任务完成率等。
不同任务的优化目标不一致,且每个模块存在累积误差,其误差又会影响下一个模块。
-
多任务模块
多任务范式利用一个共享的特征提取器来完成多个子任务,不同任务之间共享的编码器(encoder)涵盖了特征信息(feature),能够节省计算成本,但不同任务之间联调时可能会存在负面影响。
-
端到端范式带来的改变
端到端范式以最终的驾驶性能为目标,具体又可以细分为两种范式:隐式的端到端和显式的端到端。
其中隐式端到端是以传感器数据作为输入,直接输出规划或者控制指令。这种范式的好处是较为简洁,缺点是缺乏可解释性,难以调试及迭代。
显式端到端则是将多个模块囊括在端到端模型之中,每个模块有各自的输出,并且会将提取到的特征传递到下游任务。
UniAD 利用多组 Query 实现了全栈的 Transformer 端到端模型。其由 2 个感知模块,2 个预测模块以及 1 个规划模块组成。其中,感知和预测模块通过 transformer 架构进行预测,每个模块输出的特征会传递到之后的模块来辅助下游任务。
值得一提的是,UniAD 的设计基于「以终为始」的原则, 依照自车轨迹规划为准进行设计。相比模块化研发传输结果,端到端的框架各模块之间传输特征,保留更多的信息,同时可以发挥联合优化的优势。
得益于 UniAD 的算法框架,上游感知任务检测结果对规控模块的负面影响较小。如上图所示,即使感知模块未检测到远处的物体,但规控中的注意力模块(attention map)仍然可以注意到远处的障碍物,从而做出转向的路径规划。
基于 UniAD,我们也在持续开发 UniAD V2,以构建更大的数据集和跨数据集、探索落地应用、打造数据闭环体系。
UniAD 商业化探索
-
UniAD 应用潜力:开放场景实例
前面提到了端到端网络的联调优化的优势,在同一开放场景中,给到 UniAD 不同的指令,它也能够很好地完成:
左图中的自车直行时,对其下达左转指令,UniAD 能够依靠对在线地图的理解、与他车交互的关系,做出正确的左转轨迹的预测。而在右图中为需要右转的场景,当我们特意给出直行的错误指令时,UniAD 能够根据环境决定执行力度,做出减速的决策。
下图中,左边为原始的驾驶场景,中间为通过仿真构建的驾驶场景。在此场景中,我们在自车直行的车道前方增加了一辆静止车辆,UniAD 算法能够做出车辆主动避让的减速决策。右边的仿真驾驶场景中,我们增加了锥桶等未知障碍物,自车也能够及时做出反应。
对横向移动的障碍物,UniAD 系统同样能够做出接近人类司机的决策:在自车行驶到人行横道或路口时,准确感知行人的意图,做出停车的决策。
图1:自车行驶到人行横道停车,并能预测行人轨迹
图2:夜间检测到人行横道和行人后减速停车
在拥挤的交通场景中,UniAD 同时能够结合车道上的障碍物和导航规划路径,做出符合当下驾驶场景情况的判断。
如图 3 所示,前车停下时,虽然导航规划路径依旧是前进的指令,但自车会跟着前车停下;而当前车前进时,由于导航给出的前进指令,自车随之继续行驶。
图3:拥堵交通环境下,保证安全距离的情况下跟车
图 4 中,当自车右转时,感知到前方有车,自车随之减速,当前车继续行驶时,自车继续依照指令右转。
图4:在有前车的情况下,完成连续右转
-
UniAD 应用潜力:闭环验证
使用 CARLA 仿真数据集对 UniAD 进行训练,不需要对 UniAD 做过多优化,也能够在前方静止障碍物、复杂城市道路转向、道路跟随、前车减速等多种复杂驾驶场景中做出正确的决策,在闭环验证中有较高的通过率。
但 UniAD 在落地上还面临着诸多难点,如模型的轻量化、端到端模型训练数据的准备等。在技术落地过程中,我们将持续对各模块技术进行迭代优化,帮助加快 UniAD 的技术应用。
左图:国内数据闭环测试效果;右图:CARLA 中训练的 UniAD 闭环实测效果
-
Scenes as Occupancy:OccNet 大幅提升规控性能
在障碍物检测算法的研发初期时并未界定所有种类的障碍物。如果需要在后期增加某类障碍物,对于运动(motion)、数据等改动较大。
占据栅格网络(Occupancy Network)通过占用的形式表现障碍物,相对于传统的检测框(Bounding Box)等基于矢量的障碍物描述,占据栅格网络有着更为丰富的场景颗粒度和要素表现,即使未定义障碍物类别,障碍物也能够以占用的形式呈现,表征上更具优势。
具体来说,我们通过编码解码结构得到 Occupancy Descriptor,并通过级联式的体素解码器恢复 BEV 特征图的高度信息,将 2D 可变形卷积拓展为3D可变形卷机膜块,以高效计算 3D 特征图。
同时我们也在 Scenes as Occupancy 这篇论文中,验证了 Occupancy 对下游规控性能的提升——碰撞率数据有 15%~58% 的提升。
-
基于仿真的数据增广,为 UniAD 提供商业化落地养分
端到端的算法框架对于数据量需求提升了一个量级。在现实世界中的长尾场景数据采集难度大。
因此,除了数据闭环体系外,我们还和上海人工智能实验室合作,采用仿真数据,对 3D 数据集进行补充。在仿真场景中,通过 Nerf、CG 和 drive sim 构建逆行车辆、横穿车辆等长尾交通场景,通过 diffusion model 生成交通要素等。
比如,在真实世界中,逆行车辆、横穿车辆等驾驶场景发生频率低、场景复杂,我们通过仿真训练补充长尾感知场景数据。同时,我们还能够在仿真场景中生成各种交通标识等。
长期可交互多场景交通仿真器:LimSim
-
仿真平台:自动驾驶研发「刚需」
安全是自动驾驶技术商业化落地的重要议题,安全的自动驾驶车辆必须经过大量的道路测试数据喂养。
行业研究显示,自动驾驶系统至少需要经过 110 亿英里(约 170-180 亿公里)的道路验证,才能够达到量产应用条件。而且,随着自动驾驶技术的迭代,日常道路测试过程中出现的有价值场景概率会越来越低,进一步降低路测的效率。同时,道路测试本身也有一定的危险性。
自动驾驶仿真数据作为实地路测数据的重要补充,具有更高效、可复现、复杂场景展示等优势,通过大量的训练帮助自动驾驶系统实现利用数据进行系统迭代,是自动驾驶量产应用的「必需品」。
因此,上海人工智能实验室也提出了 LimSim 仿真平台方案。
-
LimSim 仿真平台
从规模上看,LimSim 能够实现大型路网的连续仿真。
从场景交互层面来看,LimSim 平台内置了多车联合决策的规划算法,能够让交通流的仿真更加精细化、逼真。
从场景可编辑性角度看,我们能够自定义场景,也可以接入路采数据,来展示真实的数据场景。
以下是 LimSim 仿真平台算法框架,从上至下为仿真流程,分别包含路网构建、宏观交通流生成、微观场景车辆运动和交互、多维度场景分析四大模块。而横向来看,则是呈现宏观交通流生成和微观场景车辆的衔接。
-
路网搭建与路径构建
路网构建模块支持 OSM 开源路网模式的接入,能够提取拓扑信息和道路的几何结构,同时也支持 SUMO 接口,直接生成路网和交通流。
此外,为了适应路网中的多样化场景和规划需求,我们定义了路径组件,能够适应可解释的决策规划算法的部署。
-
场景范围与车辆类型
在场景模块上,LimSim 区分了场景内的车辆和场景外的车辆,我们以自车范围界定场景,达到更高的仿真效率。
场景外的车辆:通过宏观交通流来控制,但因为此类车辆相对自车较远,精细化程度较低。
场景内的车辆:与自车交互的耦合性较高,需要精细化的控制。通过对不同车辆的区分,能够兼顾实时性和准确性。
此外,在场景的边缘,即场景外的车辆进入场景内的区域时,我们也采取了精细化的操作,以避免车辆突然出现或发生碰撞的情况。
-
多源交通流
路网生成后,我们能够导入交通流,同时也支持直接导入基线换道模型、路采数据等。未来也会支持一些场景标准化语言的直接导入。
-
多车联合决策
图中是多车联合决策算法,将多车交互分为行为交互决策、车辆轨迹规划等部分,形成闭环连续的仿真,能够实现在线实时仿真,同时加速比大于 1 。
行为决策模块能够关注场景内多车的交互,规避可能的冲突,保留较为真实的、仿真良好的车流。同时,引入社会价值取向以及驾驶风格,呈现更加多样化的车流形态。
基于多车联合决策算法,匝道、弯道等场景中仿真车流的交互和车辆运动更加丝滑。
-
多维度场景分析
在仿真过程中,我们会实时记录场景中车辆的信息,重建场景,也能通过构建不同的指标,判断每个场景的安全性,发现 Corner Case 等。
LimSim 仿真平台也能够根据某一场景中车辆的属性,即车辆驾驶行为的社会价值取向和轨迹偏好、驾驶风格等泛化出不同场景。
-
交互式场景重建
交互的真实性是仿真的关键之处,他车需要根据自车的变化做出相应反应。为此我们设计了一个规则化模块,能够让场景中的他车不单根据既定的轨迹行驶,还会做一些交互式的响应。此响应模块也能够参与联合决策。
-
多维度场景分析
通过对比仿真交通流与真实 CitySim 项目中采集到的交通流数据,我们发现二者的数据参数比较一致,LimSim 的交通流仿真具有较高的真实性。
-
场景评估
通过大量的长时仿真、仿真模块切片,我们能够对相应的场景进行测距碰撞 (TTC:Time-To-Collision)等指标计算,评估场景的危险度,从而提取关键场景进行分析,这些关键场景也包括 Corner Case 。
-
仿真案例
如图所示,上半部分是仿真界面的情况,其左边为宏观路网图,中间为微观场景的展示,右边参数信息输出对场景的评价。LimSim 仿真平台能够实现对同一路网中不同道路结构和场景的仿真效果,以及关键场景的提取。
-
LimSim 社区推广与生态建设
目前的 LimSim 版本主要面向学术研究,我们希望能够通过更多的合作,持续扩展 LimSim 的功能,探索商业化应用的可能,支持更多 V2X 的工作。
以上为本次直播的内容分享,也欢迎对 UniAD 感兴趣的同学与我们交流、沟通。
标签:仿真,2023.09,场景,AGI,LimSim,UniAD,驾驶,智驾,模块 From: https://blog.csdn.net/Evelynnzhao/article/details/137427998