- 1、本文档共11页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OpenCV特征点检测------ORB特征
+添加收藏
? wangyaninglm ? 2015-04-01 ? 204 查看 ? 0评
论
ORB算法
ORB是是ORiented Brief的简称。ORB的描述在下面文章中:
Ethan Rublee and Vincent Rabaud and Kurt Konolige and Gary Bradski, ORB: an efcient alt
ernative to SIFT or SURF, ICCV 2011
没有加上链接是因为作者确实还没有放出论文,不过OpenCV2.3RC中已经有了实现,Willow
Garage有一个talk也提到了这个算法,因此我不揣浅陋,在这里总结一下。
Brief是Binary Robust Independent Elementary Features的缩写。这个特征描述子是由EPFL
的Calonder在ECCV2010上提出的。主要思路就是在特征点附近随机选取若干点对,将这些
点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子
。详细算法描述参考如下论文:
Calonder M., Lepetit V., Strecha C., Fua P.: BRIEF: Binary Robust Independent Elementary
Features. ECCV 2010
注意在BRIEF eccv2010的文章中,BRIEF描述子中的每一位是由随机选取的两个像素点做二
进制比较得来的。文章同样提到,在此之前,需要选取合适的gaussian kernel对图像做平滑
处理。(为什么要强调这一点,因为下述的ORB对此作了改进。)
BRIEF的优点在于速度,缺点也相当明显:
1:不具备旋转不变性。
2:对噪声敏感
3:不具备尺度不变性。
ORB就是试图解决上述缺点中的1和2.
如何解决旋转不变性:
在ORB的方案中,是采用了FAST作为特征点检测算子。FAST应用的很多了,是出名的快,
以防有人不知道,请看这里:
在Sift的方案中,特征点的主方向是由梯度直方图的最大值和次大值所在的bin对应的方向决
定的。略嫌耗时。
在ORB的方案中,特征点的主方向是通过矩(moment)计算而来,公式如下:
有了主方向之后,就可以依据该主方向提取BRIEF描述子。但是由此带来的问题是,由于主
方向会发生变化,随机点对的相关性会比较大,从而降低描述子的判别性。解决方案也很直
接,采取贪婪的,穷举的方法,暴力找到相关性较低的随机点对。
如何解决对噪声敏感的问题:
在前面提到过,在最早的eccv2010的文章中,BRIEF使用的是pixel跟pixel的大小来构造描述
子的每一个bit。这样的后果就是对噪声敏感。因此,在ORB的方案中,做了这样的改进,不
再使用pixel-pair,而是使用9×9的patch-pair,也就是说,对比patch的像素值之和。(可以
通过积分图快速计算)。
关于尺度不变性:
ORB没有试图解决尺度不变性,(因为FAST本身就不具有尺度不变性。)但是这样只求速度
的特征描述子,一般都是应用在实时的视频处理中的,这样的话就可以通过跟踪还有一些启
发式的策略来解决尺度不变性的问题。
关于计算速度:
ORB是sift的100倍,是surf的10倍。
关于性能:
下面是一个性能对比,ORB还是很给力。点击看大图。
参考Slides
Related posts
Android-opencv之CVCamera (1)
必威体育精装版版的OpenCV中新增加的ORB特征的使用
分类:
Opencv学习C++2011-11-30 12:1511612人阅读评论(16)收藏举报
floatimagedistancevectorobjectless
看到OpenCV2.3.1里面ORB特征提取算法也在里面了,套用给的SURF特征例子程序改为ORB
特征一直提示错误,类型不匹配神马的,由于没有找到示例程序,只能自己找答案。
(ORB特征论文:ORB: an efficient alternative to SIFT or SURF点. 击下载论文)
经过查找发现:
描述符数据类型有是float的,比如说SIFT,SURF描述符,还有是uchar的,比如说有
ORB,BRIEF
对于float 匹配方式有:
FlannBased
BruteForceL2float
BruteForceSL2float
BruteForceL1float
对于uchar有:
BruteForceHammin
BruteForceHammingLUT
BruteForceMatcher L2float matcher;//改动的地方
完
文档评论(0)