sift总结

来源:互联网 发布:windows正版系统购买 编辑:程序博客网 时间:2024/05/21 06:34

一直对尺度空间的含义理解很模糊,目前还是缺乏一个本质的认识,只是从直观上理解大尺度对应的是总体轮廓,小尺度对应的是细节,要实现尺度不变就是要保证在不同的物理距离看到的图像(模糊程度不同)都能正确的被检测和匹配,高斯核函数对原始图像进行模糊恰好能拟合这一变化,而传统的图像金字塔是在原始图像进行下采样,并不会严重的丢失细节只是分辨率变低了,譬如分辨率减半的图像和在两倍物距采集的图像细节清晰度还是有明显区别的,sift就是通过高斯模糊来在尺度空间(不同的视角效果)中寻找不变的特征,高斯核函数和下采样相结合可以得到更远的视角得到的效果(远处的景物视觉效果受周围更大的物理范围像素的印象),而实际的模糊的窗口未变,这个就是通过上层下采样之后的图像来在同样的窗口下进行高斯模糊。
http://cauthy.wordpress.com/2010/10/07/sift%e7%ae%97%e6%b3%95%e6%a6%82%e5%bf%b5/#comment-13
1 Vote

 

Quantcast


SIFT算法总结

虽然网上有很多类似总结的东西,但是还是要自己总结起来才对味,看了两周的算子,很多东西都是慢慢理解起来的,首先总结几个概念

1. 图像金字塔

没有仔细的去看理论,但是个人感觉就是将图像降采样得到不同分辨率下的图像进行分析。因为我们做识别或者匹配的时候,目标远近的不同,必然会得到不同大小的图像,那么在识别或者匹配的时候就很困难,而在图像金字塔中就可以,因为原始图像已经变成了图像宽度和高度的连续函数,总会在某个图像大小下面找到相同的匹配。一般图像金字塔都是按照高度和宽度的一半进行降采样。

2. 卷积

其实这个概念在学习信号与系统的时候就接触了,可是那会只是机械的做题目,没有理解。后来学习小波分析和去旁听了数字信号处理的时候才有了点感觉,当时问小波分析的老师,为什么采样是卷积的过程,就是说卷积这种操作是怎么出现的(举个例子,乘法操作就是从加法操作过来的),老师说这是数学推导出来的。。汗。。。后来数字信号处理的老师用离散的方法推导过。

卷积在离散域处理就是一个累加的过程,具体推导等找到公式再说,在连续域自然就是求积分的操作。在图像中操作直观的感觉就是加权平均,拿一个模板过来,在模板之内的图像像素值和模板在该位置的系数加权乘积,最后做个累加,作为模板中心的像素的灰度值。我的理解是景物通过一个窗口生成了二维图像,这个窗口就是模板,在这个模板内的景物亮度加权最后生成了图像平面中一个像素点的亮度。

最常用的模板有很多,均值,中值,最大最小等,而在SIFT中或者说图像金字塔分析中最常用的就是高斯,高斯函数有很多好处,单调,可分。。。

3. 图像插值

OpenCV里面图像插值有以下几种方式
CV_INTER_NN – 最近邻差值,

CV_INTER_LINEAR – 双线性差值 (缺省使用)

CV_INTER_AREA – 使用象素关系重采样。当图像缩小时候,该方法可以避免波纹出现。当图像放大时,类似于 CV_INTER_NN 方法..

CV_INTER_CUBIC – 立方差值 

图像插值很重要,放大,缩小图像都需要这个操作,而且构造金字塔的时候,因为实质上我们只能构造有限的金字塔,那么求极值的时候只能用插值。

高斯金字塔:一般在构造高斯金字塔的时候都是预先对图像做了放大,可以得到更多的特征点。高斯金字塔分为组Octave和层Interval,每组对应若干层。第一组第一层为源图像,然后做一次高斯卷积得到第二层,然后再做高斯卷积得到第三次,第一组的高斯sigma0,sigma,k*sigma,k*k*sigma。。。每次k倍,第二组的第一层图像时第一组第三层降采样得到的,然后以此类推。(这里的所有序列都从0开始),即第一组层数0 1 2 3 4 5,第二组层数0 1 2 3 4 5,第二组第0层应该为第一组第3层降采样得到,每组里面高斯sigma都是k倍,即第二组每层的sigma和第一组每层的sigma是相同的。按照论文里面的算法就是初始的sigma1.6k=1/S。

4. 尺度空间

这个还是没有理解,直观的感觉就是,尺度越大,图像越模糊。网上有人说 大尺度对应图像的概貌特征,小尺度对应图像的细节特征。在大尺度下图像的细节很少。

远人无目,远树无叶,就是在远的情况下,或者尺度大的情况下,看不清人和树的细节!

这样,最后寻找到的关键点的尺度就是组所在的尺度加上自己本身的尺度,具体来说就是sigma*2^(octvl+intvl/S)octv为关键点所在的组数,intvl为关键点所在的层数,这个层数是插值得到的。

5. 图像变化的类型:

几何变化:旋转rotation;相似(旋转+各方向的尺度缩放scale);放射(非各向相同的尺度缩放)

灰度变化:仿射灰度变化I->aI+b

针对这些变化来寻找合适的描述子descriptor,看了网上的介绍,现在的研究思路大致是1。选取一个判别准则找点或线,一般通过局部极值(能量最大值)2。判断稳定性,加一些约束条件,删除不稳定的点;3。产生描述符,通过核的方式加权,使得描述符鲁棒性更好,然后做一些处理,如归一化等。这些技术基本上都是建立在图像梯度和梯度方向的信息上,再加上个Laplace,等等。

-33.883000 151.217000

原创粉丝点击