Maplab系列:共视关系筛选全局匹配

本文探讨了在视觉里程计中如何通过优化匹配过程减少误匹配,采用匹配数量分布和共视关系分析来提高闭环检测的准确性。通过特定算法筛选有效匹配,确保地图更新的可靠性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在通过描述符匹配得到的原始匹配中有大量的误匹配,结果是当前帧几乎和地图里面所有的帧都有匹配。后面通过匹配数量在地图中每帧的分布来筛除一部分错误匹配。这部分工作主要在下面函数中完成。

MatchingBasedLoopDetector::doCovisibilityFiltering

函数的一个重要入参是 loop_closure::IdToMatches<IdType>& id_to_matches_map

这个参数中已经按照所有match所属的地图中的哪一帧进行了group

 

computeRelevantIdsForFiltering(id_to_matches_map, &id_to_score_map);

这个函数对id_to_matches_map进行排序,根据每一帧有的match数,只排列前n个,n是配置参数。然后把这头n个match放入到id_to_score_map输出。

 

对于exploration_queue的循环,只要exploration_queue不为空,component_id就不会增加。也就是exploration_queue里面所有的match都归为一个component

 

最后一部能这么做有几个条件:

  • 一个正确match对应的landmark所对应的其他帧应该也是很有可能被match上的。
  • 如果在另外的帧上,对应的kp没有被match上。说明这个很有可能是错误匹配。

最后的筛选流程大概是:

  • 只要这一帧有一个match被放入一个component,这一帧所有的match都归为这个component。
  • 如果一个landmark链接的其他帧的kp都和当前帧有匹配,这些帧也加入到这个component。
    • 反过来说就是:一个landmark在其他帧的kp如果没有同时被当前帧观察到。这个共视关系就断掉了。
  • 进一步总结就是求,在所有和match有关的landmark可frame组成的共视关系中,最大的那个链接图。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值