田杰,徐忠民
(合肥工业大学 机械工程学院,安徽 合肥 230000)
图像匹配[1]是指进行图像处理来识别图像中目标对象的技术,是计算机视觉技术中的重要组成部分。图像匹配方法中基于特征的匹配方法可以快速对物体的旋转、遮挡、缩放等图片进行良好匹配,因此是目前最常用的方法也是研究的热点。
基于特征的匹配方法是在模板图像和待匹配图像中提取特征,然后根据两者间的关系进行图像匹配。目前基于特征的匹配方法有SIFT算法、SURF算法、Harris角点检测[2]等方法。2004年,Low提出了一种尺度不变特征变换算法SIFT[3],具有旋转和尺度不变性、良好的光照适应性等优点,是目前应用最广泛的特征匹配方法。但SIFT算法计算时间过长,据此SURF算法[4]在SIFT算法基础上改进,大量缩短运行时间,但匹配精度有所降低。在工业上,图像匹配一般是针对图像中某工件的,其他区域是无效区域。因此图像匹配时,首先要提取图像中包含工件的部位,这些部位就是感兴趣区域ROI。目前工业现场运用较多的ROI提取方法有基于区域增长和基于边缘分割技术两种[5]。但是针对位姿变换以及光照影响等复杂场景下的实际图片,现有方法并不能有效提取出包含工件的感兴趣区域。
为保证实际复杂项目中实时准确的进行图像中工件的匹配,本文提出一种结合Harris角点检测的改进SURF算法。该改进算法基于Hu不变矩和区域面积进行ROI提取,并在该区域内进行图像匹配。采用Matlab语言实现改进算法的程序,在多种场景下进行实验。结果表明,此方法能够缩小图像匹配的范围,剔除不稳定的特征点,有效提高算法的匹配精度。
1962年,M.K.Hu提出了低阶中心矩构成的7个矩不变量[6]。对于M×N数字图像f(x,y)而言,其p+q矩和中心矩分别表示为:
p、q为2以上整数,扩展得到如下7个Hu不变矩:
区域面积的计算方法一般为种子生长法[7],但是由于姿态不同、干扰物等,其面积很难直接计算。因此统计区域内部的像素点个数来代替区域面积,计算方法如下:
其中,S代表面积,c(m,n)是区域内部的像素点,该式表示的是统计图形区域内部的像素点的数量总和[8]。如果进行处理图像是经过预处理的二值图像,那么上式即是计算区域内部像素点灰度为1的个数。
实际应用中,Hu不变矩与工件形状等相关,因此在多种姿态下其Hu矩不变,是工件区域识别的重要参考。区域面积会因为工件姿态、干扰等因素而产生变化,但是小幅度的,也是工件的有效参考。本文据此提出基于不变矩和区域面积的ROI提取方法。此方法基本思想是在实际图像中建立移动子图Pij,计算子图的不变矩和面积,通过比较模板P和Pij的相似性来确定包含工件的ROI区域。
首先分别对目标工件模板图像和子图同时计算不变矩和面积。
其中Zka、Zkb分别为模板图像P和子图Pij的不变矩,其计算公式如式4所示。
其中Sp、Sij分别为模板P和子图Pij的区域面积,其计算公式如式5所示。
设Hu不变矩的相似度阀值为WT1,区域面积相似度阀值为WT2,若子图Pij满足W1ij<WT1且W2ij<WT2,则认为该子图包含工件。为提高准确度,综合Hu矩和区域面积的优点,将W1ij与W2ij的和W作为相似度参数。W越接近0,说明子图为感兴趣区域的可能性越大;如果差异越大,则W会越大。选W最小即取相似度最高的子图作为包含工件的ROI。图1为实际图片使用本文检索感兴趣区域方法的仿真结果:
图1 本文ROI提取方法结果
图(a)为实际图片,图(b)为将其他区域置为黑色而只余感兴趣区域的图片。比较可知该方法处理后,图片中背景、干扰物都被去除,有效提取出工件区域,效果良好。
2004年6月26日—7月6日,黄河内蒙古三湖河口以下河段发生严重水污染事件,地方政府对乌梁素海的生态环境和周边污染源采取多项措施进行综合治理,在一定程度上促进了乌梁素海水质改善。据有关部门监测,2005—2008年,乌梁素海进水口水体总氮由6.03 mg/L下降至 1.31 mg/L,COD由54.4mg/L下降至26.9mg/L,总磷基本持平,说明水质已逐步好转。
SURF算法在特征点检测阶段,由于存在错误检测,提取的特征点中存在不稳定特征点,导致匹配精度不高,计算量较大。本文提出了结合Harris角点检测算法的改进SURF算法,在特征点检测阶段对SURF提取特征点的邻域信息进行描绘,综合特征点及其邻域信息认定该特征点是稳定特征点,有效剔除大部分干扰点及不稳定的特征点。
SURF算法的实现过程可以划分为如下四个步骤:
(1)建立积分图像与构建Hession矩阵。SURF算法积分图像I(x,y)是图像原点到像素点(x,y)整个矩形区域内的所有像素点灰度值之和,如下式:
SURF算法是通过Hessian矩阵提取图像特征点的,并且利用简化的盒式滤波器对该矩阵改进,改进后Hessian矩阵定义为:
表示尺度,Dxx、Dxy、Dyy表示的是滤波后二阶微分在点(x,y)处与图像I的卷积。SURF算法特征点的判别式如下。
式中ω是用来补偿用盒子滤波器近似代替二阶高斯偏导数的。
步骤(1)得到的极值点要在其3×3×3的立体空间内进行比较,当该点响应值最大时,即为特征点,插值操作即可对其定位。
(3)确定特征点主方向。SURF算法需要为特征点分配主方向。首先建立特征点为圆心,半径为6s的圆形邻域。然后对内部所有像素点计算在水平和垂直方向上的Haar小波响应值,根据距离进行加权处理。最后以特征点为圆心,用60°的扇形窗口扫描区域,累加扇形内所有点的响应值,值最大的方向就是特征点的主方向。
(4)特征点描述符的生成。为了构建特征点描述符,首先以特征点为中心,沿着主方向,建立大小为20s×20s的正方形窗口,并分割为4×4的正方形子区域。其次计算每个子区域内像素点水平和垂直方向上的小波响应dx和dy,形成包含的四维向量。最后每一个特征点形成64维的描述符。
Harris算法主要思想是根据窗口内区域灰度改变的剧烈程度来判断是否遇到了角点[9],其剧烈程度通常与自相关函数的变化率有关,对于图像I,当窗口在点(x,y)处位移(u,v)后的自相关函数表示为:
式中,窗口的中心是(x,y),(x,y)是高斯函数,M为自相关矩阵,可以根据矩阵的特征值来算出Harris角点响应值R:
式中k为经验系数,一般为0.04~0.06。R高于特定阈值的点就是Harris角点。
本文利用Harris算法的思想对SURF算法进行改进,根据特征点邻域内分布的信息来刻画特征点的稳定性,剔除干扰点。因此需要先利用SURF算法进行建立积分图像、构建Hessian矩阵、尺度空间和特征点定位的工作,但是这些特征点实际上是极值点,包含了许多不稳定的特征点,具体步骤如下:
(1)极值点的局部邻域(本文用3×3邻域),根据式(14)计算该点邻域内的响应值R,然后统计所有SURF提取出的极值点邻域的R。
(2)稳定的特征点的R既要大于某一阈值,并且需要是周围邻域的极大值,因此给定阈值R0,对于特征点三邻域像素点(i,j),其角点响应值须同时满足下式:
通过这种方法判断以特征点为中心的邻域内是否存在Harris角点,如果存在则认为该点是稳定特征点,将不稳定的SURF特征点剔除。
(3)利用SURF算法确定筛选之后特征点的主方向并且建立特征点描述符。
(4)特征点的匹配。经过上述步骤,可以得到模板图像和实际图像特征点的描述符点集。特征点匹配就是要确定两个点集间变换关系,普通SURF算法的特征点匹配方法是欧氏距离越小表示匹配度越好,简单快捷,但易产生误配对。因此使用K最近邻算法[10]可以提高特征匹配的准确度,其具体如下式:
式中计dmin算和dsecmin表示模板图和实际图像特征点集间的最近和次近距离,dT表示阈值,取值范围是0.6<dT<0.8。满足上式则判定匹配成功。
(5)特征点匹配后仍会存在大量的错误匹配对,为了进一步优化匹配结果,引入随机抽样一致性(RANSAC)算法来进行迭代优化结果[11],剔除数据组中误匹配特征点对,提高算法匹配精度。
为了验证本文改进算法的有效性和实用性,针对多种场景下的复杂工件,采用Matlab采集多张图片进行算法处理验证。
首先是原始图像经过本文步骤所提取特征点数量变化对比图,如图2所示。
图2 特征点提取实验对比图
图(a)是原图利用SURF算法提取的特征点,图(b)是对ROI区域利用SURF算法提取的特征点,图(c)是对ROI区域利用改进SURF算法提取的特征点。从检测结果可以看出,ROI提取和改进SURF算法筛选留下稳定特征点,从而为后续特征匹配建立良好基础。
利用SURF算法和改进SURF算法进行特征点匹配的对比实验,其匹配对的连线图如图3:
图3 特征点匹配对比图
由上图可知,改进算法进行特征匹配时能有效消除误匹配点。为了保证实验结果的准确性,本文采用多幅不同环境下的图片进行匹配实验,实验数据见表1。
通过以上实验数据可以看出,经过改进的SURF算法,正确匹配对数上升,即改进算法去除了大量不稳定的特征点和错误匹配对,有效提高了匹配精度。
本文针对实际场景下的缩放、旋转、光照不均等情况的图像匹配算法进行研究,提出基于Hu不变矩和区域面积的ROI提取方法,缩小匹配范围;同时提出结合Harris角点的改进SURF算法以剔除不稳定的特征点。实验结果表明,与传统算法相比,本文所提出的ROI提取方法和结合Harris角点的改进SURF算法能够有效提高图像匹配的精度。