【图像处理】SIFT(Scale Invariant Feature Transform)

  • SIFT算法可以在不同的尺度空间查找关键点,并计算出关键点的方向进行特征描述,实现图像特征匹配
    • SIFT即尺度不变特征变换,是用于图像处理领域的一种描述。这种描述具有尺度不变性,可在图像中检测出关键点,是一种局部特征描述子
  • 传统的图像特征匹配有三个步骤:
    • 特征提取:从图像中提取关键点
    • 特征描述:用一组数学向量对关键点进行描述
    • 特征匹配:特征向量之间的距离计算

解决的问题

  • SIFT算法可以解决在图像处理中存在的以下问题:
    • 目标的旋转、缩放、平移(RST)
    • 图像放射/投影变换(视点viewpoint)
    • 光照影响(illumination)
    • 部分目标遮挡(occlusion)
    • 杂物场景(clutter)
    • 噪声
  • SIFT算法的特点:
    • 具有较好的稳定性不变性,能够适应旋转、尺度缩放、亮度的变化,能在一定程度上不受视角变化、仿射变换、噪声的干扰
    • 区分性好,能够在海量特征数据库中进行快速准确的区分信息进行匹配
    • 多量性,就算只有单个物体,也能产生大量特征向量
    • 高速性,能够快速的进行特征向量匹配
    • 可扩展性,能够与其它形式的特征向量进行联合

算法原理

  • SIFT(Scale Invariant Feature Transform)全称尺度不变特征变换,SIFT算子是把图像中检测到的特征点用一个128维的特征向量进行描述,因此一幅图像经过SIFT算法后表示为一个128维的特征向量集,该特征向量集具有对图像缩放,平移,旋转不变的特征,对于光照、仿射和投影变换也有一定的不变性,是一种非常优秀的局部特征描述算法。
  • 算法实质:在不同的尺度空间查找关键点,并计算出关键点的方向用特征向量表示,进行后续匹配。

1、特征提取:提取关键点

  • 核心思想:搜索所有尺度空间上的图像位置,通过高斯微分函数来识别具有尺度和旋转不变的关键点
    • 关键点是一些十分突出的不会因光照、尺度、旋转等因素而消失的点,比如角点、边缘点、暗区域的亮点以及亮区域的暗点。

(1)尺度空间

  • 在搜索关键点之前,首先我们需要了解什么是尺度空间
  • 直观感受,如下图所示,从左到右尺度逐渐增大

  • 小尺度对应于图像的细节特征,大尺度对应于图像的概貌特征
  • 数学表示:
    • 一个图像的尺度空间

      ,定义为一个变化尺度的高斯函数与原图像的卷积,即:
    • 高斯函数我们表示为
      • ,其中m、n表示高斯模板的维度,(x,y)表示图像像素的位置,为尺度空间因子,越小表示图像被平滑的越少,相应的尺度越小(越细节)

(2)建立高斯金字塔

  • 了解什么是尺度空间之后,为了实现在不同的尺度空间搜索,我们需要使用高斯图像金字塔来表示不同的尺度空间
  • 实现步骤:
    • 对图像做不同尺度的高斯模糊
    • 对图像做降采样(隔点采样)

  • 如上图所示,原始图像为金字塔第一层,为了让尺度体现连续性,在进行降采样之前添加高斯滤波,将每层的一张图像使用不同参数做高斯模糊得到多张高斯模糊图像,随后进行降采样(由前一组图像的倒数第三张图像隔点采样得到),以此类推。
    • Octave表示一幅图像可产生的图像组数(金字塔每层只有一组图像,组数和金字塔层数相等),Interval表示一组图像包括的图像层数
    • 高斯图像金字塔共有o组,s层,则

      ,其中,σ表示尺度空间坐标,s表示sub-level层坐标,表示初始尺度,S表示每组层数(一般为3~5)

(3)建立DOG高斯差分金字塔

  • 再表示完尺度空间之后,为了有效提取稳定的关键点,我们利用不同尺度的高斯差分核与卷积生成DOG高斯差分金字塔
  • DOG函数:

    • 就是将图像在不同参数下的高斯滤波结果相减,得到DOG图像,描绘的是目标的轮廓
  • 可以通过高斯差分图像看出图像上的像素值变化情况。(如果没有变化,也就没有特征。特征必须是变化尽可能多的点。)

(4)DOG局部极值检测

  • 建立DOG高斯差分金字塔后,特征点(关键点)是由DOG空间的局部极值点组成的
  • 为了寻找DOG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小

  • 中间的检测点和它同尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维图像空间都检测到极值点

(5)关键点的精确定位

  • 以上方法检测到的极值点是离散空间的极值点,我们还需要通过拟合三维二次函数来精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点(因为DOG算子会产生较强的边缘响应),以增强匹配稳定性、提高抗噪声能力

(6)关键点主方向分配

  • 通过尺度不变性求极值点,需要利用图像的局部特征为给每一个关键点分配一个基准方向,使描述子对图像旋转具有不变性
  • 关键点主方向分配就是基于图像局部的梯度方向,分配给每个关键点位置一个或多个方向。所有后面的对图像数据的操作都相对于关键点的方向、尺度和位置进行变换,使得描述符具有旋转不变性。
  • 对于在DOG金字塔中检测出的关键点,采集其所在高斯金字塔图像3σ邻域窗口内像素的梯度和方向分布特征。梯度的模值和方向如下:

  • 在完成关键点的梯度计算后,使用直方图统计邻域内像素的梯度和方向
    • 梯度直方图将0~360度的方向范围分为36个柱(bins),其中每柱10度。如下图所示,直方图的峰值方向代表了关键点的主方向(为简化,图中只画了八个方向的直方图)

  • 方向直方图的峰值代表了该特征点处邻域梯度的方向,以直方图中最大值作为该关键点的主方向。
    • 为了增强匹配的鲁棒性,只保留峰值大于主方向峰值80%的方向作为该关键点的辅方向。Lowe的论文指出大概有15%关键点具有多方向,但这些点对匹配的稳定性至为关键。检测结果如下图:

  • 至此,将检测出的含有位置、尺度和方向的关键点即是该图像的SIFT关键点

2、特征描述:用向量表示特征点

  • 核心思想:为每个特征点建立描述符(描述子),即用一组向量将特征点描述出来,使其不随各种变化而变化
    • 描述子不但包括特征点,也包换特征点周围对其有贡献的像素点,并且描述符应该有较高的独特性,以便于提高特征点正确匹配的概率。
  • SIFT描述子是关键点邻域高斯图像梯度统计结果的一种表示
    • 通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。
  • Lowe建议描述子使用在关键点尺度空间内4*4的窗口中计算的8个方向的梯度信息,共4*4*8=128维向量表征。实现步骤如下:

(1)计算描述子所需的图像区域

  • 因为特征描述子与特征点所在的尺度有关,所以,对梯度的求取应在特征点对应的高斯图像上进行。
  • 将关键点附近的邻域划分为d*d个子区域,每个子区域做为一个种子点,每个种子点有8个方向
  • 计算所需的图像区域半径

(2)将坐标轴旋转为关键点的方向

  • 将坐标轴旋转为关键点的方向是为了确保旋转不变性

(3)将邻域内的采样点分配到对应的子区域内

  • 将子区域内的梯度值分配到8个方向上,计算其权值。
  • 旋转后的采样点坐标在半径为radius的圆内被分配到的子区域,计算影响子区域的采样点的梯度和方向,分配到8个方向上。

(4)插值计算每个种子八个方向的梯度

  • 如上图所示,将所得采样点在子区域中的下标(x'',y'')(图中蓝色窗口内红色点)线性插值,计算其对每个种子点的贡献。

(5)描述符向量元素门限化

  • 把方向直方图每个方向上梯度幅值限制在一定门限值一下(门限一般取0.2)

(6)描述符向量元素归一化

  • 特征向量形成后,为了去除光照变化的影响,需要对它们进行归一化处理,对于图像灰度值整体漂移,图像各点的梯度是邻域像素相减得到,所以也能去除。

3、特征匹配:特征向量之间的距离计算

  • 通过各关键点的特征向量,进行两两比较找出相互匹配的若干对特征点,建立景物间的对应关系
  • 实现:
    • 分别对模板图(参考图,reference image)和实时图(观测图, observation image)建立关键点描述子集合
    • 目标的识别是通过两点集内关键点描述子的比对来完成(具有128维的关键点描述子的相似性度量采用欧式距离)
    • 匹配可采取穷举法完成,但所花费的时间太多。所以一般采用kd树(平衡二叉树)的数据结构来完成搜索。搜索的内容是以目标图像的关键点为基准,搜索与目标图像的特征点最邻近的原图像特征点和次邻近的原图像特征点
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值