结合双分支结构和无配对GAN的低光图像增强
2023-10-10李治杰冯国富
李治杰,陈 明,冯国富
上海海洋大学 信息学院,上海 201306
受限于传感器灵敏度、实时处理等,在昏暗环境下拍摄得到的低光图像存在着低对比度、颜色失真和大量噪声等问题。低光图像增强任务需要对图像进行亮度增强,正确的颜色恢复、噪声抑制,提高图像信噪比,提升低光图像质量。基于深度学习的方法在图像恢复和增强方面取得了显著的进步,然而大部分基于卷积神经网络(CNN)的低光图像增强方法需要相互配对的数据进行训练,在缺乏成对训练数据的情况下,低光图像增强问题仍然十分具有挑战性。
目前基于CNN的低光图像增强技术大多数需要配对的数据集去进行监督学习。Wei 等[1]提出的RetinexNet 将Retinex[2]理论与CNN 相结合增强低光图像,通过一个分解网络(Decom-Net)将图像分解为反射和光照,然后增强网络(Enhance-Net)对光照从多尺度角度调节和进行噪声抑制,最后对调整后的反射和光照进行重建输出增强结果。Lyu 等[3]提出了多分支网络MBLLEN通过特征提取模块(feature extraction module,FEM)、增强模块(enhancement module,EM)、融合模块(fusion module,FM)三个模块对图像增强、抑制噪声和伪影,通过FEM 提取图像丰富的不同层次特征,EM 分别增强多层次特征,FM 多分支融合获得最终输出。Zhang等[4]提出的StableLLVE是一种基于光流法实现低光视频增强的新方法,利用光流来表示动态场景的视频帧之间发生的运动,通过用相应的光流扭曲图像来模拟相邻的帧,增强模型时间一致性。基于CNN 的方法需要获取配对的低光图像和正常光图像,十分耗时耗力,场景单一有限,通常使用一些算法合成数据,其增强性能在很大程度上依赖于数据集。由于合成数据不能完全模拟真实场景下的退化,这些方法的结果并不理想。
为了解决监督学习中对配对数据的依赖,Guo 等[5]提出了Zero-DCE 利用神经网络进行图像特定曲线估计,估计像素和高阶曲线的动态范围调整给定的图像,在训练过程中不需要任何配对或未配对的数据,然而其增强后的部分图像边缘会产生轻微模糊。Liu 等[6]提出了RUAS,基于Retinex模型设计了照明估计模块(illumination estimation module,ⅠEM)来估计照明图,噪声去除模块(noise removal module,NRM)来抑制噪声,利用特征蒸馏技术搜索ⅠEM 和NRM 的理想结构,但是会产生增强过度或不足的问题。Jiang等[7]提出的EnlightenGAN 基于生成对抗网络(GAN)的技术,通过加入灰度图注意力模块进行低光图像增强,在无配对数据集的情况下进行无监督学习训练,但其训练需要200 次迭代,训练时间偏长,部分图像增强后存在颜色失真情况。
现有大部分基于深度学习的低光图像增强方法需要配对的数据集;细节保留较差,增强后图像边缘存在模糊;噪声抑制不足,可能产生噪声放大。本文参考EnlightenGAN 采用生成对抗网络技术摆脱对配对数据集的依赖,同时借鉴文献[8]使用双分支结构在保留原图像细节的同时,提升图像去雾效果的方法,其通过当前数据拟合子网(current data fitting sub-net)以全分辨率保持图像精细的特征,但模型过于庞大,容易产生过拟合问题。因此将生成对抗网络技术与双分支结构相结合,提出了网络模型的改进,设计了FEN和DPN两个分支网络,并且采用轻量化结构,减少训练时间,在低光图像和正常光图像无配对的情况下,进行端到端训练,同时加入了total variation loss来抑制图像噪声,进一步提升低光图像增强质量。
1 模型
1.1 网络结构
本文模型由一个生成器,两个判别器组成,用于实现低光图像和正常光图像的非配对数据端到端的训练。生成器采用双分支结构,在提高亮度的同时,保留图像细节,抑制图像噪声。第一个分支网络为包含跳跃连接的类似U-Net[9]编码器-解码器体系结构的特征提取网络(feature extraction network,FEN),学习低光图像到正常光图像上下文的特征映射,另一个分支网络为全分辨率的轻量级的细节保留网络(detail preservation network,DPN),以低光图像的全分辨率来保留原图像的纹理和细节,最后将两个分支网络输出的特征映射拼接后输入融合层(fusion layer),输出的结果为提高亮度后的图像。两个判别器分别是全局判别器和局部判别器,整体结构如图1所示。
图1 网络整体结构Fig.1 Overall network structure
1.2 生成器模型
1.2.1 特征提取网络(FEN)
特征提取网络(FEN)以U-Net 为基础结构,U-Net是编码器-解码器(encoder-decoder)模式,可以从输入的低光图像学习提取全局特征表示,横向连接通过将编码器部分的特征图(feature map)与解码器部分的特征图拼接,有助于保留底层结构提取的细节。FEN结构如图2所示。
图2 FEN网络结构Fig.2 Network structure of FEN
FEN 网络采用了轻量化设计,最大拓展到256 通道,极大降低了计算量。降采样采用最大池化,上采样使用双线性插值算法,避免图像出现棋盘格效应,然而网络体积的减小使其不能良好地对非配对数据进行学习泛化,会在图像局部出现大量的伪影,所以需要加入下文的另一分支网络DPN,进而提取保留原图更多的纹理细节。
由于低光图像局部光照不均匀,虽然图像大部分区域非常暗,但是可能局部区域比较亮,所以这部分区域无须再增强,如反射较强的地方或者有光源的地方会发生过曝的现象。FEN 采用横向连接可以保留原图语义上下文信息,同时在连接过程中使用了EnlightenGAN的特征注意模块,其应用了1-gray单通道图作为特征注意,由RGB 图像先转换为灰度图(gray),计算公式如式(1)所示,该公式为OpenCV库函数。
特征注意模块通过上述公式得到gray,最后1-gray与编码器部分得到的特征图相乘,因此得到的特征注意可以作为暗区域的放大因子,亮区域的抑制因子,将原图亮区域变暗,而暗区域变亮。
1.2.2 细节保留网络(DPN)
细节保留网络(DPN)主要由2个卷积层,15个残差块,1 个Batch 归一化层,通道注意力模块(SE module)和空间注意力模块(SA module)构建了一个轻量级网络,DPN结构如图3所示。
图3 DPN结构Fig.3 Network structure of DPN
DPN 网络通道数最大为32 通道,该分支网络通过避免下采样和上采样操作,如去除池化层等,池化操作虽然通过减小图像的大小来降低计算量,提高计算速度,但是在前向传播过程中通常会丢弃大量有用的信息。为了最大程度保持原图的细节特征,所有卷积层的卷积核大小设置为3×3,步长为1,这样可以以全分辨率的形式保留原始图像的全局细节。
神经网络对图像的低频特征可以较容易学习得到,而图像的高频特征需要在神经网络的深层学习,因此通过残差模块保留原图的颜色和纹理。SE module 来自于SENet[10],从空间的角度来看,通道注意力是全局的,利用全局平均池化将通道全局空间信息转化为通道描述符,通过通道注意力机制来关注不同通道间对亮度的贡献的大小,学习低光图像与正常亮度图像通道映射之间的相关性。SA module 来源于CBAM[11],由于光在传播过程中受到衰减,物体反射吸收等情况,会造成不同图像像素上光照分布不均匀,因此使用空间注意力充分利用特征图中光照分布的不同位置信息,去拟合低光图像到正常亮度图像光照的分布表示。SA module 采用平均池化和最大池化两种方式来分别利用不同的信息,最大池化编码了低光图像光照分布最显著的部分,而平均池化编码了低光图像全局的统计信息。因此,同时使用这两个特征可以最大化拟合正常光图像的光照分布。
1.2.3 融合层(fusion layer)
FEN 和DPN 分别输出一个通道数为32 的特征图,然后将两个分支网络提取的特征拼接后生成64通道的特征图送入融合层得到最后输出。融合层使用了两个卷积层和一个tanh激活函数,卷积层的卷积核大小都设置为3×3,步长为1,第一个卷积层将64通道压缩为3通道,第二个卷积层只需要微调第一个卷积层的特征图,最后输出的结果即增亮后的图像,由于训练时将图像归一化到[-1,1],tanh 激活函数可以使输出保持在相同的范围。
1.3 判别器模型
网络通过两个判别器来区分生成器增强后的生成图像与真实的正常光图像。两个判别器都使用Patch-GAN[12]结构,全局判别器对生成图像和正常光图像进行判别,以整幅图像作为输入,输出图像的真实度。然后在生成图像和正常光图像上分别随机裁剪出5张32×32的图像块送入局部判别器,输出每个图像小块的真实度,可以改善图像局部细节。
1.4 损失函数
1.4.1 对抗损失(adversarial loss)
像素化的损失函数,如L1 loss、L2 loss,通常不能提供足够的信息来训练网络恢复图像真实的细节。因此采用对抗性损失来使增强后的图像的光照分布接近于正常光图像的光照分布。
全局判别器损失选用了基于最小二乘损失(least squares GAN,LS-GAN[13])形式的相对判别器(relativistic GAN[14]),局部判别器损失采用原始的LS-GAN 形式。LS-GAN提供更平滑和非饱和梯度,帮助网络训练更稳定,relativistic GAN估计正常光图像比生成图像更真实的概率。
全局判别器的对抗损失,如式(2)所示:
式中,Preal代表正常光图像分布,Pfake代表生成图像分布,y和xf分别采样于分布Preal和Pfake。
局部判别器的对抗损失,如式(3)所示:
1.3.3 处理分析数据快捷。大数据能时时对变化的环境进行策略改变,对于海量数据、处理数据、分析数据及挖掘数据都能快速做出处理和相应,具有低密度性。
式中,Preal-patches代表从正常光图像裁剪出的图像块分布,Pfake-patches代表从生成图像裁剪出的图像块分布,y和xf分别采样于分布Preal-patches和Pfake-patches。
生成器总对抗损失,如式(6)所示:
1.4.2 感知损失(perceptual loss)
感知损失[15]证明了VGG[16]网络底层更加关注图像的颜色和纹理,而在网络高层特征空间可以充分保留图像内容和整体空间结构。通过对VGG网络提取的特征图进行instance归一化,减轻图像亮度的影响,使网络关注图像内容,提取图像的内容细节。本文采用VGG-16网络在ⅠmageNet数据集上预训练权重。损失表示为生成图像与输入的低光图像之间的欧氏距离,如式(7)所示:
式中,xr代表输入的低光图像,G(⋅)代表生成器,ϕj(⋅)代表VGG16网络的第j层卷积层,CjHjWj代表第j层卷积层输出的特征图维度为Cj×Hj×Wj,C、H、W代表特征图的通道数、高度、宽度,代表L2 loss。
1.4.3 全变差损失(total variation loss)
噪声可能在图像亮度增强的同时而被保留或者放大。为了抑制噪声,本文采用全变差损失[17],通过式(8)来平滑图像:
式中,C、H、W代表低光图像的通道数、高度、宽度,∇x和∇y分别表示对图像水平方向和垂直方向梯度运算。
式中,λa、λp、λt分别为损失Ladv、Lper、Ltv的权重,分别设为1、1、0.1。
1.4.5 判别器总损失
判别器总损失如式(10)所示:
2 实验
2.1 训练细节
数据集选用了EnlightenGAN 作者提供的训练集,共1 930 张,包含低光图像914 张和正常光图像1 016张。训练时将图片尺寸随机裁剪为320×320,通过90°、180°、270°的随机旋转、水平翻转和垂直翻转来扩充训练集,Batch 设为8,训练次数为100 代。生成器和两个判别器都采用Adam 优化器,β1和β2分别设为0.5 和0.999,学习率设为0.000 1。网络经过两个阶段的训练:第一阶段,先固定两个判别器,然后训练生成器;第二阶段,固定生成器之后分别对全局判别器和局部判别器进行训练更新。
实验环境:硬件环境Ⅰntel Core i7-9700k CPU,NVⅠDⅠA RTX 2080Ti GPU,64 GB 内存;软件环境:pytroch 1.7,CUDA 10.1,cuDNN 7.6。
2.2 实验结果
本文方法与几种目前较流行的方法进行实验对比:三种需要配对数据的方法(RetinexNet、MBLLEN、StableLLVE),三种无须配对数据训练的方法(Zero-DCE、RUAS、EnligthenGAN)。本文测试集数据采用MEF[18]、LⅠME[19]、NPE[20]、VV 以及ExDark[21]、LOL[1]6 个公开图像集共94张图像进行了定性和定量实验。MEF数据集包含17张低光图像,图像内容包括室内外景观、自然景观和人造建筑等。LⅠME 数据集包含10 张低光图像。NPE数据集含8张低光图像。VV数据集24张图像具有正确曝光的部分和严重曝光不足或过度曝光的部分。ExDark数据集包含12个类别在真实低光场景下采集的图像,可用于目标检测和图像增强研究,随机选取了20张图片。LOL 数据集包含配对的低光图像和正常光图像,选用了其中15 张低光图像。根据客观评价指标以及主观评价,实验结果表明该网络在训练到40~50代之间对图像增强效果较好,不同算法的增强效果对比如图4所示,对比结果图分别从各个数据集中随机选取了一张图片。RetinexNet 增强后颜色失真,StableLLVE 色彩偏淡,RUAS 存在增强不足和过度问题,其他算法增强效果较好。
图4 不同算法的增强效果对比Fig.4 Comparison of enhancement effects of different algorithms
2.2.1 定性比较
由于定性比较是人的主观评价,主要针对应用场景,增强算法需要适应各种光照条件,为了描述本文算法的泛化性能,因此根据人眼感官对数据集中的低光图像大致分为三种较为典型的场景,在图5、图6和图7分别给出了局部过曝、整体低亮度和极度黑暗的三种视觉场景下的各个方法图像增强效果对比,表1、表2 和表3分别给出了增强后图像效果的文字描述。本文方法对低光图像增强效果良好,在减弱了图像噪声的同时,增强后的图像能够保持边缘细节清晰,过曝区域不会过度增强,不会引起图像失真。
表1 局部过曝图像的定性比较Table 1 Qualitative comparison of local over-exposure images
表2 整体低亮度图像的定性比较Table 2 Qualitative comparison of overall low-light images
表3 极度黑暗图像的定性比较Table 3 Qualitative comparison of extremely dark image
图5 局部过曝图像增强结果Fig.5 Enhancement results of local over-exposure images
图6 整体低亮度图像增强结果Fig.6 Enhancement results of overall low-light images
图7 极度黑暗图像增强结果Fig.7 Enhancement results of extremely dark images
(1)局部过曝场景
在局部过曝图像中,本文方法和StableLLVE、EnligthenGAN增强效果表现良好;RetinexNet生成的图像有局部伪影;RUAS 存在过度增强的问题,失真较为严重。每组图像右下角为使用高斯滤波后,通过sobel算子提取的酒杯边缘轮廓特征图。本文方法与RetinexNet、StableLLVE、EnligthenGAN 方法增强后的杯子的边缘较为清晰;EnligthenGAN 对杯子背景增强过度;MBLLEN 虽然减弱了噪声影响,但同时丢失了杯子的边缘细节;Zero-DCE 处理后的杯子边缘存在轻微模糊问题。本文方法和MBLLEN、StableLLVE 增强后的墙壁区域较为平滑;RetinexNet、Zero-DCE、EnligthenGAN对墙壁区域的噪声有明显放大。DPN 网络较好地保留了原图的细节,保持了图像边缘的清晰。
(2)整体低亮度场景
在整体低亮度图像中,本文方法和StableLLVE、Zero-DCE、EnligthenGAN 对图像增强效果表现良好;MBLLEN 增强效果较好,但对处于暗区域树的细节增强相对较弱;RetinexNet 产生过饱和现象,图像严重失真;RUAS 对天空区域过度增强,暗区域增强效果不明显。EnligthenGAN 对沙滩区域的噪声有明显增大。MBLLEN、StableLLVE 淡化了天空区域颜色,对云层的细节保留不足。双分支结构针对局部过曝场景增强能做出较好的平衡。
(3)极度黑暗场景
在极度黑暗图像中,本文方法和Zero-DCE对图像增强效果表现良好;MBLLEN、EnligthenGAN 增强效果较好,但MBLLEN增强后的地面白线模糊,EnligthenGAN对地面颜色恢复成黄色而失真;RetinexNet产生过饱和现象,远处座椅较为模糊。StableLLVE增强后图像整体颜色暗淡,RUAS 对远处座椅无明显增强效果,整体较暗。DPN网络较多地保留了原图的颜色信息,因此可以较为准确地恢复颜色。
2.2.2 定量比较
本文采用三个无参考的客观评价指标:natural image quality evaluator(NⅠQE)[22]、blind/referenceless image spatial quality evaluator(BRⅠSQUE)[23]和perception based image quality evaluator(PⅠQE)[24]。BRⅠSQUE 通过计算图像归一化亮度系数接近标准高斯分布的程度来衡量图像清晰度。NⅠQE通过计算失真图像和自然图像多元高斯模型之间的距离来判断图像质量。PⅠQE通过分块失真估计计算图像的无参考质量分数,由局部块的质量分数得到整体质量分数。定量评价结果如表4、表5和表6所示,可以看出,在BRⅠSQUE指标上,本文方法在前5个数据集上均取得了最优秀的结果,平均值排名第一。根据NⅠQE 指标,本文方法在NPE、ExDark 数据集上取得第一名,在VV 数据集上取得第二名,平均值排名第一。在PⅠQE指标上,本文算法在MEF、LⅠME、ExDark数据集上取得第一名,在NPE、VV、LOL数据集上排名第二,平均值排名第一。
表4 基于BRⅠSQUE基准的定量比较Table 4 Quantitative comparison based on BRⅠSQUE benchmark
表5 基于NⅠQE基准的定量比较Table 5 Quantitative comparison based on NⅠQE benchmark
表6 基于PⅠQE基准的定量比较Table 6 Quantitative comparison based on PⅠQE benchmark
本文方法相比于EnlightenGAN的生成器模型文件的大小约为33 MB,训练需要200 次迭代,而本文模型文件约为11 MB,训练迭代次数只需50 次左右,就能得到较为优异的性能,大大减少了训练时间。相比于其他对比算法,综合增强效果较为优秀。
2.3 消融实验
为了进一步了解两个分支网络对低光图像增强的效果和total variation loss(TV Loss)的权重对噪声的抑制能力,本文进行了消融实验,分别保留其中一个分支网络和TV Loss进行重新训练,消融实验如下:(1)只使用特征提取网络(FEN)+0.1×TV Loss;(2)只使用细节保留网络(DPN)+0.1×TV Loss;(3)同时使用FEN+DPN,移除TV Loss;(4)同时使用FEN+DPN+1×TV Loss;(5)同时使用FEN+DPN+0.1×TV Loss。消融实验效果对比如图8 所示,(c)组图树木比较清晰,颜色均匀,(f)组图流苏的颜色恢复更为正确自然。定量结果如表7、表8和表9所示。
表7 消融结果基于BRⅠSQUE基准的定量比较Table 7 Ablation results based on quantitative comparisons of BRⅠSQUE benchmarks
表8 消融结果基于NⅠQE基准的定量比较Table 8 Ablation results based on quantitative comparisons of NⅠQE benchmarks
表9 消融结果基于PⅠQE基准的定量比较Table 9 Ablation results based on quantitative comparisons of PⅠQE benchmarks
图8 消融结果效果可视化对比Fig.8 Visual comparison of ablation results
由实验(1)、(2)、(5)可知,同时使用FEN+DPN 网络在BRⅠSQUE、NⅠQE 和PⅠQE 三个指标上都获得了平均值排名第一,实验结果证明了双分支结构提高了图像的生成质量。在BRⅠSQUE 和PⅠQE 指标上,同时使用FEN+DPN 网络明显优于只使用FEN 网络和只使用DPN 网络。根据NⅠQE 指标,只使用FEN 网络在MEF数据集上表现良好;只使用DPN网络在NPE、LOL数据集上表现良好,ExDark 数据集上次之。在PⅠQE 指标上,只使用DPN网络在LOL数据集上表现良好。
由实验(3)、(4)、(5)可知,BRⅠSQUE、NⅠQE和PⅠQE三个指标证明了使用TV Loss可以减弱图像噪声,改善图像质量。而且TV Loss 的权重为0.1 时比1 效果好,因为权重为1 时,图像在抑制了图像噪声的同时,边缘细节被破坏,降低了图像生成质量。
3 结束语
本文通过在生成器上引入双分支结构,在保留了图像细节的同时,有效地提高了图像增强后的质量,增强后的图像能够保持边缘细节清晰,过曝区域不会过度增强,不会引起图像失真。针对细节保留问题,DPN通过不降低图像分辨率,对FEN 网络提取的图像特征补充了细节,减少了图像增强后的边缘模糊。另外加入了total variation loss有效抑制了图像的噪声,但在减弱噪声的同时,边缘细节也被破坏,通过消融实验确定了损失的权重,来平衡两者,为0.1时达到较好的效果。网络采用轻量化设计,大大减少了训练时间。在六个真实数据集上的实验结果证明了本文方法相对于其他低光图像增强方法的优越性,在BRⅠSQUE 基准测试平均值为17.55,NⅠQE 基准测试平均值为3.74,PⅠQE 基准测试平均值为8.45,综合性能优于其他对比算法,且泛化性能较好。对低光图像存在的低亮度、低对比度、噪声等问题,能够从正常光图像进行端到端的训练,学习其光照分布,在保留了原图像细节的同时,增强了图像的亮度和对比度。未来将进一步提高对图像噪声的去除效果。