基于改进的点线融合和关键帧选择的视觉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 系统在关键帧选择上的缺陷,本文采用几何和时间约束方法优化选择策略,有效减少冗余并合理选取关键帧。

相关推荐
数据与人工智能律师几秒前
数字迷雾中的安全锚点:解码匿名化与假名化的法律边界与商业价值
大数据·网络·人工智能·云计算·区块链
chenchihwen2 分钟前
大模型应用班-第2课 DeepSeek使用与提示词工程课程重点 学习ollama 安装 用deepseek-r1:1.5b 分析PDF 内容
人工智能·学习
说私域10 分钟前
公域流量向私域流量转化策略研究——基于开源AI智能客服、AI智能名片与S2B2C商城小程序的融合应用
人工智能·小程序
Java樱木24 分钟前
AI 编程工具 Trae 重要的升级。。。
人工智能
AntBlack29 分钟前
从小不学好 ,影刀 + ddddocr 实现图片验证码认证自动化
后端·python·计算机视觉
凪卄121343 分钟前
图像预处理 二
人工智能·python·深度学习·计算机视觉·pycharm
巫婆理发2221 小时前
强化学习(第三课第三周)
python·机器学习·深度神经网络
AI赋能1 小时前
自动驾驶训练-tub详解
人工智能·深度学习·自动驾驶
deephub1 小时前
AI代理性能提升实战:LangChain+LangGraph内存管理与上下文优化完整指南
人工智能·深度学习·神经网络·langchain·大语言模型·rag
EulerBlind1 小时前
【运维】SGLang 安装指南
运维·人工智能·语言模型