OmniRe: Omni Urban Scene Reconstruction
摘要
我们介绍了OmniRe,这是一种全面的方法,用于从设备日志中高效重建高保真动态城市场景。最近使用神经辐射场或高斯Splatting对驾驶序列进行建模的方法已经展示了重建具有挑战性的动态场景的潜力,但通常忽视了行人和其他非车辆动态行为者,阻碍了动态城市场景重建的完整流程。为此,我们提出了一个全面的3DGS框架,用于驾驶场景,名为OmniRe,它允许准确、完整地重建驾驶日志中的多样化动态对象。OmniRe基于高斯表示构建动态神经场景图,并构建多个本地规范空间,模拟各种动态行为者,包括车辆、行人和骑自行车者等。这种能力是现有方法所无法比拟的。OmniRe允许我们全面重建场景中存在的不同对象,随后使得所有参与者都能参与到重建场景的实时模拟中(大约60Hz)。在Waymo数据集上的广泛评估表明,我们的方法在定量和定性上都大幅度超越了之前的最新技术方法。我们认为我们的工作填补了驾驶重建中的关键空白。有关代码、视频结果和演示,请访问项目页面:ziyc.github.io/omnire。
1 介绍
随着自动驾驶越来越多地采用端到端模型,对于可扩展且无领域差异的模拟环境的需求日益明显,在这样的环境中,这些系统可以在闭环中进行评估。虽然使用艺术家生成的资产的传统方法在规模、多样性和现实主义方面正接近其极限,但数据驱动方法在生成数字孪生方面的进展提供了一种强有力的替代方案,即通过从设备日志中重建模拟环境。事实上,神经辐射场(NeRFs)[26, 2, 48, 10, 47, 43]和高斯散射(GS)[17, 46]已成为重建具有高度视觉和几何保真度的3D场景的强大工具。然而,准确和全面地重建动态驾驶场景仍然是一个重大挑战,特别是由于现实世界环境中有多种行为者和运动类型,这增加了复杂性。
已有几项工作尝试解决这一挑战。早期方法通常忽略动态行为者,只关注场景的静态部分[35, 25, 32, 10]。随后的工作旨在通过以下方式重建动态场景:(i)将场景建模为静态和时间依赖的神经场的组合,其中不同场景部分的分解是一种紧急属性[47, 38],或者(ii)构建一个场景图,其中动态行为者和静态背景被表示为节点,并在它们的规范框架中重建和表示。场景图的节点通过编码相对变换参数的边连接,代表每个行为者随时间的运动[28, 19, 48, 43, 36, 7]。虽然前者是一种更通用的表述,但后者提供了更高级别的可编辑性,并且可以直接用经典的行为模型进行控制。然而,场景图方法仍然只关注可以被表示为刚体的车辆,从而在很大程度上忽视了其他在驾驶模拟中至关重要的易受伤害道路使用者(VRUs),如行人和骑行者。
为了填补这一关键空白,我们的工作旨在模拟所有动态行为者,包括车辆、行人和骑行者等。与在工作室中从多视图系统中建模对象不同[11, 12, 33],在野外场景中重建动态行为者极具挑战性[5, 52, 53, 9, 16, 34]。以人类为例,从部分观测中重建人类本身就是一个挑战性问题[16],在驾驶场景中,由于传感器观测的分布不利和高度复杂的环境中频繁发生遮挡,这一问题变得更加复杂[39, 49, 40]。事实上,即使是最先进的人体姿态预测模型[9]也常常难以预测准确的姿态,特别是对于远处或被其他人遮挡的行人(例如图3)。此外,还有其他动态行为者,如乘坐轮椅或推着婴儿车的个体,这些行为者不能简单地用参数模型来建模。
为了应对这些相互加强的挑战,我们提出了一个能够处理多样化状态的“全能”系统。我们的方法OmniRe有效地重建了包含静态背景、行驶中车辆和非刚性移动动态行为者的高保真动态驾驶场景(见图1)。具体来说,我们基于高斯Splatting表示[17]构建了一个动态神经场景图[28],并为不同的动态行为者构建了专用的自我模型空间。在“因地制宜”原则的驱动下,OmniRe利用了不同表示的集体优势:**(i) 车辆被建模为静态高斯,使用刚体变换来模拟它们随时间的运动;(ii) 近距离行走的行人使用基于模板的SMPL模型[23]进行拟合,通过线性混合蒙皮权重实现关节级控制;(iii) 远距离和其他无模板动态行为者使用自监督变形场进行重建。**这种组合允许对场景中大多数感兴趣的对象进行准确表示和可控重建。更重要的是,我们的表示直接适用于通常用于自动驾驶汽车(AV)模拟的行为和动画模型(例如,图1-©)。
通过这种全面的方法,OmniRe不仅能够重建复杂的动态场景,还能够为各种行为者提供逼真的动画,这对于自动驾驶系统的开发和测试至关重要。通过在Waymo数据集上的广泛评估,我们证明了OmniRe在定量和定性上都显著优于现有技术,这标志着在动态城市场景重建领域迈出了重要的一步。我们的工作不仅提高了重建质量,还为未来在更广泛的应用场景中利用这些技术奠定了基础。
总结来说,我们做出了以下贡献:
- 我们引入了OmniRe,这是一个全面的动态驾驶场景重建框架,体现了在行为者覆盖和表示灵活性方面的“全能”原则。OmniRe利用基于高斯表示的动态神经场景图来统一静态背景、行驶中车辆和非刚性移动动态行为者的重建(第4节)。它实现了高保真度的场景重建、从新视角的传感器模拟和实时可控的场景编辑(第5节)。
- 我们解决了从驾驶日志中建模人类和其他动态行为者所面临的挑战,例如遮挡、杂乱环境以及现有人体姿态预测模型的局限性(第4.2节)。我们的发现基于自动驾驶车辆(AV)场景,但可以推广到其他领域。
- 我们进行了广泛的实验和消融研究,以证明我们全面表示的好处。OmniRe在场景重建和新视角合成(NVS)方面实现了最先进的性能,显著优于以前的方法,特别是在完整图像指标方面(重建增加了1.88 PSNR,NVS增加了2.38 PSNR)。对于动态行为者,如车辆(增加了1.18 PSNR)和人类(重建增加了4.09 PSNR,NVS增加了3.06 PSNR)(表1),差异尤为明显。
这些贡献不仅展示了OmniRe在处理复杂动态场景中的有效性,也突显了其在自动驾驶模拟和其他相关领域的应用潜力。通过提供一个统一的框架来处理各种动态元素,OmniRe为实时、高保真的场景重建和模拟提供了强有力的支持。
2 最近工作
动态场景重建
神经表示在新视角合成中占据主导地位[26, 3, 2, 27, 8, 17]。这些已经被不同方式扩展,以实现动态场景的重建。基于变形的方法[31, 29, 37, 30, 4]和最近的DeformableGS[50]以及[41]提出使用3D神经表示来模拟规律空间,并结合一个变形网络,将时间依赖的观测映射到规律变形。这些通常限于小场景和有限的运动,使它们不适用于具有挑战性的城市动态场景。调制技术通过将图像时间戳(或潜在代码)直接作为神经表示的额外输入来操作[44, 22, 21, 24]。然而,这通常导致一个约束不足的公式,因此需要额外的监督,如深度和光流(Video-NeRF[44]和NSFF[22]),或从同步摄像机捕获的多视角输入(DyNeRF[21]和Dynamic3DGS[24])。 D 2 N e R F D^2NeRF D2NeRF[42]提出通过将场景划分为静态和动态领域来扩展这种公式。随后,SUDS[38]和EmerNeRF[47]展示了对动态自动驾驶场景的令人印象深刻的重建能力。然而,它们使用单一动态领域来模拟所有动态元素,而不是分别模拟,因此它们缺乏可控性,限制了它们作为传感器模拟器的实用性。明确地将场景分解为单独的模型代理可以实现对它们的单独控制。这些模型代理可以作为场景图中的边界框表示,如在Neural Scene Graphs[28](NSG)中广泛采用,该图在UniSim[48]、MARS[43]、NeuRAD[36]、ML-NSG[7]和最近的基于高斯的工作StreetGaussians[46]、DrivingGaussians[55]和HUGS[54]中。然而,这些方法由于时间独立表示的限制[28, 43, 48, 55, 54, 46, 36, 7]或变形技术的限制[50, 14],只能处理刚性对象。为了解决这些问题,OmniRe提出了一个高斯场景图,它结合了各种高斯表示,用于刚性和非刚性对象,为多样化的行为者提供了额外的灵活性和可控性。
人体重建
人体具有可变的外观和复杂的运动,需要专门的建模技术。NeuMan[15]提出使用SMPL人体模型[23]来扭曲射线点到规范空间。这种方法使得非刚性人体重建并保证了良好的控制。类似地,最近的工作如GART[20]、GauHuman[13]和HumanGaussians[18]结合了高斯表示和SMPL模型。然而,这些方法并不直接适用于自然环境。关于在驾驶场景中恢复人体动态,[49]专注于对LiDAR模拟的形状和姿态重建,而[40]和[39]旨在从部分观测中重新创建自然和准确的人体运动。然而,这些方法仅关注形状和姿态估计,并且在外观建模方面有限。相比之下,我们的方法不仅模拟了人体外观,还将此建模集成到整体场景框架中,实现了全面的解决方案。城市场景通常涉及许多行人,观测稀疏,通常伴随着严重的遮挡。我们在§4.2中详细分析了这些挑战,并提出了解决方案。
3预备知识
3D 高斯散射
首先介绍的是在 [17] 中首次提出的3D 高斯散射(3DGS),它通过一组彩色斑点 G = g G = {g} G=g 来表示场景,其中每个斑点的强度分布是高斯分布。每个高斯斑点(blob) g = ( o , µ , q , s , c ) g = (o, µ, q, s, c) g=(o,µ,q,s,c) 包含以下属性:不透明度 o ∈ ( 0 , 1 ) o ∈ (0, 1) o∈(0,1),均值位置 µ ∈ R 3 µ ∈ R^3 µ∈R3,以四元数表示的旋转 q ∈ R 4 q ∈ R^4 q∈R4,各向异性缩放因子 s ∈ R + 3 s ∈ R^3_+ s∈R+3,以及视图依赖的颜色 c ∈ R F c ∈ R^F c∈RF,表示为球谐系数。计算像素颜色 C 时,与该像素重叠的高斯斑点按其到摄像机中心的距离进行排序(按 i ∈ N i ∈ N i∈N 排序)并进行 α 混合:
C ( x ′ ) = ∑ i ∈ N c i σ i ∏ j = 1 i − 1 ( 1 − σ j ) ( 1 ) C(x') = \sum_{i \in N} c_i \sigma_i \prod_{j=1}^{i-1} (1 - \sigma_j) \quad(1) C(x′)=i∈N∑ciσij=1∏i−1(1−σj)(1)
其中 α i α_i αi 计算为 α i = o i e x p ( − 1 / 2 ( p − μ i ) T Σ i − 1 ( p − μ i ) ) α_i = o_i exp(- 1/2(p - \mu_i)^T \Sigma_i^{-1} (p - \mu_i)) αi=oiexp(−1/2(p−μi)TΣi−1(p−μi)), Σ i \Sigma_i Σi 是 2D 投影协方差。我们进一步定义了刚性(仿射)变换 T = ( R , t ) ∈ S E ( 3 ) T = (R, t) ∈ SE(3) T=(R,t)∈SE(3) 对一组中的所有高斯斑点的应用:
T ⊗ G = ( o , R μ + t , Rot ( R , q ) , s , c ) ( 2 ) T \otimes G = (o, R\mu + t, \text{Rot}(R, q), s, c) \quad(2) T⊗G=(o,Rμ+t,Rot(R,q),s,c)(2)
其中 R o t ( ⋅ ) Rot(·) Rot(⋅) 表示通过旋转矩阵旋转四元数。
SMPL(**Skinned Multi-Person Linear)**模型
SMPL [23] 是一个参数化人体模型,结合了参数化网格和线性混合表皮(LBS linear blending skinning)的优势,以操控身体形状和姿态。在其核心,SMPL 使用一个在典型休息姿态中定义的模板Mesh网格 M h = ( V , F ) M_h = (V, F) Mh=(V,F),由 n v n_v nv 个顶点 V ∈ R n v × 3 V ∈ R^ {n_v×3} V∈Rnv×3 参数化。模板网格可以使用形状参数 β \beta β 和姿态参数 θ \theta θ 进行形状和变换:
V S = V + B S ( β ) + B P ( θ ) ( 3 ) V_S = V + B_S(β) + B_P(θ) \quad(3) VS=V+BS(β)+BP(θ)(3)
其中 B S ( β ) ∈ R n v × 3 B_S(β) ∈ R^ {n_v×3} BS(β)∈Rnv×3 和 B P ( θ ) ∈ R n v × 3 B_P(θ) ∈ R^ {n_v×3} BP(θ)∈Rnv×3 是个别顶点的 xyz 偏移量 [18], V S V_S VS 是在造型空间中的顶点位置。
为了进一步变形顶点 V S V_S VS 以实现所需的姿态 θ ′ θ' θ′,SMPL 利用预定义的 LBS 权重 W ∈ R n k × n v W ∈ R^ {n_k×n_v} W∈Rnk×nv 和关节变换 G G G 来定义每个顶点 v i v_i vi 的变形: v i : v i ′ = ( ∑ k W k , i G k ) v i v_i:v_i' = \left( \sum_k W_{k,i} G_k \right) v_i vi:vi′=(∑kWk,iGk)vi,其中 n k n_k nk 是关节的数量,关节变换 G G G 由源姿态 θ θ θ、目标姿态 θ ′ θ' θ′ 和形状 β β β 导出。姿态参数包括身体姿态分量 θ b ∈ R 23 × 3 × 3 θ_b ∈ R^ {23×3×3} θb∈R23×3×3 和全局方向分量 θ g ∈ R 3 × 3 θ_g ∈ R^ {3×3} θg∈R3×3。有关 SMPL 的更多细节,请参见 [23]。我们的方法为每一帧中的每个行人获取姿态参数 θ θ θ,以及他们各自的形状参数 β ∈ R 10 β ∈ R^ {10} β∈R10,这些姿态序列初始化行人的非刚性动态。详细过程在4.2节 中描述。
4 方法
正如图2所概述的,我们构建了一个高斯场景图表示,全面覆盖了静态背景和多样化的可移动实体。我们在§4.1中讨论了我们系统化策略来表示不同的语义类别,突出了我们的主要贡献之一。在无约束环境中对人类进行建模尤其具有挑战性,这主要是因为人体非刚性的本质、准确初始化的困难,以及野外环境中经常出现的严重遮挡。我们在§4.2中提出了解决这个问题的方法,这显著提高了性能。最后,我们在§4.3中展示了如何对场景表示进行端到端优化,以获得忠实和可控的重建。
4.1动态高斯场景图建模
高斯场景图:为了在不牺牲重建质量的情况下灵活控制场景中的多样化可移动对象,我们选择了高斯场景图表示。我们的场景图由以下节点组成:(1) 表示远离自车的远景天空的Sky Node,(2) 表示静态场景背景的Background Node,如建筑物、道路和植被,(3) 一组表示如汽车或卡车等刚性可移动对象的Rigid Nodes,(4) 一组表示行人或骑行者的Non-rigid Nodes。类型(2,3,4)的节点可以直接转换为世界空间的高斯,我们将在下文中介绍。这些高斯被连接并使用[17]中提出的光栅化器进行渲染。Sky Node由一个可优化的环境纹理图表示,单独渲染,并与光栅化的高斯图像通过简单的alpha混合合成。
背景节点。背景节点由一组静态高斯 G b g G_{bg} Gbg表示。这些高斯是通过累积LiDAR点和根据[6]中描述的策略随机生成的附加点来初始化的。
刚性节点。表示车辆(例如汽车或卡车)的高斯被定义为 G ‾ v r i g i d \overline{G}^{rigid}_v Gvrigid 在对象的局部空间中(用上横线表示),其中v是车辆/节点的索引。虽然局部空间内车辆内的高斯不会随时间变化,但世界空间中高斯的位置会根据车辆的姿态 T v ∈ S E ( 3 ) T_v ∈ SE(3) Tv∈SE(3)而变化。在给定时间 t ∈ R t ∈ R t∈R时,高斯通过简单地应用姿态变换被转换到世界空间:
G v r i g i d ( t ) = T v ( t ) ⊗ G ‾ v r i g i d ( 4 ) G^{rigid}_v(t) = T_v(t) \otimes \overline{G}^{rigid}_v \quad(4) Gvrigid(t)=Tv(t)⊗Gvrigid(4)
非刚性节点。与刚性车辆不同,非刚性动态类别,如行人和骑行者,所有与人类相关的类别,需要额外考虑它们在世界空间中的全局运动以及局部空间中的连续变形,以准确重建它们的动态。为了能够完全解释底层几何形状的重建,我们进一步将非刚性节点细分为两个类别:用于具有SMPL模板的步行或跑步行人的SMPL节点,这些模板可以实现关节级控制,以及用于分布外非刚性实例(如骑行者和其他无模板动态实体)的可变形节点。
非刚性SMPL节点。如第3节所介绍的,SMPL提供了一种参数化的方式来表示人体姿态和变形,我们因此使用模型参数 ( θ ( t ) , β ) (θ(t), β) (θ(t),β)来驱动节点内的3D高斯。这里 θ ( t ) ∈ R 24 × 3 × 3 θ(t) ∈ R^{24×3×3} θ(t)∈R24×3×3代表随时间t变化的人体姿态。对于每个索引为h的节点,我们使用与GART[20]中类似的策略,将SMPL模板网格 M h M_h Mh从休息姿态(即 D a D_a Da姿态)与3D高斯¯GSMPL h进行网格化,其中每个高斯绑定到 M h M_h Mh的相应顶点。然后可以计算每个节点的世界空间高斯为:
G h S M P L ( t ) = T h ( t ) ⊗ L B S ( θ ( t ) , G ‾ h S M P L ) ( 5 ) G^{SMPL}_h(t) = T_h(t) \otimes LBS(\theta(t), \overline{G}^{SMPL}_h) \quad(5) GhSMPL(t)=Th(t)⊗LBS(θ(t),GhSMPL)(5)
这里 T h ( t ) ∈ S E ( 3 ) T_h(t) ∈ SE(3) Th(t)∈SE(3)是节点在时间t的全局姿态, L B S ( ⋅ ) LBS(·) LBS(⋅)是线性混合表面操作,根据SMPL姿态参数变形高斯。为了计算LBS操作符,首先预先计算每个高斯相对于SMPL关键关节的蒙皮权重。一旦 θ \theta θ随时间变化,关键关节的变换被更新,并且线性插值到高斯上,以获得最终变形的位置和旋转,而高斯中的其他属性保持不变。至关重要的是,仅凭传感器观测来准确优化非刚性SMPL节点的 θ ( t ) \theta(t) θ(t)参数是非常具有挑战性的。因此,通常需要一个 θ ( t ) \theta(t) θ(t)的粗略初始化,其细节将在专门部分§4.2中介绍。
非刚性可变形节点。**这些节点是用于分布外或无模板行为者的备选方案。因此,我们提出使用一个通用变形网络 F φ F_{\varphi} Fφ,其参数为 φ {\varphi} φ,以适应节点内的非刚性运动。**具体来说,对于节点 h h h,世界空间的高斯被定义为:
G h d e f o r m ( t ) = T h ( t ) ⊗ ( G ‾ h d e f o r m ⊕ F φ ( G ‾ h d e f o r m , e h , t ) ) ( 6 ) G^{deform}_h(t) = T_h(t) \otimes (\overline{G}^{deform}_h \oplus F_{\varphi}(\overline{G}^{deform}_h, e_h, t)) \quad(6) Ghdeform(t)=Th(t)⊗(Ghdeform⊕Fφ(Ghdeform,eh,t))(6)
其中变形网络生成从时间t到规范空间高斯 G ‾ h d e f o r m \overline{G}^{deform}_h Ghdeform的高斯属性变化,输出位置 δ μ h ( t ) \delta \mu_h(t) δμh(t)、旋转 δ q h ( t ) \delta q_h(t) δqh(t)和缩放因子 δ s h ( t ) \delta s_h(t) δsh(t)的变化。变化被应用回 G ‾ h d e f o r m \overline{G}^{deform}_h Ghdeform,使用 ⊕ \oplus ⊕运算符,该运算符内部执行简单的算术加法,得到 ( o , µ + δ µ ( t ) , q + δ q ( t ) , s + δ s ( t ) , c ) (o, µ + \delta µ(t), q + \delta q(t), s + \delta s(t), c) (o,µ+δµ(t),q+δq(t),s+δs(t),c)。值得注意的是,先前的方法如[50]使用单一变形网络来处理整个场景,通常在快速移动的复杂户外动态场景中失败。相反,在我们的工作中,我们定义了每个节点的变形场,这具有更多的表示能力。为了保持计算效率,网络权重 φ \varphi φ是共享的,节点的身份通过实例嵌入参数 e h e_h eh进行区分。实验结果在§5.2中表明,可变形高斯对于实现良好的重建质量至关重要。
天空节点。我们遵循[6, 47],使用单独的环境图来拟合从视图方向看到的天空颜色。将天空图像Csky与由 ( G b g , G v r i g i d , G h S M P L , G h d e f o r m ) (G^{bg}, {G^{rigid}_v}, {G^{SMPL}_h}, {G^{deform}_h}) (Gbg,Gvrigid,GhSMPL,Ghdeform)组成的高斯渲染的图像CG合成,我们获得最终渲染为:
C = C G + ( 1 − O G ) C s k y C = C_G + (1 − O_G)C_{sky} C=CG+(1−OG)Csky
其中 O G = ∑ i = 1 N α i ∏ j = 1 i − 1 ( 1 − α j ) O_G = \sum_{i=1}^{N} \alpha_i \prod_{j=1}^{i-1} (1 − \alpha_j) OG=∑i=1Nαi∏j=1i−1(1−αj)是高斯的渲染不透明度遮罩。
4.2重建现实世界中的人类*
为了初始化非刚性SMPL节点的参数 θ ( t ) \theta(t) θ(t),我们扩展了一个现成的预测器4D-Humans[9],它从原始视频输入中估计人体姿态。然而,它在我们的上下文中存在几个实际限制,这些限制妨碍了它的可用性。我们讨论并用以下模块解决这些挑战,以在野外捕获的多视图图像中,在频繁遮挡的情况下,预测准确且时间上一致的人体姿态。
人体ID匹配。4D-Humans[9]旨在处理单个摄像机视频。在我们的多摄像机设置中,这个限制导致无法在不同视图之间连接同一个人(见图3(a))。为了解决这个问题,我们使用数据集中的地面真实ID,通过检测到的个体与GT框之间的平均交集比(mIoU),匹配检测到的人体姿态,确保每个行人在多个摄像机中被一致识别。
缺失姿态补全。4D-Humans[9]难以预测被遮挡个体的SMPL姿态,在自动驾驶车辆场景中,这种情况很常见,导致缺失预测。我们通过从邻近帧插值姿态来恢复缺失的姿态。如图3(b)所示,这个过程使我们能够为被遮挡个体恢复准确的姿态,从而实现时间上完整的姿态序列。
场景-姿态对齐。作为一个为摄像机不可知性设计的通用模型,4D-Humans假设所有视频输入都有一个具有固定参数的虚拟摄像机。相比之下,真实摄像机具有不同的参数。这导致预测的姿态与现实世界坐标系统之间的比例和位置出现错位。我们利用每个个体可用的盒子大小和位置数据来校正预测姿态的比例和位置。
姿态细化。来自姿态预测器、插值和对齐估计的误差导致人体姿态存在噪声。我们利用这些带噪声的姿态初始化SMPL节点的动态,并在训练期间通过优化重建损失来共同细化每个个体每帧的姿态 θ ( t ) θ(t) θ(t)。我们的消融研究(§5.2)表明,人体姿态细化对于提高重建质量和姿态精度至关重要。
4.3优化
我们同时优化4.1节中提到的所有参数,以重建整个场景。这些参数包括:(1) 所有高斯属性(不透明度、均值位置、缩放、旋转和外观)在其局部空间中的参数,即 G b g G^{bg} Gbg, G ‾ h r i g i d , G ‾ h S M P L , G ‾ h d e f o r m { \overline{G}^{rigid}_h}, { \overline{G}^{SMPL}_h}, { \overline{G}^{deform}_h} Ghrigid,GhSMPL,Ghdeform,(2) 每帧 t t t的刚性节点和非刚性节点的姿态,即 T v ( t ) , T h ( t ) {T_v(t)}, {T_h(t)} Tv(t),Th(t),(3) 每个帧 t t t的所有SMPL节点的人体姿态参数 { θ ( t ) } \{θ(t)\} {θ(t)}以及相应的蒙皮权重,(4) 变形网络 F F F的权重 φ \varphi φ,(5) 天空模型的权重。
我们使用以下目标函数进行优化:
L = ( 1 − λ r ) L 1 + λ r L S S I M + λ d e p t h L d e p t h + λ o p a c i t y L o p a c i t y + L r e g ( 8 ) L = (1 − λ_r) L_1 + λ_r L_{SSIM} + λ_{depth} L_{depth} + λ_{opacity} L_{opacity} + L_{reg}\quad(8) L=(1−λr)L1+λrLSSIM+λdepthLdepth+λopacityLopacity+Lreg(8)
其中 L 1 L_1 L1和 L S S I M L_{SSIM} LSSIM分别是渲染图像的L1和SSIM损失, L d e p t h L_{depth} Ldepth将渲染的高斯深度与LiDAR的稀疏深度信号进行比较, L o p a c i t y L_{opacity} Lopacity鼓励高斯的不透明度与非天空掩模对齐, L r e g L_{reg} Lreg代表应用于不同高斯表示的各种正则化项。损失项的详细描述请参见附录。
5 实验
数据集。我们在Waymo开放数据集[33]上进行实验,该数据集包含现实世界的驾驶日志。然而,这些日志大多描绘了动态相对简单的场景,很少关注非刚性类别。因此,我们选择了八个高度复杂的动态场景,除了典型的车辆外,还包括多样化的动态类别,如行人和骑行者。每个选定的片段大约包含150帧。片段ID列在表8中。
基线baselines。我们将我们的方法与几种高斯散射方法进行了比较:3DGS[17]、DeformableGS[50]、StreetGS[46]、HUGS[54]和PVG[6]。此外,我们还将我们的方法与基于NeRF的方法EmerNeRF[47]进行了比较。**在比较的方法中,对于StreetGS[46],我们使用了自己的重新实现。对于3DGS[17]和DeformableGS[50],我们使用了带有LiDAR监督的实现,以确保比较的公平性。**对于其他方法,我们使用了它们的官方代码。对于训练,我们使用了三个前置摄像头的数据,所有方法都将分辨率调整为640×960,以及用于监督的LiDAR数据。我们使用了数据集提供的实例边界框来变换对象,并通过训练期间的姿态优化来细化它们。有关进一步的实现细节,请参阅附录。
5.1 主要结果
外观。我们评估了我们的方法在场景重建和新视角合成(NVS)任务上的性能,每10帧作为NVS的保留测试集。我们报告了整个图像以及与车辆和人类相关的区域的PSNR和SSIM分数,以评估动态重建能力。表1中的定量结果表明,OmniRe在所有其他方法中都优于其他方法,并且在与人类相关的区域中差距显著,验证了我们对动态行为者的全面建模。此外,尽管StreetGS[46]和我们的方法以类似的方式对车辆进行建模,我们观察到OmniRe即使在车辆区域也略优于StreetGS。这是因为StreetGS缺少对人类的建模,这允许来自人类区域(例如颜色、LiDAR深度)的监督信号错误地影响车辆建模。StreetGS面临的问题之一是我们对场景中几乎所有事物进行整体建模的动力,旨在消除错误的监督和无意的梯度传播。
此外,我们在图4中展示了可视化,以定性评估模型性能。尽管PVG[6]在场景重建任务上表现良好,但在高度动态场景的新视角合成任务上却表现不佳,导致新视角中动态物体模糊(见图4-(f))。HUGS[54](图4-(e))、StreetGS[46](图4-(d))和3DGS[17](图10-(h))未能恢复行人,因为它们无法对非刚性对象进行建模。DeformableGS[50](图10-(g))在户外动态场景中快速移动时出现极端运动模糊,尽管在室内场景和小幅度移动的情况下表现合理。EmerNeRF[47]在一定程度上重建了移动人类和车辆的粗糙结构,但在细节上却表现一般(见图4-©)。与所有这些比较方法相比,我们的方法忠实地重建了场景中任何物体的精细细节,处理了遮挡、变形和极端运动。我们建议读者查看我们的项目页面,了解这些方法的视频比较。
几何。除了外观,我们还研究了我们的方法是否能够重建城市场景的精细几何形状。我们在训练帧和新帧上评估了LiDAR深度重建的均方根误差(RMSE)和双向Chamfer距离(CD)。关于评估程序的详细信息,请参见附录。表4报告了结果。我们的方法以较大的优势超过了其他方法。图5展示了我们的方法与其他方法相比,在重建动态行为者方面所实现的精确性。
5.2 消融研究和应用
SMPL建模。SMPL建模对于模拟人类的局部、连续运动至关重要。我们通过禁用由SMPL启用的人体姿态变换来研究其影响,并在表3((a) v.s. (b))中报告结果,并在图7-(B)中展示了这些效果。没有基于模板的建模,重建的人体渲染图像在腿部周围显得高度模糊,因此无法准确重建人体运动。这与我们默认设置中观察到的精确腿部重建形成了鲜明对比。此外,SMPL建模提供了关节级控制,提高了可控性(见图1-(c,3),(c,4))。
人体姿态细化。如§4.2所讨论的,人体姿态预测存在预测误差和尺度模糊,随后导致显著的错位误差,如图6(噪声)所示。我们通过优化重建损失来共同细化每个个体每帧的姿态 θ ( t ) θ(t) θ(t)。表3-(a) v.s. ©消融了这个设计选择,图6展示了细化的姿态。这些结果验证了我们细化策略的有效性。
可变形节点。可变形节点对于准确重建分布外或无模板的行为者至关重要。我们的方法通过学习自监督变形场来解决这一挑战,该场将高斯从其规范空间变形到形状空间。表3-(a) v.s. (d)证明了这个组件的重要性。在图7-(A)中显示,没有可变形节点,一些动态行为者要么被忽略,要么错误地融入背景。
物体框优化。在实践中,我们观察到数据集提供的实例边界框是不精确的。这些带噪声的真值框可能对渲染质量有害。为了解决这个问题,我们在训练期间共同细化了边界框参数。表2和图12显示了这个简单但有效的步骤的实际好处,它导致了改进的数值指标和减少了前景物体的模糊度。
应用于模拟。由于OmniRe的分解特性,每个实例都被单独建模。**经过联合训练后,我们获得了可以灵活编辑的重建资产,无论是在单个场景内还是在场景之间转移,增加了重建环境的多样性和复杂性。**图1(c,left)展示了将场景中原始的黑色车辆(插图)与另一个场景中重建的车辆进行交换;(c,right)将场景插图中的行人插入到新场景中。图11展示了额外的车辆交换编辑。通过明确建模行人和其他非刚性个体,我们实现了涉及详细行人-车辆交互的重演场景的模拟。如图8所示,我们模拟了一辆移动的车辆在交叉路口停下,等待一个缓慢穿过的行人。行人是从另一个场景中重建的。对于先前的方法来说,模拟人类极具挑战性。
6结论
我们的方法OmniRe使用高斯场景图来处理全面的城市场景建模。它实现了快速、高质量的重建和渲染,显示出在自动驾驶和机器人模拟方面的潜力。我们还为复杂环境中的人类建模提供了解决方案。未来的工作包括自监督学习、改进的场景表示和安全/隐私考虑。
更广泛的影响:我们的方法旨在解决自动驾驶中的一个重要问题——模拟。这种方法有潜力加强自动驾驶车辆的开发和测试,可能导致更安全、更高效的自动驾驶系统。以一种安全和可控的方式进行模拟,仍然是一个开放和具有挑战性的研究问题。
伦理与隐私:我们的工作不涉及收集或注释新数据。我们使用的是遵守严格道德指南的、广为人知的公共数据集。这些数据集确保了包括可识别的人类特征在内的敏感信息被模糊或匿名化,以保护个人隐私。我们致力于确保我们的方法以及未来的应用能够负责任和道德地使用,以维护安全和保护隐私。
局限性:**OmniRe仍然有一些局限性。**首先,我们的方法没有明确模拟光照效果,这可能导致模拟期间的视觉和谐问题,特别是当结合在不同光照条件下重建的元素时。**解决这一挑战需要超出我们当前工作范围的专门努力。进一步研究模拟光效和增强模拟现实感是实现更有说服力和和谐结果的关键。其次,与其他每场景优化方法类似,当相机显著偏离训练轨迹时,OmniRe在生成新视角时会产生较少满意的结果。我们认为,结合数据驱动的先验,如图像或视频生成模型,代表了未来探索的有希望的方向。
补充材料
A 应用细节
**初始化:**对于背景模型,我们参考了PVG [6],结合了6 × 10^5个LiDAR点和4 × 10^5个随机样本,这些样本根据[6]中描述的策略被分为2 × 10^5个近样本,它们按距离场景原点的距离均匀分布,以及2 × 10^5个远样本,它们按逆距离均匀分布。为了初始化背景,我们过滤掉了动态对象的LiDAR样本。对于刚性节点和非刚性可变形节点,我们利用它们的边界框来累积LiDAR点,而对于非刚性SMPL节点,我们在它们的规范空间中初始化高斯。为了确定高斯的初始颜色,我们将LiDAR点投影到图像平面上,而随机样本则用随机颜色初始化。非刚性SMPL节点的初始人体姿态序列是通过在§ 4.2中描述的过程获得的。
**训练:**我们的方法训练30,000次迭代,所有场景节点共同优化。高斯属性的学习率与3DGS [17]的默认设置一致,但在不同类型的节点间略有不同。具体来说,我们将非刚性SMPL节点的高斯旋转学习率设为 5 × 1 0 − 5 5 × 10^{-5} 5×10−5,而其他节点为1 × 10^-5。球谐函数的阶数对于背景节点、刚性节点和非刚性可变形节点设为3,而对于非刚性SMPL节点则设为1。实例框的旋转学习率设为1 × 10^-5,逐渐减少到5 × 10^-6。实例框的平移学习率设为5 × 10^-4,逐渐减少到1 × 10^-4。非刚性SMPL节点的人体姿态学习率设为5 × 10^-5,逐渐减少到1 × 10^-5。对于高斯密集策略,我们使用了[51]中介绍的高斯的绝对梯度来控制内存使用。我们将位置梯度的密集阈值设为3 × 10^-4。这种使用绝对梯度的做法对性能影响很小,如附录D.3中详细讨论的。缩放的密集阈值设为3 × 10^-3。我们的方法在单个NVIDIA RTX 4090 GPU上运行,每个场景的训练时间约为1小时。训练时间会根据不同的训练设置而变化。有关更多实现细节,请访问我们的项目页面以获取代码。
**优化:**我们使用等式(8)中引入的目标函数来联合优化所有可学习参数。图像损失计算为:
L image = ( 1 − λ r ) L 1 + λ r L SSIM L_{\text{image}} = (1 - \lambda_r) L_1 + \lambda_r L_{\text{SSIM}} Limage=(1−λr)L1+λrLSSIM
**由于动态部分的时空观测是稀疏的,其监督信号是不足的。为了解决这个问题,我们对动态区域(由渲染的动态掩模识别)应用了更高的图像损失权重。**这个权重设置为5。深度图损失计算为:
L depth = 1 h w ∑ all pixels ∣ D s − D ^ ∣ L_{\text{depth}} = \frac{1}{h w} \sum_{\text{all pixels}} |D_s - \hat{D}| Ldepth=hw1all pixels∑∣Ds−D^∣
其中 D s D^s Ds 是稀疏深度图的倒数。我们将LiDAR点投影到图像平面上,以生成稀疏的LiDAR图,而 D ^ \hat{D} D^是预测深度图的倒数。
掩模损失 L opacity L_{\text{opacity}} Lopacity计算为:
L opacity = − 1 h w ( ∑ all pixels O G log O G + ( 1 − O G ) log ( 1 − O G ) ) L_{\text{opacity}} = -\frac{1}{h w} \left( \sum_{\text{all pixels}} O_G \log O_G + (1 - O_G) \log (1 - O_G) \right) Lopacity=−hw1 all pixels∑OGlogOG+(1−OG)log(1−OG)
其中 M sky M_{\text{sky}} Msky是天空掩模,而 O G O_G OG是渲染的不透明度图。
除了重建损失,我们还为不同的高斯表示引入了各种正则化项,以提高质量。其中,一个重要的正则化项是 L pose L_{\text{pose}} Lpose,旨在确保人体姿态 θ ( t ) \theta(t) θ(t) 平滑。这个项定义为:
L pose = 1 2 ∥ θ ( t − δ ) + θ ( t + δ ) − 2 θ ( t ) ∥ 1 L_{\text{pose}} = \frac{1}{2} \|\theta(t - \delta) + \theta(t + \delta) - 2\theta(t)\|_1 Lpose=21∥θ(t−δ)+θ(t+δ)−2θ(t)∥1
其中 δ \delta δ是从集合{1, 2, 3, 4, 5}中随机选择的整数。我们将SSIM损失的权重 λ r \lambda_r λr设置为0.2,深度损失 λ depth \lambda_{\text{depth}} λdepth设置为0.1,不透明度损失 λ opacity \lambda_{\text{opacity}} λopacity设置为0.05,姿态平滑损失 λ pose \lambda_{\text{pose}} λpose设置为0.01。更多细节可以在我们开源的代码库中找到。
C 评估
外观。对于新视图合成任务,我们从原始序列中选择每10帧作为测试集。我们使用PSNR和SSIM来评估渲染图像的质量。由于我们关注动态场景,我们也计算了有车辆和人类的区域的PSNR和SSIM。为了识别车辆和人类的区域,我们使用Segformer[45]来获得语义面具。我们利用运动物体边界盒的投影来进一步识别可移动的动态部件,利用它们的速度信息。图9中是动态遮罩的一个例子。
几何图形。我们的方法利用激光雷达数据初始化高斯分布深度,并通过比较渲染的深度图和稀疏激光雷达深度图来监督场景深度。在训练后,高斯分布通常通过致密化或优化来偏离其初始状态,因此,比较激光雷达的深度重建仍然是一个有效的比较。我们遵循StreetSurf10]的深度评估方法:渲染一个深度地图,并匹配深度像素到激光雷达射线。对于Chamfer Distance,使用激光雷达光线方向和原点将预测的深度重新投影到3D。对于RMSE,比较GT和激光雷达光线的预测范围。
E OmniRe在实践中的应用
边界框
与其他基于场景图的方法一样[28, 48, 36, 7, 55, 54, 46],我们使用边界框来进行驾驶场景重建,因为它们通常用于产生比不使用它们的方法更优越的重建结果。此外,边界框提供了显著的可控性。它允许对刚性物体(如车辆)和非刚性物体(如人体运动)进行精确的操作——这种能力在像EmerNeRF[47]和PVG[6]这样不使用实例信息的自监督方法中是缺乏的。这种可控性对于需要管理所有参与代理运动的场景模拟任务至关重要。最后,边界框标注是自动驾驶领域中的标准且通常简单的过程,大多数流行的数据集已经通过建立的自动标记工具提供了这些注释,从而最小化了手动工作量,使资源既高效又易于访问。对于真实世界的驾驶日志,这些自动标记工具可以以很小的成本生成精确的边界框。
如何确定用于人类的高斯表示?
我们将行人分为两类进行建模。近程行人,由我们在§4.2中介绍的人体姿态处理模块检测到,使用SMPL节点进行建模。远程行人,通常由于距离原因无法检测到,使用可变形节点进行建模。这种方法基于人类检测能力自然地区分了近程和远程行人。
其他个体,如使用轮椅、滑板或自行车的人,在数据集中通常被标记为“骑行者”。然而,这些标签可能特定于所使用的数据集,在某些情况下,注释可能不准确。例如,在Waymo数据集中,骑摩托车的人可能被标记为“车辆”。这种对数据集特定标签的依赖可能会限制我们方法在其他具有不完美标签的场景中的泛化能力。
为了解决这个问题,我们使用GPT-4o [1]进行了初步实验,以将个体(通过边界框裁剪)分类为两类:行人和使用个人交通工具的人类(例如轮椅、自行车、摩托车)。在对60个个体(每类30个)进行测试时,GPT-4o [1]实现了100%的准确率。这表明,由于视觉-语言模型的发展,相对容易获得准确的标签。
参考资料
Chamfer Distance
Chamfer Distance(Chamfer距离)是一种在三维计算机视觉和图形学中常用的度量,用于评估两个点集之间的相似度,或者更具体地说,用于比较一个点云与另一个点云或网格模型之间的差异。这个度量尤其用于评估三维重建、表面重建或三维形状匹配的质量。
Chamfer距离由两部分组成:
- 从预测到真实(Forward Chamfer Distance):对于预测点集中的每个点,找到真实点集中与之最近的点,然后计算距离。将所有这些距离求和并取平均,就得到了从预测到真实的Chamfer距离。
- 从真实到预测(Backward Chamfer Distance):与上述过程相反,对于真实点集中的每个点,找到预测点集中与之最近的点,然后计算距离。将所有这些距离求和并取平均,就得到了从真实到预测的Chamfer距离。
总的Chamfer距离通常是这两个方向上距离的平均值或总和。这个度量是对称的,可以很好地反映两个点集之间的整体差异。
在实际应用中,Chamfer距离可以用来评估由神经网络或其他算法生成的三维模型的质量,或者用于比较两个三维模型之间的相似度。它是一个简单但有效的度量,尤其适用于点云数据,因为它不需要复杂的表面参数化或特征匹配。
欢迎关注我的公众号