【题目】:URetinex-Net: Retinex-based Deep Unfolding Network for Low-light Image Enhancement
【会议】:2022-CVPR
【机构】:深圳大学
【作者】:Wenhui Wu, Jian Weng, Pingping Zhang, Xu Wang, Wenhan Yang, Jianmin Jiang
【paper】:https://openaccess.thecvf.com/CVPR2022
【video】:https://www.youtube.com/watch?v=MJZ5HT1jGrA
【code_Pytorch】:https://github.com/AndersonYong/URetinex-Net
基于Retinex模型的方法在处理低光图像时,通常使用的手工制作的先验和优化驱动的解决方案导致缺乏适应性和效率。
Model-based Methods:依赖于手工制作的先验,优化过程很费时。
Learning-based Methods:引导推理速度快,但缺乏可解释性。
提出了一种基于Retinex的 deep unfolding network (URetinex-Net),它将一个优化问题展开为一个可学习的网络,以将低光图像分解为反射层和光照层。通过将分解问题公式化为隐式先验正则化模型,精心设计了三个基于学习的模块,分别负责数据相关的初始化、高效的展开优化和用户指定的光照增强。特别地,所提出的展开优化模块通过引入两个网络,以数据驱动的方式自适应拟合隐式先验,实现了最终分解结果的噪声抑制和细节保留。
针对 LLIE 问题的 URetinex-Net 包括三个可学习的模块:
图2 (a) URetinex-Net 的总体框架,(b) URetinex-Net 中每个阶段的详细信息,(c) 每个阶段应用的去噪网络 GR 的具体网络结构。
刚性初始化:通过寻找三个颜色通道的最大值来初始化初始照明L0,并且可以相应地通过R0=I/L0来导出初始反射率R0。
目的:避免了显式的正则化设计,并以深度学习的方式自适应地恢复光照和反射率。
有监督:以正常光图像的反射率作为参考。对正常光图像的光照施加结构感知平滑约束[34],然后分解正常光图像的损失函数如下:
损失函数:展开优化模块以端到端的方式训练,其中GR和GL的参数和网络体系结构在不同阶段共享。在解折叠网络的优化过程中,以我们的初始化模块生成的正态光反射率Rα作为参考。在损耗函数方面,我们采用反射率和照度的损耗函数求和,包括各阶段Pk和Rk之间的均方误差 (MSE) 损耗、MSE损耗、结构相似损耗、和最终恢复反射率RT之间的感知损耗、各阶段Qk和Lk之间的MSE损耗,以及各阶段Lk的总变化损失。展开优化模块的损耗函数如下:
⌀(·)表示通过 VGG19 网络在 ImageNet 上预训练的高级特征提取器,Rref表示正常光图像的反射率。
结构:没有引入手工制作的先验来手动设计特定的损失函数,而是开发了基于学习的方法来探索来自现实世界数据的隐含先验。 换句话说,引入了两个表示为 GL 和 GR 的网络来分别对 L 和 R 进行更新。
GL简单的全卷积网络,它有五个CONV层,然后通过RELU激活来学习L上的隐式先验,从而可以从训练数据中学习先验,同时避免了设计复杂的正则化项。
优化展开模块每个阶段分解的结果:
取低光照度 L 和用户特定的增强比 w 作为输入
结构:初始化模块由三个 Conv+LeakyReLU 层组成,后面是卷积层和 ReLU 层。整个卷积层的内核大小设置为5*5.
为了说明展开优化模块的有效性,进一步简单地将 GR 和 GL 的网络堆叠 T 次并丢弃展开优化,保持与 URetinex-Net 相同的网络容量。最后,研究了 URetinex-Net 在选择不同的阶段 T 下的性能。
表2:其中IM,UOM和IG分别是建议的初始化模块、开优化模块和照明模块的缩写。
图6:通过图中的视觉对比,在T=1的增强结果上仍然存在较差的细节保持和颜色失真,而通过使用展开优化可以获得更干净的结果。基于图像质量和推理时间之间的权衡,选择T=3作为默认设置。