51c自动驾驶~合集43
我自己的原文哦~ https://blog.51cto.com/whaosoft143/12930230
#ChatDyn
上交大最新ChatDyn:一句话操纵三维动态
理解和生成真实的三维虚拟世界是空间智能的核心。所生成的三维虚拟世界能够为自动驾驶、xxx等AI系统提供高质量闭环仿真训练场,高效提供源源不断的训练数据,并以极低成本合成罕见情景进行测试。目前,虽然我们有了Diffusion,三维虚拟世界的画质呈现大幅提升,但是虚拟世界中前景物体交互行为的一致性、可靠性、可控性仍然很低,限制了这一领域取得实质性突破。
为了突破现有困境,上海交通大学人工智能学院陈思衡团队联合上海人工智能实验室,马普所,苏黎世联邦理工和香港大学的研究者们重磅推出ChatDyn,这是首个实现自然语言驱动的街景多参与者互动与真实动态生成的系统,统筹考虑高层次的规划和低层次执行,一并生成丰富并带有交互信息的交通参与者动态。如样例1所示,输入指令“A person is taking a taxi at the left roadside, and a vehicle overtakes the taxi. Two persons are walking together with one's arm around another's shoulder. A person is chasing another person along the roadside.”即可生成相关动态场景,包括了人与人交互,人与车交互等复杂动态交互。
,时长00:07
,时长00:07
样例 1(上图白膜,下图带蒙皮)包含多种不同交互类型(人车交互,人人交互),并能够依据高层级轨迹控制行人、车辆动态。指令:A person is taking a taxi at the left roadside, and a vehicle overtakes the taxi. Two persons are walking together with one's arm around another's shoulder. A person is chasing another person along the roadside.
ChatDyn的核心理念在于结合高层次规划与低层次控制,以创建一个真实的仿真系统。大型语言模型(LLM)擅长高层次规划,而基于物理的方法则非常适合生成细粒度的低层次控制。基于这一观察,ChatDyn将多LLM代理用于高层次规划,并结合基于物理的执行器进行低层次生成。通过集成高层次和低层次组件,ChatDyn允许用户输入语言指令来指定需求。然后,它会根据指定的场景生成真实的动态,涵盖包括行人和车辆在内的多种交通参与者,并支持参与者之间复杂多样的互动。
主页链接:https://vfishc.github.io/chatdyn/
论文链接:https://arxiv.org/pdf/2412.08685
ChatDyn整体设计
ChatDyn能够解读并分析用户的语言指令,然后生成与之相符的场景动态。ChatDyn采用了两阶段的处理流程:高层次规划阶段负责在复杂和抽象的指令下规划轨迹和行为;低层次生成阶段则负责生成细粒度的真实动态。由于用户指令可能包含许多需要精确控制的具体细节,以及需要理解的抽象语义,ChatDyn利用多LLM-agent角色扮演方法,将每个交通参与者视为一个LLM-agent。该方法充分利用了LLM在理解语义信息和广泛常识上的能力,通过特定的工具和交互过程完成高层次的轨迹和行为规划。每个交通参与者的对应代理还配备了一个执行器作为工具之一。在高层次规划完成后,执行器利用规划结果执行低层次生成过程。执行器基于高层次规划生成细粒度、真实且物理上可行的动态。

图 1 ChatDyn系统结构
基于规划的行人动态生成
行人执行器(PedExecutor),根据高层次规划中规划的轨迹和行为生成低层次的行人动态。行人行为可以细分为由语言直接指定的单一代理行为和多个代理之间发生的互动行为。因此,挑战在于如何同时处理轨迹跟随、单一代理的运动规范以及多代理之间的互动,同时保持类人品质。为此,PedExecutor利用统一的多任务训练,通过单一策略执行LLM规划的轨迹、单一代理行为和多代理互动。PedExecutor采用了多任务统一训练的方式,能够使用一个策略网络实现多种不同控制信号下的生成,并能够完成预先设定的交互行为且结合物理引擎得到相应的物理反馈。为了提升最终行人动态的质量和真实性,动作空间采用了层级控制提供先验信息,而奖励函数使用身体遮蔽的对抗性运动先验(AMP)来鼓励类人的控制行为。最终,PedExecutor返回的动态能够遵循规划轨迹并完成预期行为,从而生成真实的行人动态。

图 2 PedExecutor结构设计
基于规划的车辆动态生成
车辆执行器(VehExecutor),根据高层次规划的轨迹生成最终的真实且物理上可行的车辆动态控制策略,这些轨迹在初始阶段可能会违反某些动态约束。为了引入物理约束并实现精确控制,VehExecutor利用基于物理的过渡环境,并结合历史感知的状态和动作空间设计。最终的动态通过累积车辆的位置和航向信息从环境中获得。

图 3 VehExecutor结构设计
实验结果
系统整体效果
我们在开头展示了系统输出来自两个场景。每个生成的输出都包含了丰富的交通参与者,基于用户的指令进行生成。从系统的输出中,我们可以看到以下几点:(i)互动得到了全面展示,包括人车互动(例如打车、避让、减速)、车与车的互动(例如换道、超车),以及人与人之间的互动(例如推搡、追逐、肩并肩走)。不同类型交通参与者之间的这些互动使得场景动态更加多样化和真实;(ii)系统实现了精确和细致的控制,每个场景描述都较为复杂,可能包含抽象的语义信息。通过多LLM-agents角色扮演的设计,复杂的指令得到了准确分析和执行,抽象的语义信息有效地被分解成可执行的指令,最终生成动态;(iii)生成的结果高度逼真。基于物理的控制策略使行人和车辆的动态表现得既真实又直观,特别是在展现人与人之间的互动时,突出体现了物理反馈。指令:A person pushes another person, and another person is making a phone call, then walks along the roadside. A vehicle turns right at the intersection, and a hurried vehicle overtakes a stationary one.
,时长00:07
,时长00:07
样例2(上图白膜,下图带蒙皮)包含多种交互,能够实现交互的物理反馈,并能够控制行人、车辆进行具体细致的行为。指令:A person pushes another person, and another person is making a phone call, then walks along the roadside. A vehicle turns right at the intersection, and a hurried vehicle overtakes a stationary one.
高层次规划对比
我们将LLM agent生成的规划轨迹与现有的基于语言的交通生成方法进行比较,验证高层级规划的结果是否让用户满意。结果表明,ChatDyn始终生成更准确的规划结果,这些结果更符合描述,且更受用户偏好。我们还提供了视觉示例,其中也展示了ChatDyn在包含行人的场景中的一些规划结果。ChatDyn能够准确满足需求,生成符合规范的高质量输出,即使在涉及行人的场景中也能表现优异。

表 1 高层次规划对比

图 4 高层次规划对比
行人动态生成对比
我们评估了PedExecutor在轨迹跟随和动作模仿任务中的表现。在分层控制和相关训练策略的支持下,PedExecutor生成了更高质量的动态,并在跟随和模仿任务中展示了高度竞争的表现。我们还评估了执行互动任务的过程,以确定每种方法在完成这些任务中的有效性。凭借分层控制和身体遮蔽的AMP,PedExecutor不仅在任务成功率上表现优秀,还能保持高质量、类人的输出。

表 2 PedExecutor模仿与跟随任务对比

表 3 PedExecutor交互任务对比

图 5 PedExecutor交互任务可视化对比
,时长00:34
视频 3. PedExecutor对比视频
车辆动态生成对比
我们通过测量位置误差和速度误差,评估了VehExecutor在不同初始速度下的精度。VehExecutor在所有速度下始终表现出最佳的准确率。

表 4 VehExecutor对比实验结果
,时长00:17
视频 4 VehExecutor对比视频
总结
ChatDyn的突破,标志着我们在模拟真实世界动态方面迈出了重要一步。通过将大型语言模型(LLM)的高层次规划能力与基于物理的方法的低层次控制相结合,ChatDyn能够精确地执行复杂的语言指令,从而生成街道场景中交互式、可控制及真实的参与者动态。这种结合不仅提高了模拟的准确性,还极大地增强了虚拟环境的真实感和沉浸感。ChatDyn能够细致全面地模拟场景物体动态,进而能够作为先验辅助下游方式例如渲染引擎、生成模型等进行成像,助力构建更加真实,可控的世界模型。ChatDyn中的相关方法也能够在特定优化下应用于室内等场景,进行室内场景的动态仿真。
....
#探究数据规模对端到端的泛化影响
端到端自动驾驶范式因为其可扩展性而受到广泛关注。然而,现有方法受限于真实世界数据规模,阻碍了对端到端自动驾驶相关规模化定律的全面探索。针对这一问题,中国科.学.院.自动化所赵冬斌研究员团队与理想汽车“端到端”量产部门夏中谱团队进行了合作探索,团队收集了各类真实驾驶场景和行为数据,对现有基于模仿学习的端到端自动驾驶范式的规模化定律进行了深入研究。具体而言,该团队共收集了23种不同场景,约400万次演示,总计超过3万小时的驾驶视频。在严格的评估条件下,通过共计1,400次不同的驾驶演示(开环1,300次,闭环100次)进行开环评测和闭环仿真评测。通过实验分析发现:(1)轨迹拟合的开环性能与训练数据量呈幂律关系,闭环性能在200万次数据量时出现性能拐点;(2)长尾数据量的少量增加可以显著提高相应场景的性能;(3)适当的数据规模化可以为模型带来新场景组合泛化的能力。团队的研究结果首次通过大规模真实场景数据和实验,展现了数据规模化为端到端模型在不同驾驶场景中的泛化的关键作用,为端到端在开放世界的量产部署提供了支撑。
论文信息
- 论文题目:Preliminary Investigation into Data Scaling Laws for Imitation Learning-Based End-to-End Autonomous Driving
- 论文发表单位:中科院.自.动化所深度强化学习团队,理想汽车
- 论文地址:https://arxiv.org/pdf/2412.02689
- 项目仓库:https://github.com/ucaszyp/Driving-Scaling-Law
1 引言
端到端自动驾驶算法将自动驾驶中的感知、预测、规划等任务纳入一个完全可微的框架中。它将原始传感器数据作为输入,输出可能的规划轨迹,这种方法可以数据驱动的方式优化整个系统,因而受到了学界和业界广泛的关注。
然而,当前的自动驾驶社区面临一个巨大的挑战:现实世界数据的匮乏,使得端到端自动驾驶中的数据规模化定律尚未得到充分研究。如表1所示,现有的开源真实数据集规模通常在千级,远小于语言模型或生成模型中动辄百万甚至十亿级的视觉-语言数据。
表1 ONE-Drive和现有的开源数据集的对比

对于端到端自动驾驶的安全落地,在数据规模化定律三个关键问题值得被探索:
- 端到端自动驾驶领域是否存在数据规模化定律?
- 在数据规模化的过程中,数据数量如何影响模型性能?
- 数据规模化能否赋予自动驾驶算法在新场景中的泛化能力?

图1 数据采集车7个摄像头的位置
2 研究工作2.1 数据准备
为了解答这三个问题,团队收集并标注了一个名为ONE-Drive的百万级数据集,其中包含超过400万次驾驶演示(约30,000小时)的现实世界数据,数据源自多个城市的多样道路环境。图1展示了ONE-Drive的采集配置,它包括7个摄像头和一个128线的激光雷达。图2展示了ONE-Drive与现有的开源数据集nuScenes和nuPlan的对比,(a)、(b)两部分展示了它有更丰富的场景和动作。(c)对比了它与其他两个开源数据集的轨迹热力图,展现了ONE-Drive规划轨迹的多样性和挑战性。

图2 ONE-Drive数据集与nuScenes和nuPlan的对比
在此数据集的基础上。团队依据交通条件和智能体的动作将场景分为23种类型。数据集中场景类型的分布如图3所示。

图3 ONE-Drive数据集中23种场景类型及分布
2.2 模型准备
基于PARA-Drive[1],团队提出了一种易于扩展的端到端自动驾驶网络。它的结构如图4展示。它分别提取多视角图像的特征和点云特征,随后利用前投影的方法将两种模态的信息在鸟瞰图(BEV)空间融合。随后它按照时序提取过去的BEV特征和相对位姿并进行时序融合以增强历史信息。随后,BEV特征通过并行的解码器通过Online Map、4D Occupancy、Static Object Detection、Prediction和Planning等5个任务进行训练。在自车规划中,利用多层感知器将从导航中获取的红绿灯、道路级别的路线(为了应对真实世界规划对贴合导航的需求)等导航信息和自车运动状态编码作为规划的上下文信息,最终输出多模态的规划轨迹和对应的分数。在评测中,分数最高的轨迹将被采取作为最后的规划执行。

图4 模型结构图
2.3 评测准备
团队采取开环和闭环两种评测方式,开环评测旨在评估预测轨迹与专家轨迹的距离。闭环评测采用基于3D-GS场景重建的仿真器。具体来说,对每个测试场景进行3条不同轨迹的数据采集,轨迹间隔3米。利用这些采集数据,团队基于算法StreetGaussians[2]重建了测试场景,它可以10Hz的频率进行图像渲染仿真。闭环仿真中计算和实车部署密切相关的安全、效率、导航、规则、舒适度五个指标,并按照如下方式加权计算驾驶分数:

值得注意的是,由于重建场景的限制,开环评测与闭环评测的场景不完全相同。开环评测有约1300个驾驶演示组成,而闭环评测仅重建约100个场景。后续的工作中团队会将评测对齐,更公平地探索不同评测方式下的规模化定律。
2.4 实验准备
基于ONE-Drive数据集,团队进行均匀下采样得到数据量为200万、70万、5万、1万的子集作为实验数据准备。不同数据量的模型进行训练直到收敛,训练模型及资源如表2所示。
表2 不同数据量模型及训练资源

3 实验与结果
本文在大规模真实场景的闭环规划平台进行闭环规划实验,以评估性能,实验结果如下。
3.1 开闭环性能的差异
如图5所示,团队进行了开环闭环两种评测,并绘制了评测指标和训练数据量的关系图。其中5(a)是开环评测的关系图,横纵坐标均为对数坐标。5(b)和5(c)是闭环评测图,横坐标为对数坐标,纵坐标为线性坐标。如图5(a)的线性拟合,团队发现在开环评测中,模型拟合专家轨迹的性能与训练数据大致呈现幂律关系。如图5(c)所示,在闭环评测中,数据规模化定律不再是幂律关系。驾驶分数首先快速增长,随后增长放缓。在200万数据量时形成一个拐点。图5(b)中展示了闭环中每一项的评分。

图5 数据规模化定律
3.2 数据数量增长对模型性能的影响
团队进一步探讨在数据规模化的过程中,数据量增加如何影响模型的性能以及如何利用这一规律扩增场景数据。为了研究这个问题,团队依照2.1节数据准备中的方法将数据集划分为23种类型,并选择了两种数据量少、模型表现差的长尾场景作为研究对象,开环评测模型的在两种场景中的轨迹拟合能力。在研究中保持数据总量不变,逐步增加这两种场景的数据数量。如表3所示,随着长尾数据量扩增至约4倍时,模型在该场景的性能提升约20%至30%。即通过百或千级别的长尾场景数据扩增,即可在该场景有较大的性能提升。
表3 数据量扩增实验表格

3.3 场景的组合泛化
最后,团队探讨数据规模化与端到端驾驶泛化性的关系。泛化能力被认为是自动驾驶技术于真实世界安全部署的关键。为此,团队将数据集中23种场景中的2种:高速绕行HIGHWAY_NUDGE_OBS和路口待转WAIT_TURN作为测试场景,利用剩下的21种作为训练数据。团队在5万、70万、200万数量的数据上进行了实验。值得注意的是,在选择这两个类别的测试数据时采用了严格的筛选策略,以确保每个场景与其他场景类型不重叠。图6展示了组合泛化的定量结果并展示了与这两种场景相似的场景以便比较。比如对于高速绕行HIGHWAY_NUDGE_OBS,类似的对比场景为高速行驶(左右换道)、城区绕行(障碍物、低速智能体)。通过实验结果观察到:(1)在5万个示例上训练的模型在两个测试场景中与专家轨迹的位移误差比类似场景更大,表明小规模训练数据的模型泛化能力不足。(2)随着训练数据增加到200万(绿色示例数量),两个测试场景的轨迹与其他场景之间的轨迹误差迅速缩小。在高速场景上的表现甚至超过了参与训练的其他场景。(3)通过分别从训练数据中学习高速行驶和低速绕行,模型获得了泛化到高速绕行场景的能力;通过学习转弯和红灯排队,模型发展出了泛化到路口待转场景的能力。

图6组合泛化定量实验
更进一步,图7中展示了模型预测轨迹的可视化。绿色框中的鸟瞰图代表使用5万个示例训练的模型的规划结果,这些示例在训练时不包含高速绕行HIGHWAY_NUDGE_OBS和路口待转WAIT_TURN场景(图例中的"50K + Unseen")。蓝色框中的鸟瞰图代表使用200万个示例训练的模型的规划结果,这些示例同样在训练时不包含高速绕行HIGHWAY_NUDGE_OBS和路口待转WAIT_TURN场景(图例中的"2M + Unseen")。橙色框中的鸟瞰图代表使用200万个示例训练的模型的规划结果,这些示例包含HIGHWAY_NUDGE_OBS和WAIT_TURN场景(图例中的"2M + Seen")。可视化的分析揭示了适当增加训练数据的规模使模型能够实现对新场景的组合泛化。这种增强的泛化能力使模型在这些新场景中的表现可以与专门训练的对应模型相媲美。团队的发现强调了数据规模在提高模型在多种自动驾驶环境中的适应性和鲁棒性方面的关键作用。

图7 组合泛化定性实验
3.4 可视化分析本节中展示了仿真场景的可视化,两个对比场景展现了数据扩增的效果。第三个视频展示了多种天气、道路环境下的仿真效果,体现了基于3D-GS仿真的有效性。闭环仿真测试--对比场景1:无效变道闭环仿真测试--对比场景2:红灯路口停车区域错误多环境的闭环仿真展示
实车部署
在实际部署中,团队评估每个模型的每次干预里程(MPI),这表示在需要人工干预之前平均行驶的距离。更高的MPI表示更好的性能。值得注意的是,在实际应用中采用了一个安全检查模块用于确保安全,它基于并行解码器生成的感知结果选择最合理的轨迹。通过对400万个示例的训练,该模型在道路测试中实现了平均约24.41公里的MPI。
4 结论
在本文中,团队深入探讨了基于模仿学习的端到端自动驾驶框架中的数据规模化定律。进一步的研究揭示了以下有趣的发现:
(1) 随着数据量指数增加,开环的轨迹拟合性能与训练数据量呈幂律关系。
(2) 对于闭环性能,团队发现200万演示数据是闭环性能的拐点,之后随着数据量指数增加,闭环性能提升变慢,这意味着基于模仿学习的端到端框架可能出现“反规模化”效应,即随着数据量指数增加,闭环性能的收益提升会逐步放缓。
(3)长尾数据量的少量增加可以显著提高相应场景的性能;
(4)适当的数据规模化可以为模型带来新场景组合泛化的能力。
在未来,团队将会更聚焦于端到端模型的闭环能力,探索更广泛的场景表征(BEV 和稀疏)、模型架构(级联和并行)和监督范式(监督和自监督)下的模型表现,旨在为自动驾驶系统在不同场景和模型范式中的可扩展性和通用性提供见解。
...
#Robot.axi全球三强之一突然倒下
烧光700亿落地百余辆...
太突然了!
通用汽车刚刚宣布:“断供”Cruise。
在L4强势复苏,长跑多年的L4玩家纷纷排队上市的一年,
在Robotaxi迅速降本,落地规模和速度一再刷新纪录的一年——
Cruise,这家自动驾驶赛道曾经的明星独角兽,和Waymo、百度Apollo并列三强的Robotaxi玩家,烧光700亿后,走向自己的终局。
通用突然「断供」Cruise
北美时间周二下午,也就是刚刚,通用汽车官方发表了一份声明:
核心内容只有一个:
Cruise今后的Robotaxi业务,一分钱也不投了。
通用“铁娘子”玛丽博拉解释,不是抛弃Cruise,而是彻底转变了通用汽车的自动驾驶发展战略:
从之前笃信L4和Robotaxi,转向在乘用车上量产高阶智驾,通过数据迭代逐渐实现完全自动驾驶——特斯拉的道路。
退出Robotaxi的原因,官方给出两条:
外部激烈竞争
成本太高且不是核心业务
Cruise的团队、资产,直接和通用汽车的技术团队合并,转向量产车智能驾驶研发。
之前收购Cruise时,通用不是还引入了很多外部股东吗?在如今新的安排下,通用将回购这些外部投资者手里的股份,把自己的持股比例提到97%。
今后Cruise团队、管理层的去留,做什么业务、怎么做,完全由通用汽车决定。
这种情况下,以后自动驾驶、智能汽车赛道上,还会不会再有一个名叫“Cruise”的玩家,也不太确定了。
Cruise谢幕终局的时刻,距离它的Robotaxi发生严重事故,迅速从顶峰滑落,仅仅一年之隔。
Cruise这一路
2013年,凯尔·沃格特(Kyle Vogt)创办了Cruise,总部就在旧金山,瞄准无人车和自动驾驶的伟大前景,成为最受瞩目的创新公司之一。
凯尔完全是技术工程师出身。他出生在美国,从青少年时期开始,就对自动驾驶有了兴趣。
2004年开始,他考入麻省理工,开始研习计算机和电气工程,并且过程中参与了后来改变自动驾驶进程的DARPA比赛。
Cruise成立的前三年,主要依托日产Leaf车型平台推出了一系列原型车、测试车,开展L4自动驾驶技术的研发。
3年后,Cruise接受通用汽车的收购提议,成为了通用旗下全资子公司(后来引入外部投资,但通用扔持股90%)。
当时通用也承诺,会给予Cruise充分的独立性,可以自主推进技术和商业化,同时还能借助通用的车厂经验和资源,加速前进。
通用是兑现了承诺的。Cruise作为通用的旗下自动驾驶公司,从2018年起先后引入了孙正义的软银22.5亿美元投资,又单独收购了无人物流公司Zippy.ai,以及顺势收下了Zippy.ai的一家激光雷达芯片公司Strobe。
彼时的Cruise,弹药充足,令友商羡慕:有车企“大树”、大帝孙正义的资金支持,还有便利的量产车型平台渠道,自动驾驶落地有Robotaxi,还有无人物流车,自己还掌握了自动驾驶核心零部件技术和供应链。
2021年,Cruise估值达到巅峰,300亿美元(折合人民币约2139亿元),随后不久,Cruise豪言计划把Robotaxi车队数量扩充到5000。
但波折起伏也一直伴随着Cuise,特别是在2018年之后,Cruise的发展,开始展现更大的“资本驱动”一面。
2018年Dan Ammann(丹·阿曼),前通用汽车的CFO、总裁,正式成为了Cruise的CEO。
6月,在一波与孙正义的眉来眼去之后,通用对Cruise上演了一出“并而复拆”的戏码,重新引入其他外部投资方。
孙大帝沿袭一贯风格,火速带来了日本车厂本田,把Cruise估值炒到190亿美元,并订下了商业化和IPO时间表。
毫无疑问,资本方面的高潮迭起,自然与这位财务和车厂背景出身的CEO——丹·阿曼密切相关。
但与资本进展形成对应的,却是技术落地的一再推迟。
Cruise最早就放话,要最早在旧金山市区落地RoboTaxi,并且2019年就能让旧金山市民随叫随打。然而该计划却一而再被推迟。
过程中,Cruise也有过高光时刻。
比如推出了没有方向盘、完全重新设计的无人驾驶原型车Cruise Origin,但还只停留在“原型”阶段。
或许是要为这种现状和结果负责,也或许是由于媒体爆料的“与通用汽车现任CEO玛丽·博拉不和”……
阿曼在2021年12月,突然离职了,通用又将创始人凯尔·沃格特请回来重新执掌Cruise。
但此时的Cruise在Robotaxi落地竞速中,已经错失了最宝贵的窗口期。
去年8月硅谷全面解禁无人车,允许无人车不分时段和路段运营测试,被认为是自动驾驶的关键里程碑。监管放开的目的,当然希望加快自动驾驶商业化落地。无疑是有利自动驾驶玩家们的,前提是无人车够安全可靠。
但谁也没想到,放开才一周,Cruise无人车就不断造成事故:
大晚上的10辆无人车突然集体熄火,造成交通堵塞。堵了近半个小时,Cruise员工才赶到现场手动挪车。
没过几天又在拉客时,撞上了正出任务的消防车,造成乘客受伤。
正是因为此次事件,加州机动车管理局(DMV)盯上了Cruise,开始调查。
立即要求Cruise将运营规模缩小一半,白天运营车辆不超过50辆,晚上不得超过150辆。
偏偏是在被调查的敏感期间,无人车造成了更严重的事故:
挡道救护车,致使车上伤者错过最佳救护时间,不幸离世。
消息传出,民众沸腾,人群聚集到Cruise总部前示威。
官方和民间两头都得罪,结局也就不意外了。最终在10月份,无人车拖拽压走一名女子后,DMV吊销了Cruise无人车运营资格。
Cruise随后宣布无方向盘和脚踏板的自动驾驶车型Origin停产,将重新评估自动驾驶。
而评估的初步结果就是,Cruise裁撤了一部分负责运营和维护无人车的临时工,同时宣布正式工的裁员也会到来。
CEO、创始人凯尔·沃格特,也在年底辞职,彻底退出了Cruise。
可能从此时,通用就已经在重新考虑Cruise的未来了。
而真正促使通用做出裁撤Robotaxi业务、合并Cruise团队的最后导火索,可能是Cruise上个月向监管承认曾经在接受调查期间,提供了虚假的情况报告。
此时此刻,Robotaxi全球三强的另外两家,正呈现出欣欣向荣的格局:
Waymo眼下每周能在北美提供超过17万次Robotaxi服务,并且去安全员。业内推断Waymo真实的车队运营规模,可能已经超过2000辆。和极氪合作的第六代前装量产Robotaxi车型明年年初也将上路。
至于估值,在谷歌最新一轮注资后,已经超过了450亿美元。
百度Apollo则在中国落地十数个城市,仅武汉一地就由此超过700辆萝卜快跑运力,日均完成9000单,成本20万的RT6车型投放在即。
而Cruise在倒下的这一刻:
之前计划的5000辆车队,实际落地的最高峰也只有百余辆。前前后后通用对Cruise的投资,却已经超过了100亿美元。
有什么影响?
Cruise被迫退出Robotaxi,真的会对Robotaxi、L4赛道产生负面影响吗?
其实不然。
因为Robotaxi整车平台、自动驾驶套件成本已经大幅下降,并且还有进一步降本空间。
目前单车运营成本和网约车专车已经打平,商业模型的成立近在咫尺。
Waymo、Apollo的落地进展,以及小马、文远等等L4玩家成功上市,也说明无人驾驶正在迎来新又一波高潮。
Cruise的退出,反倒更好的证明,L4从技术体系、落地场景、商业模式、运营管理等等,都是和L2+完全泾渭分明的另一桩生意。
造车卖车的车企入局,也许真的不是最优选择。
所以,通用断供Cruise,不是L4的挫折,而是在历史、时局、技术、团队等等复杂因素作用下,通用汽车不得不接受的遗憾失败。
...
#自动驾驶3DGS最新综述
闭环仿真日新月异的今天,如何紧跟节奏?
NeRF技术兴起于2020年,自此掀起了三维重建领域新一轮的革新风暴。三年时间飞逝,新的算法和改进层出不穷,其视觉质量逐步提高突破。并且在该技术的支持下,许多领域都取得了突破性的成果。近几年的顶会上也涌现出大量关于NeRF的文章,NeRF已经逐渐成为世界计算机视觉领域里面的一个非常主流的领域。为何NeRF会在短时间内受到如此广泛的重视?这是因为相比于传统几何的三维重建方法,NeRF更加简单且逼真。若要对NeRF"更简单、更逼真"的优势进行深刻了解,就需要进一步了解传统几何三维重建与NeRF三维重建的pipeline。
自动驾驶需要三维重建技术来帮助车辆更好地了解周围环境(如驾驶场景理解、同步定位和建图以及城市场景重构)。重建技术可重建车辆周围的环境,为自动驾驶系统提供更准确的环境信息。这有助于自动驾驶系统更好地规划驾驶路径,避免碰撞,提高驾驶安全性。图1展示了自动驾驶与3D重建技术之间的关系。

图1 自动驾驶与3D重建技术的关系示意图
在三维场景重建方法中,主动式重建技术由于其设备成本高、检测速度慢和算法泛化差等原因,因而在室外场景的应用中表现不佳。以多视角立体视觉法为研究重点的被动式重建技术采集速度快、设备效益高、整体系统的灵活性和鲁棒性强,而其中神经辐射场(Neural Radiance Field,NeRF)作为计算机视觉领域隐式辐射场的代表,以其高度逼真的渲染质量、自由灵活的场景表示和端到端的学习框架受到研究人员的喜爱。
但NeRF per-pixel ray marching的原理天然使得效率低、过度平滑且容易发生灾难性遗忘。因此研究人员开始思考,有没有更好更快的三维场景表达形式,以实现高质量重建。
至此3DGS问世。
三维高斯喷溅(3D Gaussian Splatting, 3D GS)结合了显式辐射场的数据存储优势和隐式辐射场的网络优化特点,实现了高速度运行、高质量渲染和高可靠交互的目标,刷新了三维场景重建的各项指标SOTA,有望为高级别自动驾驶的实现提供强有力的技术支持。
原始的3DGS算法聚焦在静态场景的重建,但自动驾驶场景却是动静态场景的结合,因此最开始在自动驾驶中的应用受到了一定的限制。而自4DGS问世以来,这种限制逐渐被打破。
为了基于3D GS的场景重建技术在自动驾驶领域得到更全面更广泛的普及与推广,本文梳理了3D GS有关主题材料,并侧重于展现其优异的整体性能和蓬勃的发展态势。本文的重点在于探究基于3D GS的场景重建技术的发展脉络,其在自动驾驶领域的应用情况以及目前面临的挑战与研究前沿。本文的结构框架概略图如图1所示,具体介绍如下:第2节主要介绍3D GS研究背景,包括三维场景重建方法以及3D GS有关研究进展。第3节介绍了3D GS的主体模块,并重点揭示了3D GS核心公式的推导过程。第4节论述了3D GS在自动驾驶领域三个主要方面的应用,展现其灵活高效的优势。第5节强调了在自动驾驶领域3D GS的进一步研究方向,挖掘其潜在能力。本文的宗旨是以通俗易懂的方式带领读者了解3D GS这一种新兴技术在自动驾驶领域的研究情况,为研究人员思考如何促进高级别自动驾驶的实现提供有益帮助。

图2 论文框架示意图
1 主要贡献
第一点是全面的最新综述。我们的调查报告对自动驾驶中的3D GS进行了广泛和最新的综述,涵盖了3D场景重建方法的经典和前沿方法。
第二点是核心公式的数学介绍。我们的研究详细阐述了3D GS的数学基础,推导并说明了核心数学公式。
第三点是对未来方向的洞察。我们的调查分析了目前3D GS在自动驾驶方面的技术局限性,为未来研究提出了一些研究方向。
我们的调查可以为研究人员了解、探索、应用这种新颖的研究方法提供一个有效、便捷的途径,促进 3D GS 在自动驾驶领域的发展和应用。
引用格式如下:Zhu, H., Zhang, Z., Zhao, J. et al. Scene reconstruction techniques for autonomous driving: a review of 3D Gaussian splatting. Artif Intell Rev 58, 30 (2025). https://doi.org/10.1007/s10462-024-10955-4
2 研究背景回顾
三维场景重建方法依据设备采集数据方式的不同可以分为主动式重建技术和被动式重建技术。主动式重建技术指的是数据采集设备(如LiDAR或3D扫描仪等)主动发射信号(如激光、声波、电磁波等)至目标物体,并接收回波以解析目标的深度信息,通过数值逼近的方法来重建三维轮廓。其中,面向自动驾驶的代表方法有结构光法、TOF激光飞行时间法、三角测距法等。相较于主动式重建技术,被动式重建技术可以基于自然场景光照而得到图像数据,通过特定算法解算得到物体的立体空间信息。由于其具备设备成本低廉、应用部署快速和算法鲁棒性高等优点,因此被动式重建技术在室外场景重建受到广泛应用。其中,面向自动驾驶的代表方法有单目视觉法(Monocular Stereo Vision,MSV)、双目视觉法(Binocular Stereo Vision,BSV)和多视角立体视觉法(Multi-View Stereo,MVS)等。MSV仅使用一台摄像设备拍摄照片即可完成三维场景重建,其代表算法有阴影恢复形状法、纹理恢复形状法和轮廓恢复形状法等。MVS在BSV的基础上进一步增加相机和视角数量,依据多张已知相机姿态的图像联立建立密集的对应关系,得到场景物体表面密集的三维点云[31]。MVS不依赖于特定外界环境条件,精度高、采集快、成本低,是三维场景重建技术中的热门研究领域和重点难点领域。MVS依据处理方式的不同可以分为传统方法和深度学习方法两大类。传统MVS重建方法主要依靠视差和几何约束的思想来对三维场景进行重建,其场景几何的数学表示主要有体素、网格、点云和深度图四大类[32]。基于深度学习的MVS重建方法将其他方法的优秀思想引入神经网络,在重建质量、自动化程度和效率方面取得了显著进步。基于NeRF的三维场景重建算法具有出色的多视角一致性和连续性,无需显式三维标注,适应性强、易扩展,成为场景重建的重要研究方法之一。
但NeRF主要使用隐式的基于坐标的模型将空间坐标映射到像素值,使用体渲染和神经网络进行直接渲染,计算要求严、渲染时间过长、训练成本高。在这种背景下,三维高斯泼溅(3D Gaussian Splatting,3D GS)技术的出现作为一种范式转换方法,重新定义了场景重建与渲染的边界。如图3所示,相较于主流的NeRF算法,3D GS既保留了高质量场景重建的优点,又确保在短时间内实现SOTA级别的实时渲染效果,成为2023年末席卷三维场景重建领域的重要且突出的研究方法。

图3 3D GS与主流NeRF算法的重建质量与运行速度比较
自从法国蔚蓝海岸大学(Université Côte d’Azur,UAC)于2023年8月开源3D GS项目后,学术界掀起了轩然大波,各类衍生模型层出不穷。在自动驾驶领域,3D GS同样革新了三维场景重建和局部环境感知技术。面对蓬勃发展的自动驾驶技术,以3D GS为代表的场景重建技术在确保自动驾驶车辆安全、可靠行驶方面发挥着至关重要的作用。3D GS通过对周围环境的精确感知和快速建模,为自动驾驶系统提供了丰富的环境信息,帮助车辆更好地理解周围环境,从而做出更安全、更有效的驾驶决策。目前,已有一定的文献对3D GS的应用情况进行了综述总结,但是这些文献涵盖范围较广,关于自动驾驶领域的针对性不强。
3 3D GS数学机理
NeRF与3D GS之间一个重大的区别在于辐射场的显隐式表达。辐射场是一种量化三维空间中光的强度、分布、效果等参数的模型,可以被函数式(1)表示。
三维场景重建技术采用体素、点云等显式辐射场表示方式的一大考虑是其非常适合基于GPU/CUDA的快速光栅化。3D GS采取灵活高效的表达策略,使用3D高斯来对三维场景进行重建,并结合NeRF的网络特性来合理优化系列参数。这种融合显隐式的场景重建模式既利用了显式存储数据的可查询、可编辑性质,又吸收了隐式匹配优化数据的自动性、准确性,在保证高效的形状表示、高质量的渲染能力同时又具有快速的训练速度和实时性能。
原始3D GS模型主要基于三个模块:3D Gaussians表示模块,属性优化模块和实时渲染模块,其主要流程图如图3所示。综合来看,3D GS通过三个关键模块的紧密集成,成功地解决了三维重建领域现有算法在速度和质量之间的权衡问题。3D Gaussians表示模块提供了对复杂三维形状的紧凑和连续描述,属性优化模块确保了高斯函数能够精确地匹配输入数据,而实时渲染模块利用GPU加速的高效算法实现了高质量渲染、快速渲染和动态更新。这三个模块相互补充,共同实现了在保持高质量视觉效果的同时,3D GS可以提供快速响应和实时性能,从而在速度和质量之间取得了理想的平衡。

图4 3D GS三大模块的流程示意图
可微分3D GS方法具备可微分体积表示法的特性,可以对渲染结果进行反向传播梯度,从而实现基于梯度的优化;并且又不需要像传统的结构化体素表示法将三维空间划分为规则的网格,而可以直接在任意位置进行采样和渲染;同时通过对三维空间中的点进行高斯分布采样,根据采样结果计算颜色和密度可以明确渲染过程,从而实现快速混合渲染。基于以上特性,可微分3D GS基于无法向的稀疏(SfM)点集完成高质量新视图合成的目标,可以作为一种高效场景表示法来进行三维场景重建。3D GS的数学推导部分主要由多元高斯函数的表示、高斯体的初始化和高斯体的喷溅三部分组成[99-101]:
3.1 多元高斯函数的表示
在3D GS中,Bernhard Kerbl等人沿用了Matthias Zwicker等人在EWA Splatting中的高斯表示函数。如式(1)所示,其在世界空间下使用以点为中心的3D协方差矩阵定义多元高斯函数,和分别表示了对应于3D Gaussian位置和各向异性协方差。和标准形式相比,3D GS去掉了指数部分前面的尺度系数(但这样不影响椭球几何);并且默认模型坐标中心在原点,方便旋转放缩,放入世界空间时再加上平移。并且函数在后续混合过程中乘以了系数,以避免SfM点的极度稀疏性导致的法线估算问题。

3.2 高斯体的初始化
3D GS大约80%的主体部分都采用PyTorch深度学习框架来构建代码运算,这就导致部分架构需要依据PyTorch进行调整和处理。在3D GS中,高斯体的和等参数需要借助PyTorch的自动微分框架来进行随机梯度下降,其中、颜色c和不透明度都较为容易获得。但由于PyTorch的自动微分框架优化时需要显示给出梯度才能确保算法正常运行,因此3D GS对进行了重参化处理。具体表达式如下所示:

3.3 高斯体的喷溅
传统光栅化是3D图形渲染中的一个关键步骤,它的主要任务是将三维空间中的几何形状(通常是三角形)转换成二维屏幕上的像素,并对其进行着色从而生成最终的图像。在现代的图形处理单元(GPU)管线中,光栅化过程通常是由硬件自动完成的,因此3D GS需要自主设计和优化CUDA内核以实现光栅化程序。3D GS将高斯体投影到投影平面后得到的2D图形称为喷溅(Splatting)。
将归一化的3D高斯沿着某个坐标轴进行积分,即可得到归一化的2D高斯。同时,2D高斯的协方差矩阵可以通过3D高斯去掉第三行和第三列直接获取,减小了计算代价。相较于传统的基于体积和积分的渲染方法(如光线追踪、路径追踪等),3D GS巧妙地利用了3D高斯与2D高斯轴向积分的等价性,从数学机理极大地减少了需要采样的空间维度,从而降低了计算的复杂性。

4 3D GS在自动驾驶中的应用4.1 新视角合成新视角合成就是这样一种将三维场景转换到新的视角的技术,它通过三维重建算法(如表面重建、体绘制等)来创建周围环境的三维模型,并将其转换到新的视角。在实际应用过程中,3D GS凭借其高效的点云处理速度、鲁棒的表面重建流程、实时的数据处理性能和灵活的视角转换过程等优势为新视角合成研究注入了新的活力。针对对于具有反射表面的场景(尤其是离散3D高斯模型)的渲染问题,Yingwenqi Jiang等人提出了一种名为GaussianShader的新型模型。GaussianShader基于3D高斯模型的最短轴方向提出了一种新的法线估计框架,并设计了一个细致的损失函数,以使法线和高斯球的几何形状保持一致,在效率和视觉质量之间取得了良好的进步和平衡。面对单目和小镜头重建技术面对的场景物体存在相互遮挡或缺乏纹理,光照条件和动态场景存在变化以及场景绝对尺度的不确定性。David Charatan等人提出了一种前向模型pixelSplat,使用3D高斯基元从图像对中重建3D辐射场,解决了广角新视角综合的问题。同时,部分研究人员结合3D GS的显式结构特点和其他方法的优异特性,在新视角合成领域不断刷新各项指标记录。
4.2 场景理解
新视角合成任务的目标是融合现有数据创建一个统一的三维场景表示,以便车辆能够准确理解当前环境。而场景理解的任务便是对环境信息进行分析、解释和推理,以识别和理解场景中对象的基本属性、联结关系以及整体布局。如图4所示,目前3D场景理解主要可以分为“3D+2D”场景理解和“3D+语言”场景理解两大类,其主要区别在于信息融合的方式和侧重点的不同。

图5 3D场景理解分类情况示意图
“3D+2D”场景理解侧重于将3D空间信息与2D图像信息相结合,以实现对场景的全面解读和解释。由于3D GS的优异性能表现,部分研究人员指出可以将2D分割基础模型的细颗粒度分割能力提炼到3D GS中,以避免传统方法的推理过程中多次前向传播导致的巨大算力和时间成本。Jiazhong Cen等人有机结合了2D分割基础模型与3D GS模型,提出了一种可以在毫秒级3D高斯中进行细粒度的3D交互式分割方法SAGA。“3D+语言”场景理解则将3D空间信息与自然语言信息相结合,以实现对场景的描述和解释。Sebastian Koch等人提出了一种无需标记场景图数据即可预测3D场景图的模型Open3DSG。Open3DSG首次依据3D点云进行交互式图表示的场景创建,利用2D视觉-语言模型的知识,通过3D图神经网络预测开放词汇的3D场景图。
4.3 同时定位与建图(SLAM)
VSLAM(Visual SLAM)依靠视觉信息进行姿态估计和地图生成,具有成本低廉、信息丰富和集成便捷等突出优点,是SLAM研究中的重点研究方向之一。Chi Yan等人提出了第一个在SLAM领域中使用3D GS表示的模型GS-SLAM。几乎在同一时间,Nikhil Keetha等人提出了基于3D GS的稠密RGB-D SLAM解决方案SplaTAM。Hidenobu Matsuki等人提出了首个完全基于3D GS的单目SLAM模型Gaussian Splatting SLAM,利用高斯体为唯一的3D 表示,以3 FPS速度首次实现了基于3D GS的实时增量式重建。同样地,Gaussian-SLAM、Photo-SLAM、NEDS-SLAM等其他工作进一步推动了3D GS-based SLAM的发展。
5. 3D GS研究前沿
5.1 结构优化
结构优化是任何算法提高性能和效率的关键途径。虽然3D GS技术能够有效地分离地面点与非地面点,但在面对遮挡、不同光照条件、快速移动物体等挑战时,其准确性和鲁棒性都会受到影响。此外,为了满足实时性的要求,3D GS技术需要进一步减少对计算资源的依赖,提高处理速度。3D GS的结构优化可以通过高斯体管理的优化、主体架构的精简、伪影现象的消除等方法来提升3D GS技术的性能,使其更加精准、高效和可靠,从而更好地适应各种复杂的现实驾驶场景。Hanlin Chen等人提出的NeuSG模型中,通过增加尺度正则化来引导高斯体的中心接近曲面,同时使用神经隐式模型来完善高斯体的点云,最终生成了具有复杂细节的完整重建曲面。主体架构的精简是指对3D GS的3D Gaussians表示模块,属性优化模块和实时渲染模块三大模块的系统架构进行优化和简化。Liu, Yan等人针对移动设备上三维重建的实时渲染问题,采用双溅射架构降低计算成本,通过减少对低贡献点的处理减少冗余数据的生成,引入线程饱和溢出操作加快整体收敛速度,并使用体素化点云进一步降低了渲染和训练开销。最终对于大规模场景数据集,改进方法在保证渲染质量的同时可以平均减少37.08%的模型空间占用。3D GS在新视角合成过程中,可能存在相机视图与训练视图之间存在多视图不一致的现象,即为伪影现象。Zehao Yu等人认为这种现象主要是使用了2D膨胀滤波器以及缺乏3D频率约束造成的。他们提出的Mip-Splatting模型引入了一个3D平滑滤波器,并用模拟2D盒式滤波器的2D Mip滤波器代替2D2D膨胀滤波器。
5.2 4D场景重建
基于3D GS在静态场景重构和新视角合成的成功与潜力,研究人员希望将3D GS进一步扩展应用到动态场景中,以实现高级别自动驾驶的实时性要求。4D场景重建技术不仅需要车载系统高质量重建3D空间结构,还需要考虑时间维度上的变化,特别是捕捉复杂动态的刚性运动对象。Lingzhe Zhao等人[157]将3D GS引入运动模糊图像的处理,提出了一种名为BAD-Gaussians的模型。BAD-Gaussians引入了专为运动模糊图像设计的光度束调整公式,首次在3D GS拼接框架内实现了运动模糊图像的实时渲染性能。4D场景重建技术要求模型对运动过程中光线变换具有较强的追踪能力,Jian Gao等人[159]开发一个基于3D高斯表示的综合渲染流水线Relightable 3D Gaussian,可以支持重照、编辑和射线追踪的重建三维点云,可以达到实时渲染水平。同时,已经有部分研究人员着手直接建立4D GS模型。虽然具体的研究方法不同,但其核心思路就是引入同一尺度来协调好3D GS与时间戳之间的动态关系。Guanjun Wu等人使用紧凑表示和高效变形场来建模高斯体的运动和形状变化,随后将高斯体喷溅到时间戳图像上,最终建立了同一的4D GS模型。
5.3 车辆导航
导航技术可以为车辆提供必要的位置信息和行驶路线,是实现高级别自动驾驶的关键性基础性服务之一。基于3D GS在自动驾驶的场景重建领域表现出的优异性能,将3D GS进一步扩展到自动驾驶导航领域的研究中,可以有效打破现有导航方法的质量和效率瓶颈,实现自动驾驶导航精度和可靠性的跨越发展。当车载系统可以对世界环境进行逼真的物理模拟时,意味着车辆导航行驶中将具备模拟和预测周围环境变化的能力,从而能够更加智能地感知、规划和决策。Tianyi Xie等人将基于物理的牛顿动力学与3D GS无缝集成,提出了一种可以有效进行物理模拟的新型模型PhysGaussian。在车辆导航过程中,如何将多模态融合数据进行精确得到时空对准是重要的研究方向之一。Quentin Herau等人提出了一种基于3D GS的校准方法3DGS-Calib,与现有的隐式神经方法相比校准速度更快、校准精度更高,可以高效完成车载多模态的时空校准任务。探索一种适普通用、简洁高效的目标导航算法框架是目前自动驾驶车辆导航领域研究人员的共同目标之一。Xiaohan Lei等人提出了一种基于3D GS的实例图像目标导航模型GaussNav,将原先的实例图像目标导航任务转化为相对容易处理的点目标导航任务,利用子高斯划分、语义高斯构建和高斯导航三个主要阶段有效定位目标物体,最终性能实现了显著提升。
6. 结论
本文对面向自动驾驶的基于3D GS的三维场景重建技术研究进行了全面综述,叙述了3D GS的基本情况和在自动驾驶领域的应用情况,内容涵盖了目前的最新研究成果。本文首先对3D GS的研究背景做出全面介绍。随后,本文以3D GS核心公式的数学机理探究为主体,讨论了3D GS高性能的原因。然后,本文针对3D GS在自动驾驶领域的新视角合成、场景理解和SLAM三个主要应用方向展开论述,强调其对自动驾驶领域带来的革命性研究风潮。最后,本文深入探讨了3D GS在该领域面临的问题和研究前沿方向。本文针对性地概述了3D GS作为新兴三维场景重建技术的基本原理、发展情况和在自动驾驶领域的应用情况,旨在为研究人员快速理解与熟悉3D GS提供可靠渠道,为相关科研工作提供更加广阔的视野和思路。
...
#自动驾驶相关成果POSTER~
新.加.坡国.立大学等团队的工作:DOGS: Distributed-Oriented Gaussian Splatting for Large-Scale 3D Reconstruction Via Gaussian Consensus
- 论文链接:https://arxiv.org/abs/2405.13943
南.洋.理.工大学等团队的工作:Reasoning Multi-Agent Behavioral Topology for Interactive Autonomous Driving
- 论文链接:https://arxiv.org/abs/2409.18031
清.华AIR等团队的工作:Learning Cooperative Trajectory Representations for Motion Forecasting
- 论文链接:https://arxiv.org/abs/2311.00371
密.歇根大.学安娜堡分校等团队的工作:Is Your LiDAR Placement Optimized for 3D Scene Understanding?
- 论文链接:https://arxiv.org/abs/2403.17009
加.利.福尼亚.大学等团队的工作:SimGen: Simulator-conditioned Driving Scene Generation
- 论文链接:https://arxiv.org/abs/2406.09386
北.理工等.团队的工作:VLMimic: Vision Language Models are Visual Imitation Learner for Fine-grained Actions
- 论文链接:https://arxiv.org/abs/2410.20927
香.港科.技大学和OpenDriveLab等团队的工作:Vista: A Generalizable Driving World Model with High Fidelity and Versatile Controllability
- 论文链接:https://arxiv.org/abs/2405.17398
港.中.文&商.汤等团队的工作:Visual CoT: Advancing Multi-Modal Language Models with a Comprehensive Dataset and Benchmark for Chain-of-Thought Reasoning
- 论文链接:https://arxiv.org/abs/2403.16999
...
#Q-wen2vl/Internvl2.5
动态分辨率输入方案解读
每一个网络都有下采样倍数,那么输入的图像尺寸按理说应该是他的整数倍,能保证刚好被整除。以qwen2vl(vision backbone 下采样 28 倍)为例,动态分辨率核心要考虑三个点
- 图像在resize的时候,既需要考虑图像尺寸是 28 的整数倍
- 也需要考虑尽可能的保证图像resize不失真,也就是保持宽高比。比如512x512的图像,如果resize 到了128x2048,那么图像就会严重失真。
- 其次就是训练的泛化性,推理的时候输入更小/大的图像(尤其视频帧),模型能不能外推。
一个冷知识:mac上显示和实际图像大小可能不一致,猜测这是因为mac显示的时候也做了动态分辨率的resize,保证显示效果。
实际测试发现,mac 上看详情,图像尺寸 1224x926,pil 读入的size是1232x924,size不一致。image save到本地后再看尺寸还是1224x926。
qwen2vl动态分辨率逻辑
qwen 对图像有三层处理逻辑:
# 第一步 resize
if do_resize:resized_height, resized_width = smart_resize(height,width,factor=self.patch_size * self.merge_size,min_pixels=self.min_pixels,max_pixels=self.max_pixels,)image = resize(image, size=(resized_height, resized_width), resample=resample, input_data_format=input_data_format)# 第二步 rescale
if do_rescale:image = self.rescale(image, scale=rescale_factor, input_data_format=input_data_format)# 第三步 normalize
if do_normalize:image = self.normalize(image=image, mean=image_mean, std=image_std, input_data_format=input_data_format)# 第四步 堆叠...
因为qwen2vl vit的后面有一个MLP做的pooling(x2),加上vit本身的降采样(x14),总共图像在 宽、高上会降采样2x14=28倍。
第一步 smart resize
smart resize 分为两步:
1、算宽高 28的整数倍最接近的数值
h_bar = round(height / factor) * factor
w_bar = round(width / factor) * factor
2、统一放缩。这里有两个关键的参数min_pixels和max_pixels。这两个关键参数用来计量总的像素数,pixels = hxw。如果超过了max_pixels,那么就会统一resize到 min_pixels 和 max_pixels之间。
if h_bar * w_bar > max_pixels:beta = math.sqrt((height * width) / max_pixels)h_bar = math.floor(height / beta / factor) * factorw_bar = math.floor(width / beta / factor) * factor
第二步 rescale
这一步有一个关键的参数,rescale_factor。qwen2vl 默认取 0.00392156862745098(其实就是1/255),得到的结果就是 rescale_factor 逐元素相乘 image。
image = self.rescale(image, scale=rescale_factor, input_data_format=input_data_format)
第三步 normalize
很传统的按照mean,std归一化。
第四步 堆叠 凑时间步
因为qwen的vit最开始的embed方式是一个2x3x3的conv,所以需要把单图copy成2份,比如对于(1, 3, 924, 1232) 的图像就变成了(2, 3, 924, 1232)。
patches = np.tile(patches, (self.temporal_patch_size, 1, 1, 1))
训练泛化性讨论
根据qwen2vl提供的7B叙述,min_pixel是3136,max_pixel是12845056,如何h和w一样大的话,大概可以兼容从 56* 56 到 3584x3584的图像输入。但是对于video的每帧,考虑到多帧情况,最大是16384。并且由于scale到了min_pixels 和 max_pixels之间,所以泛化性不是问题。实际训练中也发现了,调整小max_pixel,对性能影响不大(不过这个也看啥任务)。
internvl2动态分辨率逻辑
总的来说,internvl的逻辑更加复杂一些。以最新的internvl2.5来看,internvl的处理逻辑基本没有变化。相比于qwen的动态分辨率,internvl2的逻辑更加高清一些,所以名字起的也很好,叫dynamic high resolution。

代码如下,最重要的就是dynamic_preprocess这个函数。
def load_image(image_file, input_size=448, max_num=12):image = Image.open(image_file).convert('RGB')# 第一步 transformtransform = build_transform(input_size=input_size)# 第二步 动态分辨率images = dynamic_preprocess(image, image_size=input_size, use_thumbnail=True, max_num=max_num)pixel_values = [transform(image) for image in images]# 第三步 堆叠pixel_values = torch.stack(pixel_values)return pixel_values
第一步 transform
常规操作,直接绕过
IMAGENET_MEAN = (0.485, 0.456, 0.406)
IMAGENET_STD = (0.229, 0.224, 0.225)def build_transform(input_size):MEAN, STD = IMAGENET_MEAN, IMAGENET_STDtransform = T.Compose([T.Lambda(lambda img: img.convert('RGB') if img.mode != 'RGB' else img),T.Resize((input_size, input_size), interpolatinotallow=InterpolationMode.BICUBIC),T.ToTensor(),T.Normalize(mean=MEAN, std=STD)])return transform
第二步 dynamic_preprocess
dynamic_preprocess 的默认参数如下,image_size 448是因为internvl需要把图像拆分成patch,训练/测试都是448,use_thumbnail 是指用一个缩略的头图保持整体的全局信息,max_num表示一个patch的最大数目。
dynamic_preprocess(image, image_size=448, use_thumbnail=True, max_num=12)
同样是从宽高比下手
aspect_ratio = orig_width / orig_height
他会根据max_num 拆解成35组不同的宽高比,最极限的就是 1:max_num。
[(1, 1), (1, 2), (2, 1), (3, 1), (1, 3), (2, 2), (4, 1), (1, 4), (5, 1), (1, 5), (1, 6), (6, 1), (3, 2), (2, 3), (7, 1), (1, 7), (4, 2), (2, 4), (1, 8), (8, 1), (1, 9), (3, 3), (9, 1), (2, 5), (5, 2), (10, 1), (1, 10), (11, 1), (1, 11), (12, 1), (3, 4), (4, 3), (1, 12), (6, 2), (2, 6)]
然后会通过逻辑代码的对比,找到一个失真最小的宽高比
target_aspect_ratio = find_closest_aspect_ratio(aspect_ratio, target_ratios, orig_width, orig_height, image_size)
由于base_size = 448,得到 image最接近的宽高比之后,需要相乘变成最后的图像大小。
target_width = image_size * target_aspect_ratio[0]
target_height = image_size * target_aspect_ratio[1]
blocks = target_aspect_ratio[0] * target_aspect_ratio[1]
比如对于我们输入的图像尺寸是(w, h) = (1224, 926),最合适的宽高比是 (4, 3)。
- target_width:1792 = 448 * 4
- target_height:1344 = 448 * 3
接着就到了crop patch了。还是上面的例子 ,internvl会得到没有overlap的crop成 448x448的基础块。当然最后还有一个头图是直接把图像resize到448。
# 第0个patch (0, 0, 448, 448)
# 第1个patch (448, 0, 896, 448)
# 第2个patch (896, 0, 1344, 448)
# 第3个patch (1344, 0, 1792, 448)
# 第4个patch (0, 448, 448, 896)
# 第5个patch (448, 448, 896, 896)
# 第6个patch (896, 448, 1344, 896)
# 第7个patch (1344, 448, 1792, 896)
# 第8个patch (0, 896, 448, 1344)
# 第9个patch (448, 896, 896, 1344)
# 第10个patch (896, 896, 1344, 1344)
# 第11个patch (1344, 896, 1792, 1344)
第三步 堆叠
还是上面这个case,就会得到 pixel_value,尺寸是 。
训练泛化性讨论
不同于qwen 的 整张图 resize,internvl 的crop patch输入是一种sliding window的方式。之前做分割的时候,或者low-level 任务,很多都是sliding window 然后merge。光通过建模方式也无法说qwen的好,还是internvl2.5的动态分辨率效果更好。我的感觉是视觉encoder架构出发,比如vit g的感受野已经很大了,无论哪种方式网络都能看全图像了,不论是patch化还是整张图,所以区分度不是很大,反而qwen2vl的实现更加简单一些。
token 数横向对比
除此之外,我们可以讨论下qwen2vl和internvl2.5对于相同图像的token花费,判断这种image tokenizer的性价比。还是 (w, h) = (1224, 926) 这张图像拿来讨论吧。
qwen2vl
图像的输入是 (2, 3, 924, 1232) ,qwen2vl需要 reshape成 如下格式喂给视觉编码器。reshape 过程太长,忽略。图像最后reshap的尺寸是 (5808, 1176) 。
grid_t * grid_h * grid_w, \
channel * self.temporal_patch_size * self.patch_size * self.patch_size
qwen2vl vision encoder最后一个block的结构是
PatchMerger((ln_q): LayerNorm((1280,), eps=1e-06, elementwise_affine=True)(mlp): Sequential((0): Linear(in_features=5120, out_features=5120, bias=True)(1): GELU(approximate='none')(2): Linear(in_features=5120, out_features=3584, bias=True))
)
最后vision encoder 部分输出1452,3584这样一个 embedding,我们可以简单乘一下 算下这个embedding占用大小 1452x3584=5,203,968
internvl2
internvl 采用了自己研发的 InternVisionModel,最后的特征融合层会把特征转化为 896维度的向量
(mlp1): Sequential((0): LayerNorm((4096,), eps=1e-05, elementwise_affine=True)(1): Linear(in_features=4096, out_features=896, bias=True)(2): GELU(approximate='none')(3): Linear(in_features=896, out_features=896, bias=True)
)
所以,internvl会把13,3,448,448的patch块变成13,256,896的向量,原本448的空间维度首先下采样16倍,变成28,然后28x28的空间维度会一起变成256。所以一张 (w, h) = (1224, 926) 的图像会变成13x256=3328个token,token的维度是896。
当然,vlm还需要 eos 等符号,internvl 是 IMG_START_TOKEN + IMG_CONTEXT_TOKEN * self.num_image_token * num_patches + IMG_END_TOKEN。其他的
这样的标志符我们就忽略计算了,因为这些token很少。
最后的embedding大小是2,981,888。
讨论
对于 (w, h) = (1224, 926) 的图像,按照默认参数,internvl2.5的embedding大小是2,981,888,而qwen2vl是5,203,968,居然更大!这有些反直觉,因为qwen2vl只输入了一张图,但是internvl2.5crop 了12个patch堆叠输入。分析原因发现主要就是qwen vision encoder 输出的channel 维度(3584)太大了,并且internvl系列 patch之间没有overlap,只是多了个一个缩略图的patch额外计算。
但是能不能说qwen2vl就不行呐?qwen2vl可以调整max_pixel,实际在我的case中,我在缩小max_pixel 到1/2,1/4的时候,并没有发现qwen2vl的性能有明显下降,甚至1/2变得更好了一点点...
所以综上,目前来看,条条大路通罗马。对于默认设置,其实internvl2.5需要的image token embedding 更小,但是qwen2vl再调整max_pixel之后也不会造成明显的性能降低,仁者见仁了。peace
...
#RoboMM
集于一体的机器人操作多模态大型模型
在人工智能的快速演进中,xx智能逐渐成为一个重要的研究领域,展现了从单一数据源到迁移学习,再到空间智能与一脑多形的发展历程。这一转变不仅推动了机器人技术的进步,也为实现更复杂的智能系统奠定了基础。
1、单一数据源的限制
最初,机器人学习主要依赖于单一数据源进行训练。这种方法虽然在特定任务上取得了一些成功,但往往缺乏灵活性和适应性。单一数据源的模型在面对新环境或新任务时,表现出明显的局限性。例如,一款专注于执行特定操作的机器人在新的工作场景中可能会遇到困难,难以有效应对变化。
此外,研究模型的结构对成功率也起到了重要作用。以行为克隆(Behavior Cloning, BC)为例,传统的深度学习方法在模仿学习中常常依赖于直接从专家示例中学习,但这种方法在面对复杂环境时,容易受到训练数据的限制,导致模型的泛化能力不足。
随着技术的进步,新的模型结构不断涌现。近年来,随着 Transformer 在文本处理领域的成功,计算机视觉(CV)也逐渐迎来了新的发展。RT1 首次将 Transformer 应用到机器人控制中,展示了其在动态环境中的潜力。同时,扩散(Diffusion)模型在图像生成领域的火热发展为xx智能提供了新的思路。扩散模型现已以 2D 输入的方式应用于机器人控制,后续的 3D Diffusion Actor 和 3D Diffusion Policy 等新型模型结构,通过利用扩散模型的强大生成能力,使得机器人能够在更复杂的三维环境中进行有效的决策和控制。这些模型不仅提升了模仿学习的成功率,还增强了机器人在动态环境中的适应能力。
为了克服这些局限性,研究者们开始探索更为复杂的学习机制,以增强机器人的适应能力和智能水平。
2、迁移学习的崛起
迁移学习的引入为xx智能的发展注入了新的活力。引入大模型思想,或借助大模型,或借助相关数据,迁移学习使得机器人能够更快地适应新任务。这一方法的核心在于利用已有的知识库,提升学习效率和效果。
例如,RT-2 首次证明利用网络多模态数据预训练同样可以提升机器控制能力,随后 Roboflamingo 和 Obouniview 分别借助多模态大模型及自动驾驶相关技术进一步提升效果。GR-2 则通过视频生成技术实现了更高效的学习和适应。
然而,尽管迁移学习在预训练阶段表现出色,但在实际应用中,模型仍然需要在特定机器的单一数据上进行微调(fine-tuning)。这种微调过程使得模型能够更好地适应特定任务和环境,从而提高其在实际应用中的性能。
3、空间智能与一脑多形
随着技术的不断进步,xx智能逐渐向空间智能和一脑多形的方向发展。空间智能强调机器人在复杂的三维环境中进行感知和决策的能力,而一脑多形则意味着同一个智能系统能够灵活地根据不同任务的需求,自主调整其行为和策略。
在这一阶段,许多新型模型和框架应运而生,以应对多样化的应用需求。例如,RT-X、Octo、OpenVLA、CrossFormer 和 HPT 等模型通过多模态大模型的多数据微调,或通过异构设计来提升不同数据之间的兼容性。然而,这些模型仍主要局限于 2D 空间,未能有效解决不同数据和形态之间的异构性问题。xx智能要求机器人能够在复杂的三维环境中执行任务,因此,模型必须具备 3D 的感知和决策能力。同时,保持 3D 空间的一致性对于解决不同数据源和形态之间的不一致性至关重要。
为此,RoboMM论文应运而生:RoboMM,这是一种专为机器人操作设计的多模态大模型,结合了 RoboData,一个综合性的多数据集,旨在整合多种数据源以弥补现有数据集的不足。RoboMM 通过结合相机参数和占用监督,增强了对三维环境的感知能力。此外,借助像 OpenFlamingo这样的先进语言模型,设计了高效的模态隔离掩码,灵活地引入多模态监督。这种设计不仅提高了模型的细粒度感知能力,还使其能够更有效地利用来自互联网的大量数据。
在数据方面,虽然 Open X-Embodiment整合了多个数据集,但缺乏多视角图像、相机参数和深度图等关键信息,使其更适合于 2D 多模态训练。此外,数据空间对齐的缺失导致机器人在不同数据集上的 6D 姿态不一致。而 RoboData 则通过整合多个行业知名数据集,解决了这些问题。补充了深度图和相机参数等缺失的模态。更重要的是,RoboData 通过统一物理空间,对跨机器人和平台的输入输出空间进行了对齐,确保了一致性,促进了来自多样化机器人数据集的集成学习。
RoboData 旨在为行业提供全面且公平的评估系统,而 RoboMM 则是首个能够在多个数据集上进行训练和测试的通用策略。大量实验结果表明,RoboMM 的各个组件显著提升了机器人操作任务的性能,在CALVIN基准测试中,平均序列长度从 1.7 提升至 3.3。此外,RoboMM 还确保了跨体能力,并在多个数据集上达到了最先进的结果!
4、未来展望
xx智能的发展历程表明,从单一数据到迁移学习,再到空间智能的一脑多型,技术的演变不断推动着机器人领域的创新。未来,xx智能有望在智能家居、自动驾驶、工业自动化等多个领域发挥更大的作用。
随着技术的不断进步,xx智能将能够在更复杂的环境中自主决策,真正成为人类的得力助手。通过不断学习和适应,xx智能不仅是技术的代表,更是未来智能生活的重要组成部分。
参考:
RoboMM: https://robouniview.github.io/RoboMM.github.io/
...
#智能驾驶大逃杀~
<一>、端到端自动驾驶
1、基于矢量表征和概率规划的端到端自动驾驶
回放1:https://t.zsxq.com/gLPtj
回放2:https://t.zsxq.com/Ng4Sa
2、CVPR'24端到端自动驾驶挑战赛冠军方案Hydra-MDP
回放1:https://t.zsxq.com/s8BRV
3、自动驾驶预测决策一体方法论和思考,探讨端到端范式及Waymo冠军方案
回放:https://t.zsxq.com/B4mdo
4、端到端自动驾驶评测框架与生态思考—Bench2Drive!
回放:https://t.zsxq.com/EaQlF
5、大模型时代下的端到端自动驾驶该何去何从?
回放1:https://t.zsxq.com/rINgj
回放2:https://t.zsxq.com/rHf3b
回放3:https://t.zsxq.com/WKSH5
6、开环端到端自动驾驶的诸多问题!
回放:https://t.zsxq.com/RKsw0
国内首个可实车量产部署的自动驾驶端到端建模方法—GraphAD
回放:https://t.zsxq.com/nfRpO
<二>、世界模型
1、极佳科技提出的驾驶世界模型DriveDreamer v1&v2
回放1:https://t.zsxq.com/U7xsN
回放2:https://t.zsxq.com/W35ED
回放3:https://t.zsxq.com/z1qki
参考资料:https://t.zsxq.com/o6ISa
2、CarDreamer:首个开源世界模型自动驾驶平台
回放1:https://t.zsxq.com/Dhy7G
回放2:https://t.zsxq.com/S27Te
课件:https://t.zsxq.com/Bf52t
3、通用可泛化的自动驾驶世界模型系列工作GenAD&Vista
回放1:https://t.zsxq.com/LsE0w
回放2:https://t.zsxq.com/FDcG8
参考资料:https://t.zsxq.com/Lh2hA
<三>、大模型
1、自动驾驶中的多模态大语言模型
回放1:https://t.zsxq.com/Zd8eI
回放2:https://t.zsxq.com/wMRGV
2、扩散模型和大模型的算法创新!
回放:https://t.zsxq.com/PPgXZ
3、3D视觉大模型的前置方案探索,包括DSVT+UniTR
回放:https://t.zsxq.com/nvoU7
<四>、xx智能
1、ELM:自动驾驶xx场景理解
回放1:https://t.zsxq.com/3YE8K
回放2:https://t.zsxq.com/jrr42
2、BehaviorGPT:基于自回归Transformer的交通智能体行为仿真
回放:https://t.zsxq.com/4ML4K
3、揭秘:全球最大的双臂机器人扩散大模型
回放:https://t.zsxq.com/ytu0K
4、迈向机器人操作的基础模型
回放:https://t.zsxq.com/LgXtN
5、面向xx智能的在线三维场景感知
回放:https://t.zsxq.com/tiWHc
6、面向xx智能的毫米波成像雷达感知!
回放:https://t.zsxq.com/QjIPy
<五>、重感知轻地图
1、基于连续路径建模的车道拓扑构建算法
回放:https://t.zsxq.com/6kTdr
参考资料:https://t.zsxq.com/TaIlG
2、在线高精地图新思路MapTracker
回放:https://t.zsxq.com/cq6HC
参考资料:https://t.zsxq.com/XaBE5
3、P-MapNet:融合标精地图提升在线Map感知性能
回放:https://t.zsxq.com/VSoIE
课件:https://t.zsxq.com/iWLFP
<六>、自动驾驶仿真
1、自动驾驶闭环生成仿真平台DriveArena
回放:https://t.zsxq.com/2Wddb
参考资料:https://t.zsxq.com/RDC7U
2、首个开源的3DGS闭环仿真器GaussianRPG
回放:https://t.zsxq.com/zz0OF
参考资料:https://t.zsxq.com/0MTFI
3、条件图像生成及其在自动驾驶仿真中的应用
回放:https://t.zsxq.com/uRZ1x
4、仿真器条件下的驾驶场景生成新方案SimGen
回放:https://t.zsxq.com/LIHo2
<七>、自动驾驶感知
1、ScatterFormer,超越所有3D目标检测方案,问鼎Waymo
回放:https://t.zsxq.com/hTXKf
课件:https://t.zsxq.com/1te51
2、基于点集稀疏表征的占据网格预测
回放1:https://t.zsxq.com/fMr1l
回放2:https://t.zsxq.com/NANob
参考资料:https://t.zsxq.com/ZWEed
3、开放世界3D场景理解新思路
回放1:https://t.zsxq.com/alRrX
4、ECCV 2024 鉴智成果大揭秘
回放:https://t.zsxq.com/Fcysv
参考资料;https://t.zsxq.com/3Hm1O
5、OASIS SIM V3 交通流如何为自动驾驶算法提供应对CornerCase的挑战
回放1:https://t.zsxq.com/PULRK
回放2:https://t.zsxq.com/Js8Bw
6、自动驾驶超级鲁棒性感知论坛
回放1:https://t.zsxq.com/gHamc
回放2:https://t.zsxq.com/Qr9U3
回放3:https://t.zsxq.com/cwtsf
回放4:https://t.zsxq.com/X6geV
回放5:https://t.zsxq.com/luxVt
7、智加提出DualBEV:基于双向统一权重的BEV检测
回放1:https://t.zsxq.com/3hoU3
回放2:https://t.zsxq.com/4XDWB
8、IROS&ECCV的动静态感知成果
回放:https://t.zsxq.com/C7dsX
...
#UniGraspTransformer
各种形状和方向的物体都能抓取!UniGraspTransformer不一般
论文标题:UniGraspTransformer: Simplified Policy Distillation for Scalable Dexterous Robotic Grasping
论文链接:https://arxiv.org/pdf/2412.02699
项目链接:https://dexhand.github.io/UniGraspTransformer/
作者单位:微软亚洲研究院 悉尼大学 新加坡国立大学
UniGraspTransformer的出发点
UniGraspTransformer是一种基于Transformer的通用网络,用于灵巧机器人的抓取任务,具有简化训练流程并提升可扩展性与性能的优势。与需要复杂多步骤训练流程的先前方法(如UniDexGrasp++)不同,UniGraspTransformer采用简化的训练过程:首先,通过强化学习为单个物体训练专用策略网络,以生成成功的抓取轨迹;随后,将这些轨迹蒸馏到一个统一的通用网络中。本文的方法使得UniGraspTransformer能够高效扩展,支持多达12个自注意力模块,用于处理数千种具有不同姿态的物体。此外,该模型在理想化输入和现实世界输入中都表现出了良好的泛化能力,适用于基于状态和基于视觉的环境。值得注意的是,UniGraspTransformer可以为各种形状和方向的物体生成更广泛的抓取姿态,从而实现更加多样化的抓取策略。实验结果表明,在多个物体类别上,UniGraspTransformer相比最先进的方法UniDexGrasp++表现出显著的性能提升。在基于视觉的场景中,其抓取成功率分别在以下任务中实现了提升:对于已见物体提高3.5%,对于已见类别的未见物体提高7.7%,对于完全未见的物体提高10.1%。
方法设计
灵巧机器人的抓取任务依然是机器人领域的一大挑战,尤其是在处理形状、尺寸及物理属性多样的物体时更为复杂。灵巧机械手由于其多自由度以及复杂的控制需求,在执行操作任务时面临独特的困难。尽管方法如UniDexGrasp++ 在这一领域取得了显著进展,但当单一网络需要处理大量且多样化的物体时,其性能会显著下降。此外,UniDexGrasp++ 采用了多步骤的训练流程,包括策略学习、基于几何的聚类、课程学习以及策略蒸馏等,这种复杂的训练方式限制了方法的可扩展性并降低了训练效率。
在本研究中,本文简化了通用网络的训练流程,使其能够处理数千种物体,同时提升了性能和泛化能力。本文提出的工作流程清晰简洁:
- 为训练集中每个物体单独训练策略网络:利用强化学习方法,通过精心设计的奖励函数,引导机器人掌握针对特定物体的抓取策略;
- 生成大量成功抓取轨迹:使用这些经过充分训练的策略网络,生成数百万条成功的抓取轨迹;
- 训练通用Transformer网络:基于这些丰富的抓取轨迹集,在监督学习框架下训练一个基于Transformer的通用网络,即UniGraspTransformer,使其能够高效泛化到训练中见过的物体以及全新未见的物体。
本文的架构提供了以下四个主要优势:
- 简洁性:本文直接以离线方式将所有单独的强化学习策略蒸馏到一个通用网络中,无需使用任何额外的技术,例如网络正则化或渐进蒸馏。
- 可扩展性:较大的抓取网络通常能够处理更广泛的物体,并在形状和尺寸的变化中表现出更强的鲁棒性。本文的方法利用离线蒸馏,使得最终网络——UniGraspTransformer——可以设计为更大规模,支持多达12个自注意力模块。与传统的在线蒸馏方法相比,这种方法提供了显著的灵活性和容量,而后者通常依赖于较小的MLP网络以确保收敛,但限制了可扩展性。此外,本文的专用策略网络设计为轻量级,每个网络仅需要处理单个物体,从而在不牺牲性能的前提下确保效率。
- 灵活性:每个专用策略网络在一个受控的、理想化的环境中进行训练,在该环境中,系统的全状态(包括物体表示,如完整的点云;灵巧机械手状态,如手指关节角度;以及它们的交互,如手-物体距离)是完全可观测且高度精确的。本文的架构能够将这种理想环境下的知识蒸馏到更实用的真实世界环境中,即使某些观测可能不完整或不可靠。例如,物体的点云可能存在噪声,或者物体姿态的测量可能不够精确。这些专用策略网络的主要作用是为各种物体生成多样化的成功抓取轨迹。在蒸馏过程中,这些抓取轨迹作为标注数据,使本文能够利用现实环境中的输入(如带噪声的物体点云和估计的物体姿态)训练UniGraspTransformer模型,从而预测出与理想环境中的成功抓取轨迹高度一致的动作序列。
- 多样性:本文的更大规模通用网络结合离线蒸馏策略,不仅能够抓取数千种不同的物体,还展现出为各种方向的物体生成更广泛抓取姿态的能力。这相较于先前的方法(如UniDexGrasp++)有显著提升,后者通常在不同物体间生成重复且单一的抓取姿态。
在本文的实验中,所提出的方法在多个评估环境下相较于现有最先进方法UniDexGrasp++展现了显著的性能提升。具体而言,本文在两种设置下对方法进行了评估:
- 基于状态的设置:在此设置中,物体的观测信息与灵巧机械手的状态由模拟器提供,具有完全的精确性。
- 基于视觉的设置:在此设置中,物体的点云由多视图重建生成。
在多种物体类型上,本文的方法始终优于UniDexGrasp++,包括已见物体、已见类别中的未见物体,以及来自未见类别的完全未见物体,如图1所示。例如,在基于视觉的设置下,本文的方法分别在以下任务中实现了性能提升:对已见物体提高3.5%,对已见类别的未见物体提高7.7%,对完全未见类别的物体提高10.1%。
图1. UniDexGrasp、UniDexGrasp++ 和本文提出的 UniGraspTransformer 在基于状态和基于视觉两种设置下的性能比较。对于每种设置,成功率分别在以下三种任务中进行评估:已见物体、已见类别中的未见物体,以及来自未见类别的完全未见物体。
图2. UniGraspTransformer 概览
(a) 专用策略网络训练:每个单独的强化学习策略网络被训练以抓取特定物体,并适应不同的初始姿态。
(b) 抓取轨迹生成:每个策略网络生成 条成功的抓取轨迹,构成轨迹集合 。
(c) UniGraspTransformer 训练:利用轨迹集合
本文研究了两种设置——基于状态和基于视觉。这两种设置的主要区别体现在物体状态和手-物体距离的输入表示(图中以“*”标注)。S-Encoder 和 V-Encoder 的具体架构请参考图3。
图3. 基于状态的设置中物体点云编码器 S-Encoder 的网络架构示意图
该过程从物体点云中采样 1,024 个点,生成维度为
在推理阶段,仅使用编码器,将物体点云转换为 128 维的物体特征。
表1. 专用策略网络的输入类型
输入被组织为五个组别,每组的具体元素定义详见附录。这些输入类型同样适用于本文的 UniGraspTransformer。
实验结果
图4. 抓取姿态多样性的定量分析
图5. 比较 UniDexGrasp++(上排)和本文提出的 UniGraspTransformer(下排)生成的抓取姿态。每列展示了同一物体在相同初始姿态下的两种不同抓取姿态。
表2. 与现有最先进方法在灵巧机器人抓取任务中的通用模型对比
在基于状态和基于视觉的设置下,通过成功率进行评估。对于已见类别中的未见物体及完全未见类别的物体的评估,反映了模型的泛化能力。标记 † 的结果为 UniDexGrasp++ 中报告的数据。“Obj.” 表示物体,“Cat.” 表示类别。
表3. 不同 值对 UniGraspTransformer 性能的影响分析
针对每个专用策略网络(共 3,200 个),本文生成 条成功的抓取轨迹,并将其蒸馏到 UniGraspTransformer 中。该表分析了随着
表4. UniGraspTransformer 中自注意力模块数量对性能的影响分析
模型由
表5. 不同数量专用策略网络蒸馏到 UniGraspTransformer 的影响分析
表6. 不同输入组件对 UniGraspTransformer 训练的影响
“Prev.”:先前状态;“Obj.”:物体;“Feat.”:特征;“Dist.”:距离;“SR”:成功率。
表7. 使用近似估计(特别是局部物体点云的中心和PCA)对性能的提升
表8. 基于视觉的物体编码器在是否使用蒸馏损失情况下对 UniGraspTransformer 性能的影响
表9. 引入奖励 和两种奖励变体 对专用策略网络性能的影响
总结
本文提出了UniGraspTransformer,一种基于Transformer的通用网络,用于简化灵巧机器人抓取任务的训练流程,同时在抓取策略的可扩展性、灵活性和多样性方面实现显著提升。本文的方法通过专用的强化学习策略网络为单个物体生成抓取轨迹,随后采用高效的离线蒸馏过程,将这些成功的抓取轨迹整合到一个单一的、可扩展的模型中,从而简化了传统复杂的训练管线。UniGraspTransformer 能够处理数千种物体及其多样化的姿态,展现出在基于状态和基于视觉的多种设置中的鲁棒性和适应性。尤其值得注意的是,该模型在已见物体、已见类别的未见物体以及全新类别的未见物体上显著提升了抓取成功率,相较当前最先进方法,在各类评估环境下均实现了大幅性能改进。
....
#DrivingRecon
港科技最新DrivingRecon:可泛化自动驾驶4D重建新SOTA!
从这一两年发表的论文数量可以看出,自动驾驶街景的重建与仿真备受关注,由此构建的自动驾驶仿真器对corner case的生成以及端到端模型的闭环评估/测试都非常重要,本次分享的是一篇关于自动驾驶场景4D重建的工作DrivingRecon。
- 论文链接: https://arxiv.org/abs/2412.09043
- 开源地址: https://github.com/EnVision-Research/DriveRecon
过去有很多使用3DGS或者Diffusion来做自动驾驶街景重建/生成的工作,比较具有代表性的是StreetGaussian,OmniRe这一类借助3D bbox将静态背景和动态物体解耦的框架,后来又出现了使用4D NeRF学习动态信息的方法,虽然取得了不错的效果,但这些方法都有一个共性,就是需要不断的训练来进行重建,即每个场景训练一个模型,非常耗时。因此作者提出了一种可泛化的自动驾驶4D重建模型DrivingRecon。在模型中,作者引入了PD-Block来更好的融合相邻视角的图像特征,消除重叠区域的高斯;也引入了Temporal Cross-attention来增强时序的信息融合,并且解耦动态和静态物体来更好的学习几何和运动特征。实验结果表明,与现有的视图合成方法相比,DrivingRecon 方法显著提高了场景重建质量和新视图合成。此外,作者还探讨了 DrivingRecon 在模型预训练、车辆自适应和场景编辑中的应用。
相关工作回顾
驾驶场景重建
现有的自动驾驶模拟引擎如 CARLA或 AirSim,在创建虚拟环境时需要花费很多时间,而且生成的数据缺乏现实性。Block-NeRF和 Mega-NeRF提出将场景分割成不同的Block用于单独建模。Urban辐射场利用来自 LiDAR 的几何信息增强了 NeRF 训练,而 DNMP利用预先训练的可变形mesh primitive来表示场景。Streetsurf将场景分为近景、远景和天空类别,获得较好的城市街道表面的重建效果。MARS使用单独的网络对背景和车辆进行建模,建立了一个实例感知的仿真框架。随着3DGS的引入,DrivingGaussian引入了复合动态高斯图和增量静态高斯,而 StreetGaussian优化了动态高斯的跟踪姿态(位姿),并引入了四维球谐函数,用于不同时刻的车辆外观建模。Omnire进一步关注驾驶场景中非刚性对象的建模,例如运动的行人。然而,这些重建算法需要耗时的迭代来建立一个新的场景。
大型重建模型
一些工作提出通过训练神经网络来直接学习完整的重建任务,从而大大提高了重建速度。LRM利用大规模多视图数据集来训练基于Transformer的 NeRF 重建模型,训练完的模型具有更好的泛化性,在单次模型前向传递中,从稀疏姿态图像中重建以物体为中心的3D形状质量更高。类似的工作研究了将场景表示改变为高斯溅射,也有一些方法改变模型的架构以支持更高的分辨率,并将方法扩展到3D 场景。L4GM 利用时间交叉注意力融合多帧信息来预测动态物体的高斯表示。然而,对于自动驾驶,还没有人探索融合多视图的特殊方法。简单的模型会预测相邻视图的重复高斯点,显著降低了重建性能。此外,稀疏的图像监督和大量的动态物体进一步让重建的任务变得更复杂。
文章主要贡献如下:
- DrivingRecon是第一个专门为环绕视图驾驶场景设计的前馈4D 重建模型
- 提出了 PD-Block,学习从不同的视角和背景区域去除冗余的高斯点。该模块还学会了对复杂物体的高斯点进行扩张,提高了重建的质量
- 为静态和动态组件设计了渲染策略,允许渲染图像跨时间序列进行有效监督
- 验证了算法在重建、新视图合成和跨场景泛化方面的性能
- 探索了 DrivingRecon 在预训练、车辆适应性和场景编辑任务中的有效性
方法详解
通常,先看一下论文的框架图有益于对整体的理解,DrivingRecon的整体框架如下:
为了得到一种generalizable的模型,那模型必然不能和数据是一一对应的关系,实现这一步的关键就是提取图像数据特征然后再进行后面的步骤,这个思路很常见,类似的还有GaussianFormer等。首先使用一个共享图像编码器对图像提取特征;接下来使用一个深度估计网络预测对应图像的深度,然后结合相机的内外参得到世界坐标系下的点云(x,y,z),并和图像特征拼接得到具有几何信息的特征。对于4D的任务,Temporal Cross Attention的是很常见且有用的模块,用来融合不同时序的特征,DrivingRecon也有使用到,可以看下文的细节;然后再用一个解码器增强特征的分辨率,最后,高斯适配器将解码的特征转换为高斯点(即scale,alpha等)和分割输出。
以上是DrivingRecon的整体思路,下面看一些细节:
3D Position Encoding
这部分主要是为了融合不同视角和不同时间间隔的特征:首先用DepthNet获得uv坐标下的像素深度d_(u,v),方法也很简单,直接使用Tanh激活函数来处理第一个通道的图像特征,然后再将深度投影到世界坐标系:

最后结合图像特征一起输入到PD-Block进行多视角特征融合。为了更好的融合,作者在训练时使用lidar得到的稀疏深度进行约束,即lidar点投影到图像上与之对应的深度算loss,具体计算为:

其中为有效深度的mask。
Temporal Cross Attention
因为视角的稀疏性,精确的街景甚至其他场景的重建是非常困难的。为了获取更多的有用特征,增强场景建模效果,在时间维度或空间维度来融合特征是比较常见的方法。文章中的方法可以简单表示为:

其中x是输入的特征,B表示Batch size, T表示时间维度,V表示视角个数,H,W,C表示特征的高,宽以及通道数。注意,与更为常见的时序交叉注意力不一样的是,这里同时考虑时间空间的信息融合, 从倒数第二维度可以看出。
Gaussian Adapter
由两个卷积blocks构成,输入是时序融合后的特征,输出分割c,深度类别,深度回归修正,RGB颜色rgb,alpha,scale,rotation,UV坐标偏移量[∆u,∆v],optical flow [∆x,∆y,∆z],最后深度的计算方式如下:

这里为啥要预测坐标偏移量?是因为作者使用的方法不是严格的像素对齐的,原因是PD -Block通过将资源从简单场景重新分配到更复杂的物体上,有效的管理空间的计算冗余。此时世界坐标的计算变为:

这里输出的光流可以用来获得每一个世界坐标下的点在下一帧的位置,即:

Prune and Dilate Block(PD-Block)
如上图所示,自动驾驶车辆上的相邻相机视野通常会存在重叠部分,就会导致不同视角中的同一个物体会出现重复gaussian预测,叠加后生成的效果会变差,另外在场景表示中,像天空这些区域不需要太多的gaussian来表达,而对于物体边缘处(高频处)则需要更多的gaussian来表示,因此作者提出了一个PD-Block的模块,它可以对复杂实例的高斯点进行扩张,并对相似背景或不同视图的高斯点进行修剪,步骤如下:
(1)将相邻视角的特征图以range view的形式拼接起来,那重叠部分的特征在位置上是比较靠近的,易于融合
(2)然后为了减少内存的使用将range view特征分割成多个区域
(3)在空间中均匀地选择K个中心,中心特征通过平均其Z个最近点来计算
(4)计算区域特征和中心点之间的余弦相似矩阵S
(5)根据阈值生成生成mask
(6)基于mask,可以对长距离特征和局部特征进行聚合,即 。其中,长距离特征e_lt通过大核卷积提取,局部特征e_lc为原始range view特征。
动静解耦
自动驾驶场景的视野非常稀疏,这意味着只有有限数量的摄像机同时捕捉到相同的场景。因此,跨时间视图监督是必不可少的。对于动态目标,该算法不仅可以在 t 时刻预测动态目标的高斯分布,而且可以预测每个高斯分布点的Flow(类似光流)。因此,实验中也会使用下一帧来监督预测的高斯点,即 。对于静态对象,可以使用相邻时间戳的相机参数来渲染场景,并且只监督静态部分,即 。大多数方法只使用静态的物体场景来更好地构建3D高斯,而忽略了对动态物体多视图的监督。注意,当监督跨时间序列的渲染时,阈值小于 α 的渲染图像是不进行监督的,因为这些像素通常不会在整个时间序列中重叠。此外,同样使用 L1重建约束 ,让渲染的图像与GT更接近。
分割
主要有两个作用:一是为了获得动态物体的mask(例如车辆和行人),静态物体的mask,以及天空的mask,另外引入语义监督有利网络对整个场景的理解(建模),作者用的模型是DeepLabv3plus。作者还将3D bbox投影到2D图像上,以此做为prompt通过SAM获得更精确的mask,这里使用一个简单的“或”逻辑合并两种处理的方式,确保所有动态的物体都获得对应的mask,相当于双重保障了。
损失函数
训练中的损失函数为:

- :约束渲染图像
- :约束深度的类别
- :约束修正后的深度
- :约束深度
- :约束动态对象
- :约束静态对象
- :约束分割结果
和 使用分割的标签,这部分不用于预训练实验。其他损失是无监督的,这也使得DrivingRecon 实现良好的性能。这些规则和约束使得 DrivingRecon 能够有效地整合几何和运动信息,提高其跨时间和跨视角的场景重建能力。
实验分析
与现有方法的渲染结果对比:
与现有方法的指标对比:
从表1和表2可以看出,不管是动态还是静态对象,指标提升的还是很大的。
重建结果可视化:
泛化性测试结果如下:
消融实验:
最后,文章最后还讨论几个潜在的应用:
车辆适应性:新车型的引入可能导致摄像机参数的变化,如摄像机类型(内参)和摄像机位置(外参)。所提出的四维重建模型能够用不同的摄像机参数来渲染图像,以减小这些参数的潜在过拟合。实验中作者在 Waymo 上使用随机的内参渲染图像,并以随机的方式渲染新的视角图像作为一种数据增强的形式。渲染的图像也会使用图像检测中的数据增强方式,包括调整大小和裁剪,然后结合原始数据训练BEVDepth,结果如下:
预训练模型:四维重建网络能够理解场景的几何信息、动态物体的运动轨迹和语义信息。这些能力反映在图像编码中,其中这些编码器的权重是共享的。为了利用这些能力进行预训练,作者用 ResNet-50替换了编码器。然后重新训练DrivingRecon,没有使用任何语义注释,属于完全无监督的预训练。随后,用预先训练好的模型替换了 UniAD 的编码器,并在 nuScenes 数据集上对其进行了微调。与 ViDAR 相比,使用新的预训练模型取得了更好的性能。
场景编辑:四维场景重建模型能够获得一个场景的全面的四维几何信息,这允许删除,插入和控制场景中的对象。文中给出了一个例子,在场景中的固定位置添加了带有人脸的广告牌,表示汽车停下的corner case:
结论
文章中提出了一种新的4D重建模型DrivingRecon,输入全景视频(环视)即可快速重建出4D自动驾驶场景。其中关键的创新点是提出了PD-Block,可以删除相邻视角的冗余高斯点,并允许复杂边缘周围进行点扩张,增强了动态和静态物体的重建。另外,文章中也引入了一种使用光流预测的动静态渲染方法,可以更好的监督跨时间序列的动态对象。实验表明,与现有方法对比,DrivingRecon在场景重建和新视角生成方面具有更优越的性能。并通过实验证明了可以用于模型的预训练,车辆自适应,场景编辑等任务。
....
#Selective Kalman Filter
怼上所有传感器不一定好!Selective Kalman Filter:优雅的融合如何处理个别传感器的退化
为了解决复杂环境中的挑战并提高定位的鲁棒性和环境感知能力,越来越多的研究集中于融合多种传感器的SLAM系统。这些系统通常集成了多种传感器,如LiDAR、视觉、RGB-D相机和IMU,代表性的系统包括R3LIVE、FAST-LIVO、LVIO-Fusion、RIVER等。
现有关于卡尔曼滤波器的研究主要集中在多传感器信息融合方面,这些研究提出了使用扩展卡尔曼滤波器(EKF)和自适应模糊逻辑系统来融合里程计和声纳信号的方案,其核心思想是自适应调整增益。然而,这些工作主要集中于如何利用和融合来自多传感器的信息,而未考虑是否有必要融合或是否需要融合所有可用数据。在非退化条件下,当高精度数据与中等精度数据融合时,精度的提升往往是微小的,甚至可能是负面的,同时还会增加额外的计算开销。我们将这种对所有测量数据不加区分进行融合的方法称为“全包含”(“all-in”)方法。这种方法面临以下两个主要问题:
- 首先,“全包含”方法处理的信息量比单传感器SLAM大得多,通常导致计算负担显著增加,影响实时性能。
- 其次,尽管该方法结合了各种传感器的优势,但也引入了其劣势。例如,视觉SLAM易受运动模糊、剧烈光照变化和动态物体的影响,从而产生较大的误差,甚至导致系统失效。
因此,通过探讨何时以及如何选择性地融合多传感器信息,以LiDAR与视觉融合SLAM系统为例,解决上述两个问题。在多传感器SLAM融合中,单一传感器易出现定位退化,而整合不同类型的传感器可以提供额外的约束,防止SLAM退化。
- 对于“何时”融合,我们的解决方案是仅在更为精确和鲁棒的LiDAR SLAM子系统表现出退化时,才引入视觉信息,否则仅依赖LiDAR子系统进行位姿估计。
- 关于“如何”融合,如果直接融合所有信息,视觉子系统的较低精度可能会降低LiDAR系统的整体精度。因此,我们的解决方案是仅在LiDAR子系统退化的方向上融合视觉信息。
- 解决“何时”问题需要准确判断LiDAR SLAM是否发生退化。现有方法未考虑点面约束中旋转与平移的高耦合性,导致退化方向的评估不准确。
Selective Kalman Filter(选择性卡尔曼滤波器)[1]的解决方案通过准确判断LiDAR SLAM退化的方向,仅在这些退化方向上引入视觉观测数据。相比之下,LION的融合方法在LiDAR退化时停止使用LiDAR里程计,转而依赖其他里程计信息。这种方法较为粗糙,因为在非退化方向上依赖较低精度和鲁棒性的传感器信息可能会降低系统性能。Zhang、Hinduja和X-ICP的方法主张仅在退化方向融合其他传感器信息,这被我们认为是优化的策略。然而,这些优化方法基于优化框架,未能在滤波框架中精确识别退化的具体方向,可能导致实际退化方向未被充分约束。

具体贡献包括:
- 提出了一种新型的多传感器融合方法——选择性卡尔曼滤波器,设计用于解决数据“何时”与“如何”选择性融合的问题。这种方法仅在LiDAR数据退化时引入必要的视觉信息,大幅提升实时性能,同时确保鲁棒性和精度。
- 提出了一种创新高效的LiDAR里程计退化检测方法,可同时确定退化方向。该方法充分考虑了旋转与平移约束之间的耦合关系。
- 通过实验验证了所提退化检测方法的精确性以及选择性卡尔曼滤波器的效率。
- 开源了代码以促进社区参与和广泛应用。
系统概述
首先介绍LiDAR-惯性-视觉SLAM的“全包含”方法,该方法由FAST-LIVO和R3LIVE等方法所代表。在没有视觉或LiDAR测量数据的情况下,类似于FAST-LIO2,系统利用IMU的加速度和角速度进行状态传播,作为卡尔曼滤波的预测步骤。当LiDAR或视觉测量数据到达时,系统在卡尔曼滤波中执行数据融合更新。

据我们所知,在没有退化的情况下,与视觉-惯性SLAM(VIO)相比,LiDAR-惯性里程计(LIO)系统通常表现出更高的精度和更强的鲁棒性。在将选择性卡尔曼滤波器集成到LiDAR-惯性-视觉里程计(LIVO)系统中时,我们优先将LIO子系统作为核心,将VIO子系统作为辅助。系统的工作流程如图2所示。与“全包含”方法不同,我们的方法基于LiDAR测量进行退化检测与分析:
- 如果LIO子系统未发生退化,我们选择不融合视觉测量数据。这种方法有助于避免因视觉问题(如运动模糊、过度曝光和错误特征匹配)引入的误差。此外,它还减少了计算负担,从而提高了实时性能。
- 如果LIO子系统发生退化,为了尽量减少引入的视觉信息并防止状态估计恶化,我们分析LiDAR的退化方向,然后选择性地融合与此退化方向相关的视觉数据,并舍弃与非退化方向相关的数据。这有助于防止LiDAR的非退化维度的精度下降。
我们将这种选择性更新信息融合的方法称为“选择性卡尔曼滤波器”(Selective Kalman Filter)。
LiDAR SLAM中的退化检测
首先,我们通过加权线性最小二乘法对LiDAR测量方程(2)进行变换,得到以下形式:
其中,为状态的估计值。为了简化表示,我们做出以下定义:
因此,上述方程可以简化为:。
由于实际场景中的噪声影响,矩阵通常为满秩矩阵,因此是一个6×6的对称正定矩阵。

Hinduja方法通过比较的最小特征值与预设阈值来检测退化。然而需要注意的是,由于的前三维表示旋转,后三维表示平移,其特征值是旋转和平移的耦合值,缺乏明确的物理意义,且单位同时与旋转和平移相关。同一特征值分解中的特征值单位不同,因此难以设定合理的退化检测阈值。此外,与这些特征值对应的特征向量也无法代表实际方向,这使得该方法在实际部署中往往不切实际。
为了解决这一问题,LION提出通过分析的对角元素来确定退化及其方向。首先,将矩阵表示为分块矩阵的形式:
LION分别对和进行特征值分解:
其中,和为对角矩阵,包含旋转和平移部分的特征值。然后通过设定两个阈值,评估旋转和平移是否退化。这种方法有效解决了Hinduja方法中阈值缺乏物理意义的问题,但其忽略了耦合项和,从而忽视了旋转和平移约束之间的相互影响。这种忽略导致在大多数情况下,退化程度及方向的估计不准确。
例如,如图3(a)所示,根据LION的观点,y方向的估计仅依赖于点A在y方向的点面残差雅可比,导致y方向估计较差(如所示)。但实际上,点B的点面残差可以改善旋转的估计,从而增强y方向的估计(如所示)。可以推断,这种考虑了平移和旋转耦合的后者方法,对于不确定的估计具有更高的准确性。
为了解决上述问题,我们提出了一种基于协方差信息的新型、简单且具有物理意义的退化检测方法。我们首先对矩阵求逆,得到状态的协方差矩阵:
需要注意的是:
从以上公式可以看出,我们的方法与LION使用局部Hessian矩阵的方法不同。我们的方法考虑了旋转与平移之间的耦合关系。此外,该方法具有实际的物理意义:协方差矩阵的对角块表示状态的方差,而非对角块表示不同状态之间的相关性。方差可以作为退化程度的直观量度,例如,高方差表示该方向上的估计存在较大的不确定性,从而表明退化。
我们对和进行特征值分解:
其中,和的特征值分别具有物理单位,旋转部分为,平移部分为。对应的特征向量代表退化方向,此时,和分别为旋转矩阵,能够将原始坐标系旋转到这些特征方向。
最后,我们基于实际需求和经验设置两个方差阈值和。如果,则表示发生旋转退化,对应的特征向量表示退化方向;平移部分同理。
综上所述,本节提出了一种具有实际物理意义并考虑耦合约束的退化检测方法,理论上能够更准确地判断退化程度及方向。
视觉测量的选择
我们首先对视觉测量方程 (3) 应用加权线性最小二乘法,得到以下形式:
其中, 为状态 的估计值。为了简化表示,我们定义如下:。
因此,方程可以简化为:。
需要注意的是,根据实际场景中的噪声,矩阵 总是可逆的。因此,可以得到估计状态 为:。
利用协方差矩阵的特征向量矩阵 和 ,我们定义一个新的旋转矩阵 :。
该旋转矩阵能够将 的坐标系旋转至旋转和平移的主分量方向上:。
在已知 LiDAR 子系统退化维度的情况下,我们定义一个选择矩阵 ,以选择视觉测量方程中与退化方向相关的信息,从而滤除无关数据:。
例如,如果 LiDAR 子系统在一个平移方向和一个旋转方向上发生退化,例如 和 ,我们可以将选择矩阵 设置为:
在该矩阵中,设置为1的对角元素对应退化状态的维度,而设置为0的对角元素对应非退化维度。我们将状态恢复到原始坐标系,并同时恢复原始测量方程:
为了保持信息矩阵的对称性,我们进一步处理,得到:
可以简化为:,
其中:
此时,我们已完成对视觉数据的选择,仅保留与 LiDAR 退化方向相关的信息。
选择性卡尔曼滤波器
首先,我们描述传统卡尔曼滤波器的形式。对于视觉子系统,假设已存在先验估计,记为 和协方差 。按照FAST-LIO的方法,卡尔曼增益 的计算公式为:,
得到更新方程为:。
将卡尔曼增益 代入更新方程并进行简化,可以得到:
根据式 (17),可以进一步简化为:
其中, 是后验估计状态。
对于后验协方差 ,其公式为:。
将 的表达式代入并简化,可以得到:。
通过观察视觉信息的测量方程在选择前(式 (18))和选择后(式 (26))的变化,我们只需将 替换为 ,将 替换为 ,即可得到新的选择性卡尔曼滤波器公式:。
备注:在本文中,所有进行特征值分解的矩阵均为实对称矩阵,因此其特征值分解和奇异值分解的结果是等价的。我们的主要目标是确定这些矩阵的主方向,这本质上与奇异值相关的物理含义一致。为了简化表达并减少变量的数量,本文统一采用特征值分解描述整个过程。
LiDAR-惯性-视觉里程计
基于出色的LIVO框架R3LIVE,我们集成了选择性卡尔曼滤波器,构建了SKF-Fusion,其系统框架如图4所示。原始R3LIVE框架包含两个并行子系统:LiDAR-惯性里程计(LIO)和视觉-惯性里程计(VIO)。本文未重复描述R3LIVE中的相同内容。在此基础上,我们对LIO子系统进行退化检测。如果未检测到退化,仅将视觉信息用于上色,同时保存地图的颜色信息,以便在退化状态下使用。如果检测到退化,则在帧与帧之间以及帧与地图之间进行序列更新,专注于退化状态的相关成分。在随后的实验中,我们使用R3LIVE数据集对SKF-Fusion进行了评估。

系统工作流程:
未检测到退化时:
- 系统仅使用LiDAR子系统进行状态估计和更新。
- 视觉信息仅用于地图的颜色渲染,无需进行视觉状态更新。
- 这种方式避免了视觉子系统带来的计算开销,并减少了因视觉特性(如运动模糊、过度曝光等)引起的误差。
- 检测到退化时:
- 系统分析LiDAR的退化方向。
- 针对退化方向,选择性地融合视觉观测数据,仅对退化状态进行更新。
- 非退化方向的数据被舍弃,从而防止引入不必要的误差。
通过引入选择性卡尔曼滤波器,SKF-Fusion实现了高效的退化处理,显著提升了系统的鲁棒性和实时性能。
实验效果








总结一下
基于传统的“全包含”融合SLAM(涉及LiDAR、视觉和IMU),本研究引入了一种基于协方差信息的创新退化检测模块,以及用于退化状态选择性更新的选择性卡尔曼滤波器。与现有退化检测方法相比,实验结果表明,该方法显著提升了退化检测的准确性,从而提高了定位的精度和鲁棒性。此外,与“全包含”方法相比,方法显著提升了视觉子系统的实时性能。需要注意的是,当前的阈值选择未能适应不同体素分辨率下的LIO,这为未来的研究提供了方向。
....
#某主机厂智驾自研的波澜
今年这家主机厂在智驾业务上的一系列变化,都源自于大BOSS的战略构想。眼看新能源汽车的上半场“电动化”结束,进入下半场的“智能化”,所以大BOSS就想在下半场的“智能化”上占领用户心智。
在大BOOS的战略设想中,智驾会存在技术引领者和技术普及者两种角色。华为是技术引领者的角色,以这家主机厂现阶段的技术能力来说肯定比不了华为。而且,以这家主机厂的销量规模和用户层次来说,现阶段技术普及者的战略定位比较合适。
所以,这家主机厂准备在智驾普及上发动大规模的攻势。
一是尽可能的把智驾做到标配,用标配打响智驾普及的第一枪。以这家主机厂的体量来说足以引起声势浩大的市场反响,这一枪要打好了足以站稳智驾普及者的地位。二是除了部分高阶智驾继续采用头部供应商的方案之外,其他的全部切自研。
压力就来到了自研团队这边。在这家主机厂高层眼里,自研上的钱投入了很多、时间也不短了,到了该拉出来溜溜的时候了。
这家主机厂在重大技术攻坚上喜欢赛马机制,投入了A和B两个自研团队。今年下半年对赛马进行考核,要两个自研团队交考卷,其中一个考核点是谁能先把自研的方案量产上车。
A团队的进度要快于B团队,再加上A团队的负责人是老人,导致B团队的业务和人员被A团队给“吞掉”。B团队的负责人也被调岗,不过最终还是离职走人。
在这一波的赛马PK过程中,A团队的负责人成了大赢家。原本在这家主机厂智驾业务上是智驾负责人、A团队负责人、B团队负责人的三人“斗地主”的局面,A团队不仅PK掉了B团队负责人,而且下半年也不断传出智驾负责人离职的消息。
风光无限的同时,A团队的一些技术中层也在不断的担忧,明年自研方案的量产上车能不能成功?如果量产上车的过程不顺利或者出了岔子,到时候问责,锅是先扣负责人头上还是掉在自己头上?
带着一脑子问号的部分技术中层,谋生了跳槽走人的想法。
....
#Pi-0: 面向通用机器人控制的VLA Flow 模型
Pi-0 是Physical Intelligence 成立后的第一个论文工作(全公司都署名了,豪华阵容)。这篇论文主要关注如何实现robot foundation model,并聚焦在两个方面:Pre/Post-Training 策略;基于Flow-Matching 的action expert。从结果看,pi-0可以实现比较强的泛化能力,并能实现非常实时的推理。比起之前的OpenVLA 等工作,pi-0 在端到端VLA这条路线上向robot foundation model 迈进了很多。

Motivatio
Pi-0 的核心motivation 是将LLM 和VLM 领域中已经经过考验的Pre/Post-Training 训练范式迁移到机器人xx模型的训练过程中来,即:
- Pre-training:在大规模且非常多样性的互联网语料库上对模型做预训练;
- Post-training:在更精心设计的数据集上fine-tune (or "align") 模型,使模型输出更符合预期;
如何将这个范式迁移到机器人领域呢?Pi-0 的训练,实质上是三步:
- Internet-scale Pre-Training: Pi-0 是基于一个训练好的开源VLM 模型继续训练的,因此这个开源VLM 模型的训练实质上相当于是Pi-0 模型训练的第一个阶段,提供了模型的多模理解能力;
- Pre-Training:基于团队构造的一个10000 小时机器人操作数据集,进行了大规模训练。实质上,Pre-Training 后,Pi-0 模型就已经可以处理见过的任务,并zero-shot泛化到一些不那么难的任务上
- Post-Training:对于一些新的很困难的任务,需要5-100 小时数据进行fine-tune.
作者认为,要获得一个具备良好泛化能力的robot foundation model,主要有三方面挑战:
- 数据的规模要足够大(数据量、本体丰富度、任务丰富度等);
- 模型的架构要合理(支持高频控制,连续action space控制);
- Training recipe 要合理(训练策略,数据配比等);
围绕这几个问题,Pi-0 的核心设计如下节介绍。
The Pi-0 Model模型结构

模型结构如上图所示:
- 模型基于一个Pre-Trained VLM (PaliGemma) 构建,其包含视觉Encoder 部分(SigLIP,400M)和Transformer 部分(Gemma,2.6B);
- 在预训练模型的基础上,Pi-0 通过MoE 混合专家模型的方式引入了一个action expert 来处理动作的输入和输出。这里是指,只有一个Transformer 模型,在处理文本和图像token 时,用的是原模型的参数;在处理action token 时,则用新初始化的action expert 的参数;
- 输入:模型的输入包括3帧最近的图像,文本指令,以及机器人本体信号(即各joint 当前angle)
- 输出:输出是称作action chunk 的形式,即未来一段时间的action 序列,这里的序列长度H 设定为50,对于50HZ 控制的情况,即相当于预测未来一秒钟的动作。这里action 的维度,设定为各个本体中最长的那个(18DoF),不够的本体则pad。(注意,这里action space 都设定在joint space,这有利于模型输出结果直接控制机械臂,避免了IK 解算环节)
Flow Matching as Action Expert
Flow matching 可以看作是diffusion 的一种变体,之前有听说但没仔细学习过,正好这次学习了下(知乎上也有很多不错的介绍文章,比如 笑书神侠:深入解析Flow Matching技术 )。Flow-Matching 主要是学习如何从一个噪声分布数据流形到目标分布数据流形之间的flow。Flow matching 的主要优势主要在于训练/推理方式比较简单、生成路径比较容易控制、稳定性更高等。Flow Matching +简单线性高斯概率路径的方案在生成任务上也获得了比较好的效果。
具体到Pi-0中:在action 预测任务中,在时间t我们要预测一个action chunk, 则优化目标为:

- 是 [0,1] 之间的数值,代表flow-matching 的timestep,0对应噪声分布,1对应目标分布;
- 即所对应的噪声流形到目标流形的中间流形。基于flow matching 的定义,我们可以将后验概率(即已知,来获得)表示为:

- 具体地,基于线性高斯路径策略,可以表示为(和扩散加噪过程很相似):

- 而在前面的训练损失函数中,我们实质监督的是,在这个时间点流形的 flow 或者说是速度方向(也因此这种训练方法叫做flow matching)。(,)指网络预测结果,其优化目标为:

- 因此,diffusion 和flow matching 的训练都是一个去噪过程,但表示形式不同,前者预测的是添加的噪声,后者预测的是噪声到分布的方向。flow matching 可以通过控制优化路径来实现更灵活的生成控制。
- 在训练阶段,从一个beta 分布中采样(为了强调前段/噪声更多阶段的训练)。而在inferece 阶段,Pi-0 使用了10步均等步长(=0.1)的形式来实现flow matching 过程:
Pre-Training and Post-Training

作者认为预训练阶段最重要的就是diversity,用了一个10000小时规模的数据集训练:
- 数据集大部分是自采的(采集方式下一节介绍),仅9.1% 是开源的(Open-emb-x, droid 等)。数据集的自采集部分,包含了903 million timestep。
- 数据集中使用了多种本体,大部分都是双臂数据,基本都是aloha 数据
- 自采任务包含68个任务,但普遍都是比较复杂的符合任务,所以实质上包含的任务更多;
作者认为后训练阶段数据的要点是动作质量高,即动作要完成地一致且高效
- Post-training 阶段的任务选择地和预训练有明显差异;
- 简单的任务,需要5小时数据,最复杂的任务需要100小时甚至更多;
Robot System

Pi-0 构造了一个还算比较丰富的多本体平台,如上图所示。具体信息整理如下:

- 轻型机械臂用的都是Aloha 方案,主要是Trossen,ARX(方舟无限,国产)和AgileX(松灵,国产)
- 非轻型机械臂(UR5e 和Franka)用的不是Aloha 方案,没说啥采集方案。猜测应该是6D 鼠标等遥操设备。
- 这里面的所有任务都是夹爪,没做灵巧手;
Experiment
实验内容比较多,这里主要贴一下两个主要实验
Zero-shot evaluation
这个任务主要是想看Pre-Training 完的模型直接拿来用的效果,和OpenVLA,Octo 等方法比;


- Pi-0 比OpenVLA 等方法效果好很多;
- Pi-0-Parity 是训练步数比较少的模型 160k/700k,表明训练充分对模型效果影响很大
- Pi-0-Small 是没有用Pretrain VLM 的模型,可以看出来效果也差了很多。
Post-Training Evaluation
在新的困难的灵巧任务上进行训练和测试:


部署 & 效率测评
这里补充一下附录里面提到的部署时的推理策略和推理效率。推理策略:
- 模型每次生成H timestep 的action chunk,H一般是50;
- 对于20Hz 控制的机械臂,需要2.5s 执行完;对于50HZ 控制的机械臂,需要1s 的执行完;
- 实质上,并不会等所有action 执行完再进入下一轮执行。对于20Hz 平台,在执行完16步(0.8s)后就会进入下一轮;对于50Hz平台,执行完25步(0.5s)后就会进入下一轮
这个执行策略,其实是每0.5s 做一次重新规划。这是因为Pi-0 并没有把历史决策作为输入,即这个模型并没有维护history 信息。所以这个方案实质上还是应该看作是一个开环方案。

- 速度是在4090 上测试的,可以看出这个3.4B模型的推理还是很快的,应该用上了当前主流的推理加速
- Off-board 指显卡不在设备上,通过wifi 通信,可以看出他们这个通信延迟做的也还行。
- 整体延迟控制在了100ms 内,这意味着他们其实最高可以以10FPS 频率来做重规划。
讨论 & 总结
Pi-0 方案可以看作是OpenVLA 这类VLA 方案的一次系统升级,主要是更好的训练数据 + 更好的Policy Head。而且Policy Head 和VLM 模型连接的方式,可能是一种很好的大小脑系统连接的路径。整个方案系统性很强,值得细读学习,整体读下来感觉也很好。
除了优点,还是有不少槽点和疑惑点的:
- 从预训练的层面,这篇工作似乎并没有带来太多新东西。当前大家对于“xx预训练”这个话题,可能更多还是希望能够减少需要大量人力投入的遥操数据采集环节。所以,这篇文章里面的Pre-Training,可能实质上对应的是我们认为的Post-Training,而Post-Training 对应的则是我们认为的few-shot adaption。
- 文章中提到一个观点:“高质量数据不能教会模型如何从错误中恢复”,那言下之意应该是低质量数据中一下错误后重新尝试的数据对这方面有帮助。这个观点很认同,但文中其实并没有分析训练数据中是否真的有这类数据,也没有做相关的佐证实验。
- Pi-0 的框架没有加入history 我感觉还是比较可惜的,或许是他们的下一步吧;
- 模型部分,不同本体似乎没有加一个区分指示的token,只靠action space 维度区分不太靠谱;同时Pi-0 也没有展示本体层面的泛化能力。
....
#LiON-合成数据助力自驾点云异常检测新SOTA
论文信息
- 论文题目:LiON: Learning Point-wise Abstaining Penalty for LiDAR Outlier DetectioN Using Diverse Synthetic Data
- 论文发表单位:清华大学, 厦门大学,滴滴出行, 香港中文大学-深圳
- 论文地址:https://arxiv.org/abs/2309.10230
- 项目仓库:https://github.com/Daniellli/LiON
1.Motivation
基于点云的语义场景理解是自动驾驶汽车感知技术栈中的重要模块。然而,由于点云不像图像那样具有丰富的语义信息,在点云中这个识别异常点是一项极具挑战性的任务。本工作从两个方面缓解了点云缺乏语义信息对异常点感知的影响:1) 提出了一种新的学习范式,使模型能够学习更鲁棒的点云表征,增强点与点之间的辨别性;2) 借助额外的数据源,ShapeNet,提出了一套可以生成多样且真实伪异常的方法。实验结果表明,在公开数据集 SemanticKITTI 和 NuScenes 上,本方法显著超越了前 SOTA。
,时长01:29
2.Method
给定一个场景点云,点云语义分割的主要任务是为点云中的每个样本点分配一个预先定义的类别,例如车、树、行人等。本工作将这些属于预先定义类别的样本点称为正常样本点。而 点云异常检测则作为点云语义分割模块的补充,用于识别那些不属于预先定义类别集合的样本点,例如桌子、椅子等无法预料的类别。本工作将这些样本点称为异常样本点。
此前的工作 REAL 将图像异常检测方法直接适配到点云异常检测领域,并通过实验发现,大量异常样本被错误分类为预先定义的类别。为了解决这一问题,REAL 提出了一种新的校正损失,用于校正正常样本的预测。然而,本工作的实验结果表明,尽管该校正损失能够提升异常样本的分类性能,但同时也对正常样本的分类性能造成了显著的负面影响。
本工作将图像异常检测方法在点云异常检测领域表现不佳的原因归结于点云不像图像那样具有丰富的语义信息。比如Figure 1左侧,即使是人类也难以识别道路中央的家具信息。因此,该工作从两个方面缓解点云缺乏丰富语义含义所带来的影响。

Figure 1 点云语义分割模块错误地将家具分类成道路
首先,该工作提出为每个样本点计算一个惩罚项,并通过额外的损失函数保证正常样本点的惩罚较小,而异常样本点的惩罚较大。然后,将该惩罚项嵌入交叉熵损失中,以动态调整模型的优化方向。通过为每个样本点学习额外的惩罚项并改进学习范式,本工作增强了样本点之间的辨别性,缓解了点云缺乏语义信息的问题,从而全面提升了异常检测能力。
此外,该工作提出利用 ShapeNet 数据集生成伪异常。ShapeNet 是一个大规模的三维形状数据集,包含超过 22 万个三维模型,覆盖 55 个主要类别和 200 多个子类别。因此,通过 ShapeNet 生成的伪异常具有较高的多样性。其次,在生成伪异常时,该工作进一步考虑了点云的采样模式,从而使生成的伪异常更加真实。因此,该工作通过生成更加多样且真实的伪异常,更好地估计和模拟了真实异常的分布,缓解了点云缺乏语义信息的问题。
2.1. 模型整体架构
如Figure 2所示,本工作通过伪异常生成方法对输入点云进行编辑生成带有伪异常的输入点云x, 而后该点云通过特征提取器和正常样本分类器f和异常样本分类器g处理, 得到正常类别logit , 以及异常类别logit , 而后通过softmax 处理, 可以拿到正常类别概率和异常类别概率。c表示正常样本类别数量,n表示给定点云的点数量。该处理过程可以形式化表达为:

其中[·]表示拼接操作。

Figure 2 算法处理流程
2.2. 基于逐点惩罚的学习范式
本工作提出对每个样本点用能量函数计算一个额外的惩罚项,惩罚项的计算如下所示:

此外,该工作通过一个额外的逐点惩罚损失函数使得对于所有的正常样本点都有个较小的惩罚,对于所有的异常样本点都有较大的惩罚。该逐点惩罚损失函数的形式化表达如下:

其中,m表示数据集大小;n表示场景点数量;I(.)表示示性函数;{1,...,c,c+1}为样本点类别真值,c+1表示异常类别;max(.)为最大值函数;,为超参数。该损失函数的作用如Figure 3所示,对于所有的正常样本点(逐点惩罚损失函数公式左侧),如果惩罚项大于,损失函数的值就会大于0;反之,损失函数的值等于0。异常样本的情况与此类似。通过优化逐点惩罚损失函数,就可以对所有的正常样本计算得到一个接近甚至小于的惩罚, 对于所有异常样本得到一个接近甚至大于的惩罚。

Figure 3 惩罚项和逐点惩罚损失之间关系
而后,该工作用惩罚项升级交叉熵损失函数,动态调整交叉熵损失的优化重点, 升级后的交叉熵损失函数被叫做逐点拒绝(abstain)损失函数:

对于所有正常样本,该算法会计算得到一个较小的惩罚系数。将其取负后,值会变得较大,而取负后的平方值则会进一步放大。因此将异常类别概率除上该值,异常类别概率对于逐点拒绝损失函数的影响会被抑制,从而逐点拒绝损失函数重点会放在优化正常类别概率上。异常样本的情况与此类似。
因此整个算法的损失函数为:

其中为损失函数的系数。
2.3.合成数据生成点云异常
该工作通过引入额外的数据源, ShapeNet,来生成更加多样且真实的伪异常,从而更好地近似真实异常分布。首先,通过伯努利分布计算插入的伪异常数量G。而后,通过循环G次下面流程来插入伪异常。
如Figure 4所示,该生成方法包括以下步骤:(a)加载物体后,基于均匀分布计算平移距离和旋转角度,并对物体进行(b)平移和(c)旋转,使其有可能放置在场景中的任意角落;(d)基于均匀分布计算的缩放系数,对物体进行缩放;(e) 将物体放置于场景地面; (f)使用被插入物体遮挡住的场景样本点来替换插入物体的样本点。

Figure 4 伪异常生成流程
3.Experiment
实验结果表明,该工作提出的方法在SemanticKITTI和NuScenes两个公开数据集上能够大幅优于之前的SOTA方法。
3.1.实验基准
该工作沿用了之前的实验基准。采用SemanticKITTI和NuScenes作为基准数据集。在SemanticKITTI中,将{other-vehicle}设为异常类别;在NuScenes中,将{barrier,constructive-vehicle,traffic-cone,trailer}设为异常类别。这些异常类别的样本在训练过程是不可见的。
在测试阶段,主要评估算法对这些被设为异常类别的样本的分类精度,采用的评价指标主要包括 AUPR 和 AUROC。此外,对于正常样本分类的评估指标为。该任务的目标是在保证不受影响的前提下,尽可能提升AUPR和AUROC。
3.2.定量结果

Table 1 定量结果对比
该工作沿用之前的实验设置, 选C3D(Cylinder3D)作为分割基座模型。前SOTA方法, APF,没有在NuScenes上开展实验并且没有开源代码, 因此该工作无法在NuScenes上与其进行对比。Table 1实验结果表明,该工作提出的算法在两个公开基准数据集上大幅优于之前SOTA方法。
3.3.定性结果

Figure 5 SemanticKITTI(左)和NuScenes(右)上的定性结果对比
与前SOTA算法对比,该工作提出的算法不管是在64线雷达采集的点云数据上(SemanticKITTI)还是32线雷达采集的点云数据(NuScenes)上都表现出了优越的性能, 不仅能够精确定位异常类别而且能够赋予较高的置信度。
....
#OpenEMMA
自动驾驶黑科技 | 开源框架 OpenEMMA 正式上线!
今天为大家带来一个自动驾驶领域的重磅消息:OpenEMMA,一个完全开源、端到端的多模态框架,正式发布啦!
这是我们团队在推动自动驾驶技术透明化和普惠化道路上的重要一步,希望通过开源化,赋能更多科研人员和开发者,共同推进这一领域的快速发展。在2024年十月底,谷歌的自动驾驶子公司Waymo发布了第一个基于纯视觉的自动驾驶端到端多模态大模型解决方案EMMA,其Blog如下图所示
Waymo发布了端到端多模态自动驾驶大模型EMMA
我们团队于11月份正式开始计划来进行开源版本的复现,旨在让自动驾驶和交通社区都能用上开源的替代解决方案,推动自动驾驶开源化、透明化。于是呼,OpenEMMA正式诞生了!
什么是 OpenEMMA?OpenEMMA 是一个基于多模态大语言模型(MLLMs)的开源自动驾驶框架,灵感来自 Waymo 的 EMMA 系统。它支持从感知到规划的完整自动驾驶任务链,专为推动行业透明化和技术共享而打造。OpenEMMA 的亮点功能
链式推理(Chain-of-Thought Reasoning)
通过引入链式推理技术,OpenEMMA 让轨迹规划和决策过程更可解释,贴近人类逻辑思维。
增强的 3D 目标检测
集成微调后的 YOLO3D 模型,大幅提升目标检测精度,无论在城市街道还是复杂环境中表现出色。
强大的适应性和鲁棒性
从急转弯到低光环境,OpenEMMA 能轻松应对各种驾驶场景,确保稳定性与安全性。
结果和性能
视频例子
我们测试了OpenEMMA在真实数据集上视频序列上的效果,具体如下图所示
完全开源
框架、数据集、模型权重全都开源,致力于推动学术研究和产业开发的共同进步。为什么 OpenEMMA 很重要?在自动驾驶领域,技术的透明化和普惠化是加速行业发展的关键。OpenEMMA 不仅为开发者提供了一个高性能工具,还让更多人有机会参与其中,推动技术的落地应用。这是我们迈向更安全、更智能交通体系的重要一步!参与我们 | 一起让自动驾驶更安全我们希望 OpenEMMA 成为一个全球化的开源社区,任何意见、建议或者贡献都是极为宝贵的!目前框架还处于初期阶段,我们期待和全世界的开发者、学者们一起完善它。如果你对自动驾驶感兴趣,欢迎 DM 或留言加入我们的社区!
论文链接:arxiv.org/abs/2412.15208
开源地址:https://github.com/taco-group/OpenEMMA
....
#如何评价deepseek上线的deepseek-V3模型?
国产大模型又信仰充值了
deepseek 找到了一个弯道超车海外 LLM 的方法,作为友商员工我都愿意粉一下,真产业升级
我觉得把刷榜看成是模型能力增强带来的副产品,效果是好于 1. 对着榜去刷过拟合 2.急着用赶超战略复刻新技术的
比方说我们发现 GPT4 某些榜表现好,专门加这类数据并不本质,反而污染了一个原本很好的评价指标
把基模做强就有惊喜!又是 The Bitter Lesson。既想刷榜又不想做预训练,就很容易技术落后
当 OpenAI / Anthropic 有些新现象和新技术出来,要复刻的前提是基础模型够强,不然即使人家把监督微调 / 强化学习的数据开源了,小模型可能学完也没什么变化
研究小模型最怕的也是得到的结论和大模型完全不相关,浪费宝贵人力和时间
从这个角度来说,预训练不做就很难发现新的模型特性和现象,只能等别人喂
等别人开源模型完再动工新产品或者研究,再退一步就是等着 copy huggingface 开源社区 demo 了
https://github.com/deepseek-ai/DeepSeek-V3/blob/main/DeepSeek_V3.pdf
作为近期必读的技术报告,我也来瞅瞅,当然工程上我有很多不了解的地方,欢迎大家指正
主要贡献
- 架构改进: 在 DeepSeek-V2 的高效架构基础上,我们引入了一种无辅助损失的负载均衡策略,以最小化负载均衡对模型性能的负面影响。
- 多令牌预测: 我们研究了多令牌预测(MTP)目标,并证明了它在模型性能方面的益处。MTP 目标可以用于推测性解码,以加速推理。
- 预训练: 我们设计了一个 FP8 混合精度训练框架(工程好强啊),并首次在极其大规模的模型上验证了其可行性和有效性。通过算法、框架和硬件的联合设计,我们克服了跨节点 MoE 训练的通信瓶颈,实现了近全计算-通信重叠,从而显著提高了训练效率并降低了成本。
- 后训练: 我们引入了一种创新的方法,从 DeepSeek-R1 系列模型中蒸馏推理能力,并将其集成到标准 LLMs 中,特别是 DeepSeek-V3。我们的管道优雅地将 R1 的验证和反射模式集成到 DeepSeek-V3 中,显著提高了其推理性能。同时,我们还保持了对输出样式和长度的控制。
- 核心评估结果总结: DeepSeek-V3 在知识、代码、数学和推理等多个领域表现出色。在教育基准测试(如 MMLU、MMLU-Pro 和 GPQA)上,它超越了所有其他开源模型,并表现出与领先封闭源代码模型(如 GPT-4o 和 Claude-Sonnet-3.5)相当的性能。在数学相关基准测试上,DeepSeek-V3 取得了最先进的性能,甚至在某些基准测试上超过了 o1-preview。在编码相关任务上,DeepSeek-V3 在编码竞赛基准测试(如 LiveCodeBench)上表现出色,成为该领域的领先模型。

预训练
14.8T数据,2048 H卡,训了56天(2.788M GPU hours),算力开销是四千万人民币,很值的感觉。这就能烧一个 GPT4 水平的基础模型,大佬们应该都蠢蠢欲动了。
- 14.8T 训练:
- 完整训练仅需 2.788M H800 GPU 小时。
- 看报告有三十位数据标注员。这版覆盖更多语言,继续增加了数学 / 代码的比例,代码数据中的 10% 用中间补充(FIM)策略来组织(我理解这主要是为了给模型强化一个常用的推理功能)。为了压缩其它语言的内容,调整了分词器。
- 模型架构:
- 700B MoE 模型。
- 256 个总专家,其中 1/8 共享专家,8 top-k,推理激活了 37B 参数。
- 与 DeepSeek v2 的比较:236B MoE,16 个专家,1/8 共享,1 top-k 选择,推理激活了 21B 参数。
- 多头潜在注意力(MLA):
- 类似于 DeepSeek v2 MoE,前三层不是 MoE。
- 其他细节:
- 61 层,宽度 7168。
- 多令牌预测(MTP)作为目标。
- 16 PP(并行)/ 64 EP(专家并行)/ Zero-1 DP(数据并行)#优化了全对全通信内核,而不是昂贵的 TP(张量并行)。
- 在 CPU 上进行 EMA
超参数
- 初始的学习率和优化器配置,都是继承 deepseek v1 的结论,batchsize 也是按缩放定律从 v1 的 3072 到 15,360。
- WSD 学习率调度器:0 → 2.2e-4(2k steps)→ 常数直到 10T → 2.2e-5(在 4.3T tokens 时余弦衰减)→ 2.2e-5(在剩余的 167B tokens 时常数)。
长文本能力
- 用 YaRN 方法 (arXiv:2309.00071)
- 上下文窗口扩展: 每 1000 steps,从 4k 逐步扩展到 32k,然后到 128k。
RLHF 部分
奖励构建:
- 基于规则的奖励机制。对于可以使用特定规则进行验证的问题,我们采用基于规则的奖励系统来确定反馈。例如,某些数学问题有确定的结果,我们要求模型在指定的格式内(例如,在方框中)提供最终答案,以便我们可以应用规则来验证正确性。类似地,对于 LeetCode 问题,我们可以利用编译器根据测试用例生成反馈。通过尽可能利用基于规则的验证,我们确保了更高的可靠性,因为这种方法不易受到操纵或利用。
- 对于具有自由形式真实答案的问题,我们依靠奖励模型来确定响应是否与预期的真实答案匹配。相反,对于没有明确真实答案的问题,例如涉及创意写作的问题,奖励模型的任务是根据问题和相应的答案作为输入提供反馈。奖励模型从 DeepSeek-V3 SFT 检查点进行训练。为了提高其可靠性,我们构建了偏好数据,这些数据不仅提供最终奖励,还包括导致奖励的思维链。这种方法有助于减轻在特定任务中奖励被操纵的风险。
看起来还是客观题用规则方法,主观题用奖励模型,而且是一种 COT 的奖励模型
- 训练了 2epoch,余弦学习率衰减
- 提到了 constitutional AI approach 和 self-rewarding,显然有模型打分造数据的部分了
评测
我圈出了一些比较有亮点的数字
我个人觉得如果一个榜 qwen-dense 也能做得不错,可能就不是做超大 MoE 模型应该关注的点了

比较有亮点的是数学能力,Coding 看这个榜不好说提升是不是非常大,因为 Codeforces 漏题还是比较严重的,从论文字面上没看出来有没有排除相关影响
无所谓,训出来了,自有大儒会讲经的
论文讨论部分
蒸馏好像很重要,但是主要在这部分描述
从 DeepSeek-R1 蒸馏
我们通过基于 DeepSeek-V2.5 的实验来消融从 DeepSeek-R1 蒸馏的贡献。基线模型是在短链数据上训练的,而其竞争对手则使用了由专家检查点生成的数据。
表 9 展示了蒸馏数据的有效性,在 LiveCodeBench 和 MATH-500 基准测试中都取得了显著改进。我们的实验揭示了一个有趣的权衡:蒸馏会导致性能更好,但也会显著增加平均响应长度。为了在模型准确性和计算效率之间保持平衡,我们为 DeepSeek-V3 的蒸馏精心选择了最佳设置。
我们的研究表明,从推理模型中蒸馏知识是一个有前途的后训练优化方向。虽然我们目前的工作重点是蒸馏数学和编码领域的数据,但这种方法在各种任务领域都显示出潜力。这些特定领域的有效性表明,长链蒸馏可能对增强其他需要复杂推理的认知任务的模型性能有价值。对这种方法在其他领域的进一步探索仍然是未来研究的一个重要方向。

推理过程强化,然后筛选和蒸馏反哺,听起来很有搞头
自我奖励
奖励在 RL 中起着至关重要的作用,指导着优化过程。在可以通过外部工具进行验证的领域,如某些编码或数学场景中,RL 显示出了出色的效果。然而,在更一般的场景中,通过硬编码构建反馈机制是不切实际的。在 DeepSeek-V3 的开发过程中,对于这些更广泛的上下文,我们采用了Constitutional AI 方法(Bai et al., 2022),利用 DeepSeek-V3 本身的投票评估结果作为反馈源。这种方法产生了显著的对齐效果,显著提高了 DeepSeek-V3 在主观评估中的表现。
通过将补充信息与 LLM(大型语言模型)作为反馈源相结合,DeepSeek-V3 可以优化到 Constitutional 方向。我们认为这种范式将补充信息与 LLM 作为反馈源相结合,对于推动 LLM 的自我改进至关重要。除了自我奖励外,我们还致力于发现其他一般性和可扩展的奖励方法,以持续推动模型能力在一般场景中的发展。
Constitutional AI 方法简单来说就是,不是所有打标都要人搞,比如有害性标注就可以交给模型负责,然后我们可以在降低有害性,提高有用性两个维度上,做帕累托改进
多令牌预测评估
DeepSeek-V3 通过多令牌预测(MTP)技术预测了下一个 2 个令牌,而不是仅仅预测下一个单个令牌。结合推测性解码框架(Leviathan et al., 2023; Xia et al., 2023),这可以显著加速模型的解码速度。一个自然的问题是,额外预测的令牌的接受率是多少?基于我们的评估,第二个令牌预测的接受率在各种生成主题上都保持在 85% 到 90% 之间,展示了一致的可靠性。这个高接受率使 DeepSeek-V3 能够实现显著改进的解码速度,将 TPS(每秒令牌数)提高了 1.8 倍。
虽然解码速度提升是常数级的,但是对于用户体验非常重要的
....
#Frenet坐标系 or Cartesian坐标系?
首发于 Frenet坐标系 or Cartesian坐标系?
在智能驾驶领域,轨迹规划问题可以抽象成在满足一定约束条件下寻找最优解的问题,优化变量、状态方程和约束条件是决定优化问题求解复杂性的关键要素。坐标系的选择不仅是解决问题首先要考虑的,而且对优化问题形式和复杂性有着至关重要的影响。
智能驾驶领域中广泛使用的坐标系有Frenet坐标系(sl坐标系)和Cartesian坐标系(xy坐标系),两者最大的区别在于坐标轴是否允许为曲线,Cartesian坐标系即几何中常见的直角坐标系,两条坐标轴是相互正交的直线。而Frenet坐标系允许一条坐标轴为曲线(参考线s),故又称为曲线坐标系。
从定义上可以直觉得出Frenet坐标系特别适合自动驾驶领域的结论,因为车辆的行驶的绝大部分场景都是存在车道线的道路环境下,只要将道路的中心线作为参考线,就可以将复杂的道路环境简化为直线隧道模型,图1显示了Cartesian坐标系向Frenet坐标系的转换。

图1 Cartesian坐标系向Frenet坐标系的转换示意图[1]
将弯曲的道路拉直,这是Frenet坐标系最大(也许是唯一)的优点,怎么评估这个优点的大小?在自动驾驶领域,道路边界是一个不得不处理的约束,很多情况下,非线性的道路边界也是最难表示和处理的约束。这种转换直接将非线性的道路边界约束变成了线性的约束,从而大大简化了后续优化问题的求解。此外,现实中的车辆大多数时候都是沿着道路中心线行驶的,所以在Frenet坐标系中,车辆的运动可以直接解耦为纵向运动和横向运动,实现了降维的效果,这是在Cartesian坐标系中是很难实现的。所以,虽然Frenet坐标系有诸多不足之处,它依旧是自动驾驶领域优先考虑的坐标系。
下面主要讨论Frenet坐标系在使用过程中可能出现的问题点:
问题1:xy向sl坐标转换的连续性问题
xy坐标向sl坐标转换的第一步是确定投影点的位置,即在s轴上寻找距离点P最近的投影点,这是一个寻找最优值的过程,没法保证其解的唯一性。如图2所示,参考线上红色区域是曲率为kr的圆弧,圆弧上的任何一点都是其圆心位置P0的投影点。多个投影点的后果是坐标转换困难,如果在多个可行解中随机取值就可能会导致连续的xy轨迹转换成不连续的sl轨迹,这是不连续性的第一个来源。即使能实现处处一对一的转换,xy转换成sl也可能变得不连续,如图2所示,Cartesian坐标系下相距很近的P1、P2的投影点s1、s2也差距巨大。对于曲率越大的参考线,发生这种问题的风险就越高。

图2 xy向sl坐标转换导致不连续 [1]
问题2:对参考线要求高
参考线直接决定投影点的位置,以及sl曲线。以kx表示xy曲线的曲率,kf表示sl曲线的曲率,两者的转换关系如下:

式中kr为参考线曲率,所以要得到曲率连续sl曲线,不仅要求xy曲线的曲率连续,还要求参考线的曲率连续;
问题3:车辆形状扭曲
车辆一般被简化为具有固定尺寸的矩形,用四个顶点来控制其边界,甚至车辆会被抽象成一个点,向四周碰撞一定距离形成边界,在Cartesian坐标系中,这种简化与实际情况完全相符。Frenet坐标系将弯曲道路拉直的同时,也将规则的车辆变得扭曲,如下图3所示。相应地,Frenet中规则的方形实际上代表的是与参考线平行的扭曲形状,如果简单以四个顶点的模型来代表整个车辆边界,就会与真实车辆形状产生偏差,常用的碰撞检测算法就会失效。这种偏差随着参考线曲率和车辆尺寸的变大而变大。

图3 坐标转换导致车辆形状扭曲
问题4:sl和xy的坐标转换误差
工程应用中,参考线通常是以一系列离散坐标点的形式表示的,只有离散点处(x,y)的信息来自传感器,其他的heading/kappa/dkappa信息都是据此推导而来的,这些信息的连续性或平滑性,依赖于相邻参考点之间的连接处理。使用高阶连续曲线处理,可以解决连续性问题,但是会导致投影点的计算量剧增,而坐标转换的计算是个高频行为,有时甚至是算法的性能瓶颈,工程中为了降低计算复杂性,通常有以下假设:
假设1:xy向sl转换时,假设相邻两参考点之间的参考线是直线,heading保持不变。
假设2:sl向xy转换时,假设相邻两参考点之间参考线的heading是线性变化的。
在这两条不一直的假设下,xy和sl之间的来回转换就是不可逆,即(x, y) → (s,l) → (x', y'),(x, y) != (x', y'),如下图4所示。这种差异也会随着参考线曲率和轨迹的采样间隔的增加而增大。

图4 sl和xy的坐标转换误差示意图
有了上面的讨论后,我们再重新思考Frenet坐标系和Cartesian坐标系的选择问题,可以有如下建议:
- 在小曲率的结构化道路中(如高速路或城区快速路),Frenet是首选坐标系。
- Frenet坐标系的问题随着参考线曲率的增加而被放大,所以在大曲率的结构化道路(如城区有引导线的路口)中,选择Frenet就要慎重。
- 对于非结构化的道路,如港口、矿区、停车场,无引导线的路口,建议使用Cartesian坐标系。
....
#DrivingGPT
中科院最新:利用多模态自回归方法统一驾驶世界模型和规划双任务!
目前,驾驶世界模型已获得了来自工业界和学术界的广泛关注,因为基于模型的搜索和规划被广泛认为是实现人类级智能的重要途径。这些模型有多种用途,包括训练数据增强、稀有场景生成。大多数当前世界模型都是通过微调现有的扩散模型来开发的,利用视频生成基础模型的泛化能力。控制信号(如文本、布局和驾驶操作)通过两种主要方法整合:扩散模型的空间特征与控制信号特征之间的交叉注意,或通道级特征调制技术。
尽管驾驶世界模型取得了非常不错的研究进展,但一个根本挑战仍然存在:在可微分框架中无缝集成世界建模和规划仍未得到很大程度的解决,从而限制了可微分模型规划的全部潜力。世界模型目前主要基于视频扩散架构,限制了它们生成多种模态(如文本和动作序列)的能力。因此,在扩散模型框架内实现驾驶规划和世界建模的真正端到端集成仍然是一项重大的技术挑战。这些限制促使我们探索能够自然处理多模态输入和输出并实现端到端可微分规划的替代架构。
与扩散模型相比,具有下一个Token预测训练目标的自回归Transformer在包括语言建模、视觉问答、图像生成、视频预测、顺序决策和机器人操作在内的广泛任务中表现出卓越的建模能力。自回归Transformer处理顺序数据和多种模态的天生能力使其特别有希望成为基于模型的集成驾驶规划器。
基于上述的讨论,在这项工作中,我们旨在利用自回归Transformer的建模能力来进行驾驶任务中的世界建模和轨迹规划,提出的算法模型称为DrivingGPT。在具有挑战性的 NAVSIM 基准上进行的实验进一步证明了所提出的多模态驾驶语言作为规划训练目标的有效性。我们的 DrivingGPT 在驾驶得分方面优于流行的带有 MLP 轨迹解码器规划器的视觉编码器。
- 论文链接:https://arxiv.org/pdf/2412.18607
网络模型结构&技术细节
经过训练用于下一个Token预测的自回归Transformer已在不同领域展现出卓越的能力。在这项工作中,我们通过结合世界模型和轨迹规划,利用自回归Transformer的强大功能实现自动驾驶。我们的方法将视觉输入和驾驶动作转换为离散驾驶语言,从而通过自回归Transformer实现统一建模,其整体的网络结构图如下图所示。
问题表述
与许多其他任务一样,驾驶问题可以表述为马尔可夫决策过程,这是一种在具有部分随机结果的环境中做出决策的通用数学框架。MDP 包含一个状态空间,它反映了自车和环境的所有状态;一个动作空间;一个随机转换函数,它描述了给定时间的状态和动作的所有可能结果的概率分布;以及一个标量奖励函数,它决定了在特定状态下应采取的最佳动作。在大多数实际应用中,我们只能感知到噪声观测,而无法感知底层状态。因此,引入了观测概率函数,MDP 变为部分可观测的 MDP。预测未来轨迹的端到端策略和模拟驾驶世界动态的观察空间随机转换函数在自动驾驶中都非常重要。我们寻求将这两个挑战统一为一个序列建模任务。
多模态驾驶语言
一般的驾驶序列可以表示为一系列时间同步的观察-行动对,时间范围为。在这里,我们需要将观察和动作标记为离散token,并形成多模态驾驶语言,然后才能利用自回归Transformer进行下一个token预测。
Observation Tokenization
为了简化我们的方法,我们只将前置摄像头图像包含在观察空间中,而将更先进的传感器设置(如周围的 cemaras、LiDAR 和 IMU)留待将来探索。为了将更多帧纳入我们的序列建模,我们利用 VQ-VAE 将图像下采样为图像token。
Action Tokenization
我们的方法与现有的驾驶世界建模方法的不同之处在于,它能够生成未来的驾驶行为。与大多数的端到端驾驶规划器不同,可以预测未来的整个驾驶轨迹。我们的下一个 token 预测公式的因果性质禁止我们构建具有较长动作范围的驱动序列。未来的观察和行动都从历史行动中获取了太多特权信息。
如果我们使用的动作范围,最后的历史动作将包含直到时间戳的所有未来驾驶动作,导致模型只学习复制历史动作,而不是学习基于观察的驾驶。因此,我们不是预测长距离绝对驾驶轨迹,而是预测帧间相对驾驶轨迹,表示时间戳之间的纵向平移、横向平移和偏航旋转。我们将量化为动作token,首先将每个动作组限制在其第1百分位和第99百分位之间。然后,我们通过将限制的动作成分均匀划分为M个格子,获得动作标记。由于的大小和单位不同,我们用不同的词汇量化这三个动作成分,以最大限度地减少信息损失。
Unified Visual Action Sequence Modeling
我们根据token化的驾驶序列构建统一的驾驶语言,然后利用带有因果注意力掩码的自回归Transformer将驾驶建模为下一个token预测。我们将视觉模态和动作模态视为不同的foreign language,并使用统一的词汇表进行驱动。视觉模态的词汇量为,即 VQ-VAE 的codebook大小。动作模态的词汇量为,其中是每个动作组件的bin大小,3表示不同的动作组件。因此,我们的多模态驾驶语言的词汇量为。
我们对图像和动作token应用逐帧一维旋转embedding。然后,自回归Transformer学习使用标准交叉熵损失对统一token序列进行建模。

虽然驾驶语言模型形式看起来很简单,但它明确地将驾驶世界建模和端到端驾驶作为其子任务。
Integrating Action into Trajectory
由于我们在驾驶语言中使用了帧与帧之间的相对动作,因此我们需要将它们整合起来以获得绝对驾驶轨迹。我们首先将预测的动作转换为二维变换矩阵,然后进行整合。
然后,我们通过连续乘以这些相对位姿矩阵来获得绝对位姿,并将其相应地转换回绝对动作。
实验结果&评价指标
视频生成的实验结果
我们对navtest数据集上的几种方法进行了定量比较,相关的实验结果汇总在下表当中。
由于许多视频模型仅发布模型权重,我们将我们的方法与它们公开可用的模型进行比较。我们发现 SVD 和 CogvideoX 都倾向于产生细微的动作,这导致驾驶场景中的表现不佳。为了确保公平比较,我们在 navtrain 集上微调了 SVD 模型。以前的视频模型通常依赖于基于扩散的方法,而我们的方法是自回归视频生成的先驱。值得注意的是,我们从头开始训练的模型在视频生成质量方面超越了以前的方法。
自回归模型的一个关键优势是能够通过有效利用历史信息来生成长时长视频,从而生成更连贯的视频。在这个实验中,我们从 navtest 数据集中选择了 512 个视频片段(每个片段包含超过 64 帧)进行评估。而 SVD 方法在生成较长的序列时很难保持质量,相关的实验结果如下表所示。
通过上表的实验结果可以看出,我们的方法表现出了生成高质量长期序列的卓越能力。SVD的固定帧数训练限制导致较长序列的图像和视频质量显着下降。相比之下,我们的方法始终如一地生成高质量图像并获得较低的 FVD 分数,表明性能更稳定和更优越。
此外,与以往基于扩散的方法相比,我们的方法可以生成更加多样化和合理的场景。如下图所示,SVD 微调方法在生成较长的视频时经常会陷入重复过去内容的困境,例如长时间被困在红灯下。相比之下,自回归方法在生成长视频方面表现出显着的优势,从而显着改善了场景内容和视频质量。
除了长视频生成之外,我们方法的另一个优势在于它能缓解物体幻觉现象。如下图所示,基于扩散的方法由于缺乏历史信息,经常会遭遇物体突然出现(红色框)和逐渐消失(绿色框)的情况。相比之下,我们的自回归方法保持了卓越的一致性。
端到端规划的实验结果
我们的 DrivingGPT 能够联合预测未来图像和驾驶行为,从而实现端到端的规划性能评估。为了严格评估我们的规划器的性能,我们选择了更具挑战性的 NAVSIM 基准,该基准旨在提供比以前的 nuScenes 和 nuPlan 基准更多样化的驾驶操作。此外,鉴于最近关于使用自车状态将为规划者提供过多特权信息的讨论,我们故意选择将其排除在我们的驾驶语言之外。按照 NAVSIM 设置,我们根据过去 2 秒的观察和行动来预测未来 4 秒的轨迹。相关的实验结果如下表所示。
与恒定速度和恒定速度恒定偏航率的基线相比,我们提出的 DrivingGPT 实现了不俗的表现性能。此外,我们的 DrivingGPT 与使用 ResNet-50 视觉编码器和 MLP 轨迹解码器实现的简单但可靠的端到端规划器基线相比更具优势。该基线仅使用前置摄像头图像,也不使用自车状态。考虑到我们提出的 DrivingGPT 只能通过重建驾驶环境的高度压缩图像token来学习表示,结果突出了联合学习世界建模和给定规划的潜力。下图展示了我们提出的DrivingGPT 在具有挑战性的驾驶场景下生成的轨迹。
消融实验分析
如下表所示,视觉标记器的质量显著影响世界模型视觉预测质量的上限。我们在navtest数据集上评估了几种最先进的离散视觉标记器,该数据集包含 12,146 个视频样本。根据我们的评估,我们选择 Llama-Gen 作为我们世界模型的最佳视觉标记器。
此外,自回归Transformer是众所周知的强大拟合机器。因此,我们试图回答一个问题:DrivingGPT 是否真正学会了驾驶,还是只是通过复制或推断历史驾驶动作来偷工减料。我们逐渐用仅从历史动作估计的未来动作替换 DrivingGPT 的预测动作。我们只是复制最后的历史动作,因为一般的驾驶轨迹不涉及任何动作输入变化。相关的实验结果如下表所示。
我们的 DrivingGPT 始终优于所有简单复制横向、纵向和历史动作的变体。可能会注意到,复制之前的纵向动作会产生最差的规划结果,这是因为 NAVSIM 基准包含许多场景,其中自车刚刚开始从停止和启动加速。实验结果表明,我们的 DrivingGPT 真正学会了如何驾驶,而不仅仅是复制历史动作。
同时,我们发现数据质量在语言建模等其他任务上训练自回归Transformer时起着核心作用。因此,我们研究驱动数据质量和数量对端到端规划性能的影响,相关的实验结果如下表所示。
使用NAVSIM等高质量数据训练的模型(仅包含 100k 个驾驶序列)优于使用 650k 个 nuPlan 驾驶序列训练的模型。结果表明,在驾驶语言建模中,数据质量比数据数量更重要。
结论
在本文中,我们提出了一种新颖的多模态驾驶语言,该语言有效地将视觉世界建模和轨迹规划统一到序列建模任务中。我们设计的算法框架称为DrivingGPT,可以联合学习为这两个任务生成图像和动作token。在nuPlan 和 NAVSIM 基准上进行的实验和消融研究证明了所提出的 DrivingGPT 在动作条件视频生成和端到端规划方面的有效性。
....
#一些必备算法和硬件
视觉语言动作(VLA)
- 算法:VLA要求智能体根据视觉和语言输入生成动作。常用算法包括:
- 多模态Transformer:用于融合视觉、语言和动作信息;
- 强化学习(RL):用于优化动作策略;
- 学习路径:
- 学习多模态融合技术,掌握Transformer架构;
- 研究VLA任务的经典论文和开源框架,包括显示端到端、隐式端到端、分层端到端方法等;
- 熟悉数据的采集和生成;
- 熟悉代码框架;
视觉语言导航(VLN)
- 算法:VLN要求智能体根据自然语言指令在环境中导航。常用算法包括:
- 强化学习(RL):通过奖励机制训练智能体导航;
- 模仿学习(IL):通过专家示范数据训练智能体;
- 图神经网络(GNN):用于建模环境中的空间关系;
- 学习路径:
- 学习强化学习和模仿学习的基础知识;
- 掌握图神经网络的基本概念和应用;
- 研究VLN的经典数据集(如R2R)和仿真平台(如Matterport3D);
机械臂抓取
- 算法:机械臂抓取任务涉及物体检测、姿态估计和抓取规划。常用算法包括:
- 6D姿态估计:用于估计物体在三维空间中的位置和姿态;
- 抓取生成网络(GG-CNN):用于生成抓取点;
- 强化学习:用于优化抓取策略;
- 学习路径:
- 学习计算机视觉中的物体检测和姿态估计技术,包括传统视觉抓取和端到端/深度学习方法;
- 掌握机械臂运动学和动力学基础;
- 研究抓取生成算法和强化学习在机器人中的应用;
视觉语言模型(VLM)
- 算法:VLM用于理解和生成与视觉内容相关的语言描述。常用算法包括:
- CLIP:OpenAI提出的多模态模型,能够将图像和文本映射到同一空间;
- BLIP:用于图像-文本生成和理解的模型;
- ViLT:视觉和语言Transformer模型;
- Qwen/internVL/Deepseek等:最新视觉语言大模型,可以微调执行下游任务;
- 学习路径:
- 学习Transformer架构和多模态模型的基础知识;
- 研究CLIP、BLIP等模型的论文和代码实现;
- 大模型的微调、多任务、部署等;
扩散策略(Diffusion Policy)
- 算法:扩散策略是一种基于扩散模型的决策方法,用于生成连续动作序列。常用算法包括:
- 扩散模型(Diffusion Models):通过逐步去噪生成数据;
- 行为克隆(Behavior Cloning):通过模仿专家数据生成策略;
- 学习路径:
- 学习扩散模型的基本原理和应用;
- 研究扩散策略在机器人控制中的应用;
- 扩散模型的策略生成任务;
强化学习
- 算法:强化学习用于优化智能体的决策策略。常用算法包括:
- DQN:深度Q网络,用于离散动作空间;
- PPO:近端策略优化,用于连续动作空间;
- SAC:适合高维动作空间;
- 学习路径:
- 学习强化学习的基础理论,如马尔可夫决策过程(MDP);
- 掌握经典算法(如DQN、PPO)的实现和应用;
- 在仿真环境(如OpenAI Gym)中实践强化学习任务;
触觉感知
- 算法:触觉感知涉及力觉、触觉传感器的数据处理和反馈控制。常用算法包括:
- 信号处理:用于处理触觉传感器数据;
- 深度学习模型:用于触觉数据的分类和回归任务;
- 学习路径:
- 学习传感器数据处理技术;
- 掌握触觉反馈控制方法;
- 研究触觉感知在机器人抓取和操作中的应用;
....
#端到端自动驾驶模型的三大仿真测试
“浅析”究竟有多浅——本文将围绕三个自动驾驶端到端模型闭环仿真测试项目的例子,分析不同的端到端模型仿真框架。主要分析的内容是:仿真系统产生的传感器数据是如何传递给端到端模型的,模型输出的控制命令又是如何反馈给仿真系统的。
本文的三个例子正好覆盖了基于游戏引擎的仿真系统、基于3DGS三维重建的仿真系统和基于生成式模型的仿真系统。
Bench2Drive
- Website: https://thinklab-sjtu.github.io/Bench2Drive/
- Github: https://github.com/Thinklab-SJTU/Bench2Drive/
Bench2Drive项目的详细介绍,可以参考的文章:上交ReThinkLab新作 | Bench2Drive:首个端到端自动驾驶综合能力闭环评估开放平台!
简言之,Bench2Drive是一个以开源自动驾驶仿真软件CARLA为基础的测试框架,而且重新实现了UniAD,VAD等方法的代码。我们将以此项目的代码为例分析CARLA的Leaderboard,一个常用的端到端仿真测试框架。
Bench2Drive闭环仿真程序总入口:Bench2Drive/leaderboard/leaderboard/leaderboard_evaluator.py:main(),其中主要创建了一个LeaderboardEvaluator的类的实例并调用了其run()方法。
LeaderboardEvaluator类主要职责包括管理CARLA服务器生命周期、加载路线配置和城镇环境、动态加载智能体模块、验证传感器配置有效性等。
核心组件:
-
_setup_simulation(): Bootstraps CARLA server/client with retry logic -
_load_and_run_scenario(): Core scenario loop with error handling -
run(): Main execution flow with route iteration -
_cleanup(): Ensures proper resource teardown
在创建LeaderboardEvaluator类实例的时候,在该类的构造函数中:
- self.module_agent将从leaderboard/team_code/下获取被测端到端模型的python module,例如来自Bench2DriveZoo仓库的uniad_b2d_agent.py
- 会创建一个ScenarioManager类的实例self.manager。
接下来,在LeaderboardEvaluator的run()方法会调用def _load_and_run_scenario(),在该方法中:
- self.agent_instance会创建一个UniAD的UniadAgent类的实例,UniadAgent类继承自leaderboard/leaderboard/autoagents/autonomous_agent.py中的AutonomousAgent类。AutonomousAgent类在初始化时会给自己创建一个来自leaderboard/leaderboard/envs/sensor_interface.py的SensorInterface()的实例:
self.sensor_interface = SensorInterface() -
self.manager.load_scenario(self.route_scenario, self.agent_instance, config.index, config.repetition_index)进入ScenarioManager类的load_scenario()方法
在self.manager.load_scenario()方法中:
-
self._agent_wrapper = AgentWrapperFactory.get_wrapper(agent)给agent(即上一步的agent_instance)实例选择一个AgentWrapper,对于本文中的UniAD,这将会是实例化一个leaderboard/leaderboard/autoagents/agent_wrapper.py的AgentWrapper类。 -
self._agent_wrapper.setup_sensors(self.ego_vehicles[0])执行AgentWrapper类的setup_sensors方法,在carla中的主车上附加上仿真所用的传感器。
在setup_sensors()方法的代码内部,有使用CARLA仿真经验的人就会发现一个熟悉的语句:sensor.listen(CallBack(id_, type_, sensor, self._agent.sensor_interface)),这里的self._agent就是前文的agent_instance。
其中,CallBack类也来自于leaderboard/leaderboard/envs/sensor_interface.py,该类的__call__方法会将CARLA仿真的传感器数据存入agent的sensor_interface中的data_buffers的Queue()队列中。因此,在仿真运行过程中,每一步的传感器数据就会通过这个callback存入UniadAgent类的实例的sensor_interface中。
我们再回到def _load_and_run_scenario()方法,接下来会进入self.manager.run_scenario(),run_scenario()的核心是ScenarioManager类的def _tick_scenario(self)方法: 其中的ego_action = self._agent_wrapper(),AgentWrapper的__call__方法会直接返回UniadAgent类的实例,调用该类的__call__方法。
在UniadAgent类的父类AutonomousAgent类的__call__方法中,首先就获取了该步仿真下的传感器数据:
input_data = self.sensor_interface.get_data(GameTime.get_frame()) get_data会把数据从sensor_interface的data_buffers中取出。
control = self.run_step(input_data, timestamp) UniadAgent类覆写的run_setup会被调用。就像Leaderboard官方文档给出的agent编写建议creating-your-own-autonomous-agent写的那样,这个函数的输入input_data就包含了一个端到端模型所需要的传感器数据输入。
在UniadAgent类实例的run_setup中,传感器输入经过处理,最终会输入给UniAD模型进行推理:output_data_batch = self.model(input_data_batch, return_loss=False, rescale=True),而推理结果经过一些列的PID调制等步骤,最终会作为control输出。
我们再回到def _tick_scenario(self)方法,上文提到的ego_action = self._agent_wrapper(),ego_action承接了UniAD模型输出的control,并接下来通过self.ego_vehicles[0].apply_control(ego_action)控制仿真中的主车。
至此,我们通过Bench2Drive项目简要分析了CARLA Leaderboard在端到端模型闭环仿真中的输入输出形式。
HUGSIM
- Github: https://github.com/hyzhou404/HUGSIM/
HUGSIM项目的详细介绍,可以参考文章:真实闭环拉满!浙大&华为发布全新闭环仿真工具HUGSIM
简言之,HUGSIM不仅研究了一种新的基于3DGS的自动驾驶场景三维重建方法,而且在该方法的基础上开发了一个可闭环测试端到端自动驾驶模型的仿真系统。
HUGSIM使用Gymnasium作为框架,以完成仿真运行。Gymnasium是一个强化学习环境库,它提供了一套标准化的接口来构建和测试强化学习算法。以下是一些基本用法,重点介绍 gymnasium.make(), gymnasium.reset(), gymnasium.step() 等方法的使用:
1. 创建环境 gymnasium.make()
gymnasium.make() 函数用于创建或加载一个环境。你需要传入环境的ID,例如 "CartPole-v1"。
2. 重置环境 gymnasium.reset()
gymnasium.reset() 方法用于重置环境到初始状态。在每次新的episode开始时,都需要调用这个方法。它返回环境的初始观察值。
3. 与环境交互 gymnasium.step()
gymnasium.step(action) 方法用于执行一个动作,并返回环境的反馈。具体返回值包括:
-
observation:环境的新状态。 -
reward:执行动作后获得的即时奖励。 -
terminated:布尔值,表示环境是否终止(例如,杆倒下或达到最大步数)。 -
truncated:布尔值,表示环境是否被截断(例如,达到最大步数)。 -
info:额外的信息,如调试信息等。
在HUGSIM中,仿真环境和被测对象是两个单独的进程,进程间数据的交换采用的是FIFO管道的形式。FIFO管道是一种特殊的文件,允许不相关的进程通过文件系统进行通信。FIFO管道在文件系统中有一个路径名,任何有权限的进程都可以打开它进行读写。
HUGSIM闭环仿真程序总入口:HUGSIM/closed_loop.py:main()。下面我们仍以UniAD为例。
首先,process = launch(ad_path, args.ad_cuda, output)在另一进程中启动了UniAD_SIM/tools/e2e.sh脚本,通过UniAD_SIM/tools/closeloop/e2e.py运行起了UniAD模型。
然后进入create_gym_env函数中:
-
env = gymnasium.make('hugsim_env/HUGSim-v0', cfg=cfg, output=output)创建仿真环境,进入逐步仿真过程: -
pipe.write(pickle.dumps((obs, info)))将三维重建的渲染结果等信息obs写入obs_pipe,这将作为传感器信息给到UniAD。 -
plan_traj = pickle.loads(pipe.read())从plan_pipe中读取UniAD输出的规划路径。 -
acc, steer_rate = traj2control(plan_traj, info)将规划的路径转化成控制命令。 -
obs, reward, terminated, truncated, info = env.step(action)通过gymnasium框架的step方法,将控制命令给到仿真车辆,运行仿真环境向前计算一步,获得新的obs。 - 重复2-5步骤
HUGSIM仿真环境hugsim_env代码位于sim/hugsim_env/envs/hug_sim.py中,核心是HUGSimEnv类。
在HUGSimEnv类的step方法中,控制命令action改变ego车动作self.ego,在step中会进行测评指标判断以决定仿真是否中止,然后进行到observation = self._get_obs():
在self._get_obs()中:
c2w = self.ego @ c2front
viewpoint = create_cam(intrinsic, c2w)
render_pkg = self.render_fn(viewpoint=viewpoint, prev_viewpoint=None, **self.render_kwargs)
新的self.ego会通过render_fn产生新的渲染结果。
下面来看UniAD_SIM/tools/closeloop/e2e.py中对于UniAD模型的调用,关键步骤有:
-
raw_data = pipe.read() 从obs_pipe读取传感器数据 -
data = parse_raw(raw_data, cameras, img_norm_cfg, history) 对传感器数据做预处理 -
results = model(return_loss=False, rescale=True, **data) 调用UniAD模型进行推理 -
pipe.write(pickle.dumps(plan_traj)) 将后处理过的推理结果写入plan_pip
至此,我们通过简要分析了HUGSIM工程在端到端模型闭环仿真中的输入输出形式。
DriveArena
- Website: https://pjlab-adg.github.io/DriveArena/
- Github: https://github.com/PJLab-ADG/DriveArena/
DriveArena项目的详细介绍,可以参考的文章:首个为高保真度闭环模拟设计!DriveArena:自动驾驶闭环生成仿真平台(上海AI Lab等)
DriveArena项目中的闭环仿真系统,主要由World Dreamer,Traffic Manager和被测的Agent组成。其中World Dreamer通过扩散模型和上游输入,提供新的图像信息,作为传感器信息输入给Agent。Traffic Manager接受Agent输出的规划轨迹,生成交通流信息,提供给World Dreamer。
工程中三者间的信息交互是通过FastAPI实现调度的。FastAPI是一个现代、快速(高性能)的Web框架,用于构建API,FastAPI的性能与Node.js和Go相当,是目前最快的Python Web框架之一,基于ASGI(异步服务器网关接口),支持异步编程。
简言之,DriveArena项目中的World Dreamer, Traffic Manager和Agent是通过Web网络通讯实现信息交互的。
Traffic Manager
Traffic Manager启动的入口在TrafficManager/sim_manager.py:main(),创建了一个SimulationManager类的实例并执行了run_simulation()方法。
下面进入run_simulation()的核心:self.process_frame()。在process_frame()中:
-
limsim_trajectories = self.planner.plan(self.model.timeStep * 0.1, self.roadgraph, self.vehicles) 是根据路网和车辆信息来进行交通流仿真,生成的轨迹准备传输给World Dreamer作为图像生成的依据。 -
diffusion_data = limsim2diffusion(...) 将轨迹转换成扩散模型的输入格式 -
gen_images = self.send_request_diffusion(diffusion_data) 在send_request_diffusion函数中,向"dreamer-api/"发送网络请求response = requests.post(self.DIFFUSION_SERVER + "dreamer-api/", json=serialized_data),扩散模型的输入包含在了serialized_data中,response则包含了生成的图像 -
response = requests.get(self.DRIVER_SERVER + "driver-get/") 向"driver-get/"发送网络请求,response中获取Agent规划输出的ego车轨迹(生成的图像向Agent发送的过程在World Dreamer部分将有介绍) -
limsim_trajectories[self.EGO_ID] = ego_traj 闭环仿真中,代表Agent的规划出的ego车轨迹参与到下一轮的交通流仿真中。
World Dreamer
World Dreamer启动的入口在WorldDreamer/tools/dreamer_fast_api.py:main()。
在主函数中,主要进行了以下操作:
-
image_queue = Queue() 定义了一个队列用来存放渲染的图像 -
pipe, weight_dtype= load_model(cfg) 加载了StableDiffusion模型为后续生成图像做准备 -
uvicorn.run(app, host=args.host, port=args.port, log_level="info")uvicorn是一个ASGI(Asynchronous Server Gateway Interface)服务器,用于运行异步Python Web应用,这行代码的作用是启动一个ASGI服务器,并将FastAPI应用 (app) 部署到指定的主机和端口上。
而在本py文件的app中,主要定义了以下功能:
@app.post("/dreamer-api/")
async def process(request: Request, background_tasks: BackgroundTasks)
在FastAPI中,process函数是由框架自动调用的,@app.post("/dreamer-api/")装饰器会在FastAPI应用启动时自动将URL路径/dreamer-api/与POST请求方法绑定到process函数,这个注册过程发生在应用初始化阶段,无需开发者显式调用。当Traffic Manager发送POST请求到/dreamer-api/端点时,该函数会自动调用。
在process()中,request传入了Traffic Manager送来的交通流信息,在此:
return_tuples = run_one_batch(cfg, pipe, val_input, weight_dtype,transparent_bg=transparent_bg,map_size=target_map_size)
调用了扩散模型生成图像,并在接下来image_queue.put({'param': param, 'img': gen_imgs_list[0]})将图像存入image_queue队列。
background_tasks.add_task(send2agent) 向Agent传输生成的图像被放入了一个后台任务。
在async def send2agent() 中,图像从image_queue中取出:
response = requests.post("http://localhost:{}/driver-api".format(args.agent_port), json=send_data)向"driver-api/"发送网络请求,执行端到端的自动驾驶规划。生成的图像都在send_data里。
Agent
我们再次以UniAD为例,Agent的启动入口在:DrivingAgents/UniAD/demo/uniad_fast_api.py:main(),main函数的前部都在做加载UniAD模型的工作,最后的:
uvicorn.run(app, host=args.host, port=args.port, log_level="info") 与前述类似。
@app.post("/driver-api/")
async def process(request: Request, background_tasks: BackgroundTasks):
在process()中,request传入了来自World Dreamer的生成图像等信息,作为端到端模型的输入,在此:
outputs = custom_single_gpu_test(model, dataset, args.tmpdir, args.gpu_collect, eval_occ=False, eval_planning=False)调用了UniAD模型进行推理,在outputs中输出了规划出的ego轨迹。
@app.get("/driver-get/")
async def get_output()
当Traffic Manager向"driver-get/"发送网络请求时,get_output()会将outputs中的ego轨迹返回。
至此,我们通过简要分析了DriveArena工程在端到端模型闭环仿真中的输入输出形式。
结语
自动驾驶端到端模型的研究是时下十分前沿热门的内容,因此模型在环闭环仿真框架也是百花齐放:使用worldsim软件如CARLA的就沿用成熟的Leaderboard框架,使用新兴方法如3DGS,Diffusion的就视项目情况而定选择一种方便的实现形式。在这种端到端“模型在环”的不考虑硬件实现和仿真实时性的前提下,这些框架都已经能够成功地供研究者展开闭环测试。当然,在端到端模型落地成为可部署的软件形式或域控制器硬件形式时,其闭环仿真系统的输入输出接口形式应该就和目前差异不大了。
....
#X-Driver
迈向可解释VLM自动驾驶(哈工大&百度)
传统模块化自动驾驶系统存在错误传播和泛化能力不足的问题,而端到端方法虽简化了系统设计,但在闭环场景中成功率较低。现有基于多模态大语言模型(MLLMs)的框架在闭环评估中易出现幻觉(不合理决策)和鲁棒性不足。为此,X-Driver提出结合链式思维(CoT)推理和MLLMs,旨在提升决策的可解释性与闭环性能。
- 论文链接:https://arxiv.org/abs/2505.05098
摘要
X-Driver通过以下核心设计实现目标:
- 多模态融合与CoT推理
基于LLaVA模型,整合视觉(图像)与文本(导航指令)输入,利用CoT提示分解驾驶任务为多步推理(如目标检测、交通灯状态判断),生成结构化决策流程(参见Figure 3)。

- 连续图像编码
采用ViT编码器替代VQ-VAE,保留远距离交通灯等关键场景信息,减少信息损失。 - 闭环框架设计
在CARLA仿真环境中验证,通过实时传感器输入与动态调整实现闭环控制,显著提升驾驶评分(Driving Score)和成功率(Success Rate)。
方法
核心架构
- 输入:图像(相机数据)与文本(导航指令)的多模态输入。
- 推理流程:
- 通过CoT提示将任务分解为子任务(目标检测、交通灯状态、车道信息等)。
- 模型整合历史token与当前输入,生成最终决策与轨迹预测(如Table 1所示场景指令)。

- 闭环控制:根据预测轨迹动态调整车辆动作(Figure 1)。

关键技术
- CoT训练数据:通过高质量提示模板引导模型分步推理(如“先定位目标→分析运动→判断风险→更新决策”)。
- 连续编码优势:ViT编码器在远距离目标检测中比VQ-VAE保留更多细节(如交通灯状态),提升感知精度(Table 2)。

实验与结果闭环性能
- 指标:Driving Score(综合路线跟随、速度控制、交规遵守)与Success Rate(任务完成率)。
- 对比结果:
- 在Bench2Drive数据集上,X-Driver(带CoT)的Driving Score达51.7(vs. UniAD的45.9),Success Rate提升至18.1%(Table 4)。
- CoT版本在行人避让等场景中显著优于无CoT模型(Figure 4)。

轨迹预测
- 开环实验:未来3秒轨迹的平均位移误差(ADE)为1.488米,预测精度优于传统方法(Table 3)。

不足与未来展望局限性
- 场景泛化性:实验主要基于仿真环境(CARLA),未验证极端天气或高度复杂城市路况。
- 实时性:MLLM的计算开销可能影响实时响应,需进一步优化推理速度。
未来方向
- 多模态扩展:融合激光雷达、雷达等传感器,增强环境感知鲁棒性。
- 轻量化部署:通过知识蒸馏或模型压缩技术适配边缘设备。
- 跨数据集验证:在真实道路数据(如nuScenes)中测试泛化能力。
....
#SteepGS
无损渲染爆减一半高斯点!SteepGS最速密度控制
最速密度控制
3D高斯泼溅作为神经辐射场(NeRF)的继承者,在新视角合成领域展现出卓越性能,能够实时渲染高分辨率的大规模场景。与传统NeRF的体素化表示不同,3DGS将三维场景的辐射场建模为高斯基元的混合体,每个基元通过位置、尺寸、不透明度和外观等参数定义。通过集成GPU光栅化管线,该方法实现了超高效的渲染与反向传播,显著加速了场景重建与视图推理过程。
3DGS的核心在于交替优化框架:首先以预计算的稀疏点云作为初始化,随后通过标准梯度法优化基元参数以最小化光度误差,同时配合专门设计的自适应密度控制算法(ADC)动态调整基元数量。在致密化阶段,ADC会识别经过充分优化的基元点集,根据其绝对尺寸进行克隆或分裂操作:对尺寸较小的基元沿梯度方向生成两个子代,而对大尺寸基元则在其分布范围内随机生成缩包子代。这种机制旨在扩展场景覆盖范围并捕捉精细几何细节。
然而,现有重构流程存在显著缺陷:生成的冗余点云会导致内存占用激增、渲染速度下降及存储开销过大,这对移动端设备部署形成严重制约。尽管已有研究尝试通过后处理剪枝或量化压缩缓解此问题,但针对致密化过程的优化方法仍属少数。现有改进方案多依赖启发式规则,例如修改分裂准则或基于不透明度分布采样生成新基元,但由于缺乏对致密化机理的深入理解,其性能提升十分有限。
项目主页:https://vita-group.github.io/SteepGS/
本研究通过非凸优化视角对3DGS密度控制机制进行理论解析。我们通过引入"分裂矩阵"这一新型数学工具,揭示基元分裂与损失函数海森矩阵的深层关联,证明分裂操作在逃离鞍点过程中的关键作用。基于此,我们提出四项核心结论:
- 每个基元分裂为两个子代即可实现损失最优下降;
- 子代幅值需减半以保持局部密度;
- 沿分裂矩阵最小特征向量方向位移可获得最速下降;
- 提供子代不透明度的解析归一化方案。
这些理论发现被整合为"最速密度控制"原则,并由此构建出SteepGS系统[1]。
实验表明,SteepGS在保持渲染质量的前提下,将基元数量缩减约50%,显著提升内存效率与渲染速度。我们的工作不仅为3DGS优化提供了理论支撑,更推动了该技术向移动端设备的实用化进程迈出关键一步。
具体方法
尽管传统的自适应密度控制(ADC)在3D高斯泼溅(3DGS)中取得了经验性成功,但其启发式且略显手工化的分割标准往往会产生冗余的点。本节我们将建立一个理论框架来研究密度控制机制。通过这种方式,我们明确回答了三个关键问题:
- 高斯基元需要分割的必要条件是什么?
- 新的高斯子代应该放置在何处?
- 如何调整新高斯点的不透明度?。
结合这些结果,我们提出了一种具有硬件高效实现的新型密度控制策略。
问题设定
假设场景由n个高斯基元表示,其参数集合记为,总损失为(如公式4所定义)。我们的目标是将每个高斯分割为个子代。记第i个高斯的子代参数为,其中是第j个子代。此外,为每个高斯分配一组权重系数来重新调整其不透明度。由于场景通过求和近似,分割过程可以等价地视为用子代的组合局部替换现有高斯:。每个旧高斯的2D投影变为(对所有相机位姿)。注意表示不发生分割,原始高斯保持不变。
我们将所有新高斯的参数收集为,权重系数为作为简写。密度控制算法在每一步确定、和的值。指定后,这些系数将被吸收到子代的不透明度值中。
原始ADC可以通过该框架的视角进行解释:(i) 若则,否则;(ii) 若,则,否则且(对所有);(iii) 两种情况下均设(对所有)。
何时密度控制有益?
本节我们通过检查分割后的光度损失来理论阐明密度控制算法的作用。新增高斯基元后,损失可评估为:
其中表示用新参数和通过公式2渲染的像素颜色。原始ADC[13]无法保证分割后损失会降低。正如我们稍后所示,随机分割点甚至可能增加损失。Bulò等人[3]和Kheradmand等人[14]调整高斯子代的不透明度值以在分割后保持局部总密度。在此设置下,损失近似等同于。然而,我们接下来将证明这种保持原则并非最有效方法。通过选择合适的高斯基元,甚至可以进一步降低损失。
从现在起,我们考虑两个额外的实际条件:首先,为确保分割后总不透明度守恒,我们施加约束(对所有)。其次,我们假设子代参数接近原始参数,即位于的邻域内:(对某些)。定义为第i个高斯在密度控制后的平均位移,表示每个子代相对于的额外偏移。图2展示了我们的符号说明。
基于这些设置,我们提出第一个主要结果,该结果将分割后的损失分解:
定理1 假设关于具有有界三阶导数,则
其中连接所有平均偏移,定义为:
所有证明见补充材料附录C。定理1将平均位移和每个子代个体偏移的影响解耦并分组。蓝色标注的前三项称为均值偏移项,共同表示整体均值偏移的影响。由于同时偏移所有子代等价于对原始高斯应用相同偏移,橙色标注的涉及个体偏移的项完全捕捉了分割过程的内在效应。我们将该求和中的各项分离,称为分割特征函数,其完整描述了单个高斯点分割的效果:
本质上,分割特征函数关于矩阵呈现二次型。我们称为分割矩阵,其完全决定了分割特征函数的行为。定理1得出以下两个见解:
密度控制帮助逃离鞍点 通过使用定理1的右侧作为最小化损失的代理,可以观察到优化均值偏移项不需要密度控制,标准梯度下降即可实现。然而值得注意的是,公式4的损失函数是高度非凸目标,其损失景观中存在大量多余鞍点(见图1右侧示意)。梯度容易陷入这些鞍点,此时梯度下降无法带来进一步改进。但通过在鞍点处将高斯点分割为多个粒子,会产生一个新项——由分割特征函数捕获——这些项可能变为负值从而进一步降低损失。因此,密度控制成为逃离鞍点的有效机制。
何时分割能降低损失? 实际上,可以通过分割特征函数进行更精细分析。由于分割对损失的总体贡献表示为关于分割矩阵的二次函数之和,仅当相关分割矩阵非正定时才可能为负从而降低损失。这意味着执行分割的必要条件是,其中表示矩阵的最小特征值。
最优密度控制
基于定理1,我们可以推导出更强的结果。我们希望找到一种密度控制策略,在引入最少数量点的同时实现损失的最陡下降。每一步最大化损失下降能强制保持低重建误差并加速收敛。为此,我们制定以下约束优化目标:
该目标寻求最优配置:子代数量、重加权系数以及新基元参数更新(对所有)以最大化损失下降。
虽然直接求解公式7很困难,但定理1提供了理想的二阶近似作为替代。由于分割高斯的效果完全由分割特征函数表征,因此最小化关于即可。相应的解是简单且解析的。我们的主要结果如下:
定理2 公式7的最优解包含两部分:
- 若分割矩阵半正定(),则分割无法降低损失。此时设且不进行分割。
- 否则(),以下分割策略在约束下最小化:
其中表示对应最小特征值的特征向量。
我们将定理2概述的分割策略称为最陡密度控制(SDC),其具有四个实际意义: i) 密度控制的必要条件是分割矩阵的非正定性; ii) 将每个高斯分割为两个子代足够,生成更多子代无额外益处; iii) 新基元的幅值必须减半以保持局部不透明度; iv) 两个子代的参数应沿分割矩阵最小特征值对应特征向量的正/负方向更新。
此外,(i)的结果(如4.2节所示)可作为过滤器减少待密度控制的点数;(ii)的结果证明了现有ADC算法中"两个子代"选择的合理性,并确保适度增长率;(iii)的结果与Bulò等人和Kheradmand等人的方法形成对比,后者基于渲染特定方案调整新高斯的不透明度;(iv)给出了两个更新方向,当点优化到驻点时将其转移到非鞍点区域(如图1右侧所示)。图3展示了该分割方案如何局部优化几何结构。
最陡高斯泼溅
本节我们实例化一个以SDC作为密度控制方案的3DGS优化算法,称为SteepGS。SteepGS的核心是计算分割矩阵并利用它们决定何时及如何分割点。附录A.1的算法1提供了SteepGS的参考实现。我们证明这些可以高效实现并集成到CUDA内核中。
回顾定理1中分割矩阵的形式,注意到表示标量损失反向传播到第i个高斯基元输出的梯度,是第i个高斯关于其自身参数的Hessian矩阵。值得注意的是,分割矩阵是逐点定义的,仅依赖于每个高斯单独的Hessian。因此存储分割矩阵的总内存占用为。当我们仅考虑位置参数时,。
为计算分割矩阵,我们注意到梯度在计算的反向传播过程中已获得。剩余部分——Hessian矩阵可解析近似为(推导见附录C.4):
其中,表示由给出的投影矩阵,。可并行计算,且中间结果如可从先前前向计算中复用。计算矩阵的最小特征值和特征向量的复杂度为。由于我们仅使用位置参数,3×3矩阵的最小特征值和特征向量可使用求根公式[29]计算。尽管分割矩阵利用了二阶信息,但它与总损失的完整Hessian不同,后者排除了完整Hessian中的交叉项[36]。令人惊讶的是,问题的结构允许仅通过分割矩阵提供的部分Hessian信息即可逐点识别鞍点。
实验效果
总结一下
本研究针对实时高分辨率新视角合成的领先技术——3D高斯泼溅(3DGS)存在的效率问题提出了解决方案。虽然3DGS效果显著,但其致密化过程常产生冗余点云,导致高内存占用、低效渲染和存储压力,阻碍了在资源受限设备上的部署。为此,我们建立了理论框架来阐明并优化3DGS的密度控制机制。分析揭示了分裂操作对逃离鞍点的重要性,确立了致密化的最优条件,包括子代高斯的最小数量及其参数更新方式。基于这些理论成果,我们提出的SteepGS集成了最速密度控制策略,在保持紧凑点云的同时减少50%的高斯点,显著提升了实际应用中的效率和可扩展性。
参考
[1] Steepest Descent Density Control for Compact 3D Gaussian Splatting
....
#DriveMLM
用多模态大语言模型进行闭环自动驾驶~
推荐一篇多模态大模型用于自动驾驶的论文,实验中展示了很好可解释性,并且在CARLA仿真器上实现SOTA的驾驶得分。
原文题目:《DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving》
原作者 :上海AILab OpenGVLab 港中文 王文海大佬团队
开源地址:https://github.com/OpenGVLab/DriveMLM
摘要:
这是一个基于LLM的自动驾驶框架,能够在仿真器中实现闭环自动驾驶。可以在百度Apollo上即插即用。
介绍
作者给出三个框图表示自动驾驶算法的演进过程,图a表示基于规则需要专家系统知识,b图端到端框架由数据驱动,这些算法难以处理corner case。图c则是本文基于大语言模型的设计,大语言模型具备广泛的知识、稳健的逻辑和高级的认知能力。(extensive world knowledge, robust logical reasoning, and advanced cognitive capabilities)。
作者罗列了近期的一些将LLM融合进AD的工作:
- [1]Driving with LLMs: Fusing Object-Level Vector Modality for Explainable Autonomous Driving
- [2]Drivelm: Drive on language.https://github.com/OpenDriveLab/DriveLM
- [3]MetaGPT: Meta Programming for Multi-Agent Collaborative Framework
- [4]MTD-GPT: A Multi-Task Decision-Making GPT Model for Autonomous Driving at Unsignalized Intersections
- [5]LanguageMPC: Large Language Models as Decision Makers for Autonomous Driving
- [6]DiLu: A Knowledge-Driven Approach to Autonomous Driving with Large Language Models
- [7]DRIVEGPT4: INTERPRETABLE END-TO-END AUTONOMOUS DRIVING VIA LARGE LANGUAGE MODEL
这些现有方法重点在于生成基于语言的决策,不能直接用于车辆控制。高级别的决策和低级别的控制操作之间存在gap,在传统的模块化方案中,决策和控制之间由规划planning模块连接。因此作者通过将规划和决策对齐来实现基于LLM的AD闭环系统DriveMLM。进行了如下三个设计:
- [1]研究Apollo的决策规划部分,转换为可以被LLM轻松处理的形式;
- [2]设计多模态LLM规划器,接受多视角RGB、激光雷达点云、交通规则、系统消息、用户指令来预测决策状态;
- [3]从CARLA中搜集280h的数据,设计数据引擎转换为决策状态和解释标注;
这样做可以达到了三个优点:
- [1]轻松插入到Apollo,实现闭环驾驶;
- [2]支持语言指令输入,更加灵活;
- [3]行为决策可解释;
方法
模型整体框图如下:
系统输入包含四个部分:多视角RGB、激光雷达点云、系统消息(交通规则、决策状态定义)和用户指令;
多模态大语言模型MLLM的输入是四个输入量的Embeding X;
MLLM的输出是决策状态 S和解释E;
决策状态S会输入到规划和控制模块,预测用于控制的轨迹;
行为规划状态对齐
如何将LLM输出的结果转化为车辆的控制信号。按照常规做法,决策部分可以分为两个阶段:速度决策和路径决策。速度决策有加减速或保持 [KEEP、ACCELERATE、DECELERATE、STOP],路径决策状态包括跟随和转向 [FOLLOW、LEFT CHANGE、RIGHT CHANGE、LEFT BORROW、RIGHT BORROW]。
作者通过如下的系统消息System Message来进行约束对齐,告知LLM一些模板和答案的选项,(让LLM做选择题来输出有限选项中的答案?妙啊):
“你是驾驶汽车的驾驶助手。你需要遵循导航命令和交通规则。
交通规则是xxxxx。
路径决策包括 [FOLLOW,LEFT CHANGE...]。路径决策定义如下:FOLLOW表示保持当前车道,LEFT CHANGE表示xxxx。xxxx表示xxx
速度决策包括 [KEEP,...]。速度决策定义如下:KEEP表示保持xxxx表示xxx
给定从相机或 LiDAR 获得的导航命令和驾驶场景,
你应该从预定义的选项中选择路径决策和速度决策,
并解释您的决策。”
相应的文中MLLM应对提问的回答示例如下:
人类提问: 描述当前驾驶环境。
DriveMLM答:现在是白天的。一辆红色的汽车在自我前面行驶。
人类提问: 右转,请选择路径决策和速度决策。
DriveMLM答:RIGHT CHANGE, KEEP。
人类提问: 请解释为什么选择这些决定?
DriveMLM答:由于右转弯需要提前而不是右转弯车道,因此更改为右车道。人类提问: 我很急。你能超车吗?
DriveMLM答:LEFT CHANGE, ACCELERATE。
人类提问: 为什么选择这些决定?
DriveMLM答:由于左车道上没有车辆,为了超过前车,需要相左变道并加速。
MLLM规划器
两个部分组成:多模块tokenizer和MLLM解码器。
多模块tokenizer的设计如下:
- 对于多视角RGB:使用VIT-g 提取特征,结合temporal QFormer构建时序内容;
- 对于激光雷达:使用稀疏金字塔变压器Transformer(Sparse Pyramid Transformer, SPT)提取特征,使用Qformer获得Embedding;
- 对于系统消息和用户指令:当作常规文本使用LLM的oken embedding层即可;
MLLM解码器:构造了系统消息模板,回答被格式化到决策状态。使用交叉熵损失监督。
高效的数据引擎
在CARLA中构造决策状态和解释的标签,流程如下:
- 构造具有挑战的场景challenging scenarios;
- 让专家系统(人类或代理)驾驶通过,安全到达才会记录数据;
- 根据安全的专家轨迹生成速度决策和路径决策标签;
- 根据场景生成行为解释的标签;
- 人工对解释标签进行修正,并用GPT3.5扩展多样性;
实验分析
数据分析
作者采集了280h的训练样本,5万条路线,30个scenarios,不同的光照和天气条件,8个小镇地图(Town01, Town02, Town03, Town04, Town06, Town07, Town10HD, Town12),每个场景在每张地图中有200个随机触发点。场景包括常见和罕见的案例,具体信息可以看论文附录。
与现有的驾驶理解的数据集对比:
本文的数据有两个独特的特征。第一个是行为规划状态的对齐。这使能够将 MLLM 规划器的输出转换为控制信号,以便在闭环驾驶中控制车辆。第二个是人机交互注释。它的特点是人类给出的自然语言指令以及响应决策和解释。目标是提高理解人类指令并相应地响应的能力。
闭环测试
测试效果要好于现有的算法:
CARLA Town05 Long的闭环测试结果
Roach(ICCV 2021,ETH,强化学习教练监督模仿学习的agent,TCP的训练数据就是以它为agent)
Interfuser(CoRL2022,商汤,carla leaderboard1.0 排名第二)
Think Twice(CVPR2023,上海AILab,不在leaderboard1.0,但是在Town05上优于Interfuser那也是前三吧)。
leaderboard1.0目前榜单第一是ReasonNet,CVPR2023,商汤。
闭环测试的评价指标有:驾驶分数 (DS)、路线完成 (RC) 和违规分数 (IS),DS是RC和IS的乘积。还使用 Miles Per Intervention (MPI) 评估驾驶性能,这是工业中广泛使用的指标,MPI = (Total Autonomous Miles) / (Total Interventions)。表中的DD表示data driven,FSM是有限状态机Finite State Machine。
消融实验:
MV 表示多视图图像,CT 表示连接时间标记,TQ 表示时间 QFormer,PC 表示点云。MV + TQ 表现出最佳决策性能,CT 在准确性方面带来了小幅改进,但会导致更大的计算消耗。PC对DriveMLM影响不大。这可能是由于稀疏金字塔transformer和 MLLM 解码器之间的巨大表示差距造成的。
案例分析和可视化
案例a,人类要求超车且条件允许超车。LLM给出左转和加速指令,解释说“前车较慢且左车道空,我会超车”。
案例b,下图人类要求超车但是不具备超车条件。LLM给出保持车道、减速的指令。解释为“左车道有车、右车道不允许超车,我不能超车”。(确实还挺合理,但是为啥要减速)
零样本案例1,下图在nuScens上测试,人类要求保持车道,LLM输出保持停车,LLM给出的解释是“交通灯是红色,我们该停车”。(我还以为理由会是前车太近,并亮起刹车灯,我甚至没注意到红灯/狗头)
零样本案例2,人类要求保持车道,LLM输出保持、并减速,理由是前方为左转路口应该减速。
总结
DriverMLM提出了基于多模态到决策控制的框架设计,让AD系统更加透明可信。代码即将开源,很漂亮的工作,其中大模型部分用的是LLaMA-7B,有能力的实验室可以复现测试。港中文MMLab的另一新篇工作LMDrive也是LLM驱动的闭环自动驾驶(LMDrive: Closed-Loop End-to-End Driving with Large Language Models)已开源!https://github.com/opendilab/LMDrive。可以对比看一看。
这里梳理一下最近的相似命名,防止混淆:DriveMLM、DriveLM、DriveLLM、LMDrive
- DriveLLM: Charting The Path Toward Full Autonomous Driving with Large Language Models(TIV 2023)
- DriveLM:Drive on Language: https://github.com/OpenDriveLab/DriveLM
- DriveMLM: Aligning Multi-Modal Large Language Models with Behavioral Planning States for Autonomous Driving(本篇)
- LMDrive: Closed-Loop End-to-End Driving with Large Language Models(港中文)
另外,商汤和上海AILab真的开源了很多优秀的端到端自驾算法,榜单上这些TOP算法多数都是来自于商汤和上海AILab。
....
#自动驾驶视觉大语言模型思维链层层拆解
一、思维链在自动驾驶技术中的兴起
近期思维链CoT的研究热度持续上升,成为车企辅助驾驶赛道的新热点。
多模态CoT(如DriveVLM-Dual)在NuScenes测试集上mAP提升19%
端到端时延优化至300ms内(地平线征程6芯片支持)
优度的突破带来了研究的热度和企业的布局。各大平台讨论量急剧上升。
| 平台 | 相关话题帖数 | 热搜关键词 |
| 知乎 | 4.2k+ | #CoT自动驾驶解释性#、#VLM泛化# |
| Reddit,SelfDriving Cars | 680+ | "How CoT beats HD maps?" |
| 微信指数 | 峰值158万 | "思维链自动驾驶"搜索量周环比+33% |
还有多家企业基于思维链技术展开研究布局。
| 公司/机构 | 动作 | 技术亮点 |
| 理想汽车 | 发布MindVLA 2.0 | 支持实时CoT推理(延迟<200ms) |
| 特斯拉 | 申请"Vision Chain"专利 | 融合Dojo超算与CoT场景生成 |
| 毫末智行 | 与NVIDIA合作DriveGPT-X | 千亿参数+车端蒸馏CoT模型 |
在专利和融资上也出现上升趋势,根据报道统计:
- 融资事件:2025年Q1自动驾驶CoT相关初创公司融资超$3.7亿(同比+215%)
- 专利趋势:中国CoT+VLM专利2025年H1达1,892件(占全球54%)
二、什么是思维链
思维链(Chain of Thought, CoT)是一种提示工程技术,通过引导大语言模型(LLM)将复杂任务分解为多步骤推理过程,从而提升其逻辑推理和问题解决能力。其核心思想是向模型展示包含中间推理步骤的少量示例(Few-shot),使模型在生成答案时能模仿人类逐步思考的模式,例如先分析问题、拆分步骤、逐步推导,最终得出答案。这种方法显著提升了模型在数学计算、关系推理等复杂任务中的表现。

图 思维链CoT提高回答准确率示例,图片来自网络
CoT的典型应用包括零样本思维链(直接要求模型展示推理)和少样本思维链(提供带步骤的示例),其优势在于通过显式结构化推理减少模型错误,同时增强结果的可解释性。研究表明,CoT技术是LLM“智能涌现”的关键驱动力之一,尤其在参数规模超过100B的模型中效果更显著。

图 典型的CoT工作流程,图片来自网络
- 定义与原理
定义:CoT是一种结构化的问题解决方法,通过生成中间推理步骤(如“问题→步骤1→步骤2→…→答案”)引导模型完成复杂任务。
核心原理:化繁为简:将复杂任务拆解为可管理的子问题。
逐步推理:模拟人类“分步思考”的认知策略。
- 技术特点
增强模型能力:提升逻辑推理、数学计算等复杂任务的性能。 弥补传统提示方法直接输出答案的局限性。
可解释性:通过展示中间步骤,使模型决策过程更透明。
- 应用场景
典型任务:
| 任务类型 | 示例 |
| 数学应用题 | 多步骤算术运算 |
| 逻辑推理题 | 谜题或因果推断 |
| 常识推理 | 需要背景知识的问答 |
如果还觉得以上描述太抽象,我们一张图直观解释:

图 一个典型的思维链,图片来自AIOS论文
上图就是让LLM查询某一航班到达目的地的天气,经常出差的人再熟悉不过了。
这个问题需要分解,指定航班什么时候到达哪里?到达当天的天气预报。
这种分而治之的思考方式,不仅大大提高回答准确率,而且这种分步走的方式还可以让提问实现“中断-调度-恢复”功能。这样可以让多个提问代理共用一个LLM模型,而不是某一个提问代理长期霸占LLM;和多任务操作系统让多个任务通过中断-保存上下文-恢复的方式轮流使用CPU是一样的。中断的前提是任务可分,这也是为什么这张图来自AI操作系统论文的原因。
三、CoT思维链在视觉大模型的原理和应用
从上面描述可知,CoT是一个语言大模型的概念,以视觉输入为主的自动驾驶VLM与CoT该如何结合?
主要是靠多模态输入对齐来融合视觉-语言特征。
具体通过视觉编码器(如BEV、Transformer)将摄像头/LiDAR数据与文本指令映射到统一语义空间,形成可推理的联合表征。
示例:DriveVLM使用Qwen-VL模型将图像序列转换为场景描述文本,作为CoT推理的输入。
所谓对齐是把视觉信息映射到语义空间,从而把视觉信息和语义信息统一到语义空间,先喂给CoT推理分解为子问题,再把子问题喂给语言大模型处理,并返回最终答案。

所谓对齐,实际是用一个小的神经网络(称为projector),比如多层感知机,把视觉数据(一个向量空间)映射到语义空间(另外一个向量空间)。Projector是可以训练的,让数据通过训练来“塑造”最佳的Projector权重参数。
除了对齐外,分层推理是另外一种常见的结合视觉和思维链的方式。这种方式更加简单直观,就是先把视觉场景转换为自然语言描述(典型的图生文或者视频生文),再把自然语言描述给思维链处理。
一个典型的CoT模块分层推理如下:
| 阶段 | 功能 | 输出示例 |
| 图生文场景描述 | 生成自然语言的环境描述(如天气、障碍物) | "左前方有行人正在过马路" |
| CoT推理链条场景分析 | 推理潜在风险与优先级 | "行人可能突然加速,需减速" |
| 输出规划 | 生成元动作序列(转向/制动等) | "减速至20km/h,向右微调方向" |
CoT在技术实现的关键如下:
- 动态思维链生成
自回归推理:模型基于当前状态迭代生成下一步动作,如百度X-Driver通过CoT链式预测轨迹点。
知识增强:引入驾驶常识库(如交通规则)约束推理逻辑,避免不合理决策。
- 可解释性保障
中间步骤可视化:例如理想汽车的VLA模型会输出“检测到施工锥桶→预计影响车道→规划绕行路径”的完整推理链。
失败归因:通过CoT步骤回溯错误源头(如误识别停车标志)。
- MoE式的答案生成:还有一些思维链通过类似于混合专家模型MoE的投票机制来消除答案的不一致性,比如下图:

图 类似于MoE的CoT架构,图片来自网络
- 最关键的问题,是CoT如何合适地把大问题分解为一系列小问题。这一点我们在下一节单独详述。
四、自动驾驶场景下思维链的问题拆分
在自动驾驶场景下,Chain-of-Thought(CoT)的问题拆分和评价需要紧密结合多模态感知、场景理解和决策规划等关键环节。
以下给出一个Cot 思维链在自动驾驶中的详细实例,车辆通过十字路口场景。
- 感知阶段
问题拆分:将环境感知拆解为信号灯状态识别、行人信息捕捉、周边车辆动态监测三个子问题。
摄像头通过图像识别算法,定位路口信号灯区域,判断其颜色为黄色;
利用人体姿态检测模型,锁定路口中间行人的位置,同时分析其肢体动作,判断正处于行进状态;
结合雷达测距与摄像头视觉信息,获取右侧车辆的实时位置与速度,通过前轮转向角度、转向灯亮起等细节,初步判定有变道意图。
- 分析阶段
问题拆分:分别分析信号灯、行人、变道车辆对当前行驶的影响,并评估综合风险。
信号灯影响:黄灯剩余时间未知,根据常规交通灯周期推算,快速变红概率高,若强行通过可能违反交通规则;
行人干扰:行人位于车辆行驶路径上,若保持原速行驶,到达路口时可能与行人发生碰撞;
变道风险:右侧车辆变道会侵占本车道空间,且两车速度差与相对位置存在碰撞可能;
综合风险:三者叠加导致当前行驶存在严重安全隐患,需优先消除风险。
- 推理阶段
问题拆分:针对每个风险点,结合规则与车辆性能推理对应决策,并整合为最终方案。
信号灯应对:依据 “黄灯无法安全通过需停车” 的交通规则,车辆需做好减速准备;
行人保护:为确保行人安全,必须降低车速,直至行人完全离开行驶路径;
变道避让:考虑到车辆制动距离与变道车辆的动态,减速或停车避让可避免碰撞;
最终决策:综合以上因素,同时满足交通规则与安全需求的最优解是立即减速停车。
- 决策执行阶段
问题拆分:将停车决策拆解为制动力度控制、停车位置选择、后续动作规划三个步骤。
系统根据当前车速与距离,计算合适的制动压力,向制动系统发送指令,平稳降低车速;
选择距离行人与变道车辆安全距离外的位置,完全停车等待;
持续监测行人与变道车辆动态,待行人通过、右侧车辆完成变道,且信号灯状态允许时,再规划启动与行驶路径。
通过 Cot 思维链对复杂场景的层层拆分与逻辑推导,自动驾驶系统能够有条不紊地处理多源信息,在保障安全的前提下做出合理决策,显著提升应对复杂路况的能力。

图 CoT在自动驾驶场景中的问题分解示意图
思维链问题分解虽好,但是如何分解才是关键。
在原始论文《Chain-of-Thought Prompting Elicits Reasoning in Large Language Model》中,一句话暗含了CoT思维链的核心要点和痛点。“chain of thought, in principle, allows models to decompose multi-step problems into intermediate steps, which means that additional computation can be allocated to problems that require more reasoning steps.”
“in principle”,“原则上”允许推理模型把多步问题分解为中间步骤,但是这个原则上具体该怎么做,才是CoT的核心问题。
具体的实现方式有如下三种:
| 方法 | 描述 | 适用场景 |
| 显式CoT提示 | 人工设计中间步骤模板,引导模型逐步输出 | 少样本学习、数学推理 |
| 隐式CoT(知识蒸馏) | 通过训练让模型自动学习中间推理步骤 | 大规模预训练模型 |
| 动态规划(planning) | 任务分解与资源分配由模型自主决策 | 复杂多模态任务 |
所谓显式CoT提示,主要是人为规则,对于特定场景,已经人为预先给出了子问题列表。因此本文不多着墨。
而动态规划planning模式,才是CoT的终极形态。
planning模式下,一个典型的实例HuggingGPT介绍自《HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face》一文。HuggingGPT 以大型语言模型(如 ChatGPT)作为核心控制中枢,搭配各类专家模型作为具体执行者。其完整工作流程可划分为四个关键阶段:首先是任务规划环节,核心大语言模型对用户输入的请求进行拆解分析,将其转化为清晰的任务清单,并梳理出各任务间的执行先后顺序及所需资源依赖关系;进入模型选择阶段后,大语言模型会基于 Hugging Face 平台上专家模型的功能特性说明,为每项任务精准匹配最合适的执行模型;随后在任务执行阶段,分布于混合端点的专家模型各司其职,完成分配给自己的具体任务;最后响应生成阶段,核心大语言模型汇总整合各专家模型的推理成果,同时生成任务执行的工作流日志摘要,最终形成完整、准确的答案反馈给用户。

图 带有预置模版槽位(图中的大括号)的HuggingGPT,自动规划分解子问题为主,认为模版为辅,图片来自论文《HuggingGPT: Solving AI Tasks with ChatGPT and its Friends in Hugging Face》
HuggingGPT的工作流程如下:
- 任务规划(Task Planning):
a. 当HuggingGPT接收到用户请求时,首先使用ChatGPT(一个大型语言模型)来分析请求,理解用户的意图,并根据请求将任务分解成一系列可解决的子任务。请注意,是使用LLM来分解子任务。
b. 在这个阶段,ChatGPT需要确定子任务的依赖关系和执行顺序,以建立它们之间的连接。为了提高ChatGPT在任务规划中的效果,HuggingGPT采用了基于规范的指令和基于演示的解析,这相当于是用人为模版来支持辅助LLM分解子任务。
c. 基于规范的指令要求ChatGPT按照特定的规范(例如JSON格式)来表示和解析任务。
d. 基于演示的解析则通过包含用户请求及其对应输出的多个演示来帮助ChatGPT更好地理解任务规划的意图和标准,以及任务之间的逻辑联系。
- 模型选择(Model Selection):
a. 在任务规划之后,HuggingGPT会根据解析出的任务列表来匹配任务和模型,即选择每个任务中最合适的模型。
b. 为了实现这一点,HuggingGPT使用模型描述作为连接每个模型的语言接口。具体来说,它首先从机器学习社区(如Hugging Face)收集专家模型的描述,然后使用动态的基于上下文的任务-模型分配机制来选择模型。
c. 为了减少提示中的token使用,HuggingGPT首先根据任务类型过滤模型,并基于Hugging Face上的下载次数对选定的模型进行排名,选择前K个模型作为候选。
- 任务执行(Task Execution) :
一旦为某个解析任务分配了特定模型,下一步就是执行该任务(即进行模型推理)。在这一阶段,HuggingGPT 会自动将任务参数输入到模型中,执行这些模型以获得推理结果,然后将结果反馈给 LLM。
- 响应生成(Response Generation):
在所有任务执行完成后,HuggingGPT 需要生成最终响应。HuggingGPT 在这一阶段整合前三阶段(任务规划、模型选择和任务执行)的所有信息,包括计划的任务列表、任务的模型选择和模型的推理结果,生成简洁的总结。
四、总结
尽管Planning(规划)来分解子问题子任务,是CoT的终极形态,非常强大,但用LLM来分解也导致了结果的不可预测性,源自LLM本身的黑盒性。相较于可靠地使用人为预置子任务子问题,或者预置分解规则,“Planning”是一个相对较难预测的技术。
因此,思维链提示目前还存在一些不足,列出如下:
- 目前所生成的思路链在事实准确性方面存在不足,后续需通过优化迭代来增强其事实可靠性。
- 思路链提示技术的有效应用高度依赖大规模语言模型,这使得实际使用过程中产生较高的成本支出(训练成本,维护成本等)。
- 思路链的标注工作耗费大量人力与资源,难以实现大规模推广应用,因此探索自动生成思路链的方法成为重要方向。
- 思路链提示示例的效果受提示工程的影响显著,输出结果波动较大,亟待发掘更为稳定、可靠的提示策略。
- 在处理简单任务时,思路链提示带来的效果提升不够明显,有必要拓展其应用领域,以充分发挥该技术的潜力。
这些CoT的不足在应用到自动驾驶VLA模型时,自然也延续了下来。这一点决定了自动驾驶中CoT的应用,必然经历从人为规则分解任务到机器学习分解子任务,最后竞赛机器学习分解子任务的优度。
....
