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

@TOC


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的平面图像对齐问题。

我们的目标是使得生成的图片与原图片尽可能地相似,这个联合优化的目标用最小二乘来表达,就是:

相机参数的维度可以记作

这个最小二乘问题的基础迭代步骤可以记作:

其中,

残差:

以上是对这个最小二乘问题的概述。这种基于梯度的优化策略的核心在于输入信号是否足够平滑,否则,很容易陷入局部次优解。输入信号的平滑程度等价于:

为了避免局部最优,通常在优化的前期对图像进行模糊处理。图像梯度通过数值差分方法得出,而并非解析的。

通过操纵网络f,还可以对对齐的信号平滑度进行更原则性的控制,而不必依赖于图像的启发式模糊,从而使这些形式可推广到3D场景表示。稍后,将会介绍barf如何操作f对信号进行平滑度控制。

Neural Radiance Fields (3D)

接下来,BARF将以上过程拓展为3D,具体如下:

体渲染表达式:

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

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

最后,这个联合优化问题变为:

Bundle-Adjusting Neural Radiance Fields

barf与Nerf差异最大的一点在于,barf需要在优化网络参数的同时考虑到相机参数。而barf认为直接使用nerf的位置编码方案使得相机参数优化变得困难,对此,barf做出了改进,提出了捆绑优化的动态调整策略,这也是这篇文献最大的贡献之一。

Nerf最初的位置编码方案为:

这里的L是超参数。

那么,k阶位置编码的雅克比矩阵为:

它将来自MLP的梯度信号放大,并且其方向以相同频率变化。这使得预测有效更新Δp变得困难,因为来自采样的3D点的梯度信号在方向和幅度方面是不相干的,并且很容易相互抵消。因此,对于barf的联合优化来说,不能直接应用位置编码。


barf的做法是从低频段到高频段逐步激活位置编码:

从原始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.

BARF

ref. NeRF

full pos.enc.

w/o pos.enc.

BARF

ref. NeRF

full pos.enc.

w/o pos.enc.

BARF

ref. NeRF

Chair

7.186

0.110

0.096

16.638

0.555

0.428

19.02

30.22

31.16

31.91

0.804

0.942

0.954

0.961

0.223

0.065

0.044

0.036

Drums

3.208

0.057

0.043

7.322

0.255

0.225

20.83

23.56

23.91

23.96

0.840

0.893

0.900

0.902

0.166

0.116

0.099

0.095

Ficus

9.368

0.095

0.085

10.135

0.430

0.474

19.75

25.58

26.26

26.58

0.836

0.926

0.934

0.941

0.182

0.070

0.058

0.051

Hotdog

3.290

0.225

0.248

6.344

1.122

1.308

28.15

34.00

34.54

34.91

0.923

0.967

0.970

0.973

0.083

0.040

0.032

0.029

Lego

3.252

0.108

0.082

4.841

0.391

0.291

24.23

26.35

28.33

29.28

0.876

0.880

0.927

0.942

0.102

0.112

0.050

0.037

Materials

6.971

0.845

0.844

15.188

2.678

2.692

16.51

26.86

27.48

28.06

0.747

0.926

0.936

0.942

0.294

0.068

0.058

0.049

Mic

10.554

0.081

0.075

22.724

0.356

0.301

15.10

30.93

31.18

31.83

0.788

0.966

0.969

0.971

0.334

0.056

0.049

0.046

Ship

5.506

0.095

0.074

7.232

0.354

0.326

22.12

26.78

27.50

28.00

0.755

0.833

0.849

0.858

0.255

0.175

0.132

0.118

Mean

6.167<

0.202<

0.193

11.303

0.768

0.756

22.12

26.78

27.50

29.40

0.821

0.917

0.930

0.936

0.205

0.087

0.065

0.057

Last updated