第四章 SLAM前端算法面试题:特征点提取匹配、光流法、直接法、ORB-SLAM架构

核心技术核心原理SLAM中应用面试高频切入点
特征点法ORB: FAST角点 + rBRIEF描述子前端稀疏特征匹配、PnP求解尺度/旋转不变性实现、汉明距离匹配
光流法LK光流: 亮度恒定+小运动+空间一致特征点跟踪(替代描述子计算)金字塔策略、可靠性判断
直接法最小化光度误差,无需特征提取半稠密/稠密重建,DVO亮度一致性、对运动初值敏感
ORB-SLAM架构三线程: 跟踪、局部建图、回环检测基于ORB特征,词袋模型加速关键帧筛选、局部/全局BA区别
ORB特征点提取匹配 - 面试回答框架 图像金字塔 尺度不变性 FAST角点 + 灰度质心方向 rBRIEF 旋转补偿描述子 汉明距离 快速近邻匹配 比例筛选 最近/次近比

🎯 问题一:请说明ORB特征点提取的关键步骤,以及如何进行特征匹配?

面试官考察点对ORB算法细节的掌握(尺度/旋转不变性、描述子设计)、匹配策略的工程理解
回答框架① 构建图像金字塔实现尺度不变性 → ② 每层提取FAST角点并用灰度质心法计算方向 → ③ 基于方向生成旋转补偿的BRIEF描述子(rBRIEF) → ④ 使用汉明距离进行暴力匹配 → ⑤ 通过最近邻与次近邻距离比(<0.75)筛选误匹配
简短示例回答ORB=改进FAST角点+旋转BRIEF。先建金字塔,每层用oFAST检测角点并算方向,再提取rBRIEF描述子。匹配时计算汉明距离,取最近邻与次近邻比值小于0.75为正确匹配,速度快且具有旋转/尺度不变性。
可能追问如何确定FAST阈值?方向计算为什么用灰度质心?ORB-SLAM为什么选ORB而非SIFT?
🚫 避坑提醒不要只说“用ORB匹配”,需具体到金字塔层数、方向计算方法、描述子旋转步骤;避免混淆FAST与Harris等检测子。

🎯 问题二:请解释LK光流法的假设条件,以及在SLAM中的典型应用。

面试官考察点光流基本假设理解、求解方法、金字塔的作用、与特征点法的对比认知
回答框架① 三大假设:亮度恒定、小运动(<1像素)、空间一致性(邻域运动相同) → ② 由泰勒展开得光流约束方程 → ③ 对窗口内像素构建最小二乘求解 → ④ 实际使用图像金字塔解决大位移 → ⑤ SLAM中常用于跟踪已提取的特征点,避免描述子计算,提升速度
简短示例回答LK光流假设亮度不变、小运动和空间一致。通过局部窗口像素构建超定方程,最小二乘得运动向量。金字塔从粗到细迭代可处理大位移。在ORB-SLAM中可用光流替代描述子匹配进行跟踪,效率高但对光照和纹理敏感。
可能追问如何判断光流跟踪是否可靠?若亮度不恒定怎么办?与直接法有什么异同?
🚫 避坑提醒不要只背诵假设,要会推导光流方程;强调金字塔的必要性;注意区分光流法(跟踪特征点)和直接法(优化光度误差)。

🎯 问题三:请描述ORB-SLAM系统的整体架构,并说明前端选择特征点法的原因。

面试官考察点整体系统认知、三线程分工、特征点法与直接法的比较优势、工程细节(关键帧、BA)
回答框架① 三线程:跟踪线程(提取ORB、匹配、PnP定位) → 局部建图(局部BA) → 回环检测(词袋+Sim3) → ② 前端特征点法:提取ORB特征,用词袋加速匹配,支持重定位 → ③ 相比直接法:更鲁棒,适应大位姿变化,但计算描述子有开销 → ④ 关键帧筛选策略:内点数、跟踪质量等
简短示例回答ORB-SLAM三线程工作:跟踪线程提取ORB特征,通过恒速/参考帧/重定位三种模式匹配,PnP+BA优化位姿并筛选关键帧;局部建图执行局部BA;回环检测用DBoW2词袋。前端选择特征点法是因为它在纹理丰富场景稳定、支持大范围重定位,比直接法更适合大规模地图。
可能追问局部BA和全局BA的区别?如何保证无纹理环境鲁棒?词袋如何训练?
🚫 避坑提醒避免只背线程名称,需说出跟踪线程的三种模式;说明特征点法重定位优势;提及关键帧筛选条件体现工程细节。
💡 章节小结: SLAM前端算法面试重点集中在特征点法(ORB)、光流法(LK)、直接法的对比,以及ORB-SLAM系统架构。备考时需掌握各算法的核心假设、计算流程、工程优化(金字塔、描述子旋转补偿),并能结合实际场景(重定位、大位移)分析优劣。对于实习生,面试官更关注你对基础原理的清晰表达和对比分析能力。