原文链接:Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement_与光i的博客-CSDN博客
zero reference (无监督,需要训练,但不需要 paired/unpaired data)
- 【题目】:Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement
-
- 【DOI】:10.1109/CVPR42600.2020.00185
-
- 【时间】:2020-01-19上传于arXiv
- 【会议】:2020-CVPR
- 【作者】:Chunle Guo(天津大学), Chongyi Li(天津大学), Jichang Guo, Chen Change Loy, Junhui Hou, Sam Kwong, Runmin Cong
-
- 【paper】:https://arxiv.org/abs/2001.06826
- 【project】:https://li-chongyi.github.io/Proj_Zero-DCE.html
- 【code_Pytorch】:https://github.com/Li-Chongyi/Zero-DCE
- 【code_TensorFlow】:https://github.com/tuvovan/Zero_DCE_TF
低光增强数据驱动的方法主要有:CNN-based 和 GAN-based。
该文章提出了一种 light-weight deep network 的方法用于解决 Low-Light 图像增强问题。它将这个任务转换为了一个 image-specific 曲线估计问题(图像作为输入,曲线作为输出),这类曲线对在输入的动态范围内进行像素级调整,从而获得增强图像。作者通过设置一系列 non-reference 的损失函数(可以间接反映增强质量),使得网络在没有任何参考图像的情况下能够进行 end-to-end 训练。
学习一组 best-fitting 的增强曲线,框架迭代应用Curve,对输入图像的RGB通道中所有像素进行映射,从而获得最后的增强图像。
作者尝试设计一类能够将low-light图像自动映射到增强图像的曲线,曲线参数是self-adaptive的,并仅取决于输入图像。设计这样的曲线有三个要求:
为了达到上述的三个要求,作者设计了一个二次曲线,最初简单版本如等式1:
其中,x为像素坐标,LE(I(x); α)为输入图像I(x)的增强结果,α∈[-1,1]为可训练的曲线参数(修改曲线的大小并控制曝光度)。每个像素都归一化为[0,1],并且所有操作都是pixel-wise。使用时,在输入的RGB通道分别应用LE-Curve,这可以更好地保持固有颜色以及避免过拟合。
在不同的α参数设置下,图像如上图2(b)所示,可以看到设计的曲线可以很好地满足上述的三个要求。此外,LE-Curve还能增加/减少输入图像的动态范围,这样不仅可以增强low-light区域,还可以避免过度曝光。
将“迭代优化”的思路引入到上式(1)定义的 LE-Curve,这就是Higher-Order LE-Curve:
n代表着迭代的次数,作者发现n=8时表现就已经足够好了。当n为1时,式(2)就退化为了(1)。上图2(c) 中提供了high-order Curve的示例,可以看到,相比于图2(b)中的图像,其具有更强大的调节能力(更大的曲率)。
等式1和2提到的高阶曲线可以在更宽的动态范围内调整图像,但由于α应用于所有的像素,所以仍为全局调整,( αn 对于不同位置、不同亮度的像素点来说都是一样的)。这种全局匹配会导致over-/under- enhance局部区域,因此要将global adjustment细化为local adjustment,作者重新定义α为一个pixel-wise参数(即.输入图像的每个像素都有其对应的曲线):
其中,Αn为 parameter map(与输入图像维度一致),作者假设局部区域内的像素都具有相同的强度(也具有相同的调整曲线,α一致),因此输出结果中相邻像素仍保持单调关系,所以pixel-wise的高阶曲线(式3)也满足设计的3个要求。
图3为三个通道的估计曲线参数图的示例,可以看到不同通道的best-fitting parameter maps具有相似的调整趋势,但值不同,说其可以代表low-light图像三通道之间的相关性和差异性。曲线的 parameter map 能够准确地表示不同区域的亮度情况(例如墙上的两个亮点),因此可以直接通过pixel-wise curve mapping进行图像增强,如图3(e)所示,明亮区域保留,黑暗区域增强。
为了学习到输入图像与上述best-fitting curve parameter map之间的映射关系,作者使用了Deep Curve Estimation Network (DCE-Net),输入为low-light图像,输出为一组用于高阶曲线的pixel-wise curve parameter maps。论文构建的CNN由7个具有对称结构的卷积层组成(类似于U-Net),前6层的卷积核为(3x3x32,stride=1)然后接一个ReLU层,抛弃了down-sampling和bn层(作者认为这会破坏领域像素间的关系),最后一层卷积通道为24(用于8个迭代轮次的parameter maps),接一个Tanh激活函数。
整个网络的参数量为79,416,Flops为5.21G(input 为256x256x3)。
为了使得模型的训练过程是Zero-reference的,作者提出了一系列non-reference loss用于评估增强图像的质量。
Lspa 能够维持输入图像与其增强版本之间的邻域差异(对比度),从而促进增强后图像仍能保持空间一致性。
其中,K为局部区域的数量,Ω(i)是以区域i为中心的四个相邻区域(top, down, left, right),Y和I分别为增强图像和输入图像的局部区域平均强度值。这个局部区域的Size经验性地设置为4x4,如果为其他Size,loss将会变得稳定下来。
为了控制under-/over-曝光的区域,设计了Lexp 来控制曝光程度,其可以衡量局部区域的平均强度与well-exposedness Level E之间的差距。作者遵循现有作法,将E设为RGB颜色空间中的gray leavel,本文实验中设为0.6(并且作者提到E在[0.4,0.7]之间基本无性能差异)。
其中,M为不重叠的局部区域数量,区域Size为16x16,Y为增强图像中局部区域的平均像素强度值。
根据Gray-World颜色恒等假设,设计了Lcol 用于纠正增强图像中的潜在色偏,同时也建立了三个调整通道之间的关系。
其中,Jp 代表增强图像通道p的平均强度,(p, q)代表一对通道。
为了保持相邻像素间的单调关系,在每个curve parameter map A上增加了平滑度损失。
其中,N为迭代次数,▽x,▽y 分别代表水平和垂直方向的梯度操作。
其中Wcol,WtvA 为Loss的权重(源码中Exposure control loss前也有权重)。
SICE、NPE、 LIME、 MEF、 DICM、 VV
为了充分发挥 Zero-DCE 的宽动态范围调整能力,训练集合并了 low-light 和 over-exposed 图像(Part 1 of SICE数据集,3022张不同曝光程度的图像,其中2422张图片用于训练),图像尺寸为512x512。
从图4可以看出,移除Lspa 会导致对比度降低(例如云的区域);移除Lexp 会导致低亮度区域曝光不足;移除Lcol 会出现严重的色偏现象;移除LtvA 会降低邻域间的相关性,从而导致明显的artifacts。
在多个数据集(NPE LIME MEF DICM VV以及SICE的Part2)上与目前SOAT的方法进行了对比。(其中 f 是无监督的方法)