一种基于边缘特征的改进ORB算法
2018-04-13曾庆化王云舒刘建业
陈 艳,曾庆化,2,王云舒,2,刘建业,2,刘 昇
(1. 南京航空航天大学自动化学院导航研究中心,南京 211106;2. 卫星通信与导航协同创新中心,南京 211106;3. 中航工业洛阳电光设备研究所,洛阳 471009)
0 引言
图像匹配是数字图像分析和处理的基本问题,是图像处理技术应用的重要前提,现已广泛应用于图像融合、机器人自主行驶、目标跟踪与识别和视觉导航[1]等领域。基于特征的图像匹配算法因其计算量小、计算速度快,是当前图像匹配技术的主流方向。经典的点特征图像匹配算法有SIFT[2](Scale Invariant Feature Transform)算法、SURF[3](Speeded Up Robust Features)算法和ORB[4](Oriented FAST and Rotated BRIEF)算法等。根据实验验证[4],ORB算法的性能优于SIFT与SURF算法,在具备旋转不变性的同时,其计算速度是SIFT算法的100倍,是SURF算法的10倍。
ORB算法计算速度较快,能抵抗旋转变换。但由于可见光图像和红外图像的灰度差异大,ORB算法对可见光和红外图像匹配效果较差,容易出现较多的错误匹配点。国内外已公布的基于点特征进行的可见光与红外图像匹配研究较为有限。文献[5]在点特征检测与描述的基础上,采用广义Hough变换与随机采样一致性相结合的方法进行特征匹配,实现了对可见光与红外图像的匹配。文献[6]利用特征点的形状上下文描述符,对红外图像和可见光图像进行匹配。
虽然可见光图像和红外图像的灰度信息差异较大,但其具有相同的边缘信息,因此基于边缘特征的匹配算法是解决可见光和红外图像匹配的有效途径。文献[7]提出了一种基于直线几何形状特征的可见光和红外图像匹配方法。文献[8]利用线段上下文描述符对可见光与红外图像进行匹配。文献[9]提出基于互相关系数和canny边缘区域相结合的匹配算法。
本文将边缘特征引入ORB算法,提出了一种基于边缘特征的改进ORB算法。该算法采用了一种基于改进最大类间方差法的自适应canny算子检测可见光图像和红外图像的边缘,将两幅边缘图像作为ORB算法的输入,利用最近次临近原则实现粗匹配,用RANSAC算法实现精匹配,从而加强ORB算法对可见光与红外图像匹配的性能。实验证明,该算法对可见光与红外图像匹配具有较好的鲁棒性,能获得较多的正确匹配点对和较高的匹配正确率,有利于推广使用于可见光与红外图像融合等领域。
1 ORB算法原理
ORB算法是基于FAST算法和BRIEF[10]算法的改进算法,ORB算法继承了这两种算法的优点,拥有高效的计算效率。BRIEF特征不具备抗旋转变换的能力,为了使ORB特征具备旋转不变性,该算法分别对FAST算法和BRIEF算法进行了改进。
1.1 特征点检测
ORB算法利用改进FAST算法进行特征点检测。FAST算法具有计算量小、可靠性高等优点,但FAST算法无法获取特征描述所需的方向信息。因此,ORB算法采用灰度矩心法提供特征点主方向信息。
灰度矩心法假设特征点的灰度与邻域灰度质心之间存在一个偏移向量,这个向量可用于表示一个方向。对任意一个角点,定义特征点区域的灰度矩为:
(1)
其中,I(x,y) 为点(x,y) 处的灰度值。于是,邻域灰度矩心为:
(2)
那么特征点与邻域灰度质心的夹角定义为ORB特征点的方向:
θ=arctan(m01,m10)
(3)
为了提高该方法的旋转不变性,取以特征点为圆心、半径为r的圆形区域为特征点的邻域,上述的点(x,y)均在圆形区域内。
1.2 特征点描述
ORB算法利用改进BRIEF算法进行特征点描述。BRIEF算法速度快,但对噪声敏感,不具备旋转不变性。为了加强算法的抗噪声能力,ORB算法根据Gauss分布,在特征点周围的31×31像素邻域内随机选取5×5的子窗口,对窗口进行RBF平滑处理获得其灰度积分,用窗口灰度积分的比较代替点对像素值的比较。为了使描述子具备旋转不变性,ORB算法将特征点的主方向应用于BRIEF。
BRIEF中点对灰度的比较值又叫做binary test值,其定义为:
(4)
其中,p(x) 是平滑后点x处的像素灰度值。在特征点领域内取n个点对,BRIEF描述子可表示为:
(5)
然后,ORB算法将所有点对进行旋转。在算法实现时,定义所有点对为2×2n的矩阵:
(6)
其中,每一列[xy]T为点对中某一点在图像中的位置。定义特征点的主方向为θ,其旋转矩阵为Rθ,则旋转后的特征点对矩阵为:
Sθ=RθS
(7)
则ORB算法的描述符为:
gn(p,θ)=fn(p)|(xi,yi)∈Sθ
(8)
不同特征点的BRIEF描述子具有较大的差异性,不容易误配。而经过旋转处理后的描述子各成分间的相关性大,容易出现误匹配的现象。因此ORB算法利用贪婪搜索,找到n个像素块对使其相关性最低,并构成描述符。
1.3 特征点匹配
因为ORB描述符为二进制形式,匹配时需要用汉明距离(Hamming Distance)进行相似性度量,并利用最近次临近法进行判断。汉明距离体现了两个二进制字符串的相关程度,当两个关键点之间的最短和次最短汉明距离比例小于0.5时,认为这两个特征点匹配成功。
2 基于边缘特征的改进ORB算法
ORB算法具备运算速度快、抗旋转变换的能力,但其对可见光和红外图像匹配的效果不佳。据研究,可见光和红外图像具备相似的边缘特性,因此本文将边缘特征引入ORB算法中,从而实现可见光与红外图像的匹配。
canny算子与传统的微分算子相比具有运算速度快和检测精度高的优点,是实践中广泛使用的一种边缘检测算法。然而canny算子的双阈值均依靠人工设定,在实际运用过程中需要用不同的数值进行尝试,过程比较繁琐。因此,需要研究一种依据图像梯度幅值的自适应canny算子。
2.1 canny算子原理简述
1)图像平滑:采用一维Gauss滤波函数G(x) 分别按行和列对原始图像I(x,y)进行卷积操作得到平滑图像I′(x,y)。
(9)
其中,σ为Gauss函数的标准差,控制平滑程度。
2)梯度计算:采用2×2邻域1阶偏导的有限差分H1、H2计算平滑图像I′(x,y)中各点两个方向的像素梯度dx(x,y)和dy(x,y) ,获得平滑图像I′(x,y)的梯度幅值M(x,y) 和梯度方向θ(x,y),其中:
(10)
dx(x,y)=I(x,y)·H1,dy(x,y)=I(x,y)·H2
(11)
(12)
(13)
3)非极大值抑制:对梯度幅值图像M中的类边缘区域的屋脊带进一步做细化处理,得到梯度幅值局部区域的最大值,抑制局部区域内的干扰值,从而获得更加精确的边缘。
其基本思想是使用一个3×3邻域作用于梯度幅值图像M的所有点,如果邻域中心点的梯度幅值M(x,y) 比沿梯度方向θ(x,y)上的两个相邻点幅值大,则将当前的邻域中心点判别为可能的边缘点,否则将M(x,y)赋值为0,判别为非边缘点。
4)确定高低阈值:在经过非极大值抑制的梯度图像基础上,根据人工设定的阈值参数来确定作为真实边缘像素个数占所有像素的比例,并在此基础上来确定高阈值Vh和低阈值Vl。
5)边缘检测:用双阈值法对经过非极大值抑制的梯度图检测出最接近真实目标的边缘轮廓,扫描图像,若点(x,y)的梯度幅值M(x,y) 大于高阈值Vh,则将该像素点标识为边缘点;若梯度幅值M(x,y)小于低阈值Vl,则标识该点为非边缘点;幅值介于Vl和Vh之间的像素点,则将其看作可疑边缘,再进一步依据周围像素的连通性对该像素进行判断。
2.2 改进最大类间方差法(改进Otsu法)
最大类间方差法即Otsu算法,可以自适应地确定阈值。利用图像的灰度信息把图像分类成目标和背景,目标与背景之间的类间方差越大,分类越正确。当目标和背景存在一定程度的错分时,相应的类间方差会变小,所以当类间方差最大时,目标与背景错分的概率最小。传统的Otsu算法设置一个阈值将原始图像分成目标和背景两个部分,由于红外图像的边界较模糊,部分目标和背景之间的灰度级相隔较近,分成3类能较好地区别出这一类灰度较小的目标,有助于canny算子获得更精确的高低阈值。因此,本文设置两个阈值T1、T2,且0 使用T1、T2把输入图像处理为3类,即C0、C1和C2。其中,C0由图像中灰度值在[0,T1]范围内的所有像素组成,C1由灰度值在[T1+1,T2]范围内所有像素组成,C2由灰度值在[T2+1,L]范围内所有像素组成。由阈值T1、T2,像素被分到类C0、C1和C2中的概率分别为P0(T1,T2)、P1(T1,T2)和P2(T1,T2),如式(14)~式(16)所示。 (14) (15) (16) 其中,pi为灰度级为i的概率,ni为灰度级为i的像素数,N为图像总的像素数。 (17) (18) (19) C0、C1和C2类间方差表示为: (20) 类间方差最大时的阈值T1、T2即为canny算子的高低阈值。 基于Otsu法的自适应canny算子能够根据图像灰度的梯度幅值自动地找出合适的高低阈值,从而实现自适应canny算子增强算法的自动化程度。其具体实现步骤如下: 1)采用传统canny算子的1~3步得到经过非极大值抑制的梯度图像; 2)根据梯度图像中各像素的灰度,采用改进Otsu法计算得到分割目标与背景的高低阈值; 3)将高低阈值输入canny算子的第5步,得到边缘图像。 由于可见光与红外图像的边缘图像具有一定的相关性,且边缘是图像中最基本和比较固定的特征,所以利用边缘图像上提取的特征点进行图像匹配,有利于匹配精度的提高。针对ORB算法无法实现可见光与红外图像的匹配,本文提出了基于边缘特征的改进ORB算法,算法的工作示意图如图1所示,主要步骤如下: 1)采用基于改进Otsu法的自适应canny算子获取可见光图像和红外图像的边缘图像。 2)分别对可见光图像和红外图像的边缘图像进行ORB特征提取与描述,并进行粗匹配。匹配时,根据最近次临近原则,采用最小汉明距离度量特征点间的相似性。 3)利用RANSAC算法剔除步骤2中的错误匹配点对,在可见光图像和红外图像中展现出结果。 本文实验测试的环境为:Intel Core i3,CPU 2.93GHz,内存4.0GB。本文基于改进Otsu法的自适应canny算子和canny算子在Matlab R2014a中实现,canny算子中人工设定的阈值参数为0.7。本文采用的测试图像如图2所示,每一组的分辨率分别为256×183、204×160和250×185。 canny算子和基于改进Otsu法的自适应canny算子(简称“改进canny算子”)的边缘检测结果如图3~图5所示。 如图3所示,当图像中存在较多纹理时,canny算子的边缘检测结果受图像纹理的影响较大,改进canny算子的边缘检测能较好地抵抗图像纹理的影响,保留较为完整的外部轮廓。 如图4和图5所示,当图像背景与目标灰度差异较大时,canny算子与改进canny算子的检测结果相近。canny算子检测的边缘存在毛刺,不够平滑;改进canny算子忽略了部分细节边缘,利于后续的匹配。 本文实验测试的环境为:Intel Core i3,CPU 2.93GHz,内存4.0GB。基于边缘特征的改进ORB算法和ORB算法均在基于OpenCV2.4.9的VS2010中实现,测试图像如图2所示,实验结果图如图6、图7和图8所示。表1和表2为ORB算法和本文算法的匹配结果数据。 如图6和图7所示,当可见光图像和红外图像的灰度差异不强烈时,ORB算法有一定的匹配效果,但本文算法的匹配效果更好。如图8所示,当可见光图像和红外图像的灰度差异非常强烈时,ORB算法失效,而本文算法能正常工作。因而,本文算法具备较强的鲁棒性。 如表1和表2所示,本文算法获取的精匹配对数、正确匹配对数均比ORB算法多,且本文算法的匹配正确率均在80%以上,远远高于ORB算法,具有较好的匹配性能。 表1 ORB算法匹配结果 表2 基于边缘特征的改进ORB算法匹配结果 针对ORB算法对可见光图像和红外图像匹配效果差的问题,本文提出了一种基于边缘特征的改进ORB算法。首先提出了基于改进Otsu法的自适应canny算子,然后对边缘图像提取ORB特征,最后采用最近次临近方法进行粗匹配,用RANSAC法进行精匹配。 通过3组实验证明,本文算法能在可见光图像和红外图像灰度差异较大时正常工作,具有较好的鲁棒性。该算法能有效地提高ORB算法对可 见光和红外图像匹配的性能,能获得足够多的正确匹配特征点对,具有良好的匹配正确率。 [1]Jia K, Chan T H, Zeng Z, et al. ROML: a robust feature correspondence approach for matching objects in a set of images[J]. International Journal of Computer Vision, 2016, 117(2):173-197. [2]Lowe D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110. [3]Bay H, Ess A, Tuytelaars T, et al. Speeded-up robust features(SURF)[J]. Computer Vision and Image Understanding, 2008, 110(3): 346-359. [4]Rublee E, Rabaud V, Konolige K, et al. ORB: an efficient alternative to SIFT or SURF[C]. IEEE International Conference on Computer Vision, 2011, 58(11):2564-2571. [5]Bodensteiner C, Huebner W, Juengling K, et al. Local multi-modal image matching based on self-similarity[C]. IEEE International Conference on Image Processing, 2010, 119(5):937-940. [6]张姣, 李俊山, 朱英宏,等. SIFT与形状上下文结合的异源图像匹配算法[J]. 激光与红外, 2012, 42(11): 1296-1300. ZHANG Jiao, LI Jun-shan, ZHU Ying-hong, et al. Matching method of IR/visual images based on SIFT and shape context[J]. Laser & Infrared, 2012, 42(11):1296-1300. [7]方兰兰, 刘贵喜, 吕孟娇, 等. 利用边缘直线特征的异源图像配准[J]. 光学精密工程,2015,23(10):752-760. FANG Lan-lan, LIU Gui-xi, LYU Meng-jiao, et al. Multi-source matching of multi-sensor images based on edge line features[J]. Optics and Precision Engineering, 2015,23(10):752-760. [8]张亚红, 夏仁波. 基于直线段上下文的红外与可见光图像匹配[J]. 科学技术与工程, 2015, 15(12):210-214. ZHANG Ya-hong, XIA Ren-bo. A matching algorithm of infrared and visible images based on segment context[J]. Science Technology and Engineering, 2015, 15(12):210-214. [9]陈亮, 周孟哲, 陈禾. 一种结合边缘区域和互相关的图像配准方法[J]. 北京理工大学学报, 2016, 36(3):320-325. CHEN Liang, ZHOU Meng-zhe, CHEN He. A method for image registration combined by edge region and cross correlation[J]. Transactions of Beijing Institute of Technology, 2016, 36(3):320-325. [10]Calonder M, Lepetit V, Strecha C, et al. BRIEF: binary robust independent elementary features[C]. European Conference on Computer Vision, 2010:778-792.2.3 基于改进Otsu法的自适应canny算子
2.4 基于边缘特征的改进ORB算法
3 实验结果及分析
3.1 基于改进Otsu法的自适应canny算子性能测试
3.2 基于边缘特征的改进ORB算法性能测试
4 结论