论文笔记PhotoReg: Photometrically Registering 3D Gaussian Splatting Models

1.abstract

        最近推出的3D高斯飞溅(3DGS),它用多达数百万个原始椭球体来描述场景,可以实时渲染。3DGS迅速声名鹊起。然而,一个关键的悬而未决的问题仍然存在:我们如何将多个3DG融合到一个连贯的模型中?解决这个问题将使机器人团队能够共同建立其周围环境的3DGS模型。这项工作的一个关键见解是利用照片级真实感重建和3D基础模型之间的二元性,前者从3D结构渲染真实的2D图像,后者从图像对预测3D结构。为此,我们开发了PhotoReg,这是一个将多个照片级真实感3DGS模型与3D基础模型配准的框架。由于3DGS模型通常由单目摄像机图像构建,因此具有任意比例尺。为了解决这一问题,PhotoReg通过考虑这些模型中的深度估计,积极地在不同的3DGS模型之间执行比例一致性。然后,使用细粒度的光度损失迭代地精化对齐,以产生高质量的融合3DGS模型。我们在标准基准数据集和我们自定义收集的数据集上严格评估PhotoReg,包括使用两个四足机器人。

2.INTRODUCTION

        本文研究了将多个独立构建的3DGS模型组合成一个统一模型的问题。解决这个问题将允许机器人团队以分散的方式探索和绘制大型未知空间。为了应对3DGS融合的挑战,我们提出了我们的光度学三维高斯配准框架(PhotoReg)。经典的配准方法,如迭代最近点配准方法及其变种[5]、[6]、[7],主要集中在通过最小化相应点之间的距离来对齐点云[8]。然而,3DGS固有的连续和复杂的几何表示与传统配准方法管理的离散点集有很大的不同,这就需要像PhotoReg这样的创新方法来进行有效的配准。

        PhotoReg利用在互联网规模的数据集上训练的3D基础模型,从2D图像对得出初始3D结构。这些模型提供粗略的估计,以促进3DGS模型的初始对齐,特别是在模型之间重叠最小的情况下。由于各个3DGS模型可能具有不同的比例,PhotoReg通过在每个模型中考虑置信度感知深度估计来积极调整它们的比例。随后,PhotoReg优化了细粒度光度损失,该损失衡量模型中渲染图像的质量,以确保3DG之间紧密对齐。我们对PhotoReg提供了广泛的经验评估,包括对经典基准数据集和定制收集的数据的评估。这包括由在公共区域运行的两个四足动物收集的自定义数据集。

        本文的创新在于:

        1)利用3D基础模型在重叠最小的情况下处理3DGS对齐;

        2)通过计算具有置信度的深度估计来重新调整各个模型的比例,从而解决3DGS模型中的比例差异;

        3)通过优化渲染图像的质量来精确调整融合模型。

3.RELATED WORK

3D配准:在机器人感知中,配准是指寻找两个3D结构之间的变换。 随着时间的推移,配准两个点云已被广泛研究。 ICP [22] 或者找到对应点对并基于最近点假设估计它们之间的刚体变换。 color ICP [23]、Point to Plane ICP [24] 和鲁棒 ICP [25] 等变体在准确性和效率方面提高了该方法。 目前已经探索了注册两个 NeRF 的方法。 NeRF2NeRF [26]提出通过手动选择关键点来对齐两个 NeRF。 DReg-NeRF [27] 通过使用深度学习自动对齐 NeRF 模型,进一步推进了 3D 配准。 已经尝试探索 3DGS 配准:LoopSplat [28] 通过配准 3D 高斯图引入了一种新颖的环路闭合技术。 然而,LoopSplat 依赖 RGB-D 图像来获取深度传感器读数,这限制了其在深度传感器不可用或不可靠时的适用性。 PhotoReg 可以在没有深度传感器的情况下注册 3DGS。

可视化基础模型:机器人技术受益于互联网规模数据训练的transformer[29]。特别是对于机器人感知,这种视觉基础模型包括[30]、[31]、[32]。这些型号充当即插即用模块,以促进一系列下游任务。例如,DINOv2[33]在互联网规模的未标记数据上接受了培训,采用了自监督技术,使其能够深入理解视觉内容,而不需要明确的注释。DUSt3R[34]是PhotoReg中使用的3D基础模型。它被设计成从RGB图像生成3D点图,从而实现姿势估计,并已被应用于下游机器人机械手感知[35],[36]。PhotoReg利用基础模型的应急能力来执行稳健的对齐。

4.METHODOLOGY

 A.问题设置       

        这项工作中解决的主要挑战涉及3DGS模型的融合。具体地说,在给定输入3DGS模型G1和G2的情况下,我们提出的方法旨在找到在G1的坐标框架内将G2与G1内聚地对齐的变换函数T。由于3DG的规模是任意的,T需要处理可能具有非常不同的尺度的G1和G2。在深入研究我们提出的PhotoReg方法的细节之前,我们首先给出了3DGS模型的数学定义和相应的变换函数。

B.Notation and Transforming Gaussian Splats

        3DGS模型G包括一组3D高斯,其中每个高斯由其3D位置µ来定义;协方差矩阵Σ,其描述了高斯分布在3D空间中的扩散和方向;不透明度,α;以及球谐(SH)系数c,其包含颜色信息:

Transformation:3DGS 模型的变换涉及对每个高斯的每个属性应用缩放、旋转和平移。 表示将 3DGS 模型从某个通用坐标系 A 映射到坐标系 B 的变换函数。该函数将坐标系 A 中的 3DGS 模型 作为输入,输出 (对应的坐标系)。 B变换后的3DGS模型,表示为

        变换函数可以分别由缩放因子s、旋转R 和平移t 组成。 假设。 每个属性的转换映射定义如下:

C. PhotoReg Overview

        PhotoReg包括四个顺序阶段:基本图像匹配选择每个输入3DGS模型中相邻区域的渲染图像对作为输入到3D基础模型初始估计获得3D基础模型对齐所用的旋转和平移的初始估计尺度估计通过置信度加权深度图解决3DGS模型之间的比例差异优化通过光度损失最小化同时优化比例、旋转和平移。该工作流程如图4所示。

D. Foundational Image Matching

        我们详细介绍基础图像匹配 (FIM) 过程,该过程利用视觉基础模型(尤其是 DINOv2)来启动我们的注册过程。 FIM 过程的输入由两个 3DGS 模型组成,分别表示为 G1 和 G2,每个模型与一组相机pose C1 和 C2 相关联FIM 的主要目的是从 G1 和 G2 中识别和提取给定相机pose的两个高质量渲染图像,它们在语义级别上相似,并且不受观看pose的影响 也就是说,同一物体但角度相同也好截然不同也好,只要语义类似,那么这两个图像将被识别为相似。 为了选择适当的图像作为 3D 基础模型的输入,我们首先以不同的姿势渲染来自 G1 和 G2 的图像集 I1 和 I2。 我们的目标是选择合适的图像对进行粗配准。 我们寻求 v1 ∈ V1 和 v2 ∈ V2 使得:

        我们以这种方法识别图像对,其中一个从G1生成,另一个从G2生成,它们在语义和视觉上都是相似的。

E. Coarse Registration via 3D Foundation Models

        我们继续使用图像对(img1,img2)作为 3D 基础模型 DUSt3R [34] 的输入,以获得初始粗配准,将 G2 近似对齐到 G1 的坐标系中。 我们将 img1 和 img2 输入到 DUSt3R 中,它估计具有旋转和平移的刚性变换。 然而,G1 和 G2 之间的缩放因子仍然未知。 下一步把从 3D 基础模型获得的变换应用回原始 3DGS 模型。 该过程涉及一系列转换步骤,如图5所示。 我们定义坐标系如下: 对于坐标系 P,表示坐标系 P 下的 3DGS 模型 Gi。具体来说,Poi 是 3DGS模型 的原始坐标系,而是像机的坐标系,以产生图像img i。溅射模型的原始坐标系是任意构造的,表示模型原始坐标系o1到相机坐标系c1的变换。        

        我们的目标是获得到,该变换函数直接将G2坐标系变换到G1的坐标系中,公式是:

        我们遵循图5中的变换序列。这里,是世界到相机的变换w2c,对应于已知的图像img1和img2。两个摄像机位姿之间的变换被表示为,它包括旋转、平移和缩放。我们主要关注与DUSt3R的输出的匹配关系。然而,尺度是未知的。因此我们有,可以对着坐标系看公式,公式4是公式3的具体化

        上面公式中,从右往左看,是G2原始坐标系(world)变换到了他的一个相机坐标系c2,然后又从c2变换到了G1的一个相机坐标系c1,最后从c1变换到了G1的世界坐标系。

        唯一未知的参数是尺度比。由于两个世界到相机的变换都具有已知的绝对比例,因此是两个3DGS模型之间的比例差异。也就是说,。在接下来的小节中,我们将估计最终的未知参数,即G1和G2之间的尺度比。

F. Scale Estimation

        在这一步中,我们通过比较不同坐标系中同一个pose下的深度图来估计尺度比。深度图可以表示为二维矩阵,其中每个元素表示视点(例如,照相机)沿视线到场景中一点的距离

        给定一个相机pose,深度图可以从标准的3DGS模型[39]中提取,并且也可以在初始粗对准期间由DUSt3R输出。还输出深度图的像素方向置信度图。这里,我们将从它们各自的3DGS模型获得的深度图IMG1和IMG2表示为D1,D2∈RW×H,并且将来自DUST3R的深度图表示为∈RW×H,以及置信度图C1,C2∈RW×H。这里,W和H表示图像宽度和高度。

        一个关键的细节是,因为DUSt3R的性质(DUSt3R输出的pointmap、confidence map都是统在同一个坐标系下面的),深度位于相同的坐标系中,具有相同的尺度。然后,尺度不同,我们可以根据公式5这样估计G1和G2之间的置信度权重得到尺度比例:

        其中,⊗表示矩阵中各个对应元素之间的乘积。通过对尺度比的估计,我们得到一个初始变换(这个尺度比其实就是坐标系尺度比),它大致对齐了G1和G2。我们现在将重点转移到优化训练这个初始变换的路线上。

G. Precise Refinement via Photometric Optimization

        在粗略地对齐G1和G2之后,我们通过从G1和G2以一种新的姿势C来渲染图像来进一步优化对齐。然后,我们最小化渲染图像之间的光度损失,并根据我们的变换参数进行优化。我们注意到,3DGS模型和渲染的可微性使得基于梯度的优化能够传播回变换参数。使用的损失是 L1 距离,用mask标记相同pose下,同像素位置来自G1和G2的渲染

        其中 F 是可微渲染函数,可在给定摄像机姿势和 3DGS 模型的情况下生成图像。掩码的 L1 距离 l1masked 给出了由元素级二进制mask的 L1 距离。使用的元素级二进制掩码是 M1⊗M2,其中 M1 和 M2 是二进制掩码,指示是否在每个像素处渲染了任何内容。

        我们根据的参数对 L 进行微分,给出为。 我们使用基于梯度的优化器来最小化损失并执行详细的对齐。

5. EXPERIMENTS

(coming soon)

        在本节中,我们评估所提出的 PhotoReg 方法在合并两个或多个具有不同重叠级别的高斯 Splatting 模型时的性能。 我们在框架中使用的基础模型是 DUSt3R 和 DINOv2。 DUSt3R 从渲染图像中生成粗略的 3D 重建; DINOv2 基于图像中稳健的视觉特征执行特征提取。 我们寻求凭经验回答几个主要问题

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

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

相关文章

数据结构(ing)

学习内容 指针 指针的定义: 指针是一种变量,它的值为另一个变量的地址,即内存地址。 指针在内存中也是要占据位置的。 指针类型: 指针的值用来存储内存地址,指针的类型表示该地址所指向的数据类型并告诉编译器如何解…

Synopsys软件基本使用方法

Synopsys软件基本使用方法 1 文件说明2 编译流程3 查看波形4 联合仿真 本文主要介绍Synopsys软件vcs、verdi的基本使用方法,相关文件可从 GitHub下载。 1 文件说明 创建verilog源文件add.v、mult.v、top.vmodule add (input signed [31:0] dina,input signed [3…

软件测试基础详解

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 “尽早的介入测试,遇到问题的解决成本就越低” 随着软件测试技术的发展,测试工作由原来单一的寻找缺陷逐渐发展成为预防缺陷,…

人工智能知识分享第六天-机器学习_​逻辑回归(Logistic Regression)

简介 在机器学习中,分类问题是一种常见的任务,目标是根据输入特征将数据点分配到不同的类别中。为了实现分类,我们需要训练一个分类器,该分类器能够根据输入数据的特征进行预测。 逻辑回归(Logistic Regression&…

OpenCV-Python实战(11)——边缘检测

一、Sobel 算子 通过 X 梯度核与 Y 梯度核求得图像在,水平与垂直方向的梯度。 img cv2.Sobel(src*,ddepth*,dx*,dy*,ksize*,scale*,delta*,borderType*)img:目标图像。 src:原始图像。 ddepth:目标图像深度,-1 代表…

Docker- Unable to find image “hello-world“locally

Docker- Unable to find image “hello-world“locally 文章目录 Docker- Unable to find image “hello-world“locally问题描述一. 切换镜像1. 编辑镜像源2. 切换镜像内容 二、 检查设置1、 重启dockers2、 检查配置是否生效3. Docker镜像源检查4. Dokcer执行测试 三、自定义…

【UE5 C++课程系列笔记】19——通过GConfig读写.ini文件

步骤 1. 新建一个Actor类,这里命名为“INIActor” 2. 新建一个配置文件“Test.ini” 添加一个自定义配置项 3. 接下来我们在“INIActor”类中获取并修改“CustomInt”的值。这里定义一个方法“GetINIVariable” 方法实现如下,其中第16行代码用于构建配…

互慧-急诊综合管理平台 ServicePage.aspx 任意文件读取漏洞复现

0x01 产品简介 互慧急诊急救快速联动平台,是用于管理门诊急诊病人的系统,主要包括门诊急诊业务和急诊物资管理两部分,其中门诊急诊业务主要包括院前急救、院内抢救、留观监护、绿色通道、预检分诊等;急诊物资管理包括急诊药品管理、急诊设备管理、抢救车管理、急救箱管理、…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 五、 解释评估(Explanation Evaluation) 在前面的章节中,我们介绍了不同的解释技术和它们的用途&#…

pyside6-deploy 提示相对路径错误

Pyside6.5的nuitka_helper.py中的 qml_args.extend([f"--include-data-files{qml_file}./{qml_file.relative_to(source_file.parent)}"for qml_file in qml_files])在qml_file为相对路径的时候会报错。通过增加resolve()来强制转为绝对路径

Echart实现3D饼图示例

在可视化项目中,很多地方会遇见图表;echart是最常见的;这个示例就是用Echart, echart-gl实现3D饼图效果,复制即可用 //需要安装,再引用依赖import * as echarts from "echarts"; import echar…

Linux之ARM(MX6U)裸机篇----6.BSP工程管理实验

一,BSP工程管理 定义:是为了模块化整理代码,相同属性的文件存放在同一个目录下。 ①先mkdir多个文件夹er ②把共同.h文件转移到指定文件夹下 二,启动文件 .global _start /* 全局标号 *//** 描述: _start函数&am…

vue使用vue-seamless-scroll进行轮播滚动展示内容

我这里只是记录下一些基本的东西,具体大家可以查看官网介绍,有更详细的使用文档(目前有vue和js版本): https://chenxuan0000.github.io/vue-seamless-scroll/zh/ 安装组件: npm install vue-seamless-scro…

HTML——58.value和placeholder

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>value和placeholder属性</title></head><body><!--input元素的type属性&#xff1a;(必须要有)1.指定输入内容的类型2.默认为text,单行文本框-->&l…

C语言面的向对象编程(OOP)

如果使用过C、C#、Java语言&#xff0c;一定知道面向对象编程&#xff0c;这些语言对面向对象编程的支持是语言级别的。C语言在语言级别不支持面向对象&#xff0c;那可以实现面向对象吗&#xff1f;其实面向对象是一种思想&#xff0c;而不是一种语言&#xff0c;很多初学者很…

使用C#构建一个论文总结AI Agent

前言 我觉得将日常生活中一些简单重复的任务交给AI Agent&#xff0c;是学习构建AI Agent应用一个很不错的开始。本次分享我以日常生活中一个总结论文的简单任务出发进行说明&#xff0c;希望对大家了解AI Agent有所帮助。任务可以是多种多样的&#xff0c;真的帮助自己提升了…

vs 2022 中xml 粘贴为Class 中,序列化出来的xml 的使用

上图是visual studio 2022 中使用的粘贴功能的菜单位置 在生成的xml 中&#xff0c;有些是类似如下类型的 [System.Serializable] [System.Xml.Serialization.XmlType] public class Item {private bool isVisibleField;private bool isVisibleFieldSpecified;[System.Xml.Se…

代际超越:方太冰箱勾勒“蛙跳模型”轮廓

文&#xff1a;互联网江湖 作者&#xff1a;志刚 每一代人&#xff0c;都有其独特的新需求、新创造和新使命。 曾经的手机领域&#xff0c;苹果以其革命性创新颠覆了诺基亚的塞班系统&#xff0c;惊艳了整个行业。而如今&#xff0c;华为凭借其三折叠和自主研发的鸿蒙系统&am…

spring-boot启动源码分析(二)之SpringApplicationRunListener

在上一篇《spring-boot启动源码分析&#xff08;一&#xff09;之SpringApplication实例构造》后&#xff0c;继续看了一个月的Spring boot启动源码&#xff0c;初步把流程看完了&#xff0c;接下来会不断输出总结&#xff0c;以巩固这段时间的学习。同时也希望能帮到同样感兴趣…

Linux-Redis哨兵搭建

环境资源准备 主机名IP端口号角色vm1192.168.64.156379/26379mastervm2192.168.64.166379/26379slavevm3192.168.64.176379/26379slave 6379为redis服务暴露端口号、26379为sentinel暴露端口号。 安装Redis # 包文件下载 wget https://github.com/redis/redis/archive/7.2.2…