SURF算法应用工业检测之二(原理详解)
SURF算法用像素的海塞矩阵来描述一副图像的特征点,因此我们后续的讲解中都是围绕怎么计算图像的海塞矩阵和怎么筛选和匹配求出的特征点来讲解,怎么实现模式搜索和图像匹配。海塞矩阵的数学公式如下:
以上公式就是对每一个像素点求出一个海赛矩阵,对于X方向和Y方向的二阶偏导。特征点要具备尺度无关性(这样做的目的就是进一步筛选那些关键点,在不同尺度下都达到要求的点,才列为关键点),所以在计算海赛矩阵以前,要对图像进行高斯滤波,得到不同尺度的图像。并且计算不同尺度下的图像特征点。什么是不同尺度的图像呢?通俗理解就是,一个图像场景对人眼来讲,不同远近模糊程度不同,远的较为模糊,近的较为清楚。这样的话,我们可以通过对一副图像场景进行高斯滤波来模拟一副图片的不同尺度。
不同尺度的图像得到,通过高斯滤波,高斯滤波在二维空间的定义为:
公式2.2
图2.1 matlab中图像表示
在二维空间中,这个公式生成的曲面的等高线是从中心开始呈正态分布的同心圆。分布不为零的像素组成的卷积矩阵与原始图像做变换。每个像素的值都是周围相邻像素值的加权平均。原始像素的值有最大的高斯分布值,所以有最大的权重,相邻像素随着距离原始像素越来越远,其权重也越来越小。这样进行模糊处理比其它的均衡模糊滤波器更高地保留了边缘效果。
其中,是正态分布的标准差,值越大,图像越模糊(平滑)。r为模糊半径,模糊半径是指模板元素到模板中心的距离。如二维模板大小为m*n,则模板上的元素(x,y)对应的高斯计算公式为:
公式2.3
通过以上公式我们可以计算出不同σ值下,不同大小的高斯模板。
下图是5*5的高斯模板卷积计算示意图。高斯模板是中心对称的。
图2.2
图2.3
以上图片代表不同尺度因子σ去不同值的结果。由此得到不同尺度的图像,如图2.3
图像尺度不同实际就是图像的模糊程度不同,就像一副图像在人眼中表示远近不同,越近越清楚,越远越模糊。所以用高斯滤波可以很好的模拟不同尺度的同一幅图像。