视觉SLAM—BA模型的理解

参考高翔《视觉SLAM十四讲》

PnP是通过一组匹配好的3D点和2D点来求解两帧图像之间运动的一种算法。PNP的求解有DLT(直接线性变换)、P3P、EPNP和BA优化等方式。ICP的求解有两种方式:线性代数的求解(SVD),非线性优化方式(BA).本文主要讲解BA(Bundle Adjustment)。

基于图的SLAM算法里面使用图优化替代了原来的滤波器,这里图优化就是指BA。
BA的定义: 从视觉重建中提炼出最优的3D模型和相机参数,从每个特征点反射出来的几束光线,把相机姿态和特征点空间位置做出最优调整之后,最后收束到相机光心的过程简称BA。它在视觉SLAM中起核心作用。
BA本质上就是最小化重投影残差同时优化位姿和路标点,以便从每个特征点反射出的光线通过调整最后都能通过相机光心,因此也称捆集优化或光束平差法

a. BA的代价函数

视觉SLAM中的观测方程误差:e=z-h(\xi ,p)                                   (1)

代价函数为:\frac{1}{2}\sum_{i=1}^{m} \sum _{j=1}^{n}\left \| e_{ij} \right \|^2=\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{n}\left \| z_{ij}-h(\xi _i,p_i) \right \|^2          (2)

其中\frac{1}{2}\sum_{i=1}^{m} \sum _{j=1}^{n}\left \| e_{ij} \right \|^2表示为第i个相机第j个特征点的重投影误差之和,\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{n}\left \| z_{ij}-h(\xi _i,p_i) \right \|^2中的z_{ij}表示第i个相机第j个特征点在原始图像中的实际像素位置,\xi _{i}表示第i个相机的位姿,p_{i}表示第i个特征点的世界坐标系位置。

BA的就是获取使得公式(2)右边值最小化时,\xi _{i}的取值。其中需要用到非线性最小二乘优化,即通过最小化误差的平方和寻找数据的最佳函数匹配,其中最常用的四种数值优化方法:最速下降法、牛顿法、Gauss-Newton法和Levenberg-Marquardt法。

 

b.BA的求解

假定x=[\xi _1,\cdots ,\xi_m,p_1,\cdots,p_2],则公式(2)的增量变为\frac{1}{2}\left \| f(x+\bigtriangleup x) \right \|^2\approx \frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{n}\left \|e_{ij}+F_ij\bigtriangleup \xi_i +E_{ij}\bigtriangleup p_j \right \|^2其中Fij表示整个代价函数在当前状态下对相机姿态的领导,Eij表示对路标点的偏导。此后便可用最速下降法、牛顿法、Gauss-Newton法和Levenberg-Marquardt法等求解最误差最小值时的位姿,具体解法可参考 https://blog.csdn.net/xranmail/article/details/101015295和 https://www.cnblogs.com/liuweixin/p/11901266.html

 

 

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值