【MAC考核】SIFT算法学习笔记
SIFT算法学习笔记
尺度不变特征转换(Scale-invariant feature transform)是一种用来侦测与描述影像中的局部性特征的视觉算法,即通过求一幅图中的特征点及其有关尺度和方向的描述子得到特征,并进行图像特征点匹配。SIFT所查找到的关键点是一些十分突出,不会因光照,仿射变换和噪音等因素而变化的点,如角点、边缘点、暗区的亮点及亮区的暗点等,噪声也保持一定程度的稳定性,除此之外SIFT还具有独特性,多量性,高速性,可扩展性等特点。
(1)构建尺度空间
①尺度空间的表示
二维图像的尺度空间函数L,高斯函数与原图像的卷积。
其中二维高斯函数为:,符号“*”表示卷积。
在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆,如图分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。(根据高斯函数的可分离性,可对二维高斯模糊函数进行改进。)
② 高斯金字塔的构建
尺度空间在实现时使用高斯金字塔表示,高斯金字塔的构建分为两部分:对图像做不同尺度的高斯模糊;对图像做降采样(隔点采样)。后来有(2)点改进得到了高斯差分金字塔。
(2)使用DOG近似LOG定位极值点(关键点)
①(laplacian-gauss)LOG
LOG(高斯-拉普拉斯算子)是一种边缘检测算子,产生稳定的图像特征。公式为:
在此,LOG空间中的极值点被初步筛选特征点,由于LOG计算比较耗时,故采用DOG计算(DOG是LOG计算的近似,如图2所示)。
②Difference of Gaussian(DOG):
为了有效的在尺度空间检测到稳定的关键点,作者提出了高斯差分尺度空间(DOG scale-space),公式为,利用不同尺度的高斯差分核与图像卷积生成。
在实际计算时,使用高斯金字塔每组中相邻上下两层图像相减(如图3),得到高斯差分图像,接着进行极值检测。
(4)关键点描述子的生成
接下来建立一个描述符,以便于提高特征点正确匹配的概率,用一组向量将这个关键点描述出来,使其不随各种变化而改变,比如光照变化、视角变化等。Lowe作者建议描述子使用在关键点尺度空间内44的窗口中计算的8个方向的梯度信息,共44*8=128维向量表征作为每一个特征点的描述子。特征向量形成后,为了去除光照变化的影响,需要对它们进行归一化处理,并设置门限值,最后按特征点的尺度对特征描述向量进行排序。至此,SIFT特征描述向量生成。
参考大佬博客资料:
https://blog.csdn.net/abcjennifer/article/details/7639488
https://blog.csdn.net/zddblog/article/details/7521424
https://blog.csdn.net/sss_369/article/details/84674639
https://blog.csdn.net/touch_dream/article/details/62237018
https://blog.csdn.net/silence2015/article/details/77101295
https://blog.csdn.net/abcjennifer/article/details/7639681
https://www.cnblogs.com/herenzhiming/articles/5276106.html