zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里使用ORB

Opencv ORB 使用
2023-09-14 09:10:32 时间

SIFT和SURF都是比较好的特征检测算法,但是你是否想每年都为这两个算法花一些钱去买它们的使用权呢?这两个算法都是受版本保护的,如果要使用必须付费购买。那么有没有不付费,也有与之相比美的算法呢?OpenCV的爱好者开发了一个新的免费算法来替代SIFT和SURF,这个算法就是ORB。

 

理论:

作为一个OpenCV粉丝,莫过于看到ORB算法的出处,居然是OpenCV Labs出品,这个算法在2011年由Ethan Rublee, Vincent Rabaud, Kurt Konolige and Gary R. Bradski发表在论文《ORB: An efficient alternative to SIFT or SURF》里。顾名思义,它在计算成本、匹配性能以及主要专利等方面是SIFT和SURF的一个很好的替代品。因为SIFT和SURF算法,你需要付钱才能使用它,但是ORB不用付费。

ORB算法整合了FAST关键点检测和BRIEF描述,同时在性能方面做了很多增强。首先它使用FAST去寻找关键点,接着使用Harris角方法找最优的N个点,然后用金字塔产生多尺度特征。但是FAST算法有一个问题,就是它不会计算角点的方向,所以怎么样才能加入旋转不变性呢?ORB开发人员接着下来作了如下修改。采用灰度质心法(Intensity Centriod)为每个特征点计算了主方向,这个向量方向是从角点位置指向这一块区域的质心方向。为了提高旋转不变性,用x和y计算矩,x和y应该在半径r的圆形区域内&#x