SIFT算法原理与实现
2013-06-17 14:28
477 查看
摘要:本文将就SIFT(Scale Invariant Feature Transform,尺度不变特征转换算法)的基本原理和实现进行阐述。
注:本文将在作者的逐步学习中完善,欢迎批评指正。
概述:SIFT算法由University of British Columbia(英属哥伦比亚大学)的David G. Lowe(http://www.cs.ubc.ca/~lowe/)于1999年提出[1],并于2004年完善[2]。该算法是一种计算机视觉算法,它从图像中提取特有的不变特性,利用这些特性,可以对一个物体的不同视图进行匹配。提取的特性对于图像尺度变化,旋转等具有不变性。
该算法在物体识别,手势识别,机器人地图感知与导航,3D建模,影像缝合与追踪,动作对比等反面有着广泛应用。
注:该算法拥有专利,可用于科学研究,当如果用于商业用途,必须取得相应授权。
算法步骤:该算法主要分4步进行:
1. 尺度空间极值检测(Scale-space extrema detection):该步骤首先利用高斯模糊构建高斯金字塔,然后利用高斯差分(Difference of Gaussian,DoG)构建高斯差分金字塔。然后在DoG空间通过对相邻层图像进行比较获得空间极值点。
2.关键点定位(Keypoint localization):对DoG空间函数进行曲线拟合,对极值点进行修正并去除不稳定的极值点。除此之外,还要消除边缘响应带来的影响。在尺度空间通过上述步骤获得的关键点具有尺度不变性。
3.关键点方向分配(Orientation assignment):通过关键点所在的局部局域的梯度方向来定义关键点的方向,这样定义的关键点具有旋转不变性。
4. 生成关键点描述子(Keypoint descriptor):用一组向量将各个关键点描述出来,这个描述子不但包括关键点,也包括关键点周围对其有贡献的像素点。以此作为目标匹配的依据。
下面将对各个步骤进行更详细的阐述。
极值检测:
1)图像的尺度空间表示:图像的尺度空间定义为可变尺度高斯函数(variable-scale Gaussian)与输入图像的卷积,记为;
参考文献:
[1] David G. Lowe, "Object recognition from local scale-invariant features," International Conference on Computer Vision,Corfu, Greece (September
1999), pp. 1150-1157.
[2] David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision,60, 2 (2004), pp. 91-110.
注:本文将在作者的逐步学习中完善,欢迎批评指正。
概述:SIFT算法由University of British Columbia(英属哥伦比亚大学)的David G. Lowe(http://www.cs.ubc.ca/~lowe/)于1999年提出[1],并于2004年完善[2]。该算法是一种计算机视觉算法,它从图像中提取特有的不变特性,利用这些特性,可以对一个物体的不同视图进行匹配。提取的特性对于图像尺度变化,旋转等具有不变性。
该算法在物体识别,手势识别,机器人地图感知与导航,3D建模,影像缝合与追踪,动作对比等反面有着广泛应用。
注:该算法拥有专利,可用于科学研究,当如果用于商业用途,必须取得相应授权。
算法步骤:该算法主要分4步进行:
1. 尺度空间极值检测(Scale-space extrema detection):该步骤首先利用高斯模糊构建高斯金字塔,然后利用高斯差分(Difference of Gaussian,DoG)构建高斯差分金字塔。然后在DoG空间通过对相邻层图像进行比较获得空间极值点。
2.关键点定位(Keypoint localization):对DoG空间函数进行曲线拟合,对极值点进行修正并去除不稳定的极值点。除此之外,还要消除边缘响应带来的影响。在尺度空间通过上述步骤获得的关键点具有尺度不变性。
3.关键点方向分配(Orientation assignment):通过关键点所在的局部局域的梯度方向来定义关键点的方向,这样定义的关键点具有旋转不变性。
4. 生成关键点描述子(Keypoint descriptor):用一组向量将各个关键点描述出来,这个描述子不但包括关键点,也包括关键点周围对其有贡献的像素点。以此作为目标匹配的依据。
下面将对各个步骤进行更详细的阐述。
极值检测:
1)图像的尺度空间表示:图像的尺度空间定义为可变尺度高斯函数(variable-scale Gaussian)与输入图像的卷积,记为;
参考文献:
[1] David G. Lowe, "Object recognition from local scale-invariant features," International Conference on Computer Vision,Corfu, Greece (September
1999), pp. 1150-1157.
[2] David G. Lowe, "Distinctive image features from scale-invariant keypoints," International Journal of Computer Vision,60, 2 (2004), pp. 91-110.
相关文章推荐
- SIFT算法原理与OpenCV源码分析6:OpenCV实现SIFT算法,特征检测器FeatureDetector
- [置顶] Hadoop伪分布安装详解+MapReduce运行原理+基于MapReduce的KNN算法实现
- OpenCV: Canny边缘检测算法原理及其VC实现详解
- FreeEIM 全排列算法原理和实现
- 无约束最优化算法-Newton法原理及c++编程实现
- simhash算法原理及实现
- 带色彩恢复的多尺度视网膜增强算法(MSRCR)的原理、实现及应用。
- “好串”求解算法优化原理与Python实现
- 算法:集合的划分原理及代码实现
- 基于边界的模板匹配的原理及算法实现
- 深入一致性哈希(Consistent Hashing)算法原理,并附100行代码实现
- 整数划分算法原理与实现
- java基础解析系列(四)---LinkedHashMap的原理及LRU算法的实现
- (转)simhash算法原理及实现
- 分类算法-----决策树(ID3)算法原理和Python实现
- BP神经网络的数学原理及其算法实现
- 任意半径中值滤波(扩展至百分比滤波器)O(1)时间复杂度算法的原理、实现及效果。
- 【密码学】AES加解密原理及其C++实现算法
- 编译原理 LL1文法First集算法实现
- Camshift算法原理及其Opencv实现