【图像处理算法】SIFT特征提取

SIFT特征提取

本文主要参考:

Richard Szeliski 《Computer Vision: Algorithms and Applications》

-牧野-《 Sift算子特征点提取、描述及匹配全流程解析》-- 地址:https://blog.csdn.net/dcrmg/article/details/52577555

本人在学习虹膜识别技术的过程中,需要使用SIFT算子提取虹膜图像的特征,而SIFT作为经典、有效的图像特征提取方法,其中的思想和方法十分值得借鉴。因此希望通过本文分享学习过程中,总结的SIFT算法主要步骤和思路。

1. SIFT简介

我们人类可以快速地从不同地角度、距离拍摄的图像中分辨出图中物体是否相同。而这个能力源于我们的大脑能够分辨图像中物体的特征,能够基于物体的形状、颜色、纹理等特征是否匹配迅速作出判断。当我们使用算法对图像对进行匹配时,思路也是通过描述图像的特征信息以及匹配这些特征信息完成的,而SIFT算法就是一个特征检测和特征描述的过程。
SIFT算法,由David G.Lowe教授在1999年提出,全称是Scale Invariant Feature Transform,因此该算法最突出的特点就是能够在不同尺度空间上查找关键点,并计算其大小、方向和尺度等信息。除此,SIFT算法还具备以下特点:

  1. 提取的特征对旋转、尺度、亮度变化具有不变形,以及对视角和噪声变化具有稳定性。(在虹膜识别中,由于人眼图像采集过程中,存在光线、拍摄角度等环境因素的变化导致同一人的人眼图像也会出现旋转、尺度和亮度等变化,因此要求算法对这些变化应该具有鲁棒性。)
  2. 提取的特征信息丰富,能够快速用于图像匹配
  3. 能够对少量物体提取大量特征向量(虹膜识别中,由于我们仅使用虹膜的纹理特征进行识别,因此需要对虹膜提取更多的特征用于匹配提高准确率。)
  4. 具备可拓展性,例如与其他形式特征向量联合使用(虹膜识别中,将SIFT算法提取的特征向量进行了序编码后再进行特征匹配。)

2. SIFT主要思路和步骤

【图像处理算法】SIFT特征提取_第1张图片
SIFT算法提取特征主要包括两个步骤:特征点检测和特征点描述。首先提取图像中关于尺度、旋转和亮度等保持不变的特征点,然后对这些特征点信息进行描述,生成可以描述特征点方向信息和纹理信息的特征向量。对于不同的物体使用SIFT算法生成的特征向量应当具有较大的差异,因此只要计算图像对的特征向量之间的距离,便可以判断两图像是否拍摄同一物体。

2.1 特征点检测

“点特征可以用来寻找一个不同图像中的对应位置的稀疏集合,这通常是计算摄像机姿态的一个前期步骤,而摄像机姿态计算又是使用立体视觉匹配计算稠密对应集合的一个前提…关键点的一个重要优点是,它们甚至能够在出现拥挤(遮挡)、大的尺度和方向变化的情况下很好地做匹配。”
SIFT提取特征点的方法是主要使用高斯金字塔和高斯差分金字塔,希望了解具体方法的读者可以参考以下博文:

《Sift中尺度空间、高斯金字塔、差分金字塔(DOG金字塔)、图像金字塔》
地址:https://blog.csdn.net/dcrmg/article/details/52561656

这里仅记录下个人理解的相应方法的作用。
对于高斯金字塔,同一组不同层的图像,采用了成比例的平滑因子参数σ,这些图像是为了模拟由远到近得到的不同模糊程度下的图像。而不同组的图像是对上一组图像降采样得到的,具有不同的尺寸,因此这些图像是利用一张图像信息模拟不同尺度空间下的图像。
对于高斯差分金字塔,是通过同组下一层图像减去上一层图像像素的方法得到不同模糊程度以及不同尺度下的特征(对图像进行归一化后可以明显观察到),其中某些特征在所有图像中都存在,即具有不变性。

高斯差分金字塔处理后的图像由于处理过程中进行了降采样处理,因此不同尺寸的图像所具备的特征点存在坐标不对应的问题,需要对特征点针对不同尺度在原尺寸上进行精确定位,具体方法参考如下博文:

《特征点匹配——SIFT算法详解》
地址:https://blog.csdn.net/lhanchao/article/details/52345845

2.2 特征点描述

特征点描述是希望通过一种统一的数据方式,例如特征向量或者特征矩阵等,对图像中特征点方向、纹理等信息进行描述,便于后续不同图像间进行匹配和比较。SIFT算法采用的特征点描述方法可以参考以上提到的参考文章。
由于SIFT算法的特征点描述方法考虑的是关键点领域内的梯度信息,既包含了梯度方向信息也包含了这些梯度方向的几何分布关系信息,这相当于对图像关键点处纹理信息进行了描述。由于关键点的提取考虑了尺度变化以及模糊程度变化,因此在这些关键点的信息同样具备不变性。

生成了包含关键点信息的128维特征向量后,既可以直接计算不同图像关键点的特征向量之间的距离进行匹配,也可以将该特征向量用于后续其他特征提取和特征匹配方法,例如虹膜识别中将该向量进行了后续的序特征提取,进一步提高了特征的描述能力,这体现了SIFT算法的可拓展性。

本文仅作为学习笔记交流分享用。由于本人水平有限,文章可能出现纰漏,欢迎大家进行交流指正。谢谢阅读!

你可能感兴趣的:(【图像处理算法】,计算机视觉,算法)