视觉里程计VIO——前半

视觉里程计VIO

1. 学习目标

在这里插入图片描述

2. 特征点法

在这里插入图片描述
角点在可区分性里面效果比较显著。

特征点由关键点(Key-point)和描述子(Descriptor)两部分组成。比方说,当我们谈论 SIFT 特征时,是指“提取 SIFT 关键点,并计算 SIFT 描述子”两件事情。关键点是指该特征点在图像里的位置,有些特征点还具有朝向、大小等信息。描述子通常是一个向量,按照某种人为设计的方式,描述了该关键点周围像素的信息。描述子是按照“外观相似的特征应该有相似的描述子”的原则设计的。因此,只要两个特征点的描述子在向量空间上的距离相近,就可以认为它们是同样的特征点。

ORB特征

ORB 特征亦由关键点和描述子两部分组成。它的关键点称为“Oriented FAST”,是一种改进的 FAST 角点。

  • 改进FAST关键点检测
    在这里插入图片描述
    FAST 是一种角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与它邻域的像素差别较大(过亮或过暗), 那它更可能是角点。相比于其他角点检测算法,FAST 只需比较像素亮度的大小,十分快捷。
    在这里插入图片描述
    矩是描述图像特征的算子,参考链接:https://blog.youkuaiyun.com/Edgar_U/article/details/78483505
    解决FAST特征点扎推的现象:在第一遍检测之后,还需要用非极大值抑制(Non-maximal su

### 视觉惯性里程计系统架构与框架 #### 架构概述 视觉惯性里程计(VIO)融合了相机和惯性测量单元(IMU)的数据来实现高精度的姿态估计。通过结合这两种互补的信息源,VIO能够在动态环境中提供鲁棒的位置跟踪能力[^1]。 #### 数据处理流程 数据流从IMU采集开始,随后由图像传感器获取同步帧。预积分技术用于减少计算复杂度,在两个连续的关键帧之间累积IMU读数。接着执行特征提取算法识别场景中的显著点,并将其匹配到后续视图中形成轨迹约束。最后一步是优化过程,它最小化重投影误差以及姿态变化引起的残差项,从而获得最优解。 #### 关键组件解析 - **前端模块**: 负责初始化、追踪和平滑操作。具体来说,这涉及到新关键帧的选择标准设定;基于光流法或其他快速响应机制检测移动物体造成的异常情况;还有就是平滑滤波器的应用以消除短期抖动影响。 - **后端模块**: 主要承担非线性最优化任务。采用因子图模型表述整个问题空间内的关系网络——节点代表各个时刻下的状态向量(包括位置、朝向),边则对应于观测值间的关联程度。借助增量式求解策略逐步逼近全局极小值点附近区域。 - **闭环检测**: 防止累计漂移效应积累过多而导致定位偏差过大。当发现当前视角下存在之前访问过的地点时触发回环校正动作,即重新调整历史路径使之闭合起来。 ```python def vio_pipeline(imu_data, image_frames): # IMU pre-integration over time intervals between keyframes imu_preintegrated = integrate_imu_readings(imu_data) # Feature extraction from images and matching across frames features = extract_features(image_frames) matched_pairs = match_features(features) # Optimize pose graph using factor graphs or similar techniques optimized_poses = optimize_pose_graph(matched_pairs, imu_preintegrated) return optimized_poses ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值