VSLAM-视觉里程计VO(一)特征点法

视觉里程计

  1. 概念
    一个slam系统分为前端和后端,其中前端也称之为视觉里程计(VSLAM领域),视觉里程计根据相邻图像(关键帧)的信息估计粗略的相机运动(之所以是“粗略”,是因为存在噪声和匹配误差,这也突出后端的重要性),提供较好的初始值。视觉里程计的算法主要分成两个大类:特征点法和直接法。
    基于特征点法的前端,一直以来都是视觉里程计中的主流算法,具有稳定,对光照、动态物体不敏感的优势,是目前比较成熟的方案。

  2. 特征点法
    视觉里程计,即根据一系列的图像估计相机的运动。图像,从本质来说是一个矩阵,包含亮度和色彩的信息,如果直接从矩阵层面出发估计相机运动,无疑是困难的(信息太多,匹配的规则很难定义),所以,比较方便的做法就是,从图像中找出具有代表性的点。这些点在相机视角发生少量变化后保持不变,于是我们能在相邻关键帧找到相同的点,在这个基础上,对相机的位姿进行估计。
    拿仓储机器人举例,如何让机器人知道自己在仓库哪个位置,可以采取在墙上贴上二维码路标,机器人的相机拍摄到路标以后,就知道自己的位置了,而特侦点法,就是从周围环境中选择部分点作为路标,帮助确认自身位姿。

    找到能解决方法之后,再考虑这种方法的局限性在哪?我们希望特征点稳定,尽量少受相机运动带来的视角改变的影响,然而这往往是不现实的,图像每个像素的参数(灰度值)会受到光照,拍摄角度的影响,这些影响会导致特侦点无法匹配,甚至丢失一些特征点。
    综上,我们需要的是特征点需要具有一定的鲁棒性,特征点应该是图像中一些特别的地方,受环境影响较小的点。实际上,在图像中,那些角点,边缘和区块往往是图像中易于识别的点(其实这些点往往都是不那么平滑的)。所以,我们可以采取这种策略提取特征点,通过在不同的图像中取得角点并进行匹配,确认他们的对应关系,就可以得到上一关键帧到当前关键帧的位姿变换关系,那么,在给定初始位姿的前提下,我们就可以对相机的位姿的估计。在这种做法中,角点就是所谓的特征,比较著名的提取算法有:Harris角点、FAST角点、GFTT角点等。

    可是,在实际应用中,角点的选取无法满足我们的需求,比如近距离环境,旋转带来的视角变化,往往会丢失角点信息,导致匹配错误。所以,计算机视觉研究者又提出了许多更加稳定的局部图像特征,如著名的SIFT、SURF、ORB等,相对于朴素的角点,这些人工设计的特征点具有更好的性质。其特征点易于在不同的图像中找到,不同的特征点的表达不一样(这样就不容易匹配错误了),效率高(不筛选以下,特侦点太多了,速度慢),特征点的选取策略是从局部计算得出的(这样的点不易丢失)。
    接下来就不一一介绍各种特征点选取策略的细节了,简单介绍一下优缺点,结果是显而易见的,甚至不需要去跑demo,完全追求匹配精准度的方法必然慢而且点也少,不能单纯说哪种方法好坏吧,结合具体应用环境去讨论或许更好一些。
    从SIFT(尺度不变特征变换)说起,这种方法应当说是最精确的,考虑了很多方面,与此同时,增加了计算量(代价不小,实时性是不成了),然后就是近些年大热的ORB了,真的好东西,算是性价比最高的,也许不是最快的,但是在目前开源算法中,这个算是最佳的吧。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值