Hariis角点的描述子通常是由角点周围像素块的灰度值,以及用于比较的归一化互相关矩阵构成的。其中,两个(相同大小)像素块和的相关矩阵定义为:
基础的互相关矩阵为 ,等同于矩阵点乘。而归一化相关时相关矩阵的变形,具体为:
2.2 SIFT(尺度不变特征变换)
SIFT可以解决的问题:
- 目标的旋转、缩放、平移(RST)
- 图像仿射/投影变换(视点viewpoint)
- 目标的尺度/距离
- 弱光照影响(illumination)
- 部分目标遮挡(occlusion)
- 杂物场景(clutter)
- 噪声
SIFT实现步骤简述:(实质可归位在不同尺度空间上查找相同特征点(关键点)的问题)
- 提取关键点
- 对关键点附加详细的信息(局部特征),即描述符
- 通过特征点(附带上特征向量的关键点)的两两比较找出相互匹配的若干对特征点,建立景物间的对应关系
SIFT查找的关键点:一些十分突出的点,不会因光照、尺度、旋转等因素的改变而消失,比如角点、边缘点、暗区域的亮点以及亮区域的暗点。
因此需要了解尺度空间的概念:通过对原始图像进行尺度变换,获得图像多尺度下的空间表示。从而实现边缘、角点检测和不同分辨率上的特征提取,以满足特征点的尺度不变性
尺度空间中各尺度图像的模糊程度逐渐变大,能够模拟人在距离目标由近到远时目标在视网膜上的形成过程。尺度越大图像越模糊。
尺度不变性:在不同尺度空间找到比较接近的尺度对应关系。
高斯滤波器:构造一个滤波函数,满足高斯分布,删除噪声影响。高斯函数方差越大,当前像素点周边信息越多;方差越小,当前像素点信息越多。
高斯金字塔的构建可分为两步:
- 对图像做高斯平滑;
- 对图像做降采样。
高斯图像金字塔共o组、s层,则有:
- σ——尺度空间坐标;
- s——sub-level层坐标;
- σ0——初始尺度;
- S——每组层数(一般为3~5)
最后可将组内和组间尺度归位:
- i——金字塔组数
- n——每一组的层数
为了让尺度体现其连续型,在简单采样的基础上加上了高斯滤波。一幅图像可以产生几组图像,一组图像包括几层(interval)图像。
DoG(Difference of Gaussian)函数
DoG在计算只需相邻高斯平滑后图像相减,因此简化了计算。
DoG高斯差分金字塔
对应DoG算子,需构建DoG金字塔。可以通过高斯差分图像看出图像上的像素值变化情况(如果没有变化,也就没有特征。特征必须是变化尽可能多的点)。DoG图像描绘的是目标的轮廓。
DoG的局部极值点
特征点是由DoG空间的局部极值点组成的。为了寻找DoG函数的极值点,每一个像素点要和它所有的相邻点比较,看其是否比它的图像域和尺度域的相邻点大或者小。
中间的监测点和它通尺度的8个相邻点和上下相邻尺度对应的9×2个点共26个点比较,以确保在尺度空间和二维空间都检测到极值点。
去除边缘响应
由于DoG函数在图像边缘有较强的边缘响应,因此需要排除边缘响应。
DoG函数的峰值点在边缘方向有较大的主曲率,而在垂直边缘的方向有较小的主曲率。主曲率可以通过计算在该点位置尺度的2×2的Hessian矩阵得到,导数由采样点相邻差来估计:
Dxx表示DoG金字塔中某一尺度的图像x方向求导两次。
与Harris角点的区别?
基于Hessian的检测器比基于Harris的检测器更稳定、更可重复。
D的主曲率和H的特征值成正比。令α,β为特征值,则
该值在两特征值相等时达最小。建议阈值T为1.2,即时保留关键点,反之剔除。
通过尺度不变性求极值点,可以使其具有缩放不变的性质。而利用关键点领域像素的梯度方向分布特性,可以为每个关键点指定方向参数方向,从而使描述子对图像旋转具有不变性。
通过求每个极值点的梯度来为极值点赋予方向。
- 像素点的梯度表示:
- 梯度幅值:
- 梯度方向:
方向直方图的生成
确定关键点的方向采用梯度直方图统计法,统计以关键点为原点,一定区域内的图像像素点对关键点方向生成所做的贡献。统计方向[0,2π]f分为8个方向,梯度幅值越大贡献越大。统计后哪个纺线最大,即作为当前方向主方向。
关键点主方向:极值点周围区域梯度直方图的主峰值也是特征点方向。
关键点辅方向:在梯度方向直方图中,当存在另一个相当于主峰值80%能量的峰值时,则将这个方向认为是该关键点的辅方向。为其也生成一个特征向量。
这可以增强匹配的鲁棒性,Lowe的论文指出大概有15%关键点具有多方向,但这些点对撇啤的稳定性至为关键。