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

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配

2018-03-15 10:53 1166 查看

Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配

视频项目中要用到拼接,这里记录一下SIFT、SURF、ORB三种特征点。 
本文不做过多的理论解释,只是利用opencv简单实现三种特征点匹配算法的验证(改进的部分暂未上传)。代码下载地址:Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配环境: 
Windows下vs2010,opev2.4.9; 
代码release下编译,工程release下的exe可以直接运行;编译工程需要配置opencv,见:opencv配置 
注意: 
工程具体添加以下lib(release下的dll与以下的lib是对应的): 
opencv_core249.lib 
opencv_highgui249.lib 
opencv_imgproc249.lib 
opencv_features2d249.lib 
opencv_nonfree249.lib 
opencv_legacy249.libSIFT算法 
SIFT特征是图像的局部特征,对平移、旋转、尺度缩放、亮度变化、遮挡和噪声等具有良好的不变性,对视觉变化、仿射变换也保持一定程度的稳定性。SIFT算法时间复杂度的瓶颈在于描述子的建立和匹配 ,如何优化对特征点的描述方法是提升SIFT效率的关键。 
作者David Lowe原文(附有demo) 
Distinctive image features from scale-invariant keypoints 
下载地址: 
http://www.cs.ubc.ca/~lowe/keypoints/ 
附个SIFT算法讲解的帖子: 
http://blog.csdn.net/abcjennifer/article/details/7639681/ 
https://www.52ml.net/2713.html

SURF算法 
SURF算法的优点是速度远快于SIFT且稳定性好;在时间上,SURF运行速度大约为SIFT的3倍;在质量上,SURF的鲁棒性很好,特征点识别率较SIFT高,在视角、光照、尺度变化等情形下,大体上都优于SIFT。 
作者原文:Speeded-Up Robust Features (SURF) 
下载地址: 
http://www.sciencedirect.com/science/article/pii/S1077314207001555 
附个SURF算法讲解的子: 
https://www.52ml.net/2709.html

ORB算法 
这个算法是由Ethan Rublee,Vincent Rabaud,Kurt Konolige以及Gary R.Bradski在2011年一篇名为“ORB:An Efficient Alternative to SIFT or SURF”的文章中提出。 
原文下载地址: 
http://ieeexplore.ieee.org/document/6126544/?reload=true&arnumber=6126544 
附个ORB算法讲解的帖子: 
http://www.cnblogs.com/ronny/p/4083537.html

三种特征点 
1)尺度、旋转不变性(ORB算法在尺度方面效果较差); 
2)ORB较快,SURF运行速度大约为SIFT的3倍,ORB是sift的100倍,是surf的10倍。(这里摘录网上看到的,,具体视具体的数据); 
3)SURF的鲁棒性较好 
具体的三种性能比较可见这篇文章: 
(1)多种角度比较SIFT、SURF、BRISK、ORB、FREAK算法 
(2)http://blog.jobbole.com/83919/

衡量指标与改进方向 
一般用于图像匹配或者配置及拼接时:常有以下衡量指标: 
检测关键点,检测时间,匹配点对数,匹配时间;误匹配点对;主观效果。 
改进方向: 
特征点提取:对上述三种算法的特征点提取及描述方面加以某种改进。 
匹配:通常在匹配时有kd树搜素、双向匹配;在视频中可在首帧进行匹配求得变换矩阵,在首帧之后的k帧一直采用上述变换矩阵。RANSAC算法剔除误匹配点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐