视觉VIO--1.图像处理前端

本文介绍了视觉VIO的图像处理前端,包括读取图像、图像预处理(CLAHE增强、光流跟踪)、单目视觉初始化。在图像预处理中,使用了多尺度LK光流算法,并通过随机抽样一致性去除外点。初始化阶段,采用SFM方法求解相机位姿,通过三角化恢复空间位姿并进行BA优化。

总体流程

  1. 读取图像(控制接收图像的时序和频率)
  2. 提取特征(初始化和光流跟踪)
  3. 根据随机抽样一致性去除外点。设置图像掩模版去除位于图像边缘的角点,在感兴趣区域内计算Harris角点
  4. 去除畸变,将一幅图像提取的对应两个角点的像素坐标,id,光流速度push到一个image对象中。
  5. 在滑动窗口中进行图像的sfm初始化
  6. 初始后成功后后续不断进行三角化。

读取图像

读取第一幅图形不做处理。
控制发布图像的频率(不清楚实际的相机工作中控制频率是否会导致延时),大于该频率时候需要停止发布。


void System::PubImageData(double dStampSec, Mat &img)
{
当然,我可以为您提供有关msckf-vio代码的分析。MSCKF-VIO是一种基于滑动窗口的多传感器融合视觉惯性里程计(Visual-Inertial Odometry)算法。它结合了相机和惯性测量单元(IMU)的数据,以实现高精度的相机位姿估计和三维结构重建。 MSCKF-VIO的代码一般包括以下几个主要部分: 1. 特征提取和跟踪:通过图像处理技术,提取图像中的特征点,并进行跟踪。这些特征点通常是具有良好纹理和独特性质的点,例如角点或边缘。 2. 视觉前端视觉前端负责处理相机的图像数据,并提取特征点的深度信息。它使用视觉里程计(Visual Odometry)算法来估计相机的运动,并创建一个稀疏地图。 3. 惯性测量单元(IMU)预积分:IMU预积分模块将IMU的测量数据与相机的视觉估计结果进行融合。通过对IMU数据进行积分,得到相机的运动模型。这个模型用于优化相机位姿的估计。 4. 后端优化:后端优化模块使用滑动窗口优化(Smoothing and Mapping for Consistent Estimation,简称SAMC)算法,对相机和IMU的位姿进行优化。它通过最小化误差函数来提高位姿估计的精度,并维护一个一致的稀疏地图。 这只是对MSCKF-VIO代码的一个简要概述。实际上,代码可能还包括数据预处理、误差传播和滤波等其他模块。如果您需要更具体的代码分析,请提供相关的代码或问题,我会尽力为您解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

南山二毛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值