点击下方
卡片
,关注“
自动驾驶之心
”公众号
编辑 | 自动驾驶之心
3D高斯溅射(3D Gaussian Splatting,简称3DGS)是一种新兴的三维场景表示和渲染技术,它通过将3D空间中的点或体素视为高斯分布的中心,从而在空间中创建连续的表面或体积表示,广泛应用于点云渲染、体数据可视化、体积重建、增强现实(AR)和虚拟现实(VR)、电影和动画制作。
可能说到这里你还无法感受到3DGS的神奇之处,那么看看小红书博主Chyi是如何用3DGS在游戏中重建桌面的吧!
图注:视频来源:https://www.xiaohongshu.com/explore/66137816000000001b00cbd1?app_platform=ios&app_version=8.54.1&share_from_user_hidden=true&xsec_source=app_share&type=video&xsec_token=CBmY-_c550w0nnogaRfTSTqAEp898aw1_pNjLOF7JeLxw=&author_share=1&xhsshare=WeixinSession&shareRedId=ODdHMDVJNT82NzUyOTgwNjczOTc6RjlA&apptime=1727236710&share_id=981c6b33086d4a40b697ba4659d8fbc7&wechatWid=d23f41df238fec9f0e59f3a96872f4c1&wechatOrigin=menu
3DGS目前研究的一大难点是,
从稀疏视图进行有效3D重建
十分复杂和困难,尤其是在资源有限或条件受限的实际应用场景中。首先,
数据捕获十分繁琐,
通常需要捕获大量的多视图图像来进行有效的3D重建,这一过程对于非专业人士来说既麻烦又不切实际。其次,当只有极少数图像可用于重建时(例如360°范围内仅有4张图像),
构建多视图一致性
非常困难。3D表示可能会过拟合输入图像,导致结果退化成训练视图中的碎片化像素块,缺乏整体结构。此外,在360°范围内从稀疏视图捕获的对象,某些部分可能因为视角极端而被省略或在观察时被严重压缩。这些
被省略或压缩的信息很难仅从输入图像中进行3D重建
。即使近年来有多种方法提出以减少对密集捕获的依赖,但在视图极其稀疏的情况下,如何生成高质量的3D对象仍然是一个挑战。
图注:GaussianObject fast forward. 来源:
Chen Yang, Sikuang Li, Jiemin Fang, Ruofan Liang, Lingxi Xie, Xiaopeng Zhang, Wei Shen, Qi Tian,
GaussianObject: High-Quality 3D Object Reconstruction from Four Views with Gaussian Splatting,
https://gaussianobject.github.io/
为了解决上述挑战,上交、华为、多伦多大学联合提出GaussianObject,这是一个新颖的框架,旨在从少至4个输入图像中重建高质量的3D物体。
文章选择3D高斯喷溅(3DGS)作为基本表示,因为它快速,更重要的是,足够明确。得益于其点状结构,文章设计了几种技术来引入物体结构先验,例如物体的基本/粗略几何形状,以帮助建立多视图一致性,包括视觉外壳在物体轮廓内定位高斯分布和去除离群值的浮子消除。为了消除由遗漏或高度压缩的对象信息引起的伪影,文章提出了一种由二维大扩散模型驱动的高斯修复模型,将损坏的渲染图像转换为高保真图像。由于正常的扩散模型缺乏修复损坏图像的能力,文章设计了自生成策略来构建图像对以调整扩散模型,包括从遗漏训练模型中渲染图像以及在高斯属性中添加3D噪声。修复模型生成的图像可用于细化经结构先验优化的三维高斯分布,从而进一步提高渲染质量。为了进一步将GaussianObject扩展到实际应用中,文章引入了一种无colmap的GaussianObject变体(CF-GaussianObject),它在只有四张输入图像的挑战性数据集上实现了具有竞争力的重建性能,而无需输入准确的相机参数。
总之,这篇文章的贡献可以总结如下:
结构先验优化3D高斯(3D Gaussians)
:文章提出了一种从高度稀疏视图中优化3D高斯的方法,该方法利用显式结构先验来增强多视图一致性。这包括使用视觉外壳(visual hull)技术进行初始化,以及在训练过程中采用浮动体消除(floater elimination)技术,从而为重建的3D对象提供一个粗略的几何框架。
基于扩散模型的高斯修复模型
:为了解决由于信息缺失或高度压缩而导致的3D重建中的伪影问题,文章提出了一种基于扩散模型的高斯修复模型。这个模型能够将损坏的渲染图像转换成高保真的图像,从而进一步提高渲染质量。
框架性能超越当前最先进技术
:整体框架GaussianObject在多个具有挑战性的真实世界数据集上,无论是定性还是定量地,都一致性地超越了当前的最先进技术(SOTA)。此外,文章还提出了一种无需COLMAP的变体(CF-GaussianObject),它在只需要四个输入图像的情况下就能实现竞争性的重建性能,并且不需要输入精确的相机参数,这降低了对相机姿态的严格要求,扩大了应用范围。
https://arxiv.org/abs/2402.10259
https://gaussianobject.github.io/
基本技术回顾
3D Gaussian Splatting
3D Gaussian Splatting是一种用于3D场景表示的技术,它通过一组3D高斯函数来描述场景中的点。每一个3D高斯函数包含中心位置、旋转四元数、缩放向量、不透明度和球谐系数。这样,一个场景可以被参数化为一组高斯函数。这种表示方法不仅计算效率高,而且由于其点状结构,可以方便地嵌入结构先验,适用于快速渲染。
ControlNet
ControlNet是一种基于扩散模型的生成模型,用于从数据分布中进行采样,生成图像。它通过逆转一个离散时间随机噪声添加过程,使用一个训练有素的扩散模型来近似这个过程。ControlNet通过在变分自编码器(VAE)的基础上,引入额外的图像条件,增强了生成过程。它使用一个损失函数来优化网络结构,这个损失函数考虑了文本和图像的条件,以及由扩散模型推断出的高斯噪声。
这两种技术在文章中被用于构建GaussianObject框架,用于从稀疏视图高质量地重建3D对象。3D Gaussian Splatting用于高效的3D表示和渲染,而ControlNet用于通过扩散模型修复和优化这些3D表示。
模型总体框架
GaussianObject旨在从极度稀疏的视角(例如360°范围内的4张图像)重建并渲染高质量的3D对象。模型的输入包括一组稀疏的参考图像(以及相应的相机内参、外参和对象的遮罩)。首先使用视觉外壳技术(visual hull)初始化3D高斯,为3D对象提供一个大致的几何框架。然后通过“浮点消除”(floater elimination)技术,优化3D高斯表示,以增强结构一致性并减少异常值。再设计一个基于扩散模型的高斯修复模型,用于修复由于信息缺失或压缩而造成的伪影,并设计自生成策略来获取训练修复模型所需的图像对。文章还提出了一种不需要COLMAP(一种结构从运动技术)的变体,它在没有精确相机位姿的情况下也能实现竞争性的重建质量。最后输出优化后的3D高斯表示,可以从任何视角渲染出照片级真实的3D对象。
1. 使用结构先验进行3D高斯的初始优化
文章提出了两种初始优化三维高斯表示的技术,它们充分利用了有限视图的结构先验,并得到了令人满意的物体轮廓。
根据视觉外壳初始化:
在视觉外壳内使用拒绝采样方法随机初始化点:将均匀采样的随机3D点投影到图像平面上,只保留那些位于所有图像空间遮罩相交区域内的点。点的颜色是通过参考图像投影的双线性插值像素颜色平均得到的,并将这些3D点转换成3D高斯点。
浮动移除:
由于参考图像覆盖范围不足,视觉外壳可能包含不属于物体的区域,这些区域表现为浮动,影响新视图合成的质量。因此,文章使用K-Nearest Neighbors (KNN)算法计算每个3D高斯到最近
个高斯的平均距离。通过计算距离的平均值和标准差来建立一个规范范围,并根据这个范围排除那些平均邻接距离超出自适应阈值的高斯点。
初始优化:
优化过程包括颜色损失、掩模损失和单目深度损失。其中颜色损失结合了L1损失和结构相似性(SSIM)损失。掩模损失使用二元交叉熵(BCE)损失。深度损失使用移位和尺度不变深度损失。综合这些损失项,通过调整各损失项的权重来优化3D高斯表示。
2. 引入高斯修复模型,旨在解决由于输入视图稀疏导致3D对象重建中出现的问题。