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

51c视觉~3D~合集2

我自己的原文哦~      https://blog.51cto.com/whaosoft/13422809

#中科大统一内外参估计和3DGS训练

这下真的不用相机标定了?

同时优化相机的内外参和无序图像数据

在给定一组来自3D场景的图像及其相应的相机内参和外参的情况下,3D高斯喷溅(3DGS)能够使用一系列3D高斯来有效地表示场景,并从新视角生成高质量的图像。由于其高效的训练过程以及在测试阶段的卓越性能,3DGS已被广泛应用于场景重建、编辑以及增强现实(AR)/虚拟现实(VR)等多个领域。然而,3DGS的训练效果严重依赖于预先精确确定的相机姿态(即相机外参)和相机焦距(即相机内参)。这些参数通常需要使用COLMAP进行预处理。然而,该预处理步骤不仅耗时,还会影响3DGS的训练性能,尤其是在处理复杂的相机运动和场景时。

近期研究试图放宽对输入数据的要求。这些方法通常假设输入数据是按顺序排列的,并且已知相机的焦距。然而,与这些方法不同,我们的目标是同时优化相机的内参和外参,同时处理无序的图像数据,并探索相机参数与3DGS训练之间的关系

为了解决这一问题,首次提出了一种联合优化方法[1],以在不依赖相机内参和外参的情况下,从一组图像中训练3DGS。具体而言,与以往仅在训练过程中更新相机姿态的方法不同,我们还从理论上推导出了焦距的梯度,以便通过反向传播同时优化相机内参,从而实现相机参数和3D高斯的统一学习。此外,为了提高训练的稳定性,我们进一步整合了全局轨迹信息,并选择与轨迹点对应的3D高斯。在训练过程中,这些跟踪的3D高斯会动态调整其大小,逐渐缩小至极小尺寸,并无限逼近真实的空间点,使其能够更精确地分布在实际表面附近。利用重投影损失,我们能够不断优化这些点的位置以及相机参数,以满足几何约束。此外,其余的3D高斯仍然保持原本的功能,并且所有3D高斯都会受到损失函数的约束。借助这种混合表示方法,我们无缝地将相机参数优化与3DGS训练结合在一起。

在公共基准数据集以及我们合成的虚拟数据集上进行了广泛的评估。与以往方法相比,我们的方法仅需一组图像作为输入,就能在相机参数估计和新视角合成方面取得最先进(SOTA)的性能。

主要贡献

  • 从理论上推导了焦距对3DGS训练的梯度,使得相机内参能够在训练过程中进行优化,从而彻底消除3DGS训练对相机参数的任何先验需求。
  • 据我们所知,我们首次提出了一种相机参数与3DGS的联合优化方法。我们通过初始化一组3D高斯,并施加轨迹和尺度约束,使得我们能够应用多视角一致性和重投影损失来估计相机参数,从而实现更鲁棒的3DGS训练。
  • 在公共数据集和合成数据集上,我们的方法超越了以往需要相机内参的方法,并在新视角合成任务上达到了当前最优(SOTA)性能。

具体方法

给定一组图像 ,其中每张图像  的相机外参表示为 ,相机内参矩阵表示为 。本方法的目标是同时获取相机的内参和外参,以及3D高斯喷溅(3DGS)模型,如图2所示。由于引入了额外的变量(即相机参数),我们对原始3DGS进行了多项关键改进。

首先,作为理论支撑,我们推导了相机内参的梯度,使得这些参数可以在训练的反向传播过程中进行更新。此外,我们结合全局轨迹信息,并选择与轨迹点对应的高斯核。利用重投影损失,我们进一步约束了3DGS和相机参数的优化,使其符合多视角几何一致性。为了确保计算重投影误差不会影响其余3D高斯的作用,我们要求跟踪的高斯核自动缩放至极小尺寸,并分布在场景的实际表面附近。接下来,我们提出了一种高效的联合优化方案来完成训练。

相机参数的梯度推导

要同时优化3D高斯的相机参数,我们需要计算损失函数  对相机参数的梯度。对于相机外参,梯度表示如下:

其中,  ,而 。

进一步设  为投影到2D的中心点和协方差矩阵,那么焦距  的梯度可通过链式法则计算如下:

最终,损失函数  对相机内参  的梯度可表示为:

在推导梯度时不受特定损失函数的限制,只要损失函数是可微的即可。

初始化

为相机参数和3D高斯提供更好的初始值有助于加速收敛并避免陷入局部次优解。为了保证通用性,我们构建了一个最大生成树(MST),其边权表示两张图像之间的匹配点数量。利用MST,我们可以获得图像级匹配对及点级对应关系,从而提取全局轨迹信息(请参考补充材料获取详细信息)。随后,相机参数和3D高斯的初始化方法如下。

相机参数初始化

我们假设所有相机均采用标准的针孔模型、无畸变,且主点位于图像中心,则相机内参矩阵  定义为:

其中,  为主点坐标,  为焦距。经验上,我们用60°的视场角(FoV)来初始化焦距:

对于MST中的每条边 ,我们利用图像的单目深度信息(如DPT[17])来估计点云,并定义重投影损失来优化其相关变换矩阵:

通过最小化所有匹配对的重投影损失,我们可以初步获得相机的内参和外参。

3D高斯初始化

我们从MST提取一组轨迹点 ,其中每个轨迹点  由3D轨迹点  及其对应的像素匹配点  组成。轨迹点  的初始化方式如下:

值得注意的是,我们仅使用轨迹点来初始化3D高斯,而它们的具体位置会在后续的全局优化和约束中进一步调整,以准确表示物体表面。由于某些点的深度估计存在误差,其距离真实表面较远,因此不适合直接用于3D高斯初始化。

联合优化

由于我们需要同时优化相机的内参、外参以及3D高斯参数,训练的复杂度大幅增加。原始损失函数(公式4)仅依赖光度信息,在约束相机参数方面不足。为了解决这一问题,我们提出了一种多视角几何一致性约束的方法,通过跟踪匹配点轨迹来增强联合优化能力。值得注意的是,我们利用初始化的3D高斯质心来维护3D轨迹点,从而保证这些3D高斯在优化过程中得以保留,并可用于计算投影误差,以评估相机参数的准确性。为此,我们定义了两个额外的约束项。

轨迹损失

为了度量多视角几何一致性,我们将3D轨迹点  投影到所有对应的图像中,并计算投影误差:

总轨迹损失为:

尺度损失

3D轨迹点实际上位于场景中的物体表面。为了确保跟踪的3D高斯质心与实际物体表面对齐,并减少投影误差,我们引入了尺度损失:

总体目标

结合公式4,我们的联合优化目标可表示为:

此方法实现了相机参数优化与3DGS训练的无缝结合,有效提升了模型在新视角合成和相机参数估计方面的性能。

实验效果

总结一下

本文介绍一种新的联合优化方法,使得3DGS能够在无需相机内参和外参的情况下进行训练。为解决这一问题,我们首先推导出了相机内参的梯度,使得这些参数能够在反向传播过程中进行优化。此外,我们整合了全局轨迹信息,并选择与每个轨迹相关的高斯核进行训练。我们进一步将两种新的损失函数——轨迹损失和尺度损失,与原始3DGS的光度损失结合在一起。广泛的实验评估表明,我们的方法在公共数据集和复杂的合成数据集上均超越了以往需要相机内参的方法,并在新视角合成任务上达到了当前最优(SOTA)性能。

局限性:假设所有相机均遵循标准针孔模型,无畸变,并共享相同的内参。

参考

[1] No Parameters, No Problem: 3D Gaussian Splatting without Camera Intrinsics and Extrinsics

#xxx

#xxx
#xxx
#xxx
#xxx
#xxx
#xxx
#xxx
#xxx
#xxx
#xxx

http://www.kler.cn/a/580838.html

相关文章:

  • 笔记本电脑外接固态移动硬盘可以用于深度学习吗
  • Cryptography 与 PyCryptodome 源码级解析
  • MCP-代码解读TypeScript版本
  • (二分 数学推导区间 两个数组的距离值)leetcode 1385
  • 【第21节】C++设计模式(行为模式)-Chain of Responsibility(责任链)模式
  • Redis7——进阶篇(五)
  • Consensus 大会全观察:政策、生态与技术交汇,香港能否抢占 Web3 先机?
  • 【网络编程】WSAAsyncSelect 模型
  • redis 用来实现排行榜的功能
  • Qt 中实现自定义控件子类化
  • scala传递匿名函数简化的原则
  • Android 低功率蓝牙之BluetoothGattCharacteristic详解
  • linux下文件读写操作
  • 探索CAMEL:揭开多智能体系统的神秘面纱
  • upload-labs(1-20)详解(专业版)
  • JVM参数调整
  • Linux——基础IO【3万字大章】
  • 第四次CCF-CSP认证(含C++源码)
  • 构建服务器--在线单词查询
  • Ubuntu 22.04 升级到 Ubuntu 24.04 全流程指南