张 强, 韩松奇, 于微波
(长春工业大学 电气与电子工程学院, 吉林 长春 130012)
在对工件进行三维测量时,为了获取工件的三维信息,即表面空间点的三维坐标,关键的步骤在于特征匹配的准确性和快速性,因此需要对特征匹配方法进行研究[1]。
基于SURF特征匹配算法具有旋转不变、尺度不变等特点,但在匹配的过程中会出现误匹配的现象,由于特征点集中存在着一系列潜在的误匹配点对,即一对多或者多对一的错配点,不仅影响着匹配的准确性,也影响着匹配的效率[2]。因此,需要一种方法来完成对这些点对的去除,以此来达到鲁棒性的目的。
基于SURF特征的匹配算法的基本思路是:在求取SURF特征向量后,通过K-D树近似BBF搜索算法确定每一个特征点的两个相近邻的特征点进行距离判定,最后进行特征点的匹配[3]。
基于SURF特征匹配的基本流程如图1所示。
图1 基于SURF特征匹配的流程框图
SURF特征描述子在生成特征向量时,首先要进行积分图像的求取,对原图像每个像素点进行扫描,在一定的尺度空间内,采用Hessian检测子验证所提取到的特征点是否为极值点[4]。如果是极大值,则保留下来,作为候选特征点,否则排除。最后为了确定全部特征点的主方向,需要形成一个窗口区域来提取特征向量。
1.1.1 求取积分图像
在原始图像中任取一点(i,j),它的积分面积能够通过这一点到原点的范围里所有点的灰度值总和计算获得:
(1)
式中:p(i1,j1)——点(i,j)的灰度值。
通过
∑=A+D-(B+C)
计算矩形范围里的像素点灰度值总和,对原始图像每一个像素都扫描一次,最终得到了积分图像,如图2所示。
图2 使用积分模板计算图像的面积
1.1.2 检测特征点
连续函数f(x,y)的二阶微分Hessian矩阵为:
(2)
在尺度σ下,点X=(x,y)处,对应的Hessian矩阵。
(3)
其中,Lxx是标准高斯函数g(x,y,σ)的二阶偏导数与图像在(x,y)位置的卷积结果,如下式:
Lxx=G(x,y,σ)⊗I(x,y)
(4)
(5)
其中,Lyy、Lxy的计算方法相同。在某一个特定的尺度σ下,求取所有像素点的Hessian行列式值作为斑点检测响应,再使用不同大小的模板,形成多尺寸斑点响应金字塔,最后查找斑点响应的极值点。
1.1.3 构建尺度空间
首先构建一个图像金字塔,最下面的一层是大小不变的初始图像,然后分别通过不同尺寸模板对图像进行处理,形成尺度空间,模板与图像卷积计算出Hessian矩阵响应图像,通过非极大值抑制的方法求出不同尺度。之后计算不同尺度中的斑点响应值。若该响应值是极大值,选做初始特征点,反之清除。
1.1.4 生成SURF特征描述子
通过对图像所有像素点进行Haar小波响应运算,生成特征描述子。取20 s×20 s的矩形区域,并将它分成4×4个子窗口,使用尺寸为2 s的小波模板求取响应值,然后统计∑dx、∑|dx|、∑dy、∑|dy|,最终形成特征向量。特征描述子的表示如图3所示。
图3 特征描述子的表示
在对两图像进行特征匹配时,需要根据K-D树的方法来寻找距离目标查询点最为接近的特征点[5]。
对于一个具体查询点q,由K-D树的根节点着手划分,把q在i维的值和根节点的m值做比较,当Ki(P)≤m时,使q和左子节点比大小,当Ki(P)>m,使q和右子节点比大小。根据从远到近原则排序,在确定某一个叶节点与q点的距离之后,在序列的头部搜索到与q点距离最相近的K-D树节点,递归上述步骤,只有当叶节点的数量比Emax大时才停止。如果叶节点数量比Emax小时,验证后停止操作。
采用上述方法和步骤,在建立待匹配图像的SURF关键点描述子集合之后,对64维的特征向量进行欧式距离判断,最后采用K-D树近似BBF算法对某一图像中的所有特征点在另一幅图像中检索相对应的匹配点。
通过相似性度量能够得到一系列潜在的匹配点对,其中包含着潜在的错配点,因此,需要一种方法来完成对这些点对剔除,以此来达到提高鲁棒性的目的。
RANSAC算法的原理是把所有的点数据分为“内点”和“外点”,“内点”是满足估计参数的点,“外点”是不满足估计参数的点。两幅图像的投影变换可以由以下齐次坐标表示:
(6)
可以得到:
(7)
1)首先从两幅图像的SURF预匹配特征点数据集中取出4对相对应的特征点对,需要注意的是这几对特征点不在同一行,得到H,并且记作模型M。
2)计算数据集里全部数据和模型M的投影误差,当计算得到的误差小于事先设定的阈值,则应该放在内点集I中。
3)当内点集I数据数量多于最优点集I_best的时候,使I_best=I,然后迭代的次数k加1。
4)在当前迭代的次数k不大于最大迭代次数的时候,继续迭代,重复1)、2)、3),直到迭代的次数大于k,停止。
分别进行两组测试,对标准图像库中cameraman进行特征匹配实验,如图4所示。
对cameraman图像改进前后算法的匹配效果比较见表1。
对法兰盘图像进行特征匹配的实验效果如图5所示。
对法兰盘图像改进前后算法的匹配效果比较见表2。
(a) 传统的基于SURF匹配算法 (b) 改进的基于SURF匹配算法
算法匹配点对数所用时间/s匹配效率/(对/s)传统SURF匹配算法522.75218.89改进SURF匹配算法281.30921.39
(a) 传统的SURF匹配算法 (b) 改进后的基于SURF匹配算法
算法匹配点对数所用时间/s匹配效率/(对/s)传统SURF匹配算法432.18119.71改进SURF匹配算法391.73422.49
由表1和表2数据可知,在对cameraman进行匹配时,传统算法的匹配效率为18.89对/s,改进算法的匹配效率为21.39对/s,效率提高了13.23%;在对法兰盘图像进行匹配时,传统算法的匹配效率为19.71对/s,改进算法的匹配效率为22.49对/s,效率提高了14.1%。虽然改进后SURF特征匹配算法在进行匹配时,匹配点对数有所降低,但有效地淘汰了错配点对,提高了匹配的准确性,改进的匹配算法运行所用时间更短,匹配效率更高。
针对基于SURF特征的匹配算法对工件图像进行特征点匹配时会出现误匹配的问题,文中设计了一种改进的基于SURF特征的匹配算法,分别对标准图像库中的图像和双目相机获取的工件图像进行处理,实验结果表明,改进后的算法有效地减少了误匹配点的个数,提高了匹配的效率和准确性。