经典文献阅读之--UniScene(统一的以占用为中心的驾驶场景生成)
0. 简介
本文介绍了《UniScene: Unified Occupancy-centric Driving Scene Generation》统一的以占用为中心的驾驶场景生成。生成高保真、可控且带标注的训练数据对于自动驾驶是至关重要的。现有的方法通常直接从粗略的场景布局生成单个数据形式,这不仅无法输出各种下游任务所需的丰富数据形式,还难以建模直接的布局到数据分布。本文引入了UniScene,这是首个在驾驶场景中生成三种关键数据形式(语义占用、视频和激光雷达)的统一框架。UniScene采用渐进式生成过程,它将场景生成的复杂任务分解为两个层次步骤:(a)首先从定制的场景布局中生成语义占用,作为富含语义和几何信息的元场景表示;(b)然后根据占用,采用基于高斯的联合渲染和先验引导的稀疏建模这两种新的迁移策略,分别生成视频和激光雷达数据。这种以占用为中心的方法降低了生成负担(特别是对于复杂的场景),同时为后续生成阶段提供了详细的中间表示。
1. 主要贡献
为此,我们提出了UniScene,一个统一的以占用为中心的框架,旨在灵活生成语义占用、视频和激光雷达数据。如图LABEL:fig_teaser1 (a)所示,UniScene采用了分解学习范式,并以层次结构构建:它首先从鸟瞰图(BEV)场景布局生成三维语义占用,然后利用这一表示来促进视频和激光雷达数据的生成。具体而言,与之前的无条件占用生成方法[29, 30, 39]相比,我们使用定制的BEV布局序列作为可控输入,以生成具有时空一致性的语义占用序列。与单步布局到数据学习方法[15, 66, 71, 55, 85]不同,我们的方法利用生成的占用作为中间表示,以指导后续的生成。为了弥合表示差距并确保视频和激光雷达数据的高保真生成,我们引入了两种新颖的表示转移策略:1)一种几何-语义联合渲染策略,利用高斯点云渲染[26, 88],以促进具有详细多视角语义和深度图的条件视频生成;2)一种基于先验的稀疏建模方案,用于激光雷达数据生成,该方案利用基于占用的先验有效生成激光雷达点。我们框架的贡献可以总结如下:
• 我们引入了UniScene,这是第一个用于驾驶场景中多样化数据生成的统一框架。它在三种格式中共同生成高质量数据:语义占用、多视角视频和激光雷达点云。
• 我们提出了一种分解的条件生成范式,逐步建模复杂的驾驶场景,有效降低了生成的难度。细粒度的语义占用首先作为中间表示生成,然后促进视频和激光雷达数据的后续生成。
• 为了弥合占用与其他数据格式之间的领域差距,我们引入了两种新颖的表示转移策略:一种基于高斯点云渲染,另一种利用稀疏建模方案。
• 在各种生成任务中的广泛实验表明,UniScene在视频、激光雷达和占用生成方面优于最先进的方法。此外,UniScene生成的数据在下游任务中显著提升了性能,包括占用预测、三维检测和BEV分割。
2. 方法论
在本节中,我们介绍UniScene,一个统一框架,旨在联合生成三种数据形式:语义占用、多视角视频和激光雷达点云。
如图1所示,我们将驾驶场景生成的复杂任务分解为一个以占用为中心的层次结构。具体而言,给定多帧BEV布局作为条件,UniScene首先利用占用扩散变换器(Occupancy Diffusion Transformer)生成相应的语义占用序列(第3节)。生成的占用随后作为后续视频和激光雷达生成的条件指导。对于视频生成,占用被转换为三维高斯原语,然后渲染为二维语义图和深度图,以指导视频扩散UNet(第4节)。对于激光雷达生成,我们提出了一种稀疏建模方法,该方法结合了激光雷达稀疏UNet和基于光线的稀疏采样策略,在占用先验的指导下,有效地生成激光雷达点(第5节)。
图1:所提方法的整体框架。联合生成过程组织成一个以占用为中心的层次结构:I. 可控占用生成。BEV布局与噪声体积连接后输入到占用扩散变换器(Occupancy Diffusion Transformer),并通过占用变分自编码器解码器(Occupancy VAE Decoder)进行解码 Docc\mathcal{D}_{\text{occ}}Docc。II. 基于占用的视频和激光雷达生成。占用被转换为三维高斯分布,并渲染为语义图和深度图,这些图像通过与ControlNet相似的额外编码器进行处理。输出来自视频变分自编码器解码器(Video VAE Decoder) Dvid\mathcal{D}_{\text{vid}}Dvid。对于激光雷达生成,占用通过稀疏UNet进行处理,并在几何先验指导下进行采样,随后发送到激光雷达生成模块 Dlid\mathcal{D}_{\text{lid}}Dlid。
3. 可控语义占用生成
在UniScene中,生成可控且时间一致的语义占用至关重要,因为后续的视频和激光雷达生成依赖于此。为了解决这个问题,我们引入了占用扩散变换器(Occupancy Diffusion Transformer,DiT),它以BEV布局序列为输入,使用户能够轻松编辑和生成相应的占用序列。
3.1 时间感知占用变分自编码器(VAE)
占用VAE旨在将占用数据压缩到潜在空间中,以提高计算效率。与现有基于VQVAE的方法依赖于离散标记器不同,我们的方法采用VAE将占用序列编码为连续的潜在空间。这有助于更好地保留空间细节,特别是在高压缩比下。
具体而言,时间信息仅在VAE解码过程中考虑,从而提供更大的灵活性,如文献[7]所示。在VAE编码器中,我们将三维占用 O∈RH×W×D\mathbf{O} \in \mathbb{R}^{H \times W \times D}O∈RH×W×D转换为BEV表示 O^∈RH×W×D⋅C′\hat{\mathbf{O}} \in \mathbb{R}^{H \times W \times D \cdot C'}O^∈RH×W×D⋅C′,遵循文献[86],其中 C′C'C′ 表示可学习类别嵌入的维度。随后,使用二维卷积层和二维轴向注意力层获得下采样的连续潜在特征。VAE解码器将时间潜在特征 zoccseq∈RT×C×h×w\mathbf{z}_\text{occ}^{seq} \in \mathbb{R}^{T \times C \times h \times w}zoccseq∈RT×C×h×w重构为占用序列Oseq∈RT×H×W×D\mathbf{O}^{\text{seq}} \in \mathbb{R}^{T \times H \times W \times D}Oseq∈RT×H×W×D。它是通过3D卷积层和3D轴向注意力层构建的,以捕捉时间特征。与文献[86]类似,我们使用交叉熵损失 LCE\mathcal{L}_{\text{CE}}LCE、Lovasz-softmax损失 LLS\mathcal{L}_{\text{LS}}LLS和KL散度损失 LKL\mathcal{L}_{\text{KL}}LKL来训练VAE。占用VAE的总损失为:
Locc vae=LCE+λ1⋅LLS+λ2⋅LKL,(1)\mathcal{L}_{\text{occ vae}} = \mathcal{L}_{\text{CE}} + \lambda_1 \cdot \mathcal{L}_{\text{LS}} + \lambda_2 \cdot \mathcal{L}_{\text{KL}},\tag{1} Locc vae=LCE+λ1⋅LLS+λ2⋅LKL,(1)
其中 λ1\lambda_1λ1 和 λ2\lambda_2λ2 是各自的损失权重。有关占用VAE训练设置的更多详细信息,请参见补充材料。
3.2 潜在占用DiT
潜在占用DiT学习从噪声体生成占用潜在序列,条件为BEV布局 B\mathbf{B}B。具体而言,BEV布局首先与噪声体连接,然后在输入到占用DiT之前进行补丁化。这种显式对齐策略有助于模型有效学习空间关系,从而更精确地控制生成的序列。占用DiT通过一系列堆叠的空间和时间变换块聚合时空信息[43]。占用DiT的损失函数定义如下,遵循文献[48]:
Loccdit=E[∑i=1T∥fdit(zocci,Bi)−Nocci(0,I)∥2],(2)\mathcal{L}_\text{occ}^{dit} = \mathbb{E} \left[ \sum_{i=1}^{T} \| \mathbf{f}_{\text{dit}}(\mathbf{z}_\text{occ}^{i}, \mathbf{B}^i) - \mathcal{N}_\text{occ}^{i}(0, \mathbf{I}) \|^2 \right],\tag{2}Loccdit=E[i=1∑T∥fdit(zocci,Bi)−Nocci(0,I)∥2],(2)
其中 fdit(zocci,Bi)\mathbf{f}_{\text{dit}}(\mathbf{z}_\text{occ}^{i}, \mathbf{B}^i)fdit(zocci,Bi)表示模型输出,而 zocci\mathbf{z}_\text{occ}^{i}zocci和 Nocci(0,I)\mathcal{N}_\text{occ}^{i}(0, \mathbf{I})Nocci(0,I)分别表示第 iii 帧的输入噪声潜在和目标噪声。通过结合时间信息,我们的占用扩散模型能够生成长期一致的占用序列(见图4(a))。有关占用VAE和DiT的更多架构细节,请参见补充材料。
图4:UniScene的多功能生成能力。 (a) 大规模一致生成语义占用、激光雷达点云和多视角视频。 (b) 通过简单编辑输入的BEV布局以传达用户指令,实现几何编辑占用、视频和激光雷达的可控生成。 © 通过更改输入文本提示,实现属性多样化视频的可控生成。
4. 视频:占用作为条件引导
视频生成模型以预训练的稳定视频扩散(Stable Video Diffusion, SVD)[6]的潜在生成模型为基础进行初始化,该模型由一个三维视频变分自编码器(VAE)和一个视频扩散UNet组成。如图1所示,视频扩散UNet以基于占用的渲染图和文本提示作为条件,生成多视角驾驶视频。
4.1 基于高斯的联合渲染
输入的语义占用网格通过前向高斯点云(forward Gaussian Splatting)[26, 88]联合渲染为多视角的语义图和深度图。渲染的图像弥补了占用网格与多视角视频之间的表示差距,提供了细粒度的语义和几何引导,以促进高质量和一致性的视频生成。与之前的工作[15, 72]中使用的资源密集型时空注意机制不同,我们保留了SVD [6]中的原始交叉注意机制,并通过基于占用的多视角条件引导确保交叉视角的一致性。附加的实验评估结果见图8和表9。
图8:基于占用的条件引导效果可视化。我们的方法显著增强了交叉视角的一致性,产生了高保真度的结构,而时空注意机制未能达到类似的效果。
具体而言,给定形状为 RH×W×D\mathbb{R}^{H \times W \times D}RH×W×D 的输入语义占用,我们首先根据每个占用网格的中心和语义标签将其转换为一组三维高斯原语 G={Gi}i=1N\mathcal{G} = \{ G_i \}_{i=1}^NG={Gi}i=1N。这样,每个高斯原语包含位置属性 μ\muμ、语义标签 sss、不透明度状态 α\alphaα,以及根据默认旋转和体素大小缩放计算的协方差 Σ\SigmaΣ。然后,深度图 DDD 和语义图 SSS 通过类似于颜色渲染的基于瓦片的光栅化[26]进行渲染:
D=∑i∈Ndi⋅αi′⋅∏j=1i−1(1−αj′),(3)D = \sum_{i \in N} d_i \cdot \alpha_i' \cdot \prod_{j=1}^{i-1} (1 - \alpha_j'), \tag{3}D=i∈N∑di⋅αi′⋅j=1∏i−1(1−αj′),(3)
S=argmax(∑i∈Nonehot(si)⋅αi′⋅∏j=1i−1(1−αj′)),(4)S = \text{argmax} \left( \sum_{i \in N} \text{onehot}(s_i) \cdot \alpha_i' \cdot \prod_{j=1}^{i-1} (1 - \alpha_j') \right), \tag{4}S=argmax(i∈N∑onehot(si)⋅αi′⋅j=1∏i−1(1−αj′)),(4)
其中 did_idi 表示深度值,α′\alpha'α′ 由投影的二维高斯和三维不透明度 α\alphaα 确定[26]。渲染的语义图和深度图的可视化结果见图2。请注意,来自鸟瞰视图(BEV)布局的道路线被投影到语义占用上,整合了相应的语义信息。这些图像被输入到具有残差连接和零卷积的编码器分支中,类似于ControlNet [84],以利用视频扩散UNet的预训练能力,同时保留其固有的生成能力。
图2:基于高斯的联合渲染可视化。
4.2 几何感知噪声先验
为了进一步提高视频生成质量,我们在采样过程中引入了一种几何感知噪声先验策略。它注入了密集的外观先验,类似于之前的工作[64, 14],同时通过渲染的深度图 DDD 融入显式的几何感知,以建模区域相关性。
具体而言,原始噪声先验中的训练噪声为:
ϵvidi=λ⋅zci+Nvidi⋅(0,I),(5)\epsilon_\text{vid}^{i} = \lambda \cdot \mathcal{z}_{c}^{i} + \mathcal{N}_\text{vid}^{i} \cdot (0, I), \tag{5}ϵvidi=λ⋅zci+Nvidi⋅(0,I),(5)
其中 ϵvidi\epsilon_\text{vid}^{i}ϵvidi 表示第 iii 帧视频的噪声输入。zci\mathcal{z}_{c}^{i}zci 表示条件图像帧的潜在特征。Nvidi⋅(0,I)\mathcal{N}_\text{vid}^{i} \cdot (0, I)Nvidi⋅(0,I) 和 λ\lambdaλ 分别是第 iii 帧视频的随机噪声和权衡系数。
然而,在现实场景中,动态视频中的许多区域在多个帧之间表现出显著的变化。前述简单策略未考虑这些高度动态区域中的对应建模。为了解决这个问题,我们利用渲染的深度图 DDD 通过单应性变换[10, 67]将参考图像的外观先验扭曲到其他图像,实现显式的几何感知重投影。通过这种方法,我们重新审视公式5并将其优化如下:
ϵvidi=λ⋅(Warp(zci,Di,Ki,[R0,i∣t0,i]))+Nvidi⋅(0,I),(6)\epsilon_\text{vid}^{i} = \lambda \cdot \left( \text{Warp}(\mathcal{z}_{c}^{i}, D^i, K^i, [R_{0,i} | t_{0,i}]) \right) + \mathcal{N}_\text{vid}^{i} \cdot (0, I), \tag{6}ϵvidi=λ⋅(Warp(zci,Di,Ki,[R0,i∣t0,i]))+Nvidi⋅(0,I),(6)
其中 KiK^iKi 表示相机内参,[R0,i∣t0,i][R_{0,i} | t_{0,i}][R0,i∣t0,i] 表示变换矩阵。DiD^iDi 是第 iii 帧视频的渲染深度图。更多评估结果的详细信息见表9及补充材料。
4.3 视频训练损失
视频训练损失。我们定义视频训练损失与之前的工作 [6, 16] 类似,其公式为:
Lvid=E[∑i=1T(1−mi)⋅∥fvid(zvidi,t,zc,Di,Si)−z0i∥2],(7)\mathcal{L}_{\text{vid}} = \mathbb{E} \left[ \sum_{i=1}^{T} (1 - m^i) \cdot \| \mathcal{f}_{\text{vid}}(\mathcal{z}_{\text{vid}}^i, t, \mathcal{z}_c, D^i, S^i) - \mathcal{z}_0^i \|^2 \right], \tag{7}Lvid=E[i=1∑T(1−mi)⋅∥fvid(zvidi,t,zc,Di,Si)−z0i∥2],(7)
其中 fvid(zvidi,t,zc,Di,Si)\mathcal{f}_{\text{vid}}(\mathcal{z}_{\text{vid}}^i, t, \mathcal{z}_c, D^i, S^i)fvid(zvidi,t,zc,Di,Si) 表示视频生成模型的输出。DiD^iDi 和 SiS^iSi 分别表示第 iii 帧视频的渲染深度图和语义图。ttt 表示输入的文本提示。z0i\mathcal{z}_0^iz0i 和 zvidi\mathcal{z}_{\text{vid}}^izvidi 分别是真实值和输入的噪声潜变量。zc\mathcal{z}_czc 是根据奇异值分解(SVD)[6] 利用的条件参考帧。mmm 是用于选择条件帧的一热掩码。请注意,我们随机选择 zc\mathcal{z}_czc 以减少模型对任何特定条件帧的依赖。
5. LiDAR:基于占用的稀疏建模
如图1所示,在LiDAR生成过程中,输入的占用信息首先通过稀疏UNet [53] 编码为稀疏体素特征,然后利用占用先验通过稀疏采样生成LiDAR点。
5.1 先验引导的稀疏建模
鉴于语义占用的固有稀疏性和详细几何特征,我们提出了一种先验引导的稀疏建模方法,以提高计算效率(参见表5的最后一列),通过避免对未占用体素进行不必要的计算。输入的语义占用网格首先使用稀疏UNet [53] 进行处理,以聚合上下文特征。接下来,我们沿着LiDAR光线进行均匀采样,记作 r\mathbf{r}r,以生成一系列点,表示为 s\mathbf{s}s。
如图3(a)所示,为了促进先验引导的稀疏采样,我们将占用体素内的点的概率设为1,而将所有其他点的概率设为0,从而定义了一个概率分布函数(PDF)。随后,我们基于PDF重新采样 nnn 个点 {ri=o+si⋅v(i=1,…,n)}\{\mathbf{r}_i = \mathbf{o} + \mathbf{s}_i \cdot \mathbf{v} \, (i = 1, \ldots, n)\}{ri=o+si⋅v(i=1,…,n)}。这里 o\mathbf{o}o 是光线的起点,v\mathbf{v}v 是归一化的光线方向。
图3:(a)基于占用先验引导的稀疏采样。(b)LiDAR光线丢失头效果的可视化。
5.2 LiDAR头和训练损失
遵循之前工作的基于光线的体积渲染技术 [81, 3, 60],每个重新采样点的特征通过多层感知器(MLP)进行处理,以预测带符号距离函数(SDF) f(s)f(\mathbf{s})f(s) 并计算相关权重 w(s)w(\mathbf{s})w(s)。这些预测和权重随后用于通过体积渲染估计光线的深度:
βi=max(Φs(f(r(si)))−Φs(f(r(si+1)))Φs(f(r(si))),0),(8)\beta_i = \max \left( \frac{\Phi_s(f(\mathbf{r}(\mathbf{s}_i))) - \Phi_s(f(\mathbf{r}(\mathbf{s}_{i+1}))) }{\Phi_s(f(\mathbf{r}(\mathbf{s}_i)))}, 0 \right), \tag{8} βi=max(Φs(f(r(si)))Φs(f(r(si)))−Φs(f(r(si+1))),0),(8)
w(si)=∏j=1i−1(1−βj)⋅βi,h=∑i=1nw(si)⋅si,(9)w(\mathbf{s}_i) = \prod_{j=1}^{i-1} (1 - \beta_j) \cdot \beta_i, \quad h = \sum_{i=1}^{n} w(\mathbf{s}_i) \cdot \mathbf{s}_i, \tag{9} w(si)=j=1∏i−1(1−βj)⋅βi,h=i=1∑nw(si)⋅si,(9)
其中 Φs(x)=(1+e−sx)−1\Phi_s(x) = (1 + e^{-s x})^{-1}Φs(x)=(1+e−sx)−1,hhh 是渲染的深度值。为了更准确地模拟真实的LiDAR成像过程,我们加入了额外的反射强度头和光线丢失头。反射强度头预测物体对LiDAR激光束沿每条光线的反射强度。该预测涉及根据 w(s)w(\mathbf{s})w(s) 对沿光线的点特征进行加权求和,然后通过MLP进行估计。光线丢失模型估计由于未能检测到反射光而导致光线未被LiDAR捕获的概率,其结构与反射强度头相同。如图3(b)所示,光线丢失头有效地消除了预测中的噪声点。LiDAR生成的训练损失由深度损失 Ldepth\mathcal{L}_{\text{depth}}Ldepth、强度损失 Linten\mathcal{L}_{\text{inten}}Linten 和光线丢失损失 Ldrop\mathcal{L}_{\text{drop}}Ldrop 组成:
Llid=Ldepth+λ1⋅Linten+λ2⋅Ldrop,(10)\mathcal{L}_{\text{lid}} = \mathcal{L}_{\text{depth}} + \lambda_1 \cdot \mathcal{L}_{\text{inten}} + \lambda_2 \cdot \mathcal{L}_{\text{drop}}, \tag{10} Llid=Ldepth+λ1⋅Linten+λ2⋅Ldrop,(10)
其中 λ1\lambda_1λ1 和 λ2\lambda_2λ2 是平衡系数。更多细节,包括训练设置,已在补充材料中提供。
图4:UniScene的多功能生成能力。(a)语义占用、LiDAR点云和多视角视频的大规模一致生成。(b)通过简单编辑输入的鸟瞰图(BEV)布局来传达用户指令,从而可控生成几何编辑的占用、视频和LiDAR。(c)通过更改输入文本提示来可控生成属性多样的视频。
6. 总结
本文引入了UniScene,这是一种旨在为自动驾驶应用生成高保真、可控且带标注数据的统一框架。通过将复杂的场景生成任务分解为两个层次步骤,UniScene逐步生成语义占用、视频和激光雷达数据。大量实验表明,UniScene在所有三种数据类型上均超越了当前SOTAs,并且增强了广泛的下游任务。
局限性和未来工作:统一集成多个生成任务的综合系统是具有挑战性且资源密集型的。探索优化系统以实现轻量级部署的方法是未来研究的一条有前景的途径。此外,将系统扩展到相关领域(例如具身智能和机器人)为进一步发展提供了宝贵的机会。