返回专辑
·Johan·3 分钟阅读

回环验证:召回可激进,进图须保守

从词袋召回到 PnP/ICP 几何验证与 Chi2,分析误回环如何摧毁位姿图及 switchable constraints 防御。

回环验证:召回可激进,进图须保守

1. 一次误回环叠两层墙

回环不是「又匹配成功了一次」。它是往因子图插入长程、高信息量相对位姿约束。约束对了,全局漂移被钉死;错了,整张地图可能被掰成不可恢复的形状——对称仓库里误回环让 Nav2 地图叠两层墙,AMCL 永远收敛到错误模式。

核心原则:召回可激进,接纳进图必须保守。 误回环一次造成的位姿图扭曲,往往需要删边重优化或整图重建才能恢复——比漏检十次真回环的代价大一个数量级。对称结构场景里,召回层 top-10 候选常含多个几何相似帧,几何验证必须逐对独立做,不能「第一个过就停」。

2. 回环在估计里的角色

里程计因子链 ≈ 软弹簧,累积误差。回环因子把相距很远的两个位姿用短硬弹簧连接:

错时,优化宁可拧弯整条轨迹也要满足——长程约束杠杆极大。分开报 Recall@K(召回层)和 precision@geometry(几何验证后),不要只报一个「回环成功率」。

3. 召回层

DBoW2:描述子 → visual word → 倒排索引;快、对视角变化有一定鲁棒;感知混叠(perceptual aliasing)——相似会议室得分都高。

学习型全局描述子(NetVLAD / MixVPR):复杂外观下召回更强,「长得像 ≠ 同一地点」仍在。LiDAR:Scan Context、Iris——走廊/隧道重复结构同样混叠。

用里程计 drift covariance + 空间索引门控 impossible pairs,减少进入几何验证的候选——详见回环位姿先验专文。

4. 几何验证:唯一可信门禁

视觉候选 须通过:

  1. 特征匹配 + ratio test(Lowe 0.7–0.8)
  2. 本质矩阵 / 单应 RANSAC(视场景平面性)
  3. PnP + RANSAC →
  4. 内点率 > 30–50%,重投影 RMSE < 2–3 px
  5. Chi2 检验

激光:初始位姿粗对齐 → ICP/NDT,限制 max correspondence distance → fitness score、overlap ratio、退化方向 uncertainty。验证失败 → 丢弃,不要「差不多 optimize 看看」。

5. 优化层防御

几何通过仍可能是相似结构下的幸运内点:

  1. 鲁棒核:Cauchy / Geman-McClure on loop edges
  2. Switchable constraints:优化器可关边(
  3. 渐进接纳:先 PGO 试探,局部 consistency OK 再 Global BA
  4. Conservative information:初始 小,Chi2 收敛后收紧
  5. 时间/拓扑一致性:短 time 内矛盾回环 → suspend

ORB-SLAM3 Atlas:不确定时新建 map,确认后 merge——产品级策略。

6. 感知混叠典型场景

场景风险缓解
对称走廊激光/视觉混叠序列约束、空间 prior
重复工位/货架外观高相似更大基线、更多内点
玻璃反射视觉假特征深度/laser 交叉验证
日夜变化召回降多 session descriptor

压力测试:数据集中插入相似场景片段,故意制造混叠。实现上候选生成、几何验证、优化接纳三模块应独立可单测——阈值按 sensor noise 标定,错误回环要能复盘 frame pair、matches、、chi2,否则现场「成功回环」无法区分是算法进步还是阈值放松。

7. 验收

  • 正确回环 / 应回环机会;误回环数单列
  • 误回环后 ATE 恶化量
  • 拒绝原因分布(匹配 / ransac / chi2 / switch)
  • 候选 / 几何 / 优化接纳三模块独立可单测
  • 错误回环可复盘(frame pair、matches、、residual、chi2)
  • 回环后限制高速导航直到定位 stable

回环深度在四层:召回 → 先验门控 → 几何验证 → 优化拒绝 + 可复盘日志。缺任何一层,系统会在最像「成功」的时刻把地图写坏——我宁愿漏,也不想要一次错误约束。KPI 评审时误回环数必须和正确回环数并列,只报 recall 会鼓励团队放松几何门槛。

← 全部文章

johan's blog