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中提取有符号距离场,之后将
输入到第二个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
相关文章:
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,并且将高…...
JDK-23与JavaFX的安装
一、JDK-23的安装 1.下载 JDK-23 官网直接下载,页面下如图: 2.安装 JDK-23 2.1、解压下载的文件 找到下载的 ZIP 文件,右键点击并选择“解压到指定文件夹”,将其解压缩到您希望的目录,例如 C:\Program Files\Java\…...
LeetCode讲解篇之2266. 统计打字方案数
文章目录 题目描述题解思路题解代码题目链接 题目描述 题解思路 我们使用逆向思维发现如果连续按存在三个字母的按键,最后一个按键表示的字母可以是某个字母连续出现一次、两次、三次这三种情况的方案数之和 我们发现连续按存在三个字母的按键,当连续按…...
2025推荐选题|基于MVC的农业病虫害防治平台的设计与实现
作者简介:Java领域优质创作者、CSDN博客专家 、CSDN内容合伙人、掘金特邀作者、阿里云博客专家、51CTO特邀作者、多年架构师设计经验、多年校企合作经验,被多个学校常年聘为校外企业导师,指导学生毕业设计并参与学生毕业答辩指导,…...
Vue 3 的不同版本总结
Vue 3 的不同版本(例如 3.x 系列的多个次版本)在语法和特性上有一些变化和改进。以下是 Vue 3 中随着版本迭代的一些语法变化和新特性的总结。 1. Vue 3.0: 初始发布 主要特性: 组合式 API (Composition API):引入 setup 函数&…...
在wpf 中 用mvvm 的方式 绑定 鼠标事件
在 wpf中, 如果遇到控件的 MouseEnter MouseLeave 属性时, 往往会因为有参数object sender, System.Windows.Input.MouseEventArgs e 很多人选择直接生成属性在后台, 破坏了MVVM, 这其实是不必要的. 我们完全可以用 xmlns:i“http://schemas.microsoft.com/xaml/behaviors” 完…...
TELEDYNE DALSA相机连接编码器
文章目录 对于线阵相机,欲令扫描拍照出来的图像不失真变形,则需要保证横向像素精度纵向像素精度,因此有下列等式成立: 现场的横向视野是650mm,横向实际像素是7663pixel,产线运动线速度为416.667mm/S,则可以计算出行频应…...
每天一个数据分析题(五百零八)- 机器学习模型
逻辑回归和支持向量机(SVM)都是经典的机器学习模型,逻辑回归和SVM的联系与区别,不正确的是? A. 二者都可以处理分类问题 B. 二者都可以增加不同的正则化项 C. 二者都是参数模型 D. SVM的处理方法是只考虑support v…...
leetcode栈与队列(一)-有效的括号
题目 . - 力扣(LeetCode) 给定一个只包括 (,),{,},[,] 的字符串 s ,判断字符串是否有效。 有效字符串需满足: 左括号必须用相同类型的右括号闭合。左括号必须以正确的…...
鸿蒙NEXT开发-知乎评论小案例(基于最新api12稳定版)
注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下 如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识 专栏地址: https://blog.csdn.net/qq_56760790/…...
重学SpringBoot3-集成Redis(十一)之地理位置数据存储
更多SpringBoot3内容请关注我的专栏:《SpringBoot3》 期待您的点赞👍收藏⭐评论✍ 重学SpringBoot3-集成Redis(十一)之地理位置数据存储 1. GEO 命令简介2. 项目环境配置2.1. 依赖引入2.2. Redis 配置 3. GEO 数据存储和查询实现3…...
Docker-compose 单节点管理、consul 注册中心、registrator、template
consul是一个基于分布式的服务发现和配置管理工具。它具有快速构建分布式架构,提供服务发现和服务注册功能。consul职能:1、自动发现、注册;2、自动配置;3、自动更新 服务发现:自动检查网络中的服务(如数据…...
制药企业MES与TMS的数据库改造如何兼顾安全与效率双提升
*本图由AI生成 在全球制造业加速数字化转型的浪潮中,一家来自中国的、年营业额超过200亿元的制药企业以其前瞻性的视角和果断的行动,成为该行业里进行国产化改造的先锋。通过实施数据库改造试点项目,该企业实现了其关键业务系统MES࿰…...
Spring Boot比Spring多哪些注解
Spring Boot 是 Spring 框架的扩展,它旨在简化 Spring 应用程序的初始搭建以及开发过程。与 Spring 相比,Spring Boot 提供了许多额外的注解来进一步简化配置和开发工作。以下是 Spring Boot 特有的一些核心注解,这些注解在 Spring 中不可用&…...
985研一学习日记 - 2024.10.17
一个人内耗,说明他活在过去;一个人焦虑,说明他活在未来。只有当一个人平静时,他才活在现在。 日常 1、起床6:00√ 2、健身1个多小时 今天练了二头和背部,明天练胸和三头 3、LeetCode刷了3题 旋转图像:…...
牛客SQL29详解 计算用户的平均次日留存率
牛客SQL29详解 计算用户的平均次日留存率 牛客SQL29详解 计算用户的平均次日留存率 叮嘟!这里是小啊呜的学习课程资料整理。好记性不如烂笔头,今天也是努力进步的一天。一起加油进阶吧! 牛客SQL29详解 计算用户的平均次日留存率 题目&#x…...
Redis --- 第四讲 --- 常用数据结构 --- 其他类型stream、bitmap……。补充内容scan命令。
通过前面的学习,我们已经学习了Redis最关键的五个数据结构:String、List、Hash、Set、ZSet。这五个数据结构应用广泛,频繁使用。 redis中包含的所有类型,下面将要介绍不常用的类型。 一、streams类型介绍 事件、epoll/IO多路复…...
Java多线程--实现跑马小游戏
线程的实现方式 继承Thread类:void run()方法没有返回值,无法抛异常实现Runnable接口:void run()方法没有返回值,无法抛异常实现Callable接口:V call() throws Exception 返回结果,能够抛异常 实现Callab…...
扫雷(C 语言)
目录 一、游戏设计分析二、各个步骤的代码实现1. 游戏菜单界面的实现2. 游戏初始化3. 开始扫雷 三、完整代码四、总结 一、游戏设计分析 本次设计的扫雷游戏是展示一个 9 * 9 的棋盘,然后输入坐标进行判断,若是雷,则游戏结束,否则…...
有源滤波器(一)
滤波器设计工具 | 滤波器设计向导 | Analog Devices 一种带通滤波器: 有源滤波器完美规避了这个带不带负载滤波参数变化的问题,但是有源滤波器只能处理小电流和小电压: 鼠标所指的电路图是一阶同相滤波器,右上角的是他的幅频特性…...
el-switch文字内置
el-switch文字内置 效果 vue <div style"color:#ffffff;font-size:14px;float:left;margin-bottom:5px;margin-right:5px;">自动加载</div> <el-switch v-model"value" active-color"#3E99FB" inactive-color"#DCDFE6"…...
SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现
摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序,以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务,提供稳定高效的数据处理与业务逻辑支持;利用 uniapp 实现跨平台前…...
Axios请求超时重发机制
Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式: 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...
Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...
分布式增量爬虫实现方案
之前我们在讨论的是分布式爬虫如何实现增量爬取。增量爬虫的目标是只爬取新产生或发生变化的页面,避免重复抓取,以节省资源和时间。 在分布式环境下,增量爬虫的实现需要考虑多个爬虫节点之间的协调和去重。 另一种思路:将增量判…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
Python 实现 Web 静态服务器(HTTP 协议)
目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1)下载安装包2)配置环境变量3)安装镜像4)node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1)使用 http-server2)详解 …...
MySQL:分区的基本使用
目录 一、什么是分区二、有什么作用三、分类四、创建分区五、删除分区 一、什么是分区 MySQL 分区(Partitioning)是一种将单张表的数据逻辑上拆分成多个物理部分的技术。这些物理部分(分区)可以独立存储、管理和优化,…...
Vue 模板语句的数据来源
🧩 Vue 模板语句的数据来源:全方位解析 Vue 模板(<template> 部分)中的表达式、指令绑定(如 v-bind, v-on)和插值({{ }})都在一个特定的作用域内求值。这个作用域由当前 组件…...
云安全与网络安全:核心区别与协同作用解析
在数字化转型的浪潮中,云安全与网络安全作为信息安全的两大支柱,常被混淆但本质不同。本文将从概念、责任分工、技术手段、威胁类型等维度深入解析两者的差异,并探讨它们的协同作用。 一、核心区别 定义与范围 网络安全:聚焦于保…...
