0%

MSR-NET

Retinex 系列算法

Retinex原理

​ I(x) = R(x) · L(x) ​ 对上式子取对数,得到 ​ Log[R(x,y)] = Log[I(x,y)] - Log[L(x,y)] = ​ Log[R(x,y)] = Log[I(x,y)] - Log[I(x,y)*F(x,y)] ( *表示卷积)
把这个技术运用到图像处理上,就是针对我们现在已经获得的一副图像数据I(x,y),计算出对应的R(x,y),则R(x,y)认为是增强后的图像,现在的关键是如何得到L(X,Y)。Retinex理论的提出者指出这个L(x,y)可以通过对图像数据I(x,y)进行F(x,y)高斯模糊而得到,从实际运用的角度来说,也可以用均值模糊来代替高斯模糊。

  1. 输入: 原始图像数据I(x,y),尺度(也就是所谓的模糊的半径)
  2. 处理:
    • 计算原始图像按指定尺度进行模糊后的图像 L(x,y);
    • 按照上式的计算方法计算出 Log[R(x,y)]的值
    • 将 Log[R(x,y)]量化为0到255范围的像素值,作为最终的输出

上述在讲Log[] 量化时,会产生色彩失真。这也是这算法的通病。上述实现的算法通常叫SSR (Single Scale Retinex,单尺度视网膜增强)

MSR (Multi-Scale Retinex)

​ 最为经典的就是3尺度的,大、中、小,既能实现图像动态范围的压缩,又能保持色感的一致性较好。同单尺度相比,该算法有在计算Log[R(x,y)]的值时步骤有所不同。

  • 需要对原始图像进行每个尺度的高斯模糊,得到模糊后的图像Li(x,y),其中小标i表示尺度数
  • 对每个尺度下进行累加计算 Log[R(x,y)] = Log[R(x,y)] + Weight(i)* ( Log[Ii(x,y)]-Log[Li(x,y)]); 其中Weight(i)表示每个尺度对应的权重,要求各尺度权重之和必须为1,经典的取值为等权重

带色彩恢复的多尺度视网膜增强算法(MSRCR,Multi-Scale Retinex with Color Restoration)

​ 其改进在于对Log量化过程的改进:

  1. 分别计算出 Log[R(x,y)]中R/G/B各通道数据的均值Mean和均方差Var(注意是均方差)

  2. 利用类似下述公式计算各通道的Min和Max值 Min = Mean - Dynamic * Var; Max = Mean + Dynamic * Var;

  3. 对Log[R(x,y)]的每一个值Value,进行线性映射:

    ​ R(x,y) = ( Value - Min ) / (Max - Min) * (255-0)

    同时要注意增加一个溢出判断,即:

    ​ if (R(x,y) > 255) R(x,y) =255; else if (R(x,y) < 0) R(x,y)=0

more...

参考链接: https://www.cnblogs.com/Imageshop/archive/2013/04/17/3026881.html https://cloud.tencent.com/developer/article/1011768

MSR-net

### 主要贡献:

  1. 作者认为 传统的MSR多尺度视网膜增强算法的过程可以用神经网络去模拟,并且神经网络的参数可以根据数据自学习。相对传统的采用固定的高斯模糊核要灵活 多尺度Retinex实际上相当于一个具有残差结构的前馈卷积神经网络
  2. 提出MSR-net 基于Retinex模型和神经网络的方法端到端得学习亮暗图之间得映射

相关知识

常用得图像增强的方法有

  1. 直方图均衡化HE
  2. Gamma Correction 通过压缩亮区像素的范围,扩大暗区域的亮度范围
  3. 上述的方法都只关注了单个像素而没有关注其周围的像素信息。文献[5] contextual and variational contrast enhancement ...

结构图

1572616376706

多尺度对数变换f1

\[ M_{j}=\log _{v_{j}+1}\left(1+v_{j} \cdot X\right), j=1,2, \ldots, n \]

​ 输入的一幅3通道的图像,经过对数变换为 n*3 通道的tensor。 log函数具有压缩高灰度值的数据,拉伸低灰度值的数据。X代表输入图像,vj代表对应的尺度n代表尺度数。 ​ 接着,使用一个卷积+Relu 。上述的操作主要是通过多次对数变换的加权和来得到更好的图像,加速了网络的收敛。

Difference-of-convolution f2

​ 这里的卷积代表着对不同尺度的图像进行平滑处理。将不同卷积层的输出contact 一起最后来个1X1卷积,相当于MSR中对不同尺度的SSR输出的加权平均。1X1之后引入了一个 “-” 操作,与SSR中的 Log[I(x,y)] - Log[L(x,y)] 减 的目的相同,根据模拟产生的L(x,y) 还原出Log[R(x,y)] 深度为K

颜色重建函数 f3

​ 由于上一步 减 的到的是 Log(R(x,y)) 因此最后一个1X1卷积就是用来色彩还原的。 ​ 上述三步的输出结果可视化如下:

1572618295529

损失函数

\[ L=\frac{1}{N} \sum_{i=1}^{N}\left\|f\left(X_{i}\right)-Y_{i}\right\|_{F}^{2}+\lambda \sum_{i=-1}^{K+2}\left\|W_{i}\right\|_{F}^{2} \]

实验

数据集

​ 依然是同时使用合成图像验证,使用公开的真实的数据集。同时还对比了各种超参数对结果的影响。作者建立了一个新的真实数据集 包含HQ LQ图片 同时还使用了已有的正式低光照数据集 MEF NPE VV

训练参数

​ 中间的神经网络的深度为K , adam 权重衰减为10-6 batch_size为64 初始学习率为10-4 学习率除10每100K到200K iteration。作者实验发现带有第一个对数多尺度变换的要比单尺度变换的效果好 4个变换尺度,分别为1,10,100,300

结果

1572779177674

MBLLEN

主要思想

​ 由于图像内容的复杂性,作者认为简单的网络难以实现高质量的图像增强。因此设计了MBLLEN 的多分枝结构。将图像增强任务分解成和不同特征相关的子问题,不同特征层分别增强,最后通过多分枝结果融合得到搞质量的输出。

网络结构

结构

​ 由三部分组成,FEM, EM, FM;特征提取模块,增强模块,融合模块。

  1. FEM:将三通道微光图像输入FEM模块,FEM模块实际是由10个步长1,3X3卷积Relu层组成的网络。每一层卷积后的feature map一方面作为EM模块的输入,一方面接着传给下一层卷积接着提特征
  2. EM:增强模块,数量等于上一层输出的feature map的个数。每个EM模块都是conv deconv结构,输出的尺寸和原微光图像尺寸相同。所有EM模块输出的featuremap contact 作为FM的输出
  3. FM:多分支融合,将上一层contact的结果用1X1卷积聚合。得到最终的输出
  4. 应用在视频....
1572958613424

损失函数

​ 传统的MSE或者MAE损失在增强的任务中不能很好的表现,作者使用了更复杂的损失函数,包含结构损失,Context(语义)损失, 区域损失

  1. 结构损失(structure loss ):这个损失是为了提高输出图像的视觉 效果。通常低光照图像暗区因为硬件捕获的问题带有模糊和伪影,他们视觉效果不好但是不能被MAE损失表现出来。作者提出的结构损失中包含两部分:简化的SSIM MS-SSIM。

\[ L_{S S M}=-\frac{1}{N} \sum_{p \in i m g} \frac{2 \mu_{x} \mu_{y}+C_{1}}{\mu_{x}^{2}+\mu_{y}^{2}+C_{1}} \cdot \frac{2 \sigma_{x y}+C_{2}}{\sigma_{x}^{2}+\sigma_{y}^{2}+C_{2}} \]

\[ L_{S t r}=L_{S S I M}+L_{M S-S S I M} \]

  1. context loss: 作者认为MSE和SSIM智能表示低层信息,认为使用更高级的语义信息是有必要的。采用了SRGAN中相似的做法来设计损失。具体是使用VGG-19 net提取两张图片的特征图。然后比较特征图的差别,如下式,i,j表示VGG-19中第j层特征第i个block的输出特征图。

\[ L_{V G G / i, j}=\frac{1}{W_{i, j} H_{i, j} C_{i, j}} \sum_{x=1}^{W_{i, j}} \sum_{z=1}^{C_{i, j}}\left\|\phi_{i, j}(E)_{x, y, z}-\phi_{i, j}(G)_{x, y, z}\right\| \]

  1. region loss 区域损失:上面两个损失函数都是基于全图的。然而在图像增强任务中,需要对低光照区域提供更多的注意力。因此作者提出这个损失函数来平衡低光照区域和其他区域的损失。作者筛选暗区域的策略是 发现选取一副图中前40%暗的像素作为暗区域最能代表实际的暗区域。这里可以寻找更恰当的选取暗区域的方法 式子中,EL GL中的L代表输入图像的暗区域,H代表亮区域 E,G代表输出图像和groundtruth WL=4 WH=1 \[ L_{R e g i o n}=w_{L} \cdot \frac{1}{m_{L} n_{L}} \sum_{i=1}^{n_{L}} \sum_{j=1}^{m_{L}}\left(\left\|E_{L}(i, j)-G_{L}(i, j)\right\|\right)+w_{H} \cdot \frac{1}{m_{H} n_{H}} \sum_{i=1}^{n_{H}} \sum_{j=1}^{m_{H}}\left(\left\|E_{H}(i, j)-G_{H}(i, j)\right\|\right) \]

实现细节

​ 选取PASCAL VOC上的一部分图像使用损及gamma矫正转化为合成的低光照图像,同时加入了泊松噪声。56张验证,144张测试。minibatch 24 256X256X3的图像。VGG损失作者选取的是j=4 i=3处的feature map 。ADAM优化器,学习率0.002 b1=0.9 b2=0.99 e=10-8 学习率每个epoch learnrate * 0.95。

结果

1572960634271

结论

  • 感觉这篇文章 出发点 很独特,不同于以往的基于retinex模型的方法,提取光照图等等。通过多层特征提取,然后分别增强,最后多分枝融合。思想很独特。
  • 区域损失 值得借鉴和改进 VGG损失???

LightenNet

图像增强研究现状

  1. 基于直方图的方法:Adaptive histogram equalization and its variations

  2. 基于物理模型的方法:通常产生非自然和不现实的结果,因为一些先验或假设并不总是适用于不同的照明条件 [19, 28]

  3. 基于去雾模型的方法:去雾类方法在一定程度上可以提高微光图像的视觉质量,但这些方法缺乏有说服力的物理解释,容易产生不真实的结果。[4, 9, 28]

    Such a method first inverts an input low-light image, and then employs an image dehazing algorithm on the inverted image, finally achieves the enhanced image by inverting the dehazed image.

  4. 基于稀疏表示的微光图像增强框架:增强的结果在很大程度上依赖于所学习的字典的准确性 [5]

    Fotiadou et al. used two dictionaries (i.e., night dictionary and day dictionary) to transform the Sparse Representation of low-light image patches to the corresponding enhanced image patches.

  5. 基于融合的方法: 通过两个设计的权重来 融合亮度增强和对比度增强结果。此外采用多尺度融合的方法来减少放大的伪影。然而,与其他基于融合的图像增强方法一样,这种方法由于忽略了弱光照图像退化的物理特性,容易产生过增强、过饱和和不真实的结果 。 [7]

  6. LLNet:提出了一种基于深度学习的图像自适应增强和去噪方法,直接采用了现有的深度神经网络结构(堆叠稀疏去噪自动编码器)建立低光图像与增强、去噪图像之间的关系。实验结果表明,基于深度学习的方法适用于微光图像增强。[20]

  7. LIME: 简单的微光图像增强方法。[11]

    This method first estimated the illumination of each pixel in the low-light image, then refined the initial illumination map by a structure prior, finally the enhanced image was achieved based on Retinex model using the estimated illumination map. Besides, in order to reduce the amplified noise, an existing image denoising algorithm was used as post-processing in the LIME method

LightenNet

Retinex model :

​ Retinex model 源自人类视觉系统研究的颜色恒常性模型(在不同光照条件下,人眼可以产生近乎一致的色彩感知)。意思是 色觉不由射入到人眼的可见光的强度决定,而是由物体的反射率所确定,人眼能够以某种方式过滤掉光照的影响而直接获得物体表面的反射率从而确定颜色 。Retinex 理论方法的发展,促进了其在图像增强中的应用。Retinex 主要用来解决数字图像中的光照不均和色偏等问题,也被广泛用于雾霾图像、水下图像等图像处理任务中以获得高对比度的图像,同时在医学、遥感、公安、交通等各个领域都有成功的应用。该模型可用表示: ​ I(x) = R(x) · L(x) ​ I(x)是观测到的图像, x代表像素位置,R表示该位置表面的光波长反射率, L代表该位置的光照度 反射率是物体本身固有的性质,与光照条件无关。如果能够从衣服图像中获得3个色彩通道对应的反射率R,那么从某种程度上说解读了人类视觉的恒常特性。

贡献

  • 提出了一个用于低光照图像增强的简单的CNN网络。与以往的使用CNN的直接估计输出方法不同,LightenNet学习低光照图像和其响应光照强度图之间的映射。
  • 基于Retinex模型,提出了一种合成低光照图像的方法。
  • 提出的方法在合成低光照图和实际低光照图上都取得了最好的效果

LightenNet

​ 通过上述,论文作者的目的通过观测图像预测其的L(x)来实现R(x) 即输入一个弱光照图像,网络通过学习到的映射输出其光照映射图,这个光照映射图接着用于获得增强的图片。

In this letter, our goal is to achieve the reflectance R(x) from the observed image I(x) by predicting its illumination map L(x)

​ 论文作者说,LightenNet包含四个卷积层,每层都有不同的作用。比如前两层主要作用于高亮度的区域,第三层作用于低亮度的区域,最后一层用于重建。

  1. Patch extraction and representation
  2. Feature enhancement :将噪声和特征分开映射
  3. Non-linear mapping:
  4. Reconstruction
1572008006804
1572008198140

损失函数为MSE损失 illu是图像的光照图像??怎么获得?

​ 在通过CNN获得光照映射图之后,还要进行以下3步,才能获得最终的增强图片。

  1. Gamma矫正(Gamma correction ) L(x)` = L(x)^γ (r=1.7)

    Following previous method [11], we adjust the estimated illumination map by Gamma correction in order to thoroughly unveil dark regions in the results, which can be expressed as

  2. 作者在优化CNN模型的时候认为局部的nXn输入图像具有相同的光照强度,因此gamma矫正之后需要通过指导滤波来细化光照图。在导图滤波中,将输入图像的红色通道作为导图,滤波窗口大小为16×16.

  3. 基于Retinex 模型,将低光照输入图/光照强度预测图 得到最终的增强后的输出 拥有了精确的光照强度映射图,就能产生自然的接近真实的增强输出,暗的区域得到增强,亮的区域保持不变。

1572010031130

具体的实现

训练参数

  • 使用高斯分布初始化权重,偏置设0
  • 初始学习率0.05 每100000个迭代减少0.5
  • momentum =0.9 batch_size=128

样本的合成

​ 首先,基于图像局部亮度大小恒定的假设制造数据。作者从互联网上收集了600张带有各种内容的清晰的照明图像(光照充足且没有噪声和模糊的图),用于样本对的合成(弱光照图像以及其光照映射)。基于Retinex ,给定实际的清晰图像R(X),和一个随机光照值L, 一个弱光照图I(x) = R(x)*L 通过这种方式,获得训练图片集patch patch的overlapping pixels = 10 16X16的训练图片 2000..张 (假设输入的16X16图像具有相同的光照映射)

实验结果

  • 最后的1X1的Constarint重建对这个模型很重要
  • 最后尝试增加卷积层数没有作用 作者认为的原因是 1.梯度扩散效应 2.简单的原始架构重复导致网络架构不合理 作者将来会考虑使用更复杂的CNN网络来做
  • Failure cases 训练的时候使用的都是没有噪声的图像,因此对于带有噪声的微光图像 效果不好

研究方向

  1. 使用复杂的网络
  2. 考虑带噪声的低光照图

LEUGAN:Low-Light Image Enhancement by Unsupervised Generative Attentional Networks

亮点

  1. 生成器和判别器都是两分支结构,边缘辅助模块用于辅助边缘增强,一个注意力模块用于恢复颜色
  2. 设计了一个新的损失函数

结构

image-20201230154540024

提出的 structure loss 和 SSIM 很像,应该是作用于输入图像和输出图像之间的。

image-20201230154646501

这个损失没看懂

KinD

主要贡献

  1. 总结了微光图像增强中存在的挑战:
    • 如何有效的从单张图像中估计光照,并且可以灵活的调节光照等级
    • 如何去除之前隐藏在黑暗中的噪声和颜色失真等退化现象
    • 在没有充足的训练样本和完美的ground-truth的情况下训练低光照增强网络模型
  2. 和RetinexNet模型类似:
    • 基于Retinex理论 使用网络将图片分解为两个部分:光照和反射率
    • 网络的训练是基于一对低光照正常光照图像,而不是使用反射率和光照groundtruth
    • 提供了一个光照映射图可以调节的 灵活的调节网络 以供不同的需求
    • 提出了一个可以有效消除由于光照增强放大的暗区域噪声的模块

研究现状

​ Plain Methods: 基于直方图均衡化的方法,gamma矫正的方法。这类方法缺点是很少考虑光照因素 ​ Traditional Illumination-based Methods : 传统基于光照的方法。例如SSR MSR NPE等,通过调整图像光照来增强,这类方法通常没有考虑色彩失真和噪声。 ​ 基于深度学习的方法:

论文理论

主要思想

​ 没有完美的光照图和反射率图,因此需要根据各种约束条件来优化分解网络。作者认为,微光图像中的噪声在暗区域较亮区域的影响更大,因为暗区域的微小噪声和颜色失真会一起被放大,所以作者认为用光照图来指导反射率图去噪重建效果会比直接用DBM3无差别的对反射率图去噪好。最后,作者认为正常微光图像的退化程度相对于正常光照图片要严重,这些退化的因素会随着反射率图最终传递到最后的结果,因此作者认为可以使用正常图像分解产生的反射率图作为低光照图分解的反射率图重建(去噪,颜色矫正等)的指导。作者申明这种使用良好的反射率图做指导和直接使用原图做指导完全不同。

光照图指导的反射率重建:

\[ \mathbf{I}=\mathbf{R} \circ \mathbf{L}+\mathbf{E}=\tilde{\mathbf{R}} \circ \mathbf{L}=(\mathbf{R}+\tilde{\mathbf{E}}) \circ \mathbf{L}=\mathbf{R} \circ \mathbf{L}+\tilde{\mathbf{E}} \circ \mathbf{L} \]

I为输入低光照图,R为本身的反射率图,L为原本的低光照图。如果将图像分解,会将噪声分解到\(\tilde{\mathbf{R}}\) 此时包含(R + E)因此最后调整光照强度再还原时,E与L一起被放大,因此需要用L来指导去噪。那么为什么不直接从输入微光图像I中去除E呢?一方面光照不平衡的问题存在,另一方面内部的细节和噪声不均匀地混合在一起,再就是由于L 的存在是个变量,没有合适的方法去掉,就是同一个场景光照不同噪声强度也不同,难以在参杂一个光照变量的情况下很好的去除噪声,而反射率图就更纯粹,比较适合用来去噪。

Kind Network

1572948093087

分解网络

​ 训练时网络有输入成对的图像 Il Ih

  1. 保证输入的低光照和正常光照图像分解产生的反射率图相同:

\[ \mathcal{L}_{r s}^{L D}:=\left\|\mathbf{R}_{l}-\mathbf{R}_{h}\right\|_{2}^{2} \]

  1. 光照图平滑约束,其中\(\nabla\)表示梯度。max( \(\epsilon\))避免分母除0 这里是通过输入图像的梯度加权光照梯度的,而Retinex中是通过反射率图加权。可以看出,输入图像边缘处梯度大,光照图对应的梯度损失小,允许此处的光照分布不那么平滑。

\[ \mathcal{L}_{i s}^{L D}:=\left\|\frac{\nabla \mathbf{L}_{l}}{\max \left(\left|\nabla \mathbf{I}_{l}\right|, \epsilon\right)}\right\| 1+\left\|\frac{\nabla \mathbf{L}_{h}}{\max \left(\left|\nabla \mathbf{I}_{h}\right|, \epsilon\right)}\right\| \]

  1. 底/高输入图像的低/高光照图的结构一致性。作者给出了uexp(-cu)的变化曲线,先增后减。大概意思是,如果两个光照图的梯度都很大或者都很小,输出loss很小,如果一大一小则loss很大,也符合这个函数的变化规律。 ??

\[ \mathcal{L}_{m c}^{L D}:=\|\mathbf{M} \circ \exp (-c \cdot \mathbf{M})\|_{1} \text { with } \mathbf{M}:=\left|\nabla \mathbf{L}_{l}\right|+| \nabla \mathbf{L}_{h} \]

  1. 将分解产生的结果要能尽可能还原回原输入图
  2. $ _{h} $

\[ \mathcal{L}_{r e c}^{\hat{L} D}:=\left\|\mathbf{I}_{l}-\mathbf{R}_{l} \circ \mathbf{L}_{l}\right\|_{1}+\left\|\mathbf{I}_{h}-\mathbf{R}_{h} \circ \mathbf{L}_{h}\right\|_{1} \]

  1. 最后将上述损失按权重相加即可 0.01,0.08,0.1,1

反射率重建网络

​ 该部分在Deep RetinexNet中使用的DBM3去噪,然后和光照调整网络整合出输出结果。而在改论文中使用了Unet类似的编解码网络重建。输入为 低光照图分解产生的 R 和 I 。I 用来指导R的重建,高质量图产生的R作为groundtruth来计算损失。同样的 把纹理细节也计入了损失。 \[ \mathcal{L}^{R R}:=\left\|\hat{\mathbf{R}}-\mathbf{R}_{h}\right\|_{2}^{2}-\operatorname{SSIM}\left(\hat{\mathbf{R}}, \mathbf{R}_{h}\right)+\left\|\nabla \hat{\mathbf{R}}-\nabla \mathbf{R}_{h}\right\|_{2}^{2} \]

亮度调整网络

​ 计算两个光照图之间的关系的方法为:ta = mean(L1/L2) 在网络训练是可以以低光照图作为输入待调整,高光照亮度图作为groundtruth 同时计算二者的调节系数a 并扩充为一个featuremap一起输出网络。最后的损失为: \[ \mathcal{L}^{I A}:=\left\|\hat{\mathbf{L}}-\mathbf{L}_{t}\right\|_{2}^{2}+\left\||\nabla \hat{\mathbf{L}}|-\left|\nabla \mathbf{L}_{t}\right|\right\|_{2}^{2} \]

实验结果

​ 主要在LOL数据集上对比和各种算法。包含500对正常/低光照图像。分解网络batchsize=10, path-size=48X48。分辨率重建网络和光照跳着网络batch size为4,384X384大小。SGD优化

1572948721689

后续版本 KindD ++

restoration_net2.jpg

主要是改进了 重建网络 光照图深入重建网络的各个层 ,且重建网络中使用多尺度的卷积contact

本文的创新点在于:

  • 将光照图作为反射率图去噪重建的指导
  • 光照图的光照强度可调整功能
  • 分解网络中 对光照强度的梯度平滑中的权重 感觉较RetinexNet网络的好
  • 将正常光照的反射率图作为低光照图反射率图去噪调整的groundtruth

感觉的缺点:

  • 分解网络结构

文章复现遇到的问题

  1. 在使用LOLDateset数据集时, 一定要注意正常光照图和低光照图成对儿 LOLDatesat数据中 高低光照图的名字是一样的,但是两个文件夹中 低光照的图片不一定能在高光照文件夹中找到对应名字的图 这种图应该舍去 一开始读取数据的方法是排序后取相同位置的图片做一对儿 这样不行 因为有漏序号的 后面就都错位了
  2. 分解网络 论文给的详细网络结构没有BN层 不能加BN层!!!!! 一开始以为BN层只有好处没坏处 结果加了死活不能收敛
  3. 在批量训练时 有时候在每个epoch最后一批 Loss可能会跳 可能因为 总的训练样本数量 / batch_size 不能整出 dateloader 中 drop_last = True 舍弃最后一批
  4. 原版本的用2X2卷积计算的梯度,这种偶数的卷积核在边界会补0 但是计算完后没有把补0的边界填充0 会有白边,这不影响,在加上规范化后,由于百边的影响会使整体的梯度幅值偏小。所以复现时不用卷积算梯度后补0 整体梯度比用卷积算的大0.02左右 梯度整体偏大会使光照图区域灰色的一片....

关于分解网络损失权重的讨论

按照原始的损失权重的定义 结果

1573788470551

可以看出 网络映射成了恒等映射, 分离出来的光照分量恒为1 这种情况,重建损失很低,但是R的相似度也很低,但是由于其权重只有0.01 所以被削弱了。感觉不符合分解的目的。

rec, rs, is, mc = 1,1,0.08,0.1

1573789025322

​ 可以看出增R反射率损失的权重


官方代码

​ 与论文描述不一致的地方

  • 激活函数使用的是 lrelu 斜率为0.2
  • 对梯度进行了去均值归一化 先归一化再数据扩增 还是先扩增再归一化 有区别? 程序错误没有裁剪 patch !!!!!!
  • 分解网络equal_r 损失为L1损失而 文章中为平方MSE损失
  • 分解网络中 mc损失 x y 分别计算reduce平均求和 权重0.15 加权TV损失权重为0.2

别人的笔记

Kindling the Darkness: A Practical Low-light Image Enhancer

paper:Kindling the Darkness: A Practical Low-light Image Enhancer

Abstract

  • 类似Retinex理论,将图片分解为2部分。
    • 一部分用于光照调整(illumination)
    • 另一部分用于degradation removal(reflectance)
  • 原始空间被解耦为2个子空间,以便学习
  • 网络是用成对的不同曝光条件的图像去训练,而不是用reflectance and illumination的GT

Introduction

一些操作在一些环境上可以用于调整图像的质量,但也存在缺点。比如,高ISO虽然增加了图像传感器对光的敏感度,但是噪声也放大了,因此造成了低信噪比SNR。长曝光受限于拍摄静态场景,否则图像会变得模糊。使用闪光灯虽然可以照亮环境,但会带来意想不到的高光和不平衡的光线,视觉效果不太好。

3种不好处理的光条件:

  • 极度低光,一些噪声和颜色失真隐藏在黑暗中。
  • 在日落拍摄的照片,物体在逆光下受影响。
  • 中午对着光源拍照也比较难处理

low-light image增强没有真实数据的GT,因为每个人喜欢的light level是不一样的,所以没人可以说什么光条件就是最好的。

作者总结了low-light image enhancement的challenges 有以下几点:

1.如何有效的从单张图像中估计出光照图成分,并且可以灵活调整光照level?

2.在提升图像亮度后,如何移除诸如噪声和颜色失真之类的退化?

3.在没有ground-truth的情况下,样本数目有限的情况下,如何训练模型?

1.1 Previous Arts

(1)Plain Methods:

处理在全局低光照的图像的比较直观的方法是放大图像,但会在细节上有噪声和颜色失真。

在颜色较亮的区域,放大操作经常会导致颜色过饱和以及过度曝光。

直方图均衡化(histogram equalization,HE),试图把值映射在[0,1],平衡输出的直方图来解决这个问题。

伽马矫正(gamma correction,GC),以非线性的方式在每个像素执行。虽然GC可以对暗像素进行提亮,但没考虑每个像素之间的相邻关系。

这些普通方法的缺点是,不考虑真实光照因素,导致增强的效果不好,与真实场景不同。

(2)Traditional Illumination-based Methods:

与plain method不同的是,传统的基于光照的方法注意到光照的重要性。

Retinex理论:有颜色的图片可以被分解为2部分,反射率和光照。

比较早提出理论有:

  • single-scale Retinex,SSR
    • D. J. Jobson, Z. Rahman, and G. A. Woodell, “Properties and performance of a center/surround retinex,” IEEE Transactions on Image Processing, vol. 6, no. 3, pp. 451–62, 1997.
  • multi-scale Retinex,MSR
    • D. J. Jobson, Z. Rahman, and G. A. Woodell, “A multiscale retinex for bridging the gap between color images and the human ob- servation of scenes,” IEEE Transactions on Image Processing, vol. 6, no. 7, pp. 965–976, 2002.

这些方法生成的结果通常不真实,且在有的地方过度增强。

之后又有一些方法进行改进:

    1. NPE:在增强对比度的同时保护自然光照。
    • D. J. Jobson, Z. Rahman, and G. A. Woodell, “A multiscale retinex for bridging the gap between color images and the human ob- servation of scenes,” IEEE Transactions on Image Processing, vol. 6, no. 7, pp. 965–976, 2002.
  • 2.通过融合最初光照估计的多重推导来进行调整光照。

    • X. Fu, D. Zeng, H. Yue, Y. Liao, X. Ding, and J. Paisley, “A fusion- based enhancing method for weakly illuminated images,” Signal Processing, vol. 129, pp. 82–96, 2016
    • 缺点:有时会牺牲真实区域的丰富纹理。
  • 3.从初始光照图估计结构光照图。

    • X. Guo, Y. Li, and H. Ling, “Lime: Low-light image enhancement via illumination map estimation,” IEEE Trans Image Process, vol. 26, no. 2, pp. 982–993, 2017
    • 缺点:假设图像是无噪声和无颜色失真的,没有考虑到退化问题
  • 4.提出权重变分模型同时估计反射率和光照估计(SRIE),通过调整光照生成图像

    • X. Fu, D. Zeng, Y. Huang, X. Zhang, and X. Ding, “A weighted variational model for simultaneous reflectance and illumination estimation,” in IEEE Conference on Computer Vision and Pattern Recognition, pp. 2782–2790, 2016
  • 5.在3的基础上提出了引入了an extra term to host noise

缺点:4、5虽然可以处理图像的弱噪声,但不擅长处理颜色的失真和强噪声。

(3)Deep Learning-based Methods

  • LLNet(low-light net),建立深度模型作为同时处理对比度增强和去噪的模块。
    • K. G. Lore, A. Akintayo, and S. Sarkar, “Llnet: A deep autoen- coder approach to natural low-light image enhancement,” Pattern Recognition, vol. 61, pp. 650–662, 2017.
  • MSR-net,作者认为多尺度Retinex等价于前向传播的不同高斯卷积核的卷积网络,受此启发,构造了end-to-end的网络结构,直接学习从dark到bright。
    • L. Shen, Z. Yue, F. Feng, Q. Chen, S. Liu, and J. Ma, “Msr-net:low- light image enhancement using deep convolutional network,” p. arXiv, 11 2017.
  • Retinex-Net,集成了图片分解和光照映射,此外,还利用了现成的(off-the-shelf)去噪工具(BM3D)to clean the reflectance component
    • C. Wei, W. Wang, W. Yang, and J. Liu, “Deep retinex decom- position for low-light enhancement,” in British Machine Vision Conference, 2018.
    • (ps:不懂to clean the reflectance component)

这些方法的缺点

1.这些方法都假设每个图像都存在GT的光,没有考虑到不同光的噪声在不同的区域的影响不同。即,提取了光照因子后,reflectance的dark区域的噪声level明显高于bright区域。在这种情况下,训练均匀分布图像(反射率)的去噪器不再适合。

2.此外,这些方法都没处理好颜色失真的退化问题。

  • 提出处理低光照的end-to-end的pipeline,用fully convolutional network同时处理噪声和颜色失真
    • C. Chen, Q. Chen, J. Xu, and V. Koltun, “Learning to see in the dark,” in IEEE Conference on Computer Vision and Pattern Recogni- tion, pp. 3291–3300, 2018.
    • 缺点:
      • 只适用于raw数据,应用场景受限
      • 如果将网络改造成输入JPEG格式,性能会变差

现有的方法都是通过伽马矫正调整光照,在精心构造的训练数据中指定一个level或者融合。伽马矫正可能无法反应不同曝光level之间的关系。第二种方法受限于指定的level是否包含在训练数据中。而最后一个方法,甚至没有提供可操作的选项。(这里不是太懂)

因此,需要设计一个映射函数,将one light(exposure)转换为another以便用户调整。

(4)Image Denoising Methods:

经典的方法是用特定的先验来处理图像,比如:non-local self-similarity、piecewise smoothness(分段平滑)、信号稀疏表示。最受欢迎的可能是:BM3D和WNNM。

  • BM3D:
    • K. Dabov, A. Foi, V. Katkovnik, and K. Egiazarian, “Image denoising by sparse 3-d transform-domain collaborative filtering,” IEEE Transactions on Image Processing, vol. 16, no. 8, pp. 2080–2095, 2007.
  • WNNM:
    • S. Gu, L. Zhang, W. Zuo, and X. Feng, “Weighted nuclear norm minimization with application to image denoising,” in IEEE Con- ference on Computer Vision and Pattern Recognition, pp. 2862–2869, 2014.

缺点:

由于优化具有高复杂性以及参数的搜索空间很大,这些传统方法在真实条件下效果不是很好。

基于深度学习的去噪器表现出优越性。比如:

  • SSDA,使用堆叠的稀疏自动编码器
    • F. Agostinelli, M. R. Anderson, and H. Lee, “Adaptive multi- column deep neural networks with application to robust image denoising,” in NeurIPS, 2013
    • J. Xie, L. Xu, and E. Chen, “Image denoising and inpainting with deep neural networks,” in NeurIPS, 2012.
  • TNRD,by trainable nonlinear reaction diffusion(反应扩散?不是很懂)
    • Y. Chen and T. Pock, “Trainable nonlinear reaction diffusion: A flexible framework for fast and effective image restoration,” IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 39, no. 6, pp. 1256–1272, 2017.
  • DnCNN,使用残差学习和batch normalization,可以节约计算成本,因为在测试阶段只有后馈卷积操作。
    • K. Zhang, W. Zuo, Y. Chen, D. Meng, and L. Zhang, “Beyond a gaussian denoiser: Residual learning of deep cnn for image denoising,” IEEE Transactions on Image Processing, vol. 26, no. 7, pp. 3142–3155, 2016.

缺点:

这些模型在blind image denoising上仍然有困难。one may train multiple models for varied levels or one model with a large number of parameters,这是很不灵活的

通过在任务汇总反复思考,这个问题得到了一定的缓解:

  • paper:
    • X. Zhang, Y. Lu, J. Liu, and B. Dong, “Dynamically unfolding recurrent restorer: A moving endpoint control method for image restoration,” in ICLR, 2018.

缺点:

上面提到的方法都没有考虑到不同的区域有着不同的level的噪声。

同样的问题也出现在颜色失真上。

1.2 Contributions

  1. 受到Retinex理论启发,提出的网络将图像分解为2个部分:反射率和光照,将原始空间解耦为2个更小的空间
  2. 网络的训练数据是在不同光照/曝光条件下获取的成对图像,而不是用任何的GT的反射和光照信息
  3. 提供了一个映射函数方便用户根据不同需求调整光线level
  4. 提出的网络也包括了一个可以有效消除放大黑暗区域带来视觉缺陷的模块

2、Methodology

一个理想的低光度图像增强器应该可以有效去除藏在黑暗中的退化,以及灵活地调整光照/曝光条件。

网络结构:

img

  • 整个网络有2个分支,分别是:反射率和光照
  • 从功能的角度可分为3个部分:
    • 层分解(layer decomposition)
    • 反射率恢复(reflectance restoration)
    • 光照调整(illumination adjustment)

2.1 Consideration & Motivation

(1)Layer Decomposition

Retinex 理论:一个图像I可以看做是2个部分,reflectance R和illumination L,即,I = R ◦ L,R和L的对应元素的点乘。

(2)Data usage and Priors

层分解在自然界是欠定的,因此额外的先验/正则化很重要。假设图像的无退化的,一个场景的不同镜头应该有相同的反射率。光照图虽然有很大不同,但应该有简单且一致的结构。(不懂这里)

在真实场景下,低光度图像的退化一般要比亮图像更严重,此时转移为反射率部分。(这里不懂)

由此得出,亮光图像的反射率可以作为GT,给退化的低光度图像学习恢复。

为什么不用合成图像?因为难以合成,退化不是简单的组成,在不同的传感器上会有不同的变化。

作者提到,使用(well-defined)的反射率完全不同于用亮光图像作为低光图像的参考。

(3)Illumination Guided Reflectance Restoration

在分解的反射率中,较暗光线的污染要比亮光的区域严重。在数学层面上,一个退化的图像可以被表示为:

I = R ◦ L + E

E:表示污染成分

反射率恢复不能被均匀地处理整个图像,关照图可以作为一个好的向导。

为什么不直接从输入I中去掉噪声E?

一是不均衡的问题仍然存在,内在细节被不平均地与噪声混淆,二是与反射率不同,因为L是不同的,没有合适的参考给退化去除。颜色失真也是一样。

(4)Arbitrary Illumination Manipulation(任意光照调整)

最好的光照强度对不同的人和应用是很不同的,因此,需要提供任意调整光照的接口。

过去常用的3个方法,fusion,缺少光线调整;light level appointment,要求训练集包含目标level;伽马矫正,不能反映不同光线(曝光)level之间的联系。

作者提出从真实数据中学习灵活的映射函数,用户可以随意调整level

2.2 KinD Network

网络结构:

img

(一)Layer Decomposition Net

  • 输入:用不同光照/曝光的图像作为成对图像[I_l,I_h]
  • 之前有个假设,在相同的场景,反射率应该相同,首先的目标是让反射率对[R_l,R_h]应该尽量相同(图中上面的中间输出)。(理想情况下无退化情况)。
  • 光照图[L_l,L_h]应该分段平滑,且相同(图中下面的中间输出)。
  • 定义各种loss
    • reflectance similarity,L_rs,反射率相似度
      • 即,输出的两张反射率map的相似度
    • illumination smoothness,L_is,光照平滑度
      • 即,输出的两张光照map的平滑度
      • 衡量光照相对输入来说的结构相关性(这里不懂)
      • 这个平滑项对边缘的像素惩罚小,对平滑区域惩罚大。
    • mutual consistency,L_mc,相互一致性
      • 保证强相关的边缘被保留下来
      • 即,两张光照map之间
    • reconstruction error,L_rec
      • 衡量重建图像的误差
      • 即,分辨率图和光照图各自的生成和各自的输入之间的误差

(二)Reflectance Restoration Net

低光照图像比亮光度图像更多退化。

思路:将清晰的反射图作为GT

loss:L_RR

degradation分布在反射率上是复杂的,强依赖于光照分布,所以作者将光照信息和退化反射率一起引入图像恢复中。

(三)Illumination Adjustment Net

通过光强率α控制,α=mean(L_t/L_s),这里的除法是对应元素相除。

α可以作为一个指标,用于将L_s训练到L_t,(L_t是目标源光),α>1表示低光到高光。

3个conv (2个conv+ReLu)+ 1个sigmoid

α被扩展为一个map,作为输入的一部分。

Loss:L_LA

总结

img

  • 输入是成对的不同曝光的图像
  • 将亮光图像的反射率作为GT,明亮图像的反射图作为GT去引导低照图像的反射图进行增强
  • 定义了一堆loss(个人觉得过于繁琐,不优雅,且排版emmm)

HDR-Net

相关论文

Deep Bilateral Learning for Real-Time Image Enhancement (HDR-Net)

Deep Bilateral Retinex for Low-Light Image Enhancement

主要思想

借鉴了 双边网格(在快速双边滤波算法中被提出用于加速双边滤波)的思想 和 局部颜色仿射不变性的 特点,将图像缩放至低分辨率 输入网络,学习局部和全局特征,融合之后转换到双边网格中,得到双边网格下的局部仿射变换参数。并行的,对输入图像做仿射变换得到引导图,并将其用来引导前面的双边网格做空间和颜色深度上的插值,恢复到和原来图像一样大小的变换参数。最后根据这个参数对输入图像做仿射变换,得到输出图像。

特点

  1. 大部分计算过程是在低分辨率的网格下进行的 - CNN中的局部和全局特征提取都是在低分辨率下执行。
  2. 学习的是输入输出的变换矩阵,而不是直接学习输出
  3. 虽然主要网络实在低分辨率下进行的 但是损失函数是在原来的分辨率上建立的,从而使得低分辨下的操作去优化原分辨下的图像。

主要内容

这篇文章主要是在先前的基础上进一步改进的,包括联合双边上采样(JBU),这里是通过将双边滤波器作用在高分辨的引导图去产生局部平滑但是也保留边缘的上采样;双边引导上采样(BGU Bilateral Guided Upsampling )则是引入了在双边网格里进行局部仿射变换,再通过引导图进行上采样。这篇论文实际上就是将BGU里的仿射变换操作通过网络进行学习。

BGU 主要思想

文章提出了一种加速图像处理的方法。由于很多复杂的滤镜处理速度比较慢,一个很常用的解决思路是对原图 downsample 之后做处理,然后用 upsample 得到处理结果。而在 BGU 这个例子里,利用 bilateral grid 来做 downsample - upsample 的工作,使得效果更为出色。

1595208512974
  • 任何滤镜效果,在双边网格的局部小区域内(空域xy小范围内,以及像素域小范围内)都可以看做是一个线性变换。
  • 利用 bilateral grid 可以从一个低分辨率的图上 slice 得到高分辨率的结果
  • upsample 针对的是变换系数,而不是直接针对像素。这样对细节方面损失降低到最小。

具体实现步骤如下:

  1. 对原图 downsample 得到一个小图
  2. 在小图上应用滤镜
  3. 在小图上划分网格(bilateral graid),拟合每一个网格中的线性变换
  4. 线性变换的系数在网格间做平滑(这个平滑不仅在 x y 空间域的平滑,还在像素域z轴平滑,所以才要用双边网格,3D双边网格的作用就是以灰度值做第三维,将灰度差异在x轴上体现)
  5. 利用这个网格,根据原始大图在这个网格上做 slicing,得到高分辨率的线性变换系数,进一步得到高分辨率的结果

网络的主要结构:

1595165752929

Low-level特征 首先将输入图像下采样至固定的256x256。然后一组共用的特征提取层,一共四层,每层为步长为2的3x3卷积和激活层。如果这个层数太少缺乏表达力,如下图对比,层数太多后面得到的仿射变换系数太稀疏(决定了双边网格的z轴的bin的数量)。

1595165304189

局部特征提取有两层卷积,这两个卷积都不改变feature map的尺寸,如果没有局部特征提取层,最后的预测的变换系数会失去空间信息。

全局特征提取 的支路包含了两个步长为2的卷积层和3个全连接层,最后输出一个包含全局信息的64维的特征向量。网络的输入图在提取特征时已经Resize成256x256了,所以可以直接用全连接。局特征具有的全局信息可以作为局部特征提取的先验,如果没有全局特征去描述图像信息的高维表示,网络可能会做出错误的局部特征表示,从而出现如上图的artifact。

两个特征融合 论文的公式没看懂,但是看代码就是将来给你个特征直接相加 接一个relu再使用卷积层将维度转换为最终的96。具体的这部分卷积的尺寸如表.

双边网格

​ 前面CNN最终输出的尺寸 为16X16X96 96 = 3X4X8; 输出图像为3通道,对应这里的3,4是每个输出通道的每个像素需要四个系数,三个对应输入图像的三通道值和一个偏移。也就是输出图像的每个像素位置需要一个3x4的变换矩阵。那么8就代表像素域的 bin 的数量。而空间域的bin的数量由输入图像和16的比值决定的。

guide map 的 分辨率和原图一样,通道数为1 ,由原图通过几个卷积生成。

使用可训练的slicing layer进行上采样 这一步是要将上一步的信息转换到输入的高分辨率空间,这步操作基于双边网格里的slicing操作,通过一个单通道的引导图将A进行上采样。利用引导图g对A进行上采样,是利用A的系数进行三次线性插值,位置由g决定: \[ \bar{A}_{c}[x, y]=\sum_{i, j, k} \tau\left(s_{x} x-i\right) \tau\left(s_{y} y-j\right) \tau(d \cdot g[x, y]-k) A_{c}[i, j, k] \] 这里 \[ \tau(.)=\max (1-|\cdot|, 0) \]表示线性插值,\(s_{x}\) \(s_{y}\)表示网格的宽度和原图分辨率的长宽比。x 和 y 的位置由这两个长宽比决定其在网格中的对应位置,而我们知道网格z轴的 bin数量是8,应该是将z的8维度插值为 256bins 然后将bin合并成1 那么这里输出图像是 \(\bar{A}_{c}\) 的 z 轴在网格对应的深度由guide map决定 即\(\bar{A}_{c}[i,j,g[x,y]]\),这个guide map是网络可训练的,那么最后每个\(\bar{A}_{c}\) 像素的颜色深度也就由参与guide map决定,例如guide map上相邻灰度差异很大的像素,那么他们在原始网格也中映射的也是z轴上相距很远的两个bin,而BGU中说网格间是局部平滑,也即i索引的这两个变换矩阵差异会很大。但是这里是基于CNN的 并像BGU中那样直接对网格间的参数做平滑约束,这里就靠数据自己学习吧,最终学出来的也应该会有这个效果。 我感觉 它直接拿原图的灰度版本作为guide map 来指导插值也可以,但是这样相当于固定死了,原图差异多大的灰度,映射到网格中就是固定位置的bins虽然说也合理,但是 使用几层CNN来生成guide 就可学习更灵活了。这中以全分辨率的guide指导上采样 比直接使用 可学习的转置卷积上采样的对比。与基于转置卷积不同,这种方法在guide map的指导下可以很好的保留图像的边缘。

1595211122459

获得最终的输出

​ 这一部分和上一部分中的guide map的计算是在全分辨率下进行的。这一步就是将上一步得到的全分辨率的变换矩阵(w x h x 12)用来对原图做变换。公式如下:

\[ \mathrm{O}_{c}[x, y]=\bar{A}_{n_{\phi}+\left(n_{\phi}+1\right) c}+\sum_{c^{\prime}=0}^{n_{\phi}-1} \bar{A}_{c^{\prime}+\left(n_{\phi}+1\right) c}[x, y] \phi_{c^{\prime}}[x, y] \]

其中 \(n_{\phi}\) = 3 表示输入图像的通道数,\(\phi_{c} = I\)表示输入图像,输出的 \(\bar{A}\) 为wxhx12的变换参数 w h 代表图像原图分辨率,12 = 3x4 按照按照 [R R R b1 G G G b2 B B B b3] 的顺序排列 R R R b1意味用于计算输出图像R通道值需要用的四个参数 且 公式中的下标按照feature 的通道序号索引的。 例如输出图像的r通道的某位置的值由 r(out)(x) = [a1, a2, a3] * [r, g, b]‘(input) + instance

损失函数

训练参考图像为人工PS的参考图像,和网络生成的图像做损失即可。由此可见损失的计算是在全分辨率下完成的。

实验

缺点,这个方法对于其他任务 例如图像去雾 ,深度估计,色彩化等任务上效果较差,这是因为其有较强的假设即输出是由输入的局部仿射变换得到的。 可以通过对输入图做特征进一步的提取特征来增强其表达效果。例如一个网格里使用36个仿射变换系数作用在一个层级为3的高斯金字塔处理的输入图要比原始的bilateral效果更好,尽管速度会变慢

….

主要类容

这篇文章将 HDR中使用到的双边滤波的思想 和 Retinex 结合,来做图像增强。首先和HDR一样,将原始降采样,在低分辨率下进行 变换参数的估计。前半部分和HDR 完全一样,包括 CNN的设计 (全局和局部特征提取,guide map的设计)。只是输出的变换参数 维度为 wxhx(9 + 9x2 + 3x4) 这里 9 + 9x2 为噪声估计用到的变换参数,9是W 9x2是偏移量,相当于可变性卷积的意思;3x4是用于光照图估计的变化参数,和HDR中的方式一样。通过两个变换分别估计出了噪声图和光照图,使用式 \(\widetilde{\boldsymbol{R}}=(\boldsymbol{I}-\boldsymbol{N}) \oslash \boldsymbol{E}\) 估计最终增强之后的图像。

网络的主要结构

1595218108228

噪声图的估计

根据 变换参数对输入图像变换得到噪声估计图像,变换参数为 9 + 9 x 2 感觉相当于1X1可变性卷积。对于某个像素位置 输入为三通道 输出也为三通道,相当于需要 3x3个1x1卷积核,而 9x2 为x y两个方向上的偏移,即可变性卷积的原理。

  • 最后的噪声变换 是否为 1x1的可变形卷积?

损失函数

作者使用 LOL 数据集训练 LOL 包含了 1500 low/noemal 图像对,其中500对是真实数据 其他的为合成数据。这里我饿认为LOL提供的不算参考图吧 只是 一对儿不同曝光度的图像。但是作者直接将high作为参考图像来构建损失函数。 \[ \mathcal{L}:=\mathcal{L}_{r}(\boldsymbol{R}, \tilde{\boldsymbol{R}})+\lambda_{n} \mathcal{L}_{n}(\boldsymbol{N})+\lambda_{e} \mathcal{L}_{e}(\boldsymbol{E}, \boldsymbol{I}) \] 第一项即估计的R和参考的R的相似度,具体不仅包含了衡量两个R的相似度的L1损失还有两个梯度相似度的L1损失。第二项损失用来尽量保存图像中的边缘。第三项即常规光照平滑损失。

实现细节

​ 在训练的时候将输入图像归一化至[0,1] crop到 256x256 batch size 设置为16可变形卷积设置的K=3 Window size=15 边长缩放比例为16 32

结果

Learning to Restore Low-Light Images via Decomposition-and-Enhancement CVPR2020

思考

文章主要思想是 频率分解,是个新思路 但是没有在无参考图像上的对比实验,且对比的方法比较旧。文章也使用了VGG损失且确实会有效果。这种分解的思路可以借鉴,对参考图像做处理来指导网络学习期望的效果。

主要思想

​ 作者发现 低光照图像的噪声在不同频率的层会表现出不同的对比度,在低频层中比在高频层中更容易检测到噪声。基于此思想,提出了一个基于频率分解-增强的两阶段低光照图像增强模型。也是从粗糙到精细coarse to fine的思路。同时 还提出一个新的包含真实噪声的数据集。如下图:

1598948440726

主要内容

1598949161921

整体结构

​ 首先,与直接增强整个图像相比,增强 含有噪声的低光图像的低频层更容易。这是因为低频层的噪声更容易检测和抑制。通过分析图像低频层的全局属性,可以正确地估计图像的光照/颜色;并且图像的边缘或者角点只占图像的很低维度(?)因此,给定基础的低频信息,可以推断出相应的高频信息。

​ 第一阶段,输入图像,学习一个可以获得图像低频信息的网络 获取 增强后的低频图像 content map C(.),过滤掉了高频信息。然后使用放大函数 A(.) 用作颜色恢复和进一步增强。具体的:

\[I^{a}=\alpha A(C(I)) \cdot C(I)\]

\(I^{a}\)是放大后的低频图像,这里并非retinex的那种illumination map的增强,而是类似于一种attention \(\alpha\)也是和C用一个网络生成的。

​ 第二阶段,就是根据第一阶段的\(I^{a}\)来恢复高频细节。 第一阶段C的 监督 是 参考图像经过 指导滤波后的图像(详情见损失部分)第二阶段的 监督就是正常参考图。这一部分用了一个残差结构。

\[I^{c}=I^{a}+D\left(I^{a}\right)\]

ACE模块

​ 又总的结构图可以看出 在第一第二阶段输入的时候都经过了一个ACE模块,这个模块就是起到筛选 低频/高频 成分的功能。后面接的对应网络完成 低频/高频 图像 中的噪声去除和细节恢复。ACE结构如下:

1598951252434

ACE 对输入图像做了两个并列的 不同 空洞率的卷积 ,然后做了 生成了Ca \(C_{a}=\operatorname{sigmoid}\left(f_{d 1}\left(x_{i n}\right)-f_{d 2}\left(x_{i n}\right)\right)\) Ca 表明 像素间的相对差异,差异大的就是高频区域 反之低频。将Ca作为一个全图的权重 和 输入特征x_in点乘,来过滤高低频信息(1-Ca) 再后面的部分就是 nonlocal 模块了,作者这里进行了降采样 提高计算速度。这里在第一个图中的两个ACE是共享权重的。

CDT模块

同ACE DCT首先接入的也是 1-Ca 作为引导滤出高频区域。然后使用self attention生产vector进行channel 的缩放,就是通道注意力模块。CDT模块是为了减小输入特征和增强特征的差距 并 扩大感受野。

损失函数

​ 损失包含了以下三项。其中 C是第一个阶段的content图,GT的指导滤波输出的低频图,最终的增强图和GT图。fi是vgg网络输出的损失。

\[L_{a c c}=\lambda_{1}\left\|C-I_{f}^{g t}\right\|_{2}+\lambda_{2}\left\|I^{c}-I^{g t}\right\|_{2}\]

\(L_{v g g}=\lambda_{3}\left\|\Phi\left(I^{c}\right)-\Phi\left(I^{g t}\right)\right\|_{1}\)

实验

实现细节

​ 第一阶段中的 \(\alpha\) 初始设置为 1 。训练图像随机裁剪到 512X384。分辨率为1024x768的输入图像处理耗时0.33s 在1080显卡上。

对比实验

1598952274964

一个是 对 网络中的各个模块 ACE DCT等做了对比实验,另一个是 在自己训练用的RGB数据集上和其他发给发做了对比,再就是对 加入去噪流程的其他方法做了对比。

想解决的问题:低光照图像增强

方法:

  • 提出非监督的生成对抗网络,EnlightenGAN,训练不需要低光度/正常光度图像对。
  • 提出使用从输入本身提取的信息来规范化不成对的训练
  • 一些创新:
    • global-local判断器结构
    • self-regularized perceptual loss fusion
    • 注意力机制

Introduction

DL方法通常用成对图像作为输入,缺点

  1. 很难在实际中同时采集到同一场景的图像
  2. 合成的图像不够真实,引入了许多人为因素
  3. 对于低光照问题,没有唯一的或者说定义好的GT

解决的问题:

  • 对低光照图像进行增强,但不需要成对的训练数据。

idea:

  • 使用GAN在low和normal light之间建立unpaired mapping,但不依赖任何成对的图像
  • 没有使用cycle-consistency作为prior工作
    • (不懂这个cycle-consistency是什么)
    • ref:参考资料
    • 一些point:
      • 最早是在朱俊彦的cycleGAN提出,用于在没有配对数据的情况下实现2个domain的image-to-image翻译。基本的思想,假设从X翻译到Y得到F(x),再翻译回去G(F(x)),G(F(x))应该与X一模一样。
  • 一些创新性工作
    • 1.提出dual-discriminator平衡全局和局部低光照增强x
    • 2.提出self-regularized perceptual loss来约束输入和增强版本后的特征距离
    • 3.提出开发的输入的光照信息作为self-regularized attentional map,在每个level的深度特征上regularize无监督学习

EnlightenGAN的创新点:

  1. 第一个将unpaired训练引入低光照增强
  2. self-regularization,通过保留自特征loss和自规则注意力机制实现
  3. 增强来自不同domain的真实世界的低光照图像更加简单和灵活

Paired Datasets:Status Quo

缺点:

  • 数据量小,简单地增加或减少曝光时间会增加或减少局部的曝光。
  • 在HDR领域,一些工作首先获取不同光照条件下的图像,然后对其进行排列和融合,但他们不是为单一图像后处理而设计的

Traditional Approaches

经典方法:

  • adaptive histogram equalization(AHE),自适应直方图平衡
    • Stephen M Pizer, E Philip Amburn, John D Austin, Robert Cromartie, Ari Geselowitz, Trey Greer, Bart ter Haar Romeny, John B Zimmerman, and Karel Zuiderveld. Adaptive histogram equalization and its variations. Com- puter vision, graphics, and image processing, 39(3):355– 368, 1987.
  • Retinex
    • Edwin H Land. The retinex theory of color vision. Scientific american, 237(6):108–129, 1977
  • multi-scale Retinex model
    • Daniel J Jobson, Zia-ur Rahman, and Glenn A Woodell. A multiscale retinex for bridging the gap between color images and the human observation of scenes. IEEE Transactions on Image processing, 6(7):965–976, 1997
  • 提出针对不均匀光照用bi-log信息平衡细节与自然感的增强算法
    • Shuhang Wang, Jin Zheng, Hai-Miao Hu, and Bo Li. Nat- uralness preserved enhancement algorithm for non-uniform illumination images. IEEE Transactions on Image Process- ing, 22(9):3538–3548, 2013
  • 提出加权变分模型,估计reflectance和illumination
    • Xueyang Fu, Delu Zeng, Yue Huang, Xiao-Ping Zhang, and Xinghao Ding. A weighted variational model for simultane- ous reflectance and illumination estimation. In CVPR, pages 2782–2790, 2016
  • LIME,low-light image enhancement,先找到RGB中的最大值作为最初的光照估计,使用结构先验构建光照图
    • Xiaojie Guo, Yu Li, and Haibin Ling. Lime: Low-light im- age enhancement via illumination map estimation. IEEE Transactions on Image Processing, 26(2):982–993, 2017
  • 通过分解连续图像序列来同时处理低光照和去噪
    • Xutong Ren, Mading Li, Wen-Huang Cheng, and Jiaying Liu. Joint enhancement and denoising method via sequen-tial decomposition. In Circuits and Systems (ISCAS), 2018 IEEE International Symposium on, pages 1–5. IEEE, 2018
  • 提出更加robust的Retinex模型,与传统的Retinex模型对比,考虑了noise map,通过强噪声提高性能
    • Mading Li, Jiaying Liu, Wenhan Yang, Xiaoyan Sun, and Zongming Guo. Structure-revealing low-light image en- hancement via robust retinex model. IEEE Transactions on Image Processing, 27(6):2828–2841, 2018.

Deep Learning Approaches

目前大部分基于DL的方法都依赖于paired image,且图像大部分是从正常图像中人工合成的。

  • LL-Net,堆叠的自动编码器,在patch level同时学习去噪和低光照增强。
    • Kin Gwn Lore, Adedotun Akintayo, and Soumik Sarkar. Ll- net: A deep autoencoder approach to natural low-light image enhancement. Pattern Recognition, 61:650–662, 2017.
  • Retinex-Net,设计了end-to-end框架,结合了Retinex理论
    • Chen Wei, Wenjing Wang, Wenhan Yang, and Jiaying Liu. Deep retinex decomposition for low-light enhancement. arXiv preprint arXiv:1808.04560, 2018.
  • HDR-Net ,将深度网络与双边网格处理(bilateral gird processing)、局部颜色仿射变换(local affine color transforms)
    • Micha¨el Gharbi, Jiawen Chen, Jonathan T Barron, SamuelW Hasinoff, and Fr´edo Durand. Deep bilateral learning for real- time image enhancement. ACM Transactions on Graphics (TOG), 36(4):118, 2017
  • 以及一些针对HDR领域的多帧低光照增强方法
    • Nima Khademi Kalantari and Ravi Ramamoorthi. Deep high dynamic range imaging of dynamic scenes. ACM Trans. Graph, 36(4):144, 2017.
    • ShangzheWu, Jiarui Xu, Yu-Wing Tai, and Chi-Keung Tang. Deep high dynamic range imaging with large foreground motions. In Proceedings of the European Conference on Computer Vision (ECCV), pages 117–132, 2018.
    • Jianrui Cai, Shuhang Gu, and Lei Zhang. Learning a deep single image contrast enhancer from multi-exposure images. IEEE Transactions on Image Processing, 27(4):2049–2062, 2018.
  • learning to see in the dark,直接在raw数据上,更注重避开放大的artifacts

Adversarial Learning

使用GAN的方法同样使用的是paired训练数据。

一些人提出了无监督的GAN方法,使用对抗学习学习inter-domain。

提出两个方法,通过使用cycle-consistent loss+uppaired data,对两个不同领域之间进行翻译

  • Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A Efros. Unpaired image-to-image translation using cycle- consistent adversarial networks. In ICCV, pages 2223–2232, 2017.
  • Ming-Yu Liu, Thomas Breuel, and Jan Kautz. Unsupervised image-to-image translation networks. In Advances in Neural Information Processing Systems, pages 700–708, 2017.

一些最新的工作基于上面的方法论应用在其他low level task(比如,去雾,去噪,SR,手机照片增强等)上:

  • Xitong Yang, Zheng Xu, and Jiebo Luo. Towards percep tual image dehazing by physics-based disentanglement and adversarial training. In The Thirty-Second AAAI Conference on Artificial Intelligence (AAAI-18), 2018.
  • Yuan Yuan, Siyuan Liu, Jiawei Zhang, Yongbing Zhang, Chao Dong, and Liang Lin. Unsupervised image super- resolution using cycle-in-cycle generative adversarial net- works. CVPR Workshops, 30:32, 2018.
  • Yu-Sheng Chen, Yu-Ching Wang, Man-Hsin Kao, and Yung- Yu Chuang. Deep photo enhancer: Unpaired learning for image enhancement from photographs with gans. In Pro- ceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 6306–6314, 2018.
  • Xin Jin, Zhibo Chen, Jianxin Lin, Zhikai Chen, and Wei Zhou. Unsupervised single image deraining with self- supervised constraints. arXiv preprint arXiv:1811.08575, 2018.

EnlightenGAN采用unpaired训练,但是一个轻量级的one-pathGAN结构(即,没有cycle-consistency),这样的好处是,训练稳定且简单。

Method

网络结构:

img

  • 采用一个attention-guided U-Net作为生成器
  • 用对偶的判断器判断全局和局部信息(即,一个global和一个local判断器)
  • 使用一个自特征保留loss来引导训练,以及保留纹理和结构

(1)Global-Local Discriminators

用对抗loss来最小化真实和输出的正常光线的分布之间的距离。

image-level的判断器经常在空间变化的光照图像不work,在一些局部区域需要增强的部分和其他区域不太一样(比如,全局大部分是暗的,一个小部分是亮的,这种情况全局生成器可能就不能满足这个需求)。

解决方法:

作者设计了一个global-local判断器结构,都是用PatchGAN来判断真假。

  • local判断器:

    • 在输出和正常光线图像随机裁剪局部patch,判断器学习判断这些patch的真假。
  • global判断器:

    • 使用了相对判断器结构
      • relativistic discriminator structure:
        • Alexia Jolicoeur-Martineau. The relativistic discriminator: a key element missing from standard gan. arXiv preprint arXiv:1807.00734, 2018
    • 在标准的相对判断器上将sigmoid函数改为最小二乘法loss

    标准相对判断器公式: \[ D_{Ra}(x_{r},x_{f})=σ(C(x_{r})-E_{x_{f}∼P_{fake}}[C(x_{f})]) \ D_{Ra}(x_{f},x_{r})=σ(C(x_{f})-E_{x_{f}∼P_{real}}[C(x_{r})]) \] 作者进行修改后的loss:

    Global: \[ L_{D}^{Global}=E_{X_{r}∼P_{real}}[(D_{Ra}(x_{r},x_{f})-1)^2]+E_{x_{f}∼P_{fake}}[D_{Ra}(x_f, x_r)^2] \ L_{G}^{Global}=E_{X_{f}∼P_{fake}}[(D_{Ra}(x_{f},x_{r})-1)^2]+E_{x_{r}∼P_{real}}[D_{Ra}(x_r, x_f)^2] \] Local: \[ L_{D}^{Local}=E_{x_{r}∼P_{real-patches}}[(D(x_{r})-1)^2]+E_{x_{f}∼P_{fake-patches}}[(D(x_{f})-0)^2] \ L_{G}^{Local}=E_{x_{r}∼P_{fake-patches}[(D(x_{f})-1)^2]} \]

(2)Self Feature Preserving Loss

perceptual loss常用来限制提取的特征与GT尽可能接近,perceptual loss是利用预训练的VGG去模拟图像之间的特征空间距离。

paper:Justin Johnson, Alexandre Alahi, and Li Fei-Fei. Perceptual losses for real-time style transfer and super-resolution. In European Conference on Computer Vision, pages 694–711. Springer, 2016.

作者提出限制输入和输出的VGG-frature距离。

作者根据经验观察到当调整输入像素的密度范围,VGG的分类结果不是特别灵敏。(也被论文证实了)

设计了自正则化loss(self-regularzation loss),以保留图像内容特征。

L_SFP的定义:

img

对于裁剪的局部块也进行规则,用L_SFP_Local,此外,还在VGG特征图之后增加了instance normalization,目的是稳定训练。

(3)U-Net Generator Guided with Self-Regularized Attention

  • U-Net作为backbone
  • 将输入的RGB正则化到[0,1],用1-I作为self-regularized attention map
  • 然后resize attention map来适配每个feature map,然后与所有中间feature map、输出进行相乘
  • 作者强调attention map也是self-regularization的一部分

attention-guided U-Net generator结构:

  • 8个conv块 ,每个conv包括LeakyRelU+BN+2个3x3 conv
  • 在上采样阶段,将标准deconvolutional layer替换为双线上采样层(bilinear upsampling)+一个卷积层,目的是减少checkerboard artifacts
    • (不懂bilinear upsampling,checkerboard artifacts)

GAN相关论文:

1、Jun-Yan Zhu, Taesung Park, Phillip Isola, and Alexei A Efros. Unpaired image-to-image translation using cycle- consistent adversarial networks. In ICCV, pages 2223–2232, 2017.

2、Ming-Yu Liu, Thomas Breuel, and Jan Kautz. Unsupervised image-to-image translation networks. In Advances in Neural Information Processing Systems, pages 700–708, 2017

3、Alexia Jolicoeur-Martineau. The relativistic discriminator: a key element missing from standard gan. arXiv preprint arXiv:1807.00734, 2018.

其他

  • HDR(high-dynamic-ranging)
    • 高动态范围成像,用来实现比普通数字图像技术更大曝光动态范围(即,更大的明暗差别)的一组技术
    • 目的:正确地表示真实世界中从太阳光直射到最暗的阴影这样大的范围亮度
  • ablation analysis
    • 消融实验:分析不同参数或结构对实验结果产生的影响从而得到不同成分的作用

From Fidelity to Perceptual Quality: A Semi-Supervised Approach for Low-Light Image Enhancement CVPR2020

DRBN

思考

值得注意的地方:

  1. 设计了 一个 递归的网络结构,结构比较有新意,第一阶段训练始终将特征分为三个分辨率频带,并且不同频带间使用残差学习的结构。
  2. 将对抗损失引入,用来提高 第一阶段 端到端学习生成图像饱和度 亮度等依然不足存在的问题。而这个对抗损失的训练又可以使用其他不配对的数据。

疑问:

  1. 整个结构还是在学习低光照图像到 正常光照图像间的 端到端的映射,而且 以这个方式在LOL数据集上训练 最终在其他无参考图像数据上的泛化能力如何 还未知,文章也未做对比试验。所以感觉泛化能力不行,估计不如使用retinex的网络。
  2. LOL数据集的成对图像本来就不适合这种端到端的学习,因为它的正常光照图像其实很多效果都不是很好(亮度不够,可能只是没有噪声),因为这个数据集的主要目低时提供不同曝光度的图像对 用于光照估计分解。所以作者不得不在第二阶段加入 一个类似对比度增强的变换网络。
  3. 有待在其他数据集上验证效果。

主要贡献

首先提出了一个深度(D)递归(Recursive)带(Band)网络(Network) 使用成对的 正常/低光照图像 去学习增强的正常光照图像的线性递归带表示。然后使用另一个网络来学习线性变换 提高上一阶段输出图像的视觉效果,此阶段基于 未配对的 感知质量驱动的对抗学习损失训练。

  • 这是首次 提出 适用于低光照图像增强任务的 半监督学习框架,设计了 深度递归带的表示形式,来连接全监督和无监督部分 以整合他们的优点。(什么是无监督 什么是半监督?)
  • 提出的框架经过精心设计,可以提取一系列粗到细的频带表示。 通过以递归的方式进行端到端训练,能够消除噪声和校正细节,这些频带表示的估计是相互受益的
  • 在质量感知的对抗性学习的指导下,深层表示被重新变换。基于平均意见得分(MOS)在感知上选择鉴别器的“真实图像”。 低光图像增强任务中的第一个试验。

主要内容

动机

Recursive Band Learning paired 成对的图像数据 可以对图像细节增强提供强大的约束。所以第一阶段,基于 成对的训练数据的约束,使用 深度递归带 (这里的带 应该代表频带,表示不同分辨率的特征图/图象) 网络 来恢复重建图像的细节信号。这一阶段不仅从输入图像 y 中 生成了最终增强图像 \(\hat{x}=\sum_{i=1}^{n} \hat{x}_{s_{i}}^{T}\) ,还生成了 一系列分辨率的特征带 \[\left\{\Delta \hat{x}_{s_{1}}^{T}, \Delta \hat{x}_{s_{2}}^{T}, \ldots, \Delta \hat{x}_{s_{n}}^{T}\right\}\] 通过对成对的低光/正常光数据进行完全监督来学习 \(\Delta \hat{x}_{s_{i}}^{T}\)

连接递归带的特征和对抗学习。但是,第一阶段的首要目的是尽可能恢复信号细节,自然无法获得良好的视觉质量。因此这一阶段对第一阶段学习的 信号带进行重建,来获得更符合人类视觉效果的更好的结果。如下式:

\[\hat{x}=\sum_{i=1}^{n} w_{i}\left(y,\left\{\Delta \hat{x}_{s_{1}}^{T}, \Delta \hat{x}_{s_{2}}^{T}, \ldots, \Delta \hat{x}_{s_{n}}^{T}\right\}\right) \Delta \hat{x}_{s_{i}}^{T}(y)\]

上式可以看出 ,首先这阶段的网络输入是 上一阶段生成的几乎无噪声的,细节很好的图像,输出获得具有更好光照更好对比图的图像。网络学习的是变换参数。

网络结构

1598796721130

Recursive Band Learning

这一阶段使用一系列 U-NET类似的网络结构(BLN)来完成迭代。图中的分辨率分别为 1/4, 1/2,1 。首先输入图像y经过一个BLN_F 生成 。f 为每个网络生成的中间特征,有不同分辨率的 和上一轮生成的 f 求和 生成当前层的 x 输出,其次也会直接输入下一层 和下一层的 f 求和。这样以来 每次递归的其实是 学习的 上一轮 生成的 f 的残差。所以说由粗到精细特征。

\[\begin{aligned} \left[f_{s_{1}}^{1}, f_{s_{2}}^{1}, f_{s_{3}}^{1}\right] &=F_{\mathrm{BLN}_{-}}^{1}(y) \\ \hat{x}_{s_{1}}^{1} &=F_{\mathrm{R}_{-s} 1}^{1}\left(f_{s_{1}}^{1}\right) \\ \hat{x}_{s_{2}}^{1} &=F_{\mathrm{R}_{-s} 2}^{1}\left(f_{s_{2}}^{1}\right)+F_{\mathrm{U}}\left(\hat{x}_{s_{1}}^{1}\right) \\ \hat{x}_{s_{3}}^{1} &=F_{\mathrm{R}_{s_{3}}}^{1}\left(f_{s_{3}}^{1}\right)+F_{\mathrm{U}}\left(\hat{x}_{s_{2}}^{1}\right) \end{aligned}\]

接着是中间层的 不断 递归迭代。输入为 y 和上一层增强的输出。中间层的递归网络学习的都是前一层的 残差

\[\begin{aligned} \left[\Delta f_{s_{1}}^{t}, \Delta f_{s_{2}}^{t}, \Delta f_{s_{3}}^{t}\right] &=F_{\mathrm{BLN}_{-} \mathrm{F}}^{t}\left(y, \hat{x}_{s_{3}}^{t-1}\right) \\ f_{s_{i}}^{t} &=\Delta f_{s_{i}}^{t}+f_{s_{i}}^{t-1}, i=1,2,3 \\ \hat{x}_{s_{1}}^{t} &=F_{\mathrm{R}_{s} s_{1}}^{t}\left(f_{s_{1}}^{t}\right) \\ \hat{x}_{s_{2}}^{t} &=F_{\mathrm{R}_{s} s_{2}}^{t}\left(f_{s_{2}}^{t}\right)+F_{\mathrm{U}}\left(\hat{x}_{s_{1}}^{t}\right) \\ \hat{x}_{s_{3}}^{t} &=F_{\mathrm{R}_{s} s_{3}}^{t}\left(f_{s_{3}}^{t}\right)+F_{\mathrm{U}}\left(\hat{x}_{s_{2}}^{t}\right) \end{aligned}\]

最后是 损失函数。可以看出,它是 分别计算在分辨率 s=1 /2 1/4下的SSIM损失 FD为下采样。

\[\begin{aligned} L_{\mathrm{Rect}}=-&\left(\phi\left(\hat{x}_{s_{3}}^{T}, x\right)+\lambda_{1} \phi\left(\hat{x}_{s_{2}}^{T}, F_{D}\left(x, s_{2}\right)\right)\right.\\ &\left.+\lambda_{2} \phi\left(\hat{x}_{s_{1}}^{T}, F_{D}\left(x, s_{1}\right)\right)\right) \end{aligned}\]

上述的设计有以下好处:

  • 上一次迭代生成的高频带将会对这次迭代的低频特征的生成产生影响,因为这次迭代的输入是上一次生成的的高频带特征 S3 和 y的组合。而最终的损失也是高低频带分别计算,所以高低频带之间的连接是相互影响的,双向流动的。
  • 递归学习增强了建模能力。 后面的重复仅需要恢复残差信号,并以先前重复的估计为指导。 因此,可以获得准确的估计,只需将更多的注意力放在细节的恢复上。

Band Recomposition

借助配对数据的约束,可以很好地学习从弱光图像到正常光图像的波段恢复过程,同时可以很好地恢复细节并抑制噪声。 由于信号保真度始终无法很好地与人类的视觉感知保持一致,尤其是对于图像的某些全局属性(例如光线,颜色分布)。因此这一部分的目的就是 对上一阶段的频带信号重建,得到视觉效果更好的图像。

首先 可以看出 左半部分还是使用一个UNet结构的网络来学习变换的参数,使用生成的参数对 原始频带型号线性变换。得到新的生成图像,使用 对抗损失 和 SSIM/VGG 损失共同优化网络。而对抗损失 是使用 另一个数据集学习的用于度量图像频分的一个网络 SSIM/VGG损失都是 需要输入的参考图像作为约束的损失。因此这一部分的UNet训练也是需要LOL数据集的,只是对抗损失网络是使用其他不成对的数据训练的。 ​ 损失函数:

\[\begin{aligned} \left\{w_{1}, w_{2}, w_{3}\right\} &=F_{\mathrm{RC}}\left(\left\{\Delta \hat{x}_{s_{1}}^{T}, \Delta \hat{x}_{s_{2}}^{T}, \Delta \hat{x}_{s_{3}}^{T}\right\}\right) \\ \hat{x}_{3}^{F} &=\sum_{i=1}^{3} w_{i} \Delta \hat{x}_{s_{i}}^{T} \\ \Delta \hat{x}_{s_{i}}^{T} &=\hat{x}_{s_{i}}^{T}-F_{\mathrm{U}}\left(\hat{x}_{s_{i-1}}^{T}\right), i=2,3 \\ \Delta \hat{x}_{s_{1}}^{T} &=\hat{x}_{s_{1}}^{T} \end{aligned}\]

\[\begin{aligned} L_{\text {Detail }} &=-\phi\left(\hat{x}_{3}^{F}-x\right) \\ L_{\text {Percept }} &=\left\|F_{\mathrm{P}}\left(\hat{x}_{3}^{F}\right)-F_{\mathrm{P}}(x)\right\|_{2}^{2} \\ L_{\text {Quality }} &=-\log D\left(\hat{x}_{3}^{F}\right) \end{aligned}\]

其中 D 是 估计 生成图像符合人眼视觉效果的概率,这个D是在

high-quality images selected from aesthetic visual analysis dataset

这个数据集上训练的。Fp是VGG损失。

实验

训练细节

首先使用 LOL 上成对的数据 先训练第一阶段的网络,然后固定第一阶段 的权重 再训练第二阶段。具体训练方法如下:

1598841253259

实验结果

1598841560362