目录
一、概述
二、相关工作
1、神经渲染
2、基于Mesh的渲染
3、基于点的渲染和高斯溅射
三、前置知识
1、SDF
2、Marching Cubes算法
四、MeshGS
1、初始化Mesh网格
2、基于Mesh的GS溅射
3、损失函数
一、概述
提出一种基于距离的高斯splatting,并且将高斯splatting和网格表面相结合,消除高斯splatting中对渲染毫无贡献的冗余。对于高斯splats和mesh网格间的距离区分为紧密束缚和松弛束缚,并对两类方法采用不同的训练方法,对紧密束缚采取几何正则化,松弛束缚采用图像监督。该方法超越了基于mesh网格的渲染技术,且相比原始的3DGS的splat个数少了30%。
(1)提出了一种新的基于mesh网格的GS splatting方法,将GS splats与三角形mesh网格相结合,提出了一种新的方法来初始化和训练在三角mesh网格下的GS splats。
(2)使用两种高斯splats和mesh网格间的距离来区分,并引入不同的训练策略,适应不同的渲染需求。
二、相关工作
1、神经渲染
NeRF考虑使用MLP来编码场景,并通过可微的体渲染来恢复RGB和密度。
隐式神经曲面考虑将MLP映射到一个符号距离函数(SDF)或占用网格上,并使用可微体渲染来训练。
2、基于Mesh的渲染
基于Mesh的渲染原理就是利用网格将3D模型分解为表面的多边形进行渲染。
一方面将GS splats替代网格,来捕捉场景细节,SuGaR将GS splats紧密绑定在网格表面,MobileNeRF考虑优化三角面,并将不透明度和特征嵌入到纹理。另外VMesh考虑结合mesh和体渲染来实现高保真重建,LTM考虑使用网格抽取实现大场景下的重建。
但大多数基于Mesh的渲染都存在网格伪影,所以该论文提出结合3DGS来突破这个挑战。
3、基于点的渲染和高斯溅射
基于点的渲染旨在打破传统基于多边形网格渲染的技术。近期也提出关于点云渲染、球体渲染、可微分溅射等方法。
3DGS通过3DGS splatting进行渲染,通过快速光栅化实现。
SuGaR利用泊松重建,从3DGS提取mesh网格并绑定在三角形上进行渲染。
GaussianAvatars和GaMeS考虑将3DGS紧密绑定网格上,用于渲染动态场景和人体模型。
上述论文更加关注单一物体或人体模型,而该论文考虑对于大场景下的基于mesh的高斯splat技术,mesh结合3DGS可以保证渲染质量的前提下,获取更为精确的几何信息。
三、前置知识
1、SDF
有符号距离场(Signed Distance Field,SDF)是一种用于表示3D几何的数据结构。SDF将3D空间中每一个点都映射为一个实数,对于表面内部的点,SDF值设为负数,表面的点,SDF值为0,表面外部的点,SDF值为正。
SDF可以用来精确表示3D几何形状,通过微分渲染技术来优化。
2、Marching Cubes算法
Marching Cubes算法是一种用于从3D几何数据中提取精确的3D网格表示,通过划分立方体网格,并根据每个立方体内的数据值确定等值面的位置和形状,从而生成三角网格表示的等值面。
在论文中因为Marching Cubes算法会生成大量三角形,所以进行进一步的mesh decimation(网格简化),通过减少网格模型中的三角形数量,尽可能保持原始几何形状,也对于后续高分辨率网格和快速光栅化渲染相结合的效果更加显著,也提高了效率。
四、MeshGS
MeshGS的网络框架分为两个部分:初始化Mesh网格,基于Mesh的GS溅射。
1、初始化Mesh网格
对于以往的3DGS方法使用SfM技术生成的稀疏点云,该论文为了高质量渲染,考虑设计网格重建初始化3DGS,而非稀疏点云计算3DGS参数。
首先输入多视图图像和相机位姿信息利用BakedSDF技术提取3DSDF几何表示,其中分别使用两个MLP,首先输入图像到一个MLP中提取有符号距离场,之后将输入到第二个MLP中输出颜色场。进一步将有符号距离场与颜色场结合得到变换后的几何表示。
之后利用Marching Cubes算法提取几何表示,生成三角网格,并通过网格简化,减少网格模型中三角形数量,保持几何细节,提高渲染质量。
2、基于Mesh的GS溅射
基于距离的3DGS溅射:给定一个mesh网格,考虑在每个三角形网格的中心位置(视点)初始化3D高斯溅射,利用对应视角的深度图来遮挡那些被网格表面遮挡的高斯溅射,且定义网格表面是完全不透明的。
另外在训练过程中,评估所有训练视角中,永远不会被观察到的位于网格表面后方的冗余高斯溅射将它移除。
考虑到真实场景中重建网格存在伪影,我们的目标要拆分成对待能够高度重建的让他表现的更好(紧密绑定),另外的部分保证减少伪影(松散绑定),所以将高斯溅射分为两类,一个是紧密绑定在网格表面的(高斯溅射和mesh网格之间距离小于阈值),另一个是松散绑定在网格表面的(高斯溅射和mesh网格之间距离大于阈值),紧密绑定的高斯溅射被平坦化并与网格表面对齐,而松散绑定的高斯溅射则用于覆盖网格失真的区域。
3、损失函数
损失函数由四部分构成,图像损失,法线一致性损失,尺度损失,投影损失。
(1)图像损失:在真实图像和渲染图像中采用L1损失和D-SSIM损失。
其中,是原始图像,是渲染图像,是权重系数。
(2)法线一致性损失:确保紧密绑定的高斯溅射的法线与对应网格面的法线保持一致,使得高斯溅射更加贴合网格表面。
其中,是紧密绑定的高斯溅射的法线,是对应网格面的法线。
(3)尺度正则化损失:用于控制紧密绑定的高斯溅射,并将其与网格表面对齐的尺度阈值。正则化最小尺度和最大尺度。
(4)投影损失:用来确保紧密绑定的高斯溅射的中心,保持在网格表面上的最近点附近的损失函数。
总损失:
参考论文:MeshGS: Adaptive Mesh-Aligned Gaussian Splatting for High-Quality Rendering