当前位置:首页 > AI > 正文内容

【CameraPoseRefinement】以BARF为例介绍三维重建中的位姿优化

邻居的猫1个月前 (12-09)AI1302

Introduction


在计算机视觉三维重建中,求解3D场景的表明和定位给定的相机帧的相机位姿是两个非常重要的使命,这两个问题互为依靠,一方面,康复3D场景的表明需求运用已知的相机位姿进行调查;另一方面,定位相机需求来自特征点的牢靠对应。

过错的相机位姿会对重建的输出和功能发生一系列负面影响,包含:

  1. 图画组成质量下降

    • 当相机位姿不精确时,生成的视角组成图画或许会呈现显着的畸变或含糊,导致终究图画的质量较差。
  2. 三维场景表明不精确

    • 过错的位姿会导致三维场景中的几许结构和深度信息的过错重建,使得模型无法正确理解场景的空间布局。
  3. 印象堆叠和视差问题

    • 不精确的位姿或许会形成图画堆叠区域的视差不一致,然后导致组成图画中的物体方位、巨细等呈现显着的不自然或错位现象。
  4. 优化进程的困难

    • 由于相机位姿的差错,优化算法(如Adam)或许会在优化进程中堕入部分最优解,无法收敛到正确的场景表明和相机方位。
  5. 练习功率下降

    • 不精确的相机位姿会使得练习进程变得愈加杂乱,模型需求更多的迭代才干调整出合理的场景表明,然后延伸练习时刻。
  6. 潜在的视觉伪影

    • 由于差错,组成图画或许呈现视觉伪影(artifacts),如不连接的暗影、过错的光照等,使得生成的图画看起来不实在。

红框是伪影,蓝框是错位。

在《3D Gaussian Splatting for Real-Time Radiance Field Rendering》发布后,许多重建办法都测验在3D表征上进行立异,它们遍及运用预输入的相机位姿进行重建,而不一起考虑相机位姿的校准,这些预输入的相机位姿通常是由colmap软件估量得到的。此次介绍的两篇文章《BARF》和《HGSLoc》在进行场景重建的一起进行相机位姿的优化,它们运用一些来自不同视角的图画和这些图画的大略位姿作为输入,而且在相机位姿优化的办法上做出了改善。

Approach

Planar Image Alignment(2D)

首要,BARF考虑2D的平面图画对齐问题。

$$
\begin{array}{c}
设\mathbf{x} \in \mathbb{R}^2为像素坐标系下的一个坐标,
\mathcal{W}: \mathbb{R}^2 \rightarrow \mathbb{R}^2 是与相机参数\mathbf{p}有关的几许改换,\
\mathcal{I}: \mathbb{R}^2 \rightarrow \mathbb{R}3是咱们的图画生成进程(图画的3个通道,所以是\mathbb{R}2 \rightarrow \mathbb{R}^3),
\end{array}
$$

咱们的方针是使得生成的图片与原图片尽或许地类似,这个联合优化的方针用最小二乘来表达,便是:

$$
\min {\mathbf{p}} \sum{\mathbf{x}}\left|\mathcal{I}{1}(\mathcal{W}(\mathbf{x} ; \mathbf{p}))-\mathcal{I}(\mathbf{x})\right|_{2}^{2}
$$

相机参数的维度可以记作

$$
\mathbf{p} \in \mathbb{R}^P
$$

这个最小二乘问题的根底迭代进程可以记作:

$$
\Delta \mathbf{p}=-\mathbf{A}(\mathbf{x} ; \mathbf{p}) \sum_{\mathbf{x}} \mathbf{J}(\mathbf{x} ; \mathbf{p})^{\top}\left( \mathcal{I}{1}(\mathcal{W}(\mathbf{x} ; \mathbf{p})) - \mathcal{I}(\mathbf{x}) \right)
$$

其间,

$$
\begin{array}{c}
\mathbf{J}是从输出到待优化变量求导的雅克比矩阵,\mathcal{I}_2是给定的ground truth,\
\mathcal{I}_1是咱们想要优化的。而\mathbf{A}(\mathbf{x} ; \mathbf{p})取决于咱们挑选的优化战略。
\end{array}
$$

$$
\mathbf{J}(\mathbf{x};\mathbf{p})=\frac{\partial\mathcal{I}_1(\mathcal{W}(\mathbf{x};\mathbf{p}))}{\partial\mathcal{W}(\mathbf{x};\mathbf{p})}\frac{\partial\mathcal{W}(\mathbf{x};\mathbf{p})}{\partial\mathbf{p}}
$$

残差:

$$
\begin{array}{c}
\mathbf{r}(\mathbf{x})=\mathcal{I}{2}(\mathbf{x}) - \mathcal{I}(\mathcal{W}(\mathbf{x} ; \mathbf{p}))\
有的资猜中把\mathbf{J}看作是残差对待优化变量的导数,即,\frac{\partial\mathbf{r}}{\partial\mathbf{p}},因而,\Delta \mathbf{p}也可以写成:
\end{array}
$$

$$
\Delta \mathbf{p}=-\mathbf{A}(\mathbf{x} ; \mathbf{p}) \sum_{\mathbf{x}} \mathbf{J}(\mathbf{x} ; \mathbf{p})^{\top} \mathbf{r}(\mathbf{x})
$$

$$
\begin{array}{c}
假如挑选一阶优化办法,\mathbf{A}便是一个标量,也便是学习率;\
假如挑选二阶优化办法,有时\mathbf{A}(\mathbf{x};\mathbf{p})=(\sum_\mathbf{x}\mathbf{J}(\mathbf{x};\mathbf{p})\top\mathbf{J}(\mathbf{x};\mathbf{p})),这取决于详细的优化战略。
\end{array}
$$

以上是对这个最小二乘问题的概述。这种根据梯度的优化战略的中心在于输入信号是否满足滑润,不然,很简单堕入部分次优解。输入信号的滑润程度等价于:

$$
\frac{\partial\mathcal{I}(\mathbf{x})}{\partial\mathbf{x}},亦即图画梯度
$$

为了防止部分最优,通常在优化的前期对图画进行含糊处理。图画梯度经过数值差分办法得出,而并非解析的。

$$
\begin{array}{c}
BARF并没有选用含糊操作,它用神经网络作为\mathcal{I},优化方针就可以写成:\
\min_{\mathbf{p}i,\boldsymbol{\Theta}}\sumM\sum_\mathbf{x}\left|f(\mathcal{W}(\mathbf{x};\mathbf{p}_i);\boldsymbol{\Theta})-\mathcal{I}_i(\mathbf{x})\right|_22\
其间,f:\mathbb{R}^2 \rightarrow \mathbb{R}^3,\boldsymbol{\Theta}是网络的参数,M是图画个数。\
然后,图画梯度就变为可解析的\frac{\partial{f}(\mathbf{x})}{\partial\mathbf{x}},而不是数值差分的估量。
\end{array}
$$

经过操作网络f,还可以对对齐的信号滑润度进行更原则性的操控,而不用依靠于图画的启发式含糊,然后使这些方式可推行到3D场景表明。稍后,将会介绍barf怎么操作f对信号进行滑润度操控。

Neural Radiance Fields (3D)

接下来,BARF将以上进程拓宽为3D,详细如下:

$$
\begin{array}{c}
多层感知机:f:\mathbb{R}^3 \rightarrow \mathbb{R}^4\
MLP参数:\boldsymbol{\Theta}\
3D点坐标:\mathbf{x} \in \mathbb{R}^3\
3D点坐标对应的色彩:\mathbf{c} \in \mathbb{R}^3\
体素密度:\sigma \in \mathbb{R}\
相机位姿改换:\mathcal{W},其有6个自由度{x,y,z,\phi,\theta,\psi},故\mathbf{p}\in \mathbb{R}^6\
且,[\mathbf{c};\sigma]^{\top}=f(\mathbf{x};\boldsymbol{\Theta})\
像素齐次坐标:\bar{\mathbf{u}}=[\mathbf{u};1]^{\top} \in \mathbb{R}^3,深度:z_i,\
\mathbf{x}_i=z_i\bar{\mathbf{u}}
\end{array}
$$

体烘托表达式:

$$
\begin{array}{c}
\hat{\mathcal{I}}(\mathbf{u})=\int_{z_{\mathrm{near}}}^{z_{\mathrm{far}}}T(\mathbf{u},z)\sigma(z\bar{\mathbf{u}})\mathbf{c}(z\bar{\mathbf{u}})\mathrm{d}z ,\
其间,z_{\mathrm{near}}和z_{\mathrm{far}}是感兴趣的深度上下限,\mathcal{I}仍然是\mathbb{R}^2 \rightarrow \mathbb{R}^3,\
表明这个像素坐标对应的RGB数值。\
T(\mathbf{u},z)=\exp\bigl(-\int_{z_{\mathrm{max}}}{z}\sigma(z\bar{\mathbf{u}})\mathrm{d}z^{\prime}\bigr)
\end{array}
$$

T对应3dgs中的透射率。这两个式子和3dgs的体烘托公式也是极为挨近的:

$$
C_i=\sum_{n\leq N}c_n\cdot\alpha_n\cdot T_n,\text{ where }T_n=\prod_{m<n}(1-\alpha_m),\
\alpha_n=o_n\cdot\exp(-\sigma_n),\quad\sigma_n=\frac12\Delta_n\top\Sigma{\prime{-1}}\Delta_n.
$$

差异在于,3dgs中的T是经过累乘得出,体素密度则取决于椭球投影到平面的形状再乘以不透明度。而nerf中的色彩值和体素密度是经过MLP直接得出。

$$
\begin{array}{c}
令\mathbf{y}=[\mathbf{c};\sigma]^{\top}=f(\mathbf{x};\boldsymbol{\Theta})\
持续改写:\hat{\mathcal{I}}(\mathbf{u})=g\left(\mathbf{y}_1,\ldots,\mathbf{y}_N\right),g:\mathbb{R}^{4N} \rightarrow \mathbb{R}^3\
\hat{\mathcal{I}}(\mathbf{u};\mathbf{p})=g\Big(f(\mathcal{W}(z_1\bar{\mathbf{u}};\mathbf{p});\boldsymbol{\Theta}),\ldots,f(\mathcal{W}(z_N\bar{\mathbf{u}};\mathbf{p});\boldsymbol{\Theta})\Big),\mathcal{W}:\mathbb{R}^{3} \rightarrow \mathbb{R}^3
\end{array}
$$

最终,这个联合优化问题变为:
$$
\min_{\mathbf{p}_1,...,\mathbf{p}M,\boldsymbol{\Theta}}\sumM\sum_\mathbf{u}\left|\hat{\mathcal{I}}(\mathbf{u};\mathbf{p}_i,\boldsymbol{\Theta})-\mathcal{I}_i(\mathbf{u})\right|_22
$$

Bundle-Adjusting Neural Radiance Fields

barf与Nerf差异最大的一点在于,barf需求在优化网络参数的一起考虑到相机参数。而barf以为直接运用nerf的方位编码方案使得相机参数优化变得困难,对此,barf做出了改善,提出了绑缚优化的动态调整战略,这也是这篇文献最大的奉献之一。

Nerf开端的方位编码方案为:

$$
\gamma(\mathbf{x})=\begin{bmatrix}\mathbf{x},\gamma_0(\mathbf{x}),\gamma_1(\mathbf{x}),\ldots,\gamma_{L-1}(\mathbf{x})\end{bmatrix}\in\mathbb{R}^{3+6L}
$$

这儿的L是超参数。

$$
\gamma_k(\mathbf{x})=\begin{bmatrix}\cos(2k\pi\mathbf{x}),\sin(2k\pi\mathbf{x})\end{bmatrix}\in\mathbb{R}^6
$$

那么,k阶方位编码的雅克比矩阵为:
$$
\frac{\partial\gamma_k(\mathbf{x})}{\partial\mathbf{x}}=2k\pi\cdot\left[-\sin(2k\pi\mathbf{x}),\cos(2^k\pi\mathbf{x})\right]
$$

它将来自MLP的梯度信号扩大,而且其方向以相同频率改变。这使得猜测有用更新Δp变得困难,由于来自采样的3D点的梯度信号在方向和起伏方面是不相干的,而且很简单彼此抵消。因而,关于barf的联合优化来说,不能直接运用方位编码。


barf的做法是从低频段到高频段逐步激活方位编码:
$$
\begin{array}{c}
\gamma_k(\mathbf{x};\alpha)=w_k(\alpha)\cdot\left[\cos(2k\pi\mathbf{x}),\sin(2k\pi\mathbf{x})\right], \
w_k(\alpha)=\begin{cases}0
&
\text{if }\alpha<k \
\frac{1-\cos((\alpha-k)\pi)}{2}&
\text{if }0\leq\alpha-k<1 \
1&\text{if }\alpha-k\geq1&\end{cases}\
\frac{\partial\gamma_k(\mathbf{x};\alpha)}{\partial\mathbf{x}}=w_k(\alpha)\cdot2k\pi\cdot\left[-\sin(2k\pi\mathbf{x}),\cos(2^k\pi\mathbf{x})\right].
\end{array}\
\alpha \in [o,L] 是与优化进展成正比的可控的一个超参数。
$$

从原始3D输入x(α=0)开端,barf逐步激活较高频段的编码,直到启用完好方位编码(α=L),相当于原始 NeRF 模型。这使得 BARF 可以经过开端滑润的信号发现正确的Δp,然后将要点转移到学习高保真场景表明。

Experiment

平面图画对齐的定性试验

给定图画块,barf的方针是康复整个图画的对齐和神经网络重建,其间初始化为(b)中所示的中心裁剪,而相应的实在改换(ground-truth warps)如(c)所示。

试验成果:(a)为直接运用方位编码,(b)为不运用方位编码,(c)是barf的成果。

组成场景上的定量试验

Scene Camera pose registration View synthesis quality
Rotation (°) ↓ Translation ↓ PSNR ↑ SSIM ↑ LPIPS ↓
full pos.enc.w/o pos.enc.BARF full pos.enc.w/o pos.enc.BARF full pos.enc.w/o pos.enc.BARFref. NeRF full pos.enc.w/o pos.enc.BARFref. NeRF full pos.enc.w/o pos.enc.BARFref. NeRF
Chair7.1860.1100.096 16.6380.5550.428 19.0230.2231.1631.91 0.8040.9420.9540.961 0.2230.0650.0440.036
Drums3.2080.0570.043 7.3220.2550.225 20.8323.5623.9123.96 0.8400.8930.9000.902 0.1660.1160.0990.095
Ficus9.3680.0950.085 10.1350.4300.474 19.7525.5826.2626.58 0.8360.9260.9340.941 0.1820.0700.0580.051
Hotdog3.2900.2250.248 6.3441.1221.308 28.1534.0034.5434.91 0.9230.9670.9700.973 0.0830.0400.0320.029
Lego3.2520.1080.082 4.8410.3910.291 24.2326.3528.3329.28 0.8760.8800.9270.942 0.1020.1120.0500.037
Materials6.9710.8450.844 15.1882.6782.692 16.5126.8627.4828.06 0.7470.9260.9360.942 0.2940.0680.0580.049
Mic10.5540.0810.075 22.7240.3560.301 15.1030.9331.1831.83 0.7880.9660.9690.971 0.3340.0560.0490.046
Ship5.5060.0950.074 7.2320.3540.326 22.1226.7827.5028.00 0.7550.8330.8490.858 0.2550.1750.1320.118
Mean6.167<0.202<0.193 11.3030.7680.756 22.1226.7827.5029.40 0.8210.9170.9300.936 0.2050.0870.0650.057

本文由博客一文多发渠道 OpenWrite 发布!

扫描二维码推送至手机访问。

版权声明:本文由51Blog发布,如需转载请注明出处。

本文链接:https://www.51blog.vip/?id=360

分享给朋友:

“【CameraPoseRefinement】以BARF为例介绍三维重建中的位姿优化” 的相关文章

机器学习训练数据集,机器学习训练数据集的重要性

机器学习训练数据集,机器学习训练数据集的重要性

机器学习训练数据集的质量和数量对模型的性能有很大影响。高质量的数据集可以提供足够的信息,帮助模型学习到有用的模式。而大量的数据集可以提供更多的样本来训练模型,从而提高模型的泛化能力。在选择机器学习训练数据集时,需要考虑以下几个因素:1. 数据集的大小:数据集的大小应该足够大,以便模型能够学习到有用的...

绘图ai,技术革新与艺术创作的融合

绘图ai,技术革新与艺术创作的融合

1. 图像生成AI:如DeepArt、GAN(生成对抗网络)等,可以将用户的照片或图像转换成不同的艺术风格。例如,将普通照片转换为梵高、莫奈等大师的画风。2. 绘画辅助AI:如Adobe Photoshop中的内容感知填充、自动修图等功能,可以帮助用户更高效地完成图像编辑和设计工作。3. 3D建模A...

AI综合2839867Z空间,2839867Z空间探索的新篇章

AI综合2839867Z空间,2839867Z空间探索的新篇章

AI综合2839867Z空间是指由李飞飞创办的World Labs推出的空间智能模型。这个模型可以通过一张图片生成一个逼真且可交互的3D世界,具有以下主要功能和特点:1. 3D世界构建:从单张图片生成完整的3D世界,包括估算3D几何图形和填充场n2. 内容创建:在给定图片的基础上,系统能创建新的内...

ai训练师,人工智能时代的幕后英雄

ai训练师,人工智能时代的幕后英雄

AI训练师,或称为机器学习工程师,是负责设计和开发机器学习模型的专业人士。他们的工作通常包括以下几个方面:1. 数据收集与处理:AI训练师需要收集大量的数据,并对数据进行清洗、预处理,以便于模型训练。2. 模型选择与设计:根据具体的应用场景,AI训练师需要选择合适的机器学习算法,并设计模型的架构。3...

机器学习吴恩达笔记,深入浅出吴恩达机器学习笔记——开启AI学习之旅

机器学习吴恩达笔记,深入浅出吴恩达机器学习笔记——开启AI学习之旅

1. 知乎专栏: 2. CSDN博客: 3. GitHub资源: 4. 课程结构: 吴恩达的机器学习课程笔记根据学习进度分为15部分,包括线性回归、Logistic回归、正则化、神经网络、支持向量机、聚类、降维、异常检测等。5. 其他资...

机器学习和数据挖掘,现代数据分析的基石

机器学习和数据挖掘,现代数据分析的基石

机器学习和数据挖掘是计算机科学和人工智能领域中的两个重要分支,它们在许多领域都有广泛的应用。下面我将分别介绍机器学习和数据挖掘的概念、方法和应用。 机器学习 概念机器学习是一种使计算机能够通过经验自动改进其性能的技术。它关注于开发算法,这些算法可以从数据中学习并做出预测或决策,而无需显式编程。机器学...