导读:
OccLLaMA是首个结合3D占用预测作为视觉表征的生成式世界模型。大量实验表明,OccLLaMA在多个任务上实现了不错的性能,包括4D占用预测、运动规划和视觉问答,展示了其作为自动驾驶基础模型的潜力。©️【深蓝AI】编译
1. 研究背景
多模态大型语言模型(Multimodal Large Language Models,MLLMs)的兴起促进了它们在自动驾驶中的应用。目前基于MLLMs的方法是通过学习感知与动作之间的直接映射来执行动作,忽略了世界的动态性以及动作与世界动态之间的关系。因此,探索如何构建智能体的世界模型对于具身智能(Embodied AI)的进步至关重要。
以自动驾驶为代表的具身智能应用,也不乏有对世界模型的研究。目前,自动驾驶的世界模型主要集中在诸如视频预测、点云预测和占用预测等传感器预测任务上。然而,现有模型无法同时实现场景演变的预测、语言推理和与真实世界的交互。相比之下,本文作者提出了一种能够统一视觉、语言和行动建模(VLA)的模型。然而,构建VLA世界模型面临两个关键挑战,亟待解决:
- 第一个是构建一种通用的三维视觉表征,以促进理解和生成;
- 第二个是开发一种能够容纳VLA模态的多模态框架。
基于上述背景,本文提出OccLLaMA框架用于解决上述两个关键挑战,该模型是一种统一的三维占用-语言-行动生成世界模型,并且统一了与VLA相关的任务,包括但不限于场景理解、规划和4D占用预测,如图1所示。
本文主要贡献如下:
1)本文提出一种占用-语言-行动生成世界模型OccLLaMA,它使用Occ作为视觉表征,通过基于LLaMA的统一多模态词汇和增强的自回归模型涉及多个任务。
2)该模型利用一种新型场景分词器,能够高效地离散化和重构Occ场景,同时考虑稀疏性和类别不平衡。
3)在与最先进的方法进行了对比实验,在多个任务(包括4D占用预测、运动规划和视觉问答)中,表现超过现有方法。
2. 相关工作
2.1 MLLMs in Autonomous Driving
大语言模型(LLMs)在自动驾驶的应用包括场景理解和端到端决策制定。基于LLM的决策制定方法在解决基于学习的系统中的可解释性和推广性挑战方面有很大潜力,通过在文本空间中进行推理。在自动驾驶场景中,LLMs主要任务是将环境信息传达给模型,以及研究如何更有效地扩展输入模态。例如,基于模板的自然语言场景描述、与语言提示结合的向量嵌入输入、基于相机感知的图像嵌入等。
2.2 World Model in Autonomous Driving
世界模型旨在基于动作和观察预测未来场景。在自动驾驶中,世界模型通常用于数据生成和决策制定。各种模型以不同的方式表示场景,可以分为2D图像表示、3D点云表示和3D占用表示。使用2D图像表示的视觉世界模型由于传感器的灵活性提供了可扩展性,但缺乏3D场景理解。虽然3D点云表示解决了这个问题,但它们缺乏语义信息。一些研究关注多模态表示,但生成的不同模态的结果之间的特征对齐仍然困难。因此,整合3D场景表示和语义理解是建模场景演变的一种有前景的方法。
2.3 Autoregressive Visual Generation
自回归(AR)视觉生成是指使用自回归方法生成图像的模型。早期模型如VQVAE、VQGAN和Dalle将图像转换为离散标记并顺序生成,面临输出性能和可扩展性方面的限制。随后,扩散模型(Diffusion Models)因其独特的范式主导了视觉生成领域。最近,自回归模型的简洁性使得统一理解和生成成为可能,能有效扩展大数据。VAR模型使得基于GPT的自回归模型在图像生成方面超越了扩散模型。Llama-Gen在条件图像生成方面超越了扩散模型,表明纯自回归模型可以作为没有视觉信号归纳偏差的图像生成基础。将AR语言模型与视觉生成整合仍然具有挑战性,特别是在为语言和视觉任务创建统一模型方面。
3. 方法精析
3.1 方法概述
如图2所示,OccLLaMA作为一个统一的占用-语言-动作框架,它的核心组件包括场景分词器(Scene Tokenizer)和占用-语言-动作生成世界模型。为了实现多任务,作者引入了一个三阶段的训练方案,用于场景分词器的训练、占用-语言-动作预训练和指令调优。
3.2 场景分词器
本方法采用类似于VQVAE的架构,通过使用离散标记(Discrete Tokens)来表示场景。然而,占用中的网格大约90%都充斥着空气,导致显著的稀疏性。现有的方法对空气类别应用密集卷积运算既昂贵又效率低下。此外,各类别之间的不平衡进一步也阻碍了学习效率。为了解决这些问题,本文在编码器中引入了一种稀疏编码策略(一种类似于点云处理技术)。同时,将非占用类别与其他语义类别解耦,从而实现更高效的场景重建。
编码器(Encoder):原始场景表示为
x
∈
R
H
×
W
×
D
x \in \mathbb{R}^{H \times W \times D}
x∈RH×W×D,其中3D空间被划分为密集的$H \times W \times D
体素,每个体素被分配一个语义标签
体素,每个体素被分配一个语义标签
体素,每个体素被分配一个语义标签l \in \mathbb{R}
。将
。将
。将x
进行稀疏化处理,得到
进行稀疏化处理,得到
进行稀疏化处理,得到y \in P^{H \times W}
,通过丢弃空气体素,并将语义占用体素表示为沿
B
E
V
方向排列的
1
D
伪点云集
,通过丢弃空气体素,并将语义占用体素表示为沿BEV方向排列的1D伪点云集
,通过丢弃空气体素,并将语义占用体素表示为沿BEV方向排列的1D伪点云集P = {p_i}_{i=1}^{N}
,其中
,其中
,其中N
是当前支柱内的非空气体素的数量。每个点
是当前支柱内的非空气体素的数量。每个点
是当前支柱内的非空气体素的数量。每个点p_i
是一个向量
是一个向量
是一个向量(d,l)
,其中
,其中
,其中d
是高度,
是高度,
是高度,l
是语义标签。然后,利用支柱嵌入
(
p
i
l
l
a
r
s
e
m
b
e
d
d
i
n
g
)
聚合伪点云特征,并使用
s
w
i
n
−
t
r
a
n
s
f
o
r
m
e
r
块获得
B
E
V
特征图
是语义标签。然后,利用支柱嵌入(pillars embedding)聚合伪点云特征,并使用swin-transformer块获得BEV特征图
是语义标签。然后,利用支柱嵌入(pillarsembedding)聚合伪点云特征,并使用swin−transformer块获得BEV特征图z = E(y) \in \mathbb{R}^{H_r \times W_r \times c}
,其中是下采样率,
,其中是下采样率,
,其中是下采样率,c$是潜在特征维度。
量化(Quantification):为了获得离散表示,通过向量量化将 z z z转换为一组字典条目 z ^ \hat z z^。可学习的字典 Z = { z ^ i } i = 1 K Z = \{ \hat{z}_i \}_{i=1}^{K} Z={z^i}i=1K由个向量组成,每个向量的维度为 c c c。量化过程 Q ( ⋅ ) Q(\cdot) Q(⋅)用其最近的字典条目 z ^ k \hat z_k z^k替换每个 z i z_i zi,表示为:
z ^ i = Q ( z i ) : = arg min z ^ k ∈ Z ∥ z i − z ^ k ∥ 2 ( 1 ) \hat{z}_i = Q(z_i) := \arg \min_{\hat{z}_k \in Z} \parallel z_i - \hat{z}_k \parallel_2\qquad(1) z^i=Q(zi):=argz^k∈Zmin∥zi−z^k∥2(1)
解码器(Decoder):由于在量化后BEV特征图中高度信息丢失,解码器通过堆叠卷积块和上采样层恢复密集的3D体素特征。具体来说,为了解决类别不平衡问题,作者分别实例化轻量体素头(voxel head)和类别头(class head),以解码占用的几何和语义信息。其中,体素头为类别头提供了一个占用掩码,允许仅监督占用体素的语义就行。
损失(Loss):要训练这个场景分词器,作者参考OccWorld的做法,利用三种损失函数进行优化,其中合成交叉熵损失 L c \mathcal{L}_c Lc和Lovasz-softmax损失 L l \mathcal{L}_l Ll用于几何 g e ge ge和语义 s e se se的重建学习,以及嵌入损失 L e \mathcal{L}_e Le用于字典学习。
L = λ 1 L c g e + λ 2 L l g e + λ 3 L c s e + λ 4 L l s e + λ 5 L e ( 2 ) \mathcal L = \lambda_1\mathcal L_c^{ge} + \lambda_2\mathcal L_l^{ge} + \lambda_3\mathcal L_c^{se} + \lambda_4\mathcal L_l^{se} + \lambda_5\mathcal L_e\qquad(2) L=λ1Lcge+λ2Llge+λ3Lcse+λ4Llse+λ5Le(2)
3.3 生成世界模型
统一词汇(Unified Vocabulary):通过使用场景分词器,占用场景可以被映射并展平为一个序列
z
^
1
:
L
∈
R
c
\hat{z}^{1:L} \in \mathbb{R}^c
z^1:L∈Rc,其中
L
=
H
r
×
W
r
L = \frac{H}{r} \times \frac{W}{r}
L=rH×rW,这允许与原始大型语言模型中的相似语言词汇
V
t
=
{
v
i
t
}
i
=
1
K
t
V_t = \{v_{i}^{t}\}_{i=1}^{K_t}
Vt={vit}i=1Kt进行联合表示。具体而言,首先将场景标记
z
^
1
:
L
\hat{z}^{1:L}
z^1:L表示为一个索引序列
s
1
:
L
=
{
s
i
}
i
=
1
L
s^{1:L} = \{s_i\}_{i=1}^{L}
s1:L={si}i=1L,其中
s
i
s^i
si对应于场景标记
z
^
1
:
L
\hat{z}^{1:L}
z^1:L的代码索引编号。因此,通过构建一个场景词汇
V
s
=
{
v
i
s
}
i
=
1
K
s
V_s = \{v_{i}^{s}\}_{i=1}^{K_s}
Vs={vis}i=1Ks,它与场景字典
Z
Z
Z保持顺序一致。由于一般的大型语言模型很难输出细粒度的数值,本文根据轨迹集的统计经验性地将航点的坐标划分为
N
N
N个区间,并将航点映射到最近的区间,以构建一个动作词汇
V
a
=
{
v
i
a
}
i
=
1
K
a
V_a = \{v_{i}^{a}\}_{i=1}^{K_a}
Va={via}i=1Ka。此外,作者还添加了若干特殊的功能标记
{
v
i
f
}
i
=
1
K
f
\{v_{i}^{f}\}_{i=1}^{K_f}
{vif}i=1Kf,如 <occ>
、</occ>
、<act>
、</act>
来表示模态边界;<que_i>
用于辅助下一个场景预测。因此,最后构建一个统一的占用-语言-动作词汇
V
=
{
V
s
,
V
t
,
V
a
,
{
v
i
f
}
i
=
1
K
f
}
V = \{V_s, V_t, V_a, \{v_{i}^{f}\}_{i=1}^{K_f}\}
V={Vs,Vt,Va,{vif}i=1Kf},以生成格式表述多种任务,其中输入和输出可以是这三种模态之一或混合,具体取决于要解决的任务。
下一个标记/场景预测(Next Token / Scene Prediction):由于语言和动作都是时间序列,这使得这些序列中的标记自然适合使用原始因果掩码和下一个标记预测机制进行时间注意力。然而,场景序列中的标记并不固有地遵循时间顺序,并且序列长度往往大于语言和动作。如果在场景中逐行执行下一个标记预测,它无法捕捉空间关系,并会产生高计算成本。为了解决这些问题,本文引入了下一个场景预测,同时保留下一个标记预测。
如图2所示,在与场景标记对应的位置上实现空间注意力,以更好地捕捉场景内的空间关系。相应地,通过初始化可学习的场景查询,以在一次前向步骤中预测整个场景,从而使场景内标记之间的交互更好,并显著减少推理时间。标记/场景预测的机制如算法1所示:
3.4 训练过程
整个框架训练包括三个阶段:
1)场景分词器的训练:首先专注于学习场景字典,以将占用表示为离散标记,使用在公式2中定义的目标函数。一旦优化,场景分词器在后续阶段的管道中保持不变。
2)3D占用-语言-动作预训练: 在这个阶段,对占用、语言和动作模态进行对齐。通过使用世界模型目标和场景描述目标进行全面的参数预训练,前者监督占用和动作之间的对齐,以学习世界的演变,后者监督占用和语言之间的对齐,以学习3D场景的语义理解。
3)指令调优:在这个阶段,通过LoRA基于提示的指令对模型进行微调,以应对不同的场景理解和规划任务。
4. 实验分析
4.1 实验设置
数据集:NuScenes是自动驾驶领域广泛认可的基础数据集。该数据集包含700个训练视频和150个验证视频,每个视频长度为20秒,关键帧率为2Hz。Occ3D是一个基于NuScenes的大规模3D占用数据集,为每一帧提供语义占用表示。NuScenes-QA是一个基于NuScenes的多模态视觉问答数据集。它包含五类问题:存在性、计数、查询对象、查询状态和比较,这些问题又根据复杂性进一步细分为零跳和一跳。为了对齐占用和语言模态,作者收集了一个基于NuScenes的大型描述数据集。具体来说,这个数据集将占用帧与出现的对象的位置、类别、状态和未来轨迹进行匹配。
实现细节:在大多数比较中,将语言模型基础设为LLaMA-3.1-8b,场景分词器参数设为50× 256×2048。对于视觉问答(VQA)比较,将语言模型基础设为LLaMA-2-7b,场景分词器的分辨率设为25×25,以确保公平性。对所有训练使用AdamW优化器。场景分词器的训练使用学习率 1 0 − 4 10^{-4} 10−4,批量大小为4, λ 1 = λ 3 = 10 λ_1=λ_3=10 λ1=λ3=10, λ 2 = λ 4 = 5 λ_2=λ_4=5 λ2=λ4=5,以及 λ 5 = 5 λ_5=5 λ5=5,而生成模型在预训练阶段使用学习率 1 0 − 4 10^{-4} 10−4和批量大小为1,在指令调优阶段使用学习率 5 × 1 0 − 5 5×10^{-5} 5×10−5和批量大小为4。
4.2 结果分析
4D占用预测:该任务旨在给定少量历史占用输入预测未来的3D占用场景。具体来说,通过使用2秒的历史帧来预测随后的3秒,同时使用mIoU和IoU作为主要评估指标。如表1所示,在两种设定下比较OccLLaMA与最先进的方法OccWorld:使用真实的3D占用(-O),使用基于相机数据的FBOCC预测结果(-F)。
实验结果表明,本文设计的场景分词器在场景重建能力上表现出色。此外,OccLLaMA在1秒内实现了具有竞争力的预测结果,并在较长时间内显著超越OccWorld,突显了其增强的长期预测能力。此外,OccLLaMA-F可以被视为一个端到端的管道,因为它以相机作为输入。尽管任务复杂,OccLLaMA始终表现出强大的预测性能。图3中为可视化结果。
运动规划:如表2所示,研究者们将OccLLaMA的运动规划能力与几种利用各种输入和监督的强基线进行比较,以及与4D占用预测任务相同的设置下将OccLLaMA与OccWorld进行比较。
视觉问答:作者使用占用数据与文本指令作为输入,并在自动驾驶中实施一系列3D任务的多模态大型语言模型(MLLM),然后选择LiDAR-LLM,作为比较基线。此外,还分别使用深度图像和原始图像作为输入,对NuScenes-QA基准测试中的一个强大的2D LLM进行了评估。Top-1准确率作为评估模型性能的指标,并对不同问题类型进行单独评估。
如表3所示。与LiDAR-LLM相比,OccLLaMA能够更好地捕捉3D空间中的语义信息,这对和对象相关的问题至关重要。此外,OccLLaMA将空间信息作为输入,自然地对齐语义和空间数据,这对涉及空间关系的问题是有益的。
4.3 消融实验
场景分词器参数: 表4比较了不同超参数对场景分词器重建性能的影响,包括潜在空间分辨率、特征维度和字典大小。结果表明,更大的字典会导致过拟合和字典利用效率低下。较小的字典和特征维度无法有效建模场景分布。分辨率与重建能力正相关,并且对重建性能有最显著的影响。然而,更大的分辨率会导致重建一个场景所需的标记数量增加,从而增加了预测的负担。
生成模型组件:本文还比较了生成模型中不同组件对预测和规划性能的影响。如表5所示,缺少空间注意力意味着一个场景中的标记根据扁平化序列顺序维持其原始的因果注意力。缺少动作标记化意味着航点是通过连接原始语言词汇的标记形成的。实验结果显示,使用特定于动作的标记而不是依赖语言词汇,能够提高预测和规划的性能。此改进可以归因于:特定动作的标记保留了航点的物理先验,同时避免了语言词汇中的归纳偏差。此外,实验还表明使用空间注意力来建模场景内的空间依赖关系对于预测至关重要。然而,这会导致规划性能的轻微下降,这可能是由于空间注意力在局部上干扰了全局因果注意力。
预训练的好处:表6对比了不同训练设置对问答(QA)性能的影响,从预训练开始的指令微调与从零开始的指令微调。实验结果显示,为模态对齐进行的预训练总体上改善了视觉问答(VQA)性能。这表明,当OccLLaMA对基本3D场景和世界动态有更深入的理解时,它能够更好地完成高级QA任务。
5. 总结展望
本文提出的OccLLaMA框架是一个用于自动驾驶的3D占用-语言-动作生成世界模型。作者通过引入了一种特殊的场景分词器,以高效地离散化和重构语义占用场景。此外,还构建了一个统一的多模态标签(multi-modal vocabulary),涉及占用、语言和动作模态。在这个词汇的基础上,增强了LLM,特别是LLaMA,使其能够在统一词汇上执行下一个标记/场景预测,从而完成自动驾驶中的多个任务。研究者们还对4D占用预测、运动规划和视觉问答进行了广泛的验证实验,实验展示了OccLLaMA的多任务有效性。
未来,作者希望增加数据多样性,进一步增强OccLLaMA的能力,并探索模型量化和蒸馏,以解决因参数数量庞大而导致的推理延迟问题。
©️【深蓝AI】
编译|巴巴塔
审核|Los
本文首发于微信公众号【深蓝AI】,移步公众号【深蓝AI】,第一时间获取自动驾驶、人工智能与机器人行业最新最前沿论文和科技动态👇
深蓝AI·赋能自动驾驶+机器人+AI