黄 慧,董林鹭,刘小芳,赵良军
(1.人工智能四川省重点实验室,自贡 643000;2.四川轻化工大学 自动化与信息工程学院,自贡 643000;3.四川轻化工大学 计算机科学与工程学院,自贡 643000)
高可见度图像能够更清楚地反映目标场景中的细节,在目标识别[1]、跟踪[2]以及医学[3]研究等计算机视觉技术方向起着重要的作用。但是受摄像头系统成本高,拍摄技术人员的技巧等因素的限制,多数情况下选用相对便宜的传感器进行图像的采集。低光照图像在拍摄过程中受到光照不足、噪声等因素影响,图像的视觉质量无法令人满意,可能损害主要用于高可见度输入的算法性能[4],图片的重要信息被隐藏或忽略。图像增强的主要想法是只突出显示图像中人们感兴趣的部分或特征,为提高低光照图像的视觉质量,发掘出被掩藏的有效信息,低光照图像增强技术具有重要价值和现实意义。
经典的图像增强技术主要可以分为:空间域法和频域法[5]。空间域法直接对图像的像素进行处理,不进行其他域变换,常见方法的有线性增强(Linear Enhancement, LE)[6]和直方图均衡(Histogram Equalization,HE)[7-8]处理。多研究人员试图根据原始输入图像的统计信息,直接将被埋没的结构放大到可见状态,例如线性变换对图像中的像素值进行增大,是调出暗区可见性的最直观和简单的方法,但是带来的问题是若存在已饱和的较亮的区域,反而会过度增强丢失相应的细节,原本的区域的纹理特征可能变得不可见[9]。HE策略通过归一化迫使输出图像落在[0,1]之间,使原始图像中较集中的某个灰度区间在全范围内均匀分布。频域法将图像输入到频域中,计算图像的傅里叶变换,对特定图像的每一个傅里叶变换执行增强操作,随后执行逆傅里叶变换从而获取伴随图像,主要有高通滤波、同态滤波等方法。以上的算法都是简单且易实现的,但在低光照的情况下,图像的信息不规则被隐藏在黑暗中在,简单的增强的效果并不理想,不能得到较高品质的图像。研究人员在经典算法上提出许多改进,如通过变分法在直方图上加入不同的正则化项,从而改善HE的性能。其中通过寻找二维直方图的分层差异[10],上下文差异对比增强算法[11]试图找到差异直方图映射,虽然在一定程度上避免像素的溢出和过度增压强制像素值在[0,1]范围内,但是本质上它们关注于对比度增强,而不是利用真实照明的原因,存在过度增强和增强不足等风险,无法解决色彩饱和度的问题。Retinex理论基于视觉系统,主要假设(彩色)图像可以分解为反射率和照明度两个因素。在边缘增强和保护纹理的过程中,黑暗区域中重叠的成像和噪声可能同时被放大[12];针对光线不平衡的情况,需要一个自适应的模型根据不同区域动态的增强图像;尽量保证图像的自然性,如果图像的场景特征在增强后与视觉上失去一致性,那么这样的算法是失败的;但是传统的HE方法和Retinex理论很难同时满足上述所有要求。
基于Retinex算法又衍生出单尺度Retinex(Single Scale Retinex,SSR)、多尺度Retinex(Multi-Scale Retinex,MSR)[13-14]、多尺度彩色恢复算法(Multi-Scale Retinex with Color Restoration,MSRCR)[15-16]、多尺度色彩保护算法(Multi-Scale Retinex with Color Protection,MSRCP)[17],将反射率作为最终增强的结果,经常显得过度增强,反射率看起来不自然。Zhang等[18]提出运用动态随机共振算法增强非均匀光照图像,该算法通过随机共振原理模拟自然情况,解决了弱光问题,但是面临增强不足和颜色失真的问题。Fu 等[19]提出一种通过多种融合最初估计的照明图来调节照明的方法,使照明更为自然,但由于照明结构的盲目性,照明图可能使纹理丰富的区域失真,并且计算复杂度较高。Dong等[20]注意到倒置的弱光图像视觉上与雾度图像很相似,由此提出一种将低光照图片倒置后雾化,去雾后获得不真实图像,再将不真实图像倒置获得增强图像,这种方法虽然视觉质量不错,但是其理论模型缺乏物理解释。近年来随着深度学习的发展,一些研究人员期望通过深度学习的方式更高效的实现低光照图像增强,Chen等[21]在Retinex基础上建立RetinexNet模型,其模型包括用于分解的Decom-Net和用于调整照明的Enhance-Net两个部分。本文提出的方法基于Retinex做出改进,通过平滑聚类的方法获取基础层,由输入图像与基础层的差异得到细节层。通过估计低照度图像的照明图来增强图像,初始化照明图后,结合局部一致性和交替方向最小化技术优化照明图。常见Retinex算法进行Gamma矫正(Gamma Correction,GC)[22]时都是采用固定值或手动调整参数。本文采用自适应Gamma矫正同时本文仅估算照明图,利用自适应Gamma 矫正可以更好适应图像的变化,通过对优化的照明图进行非线性重标,调整较暗区域图像亮度减小噪声的影响。仅估算照明图可以大大缩小求解空间和计算量,最后加入细节融合的步骤。在实验结果表明与其他几种经典算法相比较,本文算法获得的增强图像细节方面更为丰富,图像的清晰度高。
经典的Retinex模型在增强微光图像方面取得了良好的效果,其主要思想是将图像I分解为[23]:
L=R∘T,
(1)
提出的模型[20]反转的低光照图像1-L与雾度图十分相似,表示为:
(2)
图1 本文方法结构图Fig.1 Structure of the method in this paper
第一阶段对低光照图像进行平滑聚类去除纹理,主要为两个步骤:式(1)图像I中像素的检测,式(2)平滑聚类各区域内的像素点。该窗口中心的像素点(i,j)的灰度值为f(i,j)。窗口内像素点构成的集Si,j和窗口内所有像素值的平均值Avg(Si,j)分别为:
Si,j={f(i+k,j+r)|k,r=-1,0,1},
(3)
(4)
对滤波窗口中心像素点(i,j)做中值平滑,得到的灰度值为:
g(i,j)=med{f(i-n,j-n),
f(i-n+1,j-n+1),...,
f(i,j),...,f(i+n,j+n)}.
(5)
滤波操作使边界模糊,利用平滑聚类后的图像Lbase作为基础层,可以提取出低光照图像中的细节层Ldetail, 单独保存图像的细节层在最后的融合时加入。
Ldetail=L-Lbase,
(6)
(7)
其中c属于R,G,B三个颜色通道,在这个方程式中,假设每个像素的照度至少是其中三通道中的最大值。根据Retinex理论得到增强的低光照图像为:
Rc(x)=Ic(x)/(T(x)+∈),
(8)
(9)
将式(9)代入式(2)解出[8]:
(10)
可以看到当a取值为1时,式(8)和式(10)结果相同。但如果a远离1时,式(8)和式(10)之间的等价性就会打破[26]。
由上述可知光照估计从局部一致性中受益,可以使不同区域的增强效果有所不同,代表方式为:
(11)
(12)
(13)
其中:α是使式(13)中两个项保持平衡的系数,‖·‖F和‖·‖1表示标准范数和1范数,W表示权重矩阵,T代表一个包含水平方向光照hT和垂直关照vT的一阶滤波期。在优化式(13)中,第一项考虑到了初始映射和修正映射T间的差异,第二项考虑了平滑度。由此看出在权重矩阵W设置为1会导致式(13)中损耗总变量最小化问题[29],同时也缺少区分强结构边缘和纹理的能力[30]。
由此可见,权值矩阵设置非常重要,引出对每一个位置通过如式(14)所示的方式设置权重[26]:
Wh(x)←
(14)
式(13)可以通过交替方向最小化技术有效解决,为加快计算的速率,通过式(14)近似计算式(13):
(15)
由此看出这个问题只涉及二次项,故可以直接计算解决方案,而不需要任何迭代。以图像OnGra为例,对比多种算法的照明图像以及对相应增强后的结果如图2所示。
图2 对比多种算法对光照图像的优化以及对相应增强后的结果Fig.2 Compare the optimization of the illumination image and the corresponding enhanced results by multiple algorithms
图2中(a)通过max-RGB初始化的照明图,该方法下光照图是非常均匀的,只能提高全局照明度,对非均匀照明图像处理的能力有限;图2(b)表示利用双边滤波对光照图进行优化,增强结果显示出不错的色彩丰富度,但调色板颜色被模糊并且损失了调色板和植物的细节信息;图2(c)表示用总变分最小法调整照明图,调色板的细节纹理和清晰程度较高,但是对背景信息造成了明显的影响,花盆后的场景信息基本丢失;尽管图2(b)和图2(c)在一定程度上解决了对非均匀图像处理的问题,但两种方法增强后造成不同位置的细节信息的丢失。图2(d)代表的本文方法,能直观地感受到增强后的图像中调色板色彩鲜艳,花盆中的植物栩栩如生,细节丰富,纹理清晰,充分显示出本文方法的优势。
传统Retinex算法使用Gamma矫正用于对改进后的光照图进行非线性重标,经典的Gamma矫正如下:
(16)
其中:Iin和Iout分别表示输入图像的强度和输出图像强度,c和γ为控制变换曲线状态的两个参数,c是用来提高或降低输出图像的亮度,γ控制变换函数的斜率,γ值越大变换曲线越陡,相应的强度分布就越多。但传统的Gamma矫正灵活性有所欠,针对不同光照情况的参数分类种类繁多,手动设置增大了计算的工作量,并且浪费时间。
引理1中、高对比度图像,其γ∈[0.9,1.65]范围内[31]。
由引理1可知在图像的γ值在1附近范围,图像的对比对变化不明显。在低光照图像中调高亮度常比对比度增强更为重要,于本文使用自适应Gamma矫正算法[31],这是一种去除噪声、增强所有类型图像的有效方法。
在图像严重曝光不足、低光照的情况下获取的图像可见度低,导致很多有效信息被埋藏在黑暗中,成像的效果影响到人的视觉体验,为更好地提取出隐藏的信息,本文提出以下融合方法:
Lresult=L+Ldetail,
(17)
其中L代表根据最终照图增强后的低光照图像。
本文所有实验都建立在windows 10操作系统下的Matlab R2018a平台,为保证实验效果的可靠性,所选取的图像均选自Exclusively Dark数据集[32],该数据集是从极弱光环境到微光(即10种不同条件下)的7 363幅弱光图像的集合。为充分评价本文提出方法的性能,更好地体现改进后方法的优势,实验会在不同场景的低光照图像上测试本文方法与经典增强算法:线性增强(LE),Gamma矫正(GC),HE,SSR,MSR,MSRCR,MSRCP,RetinexNet并在主观和客观两方面进行对比。实验参数设置及特点如表1所示。
表1 实验参数设置及特点
表2 方法特点
在本文中对原图进行预处理分离出细节层也是非常重要的一个步骤,使图像增强后在保护细节纹理方面有很大提升。实验选用9×9窗口模板的均值、最大值、最小值、高斯及中值滤波5种滤波方式对图WaterC进行细节层分离,细节层分离结果如图 3所示。使用不同滤波算法对图WaterC,HighB,StreetN,AI,SuburbanB,IndoorT细节层分离,不同滤波算法耗时结果如表3所示。
图3 细节层分离结果Fig.3 Detail layer separation results
从图3中看出细节图(a)未能有效分离出细节信息,包含背景成分过多,细节图(b)几乎没有细节成分,细节图(c)中虽然包含细节信息丰富,但同时包含大量的背景信息,而且强光区域出现模糊情况,很容易使叠加后的图像出现过度增强显现,(d)中仅包含部分强光区域的细节,细节图(e)保存大量有效信息,并且边缘轮廓清晰,含有背景成分少。
表3 不同滤波算法耗时结果
表3可以看出,中值滤波在各个算法中表现稳定,时耗上总体仅落后于高斯滤波,结合表3和图3,从提取效果和时耗两个因素考虑,本文选用中值滤波作为提取细节层的滤波算法。
由式(1)和式(2)可知对图像进行平滑操作时,模板窗口的选择十分重要,平滑窗口越大,平滑效果越明显。对图WaterC,HighB,StreetN,AI,SuburbanB,IndoorT分别使用3×3,5×5,7×7,9×9,11×11,13×13平滑提取细节层,并选用边缘强度(EI)对获取到的细节层进行质量评估,提取细节层耗时、细节层质量结果分别如表4、表5所示。
尽管中值滤波的运行时间与窗口大小没有直接联系,但是一个算法好坏从时间效率上也有所体现,结合表4可知在多个窗口模板中9×9的窗口值是最为稳定的,比另外两个窗口值较大的模板在耗时上差距较小。
表4 提取细节层耗时
从表5中可知,窗口模板的值越大,图像的边缘信息越丰富,实际导致这一现象的原因是:窗口值选择较小时,平滑力度不够无法较为完整的获取细节信息,模板窗口选择过大时,但输入图片与平滑结果差值不仅包含细节信息还包括很多背景信息。综合上述表4和表5,本文选择窗口为9*9的模板。
WaterC增强图如图4所示。由这一组图片可以很明显感受到,(b)LE的效果并不明显,统一的增强图像中的所有像素,虽然能使图片整体明亮一些,但是不能使黑暗区域中的信息更好的显示;(c),(d),(e),(f)从视觉效果上已经有明显提升,能显示出黑暗区域中建筑物的信息,并且在原图中肉眼无法看到的空中的云朵能够较为完整的显示,但是整体显得有些假白,不是十分自然;(g)和(h)在本组实验中未能显示出算法优势,闪电对云朵区域的像素点造成影响,远处的像素点对中心像素点依赖度过高,显得增强过度;(i)增强后的图像细节信息丰富,但失真的情况较为严重,画面十分不自然;本文方法(j)呈现的效果较为自然,细节信息明显,闪电和云朵的层次感分明。
图4 图WaterC增强图Fig.4 WaterC Enhancement map
为验证本文方法效果的稳定性以及对细节等方面保存性能的优势,对高山夜景图进行增强,更直观地从视觉效果上感受本算法的优势,图HighB增强图如图5所示。
图5中的(c),(d),(e),(g)表现的效果还是比较令人满意,(c),(d)增强的结果已经能看出是夜晚,但是在云彩的细节上有所欠缺;(e),(f)在细节上在建筑物的细节上比较有优势,但是增强后更像是白天,和实际上的光照差距较大,减小了周围与建筑物周围的灯光的对比度;(h)效果失真,并未展现其算法优势;(i)在悬崖的细节上有所模糊,而且植物的颜色存在失真的现象。本文算法效果稳定不仅能较为完整呈现建筑五和云朵等细节信息,还能看出是夜晚的效果。
图6~图9列举出更多的图片的实验数据。
图5 图HighB增强图Fig.5 HighB Enhancement map
图6 图StreetN增强图Fig.6 StreetN enhancement map
图7 图AI增强图Fig.7 AI Enhancement map
图8 图SuburbanB增强图Fig.8 SuburbanB Enhancement map
图9 图 IndoorT增强图Fig.9 IndoorT Enhancement map
由图4~图9发现其余几种算法均存在不同程度的增强不足或增强过度的情况,通过这几组图片能在视觉上感觉到本文方法的优势,即使针对不同类型的低光照图像,它也能挥发稳定的功效,增强后的图片十分自然,并且细节效果展示充分。
单从视觉效果或评价指标数值中的一个有时不能完全判定一个图像增强后的质量,故本文采用EI、平均梯度(AG)、空间频率(SF)、能量梯度(EG)等4个图像质量评估函数来对以上几组增强后的数据进行评估,综合评价本文方法。各组数据EI质量评估函数结果如表6所示。
表6 EI评估质量函数结果
边缘作为图像最基本的特征,指的是周围像素弧度又节约变化的那些像素的集合,边缘强度是评价图像质量重要的指标之一。从表6看出在多幅图像的实验中,虽然本文方法在图HighB,IndoorT中次于RetinexNet算,结合对应图像可以看出RetinexNet增强后的图像加强了阴影部分的提取,虽然保留下很多边缘信息,但也给边缘附近留下很多噪声,效果并不理想。本文指标优于其余算法,在图像的边缘保护方面表现良好。
平均梯度指图像边界或影线两侧的灰度值变化的差异,即表示灰度变化率的大小,它反映了图像为小细节反差变化,表征图像的相对清晰程度。表7中指标总体良好,虽然RetinexNet在图2~图7的指标表现十分出色,但原因是背景信息与细节信息过度区域发生了光的发散,导致增强后图像不自然。图AI中次于HE和MSCRP,原因结合图7发现HE和MSCRP过度增强,导致背景墙上亮度过高甚至出现光点,本文方法在增强的效果细节上胜过其余算法。
表7 AG评估质量函数结果
空间频率函数是每度视角内图像或刺激图形的明暗度作正弦调制的栅条周数,应用在视觉系统中,为对比感受性函数。是评价图像在视觉上敏锐度的指标。表8上看出,本文方法在图SuburbanB上次于MSCRP算法,在结合图8发现MSCRP颜色保护过度,导致增强后颜色失真。而本文方法增强效果自然,颜色表现良好。
能量梯度函数常被用来提取边缘信息,对焦良好的图像,边缘更尖锐,有更大的梯度值。表9中指标在图WaterC,HighB中次于RetinexNet算法,在图AI中次于HE和MSCRP,RetinexNet算法,在图SuburbanB和IndoorT中次于MSCRP和RetinexNet算法,由图3~图9看出都是图像过度增强导致的。在其余图像上,本文方法均表现良好。
表8 SF评估质量函数结果
综上所述可以看出本文方法在各个性能指标上表现良好,比常见的几种Retinex算法,本文方法类比其他算法具有一定的稳定性,优势明显。尽管不是所有的评价函数指标都是最高值,但是指标的数值都在正常范围内。再结合视觉效果,可以感受到本文方法在对图像细节信息保留方面有很大提升。
针对低光照情况下获取的图像的,本文提出一种结合平滑聚类和改进的Retinex算法的低光照图像增强方法,运用多种技术尽量多的保存图像细节,从而达到图像增强的目的。本方法主要包含四步:第一步对输入图像进行分层处理,将输入图像进行平滑聚类得到基础层,通过输入图像与基础层的差异分离出细节层;第二步通过max-RGB技术对输入图像的光照图进行初始化。利用图像的局部一致性及交替方向最小化技术再优化初始的照明图;第三步运用自适应Gamma矫正对优化后的照明图进行重标,平滑曲线自动增强图像对比度。根据最终的照明图增强输入图像;第四步将增强后的图像与细节层叠加,使图像细节更加丰富。低光照图像经本文方法增强后色彩自然,清晰度高,与其他经典方法相比,在保证增强质量的同时评价指标都相对较高,提出的方法在现实生活和研究中可以广泛使用。