单目视觉(7):SFM之Bundle Adjustment (六)

光束平差法:Bundle Adjustment


引入

Bundle Adjustment (BA)的翻译可以看出其利用的一组数据(“光束”)来进行最小化误差(“平差”),其本质就是一种优化算法。在SFM中,我们采用了多个视角的不同图像来计算物理世界的实际位置(三角定位)。那么三角定位得到的物体的三维位置信息肯能是不准确的。我们按照这个信息再次重新在像平面上进行投影(重投影),得到的新的投影位置。该位置与第一次投影(相机成像时为第一次投影)可能存在误差。BA模型最小化的误差就是这个重投影误差。

模型

假设物理世界的物体的坐标为 C ( x , y , z ) ,其在像平面上的成像的坐标为 ( u , v ) 。那么在SFM中,如果世界坐标系固定,也就是物体的世界坐标不发生变化。而相机在不同角度进行对物体进行拍摄成像,那么在不同位置 P i 中像素位置是不一样的 ( u i j , v i j )
根据之前的博文中推导过程可以得知,物体的世界坐标和像素坐标之间是存在一个关系的。即:

[ u i j v i j 1 ] = P i [ x j y j z j 1 ]

在重投影之后,我们还可以获得一个物理世界坐标(经过计算得出的世界坐标,并不一定为真实坐标)和像素坐标(并不一定为真实的像素坐标)。即:
[ u i j v i j 1 ] = M i P i [ x j y j z j 1 ]

那么由此,就可以得到两次投影的误差了:
e i = | | ( u i j , v i j ) ( u i j , v i j ) | |

从而可以得到优化的目标函数:
min R i , t i , C j i , j σ i j e i j

其中, σ i j 表示 C j 是否在 P i 位置的像上是否有投影。

优化方法

当将问题转化为无约束的优化模型后,只需要根据实际的需求选择不同的优化方法来优化目标函数,常用的方法有梯度下降法、最速下降法、牛顿法、拟牛顿法、LM算法等。部分相关算法可以参考:无约束优化


Reference

[1] Bundle Adjustment简述
[2] 单目视觉(4):SFM之相机模型(二)

猜你喜欢

转载自blog.csdn.net/xholes/article/details/79902088