【视觉三维重建】【论文笔记】Deblurring 3D Gaussian Splatting

去模糊的3D高斯泼溅,看Demo比3D高斯更加精细,对场景物体细节的还原度更高,[官网](https://benhenryl.github.io/Deblurring-3D-Gaussian-Splatting/)

背景技术

Volumetric rendering-based nerual fields:NeRF.
Rasterization rendering: 3D-GS.
Rasterization比volumetric方法更加高效。

摘要

一种新的field-based的网络模型,实现对最新的rasterization rendering技术——3D高斯泼溅的去模糊。
设计MLP,对各个3D高斯的协方差建模;既能重建出优异、锐利的细节,又能保证实时渲染。

方法

一个MLP处理3D高斯模型,其输入包含视线方向向量 v v v,模型的位置 x x x、姿态 r r r、尺度系数 s s s,输出偏置量 δ r \delta r δr δ s \delta s δs,在训练时加入此MLP,实现模型变换,再渲染;推理时则直接渲染。如下图。
在这里插入图片描述
MLP输出的系数对应各个3D高斯,则能控制不同的3D高斯产生不同程度的模糊,即实现选择性模糊图像不同区域,不同程度;一个高斯卷积无法实现此种能力的。

问题的假设、解决方法的原理

原作者从模糊是由于理想图像的高斯卷积之结论,提出如下假设,

We assume that big sized 3D Gaussians cause the blur, while relatively smaller 3D Gaussians correspond
to the sharp image.

又根据

The minima of these scaling factors (δr, δs) are clipped to 1 and element-wisely
multiplied to r and s, respectively, to obtain the transformed attributes r′ = r · δr and s′ = s · δs.

为什么这样的设计,即在训练过程用MLP输出的系数放大3D高斯的协方差矩阵,即导致3D、图像更模糊,而在正常推理时,省去放大过程,则能实现去模糊的效果?
一种解释:
训练过程类似假性近视的人佩戴矫正眼镜,一般是凸透镜,人眼会看到比不戴眼镜时更模糊的图,人眼尽力调节使得摘下矫正眼镜后能看得更清楚。
原作者的实验结果符合预期,则论证了他们的假设是合理的。

实现细节

  1. 补偿稀疏点云
    为解决SfM常常由于景深范围大、图像模糊而输出点云稀疏,论文设计增加 N p N_p Np个点,主要思路是在训练 N s t N_{st} Nst次后,对已有点云的bounding box内均匀取样,对每个新增点使用KNN获取相邻元素,以此给新点的颜色插值,并剔除距离最近点的距离大于阈值 t d t_d td的新点。
    笔者认为可在SfM之后用MVS输出稠密点云。
  2. 管理3D高斯的数目
    3D高斯泼溅原论文用单一的阈值剔除3D高斯,本参考论文使用因高而异的阈值,根据相对深度剔除较少的远端高斯,能更好地还原远端场景物体的细节。

实验结果

配置

  • Pytorch实现
  • MLP有3层隐藏层,每层64通道带ReLU,学习率lr = 1e-3
  • 参数初始化方法Xavier
  • 补偿点云的设置: N s t = 2500 N_{st} = 2500 Nst=2500 N p = 100000 N_p = 100000 Np=100000 K = 4 K = 4 K=4 t d = 10 t_d = 10 td=10
  • 数据,Deblur-NeRF数据集,使用Blender合成模糊图像;用COLMAP求解原、模糊图像的位姿。在哪里获取点云?

结果

评测指标:峰值信噪比PSNR(衡量图像指标)、结构相似性SSIM(衡量图像相似性)、帧率FPS。
本文方法比参考方法Deblur-NeRF、DP-NeRF、PDRF、3D-Gussians,基本接近或取得SOTA精度,速度也接近SOTA。

思考

图像模糊主要有时空两个因素,时间维度上由于曝光时段,由于目标相对相机运动导致blur,空间上则是由于实际相机成像并非是理想针孔模型,光圈越大,则越不符合针孔模型,即物距与焦距越大,成像越模糊,参考论文的方法解决了消减这类模糊的问题。另一方面,更复杂的图像质量问题,还有眩光、 曝光过度或不足。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453877.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GZ083 产品艺术设计赛题第五套

全国职业院校技能大赛 产品艺术设计赛项赛题五 赛项名称 产品艺术设计 英语名称 Product Art Design 赛项编号 GZ083 归属产业 数字产业 任务名称 “境•享”家用台式加湿器设计 赛项组别 中职组 高职组 □学生组 □教师组 □师生联队试点赛项 R学生组 □教师组…

【线程】封装 | 安全 | 互斥

线程封装(面向对象) 1.组件式的封装出一个线程类(像C11线程库那样去管理线程) 我们并不想暴露出线程创建,终止,等待,分离,获取线程id等POSIX线程库的接口,我们也想像C1…

机器学习模型—K最近邻(KNN)

机器学习模型—K最近邻(KNN) K最近邻 (KNN) 算法是一种用于解决分类和回归问题的监督机器学习方法。Evelyn Fix 和 Joseph Hodges 于 1951 年开发了该算法,随后 Thomas Cover 对其进行了扩展。本文探讨了 KNN 算法的基本原理、工作原理和实现。 虽然 k近邻算法 (KNN) 可以用…

基于Pytest+Allure+Excel的接口自动化测试框架

1. Allure 简介 简介 Allure 框架是一个灵活的、轻量级的、支持多语言的测试报告工具,它不仅以 Web 的方式展示了简介的测试结果,而且允许参与开发过程的每个人可以从日常执行的测试中,最大限度地提取有用信息。 Allure 是由 Java 语言开发…

接口自动化测试实战之pytest框架+allure讲解

一、前言 本文章主要会讲解Python中pytest框架的讲解,介绍什么是pytest、为何要测试、为何使用以及参考和扩展等等,话不多说,咱们直接进入主题哟。 二、pytest讲解 2.1 什么是pytest? pytest是一款单元测试框架,在…

Linux -- 线程互斥

一 线程互斥的概念 大部分情况,线程使用的数据都是局部变量,变量的地址空间在线程栈空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。但有时候,很多变量都需要在线程间共享,这样的…

激光打标技术:现代制造业的精准标记解决方案

随着科技的飞速进步,激光打标机技术已经成为现代制造业中不可或缺的一部分。作为一种快速、精确、耐用的标记解决方案,激光打标技术以其独特的优势,为现代制造业提供了精准、高效、持久的标记解决方案。 首先,激光打标技术以其无与…

吴恩达机器学习笔记 十七 通过偏差与方差诊断性能 正则化 偏差 方差

高偏差(欠拟合):在训练集上表现得也不好 高方差(过拟合):J_cv要远大于J_train 刚刚好:J_cv和J_train都小 J_cv和J_train与拟合多项式阶数的关系 从一阶到四阶,训练集的误差越来越小…

挂耳式耳机什么牌子的好?掌握六大挂耳式耳机选购秘诀

随着科技的进步,蓝牙耳机逐渐成为人们日常生活中的热门配件。很多人选择蓝牙耳机,是为了在娱乐学习时享受便捷的无线体验。这些耳机不仅设计时尚,佩戴起来也极为舒适。 蓝牙耳机主要分为挂耳式和入耳式。尽管入耳式耳机功能齐全,…

在集群模式下,Redis 的 key 是如何寻址的?分布式寻址都有哪些算法?了解一致性 hash 算法吗?

目录 一、分布式寻址算法 1. hash 算法 2. 一致性 hash 算法 3. Redis cluster 的 hash slot 算法 二、Redis cluster 的高可用与主备切换原理 1. 判断节点宕机 2. 从节点过滤 3. 从节点选举 4. 与哨兵比较 一、分布式寻址算法 hash 算法(大量缓存重建) 一致性 hash…

Python的time模块与datetime模块大揭秘!

1.time 模块 t主要用来操作时间,还可以用于控制程序 导入time模块 import time 2.获取从1970年1月1日0时0分0秒距今的秒数:time.time() print(time.time()) 3.格式化显示时间:time.strftime() print(time.strftime("%Y-%m-%d %H:…

某赛通电子文档安全管理系统 DecryptApplication 任意文件读取漏洞复现

0x01 产品简介 某赛通电子文档安全管理系统(简称:CDG)是一款电子文档安全加密软件,该系统利用驱动层透明加密技术,通过对电子文档的加密保护,防止内部员工泄密和外部人员非法窃取企业核心重要数据资产,对电子文档进行全生命周期防护,系统具有透明加密、主动加密、智能…

使用 Python+Selenium + 第三方库实现简单的web自动化测试框架 源码

一、配置(config) 1.1 说明 设置自动化案例运行时的属性值。 安排自动化案例的执行顺序。 所在路径: …\Project_Selenium\config 1.2 文件 1.2.1 config.ini 目录: …\Project_Selenium\config\config.ini 配置字段: 1 [PROJECT] 1.1 bro…

【C++那些事儿】深入理解C++类与对象:从概念到实践(下)| 再谈构造函数(初始化列表)| explicit关键字 | static成员 | 友元

📷 江池俊:个人主页 🔥 个人专栏:✅C那些事儿 ✅Linux技术宝典 🌅 此去关山万里,定不负云起之望 文章目录 1. 再谈构造函数1.1 构造函数体赋值1.2 初始化列表1.3 explicit 关键字 2. static成员2.1 概念…

十四、Nacos源码系列:Nacos配置发布原理

目录 一、简介 二、加密处理 三、发布配置 3.1、插入或更新配置信息 3.2、发布配置数据变动事件 3.2.1、目标节点是当前节点 3.2.2、目标节点非当前节点 四、总结 一、简介 一般情况下,我们是通过Nacos提供的Web控制台登录,然后通过界面新增配置…

个人博客系列-后端项目-用户注册功能(7)

介绍 用户注册API的主要流程:1.前端用户提交用户名,密码 2. 序列化器校验用户名,密码是否合法。3.存入数据库。4.签发token 创建序列化器 from rest_framework import serializers from rest_framework_simplejwt.serializers import Toke…

图【数据结构】

文章目录 图的基本概念邻接矩阵邻接表图的遍历BFSDFS 图的基本概念 图是由顶点集合及顶点间的关系组成的一种数据结构 顶点和边:图中结点称为顶点 权值:边附带的数据信息 路径 : 简单路径 和 回路: 子图:设图G {V, E}和图G1…

计算机网络:关键性能指标与非性能特征解析

✨✨ 欢迎大家来访Srlua的博文(づ ̄3 ̄)づ╭❤~✨✨ 🌟🌟 欢迎各位亲爱的读者,感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢,在这里我会分享我的知识和经验。&am…

VR文化旅游虚拟现实介绍|虚拟现实元宇宙|VR设备购买

虚拟现实(VR)技术正在改变我们对文化旅游的认知和体验。通过VR技术,人们可以身临其境地探索世界各地的文化遗产和旅游景点,无需亲临现场也能感受到逼真的体验。以下是VR文化旅游虚拟现实的介绍: 身临其境的体验&#x…

c++之旅——第六弹

大家好啊,这里是c之旅第六弹,跟随我的步伐来开始这一篇的学习吧! 如果有知识性错误,欢迎各位指正!!一起加油!! 创作不易,希望大家多多支持哦! 一,静态成员&…