SIFT算法问题issue1

 SIFT算法原理+参看资料+问题issue

 参考书籍——《图像局部不变性特征与描述》王永明、王贵锦著

SIFT特征点提取——详见博客:https://blog.csdn.net/lingyunxianhe/article/details/79063547

SIFT算法总结:用于图像搜索——详见博客:https://www.cnblogs.com/wishchin/p/9200312.html

问题描述及解决

1.什么叫“为了满足尺度变化的连续性”S=3?

理解:假设s=3,也就是每个塔里有3层,则k=21/s=21/3,那么按照上图可得Gauss Space和DoG space 分别有3个(s个)和2个(s-1个)分量,在DoG space中,1st-octave两项分别是σ,kσ; 2nd-octave两项分别是2σ,2kσ;由于无法比较极值,我们必须在高斯空间继续添加高斯模糊项,使得形成σ,kσ,k2σ,k3σ,k4σ这样就可以选择DoG space中的中间三项kσ,k2σ,k3σ(只有左右都有才能有极值),那么下一octave中(由上一层降采样获得)所得三项即为2kσ,2k2σ,2k3σ,其首项2kσ=24/3。刚好与上一octave末项k3σ=23/3尺度变化连续起来,所以每次要在Gaussian space添加3项,每组(塔)共S+3层图像,相应的DoG金字塔有S+2层图像。

2. 梯度问题

问题描述:梯度的计算为什么用(x+1,y)(x-1,y)(x,y+1)(x,y-1)四个坐标?

理解:

3.问题描述:P130页描述-求主方向的梯度直方图中梯度方向的范围是0到360度,直方图每10度一个柱共36个柱,而P131梯度直方图中只有8个柱,而P133梯度直方图有7个柱?

理解:计算得到梯度方向后,就要使用直方图统计特征点邻域内像素对应的梯度方向和幅值。梯度方向的直方图的横轴是梯度方向的角度(梯度方向的范围是0到360度,直方图每36度一个柱共10个柱,或者没45度一个柱共8个柱),纵轴是梯度方向对应梯度幅值的累加,在直方图的峰值就是特征点的主方向。在Lowe的论文还提到了使用高斯函数对直方图进行平滑以增强特征点近的邻域点对关键点方向的作用,并减少突变的影响。为了得到更精确的方向,通常还可以对离散的梯度直方图进行插值拟合。具体而言,关键点的方向可以由和主峰值最近的三个柱值通过抛物线插值得到。在梯度直方图中,当存在一个相当于主峰值80%能量的柱值时,则可以将这个方向认为是该特征点辅助方向。所以,一个特征点可能检测到多个方向(也可以理解为,一个特征点可能产生多个坐标、尺度相同,但是方向不同的特征点)。Lowe在论文中指出15%的关键点具有多方向,而且这些点对匹配的稳定性很关键。

注意区别种子点(子区域)的梯度直方图哦!P134:与求主方向不同,此时每个种子区域的梯度直方图在0-360之间划分为8个方向区间,每个区间为45度,即每个种子点有8个方向的梯度强度信息。
在实际的计算过程中,为了增强匹配的稳健性,Lowe建议对每个关键点使用4×4共16个种子点来描述,这样一个关键点就可以产生128维的SIFT特征向量。

原文地址:https://www.cnblogs.com/Alliswell-WP/p/SIFT_principle.html