视觉SLAM学习——视觉里程计VO

视觉SLAM学习——视觉里程计VO

本文为个人学习视觉slam之后的一些片面的理解,希望能够对大家有所帮助

特征点法

ORB特征检测

这里仅仅介绍ORB特征点的提取的算法过程:

1、FAST特征点提取(设提取n个角点):

1.1、选取像素p,获得其亮度为Ip
1.2、设置阈值T(如:Ip的 20%)
1.3、以p为中心选取半径为3的圆上的16个像素点
1.4、预测试像素:检测索引为1、5、9、13的像素点,三个以上满足阈值条件才进行下一步
1.5、若连续N个大于(小于)Ip+T,则将其选为特征点(如FAST-12 : N=12)
1.6、计算Harris响应,选取前n个

2、对FAST角点构建图像金字塔实现尺度不变性
3、对角点采用灰度质心法实现旋转不变性

具体操作为连接区域的几何中心与图像质心,获得角点的向量特征

4、获得角点的BRIEF描述子

4.1、按照某概论分布随机挑选附近两个像素(p,q)
4.2、比较两个像素点大小并获取0,1编码,若p>q则 取1,否则取0
4.3、计算n组像素,获得其向量作为描述子

特征匹配

特征匹配基本原理即是:匹配相邻两帧间的特征点的描述子,获得n组匹配点
这里举两种匹配方法:
1、快速近似最邻近算法ANN:利用局部敏感哈希方法计算
2、汉明距离:两个等长字符串在对应位置上不同字符的数目
至此获得了匹配上的特征点

相机位姿T估计及3D点P的求取

1、2D到2D过程

单目视觉的初始化是一个2D到2D的过程:

1.1、位姿T的获取:

1.1.1、位姿T的获取采用对极几何的方法构建对极约束
1.1.2、经过一系列变换,最终获得本质矩阵E=t^R, 且 x 2 T ∗ E ∗ x 1 = 0 x_2^T*E*x_1=0 x2TEx1=0,t为平移,R为旋转
1.1.3、由于E具有尺度等价性,故可用利用八点发求E
1.1.4、获得本质矩阵E后,可采用奇异值分解(SVD):E=U∑V(T),求得t与R

1.2、3D点P的获取

1.2.1、利用三角测量的方法获得方程: s 1 ∗ x 1 = s 2 ∗ R ∗ x 2 + t s_1*x_1=s_2*R*x_2+t s1x1=s2Rx2+t,其中s为深度值,x为匹配好的归一化平面点(u,v,1)
1.2.2、对方程左乘x1^ :s1*x1^ *x1=0=s2*x1^ R*x2+x1^t
1.2.3、利用等式右边可求得x2深度s2的最小二乘解
1.2.4、带入原式可求得s1

1.3、最后可加入深度滤波器对获得的深度进行滤波
2、3D到2D过程

单目初始化完成之后,即可视为一个3D到2D估计的过程,这里介绍两种方法

2.1 直接线性变换DLT:

2.1.1、利用s*x=[R|t]*P获得两个约束,其中s为深度,x为归一化平面坐标(u,v,1),R|t为3 * 4的矩阵,表姿态,P表世界坐标,tn表R|t的第n行:
t 1 T ∗ P − t 3 T ∗ P ∗ u = 0 t_1^T*P-t_3^T*P*u=0 t1TPt3TPu=0
t 2 T ∗ P − t 3 T ∗ P ∗ v = 0 t_2^T*P-t_3^T*P*v=0 t2TP

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值