唐华鹏,秦丹阳,燕梦莹,张更新,郑 平,白嘉男
(黑龙江大学 电子工程学院,哈尔滨 150080)
图像匹配是指利用一定的匹配算法在两幅或者多幅图像之间识别同名点的过程,根据匹配要素的不同,图像匹配可以分为基于灰度的匹配和基于特征的匹配两种类型。基于灰度的匹配容易受到颜色变化的影响,因此在现有的目标识别领域,尺度不变特征转换(Scale-invariant feature transform,SIFT)等基于局部特征匹配的相关算法得到了广泛应用。然而,在早晚时段、遮挡区域或封闭/半封闭空间等照度低于0.1 Lux的低光照环境下采集的图像存在亮度低、对比度差和噪声干扰等问题,使图像特征点提取损耗严重,导致图像匹配困难。因此,研究低光照环境下的图像匹配具有重要的应用价值。
为了解决低光照环境下的图像匹配问题,需要在图像匹配之前对低光照图像进行增强处理。低光照图像增强通过增强暗区,抑制高亮区,实现图像清晰化。目前,常用的方法主要有基于直方图的增强方法[1]、基于同态滤波的增强方法和基于Retinex理论的增强方法[2]等。文献[3]提出了一种基于自适应对数变换的低光照图像特征检测方法,该方法采用自适应对数变换补偿具有不同光照程度的图像,以提高图像的对比度和亮度,然而,该方法在处理图像时没有考虑噪声对实验结果的影响,在增强细节的同时,噪声也被放大。文献[4]以多种算法相结合的方式对低光照图像进行预处理,该算法处理的图像颜色自然,对比度合适,清晰度好,达到了图像增强的目的。文献[5]提出了一种基于小波变换的低照度图像自适应增强算法,利用小波变换可以有效地分离图像的高频分量和低频分量,该算法能有效提高图像清晰度,去除图像增强引起的光晕现象,具有良好的实时性。上述方法对低光照环境下的图像增强提出了不同的改进思路,但亮度低、颜色失真和噪声干扰等问题仍未得到解决。在文献[4]基于低照度下特征匹配的新型图像增强算法研究的基础上,提出了一种基于同态滤波与MSRCP结合的特征点补偿算法。为了验证算法的可行性,采用多尺度色彩恢复Retinex (Multi-scale retinex with color restore,MSRCR)算法、自动多尺度色彩恢复Retinex (Automated muti-scale Retinex with color restoration,Automated MSRCR)算法、文献[3]算法和本算法对不同环境下的低光照图像进行处理,并比较处理后图像的性能指标。
为了模拟不同环境下的低光照图像,从现有的目标检测数据集[6](Pattern analysis,statical modeling and computational learning visual object classes 2007,PASCAL VOC2007)中选取了50张图像,通过随机伽马变换和添加高斯噪声,将其处理成不同亮度的低光照图像。低光照图像的获取如图1所示。
图1 低光照图像的获取Fig.1 Acquisition of low light images
为了消除图像中的干扰信息,需要对图像进行预处理,以恢复出真实信息。低光照图像的预处理过程如图2所示。在预处理过程中,首先,采用高斯滤波去除低光照图像中的噪声;其次,采用亮度自适应增强[7]对图像进行光照补偿,提高图像亮度;然后,采用自适应对比度增强和多尺度图像细节提升[8]对图像进行对比度和细节增强;最后,采用白平衡[9]校正图像的颜色。通过预处理提高了低光照图像的亮度和对比度。
图2 低光照图像的预处理Fig.2 Preprocessing of low light images
经过预处理,图像清晰度有所提高,但图像的整体对比度不理想。为了改善这个问题,需要增强图像对比度,图像对比度增强的方法可分成两类:一类是直接对比度增强方法;另一类是间接对比度增强方法。直方图拉伸和直方图均衡化是两种最常见的间接对比度增强方法,直方图均衡化是一种全局算法,没有充分考虑图像细节。在低光照环境下,由于光照不均匀,对整个图像进行直方图均衡化会导致一些细节丢失。因此,采用自适应直方图均衡化来提高图像对比度。具体步骤:首先,将图像从RGB空间转换到YCrCb空间,然后,对Y分量进行自适应直方图均衡化,将均衡化后的Y分量和CrCb分量组合成彩色图像,再转换到RGB空间,从而达到图像增强的目的。
为了校正图像的光照,减弱光照变化的影响,达到增强暗部细节的目的,采用同态滤波对均衡化后的图像进行锐化[10]。通过调整图像的灰度范围,有效解决了图像光照不均的问题,达到了突出图像边缘和细节信息及增强对比度的目的。
设图像坐标为(x,y),则图像密度函数f(x,y)可表示为照射分量i(x,y)与反射分量r(x,y)的乘积[11],即
f(x,y)=i(x,y)*r(x,y)
(1)
对式(1)进行对数变换,得:
d(x,y)=lnf(x,y)=lni(x,y)+lnr(x,y)
(2)
对式(2)进行傅里叶变换,得到频域的表达式:
D(x,y)=I(x,y)+R(x,y)
(3)
假设用同态滤波函数H(u,v)处理D(x,y)[12],可得:
H(u,v)D(x,y)=H(u,v)I(u,v)+H(u,v)R(u,v)
(4)
滤波后,对式(4)进行傅里叶逆变换,得:
G(x,y)=lnfi′(x,y)+lnfr′(x,y)
(5)
对式(5)进行指数变换,得到滤波后的图像:
g(x,y)=fi′(x,y)+fr′(x,y)
(6)
同态滤波的过程如图3所示。首先,借助对数变换和傅里叶变换将图像变换到频域,并对频谱进行滤波处理,然后,通过同态滤波器H(u,v)抑制低频,增强高频,达到增强图像细节的目的。
图3 同态滤波Fig.3 Homomorphic filtering
在傅里叶变换中,图像的照射分量属于低频分量,反射分量属于高频分量。在处理低光照图像时,为了增强图像细节,减少光照的影响,需要提高高频分量,抑制低频分量。因此,在设计同态滤波传递函数时,应同时考虑低频和高频分量。由于同态滤波传递函数波形与高斯型高通滤波函数波形类似,通常使用高斯型高通滤波函数作为同态滤波传递函数。同态滤波传递函数的一般形式为:
(7)
式中:D(u,v)和D0分别为离频率中心的距离和截止频率;ΥH为高频增益;ΥL为低频增益。
对于不同亮度的低光照图像,D0的选择不同,当D0固定时,有的图像整体偏黑,有的图像整体偏白。为了提高图像的辨识度,改善视觉效果,通过实验测试,选取D0=10,以清晰显示低光照图像的细节信息。
传统的Retinex算法在处理有噪声图像时容易出现局部颜色失真,整体视觉效果较差,为了避免颜色失真,采用多尺度色彩保护Retinex (Multi-scale retinex with chromaticity preservation,MSRCP)算法对同态滤波后的图像进行色彩增强[13]。MSRCP通过一次多尺度Retinex (Multi-scale retinex,MSR)算法对彩色图像的强度图像进行处理[14],并根据原始图像的RGB比例映射到每个通道。其中,强度图像公式为:
(8)
式中IR、IG和IB分别为原始图像中对应的三通道子图像。
辐照度估计值的计算公式为:
(9)
式中f为滤波器的函数。
MSRCP增强的线性量化计算方法为:
(10)
为了提高图像质量,反射分量图像的伽马亮度计算调整如下:
(11)
式中γ为校准参数。
实验的γ校准参数均设定为2,Intα表示获得的单通道图像。此时,该算法需要使用算子恢复颜色,具体过程如下:
为了使增强图像的背景色与原始图像一致,图像放大系数A为:
(12)
B=max(IR(i),IG(i),IB(i))
(13)
式中:i为像素的索引;max和min分别为计算的最大值和最小值。
利用放大因子A分别对R、G和B三个通道进行色彩调整,从而得到增强后的图像[15],计算公式为:
Rmsrcp(x,y)=A·IR,G,B(x,y)
(14)
式中:IR,G,B(x,y)为原始对应的通道图像;Rmsrcp(x,y)为最终得到的增强图像。
基于同态滤波与MSRCP结合的特征点补偿算法如图4所示。首先,对预处理后的图像进行自适应直方图均衡化,提高图像的对比度;然后,采用同态滤波对均衡化后的图像进行锐化,提高图像的清晰度;最后,采用MSRCP算法对图像进行色彩增强,改善图像的视觉效果。
图4 算法步骤Fig.4 Algorithm steps
局部特征检测算法(Scale-invariant feature transform,SIFT)通过在图像中寻找特征点及其相关的尺度和方向描述子来获取特征并进行特征匹配。由于SIFT特征是图像的局部特征,因此可以在旋转、缩放和亮度变化时保持一定的稳定性。SIFT算法的步骤为:尺度空间的建立、特征点提取、特征描述子生成和特征点匹配。
尺度空间理论是指利用高斯核函数对图像进行尺度变换,以模拟图像数据的多尺度特征[16]。SIFT算法利用高斯卷积核来建立尺度空间L,图像的尺度空间表示公式为:
L(x,y,σ)=G(x,y,σ)*I(x,y)
(15)
式中:L(x,y,σ)为尺度空间;G(x,y,σ)为尺度可变的二维高斯函数,由于尺度因子σ的不同,会生成一组不同尺度下的图像,σ的大小代表图像的平滑程度,σ越大代表图像分辨率低,σ越小代表图像分辨率高;I(x,y)代表原始图像。
为了高效准确地检测尺度空间中的稳定关键点,SIFT算法采用高斯差分(Difference of Gaussian,DOG)尺度空间来提高计算效率,计算公式为:
D(x,y,σ)=[G(x,y,kσ)-G(x,y,σ)]*I(x,y)=L(x,y,kσ)-L(x,y,σ)
(16)
SIFT特征点提取步骤为:DOG空间极值点检测、特征点定位和特征点方向分配。
(1) 为了检测高斯差分尺度空间中的极值点,每个选中的采样点需要与周围的26个邻域点进行比较,即8个同尺度的像素点和18个上、下尺度的像素点,如图5所示,当采样点大于或小于26个邻域点时,则该采样点可视为候选关键点。
图5 DOG空间极值点检测Fig.5 Detection of extreme points in DOG space
(2) 通过拟合三维二次函数[17],精确确定关键点的位置和尺度,去除不稳定的边缘特征点,提高匹配的精度,使用子像素插值法对空间离散点进行连续插值,求出连续空间中的极值点。运用高斯差分(Difference of Gaussian,DOG)函数在尺度空间里面的泰勒级数展开式对尺度空间函数进行曲线拟合公式为:
(17)
式中极值点的表达式为:
(18)
(3) 利用关键点邻域像素的梯度方向分布特征,确定每个关键点的方向参数,使特征描述子具有旋转不变性。对于窗口的每个采样点L(x,y),梯度方向的模值和方向分别用m(x,y)和θ(x,y)表示:
(19)
(20)
式中a和b分别为:
a=L(x+1,y)-L(x-1,y)
(21)
b=L(x,y+1)-L(x,y-1)
(22)
特征描述子是一个包含特征点邻域所有信息的高维向量,在生成特征描述子之前,需要进行以下处理;首先,确定特征点领域内像素的主方向,为消除旋转变换的影响,选取0°作为主方向;然后,在16个4×4区域,统计每个区域中8个方向的梯度分布直方图如图6所示。对于选定的16×16区域,需要统计16个分布直方图,每个直方图代表了该领域内8个方向的信息;最后,形成了一个128维的特征描述子。
图6 生成的特征描述子Fig.6 The generated feature descriptors
利用SIFT对经过特征点补偿算法处理后的低光照图像进行特征点提取,提取过程如图7所示。首先,利用高斯核进行卷积得到高斯金字塔,获得图像在不同尺度空间中的特征点信息;其次,将高斯金字塔差分得到差分金字塔,以提高计算效率;然后,在差分金字塔中进行DOG空间极值检测,找到稳定的关键点并对关键点进行方向赋值;最后,生成特征描述子。
图7 特征点提取过程Fig.7 Extraction process of feature points
SIFT特征匹配是指在分别提取模板图像和实时图像的特征描述子之后,使用描述子之间的相似性度量来完成匹配的过程。为了提高匹配效率,在提取具有多维向量的SIFT特征点后,使用K-D树数据结构完成搜索,其搜索原理是:在待匹配的图中,将与基准图样本点欧氏距离最小的特征点视为最近邻点,其距离称为最近邻距离。对于距离基准图样本点欧氏距离大于最近邻点但小于其他所有点的特征点,认为其为次近邻点,其距离为次近邻点的距离。当最近邻距离与次近邻距离之比小于阈值时,最近邻点与样本点为匹配点对,否则,它们就不是匹配点对。生成的匹配点对的数量取决于阈值,如果阈值很大,匹配点对的数量也会很大,否则,匹配点对的数量将会减少。虽然Lowe推荐的比例阈值为0.8,但匹配两幅存在尺度、旋转和亮度变换的图像时,最佳比例阈值0.4~0.6,因此,为了筛选出最优匹配点,比例阈值Threshold=0.5,计算公式为:
(23)
式中:dmin为最近距离;d1为次近距离。
由于SIFT算法是利用特征点周围的空间特性进行匹配,因此会存在空间特性十分相似的非匹配点。为了解决这个问题,引用RANSAC算法从全局判断匹配点对的正确性[18]。RANSAC算法采用仿射变换模型,通过随机抽取一定数量的样本来估计模型参数。RANSAC算法的基本假设是数据由“内点”和“外点”组成,“内点”是组成模型参数的数据,“外点”是不拟合模型的数据,其他误差较大的点为噪声。SIFT匹配点可分为:误匹配点、精确匹配点和噪声匹配点。
RANSAC算法的步骤为:
(1) 从匹配对数据集L中随机选取四对匹配点作为样本集S,求出仿射变换模型R的参数[19];
(2) 通过设定阈值Td,计算数据集所有数据与模型R的误差,小于设定阈值Td的点为新的内点,统计内点的数目,记为集合P;
(3) 当集合P的大小大于某个阈值Te时,用P重新估计模型,迭代结束,否则选取下一个新的样本,重复上述步骤,随机抽样计算N次,选出最大的一致集,重新计算模型,得到最后的结果。
为了验证本算法的可行性,从50幅低光照图像中随机选取4幅图像进行实验,分别使用MSRCR算法、AutomatedMSRCR算法、文献[3]算法和本算法对这4幅图像进行处理,并对处理后的图像进行性能比较。本研究以特征点的数量、人眼对增强后图像的直观感受、匹配点对数量以及匹配准确率[20]作为算法的评价指标。
图8(a)为原始图像,图8(b)是MSRCR算法处理后的图像,图8(c)为Automated MSRCR算法处理后的图像,图8(d)为文献[3]算法处理后的图像,图8(e)为本算法处理后的图像。采用4种算法对原始图像进行增强,将处理后的图像与原始图像进行了对比分析,结果如图8所示。可以看出,文献[3]算法处理后的图像视觉效果较差,亮度较低。虽然MSRCR和Automated MSRCR算法处理后的图像亮度和对比度得到了明显的改善,但这两种方法对图像边缘的过度增强导致了图像颜色失真。相比之下,本算法处理后的图像亮度对比度较好,边缘细节更加突出,颜色更加自然。
(a) 原图
采用4种算法对图像进行处理,结果如图9所示,可以看出,文献[3]算法处理的图像检测出的特征点最少,而本算法处理的图像检测出的特征点最多。
图9 特征点数量Fig.9 Number of feature points
利用SIFT对4种算法处理后的图像进行特征匹配,结果如图10所示。可以看出,在低光照环境下,文献[3]算法处理后的图像检测出的特征点最少,虽然Automated MSRCR和MSRCR处理的图像检测到的特征点较多,但特征点质量较差,匹配效果不理想,本算法处理后的图像检测到的特征点最多,匹配效果较好。
(a) MSRCR算法
为了客观评价4种算法的性能,以图像特征点的匹配点对数量和匹配准确率作为评价指标,结果如表1所示,可以看出,在低光照环境下,本算法处理后的图像匹配点对最多、匹配效果最好和匹配准确率最高,可以达到74.32%,在一定程度上解决了图像匹配困难的问题。
表1 不同算法处理后图像的客观指标Table 1 Objective index of images processed by different algorithms
在光线不足的低光照环境中拍摄的图像亮度低、噪声明显和细节模糊,为了有效地提高低光照原始图像的质量,赋予人眼丰富的视觉效果,提高图像匹配的准确性,提出了一种基于同态滤波与MSRCP结合的特征点补偿算法,采用同态滤波对图像进行锐化以提高图像清晰度,并利用MSRCP对图像进行色彩增强,改善视觉效果,达到图像增强的目的。采用SIFT进行特征匹配,再使用RANSAC算法剔除误匹配对,从而提高匹配精度。结果表明,经过本算法处理后的图像具有较好的边缘和细节特征,在特征点的数量、特征点匹配对的数量和匹配准确率等方面都有较大的提高。在进行特征匹配时,本算法处理后的图像相较于其它算法处理后的图像,匹配准确率最多可以提高25.49%,在一定程度上解决了低光照环境下图像匹配困难的问题。同态滤波的参数仍需调整,在未来的研究中可以进一步优化。