视觉SLAM—BA模型的理解

本文深入探讨了视觉SLAM中的BA(Bundle Adjustment)优化方法,解析其在图像重建中的核心作用,包括代价函数定义、求解过程及非线性最小二乘优化应用。

参考高翔《视觉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.youkuaiyun.com/xranmail/article/details/101015295和 https://www.cnblogs.com/liuweixin/p/11901266.html

 

 

<think>好的,我现在需要帮助用户理解视觉SLAM的数学模型,包括坐标系变换、特征点匹配和优化方法。首先,我得回忆一下用户提供的引用内容,看看哪些信息可以直接应用。 用户提到的引用[1]讲到相机成像模型和几何约束求解位姿变换,然后还原三维坐标。这应该涉及到坐标系变换,比如世界坐标系到相机坐标系的转换。引用[4]提到齐次坐标和矩阵运算,这可能和坐标系变换中的旋转矩阵和平移向量有关。 接下来是特征点匹配,用户的问题里需要这部分内容。引用[1]和[2]提到了特征点法和重投影误差,可能这里需要解释如何通过特征点匹配来建立几何约束,比如对极几何或者PnP问题。引用[3]提到了直接线性变换、P3P和非线性优化,这些方法可能用于求解位姿。 优化方法方面,引用[2]详细讨论了光束法平差(BA),使用非线性优化同时优化位姿和空间点,最小化重投影误差。引用[3]也提到了非线性优化的方法,这可能涉及到高斯-牛顿法或Levenberg-Marquardt算法。 现在需要将这三个部分组织起来:坐标系变换、特征点匹配、优化方法。每个部分都需要简明扼要地解释,并引用相关的内容。例如,坐标系变换部分需要解释旋转矩阵和平移向量,齐次坐标的转换,可能还要提到刚体变换的公式。特征点匹配需要描述特征提取和匹配的过程,以及如何用这些匹配点构建几何约束,比如对极约束中的基础矩阵或本质矩阵。优化方法部分要解释BA的原理,以及如何构建最小二乘问题,使用梯度下降或迭代方法求解。 需要注意用户提到的LaTeX格式要求,所有数学公式要用$...$或$$...$$。比如旋转矩阵的表示、重投影误差的公式等。同时,生成相关的问题,可能需要问及BA的具体实现、特征点匹配的算法比较,或不同坐标系变换的应用场景。 还需要检查是否每个引用都正确地标注在对应的内容后面,比如提到BA时引用[2],提到P3P时引用[3]等。确保回答结构清晰,分点阐述,每个部分都有小标题,并且符合用户的要求。 最后,生成相关问题时要围绕这三个主题,可能涉及深入的技术细节或比较不同方法的优缺点,比如BA的优缺点,特征点匹配中的误匹配处理等。</think>### 视觉SLAM数学模型详解 --- #### 一、坐标系变换 视觉SLAM的核心是通过传感器数据建立环境与相机的几何关系,涉及以下坐标系变换: 1. **世界坐标系 → 相机坐标系** 使用刚体变换描述,包含旋转矩阵 $R \in SO(3)$ 和平移向量 $t \in \mathbb{R}^3$: $$ P_c = R \cdot P_w + t $$ 其中 $P_w$ 是世界坐标系下的三维点,$P_c$ 是相机坐标系下的坐标[^4]。 2. **相机坐标系 → 图像坐标系** 通过针孔模型投影: $$ \begin{pmatrix} u \\ v \\ 1 \end{pmatrix} = \frac{1}{Z_c} \begin{pmatrix} f_x & 0 & c_x \\ 0 & f_y & c_y \\ 0 & 0 & 1 \end{pmatrix} \begin{pmatrix} X_c \\ Y_c \\ Z_c \end{pmatrix} $$ 这里 $f_x, f_y$ 为焦距,$(c_x, c_y)$ 是光心坐标,$Z_c$ 为深度值[^1]。 --- #### 二、特征点匹配 特征点是视觉SLAM中建立几何约束的基础: 1. **特征提取** 使用SIFT、ORB等算法检测关键点并生成描述子,例如ORB的二进制描述子可快速匹配。 2. **匹配构建几何约束** - **对极几何**:通过两帧图像中匹配点计算基础矩阵 $F$,满足 $x_2^T F x_1 = 0$,推导相机运动[^1]。 - **PnP问题**:已知3D点与其2D投影,求解 $R, t$,常用方法包括直接线性变换(DLT)和EPnP[^3]。 --- #### 三、优化方法 视觉SLAM通过优化方法迭代修正估计值: 1. **光束法平差(Bundle Adjustment)** 将相机位姿 $\boldsymbol{T}$ 和空间点 $\boldsymbol{P}$ 同时作为优化变量,最小化重投影误差: $$ \min_{\boldsymbol{T}, \boldsymbol{P}} \sum_{i,j} \left\| \pi(\boldsymbol{T}_i \cdot \boldsymbol{P}_j) - \boldsymbol{z}_{ij} \right\|^2 $$ 其中 $\pi(\cdot)$ 为投影函数,$\boldsymbol{z}_{ij}$ 是观测像素坐标。采用Levenberg-Marquardt算法求解[^2]。 2. **局部优化与全局优化** - 局部BA:优化局部关键帧和地图点,保证实时性。 - 全局BA:在回环检测后优化整个轨迹,消除累积误差[^2]。 ---
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值