GS论文阅读--GeoTexDensifier

前言

本文是一个关于高斯致密化策略对高斯地图进行优化,他主要关注了几何结构和纹理信息。我最近对于高斯点的分布比较感兴趣,因为高斯点的分布决定了之后重建质量的好坏,初始化高斯很重要,但之后的维护需要致密化与修建策略,同样也很重要,我想要通过提升高斯点云的位置信息,从而使得效果达到更好。
在这里插入图片描述


文章目录

  • 前言
  • 1.背景介绍
  • 2.关键内容
    • 2.1 总体流程
    • 2.2 Mini-Splatting的前置知识
    • 2.2 纹理感知的致密化
    • 2.3 几何感知分裂
    • 参照视图选择与更新
    • 父级splat的VDRC
    • 法线引导分裂
  • 3.文章贡献


1.背景介绍

  1. 3DGS的高质量重建依赖于足够的斑点和这些斑点的合理分布,以适应真实的几何表面和纹理细节,这是一个具有挑战性的问题。
  2. 3DGS通过对初始高斯点的分裂和克隆,实现了完整的场景重建和纹理细节增强。3DGS模型的高质量重建和渲染依赖于两个条件:第一是具有足够数量的高斯splats来支持外观细节,第二是确保splats被优化到3D空间中的正确位置。目前,很少有研究探讨了高斯溅射致密化策略的改进。
  3. 原始的3DGS 存在“过度重建”问题,导致地毯等纹理区域中的细节缺失,而最先进的(SOTA)工作如GeoGaussian 改进了飞溅分布的空间结构,Pixel-GS进一步致密了地毯等纹理区域中的飞溅,但两者仍然缺乏足够的飞溅采样来支持纹理细节。MiniSplatting具有充分采样的splats,但在无纹理区域中引入了过致密化情况,由于约束不足的视觉模糊性,这可能会产生额外的噪声高斯。

2.关键内容

2.1 总体流程

在初始化阶段,首先执行COLMAP以估计表示为。同时,通过ZoeDepth]针对每个输入RGB图像估计深度图,其中其法线图从深度计算,初始化完成后,我们使用一种纹理感知的致密化策略,在完全纹理化的区域中提供足够的高斯splats,同时在纹理较弱的区域中保持高斯的稀疏性,以确保高斯点的空间分布更准确。此外,估计的深度被用作先验来指导高斯splats的分裂,以更好地符合弱纹理区域中的几何表面的实际切向,并避免由于缺乏视觉特征而导致的模糊性所导致的孤立或分散的高斯的生成。纹理感知的致密化方法与几何引导的分裂策略一起构成了我们用于重建高质量照片级真实感3DGS模型的几何-纹理感知的致密化框架。
在这里插入图片描述

2.2 Mini-Splatting的前置知识

在高斯参数的优化过程中,利用ADC在空白区域填充高斯块,主要针对高斯块缺失的不完整区域定义为“欠重建”,而被大尺寸高斯块覆盖的区域定义为“过重建”。具有大的平均视图空间位置梯度的高斯将被加密,通过在欠重建区域中进行高斯克隆并在过度重建的地方分裂大方差的splats,以获得足够数量的高斯splats用于更完整的重建。然而,即使采用这种ADC策略,在具有完整纹理的区域中仍然可能存在致密化不足的情况。最近的工作已经讨论了这种致密化限制,并提出了相应的致密化改进策略来缓解这个问题。例如,Mini-Splatting结合了模糊分割策略与深度重新初始化以使高斯splat分布致密化,然后是简化技术以抑制点的总数以获得更有效的高斯表示。具体地说,对于每个图像 I t I_t It,都是一组具有大值的高斯函数:
在这里插入图片描述
这里 S i t S^t_i Sit表示高斯 G i G_i Gi I t I_t It的最大贡献区域, I i ( x ~ ) I_i(\tilde{x}) Ii(x~)表示 G i G_i Gi在像素 x ~ < ∈ I t \tilde{x}<∈ I_t x~<∈It处的投影索引, I m a x ( x ~ ) = a r g m a x w k ( x ~ ) I_{max}(\tilde{x})= argmax w_k(\tilde{x}) Imax(x~)=argmaxwk(x~)定义在 x ~ \tilde{x} x~处具有最大权重贡献的渲染索引。阈值 T = θ W H T = θWH T=θWH,θ 是一个图象分辨率的系数对于(W,H)。

2.2 纹理感知的致密化

理想的致密化策略是在强纹理区域中生成具有较高密度的飞溅分布,同时在更弱纹理区域(诸如具有纯色的表面)中仍然留下相对稀疏的高斯飞溅。在我们的ADC过程中采用了Mini-Splatting引入的模糊分割策略,这虽然有助于致密化,但可能会导致以下副作用,这些副作用实际上不符合我们的理想目的:首先,弱纹理区域通常具有贡献面积大的高斯分布,导致splat的过度分裂从而产生太多将影响渲染结果的不充分优化的浮动点。 第二是在整个场景上均匀分布的高斯分布的过多数量将花费太大的存储器消耗和大的输出文件存储。

为了解决这些问题,我们提出了一种纹理感知的致密化方法,该方法充分利用训练图像的纹理丰富度来指导各种纹理区域中高斯splats的致密化程度,同时控制splats在分裂过程中的生长。通过这种方式,我们的策略确保致密化的splats得到更彻底的优化,以提高重建质量。为了更好地结合纹理信息作为指导,我们为每个像素 x ∈ I t x ∈ It xIt设计了一个新的权重 s t ( x ) s_t(x) st(x),以更合理地计算每个高斯 G i G_i Gi的贡献,用于识别等式中的模糊斑点。由每个训练图像It的纹理梯度激活,该新权重计算如下:
在这里插入图片描述
它有效地反映了高斯点是否应该被双曲正切函数归一化为[0,1],该函数由灰度值从[0,255]归一化为[0,1]的图像梯度激活,如图3(a)所示。αs和βs是线性回归系数。图3©示出了通过公式2计算的权重图。有了新定义的权重,我们可以重新定义每个高斯分布的最大贡献区域,将每个高斯 G i G_i Gi I t I_t It的最大贡献区域重新定义为 S i t S^t_i Sit。修改公式2至:
在这里插入图片描述
其收集 I t I_t It G i G_i Gi的贡献区域内的逐像素纹理梯度的统计,而不是直接对贡献区域 S i t S^t_i Sit进行计数。以这种方式,完全纹理化的贡献区域将具有更高的纹理梯度统计,以将飞溅视为模糊的,并强制它们进一步分裂以获得更高密度的高斯,而弱纹理化的区域没有足够的纹理梯度收集来支持进一步分裂,使得它们的飞溅分布保持相对稀疏,如图3(f)所示。
在这里插入图片描述
在这里插入图片描述
等式中的原始阈值T是一个固定值。对于为每个高斯splat计算的重新定义的贡献面积 S i t S^t_i Sit,我们进一步引入自适应阈值T来确定高斯点是否足够大以被分裂,其被定义为 T = T s + ( T e − T s ) l − l s l e − l s T = T_s+(T_e-T_s)\frac{l-ls }{le-ls} T=Ts+TeTslelslls,其中l是当前迭代次数, l s l_s ls l e l_e le分别是用于致密化的开始和结束迭代次数,Ts和Te是开始和结束阈值。请注意,随着迭代次数的增加,T将减小,以使具有较小贡献区域的分裂高斯有更多机会在下一次分裂中进一步分裂并完全优化。

2.3 几何感知分裂

除了使用纹理信息来引导高斯片分布到完全纹理化的区域之外,splat的初始位置对于每次分裂也是至关重要的。原始的3DGS方法将现有的高斯分解为随机位于椭圆splat尺度内的新高斯,其概率密度函数(PDF)作为采样指导。如果这些区域包含由足够的训练视图观察到的大量纹理,则可以进一步优化这些分裂的splats以校正靠近真实的几何表面的位置。然而,在真实的世界场景中,特别是室内场景中,通常存在具有弱纹理或没有足够的可见训练视图的大尺寸区域。如果初始的3D位置严重偏离真实的几何表面,将它们细化到正确的位置将是具有挑战性的。这个问题特别发生在无纹理区域,如室内墙壁,地板和门,其中损失函数L1的梯度太小,无法移动分裂的飞溅。图5(a)给出了这个问题的一个例子:门上的父高斯Ga生成一个随机分裂的子高斯Gb,试图适应后面的远处墙壁。
在这里插入图片描述

为了更好地解决这个问题,我们建议利用ZoeDepth估计的训练视图的深度图作为验证我们的分割操作的额外几何先验,考虑到ZoeDepth对复杂场景的鲁棒性,特别是具有弱纹理的场景。然而ZoeDepth预测单目深度图,而没有捕获场景的真实比例。一个简单的想法是将深度图与稀疏SfM点的尺度对齐,并检查每个新分裂的飞溅的初始放置与重新缩放的深度图的判别有效性。然而,由于SfM图点的稀疏性和噪声离群值,实现单目深度图的像素级对准是不切实际的。考虑到SOTA单目深度估计网络(如ZoeDepth)的相对深度总是可靠的,我们探索直接利用未缩放深度图的相对深度信息来实现这种判别式检查。
在这里插入图片描述

我们通过 Z v ( a ) ( G a ) = [ M v ( a ) μ a ] z Z_{v(a)}(Ga)= [M_v(a)μ_a]_z Zv(a)(Ga)=[Mv(a)μa]z计算父Ga到其参考视图V(a)的投影深度,其中 M v ( a ) M_v(a) Mv(a)是其投影矩阵我们分别计算 R V ( a ) ( G b ) R_{V(a)}(G_b) RV(a)(Gb) R V ( a ) ( G c ) R_{V(a)}(G_c) RV(a)(Gc)。之后,我们计算Ga和Gc之间的深度比变化为:
在这里插入图片描述
显然,Ga和Gc之间的深度比变化相对小,而Ga和Gb之间的相对深度比变化 P V ( a ) ( G a , G b ) P_{V(a)}(G_a,G_b) PV(a)(Ga,Gb)大。我们建议丢弃其相对于其父splat的相对深度比变化超过阈值δp的子splat,以防止生成不合适的子高斯像Gb。对于所有实验,我们设定δp = 0.1。如果Gb被滤除,则Ga将被保留以取代其位置,如图4(b)所示。我们将这种判别式检查过程称为深度比变化验证(VDRC)。如图5(e)所示,由于VDRC检查以过滤掉嘈杂的分裂飞溅,前门上的飞溅将留在门内,而不是分裂回到后面的墙壁。通过此VDRC检查,我们将执行几何感知拆分,其详细信息在以下小节中给出。

参照视图选择与更新

直观地,对于每个要分裂的父高斯Ga,我们选择其中Ga在α混合中提供最大渲染权重 w V ( a ) ( G a ) w_{V(a)}(G_a) wV(a)(Ga)的视图V(a)作为其参考视图。在我们的实现中,为每个splat添加了两个额外的属性:图像id V(a)及其渲染权重 w V ( a ) ( G a ) w_{V(a)}(G_a) wV(a)(Ga),它们将在训练过程中不断更新。

假设父深度比 R V ( a ) ( G a ) R_{V(a)}(G_a) RV(a)(Ga)是可靠的,我们在 P V ( a ) ( G a , G b ) P_{V(a)}(G_a,G_b) PV(a)(Ga,Gb)低于阈值的条件下通过VDRC丢弃其子splat Gb,对于我们的所有实验,该阈值被设置为0.1,其中子深度比 R V ( a ) ( G a ) R_{V(a)}(G_a) RV(a)(Ga)也在其父的参考视图V(a)上计算以用于公平比较。随着Ga的位置继续被优化,其最大渲染权重 w V ( a ) ( G a ) w_{V(a)}(G_a) wV(a)(Ga)被重新计算并与记录的权重进行比较。如果另一视图提供最大渲染权重,则V(a)和 w V ( a ) ( G a ) w_{V(a)}(G_a) wV(a)(Ga)将迭代地更新。

父级splat的VDRC

在每次新的分裂之前,一定数量的迭代可能会将一些父splat移动到不正确的位置。例如,Ga可能从门向墙移动,变成像Gb一样的不可靠的高斯,并且将继续生成一系列都将满足VDRC条件的不适当的溅射。为了更好地解决这个问题,我们在每次分裂它们之前将VDRC应用于父高斯。由于初始高斯分布是从SfM映射点继承而来的,因此我们过滤掉了轨迹长度小于3或重投影误差超过1个像素的地图点,以确保初始splat位置的正确性。我们还选择具有由V(a)表示的最小重投影误差的图像视图作为每个高斯Ga的初始参考视图,并添加两个附加属性来记录V(a)及其初始深度比 R V ( a ) ( G a ) R_{V(a)}(G_a) RV(a)(Ga)。在每次分裂之前,所涉及的每个优化的父高斯splat Ga将被投影到其初始参考视图V(a)以计算当前深度比 R V ( a ) ( G a ) R_{V(a)}(G_a) RV(a)(Ga).

通过VDRC验证其自身的变化 P V ( a ) ( G a ) P_{V(a)}(G_a) PV(a)(Ga)。那些不符合VDRC要求的splat将被排除在以下拆分过程之外。如果Ga通过自验证是可靠的,则执行分割,并且VDRC继续通过等式(1)在其父视图V(a)上验证其两个子视图Gb和Gc。有效子splat Gc将考虑从V(a)继承的其自己的初始参考视图V©和初始深度比 R V ( c ) ( G c ) R_{V(c)}(G_c) RV(c)(Gc)= R V ( a ) ( G c ) R_{V(a)}(G_c) RV(a)(Gc),其将进一步用于验证Gc是否将在下一次分裂中被划分成新的高斯。

法线引导分裂

除了使用单目深度来检查分裂高斯的有效性外,ZoeDepth的法线贴图也被集成为几何指导,用于分裂到更合理的位置。对于每个经验证的子溅射Gc,其父Ga的椭圆尺度内的原始随机分裂将影响弱纹理区域中的高斯溅射的平滑度和紧凑空间分布,如图5©的噪声高斯点云所示。我们使用法线映射结合图像纹理来指导新分裂高斯的初始位置。

图4(a)作为示例,我们首先将Ga和随机采样的Gc投影到参考视图V(a),其中投影像素分别表示为 x ~ a \tilde{x} _a x~a x ~ c \tilde{x} _c x~c。然后,利用 x ~ a \tilde{x} _a x~a处的正常 N V ( a ) ( x ~ a ) N_{V(a)}(\tilde{x} _a) NV(a)(x~a) x ~ c \tilde{x} _c x~c处的图像梯度 I V ( a ) ( x ~ c ) I_{V(a)}(\tilde{x} _c) IV(a)(x~c),可以如下确定Gc的最佳位置:

在这里插入图片描述
由于弱纹理化区域缺乏足够的视觉细节来强制分裂的碎片移动到正确的位置,因此这种法线引导的定位强制子Gc在具有相对小的纹理梯度的无纹理区域中保持靠近父Ga的几何表面。对于完全纹理化的区域,我们相信足够的多视图纹理细节能够确保分裂的孩子被优化到正确的位置,因此较大的纹理梯度倾向于保持splat采样的原始随机性,而不是过度地受到几何表面先验的约束,如图4(a)的放大区域所示。通过与VDRC滤波相结合的法线引导分裂,可以获得更好的分布式高斯点云,其更准确地拟合具有更少噪声飞溅的实际场景结构,如在图5(f)的重建的“房间”点云中可以看到的,这也有助于产生由SSIM、PSNR和LPIPS评估的更好的渲染质量。

3.文章贡献

  1. 我们创新性地提出了一种几何感知分割策略,该策略采用法线和相对深度先验来更合理地指导分割高斯的位置采样,并消除位置远离真实表面的不正确采样斑点,以确保斑点分布均匀,符合场景的实际几何结构。
  2. 采用纹理感知的致密化策略作为辅助服务,用于在完全纹理化的区域中找到更多贡献的大splats以进一步分裂以适应纹理细节,同时在弱纹理化区域中保持高斯稀疏以保持恢复的splats的高质量空间分布。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云原生布道系列】第三篇:“软”饭“硬”吃的计算

1 虚拟化技术定义 首先援引一段《虚拟化技术发展编年史》中针对虚拟化技术的定义&#xff1a;在计算机科学中&#xff0c;虚拟化技术&#xff08;Virtualization&#xff09;是一种资源管理&#xff08;优化&#xff09;技术&#xff0c;将计算机的各种物理资源&#xff08;例如…

Java虚拟机面试题:内存管理(中)

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

Linux容器(初学了解)

目录 一、容器 1.1、容器技术 1.2、容器和虚拟机之间的差异 1.3、Rootless 和 Rootful 容器 1.4、设计基于容器的架构 1.5、容器管理工具 1.6、容器镜像和注册表 1.7、配置容器注册表 1.8、使用容器文件构建容器镜像 二、部署容器 2.1、Podman 实用程序 2.2、安装容…

代码随想录_字符串

字符串 344.反转字符串 344. 反转字符串 编写一个函数&#xff0c;其作用是将输入的字符串反转过来。输入字符串以字符数组 s 的形式给出。 不要给另外的数组分配额外的空间&#xff0c;你必须**原地修改输入数组**、使用 O(1) 的额外空间解决这一问题。 思路: 双指针 代…

Visual Studio Community 2022(VS2022)安装方法

废话不多说直接上图&#xff1a; 直接上步骤&#xff1a; 1&#xff0c;首先可以下载安装一个Visual Studio安装器&#xff0c;叫做Visual Studio installer。这个安装文件很小&#xff0c;很快就安装完成了。 2&#xff0c;打开Visual Studio installer 小软件 3&#xff0c…

PostgreSQL的学习心得和知识总结(一百六十六)|深入理解PostgreSQL数据库之\watch元命令的实现原理

目录结构 注&#xff1a;提前言明 本文借鉴了以下博主、书籍或网站的内容&#xff0c;其列表如下&#xff1a; 1、参考书籍&#xff1a;《PostgreSQL数据库内核分析》 2、参考书籍&#xff1a;《数据库事务处理的艺术&#xff1a;事务管理与并发控制》 3、PostgreSQL数据库仓库…

在k8s中部署一个可外部访问的Redis Sentinel

1.前提条件&#xff1a; 1.部署了multus 想要k8s外部能访问k8s内部的redis&#xff0c;redis-server启动时必须使用multus的IP 2.helm客户端安装 2.开始安装 准备3个multus ip 10.10.10.130 10.10.10.131 10.10.10.132 apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttac…

目标跟踪算法发展简史

单目标跟踪&#xff08;Single Object Tracking&#xff0c;SOT&#xff09;是计算机视觉领域中的一个重要研究方向&#xff0c;旨在在视频序列中持续定位并跟踪一个特定目标。随着计算机视觉和机器学习技术的飞速发展&#xff0c;单目标跟踪算法经历了从经典方法到深度学习的演…

使用LPT wiggler jtag自制三星单片机(sam88 core)编程器-S3F9454

写在前面 新年好&#xff0c;各位&#xff0c;今天来分享制作一个三星单片机的编程器 嘿嘿&#xff0c;x鱼垃圾佬元件库有些三星单片机s3f9454&#xff0c;编程器不想买&#xff0c;基本拿来拆件玩的。但&#xff0c;前些时候csdn下载到它的编程时序&#xff0c;自己来做个编程…

Spring 中的事件驱动模型

事件驱动的基本了解 事件模式也就是观察者模式&#xff0c;当一个对象改变的时候&#xff0c;所有依赖的对象都会收到一个通知。 Subject&#xff1a;抽象主题 Observer&#xff1a;具体主题 Concrete Subject&#xff1a;抽象观察者&#xff0c;在得到更新通知之后去更新自…

玉米植物结构受乙烯生物合成基因 ZmACS7 的调控

摘要&#xff1a; 植物高度和叶片角度是玉米&#xff08;Zea mays&#xff09;植物结构的两个关键决定因素&#xff0c;与高种植密度下的抗倒伏性和冠层光合作用密切相关。这两个性状主要由几种植物激素调节。然而&#xff0c;乙烯在调节玉米植物结构中的机制&#xff0c;特别…

Java高频面试之SE-15

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本牛马baby今天又来了&#xff01;哈哈哈哈哈嗝&#x1f436; String 怎么转成 Integer 的&#xff1f;它的原理是&#xff1f; 在 Java 中&#xff0c;要将 String 转换为 Integer 类型&#xff0c;可…

解锁Java中的国密算法:安全保障的密钥

一、引言 在数字化浪潮席卷全球的当下&#xff0c;信息安全已然成为国家、企业乃至个人无法忽视的重要议题。国密算法&#xff0c;作为我国自主研发的密码算法体系&#xff0c;宛如坚固的盾牌&#xff0c;为国家信息安全筑起了一道坚不可摧的防线。它的诞生&#xff0c;不仅承载…

金融场景 PB 级大规模日志平台:中信银行信用卡中心从 Elasticsearch 到 Apache Doris 的先进实践

导读&#xff1a;中信银行信用卡中心每日新增日志数据 140 亿条&#xff08;80TB&#xff09;&#xff0c;全量归档日志量超 40PB&#xff0c;早期基于 Elasticsearch 构建的日志云平台&#xff0c;面临存储成本高、实时写入性能差、文本检索慢以及日志分析能力不足等问题。因此…

1.2.神经网络基础

目录 1.2.神经网络基础 1.2.1.Logistic回归 1.2.2 梯度下降算法 1.2.3 导数 1.2.4 向量化编程 1.2.5 正向传播与反向传播 1.2.6.练习 1.2.神经网络基础 1.2.1.Logistic回归 1.2.1.1.Logistic回归 逻辑回归是一个主要用于二分分类类的算法。那么逻辑回归是给定一个x ,…

MIAOYUN信创云原生项目亮相西部“中试”生态对接活动

近日&#xff0c;以“构建‘中试’生态&#xff0c;赋能科技成果转化”为主题的“科创天府智汇蓉城”西部“中试”生态对接活动在成都高新区菁蓉汇隆重开幕。活动分为成果展览、“中试”生态主场以及成果路演洽谈对接三大板块。在成果展览环节&#xff0c;成都元来云志科技有限…

【vitePress】基于github快速添加评论功能(giscus)

一.添加评论插件 使用giscus来做vitepress 的评论模块&#xff0c;使用也非常的简单&#xff0c;具体可以参考&#xff1a;giscus 文档&#xff0c;首先安装giscus npm i giscus/vue 二.giscus操作 打开giscus 文档&#xff0c;如下图所示&#xff0c;填入你的 github 用户…

成就与远见:2024年技术与思维的升华

个人主页&#xff1a;chian-ocean 前言: 2025年1月17日&#xff0c;2024年博客之星年度评选——创作影响力评审的入围名单公布。我很荣幸能够跻身Top 300&#xff0c;虽然与顶尖博主仍有一定差距&#xff0c;但这也为我提供了更加明确的发展方向与指引。展望崭新的2025年&…

一文了解如何在Qt中间集成Halcon窗口并在子线程显示(附工程源码下载链接)

在基于图像处理的开发中&#xff0c;Halcon作为功能强大的图像处理库&#xff0c;经常需要与Qt结合&#xff0c;以便通过Qt提供的UI功能更好地显示和交互。本文将讲解如何在Qt中集成Halcon窗口&#xff0c;并通过子线程实现Halcon图像的显示&#xff0c;保证主线程的流畅运行。…

游戏引擎学习第80天

Blackboard&#xff1a;增强碰撞循环&#xff0c;循环遍历两种类型的 t 值 计划对现有的碰撞检测循环进行修改&#xff0c;以便实现一些新的功能。具体来说&#xff0c;是希望处理在游戏中定义可行走区域和地面的一些实体。尽管这是一个2D游戏&#xff0c;目标是构建一些更丰富…