第4章 视觉SLAM核心算法:特征点法/直接法/光流法原理对比
本章聚焦面试高频题:三种主流视觉里程计方法的原理、优缺点、适用场景及扩展知识点(ORB描述子、极线约束)。掌握结构化的对比框架,是面试得分的关键。
答题建议:面试中遇到方法对比题,先分类(基于特征 vs 基于像素),再分别说明原理,然后对比优缺点,最后给出场景选择建议。这种结构化思路可自然覆盖 ORB 描述子、极线约束等扩展知识。
知识结构:特征点法 / 直接法 / 光流法 核心对比
| 维度 | 特征点法 | 直接法 | 光流法 |
| 基本原理 | 提取关键点与描述子,通过匹配计算位姿 | 直接利用像素亮度误差最小化求位姿 | 基于亮度恒定假设,跟踪像素运动,常与直接法结合 |
| 优点 | 鲁棒性好,光照变化下稳定;可重定位 | 利用所有像素信息,精度高,速度快(稀疏/半稠密) | 无需提取特征,计算快,适合短时跟踪 |
| 缺点 | 耗时在特征提取与匹配;纹理弱时失效 | 对光照敏感;初始位姿要求高;易陷入局部极小 | 易漂移,无法回环;对快速运动不鲁棒 |
| 关键依赖 | ORB描述子、对极几何约束 | 光度一致性、图像梯度 | 亮度梯度、泰勒展开 |
| 典型场景 | ORB-SLAM、VINS-Mono(特征+光流) | LSD-SLAM、DSO | VINS前端、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的使用条件(去畸变、内参)。 |