结合同态滤波与直方图均衡化的井下图像匹配算法
2021-11-05龚云杨庞彬颉昕宇
龚云, 杨庞彬, 颉昕宇
(西安科技大学 测绘科学与技术学院, 陕西 西安 710054)
0 引言
随着计算机、通信等技术的发展,煤矿的自动化、智能化水平得到了极大提升[1]。目前,我国大多数煤矿都安装了视频监控系统,但由于井下巷道狭长及光照、粉尘等影响,摄像机视野范围有限,存在监控盲区[2-3]。通过图像拼接技术可将多个摄像机拍摄的图像拼接成全景图,从而改善监控效果,为后续数据分析和处理打下基础[4]。图像拼接的核心问题是准确找到待拼接图像的重叠区域,即图像匹配。
现有的图像匹配方法可分为基于灰度的匹配方法和基于特征的匹配方法[5]。基于灰度的匹配方法存在对图像尺度敏感、时间复杂度高等缺点,匹配精度往往较低。基于特征的匹配方法对图像几何信息和光照变化的鲁棒性较强且速度更快,因此得到了广泛应用[6]。基于特征的匹配方法主要采用尺度不变的特征变换(Scale Invariant Feature Transform,SIFT)[7]、加速稳健特征(Speeded Up Robust Features,SURF)[8]、KAZE[9]及加速KAZE(Accelerated-KAZE,AKAZE)[10]等算法进行特征提取。其中SIFT算法和SURF算法通过高斯差分函数构造尺度空间,易造成边界模糊和细节丢失。AKAZE算法通过非线性扩散滤波构造尺度空间,相较于SIFT算法和SURF算法,能够局部自适应滤除边缘细节,同时保留目标边界。本文采用AKAZE算法进行特征提取。
由于井下光照不均匀,从井下图像中提取的特征信息较少,且图像中过暗区域和过亮区域的边缘细节和局部纹理特征会在构造相同尺度空间时被平滑掉,造成匹配错误的现象。因此,本文在采用AKAZE算法构造尺度空间之前,通过同态滤波对图像进行锐化,以突出图像的边缘细节信息;为进一步提高图像的对比度,采用一种限制对比度的自适应直方图均衡化(Contrast Limited Adaptive Histgram Equalization, CLAHE )算法[11]对图像进行处理。
传统的AKAZE算法采用汉明距离作为相似性测度,并结合最近邻距离比率(Nearest Neighbor Distance Ratio, NNDR)约束剔除错误匹配点,但人为设定的距离比率约束会使部分正确匹配点被丢弃,从而影响匹配效果[12]。针对该问题,本文采用汉明距离作为相似度测度进行粗匹配,并采用基于单应性矩阵的随机采样一致性(Random Sample Consensus, RANSAC)算法剔除错误匹配点对,以提高匹配准确率。
1 同态滤波与直方图均衡化算法
同态滤波器作为一种非线性滤波器,通过傅里叶变换、对数变换等数学运算,采用线性滤波方法处理AKAZE算法构造尺度空间时的非线性问题。
1.1 同态滤波原理
同态滤波是根据图像的照射-反射模型提出的。设图像坐标为(x,y),图像密度函数f(x,y)可表示为照度分量i(x,y)与反射分量r(x,y)的乘积,即
f(x,y)=i(x,y)r(x,y)
(1)
对式(1)进行对数变换,得
lnf(x,y)=lni(x,y)+lnr(x,y)
(2)
对式(2)进行傅里叶变换,得
F(u,v)=I(u,v)+R(u,v)
(3)
式中F(u,v),I(u,v),R(u,v)为经过傅里叶变换后的图像密度函数、照射分量和反射分量。
采用同态滤波传递函数H(u,v)对式(3)中的照射分量与反射分量进行增强,并通过傅里叶逆变换将图像密度函数、照射分量和反射分量变换到空间域:
hf(x,y)=hi(x,y)+hr(x,y)
(4)
式中hf(x,y),hi(x,y),hr(x,y)分别为空间域的图像密度函数、照射分量和反射分量。
对式(4)进行对数变换,得到滤波后的图像g(x,y):
g(x,y)=exp|hi(x,y)|·exp|hr(x,y)|
(5)
图像的照射分量属于低频分量,而反射分量属于高频分量。因此,设计同态滤波传递函数时,需兼顾低频分量和高频分量。同态滤波传递函数波形如图1所示。其中,D(u,v)表示传递函数频率到滤波器中心D0的距离,Zh为高频增益,Zl为低频增益。
图1 同态滤波传递函数波形Fig.1 Waveform of homomorphic filter transfer function
由于同态滤波传递函数波形与高斯型高通滤波函数波形类似,所以常用高斯型高通滤波函数作为同态滤波传递函数。但传统的高斯型同态滤波传递函数存在多个参数,且参数的选择较为经验化[13],因此,本文采用单参数同态滤波传递函数[14]:
(6)
式中α为调节参数。
在新的传递函数中,只存在一个调节参数α,可提高参数的可调性。
1.2 CLAHE算法
经同态滤波处理后的图像清晰度得到了提高,但图像的整体对比度不够理想。传统的直方图均衡化是一种全局算法,没有充分考虑图像细节信息。由于井下光照不均,对图像整体进行直方图均衡化会导致过亮区域或过暗区域的细节丢失。因此,本文采用CLAHE算法,使得图像像素灰度间距拉开,以改善视觉效果,达到图像增强的目的。
CLAHE算法是在直方图均衡化的基础上,通过抑制部分灰度级被过多合并所引起的噪声放大和局部对比度增强的现象,以提高图像的对比度,使图像更加生动、清晰。CLAHE算法的具体步骤如下:
(1) 将图像分为多个子区域,每个子区域内像素点的个数为NsubI(0≤NsubI≤85),直方图为l(k)(k为灰度级,0≤k≤L-1,L为最大灰度级)。
(2) 对每个子区域内的直方图进行剪切,剪切阈值为
(7)
式中C为决定图像对比度的常量。
(3) 采用阈值δ对每个子区域内图像的直方图l(k)进行剪切,将超出阈值的像素点重新均匀分布到其他子区域的直方图中(图2)。超出阈值的像素点个数Ntotal为
(8)
图2 直方图剪切Fig.2 Histogram clipping
(4) 通过对比度受限函数对图像对比度增强的程度进行限制,得到最终的图像直方图l′(k):
(9)
μ=δ-Nsub
(10)
Nsub=Ntotal/L
(11)
式中:μ为分配阈值;Nsub为每个子区域增加的平均像素点数。
2 AKAZE算法优化
针对传统AKAZE算法存在误匹配的问题,在采用暴力匹配算法进行粗匹配的基础上,采用基于单应性矩阵的RANSAC算法剔除错误匹配点对,以提高匹配准确率。
采用非线性扩散滤波构造金字塔形状的尺度空间,通过非极大值抑制方法确定特征点位置,再通过以下步骤实现特征点匹配:
(1) 采用K近邻算法检测出目标特征点的最近邻点和次近邻点,并计算目标特征点与最近邻点和次近邻点的汉明距离d(a,b):
(12)
式中:a,b为特征点描述符,a=p1p2…p512,b=q1q2…q512;pj,qj为二进制编码;⊕表示异或运算。
(2) 利用汉明距离作为相似度测度,采用暴力匹配算法对所有特征点进行粗匹配,获取高质量的粗匹配点对。暴力匹配算法可通过直接调用openCV库中的函数实现。
(3) 采用基于单应性矩阵的RANSAC算法剔除错误匹配点对。RANSAC算法原理是在一组存在外点的数据集中,利用连续循环迭代的方法寻求最优参数模型(即最佳单应性矩阵),剔除不符合最优模型的点对(即外点),得到提纯后的精准匹配点对(即内点)。
基于单应性矩阵的RANSAC算法步骤如下:
(1) 假设在目标图像与待匹配图像中存在对应点对(x,y,1)和(x′,y′,1),则有
(13)
式中M为单应性矩阵。
将式(13)展开后可得到3个等式,通过代换可得
(14)
在矩阵M中,m33一般设为1,剩余8个未知参数,至少需要4组匹配点对才能求解,矩阵M计算公式为
(15)
(2) 利用矩阵M计算所有特征点对的投影误差,若投影误差小于阈值ε(本文设为5),则保留该单应性矩阵M。
(16)
(3) 随机获取4组匹配点对,反复进行上述2步。若发现投影误差更小的矩阵,则保留该矩阵。
(4) 当将所有匹配点对随机选取完后,确定出投影误差最小的矩阵,即最佳单应性矩阵。将所有匹配点对代入式(13)中,若满足该等式,则将匹配点加入内点集合,反之视为外点进行剔除。
3 实验分析
3.1 图像增强实验
以基于Microsoft Visual Studio 2019的OpenCV 4.5.1计算机视觉库和Matlab R2016a为实验平台,采用SONY A6000相机所拍摄的3组井下照片进行实验分析。对原图像进行单参数同态滤波并采用CLAHE算法处理,将处理后的图像与原图像进行对比分析,如图3所示。可见,经本文算法处理后,图像的细节更加突出,且整体对比度得到提高,图像更为生动。
为进一步说明图像增强效果,以第1幅图像为例,对原图像和处理后图像的灰度直方图进行对比,如图4所示。可以看出,使用单参数同态滤波和CLAHE算法对图像进行增强,可拉伸图像的灰度级,减少暗像元数量,增加亮像元数量,使得灰度级分布更加平滑,有利于保留图像的细节和边界信息。
3.2 图像匹配实验
采用传统的SURF算法、AKAZE算法及本文算法进行实验,3种算法检测到的特征点数量见表1。可见,SURF算法检测出的特征点最少,本文算法检测出的特征点最多。
图3 图像增强效果Fig.3 Image enhancement effect
图4 灰度直方图对比Fig.4 Grayscale histogram comparison
表1 各算法特征点检测数量Table 1 Number of feature points detected by each algorithm
3种算法的图像匹配效果如图5所示。由图5可以直观地看出,SURF算法检测出的特征点过于稀少,AKAZE算法虽然可以检测出较多特征点,但特征点质量不佳,匹配结果不理想。本文算法检测出的特征点最多,具有较好的匹配效果。
(a) SURF算法(b) AKAZE算法(c) 本文算法
为了客观评价3种算法的性能,以匹配准确率作为评价指标,进行对比分析,结果见表2。可见,本文算法的匹配效果最佳,准确率最高可达96.09%。
表2 各算法的准确率Table 2 The accuracy of each algorithm
4 结论
(1) 通过同态滤波对图像进行锐化,提高了图像清晰度。同时,采用单参数同态滤波传递函数,提高参数的可调性。采用CLAHE算法对图像进行处理,使得图像像素灰度间距拉开,可改善视觉效果,达到图像增强的目的。
(2) 对传统AKAZE算法进行优化,利用汉明距离作为相似度测度,采用暴力匹配算法对所有特征点进行粗匹配,再采用基于单应性矩阵的RANSAC算法剔除错误匹配点对,以提高匹配准确率。
(3) 实验结果表明:使用单参数同态滤波和CLAHE算法对图像进行增强,可拉伸图像的灰度级,减少暗像元数量,增加亮像元数量,使得灰度级分布更加平滑,有利于保留图像的细节和边界信息;采用基于单应性矩阵的RANSAC算法进行精准匹配,可检测出更多特征点,提高匹配准确率,准确率最高可达96.09%,匹配效果优于SURF算法和传统AKAZE算法。