发布时间:2025-02-05 17:01
题目:RetinexDIP: A Unified Deep Framework for Low-light Image Enhancement
DOI: 10.1109/TCSVT.2021.3073371
时间:2021
期刊:IEEE Transactions on Circuits and Systems for Video Technology(TCSVT)
机构:南昌航空大学
论文链接:RetinexDIP: A Unified Deep Framework for Low-Light Image Enhancement
代码链接:https://github.com/zhaozunjin/RetinexDIP
关键词: 低光照图像增强,retinex分解,深度优先,零样本。
提出问题:
分解模型中复杂的约束会使反射率和照明度更加耦合,并相互影响。此外,光照和噪声之间也存在耦合关系。因此,忽略耦合关系可能会导致较差的分解。
解决方案:
受Deep Image Prior 启发,使用了随机采样的白噪声和一些loss。
提出了RetinexDIP算法,包括两个步骤:Retinex分解和增强。首先通过深度神经网络RetinexDIP进行Retinex分解,同时生成反射和照明,然后使用获得的照明图进行增强。为了同时估计这两个分量并削弱彼此之间的耦合关系,提出了一种新的“生成”Retinex分解策略。
创新点:
1、零样本,不需要训练。
2、提出了一种新的Retinex分解“生成”策略,将分解问题转化为生成问题。
Retinex原理:S = R * L S-捕获图像 R-反射图像 L-光照图像
本文: S = (R+N)*I S-捕获图像 R-反射图像 I-光照图像 N-噪声
RetinexDIP的整体Retinex分解框架:
两个步骤:(1)RetinexDIP用于Retinex分解。(2)使用获得的照明对微光图像增强。
I—光照图,R—反射图。S—由两个潜在分量重新组合的图像,S0—输入的低光照图像。
Z1、Z2—随机采样的高斯白噪声作为网络输入。Z1,2 ∼ N(0, δ^2)
Lill-sm 照明平滑度损失,Lill-con 照明一致性损失、Lref 反射损失、Lrecon 重建损失。
两个编解码网络都是由卷积块构建的编码器-解码器:DIP1—生成潜在照明I,DIP2—生成潜在反射ˆR。光照应该是平滑的,其梯度应该是稀疏的。反射图像期望有更丰富的细节。因此,DIP2比DIP1具有更深层的结构。
在RetinexDIP中,照明图是从随机噪声生成的,而不是细化初始照明。初始照明用于帮助生成潜在照明。
请注意,两个网络的层之间没有跳过连接。为了保证分解是正确的,两个分量的重新组合应与观察到的图像相同。
1、用于Retinex分解的RetinexDIP
1.1 本文的Retinex模型:
其中S是观察图像,R和I分别表示观察图像的反射图和光照图。N表示噪声。
光照图预期是分段平滑的,因此噪声被强制存在于另一个分解分量中,即(R+N)或^R。噪声的产生与抑制是同时执行的。(3)式简化了生成问题,因为拟合噪声变得不再必要。如下图图1。
(a)常用的“one-two”策略;(b)另一个变体;(c)本文的“生成”Retinex分解策略。
虚线框—Retinex分解操作,绿色框—增强的结果。z1和z2—噪声。ˆI—调整后的照明图。
1.2 损失函数的设计
L = 重建损失(Lrecon) + 光照一致损失(Lill-con) + 反射损失(Lref) + 光照平滑损失(Lill-sm)
本文通过最小化目标函数来执行Retinex分解:
∇ 表示一阶导数运算符, ∇h(水平),∇v(垂直)。λ1、λ2和λ3是平衡参数。W是权重矩阵。
GI是由DIP1生成的潜在照明,GR是由DIP2生成的潜在反射。
I0初始光照图:
权重:仅适用于输入图像的中间照明图。
两种权重策略,用于光照图和反射图有四种组合方式,如图10。本文选式10。
式11是对LIME[11]的改进,其中是一个小小数(分母上的第二项),用于避免分母为零。
2、使用获得的照明对微光图像增强
先对RetinexDIP分解后的光照I进行伽马变换得到^I:
然后计算增强图像^S:
算法步骤:
首先进行Retinex分解以获得输入图像的潜在照度和反射;然后调整照明图;调整后的照明随后用于增强输入图像。
参数设置:δ、γ、λ1、λ2、λ3和最大迭代次数K分别设置为0.01、0.5、1、0.0001、0.5和300。
定性评估:
图4 伪影和噪声对比
BIMEF、LIME、MF和NPE产生可观察到的伪影和块效应,如相应增强图像中缩放的地球区域所示。EnlightenGAN和MBLLEN的结果往往会过度增强,从而导致细节损失。RetinexNet往往会在黑暗区域产生噪音。这些伪影也可以在SRIE中观察到。颜色的对比度可能会有所妥协。虽然LIESD显示了有希望的结果,但增强图像的明亮区域也趋于饱和。
图5 自然度对比
提出的RetinexDIP不仅可以保持自然度,还可以改善对比度。LIME的对比度很高,但由于过度增强,门上的图案丢失了,如图5(f)所示。
图6 夜间图像对比
对于这幅夜间图像,由于路灯的光线,图像中的照明变化很大。与其他方法相比,本文的结果更加详细。
定量评估:
较高的NIQMC和CPCQI分数意味着更好的图像质量,较低的NIQE分数意味着更好的自然度。
No.1-红色、No.2-绿色、No.3-蓝色。
表1-NIQE评价图像的自然性。
BIMEF和NPE也位列前三,这可以用它们的原理来解释。NPE算法的初衷是通过双对数变换在细节和自然之间取得平衡。然而,这种权衡可能会导致伪影。BIMEF的基本思想是融合一系列多曝光图像进行增强,这与NIQE的衍生方法类似。因此,BIMEF在NIQE方面实现良好性能是合理的。与这些方法相比,我们的RetinexDIP方法简单而有效。
表2-NIQMC评价图像的对比度。
从表2中可以看出,LIME的NIQMC得分最大。NIQMC特别喜欢对比度更高的图像。然而,LIME导致过度强化。虽然我们的NIQMC评分不是最高的,但它仍然排在前三位,这表明所提出的方法可以产生相对较高的对比度图像。
表3-CPCQI一种基于色彩的对比度质量评估指标,考虑了五个因素,即图像对比度、清晰度、亮度、色彩和自然度。本文方法No.1。
KinD和MBLLEN的CPCQI分数较低,因为这两种方法在进行增强时会影响颜色对比度,
表4-不同分辨率图像上的计算时间对比。
其中符号“-”表示对应图像的分辨率太大,该方法无法处理,因为它们的计算负担很重。传统的基于retinex的方法是在CPU上测试的。基于学习的方法在GPU上进行了测试。
本文方法,分辨率增大,计算时间不会增长很多,但在低分辨率的比较中没有优势。
图7 在目标函数有反射损失的情况下获得的中间输出。
其他方法:由于光照平滑损失与反射图的梯度加权,因此反射会影响光照图,并由于耦合关系进一步影响增强结果。
本文方法:随着迭代次数的增加,照明会变得更加平滑,即使反射图的细节比较粗糙。整个过程反射图变化很大,但在早期迭代中的中间增强图像在视觉上与后续迭代相当。图9中的红色曲线是图7中迭代过程的定量评估,也证实了观察结果。
结论:两个组件之间的耦合关系减弱。
图8从目标函数中去除反射损失的情况。
结论:从目标函数中去除反射损失可能会在非常暗的区域导致噪声放大,如图8中Iter-2600、Iter-3000和Iter-4000增强图像的右下角所示。
为什么反射损失有助于消除极暗区域的瑕疵?
在增强步骤中,通过ˆS=S/ˆI获得结果。伪影是由分母的极小值引起的奇异强度值。为了减少输入图像极暗区域中的伪影,我们必须处理ˆI的极小值。回顾Retinex模型:S=R* I。在最小化目标函数期间,对反射率梯度施加的TV约束会惩罚反射图的强度值,从而减少极暗区域中的强度值。由于输入图像S的强度值是固定的,自然地,ˆI的极暗区域中的值增加。由于目标函数中的光照损失,光照图极暗区域中的强度值不会很大,这将最终达到平衡。
图9 是图7和图8中迭代过程的定量分析。
消融研究:
表5-七个公共数据集上相应的平均定量指标。由于等式4中反射损失项的参数为λ2,因此我们将λ2设置为不同的值。
当去除反射损失时(λ2设置为零值,如第3组和第4组),指标略有下降。然而,当使用反射损失(λ2设置为非零值)时,#1组给出了最佳的定量指标,尽管相比之下只有略好一些。
结论:反射损失是一个可选术语,但如果将其包括在内,则可以获得稍好的性能。
图10-两种不同的权重策略对比。本文选择策略1。
第四象限中以初始光照作为光照平滑度损失的权重图的组合对LIME[8]是可行的,但对我们的算法不可行。LIME的基本思想是细化初始照明图。因此,从初始照明I0导出的W在LIME算法开始时只计算一次,并且W在Retinex分解期间保持不变。然而,在我们的RetinexDIP中,照明图是从随机噪声生成的,而不是细化初始照明。初始照明用于帮助生成潜在照明。
代码复现:
input(左) — result(右)
output
illumination
reflection