【图像】尺度不变特征变换算法(SIFT)

在这里插入图片描述

SIFT(Scale-Invariant Feature Transform),中文含义就是尺度不变特征变换。自1999年由David Lowe提出以后被广泛的应用于CV的各种领域:图像识别,图像检索,3D重建等等,可谓无人不知无人不晓。

由于在此之前的目标检测算法对图片的大小、旋转非常敏感,而SIFT算法是一种基于局部兴趣点的算法,因此不仅对图片大小和旋转不敏感,而且对光照、噪声等影响的抗击能力也非常优秀,因此,该算法在性能和适用范围方面较于之前的算法有着质的改变。这使得该算法对比于之前的算法有着明显的优势,所以,一直以来它都在目标检测和特征提取方向占据着重要的地位。

它的步骤可以主要分两步:1)特征点检出 keypoint localisation,2)特征点描述 feature description。

特征点检出

主要是用了高斯差分函数(DoG),就是把图像做不同程度的高斯模糊blur,平滑的区域或点肯定变化不大,而纹理复杂的比如边缘,点,角之类区域肯定变化很大,这样变化很大的点就是特征点。当然为了找到足够的点,还需要把图像放大缩小几倍(Image Pyramids)来重复这个步骤找特征点。其实DoG并不是Lowe提出的,很久以前就有了,读过SIFT专利的人都知道,SIFT的专利里面也不包括这部分。可代替特征点检出还有很多其他方法如MSER等。

特征点描述

就是一个简单版的HOG,即以检出的特征点为中心选16x16的区域作为local patch,这个区域又可以均分为4x4个子区域,每个子区域中各个像素的梯度都可以分到8个bin里面,这样就得到了4x4x8=128维的特征向量。特征点检出以后还需要一个很重要的步骤就是归一化,计算这个patch的主方向,然后根据这个主方向把patch旋转到特定方向,这样计算的特征就有了方向不变性,也需要根据patch各像素梯度大小把patch缩放到一定的尺度,这样特征就有了尺度不变性。

方向分配

根据图像的图像,可以为每个关键定指定一个基准方向,可以相对于这个指定方向表示关键点的描述符,从而实现了图像的旋转不变性。 关键点的尺度用于选择尺度最接近的高斯平滑图像,使得计算是以尺度不变的方式执行,对每个图像​,分别计算它的梯度幅值和梯度方向, ​ ​ 然后,使用方向直方图统计关键点邻域内的梯度幅值和梯度方向。将0~360度划分成36个区间,每个区间为10度,统计得出的直方图峰值代表关键点的主方向。

猜你喜欢:👇🏻
【图像】Dog(高斯差分)检测角点
【总结】一文了解所有的机器学习评价指标
基于小波变换的图像边缘检测(matlab祖传代码注释)

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值