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算法剔除误匹配点。
相关文章推荐
- Opencv下利用SIFT、SURF、ORB三种特征点实现图像匹配
- 图像特征检测描述(一):SIFT、SURF、ORB、HOG、LBP特征的原理概述及OpenCV代码实现
- opencv图像特征检测及匹配(harris,sift,surf,fast,breif,orb,BFmatch,FlannBasedMatcher)
- 利用opencv2.4.10+VS2012和RobHess的sift特征算法实现全景图像拼接
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
- 图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)
- Opencv3 Sift和Surf特征实现图像无缝拼接生成全景图像
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配
- Opencv Sift和Surf特征实现图像无缝拼接生成全景图像
- Opencv实现图像无缝拼接,Sift查找特征点,Flann进行匹配
- 利用特征点(Brief,ORB,SIFT)进行图像匹配,模板匹配
- 图像处理中,SIFT,FAST,MSER,STAR等特征提取算法的比较与分析(利用openCV实现)
- OpenCV中feature2D学习——SIFT和SURF算子实现特征点提取与匹配
- opencv3.2 SURF实现特征点匹配
- OpenCV中提取SIFT特征点、图像匹配、图像配准