视觉slam14讲之视觉里程计

    作为视觉slam中4大步骤的最前端,视觉里程计(VO)是视觉前端,它根据相邻图像的信息估计出粗略的相机运动,给后端提供较好的初始值。而其主要实现方法,分为特征点法,直接法。其中特征点法目前是主流,它运动稳定,对光照,动态物体不敏感,是目前比较成熟的解决方案。

1. 特征点

     图像本是一个由亮度和色彩组成的矩阵,从矩阵层面考虑运动估计比较困难。我们可以选取有代表性的点,相机视角发生变化,我们根据各个图像中相同的点,讨论相机位姿估计问题,及定位问题。在视觉slam中,这些点指图像特征( Feature )
     这些角点事实上不满足我们的很多需求。例如,从远处看上去是角点的地方,当相机走近后,可能就无法识别出来。或者相机转动,角点的外观会发生变化,相机再次无法识别。目前为了解决这些问题,研究出了更加稳定的局部图像特征,如:SIFT,SURF,ORB等等。
    a. 可重复性:相同的“区域”可以在不同的图像中找到。
    b. 可区别性:不同的”区域“有不同的表达。
    c. 高效率:同一图像中,特征点的数量应远小于像素的数量。
       SIFT算法: 充分考虑了在图像变换过程中出现的光照,尺度,旋转等变化,故计算量极大。目前普通PC的CPU还无法实时地计算SIFT特征,进行定位与建图。
       ORB算法: 适当的降低精度和健壮性,以提高计算的速度。采用速度极快的二进制描述子BRIEF,使整个图像特征提取的环节大大加速。

2.FAST关键点

     a. FAST是一个角点,主要检测局部像素灰度变化明显的地方,以速度快著称。它的思想是:如果一个像素与邻域的像素差别较大(过明或过暗),那么它更可能是角点,相比其他角点检测算法,FAST只需比较像素亮度的大小,十分快捷。
     b. 检测过程:
          在图像中选取像素p, 假设它的亮度为Ip。
         设置一个阈值T(比如,Ip的20%)。
          以像素p为中心,选取半经为3的圆上的16个像素点。
         如贵选取的圆上有连续的N个点亮度大于Ip+T或小于Ip-T,那么像素p可认为是特征点(N通常取12,即FSAT-12。其他常用的N取值为9和11,称为FSAT-9,FSAT-11)。
         循环以上四部,对每一个像素执行相同的操作。
   c. 上诉其实也慢了点,故添加一项预测试操作,以快速地排除绝大多数不是角点的像素。具体操作,对于每个像素,直接检测邻域圆上的第1,5,9,13个像素的亮度,否则直接排除。原始FATS角点也会出现“扎堆”的现象,所以在第一边检测之后,还需要非极大值抑制。
    d. FSAT不具备方向性和尺度,ORB添加了尺度和旋转的描述。其中尺度不变性由构建图像金字塔,并在金字塔的每一层上检测角点来实现。而特征的旋转是由灰度质心法实现。

3. BRIEF描述子

     视觉里程计(VO)里,主要是测量特征点,描述子。对图像进行很好的识别。ERIEF是一种二进制描述子,其描述向量由许多0,1组成。这里的0和1编码了关键点附近两个像素(比如p和q)的大小关系。如果p比q大,则取1,反之则取0。大体按照某种概率分布,随机地挑选p和q的位置。
     优点:BRIEF使用随机选点的比较,速度比较快,而且使用了二进制表达,存储起来十分方便,适用于实时的图像匹配。

4. 特征匹配

     特征匹配的关键在VO中无需质疑,它解决了slam中的数据关联问题,即确定当前看到的路标与之前看到的路标之间的对应关系。一般特征匹配方法就是暴力匹配,即对每一个特征点Xt与所有的Xt+1测量描述子的距离,然后排序,取最近的一个作为匹配点。描述子表示了两个特征之间的相似程度,不过在实际运用中,还可以取不同的距离度量范数。我们往往使用汉明距离作为度量-两个二进制串之间的汉明距离,指的是其不同位数的个数。
     然而,当特征点数量很大时,暴力匹配显然不实际,快速近似最近邻算法更适合于匹配点数量极多的情况。

5. 对极几何

     使用两张图像中得到了一对配对好的特征值,通过这些二维图像的对应关系,恢复出在两帧之间摄像机的运动。使用到基本矩阵,本质矩阵,单应矩阵。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章