Bundle Adjustment(束调整,简称 BA)是视觉 SLAM 与 SfM 中的核心步骤:在给定多帧图像的特征匹配与(可选)其他传感器观测下,联合优化“相机位姿”和“3D 点位置”,使所有点在各相机中的重投影误差总和最小。
要点
- 目标
- 最小化重投影误差:观测像素 − 由当前位姿与 3D 点投影得到的预测像素。
- 可加入鲁棒核抑制外点,并按测量噪声加权。
- 优化变量
- 相机位姿(SE3/含内参若自标定)
- 地图点(3D 坐标)
- 视觉惯性场景下还可包含速度、IMU 偏置、重力(称“视觉惯性束调”)。
- 形式
- 非线性最小二乘,在李群流形上迭代(Gauss-Newton/LM)。
- 大规模稀疏问题,利用 Schur 补先消去点,只在位姿上求解主方程,提高效率。
- 在 SLAM 中的用法
- 局部 BA:只优化当前关键帧及其邻域(实时保持质量)。
- 全局 BA:回环后或离线对全图精修(最准确,但耗时)。
- 与“位姿图优化”的区别
- 位姿图只优化位姿,边是位姿间相对约束(快);BA 同时优化位姿与点(更准)。
- 何时有效/易失败
- 有足够视差与良好初值时效果最佳;纯旋转、弱纹理、匹配外点多、滚动快门强畸变会导致退化或收敛差。
- 输出
- 更一致的相机轨迹与稀疏 3D 点云,显著降低漂移与重投影误差。
一句话比喻
- 把“相机位姿”和“空间点”当钉子,把“像素观测”当橡皮筋;BA 是在同时调整所有钉子的位置,让所有橡皮筋都尽量不被拉伸。