基于稀疏光流法的ORB特征匹配优化
2019-10-10周磊,马立
周 磊,马 立
(上海大学 机电工程与自动化学院,上海200444)
引言
图像特征点匹配[1-4]作为计算视觉中的重要基础算法之一,已广泛应用于机器视觉、图像融合、目标识别、同时定位与建图[5-6]、双目匹配测量系统[7]、人脸识别等领域。在同时定位与建图技术中,特征点匹配的正确率决定着相机姿态求解速度和精度,而地图点三维位置的求解亦是根据相机姿态和匹配点进行的,因此,特征点匹配决定同时定位与建图技术的精度和稳定性。特征点匹配的本质是将空间中一点在不同图像上的投影匹配起来,可以分为3个步骤:特征点的检测、特征点描述子的提取、特征点的匹配。特征点的检测算法有ORB(oriented FAST and rotated BRIEF,简称ORB)[8]、尺度不变特征[9](scale-invariant feature transform,简称SIFT)、加速稳健特征[10](speeded up robust features,简称SURF)等。由Ethan Rublee提出的ORB特征提取算法应用最为广泛。该算法将加速角点提取[11](features from accelerated segment test,简称FAST)和二进制独立基本特征[12](binary robust independent elementary features,简称BRIEF)组合在一起,使特征点匹配速度远高于SIFT、SURF,保证了特征提取的实时性,但是匹配精度较差,会产生非常多的误匹配。在满足实时性要求的情况下提高ORB算法匹配的准确率就变得非常有意义。
为了提高特征匹配精度,很多研究人员对其展开研究。白雪冰[13]将ORB和SURF相结合,利用Hessian矩阵提取ORB特征点描述子,以此来弥补ORB算法本身不具备尺度不变性的问题。许宏科[14]等将ORB特征和SIFT算法结合,提出SIRB算法。该算法利用多尺度空间检测提取特征点,使得特征点具有尺度不变性。以上算法在一定程度上改进了匹配的尺度不稳定问题,但是由于SURF以及SIFT算法提取特征点的速度较慢,使得算法实时性无法保证,并且只是改进了尺度不变性这一特性,在常见的图像旋转变换等应用场合算法效果不理想。
针对实时性、准确性和通用性无法兼顾的问题,本文提出基于稀疏光流法[15]的ORB特征点匹配优化算法。利用暴力匹配方法得出初始匹配点集,然后通过稀疏光流法对其进行粗过滤,最后利用随机抽样一致性算法[16](random sample consensus,简称RANSAC)对过滤结果进行几何校验,精确过滤,得到最优的匹配结果。
1 ORB特征匹配算法
ORB是将FAST特征点检测器和BRIEF描述子组合的特征检测算法。相比于SIFT,在保证有相当的匹配性能的情况下,ORB受图像噪声的影响更小并且速度更快,能达到实时性,因此被广泛用于对实时性要求高的应用场合。
FAST-9通过检测每一个像素点周围一定半径的圆内包含的像素的灰度值变化的剧烈程度来判断该像素点是否是要检测的角点。然后将FAST计算的角点利用Harris角点测量,根据得到的响应值从大到小排序,取前目标特征点数N个角点作为最终的角点检测结果。此外,ORB将FAST特征提取和金字塔模型结合在一起,保证了角点的尺度不变性,并且还利用灰度质心[17]保证了角点的旋转不变性。本文采用FAST-9特征点检测器,即在特征点选取的圆上有连续9个像素点的亮度变化量超过阈值,则被认定为特征点。
描述子是对特征点进行描述的二进制编码。它以角点为中心,取一定大小的邻域窗口,然后在窗口中随机选取2个5×5子窗口,比较其灰度和,将比较结果进行二进制赋值。最后,重复选取256次形成一个长度为256的由0和1组成的向量作为特征描述子。
特征点匹配是指找出空间中的一点在不同图像中的位置。通过暴力匹配算法,对原图中的每一个特征,计算其描述子与待匹配图像中所有特征点的描述子的欧氏距离,距离越小则说明2个特征越相似,保留距离最近的作为该特征点的匹配特征点。记Xik为原图第i个特征点的第k维特征向量,Xjk为匹配图像的第j个特征点的第k维特征向量,2个特征点之间的欧式距离Dij为
(1)
然而,该方法过分依赖不稳定的特征描述子并且缺少验证环节,而且图片存在纹理相似的区域会导致即使不是空间中的同一点也会出现欧式距离足够近被认为是匹配的情况,使其得到的匹配结果存在大量的错误匹配。所以,本文提出一种基于稀疏光流法的特征点匹配算法,利用空间位置的约束剔除误匹配。
2 基于稀疏光流法的特征点匹配
针对误匹配,本文提出一种基于稀疏光流法的特征点匹配算法。在原有算法的基础上,引入几何条件作为约束条件进一步滤除特征点匹配,以求更高的匹配准确率结果。采用稀疏光流法进行特征点跟踪,求出特征点在图像中的运动矢量,以此为约束条件对匹配结果进行粗步过滤,最后利用RANSAC算法进行精确几何校验得出最终结果。
光流法是求空间运动物体在观察成像平面上的像素运动的瞬时速度的方法。稀疏光流法是针对某些角点进行光流追踪。该方法基于灰度值不变假设,可得光度误差方程f(x):
f(x)=I(x,y)-J(x+dx,y+dy)
(2)
式中:I,J分别表示原图和待匹配的灰度图像;I(x,y)表示原图(x,y)处的灰度值;dx和dy则表示原图中(x,y)处的像素在J图中的像素位置的变化量,定义向量d=[dxdy]T为特征点的光流向量。
由于孔径问题,在每个特征点附近长(2wx+1),宽(2wy+1)的范围内的像素灰度值都应满足灰度不变性,因此构建出光度误差和的方程ε(d),最后使用最小二乘法求解该方程,得到特征点的光流向量d。即有:
J(x+dx,y+dy))2
(3)
图1 算法原理示意图
算法分为2次过滤。第1次过滤的目的在于去除初始匹配结果中位置错误较大的误匹配,为第2次匹配提供优化的匹配结果;第2次过滤则是利用优化匹配对进行几何校验,得到精确的匹配结果。具体步骤如下:
第1次过滤。首先利用ORB算法分别对原图和待匹配图像提取特征点集合为A,B;然后利用暴力匹配法求出初始候选匹配对SET;最后,利用稀疏光流法对A中的所有特征点进行光流跟踪,求出光流向量d。
(4)
根据SET得出Ai对应的初始匹配特征点Bj(xj,yj),利用欧式距离计算公式求出该对匹配点的像素距离dij,同时经过实验测试设定像素距离阈值δ为15,计算匹配对过滤函数ρ:
(5)
以此方法遍历SET所有匹配对,将通过过滤函数的匹配对保留下来,进一步做几何校验,对没有通过的特征点匹配对进行滤除,最终达到优化初始匹配对的目的。
第2次过滤。将优化样本集作为样本数据代表集,再利用RANSAC算法进行几何校验,RANSAC算法是一种鲁棒的参数估计方法。通过在匹配对中随机选出一组样本对数学模型参数进行估计,以此模型对整体样本集进行分类,其中满足模型的样本称为内点,不满足模型的样本称为外点,取内点最多的模型参数作为最终的参数估计结果。其优点是鲁棒性强,可靠性强,对图像噪声有强健的承受能力,同时也具备剔除误匹配点的能力。ORB特征匹配经过几何校验之后,能够有效地滤除错误匹配,使得匹配结果更加准确,匹配性能更加优良,选取算法结果内点作为最终的匹配结果。
3 实验结果与分析
本实验使用的计算机CPU为英特尔i7-7700HQ,单核频率2.8 GHz,内存8 GB,操作系统为Ubuntu16.04。采用牛津大学几何视觉组提供的局部仿射变换图像库的图片作为测试数据集。该测试数据集的图像变换种类分别是:JPEG图像压缩、光照变换、视角变换、模糊变换、旋转和缩放变换,图2为5种算法在测试数据集中的匹配效果图。从图2中可以明显地看出,ORB算法图片结果出现大量误匹配,其中一部分像素错误跨度非常大;RANSAC-ORB算法和本文算法处理结果匹配点对虽然变少了,但是匹配精度高,效果更加清晰;SIFT和SURF特征点提取特征点非常多。为了更准确地描述ORB、RANSAC-ORB、SIFT、SURF和本文算法的匹配效果,下面对这5种算法的匹配准确率和运行时间展开研究。
图2 5种算法处理效果图
3.1 匹配准确率测试
匹配准确率是指特征匹配结果中正确的匹配点和算法检测到的匹配点的比值,是匹配性能的评价指标。分别对测试图像数据集中5组图像进行匹配实验,然后利用数据集提供的单应矩阵评测匹配结果,通过该矩阵求出特征点在待匹配图像中的准确像素位置,如果匹配结果在该特征点10个像素范围之内,则认为匹配正确。特征点提取函数参数均为OpenCV3.2版本提供ORB,SIFT以及SURF以及RANSAC函数接口的默认参数,采用暴力匹配算法,利用汉明距离进行匹配。经过多次实验,得到本文算法、ORB算法以及RANSAC-ORB算法、SIFT算法、SURF算法测试数据集在5种图像变换下的匹配准确率,如图3所示。图3中横坐标表示图像变换,纵坐标表示匹配准确率。从图3可知,本文算法和RANSAC-ORB算法相对ORB算法、SIFT算法,SURF算法在匹配精度方面提升明显,匹配准确率平均提高了21.6%。此外,在模糊变换,旋转缩放变换,视角变换,JEPG图像压缩变换、光照变换中,本文算法整体优于RANSAC-ORB算法,准确率平均提升约2%。由此可知,本文算法利用稀疏光流法优化初始匹配对,使得RANSAC算法得到的结果更加准确。在图像经过光流变换之后,特征匹配准确率整体下降,其中,RANSAC-ORB算法和本文算法降低到90%~95%之间,ORB、SIFT算法,SURF算法匹配准确率在50%~65%之间。
进一步分析可知,ORB算法、稀疏光流法是基于图像像素灰度的,在图像光照变换较大时,算法假设和实际出现较大出入,结果出现较大误差,匹配准确率下降明显。综上可知,本文算法在5种图像变换中匹配准确率基本最优,相比于ORB算法、SIFT算法,SURF算法匹配准确率提升明显。
图3 5种算法匹配准确率对比图
3.2 匹配速度测试
匹配速度测试实验是单纯计算算法从开始到算法结束耗费时间,单位为s,实验结果如表1所示。由于本文算法利用了光流法计算特征点的运动矢量,因此相比于RANSAC-ORB多了该部分算法的时间消耗,匹配速度约为其匹配速度的0.47倍,平均耗时仅多约0.08 s。此外,本文算法匹配速度为SIFT和SURF算子的18倍左右。本文算法匹配速度整体而言较快,居于5种算法中间位置。
表1 运行时间比较 单位:s
4 结论
本文介绍了现有的几种图像特征匹配算法概况,分析了这些算法在实际应用中遇到的问题,进而从提高匹配准确率和降低耗时出发,提出了基于稀疏光流法的ORB特征点匹配算法,详细阐述了该算法的实现过程。最后分别采用ORB、RANSAC-ORB、本文算法、SIFT算子、SURF算子进行特征点匹配实验。实验结果表明:本文提出的基于稀疏光流法的ORB特征点匹配优化算法在匹配准确率方面在5种匹配算法中准确率最优,而且本文算法对图像光照变换、视角变换、模糊变换、旋转和缩放变换,光照变换等情况具有较好的通用性。此外,相比于ORB算法、SIFT算法、SURF算子准确率提升明显,本文算法准确率平均提升了21.6%,相比于RANSAC-ORB算法提升较小,准确率平均提升了2%左右。在匹配耗时方面,本文算法速度约为SIFT、SURF算法的18倍。