Low-Light Image Enhancement with Normalizing Flow
2.2 Normalizing flow
归一化流是通过一系列可逆和可微映射(Kobyzev、Prince 和 Brubaker 2020)将简单概率分布(例如标准正态)转换为更复杂的分布。同时,样本的概率密度函数(PDF)值可以通过将其转换回简单分布来精确获得。为了使网络可逆和计算易于处理,需要仔细设计网络的层,以便可以轻松获得雅克比矩阵的求逆和行列式,这限制了生成模型的容量。为此,已经提出了许多强大的变换来增强模型的表达能力。例如,仿射耦合层(Dinh、Krueger 和 Bengio 2014)、拆分和连接(Dinh、Krueger 和 Bengio 2014;Dinh、Sohl-Dickstein 和 Bengio 2016;Kingma 和 Dhariwal 2018)、排列(Dinh、Krueger、和 Bengio 2014;Dinh、Sohl-Dickstein 和 Bengio 2016;Kingma 和 Dhariwal 2018)和 1 × 1 卷积(Kingma 和 Dhariwal 2018)。最近,研究了条件归一化流以提高模型的表达能力。 (Trippe 和 Turner 2018)建议对每个条件使用不同的归一化流程。最近,条件仿射耦合层(Ardizzone et al. 2019; Winkler et al. 2019; Lugmayr et al. 2020)用于与条件特征建立更强的连接,提高内存和计算资源的效率。受益于规范化流程的发展,应用范围得到了很大的扩展。例如,(Liu et al. 2019) 生成具有特定属性的人脸,(Pumarola et al. 2020; Yang et al. 2019) 使用条件流生成点云。在超分辨率任务中,(Lugmayr et al. 2020; Winkler et al. 2019; Wolf et al. 2021)基于条件归一化流的一个低分辨率输入生成高分辨率图像的分布。此外,条件归一化流程还用于图像去噪(Abdelhamed、Brubaker 和 Brown 2019;Liu 等人 2021b)以生成额外数据或恢复干净的图像。此外,还探讨了归一化流的归纳偏差(Jaini et al. 2020; Kirichenko, Izmailov, and Wilson 2020)。 (Kirichenko, Izmailov, and Wilson 2020) 揭示了归一化流更喜欢编码简单的图形结构,这可能有助于抑制低光图像中的噪声。
图2:我们提出的LLFlow的结构。我们的模型由一个条件编码器和一个可逆网络组成,前者用于提取光照不变量颜色图,后者用于学习以低光照为条件的正常曝光图像的分布。对于训练,我们通过使用公式(3)中的变量变化定理使高光图像xh的确切可能性最大化,并使用随机选择器从参考图像的颜色图C(xh)或通过条件编码器从低光图像中提取的颜色图g(xl)获得服从高斯分布的潜变量z的平均值。对于推理,我们可以从N(g(xl), 1)中随机选择z,从学到的条件分布ff low(x|xl)中生成不同的正常曝光图像。(蓝色区域的颜色图被挤压成与潜伏特征z相同的大小)。
3 Methodology
在本节中,我们首先介绍以前基于像素重建损失的弱光增强方法的局限性。然后,介绍了图 2 中我们框架的整体范式。最后,分别说明了我们提出的框架的两个组成部分。
3.1 Preliminary
低光图像增强的目标是使用低光图像 xl 生成具有正常曝光 xh 的高质量图像。通常收集配对样本 (xl , xref ) 以通过最小化 l1 重建损失来训练模型 Θ,如下所示:
其中 Θ(xl) 是模型生成的法线光图像,f 是以参考图像 xref 为条件的概率密度函数,定义如下:
其中 b 是与学习率相关的常数。然而,这种训练范式有一个局限性,即图像的预定义分布(例如,等式 2 中的分布)不足以区分生成的真实正常曝光图像和具有噪声或伪影的图像,例如图 1 中的示例。
3.2 Framework
为此,我们建议使用归一化流对正常曝光图像的复杂分布进行建模,以便正常曝光图像的条件 PDF 可以表示为 ff low(x|xl)。更具体地说,条件归一化流 Θ 用于将低光图像本身和/或其特征作为输入,并将正常曝光的图像 x 映射到与 x 具有相同维度的潜在代码 z,即 z = Θ (x;xl)。利用变量变化定理,我们可以得到ff low(x|xl)和fz(z)之间的关系如下:
为了使模型更好地表征高质量正常曝光图像的属性,我们使用最大似然估计来估计参数 Θ。具体来说,我们最小化负对数似然 (NLL) 而不是 l1 损失来训练模型
其中可逆网络 Θ 被分为 N 个可逆层序列 {θ1, θ2 , …, θN } 并且 hi+1=θi(hi;gi(xl)) 是层 θi 的输出(i 范围从 0到 N-1),h0=xref 和 z=hN。 gn(xl) 是来自编码器 g 的潜在特征,具有与层 θn 兼容的形状。 fz 是潜在特征 z 的 PDF。总之,我们提出的框架包括两个组件:一个编码器 g,它以低光图像 xl 作为输入和输出光照不变颜色图 g(xl)(可以看作是受 Retinex 理论启发的反射率图),以及一个可逆将正常曝光的图像映射到潜在代码 z 的网络。以下小节介绍了这两个组件的详细信息。
光照不变颜色图编码器:
为了生成鲁棒和高质量的光照不变颜色图,首先对输入图像进行处理以提取有用的特征,然后将提取的特征作为(y Residual-in-Residual Dense Blocks) RRDB 构建的编码器输入的一部分连接起来(Wang等人,2018 年)。由于篇幅有限,编码器 g 的详细架构在附录中。每个组件的可视化如图3所示,详细信息如下:
图 3:编码器 g 的输入组件。将低光图像 xl 、直方图均衡化后的低光图像 h(xl)、颜色图 C(xl) 和噪声图 N(xl) 连接起来形成 12 个通道的输入。
1)直方图均衡化图像h(xl):进行直方图均衡化以增加弱光图像的全局对比度。直方图均衡后的图像可以看作是一种光照不变性更强的图像。通过将直方图均衡图像作为网络输入的一部分,网络可以更好地处理太暗或太亮的区域。
图 4:直接从低光图像 xl 中提取的颜色图,从编码器 g 中获得,直接从参考图像 xref 中提取,以及参考图像本身。
2)颜色图C(x):受Retinex理论的启发,我们提出计算图像x的颜色图如下:
其中均值 c 计算 RGB 通道中每个像素的平均值。来自低光图像、参考图像的颜色图和由编码器 g 微调的颜色图之间的比较如图 4 所示。我们可以看到,颜色图 C(xl) 和 C(xref ) 在不同光照下在一定程度上是一致的,因此它们可以被视为类似于反射率图的表示,在 C(xl) 中因密集噪声而退化。我们还可以发现,编码器 g 可以生成高质量的颜色图,在一定程度上抑制强噪声并保留颜色信息。
3) 噪声图 N(xl):为了去除 C(xl) 中的噪声,估计噪声图 N(xl) 并将其作为注意力图输入编码器。噪声图 N(xl) 估计如下:
其中 ∇x 和 ∇y 是 x 和 y 方向上的梯度图,其中 max(x, y) 是在像素通道级别返回 x 和 y 之间的最大值的操作。
可逆网络:
编码器学习一对一的映射来提取光照不变的颜色图,这可以看作是物体的内在不变属性,与此不同的是,可逆网络旨在学习一对多的关系,因为同一场景下的光照可能是不同的。我们的可逆网络由三层组成,在每一层都有一个挤压层和12个流动步骤。关于结构的更多细节可以在附录中找到。根据我们的假设,归一化流程旨在学习以低光图像/光照不变颜色图为条件的正常曝光图像的条件分布,归一化流程应该在 g(xl) 和 C(xref ) 因为这两张地图应该是相似的。为此,我们以以下方式训练整个框架(编码器和可逆网络):
其中 p 是一个超参数,我们将所有实验的 p 设置为 0.2。如图 4 所示,即使没有像素重建损失的帮助,编码器 g 也可以学习到与参考图像相似的颜色图。为了使用弱光图像生成正常曝光的图像,首先将弱光图像通过编码器以提取颜色图g(xl),然后将编码器的潜在特征作为可逆网络的条件.对于 z 的采样策略,可以从分布 N (g(xL), 1) 中随机选择一批 z 得到不同的输出,然后计算生成的正常曝光图像的均值,以获得更好的性能。为了加快推理速度,我们直接选择 g(xl) 作为输入 z,我们凭经验发现它可以达到足够好的结果。所以对于所有的实验,如果没有指定,我们只使用平均值 g(xl) 作为条件归一化流的潜在特征 z。