视觉位姿图:边从哪来
Pose graph 边来自 VO match + 几何验证;信息矩阵/协方差瞎填会让 g2o/Ceres 把地图拧成 confident wrong shape。

1. 边不是越多越好
视觉惯性里程计与视觉里程计和后端的边界常画在位姿图上。弱匹配边配上错误信息矩阵,比没有边更糟——地图拧成自信的错误形状,比漂移更难调试。前端给后端的不只是位姿,还有 边的质量与权重;后者常被忽略。
2. 节点与边从哪来
节点:关键帧位姿 。连续视觉里程计边:匹配 → 本质矩阵 → 恢复位姿 → 相对变换 。回环边:词袋候选 → 匹配 → 位姿估计或相似变换几何验证。惯性单元(视觉惯性):预积分边(另一套协方差)。
OpenCV 侧典型流程:
E, mask = cv2.findEssentialMat(pts1, pts2, K, method=cv2.RANSAC, prob=0.999, threshold=1.0)
_, R, t, mask_pose = cv2.recoverPose(E, pts1, pts2, K, mask=mask)检索、验证、加边三步缺一不可。词袋候选直接加边是地图拧曲的常见路径。连续边来自相邻关键帧,视差通常足够;回环边假阳性率高,必须几何验证——本质矩阵内点、三角化正深度、中位视差角度缺一不可。
3. 信息矩阵别填单位阵
误用单位阵等于说所有边同等可靠。实践:按内点数、平均视差、匹配分布设信息矩阵 。因子图优化库设置信息矩阵;非线性最小二乘用平方根信息。
粗规则:内点少或视差小 → 更大不确定度(更小信息)。回环候选要求内点超阈值且三角化正深度比例超九成才加边。单目尺度漂移时回环用相似变换,尺度错会压扁地图。
4. 优化与鲁棒核
g2o 图可视化能直观看到哪条回环边在拉地图——比只看优化后轨迹误差更有诊断价值。Huber 核的 delta 对连续边和回环边应区别对待,别一套参数走天下。
5. 失败模式
| 现象 | 原因 |
|---|---|
| 地图拧 | 错误回环加高信息 |
| 漂移 | 边太少或视觉里程计断 |
| 抖动 | 过拟设噪声边 |
6. 连续边与回环边的区别
连续视觉里程计边来自相邻关键帧匹配,视差通常足够,信息矩阵可按内点数和平均视差设。回环边来自词袋检索候选,假阳性率远高于连续边,必须几何验证后才能加入:本质矩阵内点、三角化正深度比例、中位视差角度。单目尺度漂移时回环用相似变换边,尺度估错会把地图 Z 向压扁。惯性预积分边有独立协方差,与视觉边信息矩阵不可混填。
7. 案例:假回环压扁地图
单目视觉里程计在相似走廊误检回环,词袋分数高但几何验证偷懒,信息矩阵填单位阵。优化后地图 Z 向被压扁两米,定位在闭环处跳变。补几何验证(本质矩阵内点大于三十、中位视差大于三度)并降权可疑回环后恢复。
8. 验收
优化前后卡方;回环边内点重投影;人工检查闭环处地图。协方差是否与实际视觉里程计噪声量级一致(可仿真)。
位姿图是 稀疏约束集合。边的质量和权重定义了优化能不能信——信息矩阵是契约,不是填单位阵的占位符。优化前后对比最大边残差,比只看最终轨迹误差更能定位问题边。
相关
也可以看看
- ·3 分钟阅读
重投影误差:单位是像素
BA 最小化加权像素 reproj;Huber/Cauchy 核和外点权重要配合,RMS 小不代表 3D 结构对——错配点也能低 cost。
- ·17 分钟阅读
立体块匹配的散斑滤波:连通域阈值如何误删细杆
从 SGBM/BM 代价聚合后的散斑统计出发,说明连通域面积阈值与视差连续性如何误伤细结构;对比 speckleFilter、左右一致性与置信度掩膜,用已知细杆场景的召回与空洞率验收。
- ·15 分钟阅读
多视图三角化的角度条件:基线够长仍可能数值病态
从射线夹角、深度参数化与协方差传播解释退化配置,比较线性三角化与非线性精炼;用已知尺度场景的重投影与深度误差切片验收。
johan's blog