一、名词解释
以下名词按照在论文中出现的先后顺序列出,如果不是,当我没说:
CNN:Convolutional Neural Networks 卷积神经网络。An algorithm based on blocks.
ill-posed problem:不适定问题。问题的解存在、唯一并且稳定则称该问题为适定问题。而不适定问题不满足上述判据中的一条或几条。
ground truth:真实的有效值,用作监督学习的验证
end-to-end:端到端(分别指输入端和输出端),给定输入后,系统直接给出输出,可以理解为黑盒模型?
image dahazing :图像去雾
Retinex theory :彩色图像可以被分解成为反射图和光照图
SSR:Single-scale Retinex(单尺度Retinex)SSR、MSR、MSRCR描述
MSR:Multi-scale Retinex(多尺度Retinex)
MSRCR:Multi-scale Retinex with color Restoration
loss 函数:损失函数,估量模型的预测值f(x)与真实值Y的不一致程度,损失越小,模型的鲁棒性越好。
activation 函数: 激活函数(神经元的输入输出函数),实现神经元的输入和输出之间非线性化(因为线性模型的表达能力不够,所以需要引入非线性因素)。
sigmoid 函数 :属于激活函数,将一个实值输入压缩至[0,1]的范围
TV:Total variation minimization。一种降低图像梯度的方法
二、项目背景(在此之前的方法有哪些欠缺)
下面主要总结在此之前提出的方法有哪些不足之处,也就是阐明本篇论文为什么提出新方法:
- 由于模型自身能力的限制,分解出的反射图、光照图不够理想
- 进行图像分解时,对于不同的场景难以设计出有效的constraints
- 对光照图的操作仍然需要人力操控
- 如果没有精细的parameter tuning,其他方法发挥不出很好的效果
- 忽略了低光照图像的实质
三、主要成果
- 提出了基于Retinex model的深度图像分解方法(a deep Retinex decomposition method)。经端到端的测试后,证实在不同光照条件下效果不错。
- 针对图像分解,提出了structure-aware total variation constraint约束。和LIME方法不同的是,LIME采用光照图设权重,本文提出的方法采用更能表达图像本质的反射图设权重。
- 构建了成对的低光照/正常光照图像集LOL dataset,并公开。
四、模型描述
Fig.1 已经指出,该模型分为三步:
1. 将输入的图像分解成反射图和光照图:S => R、I
2. 增强光照图的亮度,给反射图去噪:R => R’, I => I’
3. 图像重构,将调整过的反射图和光照图合成: R’、I’ => S’
4.1 图像分解
对于不同环境(光照条件)下的图像分解,传统方法通常需要手工设定适合的constraints,为了避免这种方式,本文采用了数据驱动(图像驱动)的方法。这种方法中,constraints表达为“反射图一致性约束”、“光照图平滑性约束”,也就是说“低光照和普通光照图像共享反射图、光照图要保证平滑性”。
每次训练过程中,输入一对成对的低光照/正常光照图像,不需要提供ground truth,而是将“反射图一致性约束”和“光照图平滑性约束”纳入损失函数。除此之外,重构图像的损失也被纳入损失函数,所以损失函数共包括三部分:reconstruction loss、invariable reflectance loss 和 illumination smoothness loss,表达如下:
1.reconstruction loss ![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/70fa83c2547b4978e185ae279a16ef87.png#pic_center)
对此公式的理解:首先,将以下四部分的绝对值按权重累加,得到一对训练图像的重建损失:
①低光照图的反射图和低光照图的光照图的合成图像与低光照的原始图像之差
②低光照图的反射图和正常光照图的光照图的合成图像与正常光照的原始图像之差
③正常光照图的反射图和低光照图的光照图的合成图像与低光照的原始图像之差
④正常光照图的反射图和正常光照图的光照图的合成图像与正常光照的原始图像之差
最后,1-范式用来求全部训练图像的重建损失。
2.invariable reflectance loss
对此公式的理解:首先,求出一对训练图像的反射图之差,最后用1-范式求出全部训练图像的反射图之差。
3.illumination smoothness loss
一个好的光照图需要达到两个要求:一是局部保持光滑;一是能够凸显出图像的结构。
而目前被普遍选择的 TV loss 只能达到第一个要求,所以本文对TV做了改进,加入了反射图的梯度作为权重,得出如下公式“Structure-Aware Smoothness Loss”,使得光照图既能够保持局部的光滑,又能够凸显图像的结构:
对此公式的理解:
然后,他们证明了一下自己改进的方法比本来的TV loss效果好:
图(f)是改进的TV loss得到的光照图,图(h)是原TV loss得到的光照图,可以看出图(f)的结构更明显。
4.2 图像调整
4.2.1 光照图增强
对于光照图的增强,这里采用多尺度级联的方式,在不同的层级上分别调整光照。
图中蓝色的箭头代表Skip Connection,在下采样块和与之对应的上采样块之间进行Skip connection,使得神经网络学习块之间的残差。
假设被采样的图有M个逐步上采样块,每个上采样块中提取出C通道特征图,随后用最邻近插值调整C通道特征,最终形成C×M通道特征图。 然后,通过1×1卷积层,将级联特征简化为C通道。 最后,采用3×3卷积层构重构光照图。
Enhance-Net增强网络的损失函数由两部分组成:一部分是光照图的损失,和Decomposition-Net分解网络采用相同的表达式;另一部分是用增强后的低光照反射图、光照图重构正常光照图的损失,表达式如下:
4.2.2 反射图去噪
由于光照图变得光滑,原图中的细节信息都存储在反射图上,噪声也不例外。所以需要对分解出的反射图去噪,这里用的是BM3D算法。
五、数据集
他们提供了一个规模较大的数据集LOL(Low light paired dataset),里面的图像分为两种。一种是相机拍摄的,一种是合成的。真实场景的图像数据是改变相机感光度和曝光时间得到的;合成的图像数据是用Adobe Lightroom接口调节得到的,并且合成图像的Y通道的值必须接近真实低光照图像,也就是亮度逼近真实低光照。
可以看到,红色的线和蓝色的线是近似的。
六、Experiments
采用了485张真实拍摄的图片和1000张合成的图片分别对Decomposition-Net 和 Enhance-Net进行训练。
6.1用自己的数据集验证Decomposition
下图是用自己数据集中的图像进行分解,并与LIME算法做了对比。
可以得到以下结论:
- 通过图(a)、(b)、(d)的比较可以看出,我们的方法从原图中提取出了更多信息,并反应在反射图中。
- 只看图(d),低光照和正常光照分解出的反射图相差不大。
- 对比图(b)、(c)、(d)、(e),我们的方法更多的将光照保留在光照图中;而LIME保留了部分光照在反射图中
6.2 用公共数据集检验
本次实验用的是公共数据集的图像,将实验的结果与目前水平比较高的四种方法(DeHz、NPE、SRIE、LIME)做了对比。
从红框标注出的部分来看:
- 我们的方法提高了原图中处于阴影部分的物体的亮度,并且没有过度曝光而影响图片质量
- 物体没有黑色的边缘
6.3 对去噪结果的检验
将我们去噪的结果与LIME和JED去噪的结果作比较。
LIME和JED将物体的边缘处理的较模糊,而我们的方法使得细节更清楚。