• 【论文笔记】—低光图像增强—Zero-reference—ZeroDCE—2020-CVPR


    原文链接:Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement_与光i的博客-CSDN博客

    【论文介绍】

    zero reference (无监督,需要训练,但不需要 paired/unpaired data)

    1. 【题目】:Zero-Reference Deep Curve Estimation for Low-Light Image Enhancement
    2. 【DOI】:10.1109/CVPR42600.2020.00185
    3. 【时间】:2020-01-19上传于arXiv
    4. 【会议】:2020-CVPR
    5. 【作者】:Chunle Guo(天津大学), Chongyi Li(天津大学), Jichang Guo, Chen Change Loy, Junhui Hou, Sam Kwong, Runmin Cong
    6. 【paper】:https://arxiv.org/abs/2001.06826
    7. 【project】:https://li-chongyi.github.io/Proj_Zero-DCE.html
    8. 【code_Pytorch】:https://github.com/Li-Chongyi/Zero-DCE
    9. 【code_TensorFlow】:https://github.com/tuvovan/Zero_DCE_TF

    【提出问题】

    低光增强数据驱动的方法主要有CNN-based 和 GAN-based。

    1. CNN-based:绝大多数使用配对的数据(低光、正常光图像)进行训练,通常通过改变相机的设置或用图像修饰来合成。这种数据集通常是通过人工收集或人工合成来得到的,用这种数据集训练出来的模型泛化能力不好。
    2. GAN-based:无监督的GAN网络可以避免使用配对数据,但这些数据也需要通过精心挑选。

    【解决方案】

    该文章提出了一种 light-weight deep network 的方法用于解决 Low-Light 图像增强问题。它将这个任务转换为了一个 image-specific 曲线估计问题(图像作为输入,曲线作为输出),这类曲线对在输入的动态范围内进行像素级调整,从而获得增强图像。作者通过设置一系列 non-reference 的损失函数(可以间接反映增强质量),使得网络在没有任何参考图像的情况下能够进行 end-to-end 训练。

    【创新点】

    1. 探索了一种全新的学习策略(zero reference),消除了对 paired/unpaired data 的需求;
    2. 作者从Curve Adjustment收到启发,用CNN去学习Curve而不是直接学习输出图像,不仅是一种新的思路,而且还能使得网络可以十分轻量。
    3. 设置 non-reference 损失函数来对输出图像进行间接的评估。
    4. 提出的方法是 high efficient 和 cost efficient 的。
      这归功于:zero reference learning framework + lightweight network structure + effective non-reference loss functions。

    【网络结构】

    学习一组 best-fitting 的增强曲线,框架迭代应用Curve,对输入图像的RGB通道中所有像素进行映射,从而获得最后的增强图像。

    Light-Enhancement Curve 光增强曲线:

    作者尝试设计一类能够将low-light图像自动映射到增强图像的曲线,曲线参数是self-adaptive的,并仅取决于输入图像。设计这样的曲线有三个要求:

    1. 增强图像的像素值归一化为[0,1],这避免了由于overflow truncation而导致的信息丢失;
    2. 设计的曲线应该是单调的,从而保留相邻像素间的差异(对比度);
    3. 曲线应该尽可能地简单,使得其在梯度反向传播过程中是可导的。

    为了达到上述的三个要求,作者设计了一个二次曲线,最初简单版本如等式1:

    其中,x为像素坐标,LE(I(x); α)为输入图像I(x)的增强结果,α∈[-1,1]为可训练的曲线参数(修改曲线的大小并控制曝光度)。每个像素都归一化为[0,1],并且所有操作都是pixel-wise。使用时,在输入的RGB通道分别应用LE-Curve,这可以更好地保持固有颜色以及避免过拟合。

    在不同的α参数设置下,图像如上图2(b)所示,可以看到设计的曲线可以很好地满足上述的三个要求。此外,LE-Curve还能增加/减少输入图像的动态范围,这样不仅可以增强low-light区域,还可以避免过度曝光。

    Higher-Order Curve 高阶曲线:

    将“迭代优化”的思路引入到上式(1)定义的 LE-Curve,这就是Higher-Order LE-Curve:

    n代表着迭代的次数,作者发现n=8时表现就已经足够好了。当n为1时,式(2)就退化为了(1)。上图2(c) 中提供了high-order Curve的示例,可以看到,相比于图2(b)中的图像,其具有更强大的调节能力(更大的曲率)。

    Pixel-Wise Curve:

    等式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)所示,明亮区域保留,黑暗区域增强。

    DCE-Net:

    为了学习到输入图像与上述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用于评估增强图像的质量。

    Spatial Consistency Loss:

    Lspa 能够维持输入图像与其增强版本之间的邻域差异(对比度),从而促进增强后图像仍能保持空间一致性。

    其中,K为局部区域的数量,Ω(i)是以区域i为中心的四个相邻区域(top, down, left, right),Y和I分别为增强图像和输入图像的局部区域平均强度值。这个局部区域的Size经验性地设置为4x4,如果为其他Size,loss将会变得稳定下来。

    Exposure Control Loss:

    为了控制under-/over-曝光的区域,设计了Lexp 来控制曝光程度,其可以衡量局部区域的平均强度与well-exposedness Level E之间的差距。作者遵循现有作法,将E设为RGB颜色空间中的gray leavel,本文实验中设为0.6(并且作者提到E在[0.4,0.7]之间基本无性能差异)。

    其中,M为不重叠的局部区域数量,区域Size为16x16,Y为增强图像中局部区域的平均像素强度值。

    Color Constancy Loss:

    根据Gray-World颜色恒等假设,设计了Lcol 用于纠正增强图像中的潜在色偏,同时也建立了三个调整通道之间的关系。

    其中,Jp 代表增强图像通道p的平均强度,(p, q)代表一对通道。

    Illumination Smoothness Loss:

    为了保持相邻像素间的单调关系,在每个curve parameter map A上增加了平滑度损失。

    其中,N为迭代次数,▽x,▽y 分别代表水平和垂直方向的梯度操作。

    Total Loss:

    其中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 是无监督的方法)

  • 相关阅读:
    刷题记录:牛客NC13230合并回文子串
    LVS+Keepalived群集
    2022谷粒商城学习笔记(九)分组关联属性相关功能
    电力电子的一些知识
    flink系列(二) flink简介及API,DataFlows
    带你用两万字了解Thymeleaf
    SpringAOP的原理及仿写
    python——json
    两万字!多线程硬核50问!
    数组的内置功能
  • 原文地址:https://blog.csdn.net/qq_39751352/article/details/126463224