1、大家好大家好计算机视觉学习初识SIFT算法SIFT(Scale-invariant feature transform),尺度不变特征。实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。这些特征具有旋转和不变性,而且能够克服光照和视角的变化。SIFT算法思想尺度空间极值点的检测关键点的定位关键点方向的分配关键点描述符算法思想尺度空间极值点的检测高斯模糊尺度空间理论高斯金字塔的构建检测DOG尺度空间极值点u尺度空间极值点的检测:通过对原始图像进行高斯滤波形,建立高斯金字塔,通过高斯差分来找到那些感兴趣的点,也就是在以后的图像匹配中可能发挥作用的特征点。尺度空间极值点的检测高斯模
2、糊SIFT算法是在不同的尺度空间上查找关键点,而尺度空间的获取需要使用高斯模糊来实现,Lindeberg等人已证明高斯卷积核是实现尺度变换的唯一变换核,并且是唯一的线性核。高斯模糊是一种图像滤波器,它使用正态分布(高斯函数)计算模糊模板,并使用该模板与原图像做卷积运算,达到模糊图像的目的。N维空间正态分布函数: 是正态分布的标准差。 值越大,图像越模糊(平滑)。r为模糊半径,模糊半径是指模板元素到模板中心的距离。高斯模糊如二维模板大小为m*n,则模板上的元素(x,y)对应的高斯计算公式为:分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最
3、大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果。高斯模糊在实际应用中,3 之外的像素忽略不计。故一般计算 的矩阵。 为了确保模板矩阵中的元素在0,1之间,需将模板矩阵归一化。分离高斯模糊因为二维模版的关系,造成边缘图像的缺失 越大缺失像素越多 , 越大,计算量越大。 分离高斯模糊,将二维高斯变换分为在x轴和y轴上的两次一维高斯变换。分离高斯模糊 对用模板矩阵超出边界的部分虚线框,将不做卷积计算。如图2.4中x方向的第一个模板1*5,将退化成1*3的模板,只在图像之内的部分做卷积。u两次一维的高斯卷
4、积将消除二维高斯矩阵所产生的边缘。u计算复杂度两次一维矩阵:二维不可分矩阵:尺度空间理论u尺度空间理论的基本思想是:在图像信息处理模型中引入一个被视为尺度的参数,通过连续变化尺度参数获得多尺度下的尺度空间表示序列,对这些序列进行尺度空间主轮廓的提取,并以该主轮廓作为一种特征向量,实现边缘、角点检测和不同分辨率上的特征提取等。一个图像的尺度空间定义为一个变化尺度的高斯函数与原图像的卷积。是尺度空间因子,值越小,表示被平滑的就越少,相应的尺度也就越小。大尺度对应于图像的概貌特征,小尺度对应于图像的细节特征。高斯金字塔的构建u 图像的金字塔模型是指,将原始图像不断降阶采样(长,宽各减去一半),得到一
5、系列大小不一的图像,由大到小,从下到上构成的塔状模型。u 高斯金字塔的构建分为两部分:1. 对图像作不同程度的高斯模糊。2. 对图像做降采样。高斯金字塔的构建金字塔的层数根据图像的原始大小和塔顶图像的大小共同决定,其计算公式如下:其中M,N为原图像的大小,t为塔顶图像的最小维数的对数值。高斯金字塔的构建将图像金字塔每层的一张图像使用不同参数做高斯模糊,使得金字塔的每层含有多张高斯模糊图像,将金字塔每层多张图像合称为一组(Octave),金字塔每层只有一组图像,组数和金字塔层数相等。每组含有多张(也叫层Interval)图像。尺度空间的所有取值,i为octave,即组数,s为每组层数:高斯金字塔
6、的构建u 降采样时,高斯金字塔上一组图像的初始图像(底层图像)是由前一组图像的倒数第三张图像隔点采样得到的。第0组:0,1,2,3,4,5第1组:6,7,8,9,10,11第二组:则第二组第一张图片就是是由9降采样得到,其他类似。检测DOG尺度空间极值点Difference of Gaussian(DOG)是高斯函数的差分,是灰色图像增强和角点检测的方法,利用不同的高斯差分核与原图像卷积。下图所示不同下图像尺度空间:检测DOG尺度空间极值点u 一个点如果在DOG尺度空间本层以及上下两层的26个领域中是最大或最小值时,就认为该点是图像在该尺度下的一个特征点,如图所示。 在极值比较的过程中,每一组
7、图像的首末两层是无法进行极值比较的,为了满足为了满足尺度变化的连续性,尺度变化的连续性,我们在每一组图像的顶层继续用高斯模糊生成了 3 幅图像,高斯金字塔有每组S+3层图像。DOG金字塔每组有S+2层图像.(s为每组层数)检测DOG尺度空间极值点s=3的情况假设s=3这样在,Gauss Space里,有s+3项。在DOG Space里,有s+2项。尺度连续变化。尺度连续变化。检测DOG尺度空间极值点在 Lowe的论文中 ,将第0层的初始尺度定为1.6(最模糊),图片的初始尺度定为0.5(最清晰). 在检测极值点前对原始图像的高斯平滑以致图像丢失高频信息,所以 Lowe 建议在建立尺度空间前首先
8、对原始图像长宽扩展一倍(生成第-1层),以保留原始图像信息,增加特征点数量。 尺度越大 图像越模糊。 SIFT(Scale-invariant feature transform),尺度不变特征。实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。这些特征具有旋转和不变性,而且能够克服光照和视角的变化。SIFT算法思想尺度空间极值点的检测关键点的定位关键点方向的分配关键点描述符算法思想关键点的定位u在上一步中找到的点,需要经过稳定的筛选才能成为真正的关键点,分为两步:u 滤除对比度低的点滤除候选特征中对比度较低的点,这些点对于图像噪声比较敏感,不能用来作为稳定的特征点。u 去除
9、边缘响应去除位于边缘的候选特征点,因为边缘处的特征点变换较大,也不适合作为稳定的特征点。滤除对比度低的点离散空间的极值点并不是真正的极值点,利用已知的离散空间点插值得到的连续空间极值点的方法叫做子像素插值。需要对尺度空间DoG函数进行曲线拟合。利用DoG函数在某极值点A对D(x,y,)的Taylor展开式(拟合函数)为:滤除对比度低的点拟合函数:其中,表示到点A的偏移,上式对X求导,当倒数为零时得到局部极值点将代人中则有:如果大于大于0.5也就意味着这个极值点和另一个采样点(图像中的另一个像素)隔着较近。采用插值法求得极值点位置的估计值。滤除对比度低的点可以利用去除对比度低的点:在Low的论文
10、中,这个阀值为0.03,及| |0.03的点而被剔除。去除边缘响应DOG 函数有着较强的边缘响应,如果关键点被定位在边缘,那么这个关键点很有可能是不稳定的,尤其容易受到噪声的影响,即使是少量的噪声也会影响匹配的稳定性。实践发现边缘处有较大的主曲率,而且在垂直方向有较小的主曲率的极值,通常都不是一个好的高斯差分算子极值点。根据这个特性,我们可以去除边缘响应. 主曲率的值可以通过计算 22 维的Hessian 矩阵 H 而得到,Tr求的是矩阵的迹,Det求的是矩阵转为行列式后的值。去除边缘响应设和为 H 的两个特征值,且 令=r,r1则:当两个特征值相等,即r=1,取得最小值。随着r的增大,比例不
11、断增大。此时如果需要检测两个特征值低于某一阀值R,只需要判断:在Lowe的文章中,R=10,高于这一值则去除。SIFT(Scale-invariant feature transform),尺度不变特征。实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。这些特征具有旋转和不变性,而且能够克服光照和视角的变化。SIFT算法思想尺度空间极值点的检测关键点的定位关键点方向的分配关键点描述符算法思想关键点方向的分配u 上一步中确定了每幅图中的特征点,为每个特征点计算一个方向,依照这个方向做进一步的计算, 利用关键点邻域像素的梯度方向分布特性利用关键点邻域像素的梯度方向分布特性为每个关
12、键点指定方向参数,使算子具备旋转不变性。 假设L(x,y)表示一幅图像,则图像中的任意一像素点的梯度值为m(x,y)和方向 ,可由下公示表示:其中L所用的尺度为每个关键点各自所在的尺度。至此,图像的关键点已经检测完毕,每个关键点有三个信息:位置,所处尺度、方向,由此可以确定一个SIFT特征区域。关键点方向的分配按Lowe的建议,梯度的模值m(x,y)按 分布加成,按采样尺度的 原则,临域窗口半径为3*梯度直方图将0360度的方向范围分为36个柱(bins),其中每柱10度。关键点方向的分配直方图的峰值则代表了该关键点处邻域梯度的主方向,即作为该关键点的方向。直方图中的峰值就是主方向,其他的达到
13、最大值80%的方向可作为辅助方向。SIFT(Scale-invariant feature transform),尺度不变特征。实质是在不同的尺度空间上查找关键点(特征点),并计算出关键点的方向。这些特征具有旋转和不变性,而且能够克服光照和视角的变化。SIFT算法思想尺度空间极值点的检测关键点的定位关键点方向的分配关键点描述符算法思想关键点描述符u SIFT描述子是关键点邻域高斯图像梯度统计结果的一种表示。通过对关键点周围图像区域分块,计算块内梯度直方图,生成具有独特性的向量,这个向量是该区域图像信息的一种抽象,具有唯一性。u Lowe建议描述子使用在关键点尺度空间内4*4的窗口中计算的8个方
14、向的梯度信息,共4*4*8=128维向量表征。关键点描述符1. 将坐标轴旋转到特征点的主方向,以保证旋转点具备旋转不变性。假设旋转旋转后邻域内采样点的新坐标为:关键点描述符2. 在旋转后的图像中,以特征点为中心取 1616 的邻域窗口,如图 所示。每个小格代表特征点邻域窗口中的一个像素,箭头的长度为像素梯度的模值,指向为像素梯度的方向,此处所谓的方向是指旋转后的像素梯度的方向,即 此为8*8的邻域,最后得到4个种子关键点描述3. 圆圈代表高斯加权的范围,在8*8邻域(实际应用是16*16)中,每个关键点有4个种子点组成,每个种子点有8个方向的信息(0,45,90,135,180,等等),实际中
15、则为4*4*8=128维。关键点描述SIFT算法的特点n1. SIFT特征是图像的局部特征,其对旋转、尺度缩放、亮度变化保持不变性,对视角变化、仿射变换、噪声也保持一定程度的稳定性;n2. 独特性(Distinctiveness)好,信息量丰富,适用于在海量特征数据库中进行快速、准确的匹配;n3. 多量性,即使少数的几个物体也可以产生大量的SIFT特征向量;n4. 高速性,经优化的SIFT匹配算法甚至可以达到实时的要求;n5. 可扩展性,可以很方便的与其他形式的特征向量进行联合。SIFT的缺点u SIFT在图像的不变特征提取方面拥有无与伦比的优势,但并不完美,仍然存在:1. 实时性不高;2. 特征点较少;3. 对边缘光滑的目标无法准确提取特征点。