文章目录
一、前言
Paper:Learning to Enhance Low-Light Image via Zero-Reference Deep Curve Estimation
Code:https://github.com/Li-Chongyi/Zero-DCE_extension
论文贡献:
- 首次提出不需要成对训练数据的低光增强网络,避免过拟合风险,在不同光照条件下泛化良好;
- 设计了一种逐像素高阶曲线,通过多次反复迭代可以有效地在宽动态范围中执行亮度映射;
- 展现了在缺少参考图像的情况下通过无参考损失函数训练图像增强网络的潜力;
- 所提出的Zero-DCE网络可以在减小计算量的同时保持增强能力,提供了多种选择以平衡增强能力和计算开销。
二、算法理解
2.1 低光增强曲线
受PS中亮度调整曲线的启发,作者尝试设计一种自动将低光图像映射到增强版本的曲线,并且自适应曲线的参数仅与输入的图像有关。既然是拟合曲线,自然而然就能想到使用拟合能力强大的神经网络来解决。作者认为这种曲线应该具备以下特性:
- 增强图像的每个像素值应落在[0,1]的归一化范围,以避免由溢出截断所导致的信息丢失;
- 曲线应该是单调的,以保持相邻像素的差异;
- 形式尽可能简单,在梯度反向传播的过程中可微;
基于以上三个特性,作者设计了如下的二次曲线:
其中 x x x表示像素坐标, α ∈ [ − 1 , 1 ] \alpha \in[-1,1] α∈[−1,1]是可学习参数,同时控制曲线的级数和曝光水平。每个输入像素需要归一化到[0,1],然后分别将曲线应用于RGB三个通道而不是只应用于亮度通道,这样做能保留固有的颜色并且能减小过饱和的风险。
对(1)式进行多次迭代能获取式(2)所示的高阶曲线,能够应对更具挑战性的低光场景, n n n为迭代次数,文中设为8.
如果单张图像中所有像素都采用一条曲线,相当于全局映射,很容易造成局部过曝或欠曝。如果输入图像的每个像素都对应一条高阶曲线就能解决该问题,并且操作起来也比较简单,如式(3)所示,将系数