ORB-SLAM3 keyframe

发布时间:2026/10/4 21:48:50
ORB-SLAM3 keyframe 在ORB-SLAM3中关键帧KeyFrame是构建地图的核心骨架。它并非处理每一帧图像而是从连续的视频流中挑选出那些具有代表性和信息量的少数帧来构建和优化地图。这样做的好处是能大幅减少需要优化的帧数从而提高系统的计算效率。 关键帧的创建条件 (NeedNewKeyFrame)系统在Tracking线程中通过NeedNewKeyFrame()函数来判断是否插入新关键帧。其决策逻辑是一个多条件组合主要包含强制不插入、强制插入和条件判断三种情况。 强制不插入纯定位模式系统只定位不建图无需插入新关键帧。局部建图线程被占用例如被回环检测占用时为避免冲突不插入新关键帧。刚完成重定位如果刚完成重定位且地图中关键帧数量已较多会暂时不插入等待系统稳定。 强制插入IMU相关IMU未初始化在IMU初始化完成前系统认为视觉-惯性跟踪不稳定会采取保守策略至少每0.25秒强制插入一个关键帧。IMU模式下时间超限在IMU模式下如果当前帧与上一个关键帧的时间间隔超过0.5秒也会强制插入以防止跟踪丢失。 条件判断插入在不满足上述强制条件后系统会评估以下标准满足其一且跟踪质量达标才会插入距离上次关键帧的帧数过多防止因长时间不插入关键帧而导致跟踪丢失。满足最小帧数间隔且局部建图空闲在保证有一定时间间隔的基础上利用空闲的计算资源插入关键帧。当前跟踪质量较差当跟踪到的内点Inliers数量过少表明可能即将跟丢时会插入关键帧以尝试挽救。️ 关键帧的后续处理当一个帧被判定为关键帧后会触发以下流程插入地图 (LocalMapping线程)新关键帧被插入到当前活动地图中。更新数据结构计算词袋向量BoW将关键帧的图像描述子转换为词袋向量用于快速回环检测和重定位。更新共视图Covisibility Graph更新与其它关键帧的共视关系图。图中的节点是关键帧若两个关键帧有足够多的共同地图点则形成一条边边的权重是共视点的数量。生成新的地图点与共视关键帧进行特征匹配通过三角化生成新的3D地图点。局部优化执行局部BABundle Adjustment优化新关键帧、局部共视关键帧的位姿及地图点的3D位置。 关键帧的删除冗余判断为防止关键帧无限增长LocalMapping线程会剔除冗余的关键帧。判断标准通常是如果一个关键帧中90%以上的地图点都能被其它至少3个关键帧观察到则认为它是冗余的可以被安全删除以保证地图的紧凑性和优化效率。 关键数据结构KeyFrame类封装了关键帧的位姿、内参、特征点、所属地图、共视关系等所有信息。KeyFrameDatabase类一个数据库存储所有关键帧的词袋向量用于快速回环检测和重定位。Map类管理属于同一地图的所有关键帧和地图点。ORB-SLAM3支持多地图Atlas可以同时维护多个Map。 总结关键帧是ORB-SLAM3系统的核心。它通过一系列精心设计的创建与淘汰机制确保了系统在长期运行中能够高效、精准地构建和优化稀疏特征地图。这套机制是ORB-SLAM3在视觉SLAM领域表现出色的重要基石。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询