云底高度测量中SURF特征匹配的应用研究
2019-03-06张奇伟
张 奇 伟
(山东省国土测绘院,山东 济南 250103)
1 概述
基于双目成像的云底高度测量系统是利用立体视角差测距原理,采用两个相对固定的相机同步获取到两幅图像,通过图像匹配算法获得同名点,采用数字摄影测量中的空间前方交会算法计算其云底高度[1]。
由于高度、厚薄、分层、光照、能见度等因素的影响,使得空中的云表面不连续,种类单一,因此,云图像具有纹理缺乏、对比度低和边缘不清晰等局限[2]。而且,对同一块云,从不同角度观察也会有所差别,使得云图像在匹配时不易检测同名点。
图像匹配是云底高度测量系统的核心算法,主要分为基于灰度的匹配和基于特征的匹配两类[3]。其中,基于灰度的匹配对光照,噪声等非常敏感,不够稳定,而基于特征的匹配可有效克服这些缺点[4]。SIFT(Scale-Invariant Feature Transform)[5]是经典的基于特征的匹配算法,Wang和Bay等[6,7]提出的SURF算法是加速版的SIFT,继承了它的不变性,并在运算速度上比它快3倍左右[8]。
2 SURF特征匹配算法
SURF对图像的局部特征进行描述,具有高效性和高鲁棒性。在图像发生平移、旋转、尺度缩放、光照变化、视角变化和噪声的情况下具有极强的适应性[9]。SURF特征匹配算法分3个步骤:特征点检测、特征点描述和特征点匹配[10]。
2.1 特征点检测
SURF特征点检测分四步:构建Hessian(Hessian Matrix)矩阵、构建尺度空间、特征点定位和特征点主方向分配。
2.1.1构建Hessian矩阵
构建Hessian矩阵能够检测到图像稳定的边缘点,为提取特征点做好准备。黑塞矩阵是一个多元函数的二阶偏导数构成的方阵,描述了函数的局部曲率。对于图像f(x,y),其Hessian矩阵如式(1)所示:
(1)
对图像进行高斯滤波后的Hessian矩阵如式(2)所示:
(2)
其中,x为特征点坐标;σ为尺度;Lxx(x,σ),Lxy(x,σ),Lyy(x,σ)为图像在该点与高斯二阶偏导数的卷积。Hessian矩阵的判别式,如式(3)所示:
det(H)=Dxx×Dyy-Dxy×Dxy
(3)
当det(H)取得局部极大值时,则表示当前点为其周围邻域内的更亮或更暗点,以此来定位关键点的位置。
为简化计算,SURF算法以盒子滤波器来近似替代二阶高斯滤波器,高斯滤波器和盒式滤波器的示意图如图1所示。
图1中,上边是二阶高斯滤波器模板,下边是使用盒式滤波器对其近似的模板[11]。
2.1.2构建尺度空间
SURF的尺度空间由若干组构成,每组包含若干层。不同组间使用尺寸逐渐增大的盒式滤波器,因此,图像的尺寸是一致的;同一组内不同层间使用模糊系数逐渐增大、尺寸相同的滤波器,如图2所示。
2.1.3特征点定位
将经过Hessian矩阵处理的每个像素点与其在尺度空间邻域内的26个点进行比较(如图3所示),若该点大于这26个点,则定位为关键点,再剔除能量比较弱或错误定位的关键点,筛选出最终的稳定的特征点[12]。
2.1.4特征点主方向分配
在SURF中,特征点的主方向是对以该点圆形邻域内的Harr小波特征统计运算得到的。即在特征点的6倍特征尺度为半径的圆形邻域内,统计60°扇形区域内所有点的Harr小波特征总和,旋转扇形区域依次统计,小波特征总和最大的扇形方向定为主方向。求取特征点主方向的过程如图4所示。
2.2 特征点描述
SURF算法中,特征点描述选取该点周围以特征点主方向为方向的一个4×4的矩形区域块,每个子区域统计4个方向各自的Harr小波特征总和。这样就得到4×4×4=64维特征向量作为SURF特征的描述子,如图5所示。
2.3 特征点匹配
SURF特征点匹配由特征点间的欧式距离来判断匹配度,距离越小,匹配度越好。同时,SURF特征点匹配还加入了Hessian矩阵迹的判断,同号代表特征具有相似的对比度变化;反号则予以排除。
2.3.1特征匹配最近邻算法FLANN
FLANN算法由Lowe和Muja于2009年提出,该算法基于KD-TREEK或均值树的搜索操作来实现,在高维空间最近邻查找不受局部敏感哈希影响[13]。FLANN算法的对象是n维向量空间Rn,在数据集中使用欧氏距离找到待匹配点的最近邻值。欧氏距离公式如式(4)所示:
(4)
本文以KD-TREE结构存储向量空间Rn的所有欧氏距离,通过KD-TREE可以有效搜索与待匹配点距离最邻近的点。搜索过程是在KD-TREE结构上由上至下的递归过程:先以一个特定基准将分割点和目标点的值进行比较,判断目标点所在的区域;在对应节点中循环比较,直到目标搜索成功为止。
2.3.2随机采样一致性算法RANSAC
通过FLANN算法匹配得到的特征点中还存在大量错误的匹配点,为了消除这些错误匹配点,保证匹配的质量和效果,本文选用随机采样一致性算法RANSAC(Random Sample Consensus)对特征点进行筛选。RANSAC是根据一组包含异常数据的样本数据集,计算出数据的数学模型参数,得到有效样本数据的算法,是目前广泛采用的一种剔除错误匹配点的算法[14]。
RANSAC剔除错误匹配点对的过程如下:首先随机选取4个匹配点对数据,计算得到模型参数,利用此模型搜索统计其他局内数据,重新计算得到新的模型参数;迭代以上过程,不断随机抽样计算,最后选取局内点数据最多、误差最小的模型[15]剔除错误匹配点对。
3 实验结果与分析
本文测试云图像选取了低空、中空和高空三组数据,数据获取基线长度分别为60 m,120 m,200 m。对同步观测的云图像进行SURF特征匹配,匹配结果如图6~图8所示,图中十字丝为特征点,连线为匹配点对。可以看出,特征点主要集中在云的边缘部分,只有少量点位于云的底部。图6中云的视差较大但边缘比较清晰,图8中云量大且纹理比较丰富,所以特征点较多;而图7中,云的边缘模糊,纹理缺乏,所以特征点较少。从匹配结果来看,三组云图像均能匹配出云底部的同名点。
实验数据如表1所示,结果表明:本文采用的SURF特征匹配算法对云图像匹配效果良好,匹配正确率高于94.8%。
表1 实验图像匹配结果
4 结语
本文利用SURF特征匹配算法对云图像进行同名点检测,很好地解决了云图像不易匹配的问题。本文所用方法对云图像的亮度变化、视差变化、边缘模糊具有较强的鲁棒性,匹配正确率较高,且能够匹配出一定数量的云底部同名点。但是,面对边缘不清晰、纹理缺乏的云图像,云底部同名点数量稀少,还需要进一步研究。