SIFT算法总结

SIFT算法是一种用于提取图像特征点的技术,具有旋转不变性和伸缩不变性。算法包含尺度空间极值检测、关键点定位、方向分配及描述符提取四个步骤。广泛应用于图像识别等领域。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SIFT算法由D.G.Lowe 1999年提出,2004年完善总结,论文发表在2004年的IJCV上,主要用于提取具有图像旋转不变性和伸缩不变性的特征点。这项技术可以推广到图像识别、图像拼接以及图像恢复等。

论文详细地址:lowe sift算法

算法主要分为4个步骤:

 

  • scale-space extrema detection--尺度空间上的极值检测
  • keypoint localization--关键点的定位
  • orientation assignment --为关键点标定方向
  • keypoint descriptor--提取特征点描述符

$1.  尺度空间上的极值检测

      在介绍这一部分的时候,先引入几个概念:

 

  • 降采样:对于一幅图像而言的降采样就是每隔几行、几列得到取一点,组成一个新的图像。以比例因子为2的降采样来说:就是対一幅图像每隔一行一列取一点。
  • 升采样:其实一种插值,就是在一幅图像里利用相关的插值运算得到一幅大的图像!比如比例因子为2的升采样就是每个相邻像素点种插值出一个像素(这里包括XY两个方向),最常用的插值方法有线性插值等。
  • 图像金字塔:由一个原始图像经过降采样得到一幅图像,再对新的图像做降采样,重复多次构成的一组集合。以采样因子2为例说明,如果形象的把这些图像摞起来就想一个金字塔,每次之间长和宽大小恰好为2倍关系,故此得名。
  • 高斯卷积:就是权函数为高斯函数的模板进行卷积运算。通常做高斯卷积后的图像会比原图像平滑但也会模糊,所以又称高斯模糊!
  • 高斯金字塔:高斯金字塔里有两个概念:组(Octave)和层(LevelInterval),每组里有若干层!高斯金字塔的构造是这样的,第一组的第一层为原图像,然后将图像做一次高斯平滑(高斯卷积、高斯模糊)高斯平滑里有一个参数δ,SIFT里作者取1.6 。然后将δ乘一个比例系数k作为新的平滑因子来平滑第一组第二层得到第三层,重复若干次,得到L层(L一般取5)他们分别对应的平滑参数为:0,δ,kδ,k2δ,k3δ。然后将最后一幅图像做比例因子为2的降采样得到第二组的第一层,然后对第二组的第一层做参数是δ的高斯平滑,对第二层做kδ的平滑得到第三层.....这里一定注意:每组对应的平滑因子δ是一样的,而不是像有的资料上说的持续递增。这样反复形成了OL层的高斯金字塔。一般模糊的高斯模板长宽都约为6δ(这里δ为当次的平滑因子,就是可能是kδ,k2δ..
  • DoGDifference of Gaussian)金字塔:是由高斯金字塔构造出来的,他的第一组第一层是由高斯金字塔的第一组第二层减第一组第一层,他的第一组第二层是由高斯金字塔的第一组第三层减第一组第二层得到。每组都这样就生成了一个DoG金字塔。顺便说一下,DoG金字塔每组图像几乎都是一片黑,但仔细看你能看出轮廓的。
最后关于金字塔具体处理的说明:

1)在SIFT里高斯金字塔的第一组第一层通常是由一个源图像长宽扩大一倍开始的,这样做是为了得到更多的特征点;

2)大家可以发现如果用每组5层的高斯金字塔构造一个DOG金子塔的话,DOG金字塔每组的层数是4;

3)对于DOG金字塔,特征点的搜索从每组的第二层到倒数第二层,所以如果DOG金字塔的有效层数目为n都话,那么DOG金字塔应该有n+2层,那么对应的高斯金字塔应该有n+3层;

4)高斯金字塔从第二组开始的每组第一层是由上一组的倒数第二层采样得到的

讲了这么多概念,现在正式开始讲解如何在尺度空间里寻找特征点。

由于图像进行伸缩等变换后尺度空间发生变化,所以为了方便找出匹配点,需要图像在不同的空间里进行平滑,并相减得到更多的边缘等高频信息,高斯平滑并计算DOG金字塔利用下面的3个计算公式:

至于为什么用DOG算子来提取特征点,而不是Hessian或者其他角点方法比如Harris,是因为Mikolajczyk发现通过DOG算子计算出来的局部区域极大值和极小值与上述几种角点相比能产生更加稳定的特征点。

但是上面的公式和DOG又有什么关系呢,两者只差了(k-1)a^2倍而已,不影响特征点的寻找。

有一点需要说明的是,这里不同的a就是代表不同的尺度,a的值越大,意味着尺度空间越大,具体怎么样理解尺度这个概念呢,就是需要描述的像素灰度分布越广,尺度越广,也就是说越模糊的图像尺度也越大,举个例子,有两个灰度值分别为0和1,模糊后变为0.4和0.6,要表示这两个灰度值需要更多的参数,尺度变大,更简单的说,尺度就是频率,高斯模糊越明显,尺度越大,因为这时图像是低频的。

剩下的只需要在DOG金字塔里寻找3*3*3邻域的极值即为我们所要寻找的feature point,如图所示

$2. 关键点的精确定位

通过拟合三维二次函数以精确确定关键点的位置和尺度,同时去除低对比度的关键点和不稳定的边缘响应点,以增强匹配稳定性,提高抗噪声能力。

1)空间尺度函数泰勒展开式如(4)所示

2)在已经检测到的特征点中,要去掉低对比度的特征点和不稳定的边缘响应点,去除低对比度的点:把公式(5)带入公式(4),可得(6),若(6)的值大于0.03,该特征点就保留下来,否则舍弃。

3)边缘响应的去除

一个定义不好的高斯差分算子的极值在横跨边缘的地方有较大的主曲率,而在垂直边缘的方向有较小的主曲率,主曲率通过一个2*2的Hessian矩阵H求出:

导数由采样点相邻差估计得到,D的主曲率和H的特征值成正比,令b为最大特征值,c为最小特征值,则

$3. 关键点方向分配

利用关键点邻域像素的梯度方向分布特性为每个关键点指定方向参数,使算子具备旋转不变性。

梯度大小和方向计算公式如下:

orientation histogram的生成,将0~360度分到36个区间中,每个区间的高度计算如下,其中a为当前的尺度,(x0,y0)为当前特征点的坐标而g(x0,y0,1.5a)则是高斯滤波系数。

主方向定义为拥有最高峰hm的那个区间,而其他的区间高度为0.8*hm之上的区间方向,可以认为是该特征点的辅方向,这样就增强了匹配的鲁棒性。

这样,每个关键点key points就有三个信息:位置、所处尺度a、方向。

若表示出来,效果如下:

$4. 提取特征描述子

 

  • 首先将坐标轴旋转为关键点的方向,以确保旋转不变性
  • 为了方便起见,在$3部分利用公式7计算梯度时,应该计算全体现像素点的梯度方向和大小;
  • lowe建议选取16*16邻域,然后将这个大区域分为16个4*4区域,再分别对每个区域16个像素点的梯度大小乘上高斯模版系数
  • 将16个单位方向向量按照常规的8方向分布,并乘上上一步计算的幅值叠加起来,得到类似图2右边的效果。
最后,一共有4*4*8=128维向量来表征这个特征点。

此时,SIFT特征向量已经去除了尺度变化、旋转等几何变形因素的影响,再继续将特征向量的长度归一化,则可以进一步去除光照变化的影响。

内容概要:该论文探讨了一种基于粒子群优化(PSO)的STAR-RIS辅助NOMA无线通信网络优化方法。STAR-RIS作为一种新型可重构智能表面,能同时反射和传输信号,与传统仅能反射的RIS不同。结合NOMA技术,STAR-RIS可以提升覆盖范围、用户容量和频谱效率。针对STAR-RIS元素众多导致获取完整信道状态信息(CSI)开销大的问题,作者提出一种在不依赖完整CSI的情况下,联合优化功率分配、基站波束成形以及STAR-RIS的传输和反射波束成形向量的方法,以最大化总可实现速率并确保每个用户的最低速率要求。仿真结果显示,该方案优于STAR-RIS辅助的OMA系统。 适合人群:具备一定无线通信理论基础、对智能反射面技术和非正交多址接入技术感兴趣的科研人员和工程师。 使用场景及目标:①适用于希望深入了解STAR-RIS与NOMA结合的研究者;②为解决无线通信中频谱资源紧张、提高系统性能提供新的思路和技术手段;③帮助理解PSO算法在无线通信优化问题中的应用。 其他说明:文中提供了详细的Python代码实现,涵盖系统参数设置、信道建模、速率计算、目标函数定义、约束条件设定、主优化函数设计及结果可视化等环节,便于读者理解和复现实验结果。此外,文章还对比了PSO与其他优化算法(如DDPG)的区别,强调了PSO在不需要显式CSI估计方面的优势。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值