当前位置: 首页 > article >正文

MeshGS: Adaptive Mesh-Aligned GaussianSplatting for High-Quality Rendering 论文解读

目录

一、概述

二、相关工作

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中提取有符号距离场f_{sdf},之后将f_{sdf}输入到第二个MLP中输出颜色场f_{color}。进一步将有符号距离场f_{sdf}与颜色场f_{color}结合得到变换后的f_{sdf}几何表示。

        之后利用Marching Cubes算法提取f_{sdf}几何表示,生成三角网格,并通过网格简化,减少网格模型中三角形数量,保持几何细节,提高渲染质量。

2、基于Mesh的GS溅射

        基于距离的3DGS溅射:给定一个mesh网格M,考虑在每个三角形网格的中心位置(视点P_i)初始化3D高斯溅射,利用对应视角的深度图来遮挡那些被网格表面遮挡的高斯溅射,且定义网格表面是完全不透明的。

        另外在训练过程中,评估所有训练视角中,永远不会被观察到的位于网格表面后方的冗余高斯溅射将它移除。

        考虑到真实场景中重建网格存在伪影,我们的目标要拆分成对待能够高度重建的让他表现的更好(紧密绑定),另外的部分保证减少伪影(松散绑定),所以将高斯溅射分为两类,一个是紧密绑定在网格表面的(高斯溅射和mesh网格之间距离小于阈值),另一个是松散绑定在网格表面的(高斯溅射和mesh网格之间距离大于阈值),紧密绑定的高斯溅射被平坦化并与网格表面对齐,而松散绑定的高斯溅射则用于覆盖网格失真的区域。

3、损失函数

        损失函数由四部分构成,图像损失,法线一致性损失,尺度损失,投影损失。

(1)图像损失L_{img}:在真实图像和渲染图像中采用L1损失和D-SSIM损失。

                                L_{img}=(1-\lambda_{img})L_1(\hat{I_i},I_i)+\lambda_{img}SSIM(\hat{I_i},I_i)

        其中,I_i是原始图像,\hat{I}_i是渲染图像,\lambda_{img}是权重系数。

(2)法线一致性损失L_{nc}:确保紧密绑定的高斯溅射的法线与对应网格面的法线保持一致,使得高斯溅射更加贴合网格表面。

                                        L_{nc}=\sum_{i \in G^t,f \in F}(1-n_i \cdot n_f)

        其中,n_i是紧密绑定的高斯溅射的法线,n_f是对应网格面的法线。

(3)尺度正则化损失L_{scale}:用于控制紧密绑定的高斯溅射,并将其与网格表面对齐的尺度阈值。正则化最小尺度和最大尺度\rho

                L_{scale}=\sum_{i \in G^t}(\lambda_{min}|min(s_1,s_2,s_3)|+\lambda_{max}|max(s_1,s_2,s_3)-\rho|)

(4)投影损失L_{proj}:用来确保紧密绑定的高斯溅射的中心P,保持在网格表面上的最近点s_i附近的损失函数。

        ​​​​​​​        s_i=P_i+((P_i-v_i)\cdot f_j) \cdot f_j

                L_{proj}=\sum_{i \in G^t}||s_i-P_i||_2

总损失:L=L_{img}+\lambda_{nc}L_{nc}+L_{scale}+\lambda_{proj}L_{proj}

参考论文:MeshGS: Adaptive Mesh-Aligned Gaussian Splatting for High-Quality Rendering


http://www.kler.cn/news/354571.html

相关文章:

  • 公司新来一个同事,把枚举运用得炉火纯青...
  • 【Flutter】Dart:库
  • 文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《计及配电线路脆弱性的电动汽车充放电时空分布优化策略》
  • day46|72. 编辑距离647. 回文子串516.最长回文子序列 5 最长回文子串
  • vue3 使用 Vue Router实现前端路由控制
  • 【Echarts动态排序图,series使用背景色更新动画,背景底色不同步跟随柱子动画】大家有没有解决方案
  • 遥感技术助力生态系统碳储量、碳收支、碳循环等多领域监测与模拟:森林碳储量,城市扩张,夜间灯光数据,陆地生态系统,大气温室气体监测等
  • 轻量级可视化数据分析报表,分组汇总表!
  • MySQL—关于数据库的CRUD—(增删改查)
  • Vue——Uniapp回到顶部悬浮按钮
  • TS和JS中,string与String的区别
  • 【VUE】Vue中的data属性为什么是一个函数而不是一个对象
  • 机器学习:opencv--光流估计
  • 一文探索RareShop:首个面向消费者的RWA NFT商品发售平台
  • Spring Boot 2.6=>2.7 升级整理
  • 域1:安全与风险管理 第3章(BCP)和第4章(Laws, regulations, and compliance)
  • leaflet(一)初始化地图
  • Mybatis--简略2
  • 树莓派4B-用串口读取JY901S陀螺仪数据
  • JNI是什么