第4章 视觉SLAM核心算法:特征点法/直接法/光流法原理对比

本章聚焦面试高频题:三种主流视觉里程计方法的原理、优缺点、适用场景及扩展知识点(ORB描述子、极线约束)。掌握结构化的对比框架,是面试得分的关键。

三大方法归类 各自核心原理 优缺点对比 适用场景选择 总结与推荐
答题建议:面试中遇到方法对比题,先分类(基于特征 vs 基于像素),再分别说明原理,然后对比优缺点,最后给出场景选择建议。这种结构化思路可自然覆盖 ORB 描述子、极线约束等扩展知识。

知识结构:特征点法 / 直接法 / 光流法 核心对比

维度特征点法直接法光流法
基本原理提取关键点与描述子,通过匹配计算位姿直接利用像素亮度误差最小化求位姿基于亮度恒定假设,跟踪像素运动,常与直接法结合
优点鲁棒性好,光照变化下稳定;可重定位利用所有像素信息,精度高,速度快(稀疏/半稠密)无需提取特征,计算快,适合短时跟踪
缺点耗时在特征提取与匹配;纹理弱时失效对光照敏感;初始位姿要求高;易陷入局部极小易漂移,无法回环;对快速运动不鲁棒
关键依赖ORB描述子、对极几何约束光度一致性、图像梯度亮度梯度、泰勒展开
典型场景ORB-SLAM、VINS-Mono(特征+光流)LSD-SLAM、DSOVINS前端、LK金字塔光流

面试问答卡片 1

面试问题请对比特征点法、直接法、光流法在视觉SLAM中的原理与优缺点。
面试官考察点是否理解三种方法的本质差异(数据关联方式)、优缺点权衡、以及各自适用场景。
回答框架① 先分类:特征点法基于特征匹配;直接法基于像素光度;光流法基于梯度跟踪。② 简述原理。③ 对比优缺点。④ 结合场景推荐(如纹理丰富用特征点法;纹理少且亮度稳定用直接法)。
简短示例回答特征点法通过提取ORB特征并匹配,利用对极几何求解位姿,鲁棒性强但耗时;直接法最小化光度误差,速度快但易受光照影响;光流法如LK跟踪特征点,可看作介于两者之间。实际中VINS-Mono前端用光流跟踪,后端优化特征点。
可能追问① 光流法和直接法的本质区别?② 如何解决直接法对光照敏感的问题?③ 稀疏直接法和稠密直接法的区别?
避坑提醒❌ 切勿说“光流法是完全不同于特征点法的方法”,光流常作为特征点法的跟踪模块;❌ 别忽略亮度恒定假设的前提条件。

面试问答卡片 2

面试问题请解释ORB描述子的原理,以及为什么在SLAM中常用ORB而非SIFT/SURF?
面试官考察点对特征提取计算效率与性能平衡的理解;ORB的旋转不变性、尺度不变性如何实现;实际工程选型考量。
回答框架① ORB = FAST角点 + Brief描述子(改进版)。② 方向性:通过灰度质心法赋予主方向。③ 尺度性:构建图像金字塔。④ 对比SIFT/SURF:计算速度快,适合实时SLAM,性能足够。
简短示例回答ORB使用FAST检测特征点,通过灰度质心法计算方向;使用rBRIEF描述子(旋转后的BRIEF),具有旋转不变性;通过金字塔实现尺度不变。相比SIFT/SURF,ORB提取速度快近一个数量级,且内存占用小,非常适合ORB-SLAM的实时要求。
可能追问① ORB的旋转不变性具体如何计算?② 为什么rBRIEF比原始BRIEF好?③ 特征点均匀化策略有哪些?
避坑提醒❌ 不要只背概念,要能说出“灰度质心法”和“金字塔”两个关键点;❌ 别忽略ORB的尺度不变性是通过图像金字塔实现的,非多尺度检测。

面试问答卡片 3

面试问题极线约束在视觉SLAM中有什么作用?请简述其数学表达和应用场景。
面试官考察点是否理解对极几何核心概念,能否将基础矩阵、本质矩阵、极线方程与SLAM实际问题(如匹配验证、三角化)联系起来。
回答框架① 定义:空间中一点在两张图像上的投影满足极线约束。② 数学:x₂ᵀ F x₁ = 0(基础矩阵)或 x₂ᵀ E x₁ = 0(本质矩阵)。③ 应用:剔除错误匹配、加速搜索、三角化初始化。
简短示例回答极线约束描述两帧间匹配点的几何关系:一对匹配点必在对方的极线上。SLAM中常用它通过基础矩阵筛选误匹配(RANSAC),同时在特征匹配时仅在极线邻域搜索,提高效率。ORB-SLAM初始化时用本质矩阵恢复位姿。
可能追问① 基础矩阵和本质矩阵的区别(内参已知/未知)?② 如何通过极线约束计算位姿?③ 纯旋转时极线约束为何退化?
避坑提醒❌ 不要将极线约束和三角化混淆,极线约束只给出对应关系,不直接得到深度;❌ 注意区分F和E的使用条件(去畸变、内参)。