本文经自动驾驶之心公众号授权转载,转载请联系出处。
Street Gaussians的动机
- 在自动驾驶领域,动态街景重建有着重要的应用场景,比如数据生成、自动标注、闭环仿真等。由于对重建质量和效率有较高的要求,这方面的技术仍旧临着巨大的挑战。
- 对于单目视频建模动态城市街景的问题,近期方法主要是基于NeRF并结合跟踪车辆的姿态,从而重建出高真实感的视图。然而训练和渲染速度慢、对跟踪车辆姿态精度需求高,使其在很难真正被应用起来。
- 我们提出了Street Gaussians,这是一种新的显式场景表示方法,可以解决所有这些限制。
开源链接:
- Street Gaussians for Modeling Dynamic Urban Scenes
- https://zju3dv.github.io/street_gaussians/
方法简介
- 在Street Gaussians中,动态城市街道被表示为一组3D高斯的点云,每个点云与前景车辆或背景之一相关联。为了模拟动态前景物体车辆,每个物体模型都用可优化的跟踪姿态进行建模,并配有动态球谐函数模型来表现动态外观。
- 这种显式表示可以轻松地组合物体车辆和背景,进而允许进行场景编辑操作。同时拥有极高的效率,可以在半小时完成训练,渲染速度达到133FPS(1066x1600分辨率)。
- 实验表明,Street Gaussians在所有数据集上优于现阶段SOTA方法。此外,提出了前景目标位姿优化策略(初始位姿来自跟踪器),与使用真值姿态所达到性能相当,也验证了Street Gaussians的高鲁棒性。
背景介绍
- 静态场景建模
○基于场景表达的不同,我们可以将场景重建分为volume-based和point-based。volume-based的方法,用MLP网络表示连续的体积场景,已经取得了令人印象深刻的渲染结果。同时比如Mip-NeRF360、DNMP等也将其应用场景扩展到了城市街景 。point-based的方法,在点云上定义学习神经描述符,并使用神经渲染器执行可微分的光栅化,大大可以提高了渲染效率。然而,它们需要密集的点云作为输入,并在点云稀疏区域的结果相对模糊。最近的一项工作3D Gaussian Splatting (3D GS),在3D世界中定义了一组各向异性的高斯核,并执行自适应密度控制,以仅使用稀疏的点云输入实现高质量的渲染结果。我们可以把3DGS理解成介于volume-based和point-based的中间态,所有同时拥有volume-based方法的高质量,也拥有point-based方法的高效率。然而,3DGS假定场景是静态的,不能模拟动态移动的对象。 - 动态场景建模。
○可以从不同的角度来实现动态场景建模,从目标角度,可以在单个对象场景上构建4D神经场景表示(比如HyperReel ),从场景角度,可以通过在光流(如Suds)或视觉变换器特征(Emernerf )监督下的实现场景解耦。然而,这些方法均无法对场景进行进行编辑,限制了其在自动驾驶仿真中的应用。还有一种方式,使用神经场将场景建模为移动对象模型和背景模型的组合(比如NSG、Panoptic Neural Fields),然而,它们需要精确的对象轨迹,并且在内存成本和渲染速度上存在问题。
算法建模
- 考虑到自动驾驶场景中都是通过车载相机得到图像序列,我们希望构建一个模型,可以生成任意时间和视角的高质量图像。为实现这一目标,我们提出了一种新颖的场景表示,命名为"Street Gaussians"。如图所示,我们将动态城市街景表示为一组点云,每个点云对应于静态背景或移动车辆。这种基于点的表示可以轻松组合多个独立的模型,实现实时渲染以及解耦前景对象以实现场景编辑。我们提出的场景表示可以仅使用RGB图像进行训练,同时结合车辆位姿优化策略,进一步增强动态前景的表示精度。
静态背景建模
- 针对静态背景,使用基本的3DGS方式建模,即我们世界坐标系中一组点来表示背景模型,每个点分配有一个3D高斯分布,以平滑地表示连续的场景几何和颜色。高斯参数包括协方差矩阵和位置向量(表示均值)。与3DGS一样,为了避免在优化过程中出现无效的协方差矩阵,每个协方差矩阵进一步缩减为缩放矩阵和旋转矩阵,其中缩放矩阵由其对角元素表征,而旋转矩阵被转换为单位四元数。除了位置和协方差矩阵之外,每个高斯分布还分配有一个不透明度值和一组球谐系数来表示场景几何和外观。为了获得视图相关的颜色,球谐系数还会乘以从视图方向投影的球谐基函数。为了表示3D语义信息,每个点还附加有一个语义特征。
动态前景建模
- 针对包含多辆移动前景物体车辆的场景,我们将每个对象用一组可优化的姿势(初始位姿可以来自某个跟踪器,比如CasTracker)和一组点云表示,其中每个点分配有一个3D高斯分布、语义和动态外观模型。前景对象和背景的高斯属性相似,不透明度和尺度矩阵的定义相同,然而它们的位置、旋转和外观模型均不同。
- 每一个前景对象的3DGS模型,定义在该对象的local坐标系下。我们通过前景对象的RT矩阵,可以将前景对象和背景的模型统一到世界坐标系下。
- 仅使用球谐系数简单表示物体外观不足以模拟移动车辆的外观,如图所示,因为移动车辆的外观受到其在全局场景中位置的影响。如果使用单独的球谐来表示每个时间的对象,会显著增加存储成本,我们的解决方案是引入了4D球谐模型,通过用一组傅里叶变换系数来表示球谐系数,当给定任意时间t,可以通过逆傅立叶变换来求出对应的球谐系数。基于这种方式,我们将时间信息编码到外观中,而且不增加额外存储成本。
渲染过程
- 要渲染Street Gaussians,我们就需要聚合每个模型对最终结果的贡献。以前的方法中,由于神经场表示方式,需要复杂的raymarching 方式进行组合渲染。相反,Street Gaussians可以通过将所有点云拼接起来,并将它们投影到2D图像空间来进行渲染。具体来说,在给定渲染时间点的情况下,我们首先计算球谐系数,并根据跟踪的车辆姿态将前景对象点云转换到世界坐标系,然后将背景点云和变换后的前景对象点云拼接起来形成一个新的全场景点云。
效果评估
- 我们在Waymo和KITTI数据集上都进行了实验来评估我们的方法合成新视角的能力,不论定性和定量结果表明,相比之前的工作,我们的方法可以渲染出渲染高质量图片,并在各项指标上均有有显著提升。
○下图是从定性角度,分别在waymo和kitti数据集上对比目前已有方法,无论背景还是前景目标,我们的方法在细节的渲染上均有大幅提高。
○同时我们在kitti和waymo上定量对比了重建指标,我们的方法也大幅领先已有方法。
KITTI数据集
Waymo数据集
下游任务
- Street Gaussians可以被应用到很多下游任务当中,包括场景的前背景解耦、场景的可控编辑、语义分割等。丰富且高质量的下游任务适配,大大提高了Street Gaussians的应用上限。
○我们的模型可以实现场景前背景解耦,细节上相比之前的方法有明显提升。
○我们的模型支持便捷的场景编辑,如下图分别是车辆增加、替换和交换的编辑操作。
○我们的模型还支持拓展到语义分割任务,依靠我们的建模方式,我们对于前景目标的分割更加细腻。
方法总结
- 我们提出来了Street Gaussians,这是一种新颖的用于建模复杂的动态街道场景的表征方法,它能够高效地重建和渲染出高保真度的城市街道场景,并且支持实时渲染。
- 我们开发了一种优化跟踪姿态的策略,配合一个4D球谐函数模型外观模型来处理移动前景的动态车辆。
- 我们在几个具有挑战性的数据集上进行了全面的比较和消融实验,展示了我们方法的最新最先进性能以及所提出组件的有效性。
原文链接:https://mp.weixin.qq.com/s/zE32LGs6DHfbz_D5-8JYOA