1. 什么是DBoW2词袋模型?
基本概念
词袋模型(Bag of Words, BoW) 最初源于自然语言处理(NLP),用于将文本表示为单词的集合(忽略语法和顺序)。在计算机视觉中,视觉词袋模型 将图像抽象为“视觉单词”的集合,用于图像分类、检索和场景识别。
DBoW2(Database Bag of Words 2) 是视觉词袋模型的一种高效实现,专为SLAM(同步定位与建图)中的回环检测设计。
核心原理
-
特征提取:
• 对图像提取局部特征(如SIFT、ORB、BRIEF等),例如论文中使用BRIEF特征描述子。
• 每个特征点被表示为一个高维向量。 -
构建视觉词典:
• 通过聚类算法(如k-means)将大量特征向量聚类为若干“视觉单词”,形成一棵分层词汇树(Vocabulary Tree)。
• 例如,将10万个特征聚类为1000个单词,每个单词代表一类相似的特征。 -
生成词袋向量:
• 对每张图像统计其包含的视觉单词频率,生成一个稀疏向量(词袋向量)。
• 例如,图像A的词袋向量为 [单词1: 5次, 单词2: 3次, … 单词1000: 0次]。 -
快速匹配与回环检测:
• 通过比较词袋向量的相似度(如余弦相似度或L1范数),快速判断两幅图像是否来自同一场景。
• 在SLAM中,DBoW2用于识别当前场景是否曾在历史中出现(即回环),触发全局优化。
在论文中的作用
• 快速场景识别:在复杂水下环境中,DBoW2通过词袋模型快速匹配历史关键帧,减少回环检测的计算量。
• 提升鲁棒性:即使部分特征因光照或模糊失效,词袋模型仍能通过剩余特征判断场景相似性。
2. 什么是位姿(Pose)?
基本定义
位姿(Pose) 是机器人或物体在空间中的 位置(Position) 和 姿态(Orientation) 的组合,用于完整描述其三维空间状态。
• 位置:物体在参考坐标系中的坐标(如 )。
• 姿态:物体绕坐标轴的旋转角度,通常用旋转矩阵、欧拉角或四元数表示。
数学表示
-
平移向量(Position):
表示物体在参考坐标系中的位置。 -
旋转表示(Orientation):
• 旋转矩阵:3×3正交矩阵 ,满足 。
• 四元数:紧凑表示法 ,避免欧拉角的万向节锁问题。 -
完整位姿:
通常用齐次坐标矩阵表示:
在SLAM中的作用
-
定位(Localization):
• 通过传感器(如相机、IMU)估计机器人自身的位姿。
• 例如,视觉SLAM通过特征匹配计算相机的运动(即位姿变化)。 -
建图(Mapping):
• 将感知的环境特征(如点云、路标)与位姿关联,构建全局一致的地图。 -
位姿图优化(Pose Graph Optimization):
• 在SLAM后端,通过图优化算法(如g2o、GTSAM)联合优化所有历史位姿和约束(如IMU、回环),减少累积误差。
• 论文中提到的 4自由度位姿图优化 即固定横滚(Roll)和俯仰(Pitch),仅优化X、Y、Z和偏航角(Yaw)。
3. DBoW2与位姿的关系
• 回环检测触发位姿优化:
DBoW2通过词袋模型识别回环后,会将当前位姿与历史位姿建立约束,触发位姿图优化,修正累积误差。
• 提升全局一致性:
位姿优化依赖回环检测提供的强约束,确保地图和轨迹的全局准确性。
总结
• DBoW2词袋模型 是高效场景识别工具,通过视觉单词匹配实现快速回环检测。
• 位姿 是SLAM的核心输出,表示机器人的空间状态,其优化依赖多传感器融合和回环约束。
• 两者协同:DBoW2提供回环信息,位姿优化利用此信息提升定位精度,形成闭环的SLAM系统。