csdn收藏功能还需要增强。。。
总纲:SIFT算法详解
Sift算法就是用不同尺度(标准差)的高斯函数对图像进行平滑,然后比较平滑后图像的差别,差别大的像素就是特征明显的点。
1.zddhud http://blog.csdn.net/zddblog/article/details/7521424
2.bit https://wenku.baidu.com/view/5465f1bba417866fb94a8e12.html
3.cnbolgs http://www.cnblogs.com/wuyuankun/p/4149499.html
笔记
1.高斯金字塔 (1)图像高斯平滑(2)降采样
每组层数一样
相邻两组同一层尺度为二倍关系(平滑以及降采样)
比较同尺度 上下相邻尺度(尺度是δ)(相邻层)
关键点区域包含关键点的5x5然后按照2x2的模板横竖移动,形成4x4x8的描述向量
步骤
1构建尺度空间,检测极值点,获得尺度不变性
2特征点过滤并进行经确定位,剔除不稳定的特征点
3 在特征点处提取特征描述符,为特征点分配方向直
4声称特征描述子,利用特征描述符寻找匹配点
5计算变换参数
当2幅图像的sift特征向量生成以后,下一步就可以采用关键点特征向量的欧式距离来作为2幅图像中关键点的相似性判定量度
尺度空间:
尺度就是受delta这个参数控制的表示
而不同的L(x,y,delta)就构成了尺度空间,实际上具体计算的时候即使连续的高斯函数,都要被离散为矩阵来和数字图像进行卷积操作
L(x,y,delta)=G(x,y,e)*i(x,y)
尺度空间=原始图像(卷积)一个可变尺度的2维高斯函数G(x,y,e)
G(x,y,e) =[1/2*pi*e^2] * exp[ -(x^2 + y^2)/2e^2]
为了更有效的在尺度空间检测到稳定的关键点,提出了高斯差分尺度空间,利用不同尺度的高斯差分核与原始图像i(x,y)卷积生成
D(x,y,e)=(G(x,y,ke)-G(x,y,e))*i(x,y)
=L(x,y,ke)-L(x,y,e)
(为避免遍历每个像素点)
高斯卷积:
在组建一组尺度空间后,再组建下一组尺度空间,对上一组尺度空间的最后一幅图像进行二分之一采样,得到下一组尺度空间的第一幅图像,然后进行像建立第一组尺度空间那样的操作,得到第二组尺度空间,公式定义为
L(x,y,e) =G(x,y,e)*I(x,y)
图像金字塔的构建:图像金字塔共O组,每组有S层,下一组的图像由上一组图像降采样得到、
高斯差分
在尺度空间建立完毕后,为了能够找到稳定的关键点,采用高斯差分的方法来检测那些在局部位置的极值点,即采用俩个相邻的尺度中的图像相减,即公式定义为:
D(x,y,e) = ((G(x,y,ke) -G(x,y,e)) * I(x,y)
=L(x,y,ke) - L(x,y,e)
咱们再来具体阐述下构造D(x,y,e)的详细步骤:
1、首先采用不同尺度因子的高斯核对图像进行卷积以得到图像的不同尺度空间,将这一组图像作为金子塔图像的第一层。
2、接着对第一层图像中的2倍尺度图像(相对于该层第一幅图像的2倍尺度)以2倍像素距离进行下采样来得到金子塔图像的第二层中的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像中第二层的一组图像。
3、再以金字塔图像中第二层中的2倍尺度图像(相对于该层第一幅图像的2倍尺度)以2倍像素距离进行下采样来得到金字塔图像的第三层中的第一幅图像,对该图像采用不同尺度因子的高斯核进行卷积,以获得金字塔图像中第三层的一组图像。这样依次类推,从而获得了金字塔图像的每一层中的一组图像,
4、对上图得到的每一层相邻的高斯图像相减,就得到了高斯差分图像,如下述第一幅图所示。下述第二幅图中的右列显示了将每组中相邻图像相减所生成的高斯差分图像的结果,限于篇幅,图中只给出了第一层和第二层高斯差分图像的计算
近来不断有人改进,其中最著名的有SURF和CSIFT。
相关知识:
1.二维高斯模糊和可分离核形式的快速实现
http://blog.csdn.net/zxpddfg/article/details/45912561
通过引入一个临时的T来避免跨行访问数据,第二部分列模板 横向移动 得到T并进行累加
2.模糊及程序实现
http://blog.csdn.net/majinlei121/article/details/46347823等3篇
相邻两组同一层尺度为二倍关系(