基于改进的点线融合和关键帧选择的视觉SLAM 方法

本文基于DOI:10.13973/j.cnki.robot.240093总结

本文提出了一种改进的视觉 SLAM 方法PLKF-SLAM ,通过点线特征融合动态阈值关键帧选择策略解决弱纹理环境下特征提取不足和关键帧冗余问题。方法通过加权融合距离和角度误差函数优化点线特征融合,并引入自适应因子动态平衡线特征在光束平差中的参与度;同时基于几何映射模型和动态阈值策略减少冗余关键帧。实验表明,与 ORB-SLAM3 相比,PLKF-SLAM 在 EuRoC 数据集上平均定位精度提升 52.64%,在 UMA-VI 数据集提升 63.20%,真实场景定位误差仅 0.05 米。

一、研究背景与目标

  • 问题:弱纹理环境下特征点不足导致 SLAM 精度下降,传统关键帧选择策略冗余度高。
  • 目标 :提出PLKF-SLAM,结合点线特征融合与动态关键帧选择,提升弱纹理场景的定位精度与实时性。

图1 系统流程框图

二、方法改进

(1)点线特征融合策略
  • 特征提取
    • 点特征:ORB 特征(FAST+BRIEF)。
    • 线特征:LSD 检测 + LBD 描述符。

图 2 线特征误差函数模型

  • 误差函数优化
    • 融合距离误差(端点重投影)与角度误差(向量余弦),通过加权矩阵平衡不同误差贡献。
  • 自适应因子
    • 引入动态调整因子F(α(P)) = 2^(-α(P)/80),根据点特征数量α(P)自动调节线特征在光束平差中的权重,减少计算负担。
(2)关键帧选择策略
  • 几何映射模型
    • 统计特征点变化区域,通过 3 个 15° 分割区域的特征点变化量评估帧间差异。

图 3 几何映射模型

本文建立的几何映射模型需要理 解和计算场景的 3 维结构,以提供更丰富的信息进行位姿估计。图中,五角星代表路标点,方框代表检测到的特征点,圆形代表跟踪到的特征点。通过统计每帧图像中的特征点总量、跟踪点数以及几何映射区域内发生变化的点的数量等参数来确定动态阈值。首先,将当前帧中的部分特征点与上一关键帧中的特征点进行匹配,以计算对应的 3 维路标点。然后,为每个路标点构建一个几何映射模 型 ,连接路标点与几何映射模型平面,其主轴 垂直于圆形几何映射模型中心,3个区域与主轴以15°角进行分割。 将每帧中的各跟踪点的位置与其 在地图中的路标点对应位置连接,形成矢量,并根据该矢量与主轴的夹角将矢量划分到 3 个既定区 域。从上一个关键帧移动到当前帧时,矢量在每个 区域内对应的特征点数量也发生变化,基于这些变化点的数量,确定动态阈值,以决定是否插入新的关键帧。

  • 动态阈值
    • 初始阈值T_initial基于特征点匹配数量与变化量计算。
    • 动态调整公式:T = (1 + εθ + α - β)T_initial,其中:
      • ε:间隔控制系数(避免冗余关键帧)。
      • θ:特征匹配衰减系数。
      • α/β:参考帧与当前帧特征变化调整系数。

结论

首先在 ORB-SLAM3 算法前端引入线特征提取机制,对现有的点特征进行补充,同时通过优化误差函数模型降低了离群值的影响。其次,在跟踪线 程中引入自适应因子,可调节线段在平差过程中的 权重,增强了系统在复杂环境中的适应性。 最后,为解决 SLAM 系统在关键帧选择上的缺陷,本文采用几何和时间约束方法优化选择策略,有效减少冗余并合理选取关键帧。

相关推荐
橙色小博26 分钟前
PyTorch中的各种损失函数的详细解析与通俗理解!
人工智能·pytorch·python·深度学习·神经网络·机器学习
小森77671 小时前
(三)机器学习---线性回归及其Python实现
人工智能·python·算法·机器学习·回归·线性回归
-XWB-1 小时前
【LLM】使用MySQL MCP Server让大模型轻松操作本地数据库
人工智能·python·自然语言处理
訾博ZiBo2 小时前
AI日报 - 2025年4月8日
人工智能
James. 常德 student3 小时前
深度学习之微调
人工智能·深度学习
liuyunshengsir3 小时前
chromadb 安装和使用
人工智能·大模型
FIT2CLOUD飞致云3 小时前
全面支持MCP协议,开启便捷连接之旅,MaxKB知识库问答系统v1.10.3 LTS版本发布
人工智能·开源
云水木石3 小时前
ChatGPT-4o 在汉字显示上进步巨大
人工智能·chatgpt
Mr_LeeCZ3 小时前
PyTorch 深度学习 || 7. Unet | Ch7.1 Unet 框架
人工智能·深度学习·机器学习
不要天天开心3 小时前
Scala集合
图像处理·算法·机器学习·scala