计算机视觉与深度学习 | 深入浅出视觉SLAM回环检测(原理、公式与MATLAB代码)
文章目录
- 一、什么是回环检测?为什么需要它?
- 二、视觉回环检测的核心原理:词袋模型(Bag-of-Words, BoW)
- 2.1 整体流程
- 2.2 特征提取
- 2.3 视觉词典生成 —— K均值聚类
- 2.4 图像转词袋向量
- 2.5 TF‑IDF 加权(词频-逆文档频率)
- 2.6 相似度计算与回环候选
- 2.7 几何验证(必不可少的最后一步)
- 三、核心公式汇总
- 四、简易MATLAB代码实现
- 五、总结与展望
一、什么是回环检测?为什么需要它?
在视觉SLAM(同时定位与建图)中,相机不断移动,前端通过特征匹配估算帧间运动,后端优化整个轨迹和地图。然而,每次帧间匹配都会引入微小误差,随着时间累积,轨迹会严重漂移。 回环检测 的目的就是判断“相机是否回到了之前到过的地方”。一旦检测到回环,就把这个几何约束交给后端优化,从而消除累积误差,得到全局一致的轨迹和地图。
通俗比喻:你蒙着眼睛在房间里走动,每走一步都会凭感觉估算步长,几十步后你可能完全不知道自己实际在哪。如果你突然摸到一张熟悉的桌子,你立刻知道“我回到书房了!”。这个“摸到熟悉物体”的过程,就是回环检测。
二、视觉回环检测的核心原理:词袋模型(Bag-of-Words, BoW)
现阶段最经典、最实用的方案是基于 外观 的回环检测,它的核心是 视觉词袋模型。
2.1 整体流程
- 特征提取:从每张图像中提取局部特征点(如ORB)及其描述子。
- 构建词典:离线或在线对大量描述子进行聚类,每个聚类中心称为一个“视觉单词”,所有单词构成“视觉词典”。
- 图像向量化:对于新图像,将其每个描述子分配给最近的单词,统计每个单词出现的频率,得到“词袋向量”。
- 相似度计算:用TF‑IDF等加权方法比较当前帧的词袋向量和历史帧,找到相似度最高的候选。
- 几何验证:对候选帧进行特征匹配和几何校验(对极几何/PnP),剔除误匹配,确认真正的回环。
