SURF SIFT ORB三种特征检测算法比较

    我们知道,双目立体测距的基础是利用视差求距离,而视差就是计算左右图像中对应点的像素坐标之差,这个左右图中的对应点是由通过立体匹配得来。

    立体匹配从大的方面说分为两种,全局匹配和局部匹配,全局匹配精度高,但是计算速度慢,不能满足实时的要求,局部匹配速度快,可以满足实时的要求,但是精度不如前者,考虑到项目实际,需要实时的判断机器人与环境的关系,就重点研究局部匹配。局部匹配又分为基于区域的匹配,基于特征的匹配以及基于梯度的优化方法。综合比较,选择基于特征的匹配。

    基于特征的匹配分为特征点提取和匹配两个步骤,本篇主要针对特征点提取三种方法进行比较,分别是SIFT,SURF以及ORB三种方法,这三种方法在OpenCV里面都已实现。SURF基本就是SIFT的全面升级版,有 SURF基本就不用考虑SIFT,而ORB的强点在于计算时间,以下具体比较:

    计算速度:            ORB>>SURF>>SIFT(各差一个量级)

    旋转鲁棒性:        SURF>ORB~SIFT(表示差不多)

    模糊鲁棒性:        SURF>ORB~SIFT

    尺度变换鲁棒性: SURF>SIFT>ORB(ORB并不具备尺度变换性)

    所以结论就是,如果对计算实时性要求非常高,可选用ORB算法,但基本要保证正对拍摄;如果对实行性要求稍高,可以选择SURF;基本不用SIFT。

你可能感兴趣的:(双目视觉)