视觉里程计能给出一个短时间内的轨迹和地图,但不可避免的误差累积,这个地图在长时间内是不准确的。要想构建一个尺度,规模更大的优化问题,以考虑长时间内的最优轨迹和地图,这时后端优化就出现了。
一、核心任务与问题本质
核心任务:
- 误差抑制:修正前端(VO/LIO)随时间累积的位姿漂移。
- 全局一致性:联合优化所有历史位姿与地图路标,使整体误差最小。
- 回环闭合:检测到 "回到过往位置" 时,加入强约束,一次性修正长期漂移。
数学本质:非线性最小二乘(状态估计)
- 状态:机器人位姿 x i、地图路标 p j
- 约束:运动约束(相邻位姿)、观测约束(位姿↔路标)、回环约束
- 目标:最小化所有约束的残差平方和 min∑∥e∥ 2
二、两大技术路线:滤波 vs 图优化
2.1. 滤波后端(早期主流,轻量场景)
核心假设 :马尔可夫性(当前状态仅依赖前一时刻)。
代表算法:
- EKF-SLAM:扩展卡尔曼滤波,维护状态均值与协方差;计算量 O(n2),仅适用于小场景。
- UKF / 粒子滤波 PF:处理强非线性 / 非高斯;PF 常见于 2D 激光(如 GMapping)。
优缺点:✅ 计算快、内存小、适合低算力(扫地机)❌ 长期漂移、无法全局修正、精度低
2.2 图优化后端(当前主流,高精度场景)
核心思想 :把 SLAM 建模为因子图(Graph):
节点(Vertex):机器人位姿 x1,x2,...xn、地图点 p1,p2,...pm
边(Edge/Factor):约束(运动、观测、回环),带残差与信息矩阵
优化目标:迭代调整节点,使所有边残差最小。
主流求解器:
- g2o:通用图优化库,视觉 / 激光 SLAM 最常用。
- Ceres Solver:Google 开发,易用、鲁棒性强。
- GTSAM:因子图专用,支持 IMU / 相机 / 激光融合。
优化算法 :高斯 - 牛顿(G-N)、列文伯格 - 马夸尔特(L-M)(鲁棒性更好)。
优缺点:✅ 全局最优、精度高、可融合多传感器、支持回环❌ 计算量大、需关键帧 / 位姿图稀疏化。
三、关键模块:位姿图、BA、回环与融合
3.1. 光束平差法(Bundle Adjustment, BA)
视觉 SLAM 核心:联合优化所有相机位姿与 3D 路标,最小化重投影误差。
稀疏化:仅优化关键帧与关键路标,控制计算量(如 ORB-SLAM3)。
3.2. 位姿图优化(Pose Graph Optimization)
激光 / 视觉通用:只优化位姿,不优化路标;节点为位姿,边为相对位姿约束(ICP / 匹配)。
适用场景:激光 SLAM(如 Cartographer)、纯定位、大规模建图。
3.3. 回环检测与闭合
作用 :识别当前帧与历史帧同场景,添加回环约束边,后端一次性修正全局漂移。
主流方法 :
词袋模型(BoW/DBoW3):视觉常用,图像→特征向量→相似度检索。
几何验证:RANSAC 验证候选回环的几何一致性,剔除误检。
深度学习:NetVLAD、语义匹配,提升动态 / 视角变化鲁棒性。
3.4. 多传感器融合后端
IMU + 视觉(VIO):紧耦合因子图(如 OKVIS、VINS-Mono),IMU 预积分提供高频运动约束。
激光 + IMU(LIO):激光里程计 + IMU 预积分,后端图优化(如 LIO-SAM)。
激光 + 视觉 + IMU:多因子联合优化,提升鲁棒性与精度。
四、主流开源框架对比

五、技术演进与趋势
从滤波到图优化:精度优先,工业界全面转向图优化 / 因子图。
稀疏化与实时性:关键帧筛选、位姿图稀疏化、增量优化(iSAM2),提升大规模场景实时性。
多传感器紧耦合:IMU 预积分、激光 / 视觉 / 雷达融合,适配复杂动态环境。
深度学习赋能:回环检测、特征提取、异常检测,提升鲁棒性与自动化程度。
六、总结
后端本质 :全局非线性优化,核心是图优化 / 因子图,目标是消除累积漂移、输出全局一致轨迹与地图。
选型建议 :
低算力 / 小场景:粒子滤波(GMapping)
视觉高精度:BA + 图优化(ORB-SLAM3)
激光建图:位姿图优化(Cartographer)
动态 / 复杂环境:多传感器融合因子图(LIO-SAM/VINS)