第二章:图像局部描述符
2.1Harris角点检测
2.1.1算法简介
2.1.1.1角点及角点检测
角点:
通常意义上来说,角点就是极值点,即在某方面属性特别突出的点,是在某些属性上强度最大或者最小的孤立点、线段的终点。 对于图像而言,如图所示圆圈内的部分,即为图像的角点,其是物体轮廓线的连接点。
角点的特征:
1.轮廓之间的交点;
2.对于同一场景,即使视角发生变化,通常具备稳定性质的特征;
3.该点附近区域的像素点无论在梯度方向上还是其梯度幅值上有着较大变化;
角点检测:
角点是图像很重要的特征,对图像图形的理解和分析有很重要的作用。角点在保留图像图形重要特征的同时,可以有效地减少信息的数据量,使其信息的含量很高,有效地提高了计算的速度,有利于图像的可靠匹配,使得实时处理成为可能。对于同一场景,即使视角发生变化,通常具备稳定性质的特征。我们可以利用这一稳定的性质将角点应用三维场景重建运动估计,目标跟踪、目标识别、图像配准与匹配等计算机视觉领域。
2.1.1.2Harris的基本思想
1.该算法的主要思想是,如果像素周围显示存在多于一个方向的边,我们
认为该点为兴趣点。该点就称为角点。
2.使用一个固定窗口在图像上进行任意方向上的滑动,比较滑动前与滑动后两种情况,窗口中的像素灰度变化程度,如果存在任意方向上的滑动,都有着较大灰度变化,那么我们可以认为该窗口中存在角点。
2.1.1.3数学原理
假设图像像素点(x,y)的灰度为 I(x,y),以像素点为中心的窗口沿 x 和 y 方向分别移动 u 和 v 的灰度强度变化的表达式为:
其中 E(u,v)是灰度变化,w(x,y) 是窗口函数,一般是高斯函数,所以可以把w(x,y)看做是高斯滤波器。I(x,y)是图像灰度, I(x+u,y+v)是平移后的图像灰度。
收到泰勒公式的启发,在这里我们可以将 I(x+u,y+v)函数在(x,y)处泰勒展开,为了提高抗干扰的能力并且简化运算,我们取到了一阶导数部分,后面的无穷小小量O(u2+v2)可以忽略,整理得到表达式如下:
将[ Ixu+Iyv ]展开后整理可以用矩阵表达为:
最后可以近似得到E(x,y)的表达式,将其化为二次型后得到:
其中M是一个2X2的矩阵,称为像素点的自相关矩阵,可以由图像的导数求得。M=窗口函数*偏导矩阵,表达式为:
因为u,v是局部微小的移动变量,所以对M进行讨论,M是一个2X2的矩阵,M的表达式中与点的位置(x,y)具体强相关性,记M得特征值为λ1,λ2,关于特征值可以简单理解为该点的灰度值变化速度,a1和a2可以分别看做是x方向和y方向的灰度变化速率,就可以用a1,a2两者的大小关系来进行分类:
1.当两个特征值λ1和λ2都偏小的时候,表示窗口沿任意方向移动都会使灰度变化很细微,该点处于图像的平坦区域。
2.当λ1>>λ2或者λ1<<λ2时,说明该点向水平(垂直)方向移动时变化会很明显,而向垂直(水平)方向则变化不明显,该点处于图像的边缘区。
3.当两个特征值λ1和λ2都很大的时候,表示窗口沿任意方向移动都会使灰度变化很明显,该点位置就是图像角点的位置。
实际中,经常使用的是角点响应函数CRF这一概念,以此更加准确的计算所需角点,方法如下:
det M是矩阵M的行列式,Trace(M)为矩阵M的迹。k为修正值,是一个常数,经验取值为0.04-0.06。算出响应值之后,根据R与阈值T的比较来判断是否为角点。
1.当|R|很小时,R<T , 认为该点处于图像的平坦区域。
2.当R<0时,R&