基于改进ORB和网格运动统计的图像匹配算法*
2019-06-25罗守品梅艳莹
罗守品, 杨 涛, 梅艳莹
(1.西南科技大学 信息工程学院,四川 绵阳 621010;2.特殊环境机器人技术四川省重点实验室,四川 绵阳 621010)
0 引 言
目前主流的图像匹配方法主要为基于图像灰度和图像特征点的匹配方法。其中基于图像特征点的匹配方法凭借其良好的匹配识别率和响应速度得到广泛推广和研究。文献[1]提出了SIFT(scale-invariant feature transform)图像匹配方法,使用高斯差分算子构建图像金字塔,为每个特征点描述子构建128维特征向量,使得其在图像平移、旋转、光照变化等情况下具有较强鲁棒性,但该方法计算过程复杂,实时性较差。文献[2]提出了使用ORB(oriented brief)方法实现图像检测匹配,通过计算图像小邻域像素点灰度极值确定特征点,使用二进制特征描述符作为描述子,从而使得算法具有较高实时性且配准效果较好,但其不具备尺度不变性且对噪音敏感。文献[3]提出了一种改进的SIFT方法,使用 NSCT(non-subsampling contourlet transform) 将参考和待匹配图像进行分解,获取低频图像[3],采用Canny算子检测图像边缘特征点,方法配准率较高且处理耗时较少。文献[4]提出了一种多特征融合的图像格贴近度匹配方法,对图像的灰度、密度及纹理特征进行融合,使得查准率得到较大提高。文献[5]提出了基于局部特征的大视角图像匹配方法,采用非线性扩散滤波代替高斯线性滤波对图像进行预处理,提高检测到的特征点的鲁棒性[5]。文献[6]提出了改进的ORB匹配方法,在图像配准时使用RANSAC算法剔除误匹配点,提高配准率[6]。
针对以上情况,为了使ORB方法具有尺度不变性,同时剔除图像误匹配,提高匹配识别率。本文提出了一种基于改进ORB和网格运动统计的图像匹配方法。使用SURF算法替换FAST算法提取图像特征点,使用盒子滤波器改变高斯模糊尺寸大小构建图像金字塔,建立尺度不变性特征。针对图像边缘及轮廓处角点集中和匹配过程中易出现的误匹配,使用GMS(grid-based motion statistics)方法完成对正确匹配和错误匹配的识别与剔除,提高算法整体的匹配识别率。
1 ORB算法原理与改进
1.1 SURF特征点提取
原始ORB方法中采用FAST算法检测图像特征点,计算速度较快,但不具备尺度信息,当待检测图片发生大尺度变化时匹配效果较差。对此本文采用SURF方法替换FAST算法完成特征点提取。
Hessian矩阵是SURF算法的核心,计算每个像素点的Hessian矩阵行列式,采用像素点局部行列式极值作为待测图片特征点[7]。图像中像素点A(x,y)的Hessian矩阵
(1)
式中Lxx(x,σ),Lxy(x,σ),Lyy(x,σ)为高斯二阶微分在点A(x,y)处与输入图像的卷积。
为实现特征点的尺度不变性特征且同时减少算法时间消耗,本文SURF方法构建4层图像金字塔,分别为octave1~octave 4,第一层octave1存放原始图像,第octave 2~octave 4层分别由上一层图像2倍采样下获得,使得不同层图像模糊程度不同且逐级更加模糊。并且在每层图像中只放置一张不同模糊程度的图像,进一步对算法进行加速。
同时,使用3×3的滤波器对各层金字塔进行扫描。将经过Hessian矩阵处理过的每个像素点与其三维邻域的26个像素点进行极值比较,保留极大值或者极小值,作为初步特征点。并将初步特征点与预设阈值进行比较(minHessian=600),去除不满足设计要求的像素点,实现特征点精确定位。
1.2 特征点方向与描述子选定
为保证特征点具有旋转不变性特征,需为SURF算法检测到的特征点添加方向信息。计算特征点周围半径为r(r=3)的邻域像素点质心,使用特征点到质心的方向向量作为该特征点的主方向。特征点p的邻域矩定义为
(2)
式中I(x,y)为图像特征点灰度值,且质心计算
(3)
故使用SURF检测得到的特征点主方向计算
(4)
完成对特征点的尺度信息与方向信息构建后,在特征点附近随机选取若干点对。将这些点对的灰度值的大小,组合成一个二进制串,并将这个二进制串作为该特征点的特征描述子[8]。
2 基于GMS的配准算法
图像配准是图像检测匹配中关键的一个环节,目前较常用方法为RANSAC算法,其能从含有误匹配的2幅图片中剔除错误匹配特征点,但迭代次数较多且只能以一定概率得到可信模型[9]。GMS方法的主要思想为运动的平滑性导致了匹配的特征点邻域有较多匹配的点,可以通过计数邻域的匹配点个数来判断一个匹配是否正确[10]。
假设图像集{Ia,Ib}分别具有{N,M}个特征,X={x1,x2…,xi,…xN}是从Ia到Ib的所有最近邻特征匹配的集合。那么每个特征匹配对邻域中的特征点数量可作为成功特征匹配的标准。正确匹配对在{Ia,Ib}中分别对应的邻域为{a,b},则有匹配点邻域支持度
Si=|Xi|-1
(5)
式中Xi⊆X,Xi为邻域{a,b}的匹配子集。由于每个特征的匹配是独立的,可以用二项式分布函数近似表示Si在Xi邻域的匹配分值
(6)
式中pt,pf为正确和错误匹配概率,K为区域中不连接邻域的数量,n为图像序列中对应图像的特征个数。可以得出Si整体呈双峰分布,其平均值和标准差分别为
(7)
由此可得概率评估标准函数
(8)
3 实验分析
为验证本文算法的图像匹配效果,采用MATLAB编程实现算法,在SURF特征点检测部分使用OpenCV开源视觉库。实验配置为:Windows 10 专业版,AMD Ryzen 52600X处理器,主频3.6 GHz,内存8 GB;软件版本为MATLAB2018,Visual Studio 2015,OpenCV310。
为测试算法配准性能,实验总共分为三部分,分别为尺度和旋度不变性测试、模糊测试和亮度变化测试[11],分别与原始ORB方法、ORB+RANSAC方法进行对比分析。实验方案设计如图1所示。实验使用图像选取教学楼,图2(a)~图3(a),图3(b),(c)分辨率均为400×500,图2(b),(c)分辨率为230×250,图4(a)~(c)分辨率为380×496。
图1 实验方案流程
3.1 尺度、旋度不变性实验
原始ORB方法不具备尺度不变性特征,本文中使用SURF算法提取图像特征点,并建立4层图像金字塔。为验证本文算法对图像的尺度和旋度不变性性能,将待检测图像进行缩放和旋转(30°),分别将其与原始ORB算法、ORB+RANSAC算法进行对比,如图3所示。从实验结果可以看出:在图像发生尺度变化时,原始ORB方法出现误匹配情况较多,经RANSAC方法筛选后的ORB方法误匹配点减少,但同时匹配对数也减少。本文算法提取特征点较多,配准率达到95.1 %,具有较好的配准效果。
图2 尺度、旋度不变性对比实验
3.2 图像模糊匹配实验
为验证本文的算法在模糊情况的配准性能,使用高斯模糊处理待匹配图像,分别将其与原始ORB算法、ORB+RANSAC算法进行对比,如图3所示。由实验可知,原始ORB方法、ORB+RANSAC算法在图像模糊情况下,配准效果较差。本文所提算法在图像模糊后仍然具有95.8 %的配准率,具有较强鲁棒性。
图3 图像模糊匹配对比实验
3.3 图像亮度变化实验
图像亮度变化在实际情况中较为普遍,是影响图像配准的重要因素之一。为验证本文算法对图像亮度变化情况下的配准性能,分别将其与原始ORB算法、ORB+RANSAC算法进行对比,如图4所示。从实验可以看出,本文所提算法在图像发生亮度变化时影响较小,匹配率为94.5 %,具有较强的鲁棒性。
图4 图像亮度变化对比实验
3.4 匹配时间对照实验
为进一步验证本文算法在尺度、旋度、亮度变化和图片模糊时的算法性能,分别记录其与原始ORB、ORB+RANSAC方法实验的处理时间和匹配点对数,由于操作系统等客观原因导致每次算法运行耗时有微小偏差,故匹配时间均为10次均值,如表1所示。
表1 算法匹配准确度及时间对比
4 结 论
实验结果表明:本文所提算法在图像发生旋转、尺度变化、亮度变化和模糊情况下,使用基于改进ORB和网格运动统计的方法在对图像配准时具有较好的效果,算法耗时较原始ORB方法较多,主要耗时集中在GMS剔除误匹配阶段,但配准率平均提高44.33 %,与使用RANSAC方法剔除误匹配的ORB算法相比,本文所提算法耗时平均增加0.26 s,但配准率平均提高9.63 %,可以得出本文算法具有更高的配准精度和鲁棒性。