一、BA问题(本质:最小化重投影误差)
- 束调整(BA)是SaM的关键组成部分,几乎总是作为SaM的最后一步使用。
-
这是一个三维结构和观察参数(相机姿态、内部校准和径向畸变参数)的优化问题,这些参数同时被优化以最小化重新投影误差。
-
BA是假设零均值高斯图像噪声的ML估计量。
-
BA归结为一个非常大的非线性最小二乘问题,通常用Levenberg-Marquardt(LM)算法求解。
-
Std-LM涉及线性系统的重复解,每一个线性系统具有O(N3)时间和O(N2)存储复杂度。
-
LM需要求解的线性系统具有稀疏块结构。
-
这是因为某个点在某个相机上的投影不依赖于任何其他点或相机的参数。
-
一种处理BA的方案,它利用稀疏性来节省大量的计算量。一个ANSI C软件库(称为sba)实现了这个方案,并已在GNU GPL下公开提供。
二、BA迭代
- n个三维物点,围绕这些点拍摄m张照片,第j张图片上看到的第i个物点为Xij。更具体的说:每个相机j用向量aj表示,每个三维物点i用向量bi表示。则BA核心问题即为:
其中,是点i在图像j上的预测投影。函数d(x,y)表示观测的图像坐标与预测图像坐标间的欧氏距离。若点i在图像j中可见,则
=1。
2.用向量P代表m个投影矩阵和那个三维物点所有参数:
用向量X表示所有图像内所有物点观测坐标:
3.利用投影关系X‘=f(P)。每组参数的预测向量为:
其中,表示预测投影坐标。
4.因此转化为一个非线性最小二乘问题:
5.对应的雅可比矩阵:
LM迭代步长为:
正规方程化为:
例如:n=4,m=3
其中:
6.矩阵为992×992,黑色像素表示非零元素:

7.增广法方程形式为:
对于上述方程两边同时左乘:
化为:
由此确定
将反代入上式,即可求得
:
而称为简化摄像机矩阵。
三、稀疏BA迭代步长的算法求解过程
算法输入:
m个初始相机参数,j=1,...,m;n个初始三维物点坐标
,i=1,...,n,观测的特征点坐标
,LM算法的阻尼因子μ。
算法输出:
基于LM的稀疏BA迭代步长的解
算法流程:
计算偏导数矩阵,Q表示投影函数,i=1,...,n,j=1...,m
计算残差:
计算辅助变量:
将Uj和Vide主对角线元素上加上阻尼因子μ,得到Uj*和Vi*。
计算:
对于:
,S是由多个m*m分块构成的矩阵
对于:
拼接和
,就得到LM的迭代步长
。
三维重建中的稀疏束调整(BA)解析
本文详细介绍了束调整(BA)问题,本质是通过最小化重投影误差来优化三维结构和相机参数。BA是非线性最小二乘问题,常使用Levenberg-Marquardt算法求解,尤其是在考虑稀疏性的情况下能显著减少计算量。BA迭代过程中,利用稀疏性构建线性系统,并给出了稀疏BA迭代步长的算法求解流程。
939

被折叠的 条评论
为什么被折叠?



