sift特征概述

参考博客:
https://www.cnblogs.com/starfire86/p/5735061.html

https://blog.csdn.net/happyer88/article/details/45817305

https://blog.csdn.net/shiyongraow/article/details/78296710

http://www.360doc.com/content/16/0918/18/34938371_591795369.shtml

以下内容是在上四篇博客的基础下理解而来,大家可以观看上面四篇博客。

harris角点不具备尺度不变性,而sift算子具有尺度不变性,那么sift算子的原理是什么呢?有两篇论文证明了这样一个事情:高斯算子是唯一的尺度变换线性算子。怎么理解这句话呢?第一,高斯算子是个线型算子,第二高斯算子是唯一的尺度变换算子。那么什么叫做尺度变换呢?就是只改变图形的清晰度,分辨率而不引入任何的其他噪声和杂质。

sift算子的目的是模拟人眼观察物体的一个过程,人眼具有改变物体模糊度的功能,比如人眼观看一个物体,首先会对物体进行模糊,然后观察整体轮廓,然后慢慢提高物体的分辨率,直到看到自己感兴趣的部分。在sift算法里面,高斯算子的作用就是模拟人眼观察物体的一个渐变的过程。在sift算法里面,增加了一个z维度的变量,就是物体离人眼的距离,当物体离人眼越远,物体就越小,这里通过对图像进行下采样进行的。

上诉的过程sift通过对图像制作高斯金字塔来进行执行。
制作好高斯金字塔后我们就要寻找特征点了,2002年Mikolajczyk在详细的实验比较中发现尺度归一化的高斯拉普拉斯函数的极大值和极小值能产生稳定的图像特征。但此处若使用LOG,则后续计算量较大,故使用DOG来代替LOG,用差分代替微分。
所以就在高斯金字塔的基础上产生了高斯差分金字塔。根据https://blog.csdn.net/happyer88/article/details/45817305中的公式可以知道,差分后的尺度由减数的尺度决定。
为了保证相邻尺度的连续性,高斯差分金字塔层数要有5层,中间的三层用来计算极值点。为了计算五层高斯差分金字塔就得有六层高斯金字塔。
那么现在的关键是如何选取每层高斯金字塔的尺度。
sift算子使用的函数是: σ = σ 0 2 o + s S
这里的S就是中间用来计算极值点的层数一般为3,具体的连续性https://www.cnblogs.com/starfire86/p/5735061.html这个博客讲的很好。

按照上面的整好高斯金字塔和高斯差分金字塔后,不同octacve的模糊系数刚好是上一个octacve的两倍。而每个octave的倒数第三层的模糊系数刚好是 2 σ
所以对这层的数据进行下采样然后在对这个图像执行与上一层一样的操作就能获取两倍的模糊度。

接下来我们获取特征点,特征点的定位上面四篇博客说的很清楚,我这里说一说特征点的再定位,其实我们在求sift关键点的过程中总共有三个变量x,y和 σ 并且我们用于求极值点的数据是离散点,那么这就会导致我们的数据不会很精确。所以这里需要对关键点进行再精确的定位。那么怎么做呢?首先在关键点附近对数据进行插值

将离散数据在我们初步找到的极值点处进行泰勒展开(二阶即可)然后对展开式求导,并使导数为0,这时我们会得到一个新的极值点。这相当于在关键点附近找到了新的极值点,如果我们的关键点就是精确的极值点,那么新的极值点大小会和之前的一样,如果我们的关键点不是精确的极值点,那么新的极值点会和之前的关键点有很大的差别,我们一般设这个差别为0.5,大于这个极值点就进行迭代。

然后我们将在关键点附近构建方向直方图作为关键点的描述子。

总结一下方便之后看懂surf特征算子:
其实sift说了这么多这么复杂,其实基本的原理很是简单,就是利用二阶高斯函数对图像进行滤波后的图像具有尺度无关性,但是直接对图像进行二阶高斯滤波计算量很大,所以采取DOG的方法来进行近似从而减少计算量,然后再滤波之后的图像寻找极值点并生成描述子。一般每个octave计算三个尺度上的不变性关键点。高斯函数的 σ 控制的是分辨率尺度,而每层octave控制的是空间的尺度,两个尺度结合就形成了完整的多尺度。然后在每层空间尺度上计算分辨率尺度的不变特征点。而每个空间尺度的分辨率尺度是上一层octave的两倍。这样保证了分辨率尺度的一定的重复性和连续性。
相对复杂的等效做法是直接通过下采样形成图像金字塔然后对金字塔的每张图像进行二阶高斯模糊计算,然后寻找极值点。

这位老兄把自己的疑问和解答卸载了博客上,推荐看看:
https://blog.csdn.net/viewcode/article/details/8510338

代码请参考这位老兄的博客:
https://blog.csdn.net/hit2015spring/article/details/52895367

猜你喜欢

转载自blog.csdn.net/Du_Shuang/article/details/82626063