Underexposed Photo Enhancement using Deep Illumination Estimation(DeepUPE)笔记
文章:Underexposed Photo Enhancement using Deep Illumination Estimation (DeepUPE) (CVPR2019)
github: https://github.com/wangruixing/DeepUPE
Loss: Reconstruction Loss + Smoothness Loss + Color Loss
摘要:该文章的任务是对曝光不足的图像进行增强。与之前的图像增强方法(直接学习图像到图像的映射)不同,DeepUPE学习(曝光不足图像)与(illumination map)
的映射,这样可以更好地学习Grund Truth的复杂光照。DeepUPE根据光照先验建立Loss函数。
图像增强:图像增强任务可以看作寻找与增强图像
的映射关系
,增强图像可以表示为
=
(
),在Retinex图像增强方法中,
的逆过程被建模为(illumination map)
。存在关系
=
,其中符号
表示基于像素的乘法,当已知
时,增强图像便可以求得
(
)=
。DeepUPE的任务就是通过网络学习
与
的映射关系。
网络结构:
首先,将下采样后送入Encoder(采用VGG16的pre-trained模型),得到feature map;然后提取feature map的局部和全局features,将得到的features通过卷积层组合成低分辨率illumination;然后上采样得到
;最后结合
得到最终的增强图像
。训练网络时使用Reconstruction Loss (
)、Smoothness Loss (
)、 Color Loss (
)。
:重构loss定义为重构的增强图像
(
)与Ground Truth
的L2误差,参考;
:根据平滑先验,自然图像的光照通常是局部平滑的。在DeepUPE中引入平滑先验有两方面的优点:首先,可以防止过拟合,增加网络的泛化能力;其次,可以增强图像的对比度。
:将重构的增强图像
(
) 的每个RGB像素看作三维向量
,同样Ground Truth
对应的向量为
,他们之间的角度为
。其中
表示一个像素,
表示计算两个向量夹角的一种方法。颜色loss可以通过在颜色空间中计算像素的L2距离,之所以不采用这种简单的方法,是因为:一、重构loss已经使用L2计算了像素误差;二、L2进行数值度量,不能保证颜色向量的方向一致性,可能导致颜色的不匹配。
通过Figure.4可以对比不同loss的效果(作用):
实验:作者只提供了测试代码,如果想用自己的数据训练需要自己写训练代码。下图为使用自己的数据训练与测试的结果:
其中,Input表示输入图像,DeepUPE Pre-train Model表示源代码模型结果,Ours为我们的训练测试结果。