第4章 多视图几何与相机模型:对极几何、三角化、相机标定
多视图几何是SLAM前端初始化的核心数学工具——对极几何用于恢复帧间运动,三角化用于恢复特征点深度,相机标定则提供投影所需的精确内参。面试中这一章常考察数学原理与工程落地的结合,重点在于理解退化场景处理(纯旋转、平面场景)和鲁棒估计(RANSAC、五点法)。
面试问答卡片
📌 面试问题 1
问题:请解释对极几何中本质矩阵与基础矩阵的区别,并说明如何估计本质矩阵?
面试官考察点:①是否理解归一化坐标与像素坐标的关系;②是否掌握八点法与五点法的适用场景;③是否了解RANSAC在鲁棒估计中的必要性。
回答框架:先定义矩阵含义(本质矩阵E用于归一化坐标,基础矩阵F用于像素坐标)→ 简述关系 E = K^T F K → 估计步骤:特征匹配 → 五点法(已知内参)或八点法(未知内参)→ 强制奇异值约束 → SVD分解获得R,t候选 → 三角化验证选择正解。
简短示例回答:本质矩阵E描述归一化坐标下的对极约束,rank=2且奇异值相等。我通常使用五点法+RANSAC:先ORB匹配,再随机采样5点求解E多项式,内点最多的一组奇异值分解得到R,t,最后三角化剔除退化情况。
可能追问:①纯旋转时对极几何失效,如何检测?②平面场景为什么改用单应矩阵?③五点法相比于八点法的优势体现在哪里?
避坑提醒:不要直接回答“八点法”而对退化场景没有判断;面试官很看重你对平面场景/纯旋转的警觉性。
📌 面试问题 2
问题:如何进行三角化?如何判断一个三角化得到的3D点是否可靠?
面试官考察点:①是否掌握线性三角化(DLT)与非线性优化的区别;②能否从几何角度分析深度不确定性(视差角);③是否了解多帧融合中如何剔除异常点。
回答框架:定义问题(已知两个相机位姿和匹配点,求3D坐标)→ 解法:齐次坐标下的线性最小二乘(DLT),或构建重投影误差优化 → 可靠性判断:视差角(角度>2°)、重投影误差阈值、Z值是否在相机前方且合理范围内。
简短示例回答:我使用DLT求解,然后检查重投影误差<1像素且视差角>3°,同时排除Z值为负或巨大值(>100m)。多帧时通过滑动窗口BA再次优化并剔除outlier。
可能追问:①视差角太小会导致什么后果?②如何用奇异值判断解的质量?③当三角化点位于无穷远时怎么处理?
避坑提醒:避免回答“直接DLT就算出来了”而不提异常值剔除;面试官希望看到你对病态条件(接近零视差)有处理方案。
📌 面试问题 3
问题:简述张正友相机标定法的主要步骤,你如何看待棋盘格角点精度对标定结果的影响?
面试官考察点:①是否理解单应矩阵与内参约束之间的关系;②是否了解亚像素角点检测方法;③是否关注过标定误差的传播。
回答框架:步骤:打印棋盘格并测量方格尺寸 → 多角度采集图像(≥10张)→ 亚像素角点检测 → 通过单应矩阵计算内参初值 → 考虑畸变,用LM优化全部参数 → 角点精度直接影响单应矩阵精度,从而影响内参准确性;建议使用亚像素提取+边缘梯度增强。
简短示例回答:我用OpenCV calibrateCamera()实现,关键步骤:先对每张图检测棋盘角点至亚像素精度,然后基于封闭解求内参和畸变初值,最后用重投影误差最小化优化全部参数。角点精度高可以降低内参偏差约5%~15%。
可能追问:①畸变参数如果估计不准,会对SLAM产生什么影响?②标定板不共面会怎样?③为什么要求标定图像覆盖图像边缘?
避坑提醒:不要只背诵流程而忽略了畸变模型和优化过程;另外要强调图像数量、位姿变化范围对标定稳定性的影响。
项目案例:室内自主导航机器人 SLAM 初始化模块
| 项目名称 | 室内物流机器人视觉SLAM初始化与建图模块 |
| 业务背景 | 在5000m²仓库中,机器人需在无GPS环境下自主建图导航,初始化阶段依赖多视图几何恢复运动与稀疏地图。 |
| 规模指标 | 单目相机(720P/30fps);特征点数量每帧200~500;运行在Jetson TX2上;初始化成功率>95%,初始化时间<3秒。 |
| 技术栈 | ORB-SLAM2框架(修改初始化模块)、OpenCV、Eigen、G2O、D435i(用于验证真值) |
| 核心难点 | ①仓库环境纹理弱,特征匹配不稳定;②机器人启动时运动平缓,视差小导致三角化深度噪声大;③地面纯旋转(转弯)容易使对极几何退化。 |
| 面试高频追问 | ①如何处理弱纹理场景下的初始化?②运动太慢导致视差不足时,你们做了什么策略?③怎么判断初始化成功?失败后如何重试? |
| 可迁移回答话术 | “对于弱纹理环境,我采用自适应特征阈值+图像金字塔增强匹配;当视差≤1°时,等待机器人继续运动或主动提示用户走一段直线增加位移;初始化成功标准是:三角化得到≥30个高质量3D点且平均重投影误差<0.5像素。”同时可提“使用单应矩阵与本质矩阵同时估计,根据得分选择模型以应对平面场景。”该话术直接体现鲁棒工程思维。 |
💡 本章小结
- 背熟五点法和八点法的数学原理及退化条件。
- 三角化一定要提视差角阈值和异常值剔除。
- 相机标定强调亚像素角点和畸变联合优化。
- 项目回答聚焦初始化成功率和工程优化细节。