基本概念

图优化(Graph Optimization)是 SLAM 后端中的核心技术,将位姿估计问题建模为一个图结构上的非线性最小二乘问题。图中的节点代表待估计的变量(如相机位姿、地图点位置、IMU 偏置等),代表传感器提供的约束关系(如视觉观测、里程计测量、回环检测 约束等),每条边携带一个残差函数和对应的信息矩阵。

优化目标是调整所有节点变量,使得所有边上的加权残差平方和最小化:

其中 是第 条边的残差, 是信息矩阵(测量协方差的逆), 是鲁棒核函数(如 Huber 核),用于抑制外点的影响。

与滤波方法的对比

特性图优化滤波(如 EKF)
优化范围全部或部分历史状态仅当前状态
一致性可通过重新线性化改善线性化点固定,可能不一致
计算模式批处理或增量式递推式
内存需存储图结构仅维护当前状态和协方差
精度通常更高受限于首次线性化

常用求解库

现代 SLAM 系统常用以下图优化库来构建和求解因子图:

  • g2o:ORB-SLAM 系列使用的通用图优化框架,支持自定义节点和边类型
  • Ceres Solver:Google 开发的非线性最小二乘求解器,自动微分功能强大
  • GTSAM:基于因子图的概率推理库,提供增量式求解(iSAM2),适合在线 SLAM
  • Sophus:提供 李群 SE(3)/SO(3) 的操作,常配合上述库进行位姿参数化

在 SLAM 中的应用

图优化在 SLAM 系统中有两种主要形态:

  • Bundle Adjustment:同时优化位姿和地图点,残差为 重投影误差,提供最精确的结果但计算开销较大
  • 位姿图优化(Pose Graph Optimization):仅优化位姿节点,边为位姿间的相对变换约束。通常在 回环检测 成功后执行,用于快速消除累积漂移

参考: