基于收缩场学习的Retinex低照度图像增强
2020-11-07吴庆波王蕊任文琦
吴庆波,王蕊,任文琦,*
(1.中国科学院信息工程研究所 信息安全国家重点实验室,北京 100193;2.中国科学院大学 网络空间安全学院,北京 100049)
受光照强度的影响,在夜间和背光条件下采集的图像往往含有较低的对比度、大面积的暗区域和明显的噪声污染。这些降质图像往往导致人们无法正确地辨识场景内容,也常常给图像检索、多媒体信息安全等后续计算机视觉任务[1-3]带来严峻的挑战。因此,低照度图像增强具有重要的理论价值和现实意义,受到学界广泛关注。
早期,大部分工作[4-5]通过直方图调整亮度值的分布对低照度图像进行增强。但是,这些方法往往产生过增强或欠增强的结果,而且忽视了较暗区域中存在的噪声。受Retinex理论[6]启发,学者提出对低照度图像I进行分解:I=R◦L,R为反射图(Reflectance Image),表示物体固有的物理属性,L为照明图(Illum ination Map),表示图像中物体上的光照强度,“◦”为Hadamard乘积。基于Retinex分解,大部分方法[7-14]通过调整照明图像对低照度图像进行增强。在该框架下,Guo等[7]引入了LIME(Low-light Image Enhancement)方法,先从低照度图像中估计初始照明图,再利用结构先验对照明图进行改进,最后通过除法操作恢复反射图。虽然LIME方法在后处理阶段使用BM3D[15]从反射图中去除噪声,但该策略对噪声不够鲁棒。一方面是因为受照明图的影响,反射图中放大的噪声在空间上分布不均匀。另一方面,BM3D方法假设图像噪声服从高斯分布,不适用于去除反射图中不均匀的噪声。为避免噪声放大问题,Li等[9]把输入图像从RGB颜色空间转换到HSV颜色空间,并且在V通道上提出SR(Structure Revealing)变分模型,该模型在正则项中利用输入图像的梯度对反射图的梯度进行约束,以保持反射图中物体的结构信息,但该约束使得输入图像中较大的噪声不可避免地传导至反射图,以致增强图像中含有残留噪声。虽然Retinex分解模型在低照度图像增强任务中取得了明显的效果,但大部分图像增强方法[8,10-14]不能有效地抑制反射图中的噪声污染。
近年来,出现了大量基于深度学习的低照度图像增强方法[16-23],进一步提高增强图像的质量。Wei等[16]提出Retinex-Net网络对低照度图像进行增强,先使用分解网络(Decom-Net)从观测图像中得到反射图和照明图,再利用BM3D[15]和增强网络(Enhance-Net)分别对反射图和照明图进行去噪和增亮,最后通过I=R◦L得到恢复结果,该方法改进了反射图的质量,但对观测图像中较大的噪声仍然比较敏感,因为BM3D不适用于抑制反射图中空间变化的噪声。Shen等[17]注意到多尺度Retinex(Multi-Scale Retinex,MSR)方法[18]在结构上与前向卷积神经网络类似,于是设计了深度网络MSR-Net,然而,该网络在后处理阶段采用了与LIME方法[7]相同的去噪策略,导致增强结果中往往存在残留噪声。Park等[19]使用层数较少的编码-解码(Encoder-Decoder)网络去除反射图中的噪声。与此不同,端到端(End-to-End)的深度模型[20-24]不考虑Retinex分解[6],直接从低照度图像中获得增强结果。Ren等[20]引入混合深度网络(DHN),在内容流分支中使用编码-解码框架捕获具有全局显著性的结构信息,在边缘流分支中增强边缘信息,以弥补内容流分支中编码过程引起的细节丢失。然而,边缘流分支在增强纹理边缘的同时也会引起噪声的放大,降低图像增强结果的质量。大部分基于深度学习的方法改善了低照度图像的增强结果,但仍然容易导致增强图像中含有残留噪声。
为在增强低照度图像的同时抑制噪声,本文首先构造新的目标函数,在数据项中对观测图像进行Retinex分解,在正则项中使用2组不同的高阶滤波器分别约束未知的反射图和照明图。由于高阶滤波器可以学习到多种不同的激活模式,该设计有利于在恢复反射图像的同时抑制噪声污染。其次,在优化求解目标函数时,采用高斯径向基函数(Radical Basis Function,RBF)的线性组合对压缩函数进行参数化,并通过收缩场(Shrinkage Field,SF)求解未知量。参数化的压缩函数能够适度地调整相应滤波器在反射图和照明图上的响应。最后,在每一级联内更新照明图之前,嵌入一个辅助的SF对反射图进行精化,以避免反射图中的噪声和不良伪影在优化过程中传导至照明图。改进的反射图(又称辅助的反射图)具有较高的质量,更有利于精确估计照明图。
1 传统的收缩场模型
Schmidt和Roth[25]在半正定二次分裂(Half-Quadratic Splitting,HQS)方法中摒弃传统的压缩函数,通过引入SF求解非盲图像去模糊问题。
式中:X为清晰图像;Y为观测图像;K为模糊核k的BCCB矩阵;η>0为权重参数;“⊗”为卷积运算符;X(c)为X中的第c个团(Clique);C为所有团序号的集合;N和s分别为滤波器的个数和序数;势函数ρs对滤波器fs在X(c)上的卷积响应进行建模。
在文献[25]中,SF定义为清晰图像X的解,在第i个级联中的数学表达式为
式中:KT为K的转置矩阵;α>0来自参数η;Fs为滤波器fs的BCCB矩阵;压缩函数φs表示高斯径向基函数的线性组合:
文献[25]验证了SF模型(2)在图像去噪和非盲图像去模糊中的有效性。随后,该模型推广到其他底层计算机视觉任务,如文档图像去模糊(Document Image Deblurring)[26]、图像去雾[27]和图像超分辨率(Image Super-Resolution)[28]。受这些工作的启发,本文把SF模型用于低照度图像增强任务。
本文和传统SF模型[25]不同,主要有以下3个方面的区别:①传统SF模型仅仅复原清晰图像,而本文在恢复反射图的同时还需要求解照明图,具有更大的挑战性;②文献[25]在每个级联中使用单个SF模型,而本文中的每个级联都由3个不同的SF模型组成;③传统SF模型借助快速傅里叶变换(Fast Flourier Transform,FFT)更新清晰图像,而本文采用文献[27]算法3的思路,借助广义最小化残差(GMRES)方法[29]更新所有未知变量。
2 本文方法
2.1 低照度图像增强模型
图像噪声不可避免地破坏反射图R和照明图L的估计[30]。为克服该问题,本文提出一个新的目标函数对低照度图像进行增强。其中,数据项融入了Retinex分解模型,正则项使用2组不同的高阶滤波器分别约束反射图和照明图。
式中:第1项为数据项,来自于Retinex分解I=R◦L,该项通过欧氏范数约束恢复的反射图R与观测图像I在场景内容上保持一致;在第2项中,L*为初始估计的照明图,通常含有噪声[30],该项用于约束照明图L,以缓解低照度图像增强问题的不适定性;最后2个正则项分别采用高阶滤波器组Fs和¯Fs(s=1,2,…,N)约束反射图R和照明图L,势函数ρs和¯ρs分别对高阶滤波器的响应进行建模,其重要性由权重η>0和¯η>0决定。
2.2 模型的优化求解
2.2.1 优化反射图和照明图
由于反射图R和照明图L均为未知量,采用交替迭代策略求解低照度图像增强模型(4)。为此,在RGB颜色空间中对低照度图像的每个像素点求最大值,获得初始照明图L*。
1)更新反射图R。固定式(4)中的照明图L,保留与反射图R有关的项,得到如下子问题:
受文献[25]的启发,式(5)在第i个级联中的解可以表示为SF模型。
式中:LD为向量L的对角化矩阵;压缩函数(l)定义为式(3)中高斯径向基函数的线性组合,其中参数为未知量。
借鉴文献[25]的做法,本文在式(3)中使用M=53个高斯径向基函数,这些函数的均值μr均匀地分布在-1.1~1.1的范围内。为论述方便,SF模型(6)简记为模型参数Ψi=(αi)。需要注意,在式(6)中用辅助的反射图~Ri-1代替了原来的变量Ri-1,原因在本节的方法部分进行讨论。
式(8)中照明图L在第i级联中的解表示为SF模型。
与SF模型Ψi中的和中的均不相同。
综上所述,本文提出的低照度图像增强方法步骤如下所示,流程如图1所示。
图1 低照度图像增强方法流程Fig.1 Flowchart of low-light image enhancementmethod
步骤1输入低照度图像I。
步骤2按像素计算RGB通道的最大值作为照明图L*,并用其初始化变量L0。
步骤3通过计算式(6)更新反射图Ri。
步骤4通过计算式(7)更新辅助的反射图。
步骤5通过计算式(9)更新照明图Li。
步骤6如果迭代次数i小于最大迭代次数maxIter,转到步骤3。否则,输出反射图RmaxIter和照明图LmaxIter。
对引入的辅助反射图~R作进一步讨论。在式(6)、式(7)和式(9)中,参数αi、和对增强图像和抑制噪声2个方面的效果进行调节。以式(6)为例,当αi接近于零时,式(6)更多地起到增亮低照度图像的作用,故而往往导致恢复图像中含有明显的噪声。相反,当αi足够大时,式(6)更多地起到抑制噪声的作用,所以不能有效地增亮输入图像。在噪声抑制过程中,先用压缩函数(l)对滤波器Fs在反射图上的响应进行调节,再对获得的结果进行反卷积操作,以恢复无噪声的反射图。类似地,上述分析也适用于SF模型(7)和SF模型(9)。
由于αi在图像增强过程中固定不变,式(6)的结果Ri-1可能含有残留噪声和不良伪影,尤其在第i=1个级联中。同时,式(9)中Iq左边的矩阵本应含有极少的噪声,以利于更新照明图Li。如果该矩阵含有明显的残留噪声,由式(9)估计的照明图Li也往往被噪声污染。因此,为更好地保证优化结果的质量,将反射图R替换为更精确的辅助反射图。
2.2.2 学习收缩场模型
为方便论述,2.2.1节潜在地假设SF模型Ψi和已经给定。本节提出基于梯度的算法,从数据中学习这些模型参数。为此,定义2个损失函数,并计算其对模型参数的导数。
1)SF模型Ψi。通过最小化损失函数ℓ1学习该模型的参数:
式中:Rgt为反射图的真值。
根据式(6),Ri为模型参数Ψi的函数,所以ℓ1(Ri)对Ψi的导数为
式中:Lgt为照明图的真值。
把这些梯度嵌入到有限存储BFGS求解器[31]中学习模型参数Ψi、和。综上,本文模型的学习算法主要包括如下步骤:
步骤1输入合成的低照度图像I、反射图真值Rgt和照明图真值Lgt。
步骤2对每幅低照度图像I,按像素计算RGB通道的最大值,把得到的结果作为照明图L*,并用其初始化变量L0。
步骤3通过最小化式(10)中的损失函数ℓ1学习SF模型参数Ψi。
步骤4通过计算式(6)更新反射图Ri。
步骤5通过最小化式(12)中的损失函数ℓ2学习SF模型参数和。
步骤6通过计算式(7)更新辅助反射图~Ri。
步骤7通过计算式(9)更新照明图Li。
步骤8如果迭代次数i小于最大迭代次数maxIter,转到步骤3。否则,输出学习到的SF模型参数Ψi、和。
3 实验结果与分析
3.1 实验条件
为学习SF模型Ψi、和,本文采用文献[19]的方法合成低照度图像训练集。首先,将正常照度图像作为反射图。然后,把正常照度图从RGB颜色空间转换到HSV颜色空间,并且对V通道进行伽马校正。这里,伽马校正因子在区间[1.6,3.3]上随机地选取。接着,把校正的V通道作为照明图,通过I=R◦L产生低照度图像。最后,在合成的低照度图像上添加高斯噪声,以模拟低光照条件下的噪声污染。高斯噪声的均值置为0,方差σ2在区间[0%,5%]上随机取值。此外,通过Google引擎和文献[15,19,25,27]获得80幅正常照度图像(尺寸介于256×256和2 000×2 300之间),并且随机选取50幅图像产生训练数据。图2给出了部分低照度图像、反射图和照明图。在训练时,把所有低照度图像裁剪成尺寸为128×128的图像块,以加快模型训练的速度。其余的30幅正常照度图像用于合成测试数据。
图2 训练数据示例Fig.2 Examples from training data
在对比实验中,选用当前最新的低照度图像增强方法LIME[7]、DHN[20]和SR[9]作 为 比 较 对象。基于Retinex分解的LIME方法[7]先通过I=R◦L恢复反射图,再使用BM3D[15]抑制恢复结果中的噪声。基于变分模型的SR方法[9]在目标函数正则项中采用梯度约束使增强图像与输入图像保持一致,以抑制噪声放大。DHN方法[20]使用端到端的深度网络增强低照度图像。考虑到比较的公平性,用本文的训练集对DHN网络进行微调。此外,基于深度学习的DHN方法在配置为Titan XP GPU的工作站上进行测试,其他所有实验在配置为2.4 GHz Core i7 CPU和32 GB RAM的计算机上完成。本文使用客观和主观2种评价策略比较不同方法的增强结果,并选用峰值信噪比(PSNR)和结构相似性(SSIM)作为客观评价指标。这2个指标的值越大,增强图像的质量越高。
3.2 合成数据上的实验
为验证本文方法的有效性,先在合成数据上进行实验。图3(a)为按照3.1节步骤合成的低照度图像,高斯噪声强度为2%,相应反射图和照明图的真值如图3(b)和(c)所示。图3(d)~(g)分别为不同方法的图像增强结果。从图3(d)可以观察到,LIME方法[7]增强了低照度图像的对比度,但是产生了过亮区域和块状伪影(如放大的花朵边缘)。这主要是因为LIME方法对照明图的估计偏低,导致通过I=R◦L恢复的反射图偏亮;在后处理阶段中使用的BM3D方法不能有效地抑制空间变化的噪声,以致增强结果中含有块状伪影。图3(e)显示,DHN方法[20]恢复了大量的纹理信息,然而增强结果略微偏暗。相反,图3(f)中的场景不存在过亮区域,且含边缘信息比较锐利。但是,放大的细节仍然包含残留噪声,这是因为SR方法[9]正则项采用梯度约束,容易把图像噪声传导至增强结果中。与此不同,本文方法在增亮低照度图像的同时有效地避免了过度增强和残留噪声,如图3(g)所示。原因主要为:学习到的SF明显地改善了Retinex分解中照明图的质量。
图3 不同方法在合成数据上的比较Fig.3 Comparison of differentmethods on synthetic data
为定量验证本文方法的有效性,在30幅合成图像上进行了更多实验,并计算平均PSNR(mPSNR)和平均SSIM(mSSIM)。从表1看出,本文方法在多种噪声水平上均取得了最高的mPSNR和mSSIM。
表1 不同方法在含有多种噪声的测试集上增强结果的平均峰值信噪比和结构相似性Table 1 Average PSNRs and SSIM s of results enhanced by differen tm ethods on test dataset w ith various noises
3.3 真实数据上的实验
为评价本文方法在真实图像上的增强效果,选用图4(a)中的低照度图像进行测试,不同方法的增强结果如图4(b)~(e)所示。
图4 不同方法在真实数据上的比较Fig.4 Comparison of differentmethods on real-world data
可 以 看 出,对 比 方 法LIME[7]、DHN[20]和SR[9]都有效地增亮了低照度图像。但是,LIME方法过低估计了照明图,并且在后处理阶段使用BM 3D抑制反射图中空间变化的噪声,导致增强结果中存在过度增强的笔记本电脑和含有块状伪影的墙面。DHN方法在端到端深度网络中不使用Retinex模型,以致恢复的场景不够锐利。SR方法在一定程度上避免了这些问题,但是增强的场景仍然包含明显的残留噪声。究其原因,SR方法在正则项中使用清晰图像和低照度图像的梯度约束两者在结构信息上保持一致,以致噪声等高频信息传导至增强结果中。相比之下,本文方法产生了相当或者更高质量的增强效果和边缘信息,原因主要是:学习到的高阶滤波器和压缩函数具有丰富的激活模式,能够进一步精化照明图的估计,从而能够有效地恢复反射图像和抑制噪声污染。
4 讨论和分析
4.1 收缩场模型的有效性
第3节验证了本文方法在增强低照度图像的同时能够有效地抑制噪声污染。为说明SF模型的有效性,图5展示了第i=1级联使用的收缩场Ψi、和。每个SF中的高阶滤波器(上一行)和压缩函数(下一行)根据其激活程度从左到右降序排列。
图5 第i=1级联中学习到的收缩场Ψi、和的滤波器和相应的压缩函数Fig.5 Filters and corresponding shrinkage functions in SF modelsΨi, and at cascade i=1
在图5(a)中,右侧2个滤波器的激活程度相对较小,相应压缩曲线也含有较少的波动。这与文献[25]中的去噪滤波器一致,故而在抑制噪声方面更能发挥作用。相比之下,前6个滤波器对应的压缩曲线含有更多的波动,在图像增强过程中更有利于保持图像的结构信息。与图5(a)相比,图5(b)中滤波器有类似的激活程度,但包含不同的视觉模式。这主要是因为:辅助的SF模型精化了反射图R,生成的辅助反射图含有较少的噪声和不良特征,所以更有助于改进照明图L的估计。此外,从图5(c)可以看出,由于照明图中几乎不含纹理细节,这些滤波器接近梯度算子。综上,学习到的收缩场Ψi、和具有多种激活模式,故能够改进Retinex分解中的照明图,在恢复反射图的同时有效地抑制噪声污染。
4.2 辅助收缩场的有效性
根据3.1节的优化步骤,本文方法先求解反射图Ri。虽然学习到的高阶滤波器和压缩函数能够在恢复反射图的同时抑制噪声污染,但学习到的参数αi固定不变,以致反射图Ri的某些区域可能因噪声放大而退化。这种现象在第i=1级联中尤为明显。为避免噪声放大问题,引入辅助的收缩场Ψi以改善反射图Ri的质量,进而精确地估计Retinex分解中的照明图Li。
图6 辅助反射图~R的有效性Fig.6 Effectiveness of auxiliary reflectance image~R
表2 在本文测试集上评估辅助反射图的有效性Table 2 Effectiveness evaluation of auxiliary reflectance im age on our test dataset
表2 在本文测试集上评估辅助反射图的有效性Table 2 Effectiveness evaluation of auxiliary reflectance im age on our test dataset
方法mPSNR/dB mSSIM本文方法(不含~R)16.38 0.760 4本文方法(包含~R)19.24 0.852 0
4.3 最大迭代次数
在本文实验中,最大迭代次数设置为maxIter=5。为说明迭代次数对实验结果的影响,选用图7(a)中合成的低照度图像展示本文方法在所有级联中的增强结果。从图7(b)~(e)可以看出,随着级联的增加,反射图的质量逐渐改善。第3个级联的反射图有效地避免了过增强和噪声污染,具有高质量的视觉效果。第5个级联的反射图具有类似的增强效果,表明本文方法的解趋于稳定。在大量实验的基础上,本文把最大迭代次数maxIter置为5。
图7 本文方法随迭代次数增加的增强结果Fig.7 Enhancement results of proposed method with increasing iteration times
4.4 高阶滤波器的个数
在每个SF中,高阶滤波器初始化为相互独立且完备的简单形式,即中心点与邻域内某点的像素值分别置为1和-1。因此,高阶滤波器的个数N与其尺寸d×d存在数量关系N=d2-1。本文实验使用3×3的滤波器,故每个SF包含N=8个高阶滤波器。为表明滤波器的个数对最终增强结果的影响,选用图8(a)中的合成低照度图像进行测试,该图像含有1%的高斯噪声。图8(b)和(c)分别为N=8和24个滤波器的增强结果。可以看出,8个滤波器已经产生了清晰的眼部轮廓,24个滤波器进一步增强了眼睛中心的纹理信息。这表明滤波器的个数越大,增强结果的质量越高。然而,由于更大的滤波器减小了未知变量的更新速度,这些效果的提升以牺牲约1.4倍的运行时间为代价。通过权衡增强效果和运行时间,本文方法在低照度图像增强实验中使用N=8个3×3的滤波器。
图8 高阶滤波器个数对实验结果的影响Fig.8 Influence of high-order filter number on experimental results
5 结 论
针对低照度图像增强中的噪声污染问题,本文提出通过学习SF模型改进Retinex分解,以便在增强低照度图像的同时有效地抑制噪声。合成和真实数据上的实验结果验证了本文方法的有效性。该方法具有以下优点:
1)不需要数量巨大的训练样本,比基于深度学习的方法更适用于训练样本较少的情形。
2)学习到的高阶滤波器和压缩函数具有丰富的激活模式,比手工设计的正则子(Regularizer)在抑制噪声污染方面更加有效。
本文方法可以有效地增强低照度图像和抑制噪声污染,但不适用于极低光照图像(Extremely Low-Light Image)的情形。下一步工作将继续改进SF模型,以增强极低照度图像。