低光图像增强论文:Underexposed Photo Enhancement using Deep Illumination Estimation阅读笔记

论文链接:https://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=8953588

项目地址:https://github.com/wangruixing/DeepUPE

CVPR2019

作者团队:腾讯优图

Abstract

不再像以前那样直接学习图像到图像的映射,而是在网络中引入中间照明,将输入与预期增强结果相关联,从而增强网络从专家修改的输入/输出图像对学习复杂的摄影调整的能力。

提出了一个采用光照约束和先验的损失函数,建立了一个新的3000对曝光不足图像对的数据集,并训练网络有效地学习对不同光照条件的各种调整。

通过这些方法,我们网络的增强结果能够恢复清晰的细节,鲜明的对比度,和自然的颜色。我们在Mit-Adobe fiveK数据集和我们的新数据集上进行了大量的实验,并表明我们的网络能够有效地处理之前具有挑战性的图像。

Introduction

介绍了一下自动增强和现有sota方法的不足,做了与自己方法的对比图

Methodology

从根本上说,图像增强任务可以看作是寻找映射函数F,使得I ̃=F(I)是从输入图像I增强的期望图像。在最近基于Retinex的图像增强方法中,F的逆函数通常被建模为照明映射S,以像素方式与反射率图像I ̃相乘,生成观察到的图像I:I=S∗I ̃

其中*是像素级的操作

基于Retinex的理论,我之前看到的论文中用的方法如下:

其思想是将输入图像看作反射图和光照图的乘积加上噪声,与之不同的是本文作者认为反射图I~就应该是ground truth,并且不考虑噪声。本文在最后也提到了网络的去噪能力有待提升。

Image Enhancement Model

在我们的模型中,将I ̃作为增强结果,I作为观察到的曝光不足图像。一旦S已知,我们就可以通过F(I)=S^(-1)∗I得到增强结果I ̃  。

与现有工作不同,我们将S建模为多通道而不是单通道来提高模型颜色增强的能力。

通过在我们的网络中引入中间照明,我们训练网络学习图像到照明(而不是图像到图像)的映射。主要的优点是自然图像的照明图通常具有相对简单的形式和已知的先验知识。从而使网络具有较强的泛化能力,并能有效地进行训练,学习适应不同光照条件的复杂摄影调整。

Network Architecture

从网络结构图可以看出,输入图像经过一个下采样然后经过一个编码器(预训练的VGG16),然后用两个卷积层提取局部特征,两个卷积+三个全连接提取全局特征,随后一起预测得到低分辨率的光照预测图,在经过一个双边上采样得到全分辨率的光照图S,在S上使用平滑度损失。最后用S的逆和输入I相乘得到全分辨率增强结果,并与ground truth做重建损失和颜色损失。

Effective Learning

增强曝光不足的照片需要调整局部(例如对比度、细节清晰度、阴影和高光)和全局特征(例如,颜色分布、平均亮度和场景类别)。我们从编码器网络生成的特征考虑局部和全局上下文,请参见图3(顶部)。为了驱动网络从输入的欠曝光图像和相应的专家润色图像中学习光照映射,我们设计了一个损失函数,光照图上采用平滑度先验,增强图像上采用重建损失和颜色损失,见图3(底部)。

Efficient Runtime

我们学习预测低分辨率图像到光照映射的局部和全局特征,并执行基于双边网格的上采样,将低分辨率预测放大到全分辨率;见图3。因此,大多数网络计算都是在低分辨率域进行的,从而可以实时处理高分辨率图像。

Bilateral Grid Based Upsampling

在这里简单介绍一下双边网格上采样

Bilateral Grid Based Upsampling 的主要任务是将生成的低分辨率图像上采样至原分辨率,是图像增强中常见的操作,即考虑到计算耗时,而避免图像增强算子直接在高分辨率图像上进行处理,转而采用将原图下采样到较小的尺寸,经过增强后再上采样至原尺寸,两次缩放常会导致图像的失真,而基于Bilateral Grid 的上采样方式则在保持低计算量的前提下尽量减少图像数据的损失。

Bilateral Filter:

J表示目标图像,p,q表示图上的坐标,w是与位置有关的权重,而Bilateral Filter的最初形式中,w(p,q)表示为位置坐标间、亮度值间距离的高斯函数值的乘积,其中Bilateral指将亮度空间和位置空间的结合,权重w的计算表示为:

其中g表示高斯函数,计算时q的取值在一个固定大小的窗口范围内,也就是目标图像上一点的像素值与原图上该像素局部各像素的加权和。

另外还有一种Bilateral guided upsampling方法,这种方法好像是用下采样的图像和原图像学习出滤波器的权重,然后把这个滤波用在增强后的结果上。本文用的不知道是不是这种,文中没详细说,训练代码也没开源。

Loss Function

其中L_r^i,L_s^i和L_c^i是损失分量,分别代表重建损失、平滑损失和颜色损失, w_r  ,w_s和w_c是相应的权重。根据经验设置w_r  =1, w_s  =2, w_c  =1。

Reconstruction Loss

其中I_i和I ̃_i中的所有像素通道均归一化为[0,1],()c∈{r,g,b} 表示像素的颜色通道。

由于,设置𝐼𝑖为S的下限可确保增强结果F(I_i )中的所有颜色通道(上限)为1,从而避免超出色域的颜色,而将1设置为S的上限可避免错误地使曝光不足的区域变暗。

这个地方关于他的约束我没搞明白他说的啥意思,但是我的理解是S要小于1,因为S乘到I~上得到的是欠曝光图像,I~又被归一化到0-1,那么再乘以S得到的I肯定小于等于S

Smoothness Loss

根据先验知识,自然图像中的光照通常是局部平滑的。在我们的网络中采用这种先验有两个优点。首先,它有助于减少过度匹配并提高网络的泛化能力。其次,它增强了图像的对比度。当相邻像素p和q具有相似的照明值时,它们在增强图像中的对比度可以估计为,由于S≤1,因此|𝐼𝑝𝐼𝑞|被放大。我们将预测的全分辨率光照图S的平滑度损失定义为:

其中,我们对所有像素的所有通道求和;∂x和∂y是图像空间中水平和垂直方向上的偏导数;𝑤𝑥,𝑐𝑝𝑤𝑦,𝑐𝑝是空间变化的(每个通道)平滑度权重,表示为:

这里,𝐿𝑖 是输入图像𝐼𝑖 的对数图像;θ=1.2是控制对图像梯度的敏感度参数;而𝜀 是一个小常数,通常设置为0.0001,防止除数为0。

通过权重的设置,我们可以知道,当输入图像的横向梯度较大时,横向的权重就会小,此时会允许光照图的梯度大;而当输入图像横向梯度小时,横向权重就会大,就会约束光照图的梯度小。这就实现了作者所说的平滑度损失鼓励光照图在具有小梯度的像素上是平滑的,在具有大梯度的像素上是不连续的。

Color Loss

其中 ()_p表示像素;∠(,)是一个运算符,用于计算两种颜色之间的角度,将RGB颜色视为3D矢量,将F(I_i )和I ̃_i中每个像素对的颜色矢量之间的角度求和。

我们使用这个简单公式来代替L2距离的原因如下。首先,重建损失已经隐含地测量了L2色差。第二,由于L2度量只对颜色差异进行数值测量,因此不能保证颜色向量具有相同的方向。因此,该度量可能导致明显的颜色不匹配。这可以通过比较图4中有无颜色损失的第4和第5个结果来观察。最后,这个公式对于网络计算是简单而快速的。

然后我们来看损失函数的消融实验结果

可以看到在重建损失的基础上加入平滑度损失确实能够使图像的对比度增强,再加上颜色损失可以改进颜色。

Experimental Results

三个损失函数分量都不用时采用的是L2损失,尽管如此还是超越之前sota的水平,可见其网络设计的有效性。

个人总结

这篇论文有两大亮点:一是网络设计,之前看到暗光增强论文网络框架大多是基于U-net,这种用VGG提取特征再结合局部和全局特征信息的倒是第一次见。二是颜色损失中的角度设计。还有多通道也第一次见。就是代码用的各种版本都太低了,复现太难了,开源的部分也只有测试代码,没法看具体的网络结构。

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值