您的位置:首页 > 运维架构

opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较

2015-11-05 17:08 1051 查看
opencv中的SIFT,SURF,ORB,FAST 特征描叙算子比较

参考:

http://wenku.baidu.com/link?url=1aDYAJBCrrK-uk2w3sSNai7h52x_eWeRu9p9GhZd49WJ1bEOB7VluQdBdRKeehAO2Q3B7RatTXDruq-M9cR-W2yqATerDlIU1T3whYoyQfi

http://www.cvchina.info/2011/07/04/whats-orb/

http://www.bubuko.com/infodetail-909956.html

主要的特征检测方法有以下几种,在一般的图像处理库中(如opencv, VLFeat, Boofcv等)都会实现。

FAST ,Machine Learning for High-speed Corner Detection, 2006

SIFT,Distinctive Image Features from Scale-Invariant Keypoints,2004, invariant to image translation, scaling, and rotation, partially invariant to illumination changes and robust to local geometric distortion

SURF,Speeded Up Robust Features,2006,受SIFT启发,比SIFT快,健壮

ORB,ORB: an efficient alternative to SIFT or SURF,2011,基于FAST,比SIFT快两个数量级,可作为SIFT的替代

BRISK,BRISK: Binary Robust Invariant Scalable Keypoints

STAR,Censure: Center surround extremas for realtime feature detection and matching,引用次数不高

MSER,Robust Wide Baseline Stereo from Maximally Stable Extremal Regions,2002,斑点检测

GFTT,Good Features to Track,1994,Determines strong corners on an image

HARRIS,Harris and M. Stephens (1988). “A combined corner and edge detector”,也是一种角点检测方法

KAZE(eccv2012)

FREAK()

deepmatching http://lear.inrialpes.fr/src/deepmatching/

这里主要关注SIFT,SURF,FAST,ORB的对比。

Image NOSIFTSURFORBFAST
02414412650011978
14295812950016763
23404478450016191
3163928025007166
41510148449729562
5105728309500720
619118729516125
733524706500567
816540337426701
94899752350012780
101979421250010676
1135993294500663
121631682877923
131884241350011681
142509505550018097
15917747735007224
163332321750020502
175446661150016553
1845926033500706
192665094599613
20208727865007459
212582365150012147
222509423750014890
23123645455006473
24131126065004293
25237387500657
2696814184886609
Time Cost21.5217.40.970.25
可以看到FAST提取了大量的特征点,在计算时间上,比SIFT SURF快两个数量级,ORB在FAST基础上得来的,特征点的质量比较高!

下面通过通过两张图片来看这几个算法匹配的效果,1639-1311-697表示图片1,2分别提取了1639,1311个keypoints,其中匹配的有697个。

Image pairSIFTSURFORBFAST(SURF)
eiffel-1.jpg,eiffel-13.jpg1639-1311-6972802-2606-1243500-500-2511196-1105-586
接下来是eiffel-1.jpg,eiffel-13.jpg 俩图片通过不同算法进行匹配的结果示意图。

SIFT



SURF



ORB



FAST



需要注意的地方:

* 链接的时候加上
pkg-config opencv --cflags --libs
可以加入所有opencv的库

* SIFT,SURF是nonfree的,使用的时候需要方法
initModule_nonfree()
,需要头文件opencv2/nonfree/nonfree.hpp

* FAST只是检测角点,要结合其他extractor如ORB,SIFT.

参考:

1.opencv feature2d

2.Feature Detection and Description
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: