1.SIFI
https://blog.csdn.net/weixin_38404120/article/details/73740612(参考了这个作者的内容)
结合书上加博客的内容进行理解;
求取SIFI特征的步骤:
首先要对图像归一化,然后将图像扩大为原来的两倍,再滤波。
1.检测尺度空间的极值
1.1 首先不同尺度空间就是原来图像经过不同高斯滤核的高斯函数所形成的图像;(注意高斯函数有好多很好的性质)
1.2 那么为什么要从不同的尺度空间的寻找极值呢?
无论人眼观测照片的距离有多远,只要能辨认出物体关键的轮廓特征,那就可以大致知道图像所表达的信息。
计算机也一样,高斯卷积之后,图像虽然变模糊了。但是整体的像素没有变,依然可以找到灰度值突变的点.
(整体像素都经过了一个高斯函数的加权求值) 就是说图像虽然模糊了,但是你想要的特征点依然存在,却解决了其他的一些问题(比如说干扰特征点的提取)
1.3 根据尺度空间构建高斯金字塔核DOG金字塔
比较一下尺度空间和高斯金字塔?
(1)“尺度空间表达”在所有尺度上具有相同分辨率,而“图像金字塔化”在每层的表达上分辨率都会减少固定比率。
(2)“图像金字塔化”处理速度快,占用存储空间小,而“尺度空间表达”刚好相反
那么将两者融合起来的话,就得到了LOG图像,高斯拉普拉斯变换图像。其步骤是:先将照片降采样,得到了不同分辨率下的图像金字塔。再对每层图像进行高斯卷积。这样一来,原本的图像金字塔每层只有一张图像,而卷积后,每层又增加了多张不同模糊程度下的照片
但是LOG图像不是我们想要的,我们要的是DOG图像(高斯差分图像); 这里有个问题为什么一定需要DOG图像而LOG就不可以呢。
构造高斯差分图像的步骤是:在获得LOG图像后,用其相邻的图像进行相减,得到所有图像重新构造的金字塔就是DOG金字塔;
找到DOG图像之后,下面在进行寻找极值点;
当得到DOG金字塔后,我们接下来要做的是寻找DOG极值点。每个像素点与其周围的像素点比较,当其大于或者小于所有相邻点时,即为极值点。
注意:不仅仅是同一张图的像素找极值点(这里的极值点是针对临近的图形的所有像素的极值点)
这里找的极值点在精度上满足了,但我们找到的点都是我们想要的吗?
极值点有可能是 是噪点 或者是边缘轮廓带来的灰度值的突变;
结合边缘的性质,利用Hession矩阵求曲率;(harris)
下面找极值的方向
这里 说出现第二峰值 这个问题,我不是很清楚;
下面进行关键点的描述
接下来的要做的是:关键点的描述,即用一组向量将关键点描述出来
1.将原图像x轴转到与主方向相同的方向
2.,再以特征点为中心,在旋转后的图像中取一个mσBp x mσBp大小的图像区域。并将它等间隔划分成Bp X Bp个子区域,每个间隔为mσ像元(没有理解)
3.在每子区域内计算8个方向的梯度方向直方图,绘制每个梯度方向的累加值,形成一个种子点。与求特征点主方向时有所不同,此时,每个子区域的梯度方向直方图将0°~360°划分为8个方向范围,每个范围为45°,这样,每个种子点共有8个方向的梯度强度信息。由于存在4X4(Bp X Bp)个子区域,所以,共有4X4X8=128个数据,最终形成128维的SIFT特征矢量。同样,对于特征矢量需要进行高斯加权处理,加权采用方差为mσBp/2的标准高斯函数,其中距离为各点相对于特征点的距离。使用高斯权重的是为了防止位置微小的变化给特征向量带来很大的改变,并且给远离特征点的点赋予较小的权重,以防止错误的匹配
有很多内容都是参考那个博主的,主要是自己理解,目前理解了一点。