视觉slam之相机模型

相机模型用数学的方式描述了一个真实世界中的三维点到图像上像素坐标的映射关系。分为针孔模型、鱼眼模型、全景模型。

针孔模型为小孔成像原理,比较简单,总共有五个内参参数,这里不再讲述。有兴趣的同学可以看看十四讲或者如下博客https://zhuanlan.zhihu.com/p/356546894。

鱼眼模型对应鱼眼镜头是一种极端的广角镜头,也称全景镜头。一般认为16mm或焦距更短的镜头即为鱼眼镜头,但是在工程上视角范围超过140 度的镜头即统称为鱼眼镜头。

  1. 针孔模型

针孔模型这里讲下逆畸变过程,针孔模型有径向畸变和切向畸变。

对应畸变校正的多项式公式如下。

无畸变的归一化坐标(x, y),转换为有畸变的归一化坐标(xdistorted, ydistorted)。(xdistorted, ydistorted)再通过内参就可以求得对应的像素坐标。而实际视觉定位应用中,首先知道的是特征点像素坐标,需要将像素坐标转成无畸变的归一化坐标(x, y),这个过程叫做逆畸变。而定位过程中大量特征点都需要进行逆畸变运算,因此一个高效的逆畸变运算方法是十分重要的。我们先看看orb和vins是怎么做的。

  1. 1 Orb

采用了OpenCV中采用了近视迭代的方法来求解。

式中左边的x和y为上一次计算出的结果,右边的x和y为本次计算出的最新结果。

  1. 2 Vins

    2 鱼眼模型

鱼眼相机成像步骤与普通相机基本一致, 主要的区别在于镜头聚光的部分, 其为了获得更大的FOV, 通过透镜折射实现聚光。如下图所示。

鱼眼相机成像模型相关知识请查看如下博客https://blog.youkuaiyun.com/qq_16137569/article/details/112398976。上图也引用自此博客。

     2.1 Orb

    2.2 Vins

    VINS的鱼眼模型的标定,采用了matlab的omnidirectional模型。

先将3d点投影到单位球面,再将单位球面上的点投影到归一化平面上。废话不多说,请看鱼眼相机投影模型示意图:

上图引用自如下博客https://www.sohu.com/a/340019099_100007727。

第一步将三维点 投影到归一化球面。

第二步光心下移。

第三步,投影到归一化平面。

后面的步骤和针孔模型的操作相同。消除径向畸变和切向畸变,再用内参将归一化平面的点转换为像素坐标。

逆畸变运算,比较简单,分两步。第一步,先采用针孔模型的逆畸变运算将像素坐标转换成归一化平面坐标。第二步,再用归一化平面坐标转换到归一化球面坐标。第一步可用vins中的迭代方法。第二步直接用如下公式求解即可。

### 视觉SLAM中的恒速跟踪模型视觉SLAM(Simultaneous Localization and Mapping)中,恒速跟踪模型是一种用于预测相机运动状态的方法。该方法假设物体或摄像机在一个短时间内保持匀速直线运动。这种简化使得计算更加高效并减少了复杂度。 具体来说,在两个连续帧之间的时间间隔内,如果认为摄像机的速度不变,则可以根据前一时刻的状态来估计当前的位置和姿态。这有助于减少由于快速移动或其他因素引起的误差累积问题[^1]。 对于单目SLAM而言,利用自运动来进行完全限定地标位置变得更为困难,因为新地标的定位紧密依赖于摄像头的位姿变化情况。因此,采用恒速假设可以提供一种相对简单的方式来处理这一挑战,并且属于结构化从运动恢复场景的一部分。 为了实现这样的追踪机制,通常会涉及到如下几个方面: - **状态方程**:定义系统的动态特性,即如何从前一个时间步推断下一个时间步; 假设 \( \mathbf{x}_k \) 表示第 k 步的状态向量 (包括位置、速度),则有: ```matlab % MATLAB code snippet for state transition equation under CV model F = eye(6); % State Transition Matrix assuming no acceleration changes B = zeros(6, 3); % Control Input Model not used here function x_pred = predict_state(x_prev) global F; x_pred = F * x_prev; % Prediction based on previous state using CV assumption end ``` - **观测更新**:当获得新的图像数据时,通过匹配特征点等方式修正预测的结果; - **滤波算法**:如扩展卡尔曼滤波器(EKF) 或粒子滤波(PF), 它们能够融合来自不同传感器的信息以提高精度。 综上所述,尽管基于恒定速度假设建模存在局限性——比如无法很好地适应突然改变方向的情况——但在许多实际应用场合下仍然表现出良好的性能表现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值