摘要
链接:https://arxiv.org/pdf/1808.04560.pdf Retinex模型是微光图像增强的有效工具。假设观测图像可以分解为反射率和照度。大多数现有的基于retina的方法都为这种高度病态分解精心设计了手工制作的约束和参数,在应用于各种场景时可能会受到模型容量的限制。在本文中,我们收集了一个包含低光/正常光图像对的low -light数据集(LOL),并提出了一个基于该数据集的深度视网膜网,包括一个用于分解的分解网(Decom-Net)和一个用于亮度调整的增强网(enhanced - net)。在Decom-Net的训练过程中,没有分解反射率和光照的ground truth。该网络的学习只有关键约束,包括由配对的低光/正常光图像共享的一致反射率,以及照明的平稳性。在此基础上,通过增强网络(Enhance-Net)对光照进行亮度增强,联合去噪则对反射率进行去噪。视网膜网是端到端可训练的,因此学习到的分解本质上有利于亮度调整。大量的实验证明,我们的方法不仅在弱光增强中获得了视觉上令人愉悦的质量,而且还提供了良好的图像分解表示。
1、简介
图像捕获时光线不足会显著降低图像的可见性。细节的丢失和低对比度不仅会给人带来不愉快的主观感受,而且会影响许多针对普通光图像设计的计算机视觉系统的性能。造成照明不足的原因有很多,比如光照环境不好,摄影设备性能有限,设备配置不当等。为了使隐藏的细节可见,提高当前计算机视觉系统的主观体验和可用性,需要对微光图像进行增强。
在过去的几十年里,许多研究者都致力于解决微光图像增强的问题。许多技术已经被开发来提高弱光图像的主客观质量。直方图均衡化(HE)[20]及其变体对输出图像的直方图进行约束,以满足一定的约束条件。基于去雾的方法[5]利用光照不足的图像与雾霾环境下的图像之间的逆连接。
另一类微光增强方法是基于Retinex理论[12]建立的,该方法假设观测到的彩色图像可以分解为反射率和照度。单尺度Retinex (SSR)[11]在早期尝试中使用高斯滤波对光照映射进行平滑约束。多尺度Retinex (MSRCR)[10]扩展了SSR与多尺度高斯滤波器和颜色恢复。[23]提出了一种利用亮度-顺序-误差测度来保持照明自然度的方法。Fu等人[7]提出融合初始照明图的多个派生。SRIE[7]使用加权变分模型同时估计反射率和照度。对光照进行操作后,可以恢复目标结果。另一方面,LIME[9]只使用结构先验估计照明,并使用反射作为最终增强结果。也有基于视网膜的联合微光增强和噪声去除方法[14,15]。
虽然这些方法在某些情况下可能会产生很好的结果,但它们仍然存在反射率和照度分解模型容量的限制。设计出适用于各种场景的有效的图像分解约束是一件很困难的事情。此外,照明图的操作也是手工制作的,这些方法的性能通常依赖于精心的参数调优。
随着深度神经网络的快速发展,CNN已广泛应用于低层次图像处理,包括超分辨率[6,24,26,27],去雨[16,21,25]等。Lore等。[17]使用堆叠稀疏去噪自编码器同时进行弱光增强和降噪(LLNet),但没有考虑到弱光图片的性质。
为了克服这些困难,我们提出了一种数据驱动的Retinex分解方法。一个被称为Retinex-Net的深度网络,集成了图像分解和连续增强操作。首先,利用子网络分解网(Decom-Net)将观测图像分解为与光照无关的反射率和结构感知的光滑光照;分解网是在两个约束条件下学习的。首先,低光/正常光图像具有相同的反射率。其次,通过结构感知的全变差损失获得光照图的平滑且保留主要结构;然后,另一个增强网调整光照图以保持大区域的一致性,同时通过多尺度拼接调整局部分布。由于噪声通常在黑暗区域更大,甚至被增强过程放大,对反射率降噪引入。为了训练这样的网络,我们从真实摄影和RAW数据集中合成图像构建了一个低光/正常光图像对数据集。大量的实验证明,我们的方法不仅在弱光增强中获得了令人满意的视觉质量,而且提供了良好的图像分解表示。我们的工作贡献如下:
-
我们建立了一个大规模的数据集与配对的低/正常光图像捕获的真实场景。据我们所知,这是在微光增强领域的第一次尝试。 -
构建了基于Retinex模型的深度学习图像分解。分解网络与连续弱光增强网络进行端到端训练,因此框架具有良好的光条件调整能力。 -
我们提出了一种结构感知的全变分约束用于深度图像分解。通过在梯度较强的地方减少总变化的影响,该约束成功地平滑了照明图并保留了主要结构。
2、光增强RetinexNet
经典的Retinex理论模拟了人类的颜色感知。假设观测图像可以分解为反射率和照度两个分量。设S表示源图像,则可表示为
S
=
R
°
I
(1)
S=R \circ I \tag{1}
S=R°I(1)
其中R代表反射率,I代表照明,
°
\circ
°代表元素明智的乘法。反射率描述了被捕获物体的内在特性,它被认为在任何亮度条件下都是一致的。照度表示物体上的各种明度。在低光图像上,它通常受到黑暗和照明分布不平衡的影响。
基于Retinex理论,我们设计了一个深度RetinexNet,实现了反射率/照度分解和弱光增强的结合。该网络由分解、调整和重构三个步骤组成。在分解步骤中,视网膜网通过decomx - net将输入图像分解为R和I。它在训练阶段接受成对的低光/正常光图像,而在测试阶段只接受低光图像作为输入。在低光/常光图像具有相同的反射率和光照平滑度的约束下,Decom-Net学会了以数据驱动的方式提取不同光照图像之间的一致R。调整步骤,一个Enhance-Net用于点亮照明地图。增强网采用了编码器-解码器的整体框架。该方法采用多尺度拼接方法,在保持大区域内光照与上下文信息的全局一致性的同时,集中注意力调整局部分布。此外,如果需要的话,通常发生在低光条件下的放大噪声可以从反射率中去除。然后,在重建阶段通过元素乘法将调整后的照度和反射率结合起来。
2.1 数据驱动的图像分解
分解观察到的图像的一种方法是直接估计在低光输入图像上的反射率和照明,使用手工精心制作的约束。由于式(1)是高度病态的,因此设计一个适合于各种场景的约束函数并不容易。因此,我们试图用数据驱动的方式来解决这个问题。
在训练阶段,Decom-Net每次接收成对的微光/常光图像,在微光图像和常光图像具有相同反射率的指导下,学习微光图像及其对应的常光图像的分解。注意,尽管分解是用成对数据训练的,但它可以在测试阶段单独分解低光输入。在训练过程中,不需要提供反射率和照度的ground truth。只有必要的知识,包括反射率的一致性和照明映射的平滑性嵌入到网络作为损失函数。因此,我们的网络分解是从成对的低光/正常光图像中自动学习的,本质上适合于描述不同光照条件下图像之间的光照变化。
需要注意的是,虽然这个问题可能在形式上类似于内在图像分解,但它们在本质上是不同的。在我们的任务中,我们不需要准确地获得实际的本征图像,而是一个很好的表示来进行光的调整。因此,我们让网络学会寻找微光图像与其对应增强结果之间的一致性分量。
如图1所示,Decom-Net以弱光图像
S
low
S_{\text {low}}
Slow?和正常光图像
S
normal
S_{\text {normal}}
Snormal?为输入,对
S
low
S_{\text {low}}
Slow?分别估计反射率
R
low
R_{\text {low}}
Rlow?和照度
I
low
I_{\text {low}}
Ilow?,对
S
normal
S_{\text {normal}}
Snormal?和
I
normal
I_{\text {normal}}
Inormal?。它首先使用3 × 3卷积层从输入图像中提取特征。然后,通过若干个以整流线性单元(ReLU)为激活函数的3× 3卷积层,将RGB图像映射到反射率和照度。一个3× 3卷积层从特征空间投射R和I,使用sigmoid函数将R和I约束在[0,1]的范围内。
损失
L
\mathcal{L}
L由三个项组成:重建损失
L
recon
\mathcal{L}_{\text {recon}}
Lrecon?、不变反射率损失
L
ir
\mathcal{L}_{\text {ir}}
Lir?和照明光洁度损失
L
i
s
\mathcal{L}_{i s}
Lis?:
L
=
L
recon?
+
λ
i
r
L
i
r
+
λ
i
s
L
i
s
,
(2)
\mathcal{L}=\mathcal{L}_{\text {recon }}+\lambda_{i r} \mathcal{L}_{i r}+\lambda_{i s} \mathcal{L}_{i s}, \tag{2}
L=Lrecon??+λir?Lir?+λis?Lis?,(2) 其中
λ
i
r
\lambda_{ir}
λir?和
λ
i
s
\lambda_{i s}
λis?表示平衡反射率的一致性和照明的平稳性的系数。
假设
R
low
和
R
high
R_{\text {low}}和R_{\text {high}}
Rlow?和Rhigh?都可以用对应的照明映射重建图像,重建损失
L
recon
\mathcal{L}_{\text {recon}}
Lrecon?表示为:
L
recon?
=
∑
i
=
?low,normal?
∑
j
=
?low,normal?
λ
i
j
∥
R
i
°
I
j
?
S
j
∥
1
.?
(3)
\mathcal{L}_{\text {recon }}=\sum_{i=\text { low,normal }} \sum_{j=\text { low,normal }} \lambda_{i j}\left\|R_{i} \circ I_{j}-S_{j}\right\|_{1} \text {. } \tag{3}
Lrecon??=i=?low,normal?∑?j=?low,normal?∑?λij?∥Ri?°Ij??Sj?∥1?.?(3)
引入不变反射率损失
L
i
r
\mathcal{L}_{ir}
Lir?来约束反射率的一致性:
L
ir?
=
∥
R
low?
?
R
normal?
∥
1
.
\mathcal{L}_{\text {ir }}=\left\|R_{\text {low }}-R_{\text {normal }}\right\|_{1} .
Lir??=∥Rlow???Rnormal??∥1?.
照明平滑损失
L
i
s
\mathcal{L}_{i s}
Lis?将在下一节中详细描述。
2.2 结构感知平滑性损失
照明映射的一个基本假设是局部一致性和结构感知,如[9]所述。换句话说,一个好的光照贴图的解决方案应该是在纹理细节上平滑的同时还能保持整体的结构边界。
总变差最小化(Total variation minimization, TV)[2]是将整个图像的梯度最小化的算法,常用于各种图像恢复任务的平滑优先级。然而,直接使用TV作为损失函数,在图像结构较强或亮度变化较大的区域会失败。这是由于光照图的梯度一致的减少,无论区域是文本细节还是强边界。换句话说,电视损失是结构盲。光照被模糊化,反射率上留下了强黑边,如图2所示。
为了使损耗对图像结构的感知,对原始电视函数用反射率图梯度进行加权。最后的\mathcal{L}_{i s}表示为:
L
i
s
=
∑
i
=
?low,normal?
∥
?
I
i
°
exp
?
(
?
λ
g
?
R
i
)
∥
,
(5)
\mathcal{L}_{i s}=\sum_{i=\text { low,normal }}\left\|\nabla I_{i} \circ \exp \left(-\lambda_{g} \nabla R_{i}\right)\right\|, \tag{5}
Lis?=i=?low,normal?∑?∥?Ii?°exp(?λg??Ri?)∥,(5)
其中
?
\nabla
?表示梯度,包括
?
h
(
h
o
r
i
z
o
n
t
a
l
)
\nabla_{h}(horizontal)
?h?(horizontal)和
?
v
(
v
e
r
t
i
c
a
l
)
\nabla_{v}(vertical)
?v?(vertical),
λ
g
\lambda_{g}
λg?表示平衡结构感知强度的系数。随着权重
exp
?
(
?
λ
g
?
R
i
)
,
L
i
s
\exp \left(-\lambda_{g} \nabla R_{i}\right), \mathcal{L}_{i s}
exp(?λg??Ri?),Lis?在反射梯度陡峭的地方放松了平滑性的约束,换句话说,在图像结构所在的地方和照明应该不连续的地方。
虽然LIME[9]也考虑了在加权电视约束下保持光照图中的图像结构,但我们认为这两种方法是不同的。对于LIME,总变化约束由初始照明图加权,初始照明图是R、G和B通道中每个像素的最大强度。相反,我们的结构感知平滑损失是由反射率加权的。在LIME中使用的静态初始估计可能不能像反射率那样描述图像结构,因为反射率被假设为图像的物理属性。由于我们的分解网是用大数据离线训练的,所以在训练阶段可以同时更新光照和权重(反射率)。
2.3 多尺度照明调节
照明增强网络采用编码器-解码器体系结构的总体框架。为了从层次角度调整照明,我们引入了多尺度拼接,如图1所示。
编码器-解码器体系结构获得大区域的上下文信息。将输入图像连续下采样到小尺度,网络可以看到大尺度的光照分布。这给网络带来了自适应调节的能力。利用大尺度照明信息,上采样块重构局部照明分布。通过元素累加,从下采样块引入跳跃连接到对应的镜像上采样块,这使得网络能够学习残差。
为了分层调整光照,即保持全局光照的一致性,同时调整局部光照分布的多样性,引入了一种多尺度拼接方法。如果有M个渐进上采样块,每个上采样块提取一个C通道特征图,我们通过最近邻插值到最终的尺度,在不同的尺度上调整这些特征的大小,并将它们连接到一个C × M通道特征图。然后,通过1×1卷积层,将连接的特征简化为C通道。遵循3×3卷积层来重构照明映射
I
~
\tilde{I}
I~。
下采样块由一个具有步幅2的卷积层和一个ReLU组成。在上采样块中,使用了一个缩放卷积层。正如[19]中所演示的,它可以避免工件的棋盘格模式。大小调整卷积层由最近邻插值运算、步幅为1的卷积层和一个ReLU组成。
增强网的损失函数
L
\mathcal{L}
L由重建损失
L
recon
\mathcal{L}_{\text {recon}}
Lrecon?和照明平滑损失
L
is
\mathcal{L}_{\text {is}}
Lis?组成。
L
recon
\mathcal{L}_{\text {recon}}
Lrecon?表示产生一个正常光
S
^
\hat{S}
S^,即
L
recon?
=
∥
R
low?
°
I
^
?
S
normal?
∥
1
.
(6)
\mathcal{L}_{\text {recon }}=\left\|R_{\text {low }} \circ \hat{I}-S_{\text {normal }}\right\|_{1} .\tag{6}
Lrecon??=∥
∥?Rlow??°I^?Snormal??∥
∥?1?.(6)
L
i
s
\mathcal{L}_{i s}
Lis?与Eq.(5)相同,只是
i
^
\hat{i}
i^由
R
low
R_{\text {low}}
Rlow?的梯度映射加权。
2.4 反射率去噪
在分解步骤中,对网络施加了几个约束条件,其中一个约束条件是光照映射的结构感知平滑性。当估计的照明映射是光滑的,所有细节都保留在反射率上,包括增强的噪声。因此,在用照度图重建输出图像之前,可以先对反射率进行去噪处理。考虑到在分解过程中,黑暗区域的噪声是根据亮度强弱放大的,因此我们应该采用与光照相关的去噪方法。我们的实现在第4节中描述。
3、数据集
尽管微光增强问题已经研究了几十年,但据我们所知,目前公开的数据集没有提供在真实场景中捕获的微光/正常光成对图像。一些微光增强工作使用高动态范围(HDR)数据集作为替代方案,如MEF数据集[18]。然而,这些数据集规模小,包含的场景有限。因此,它们不能用来训练一个深度网络。为了使从大规模数据集中学习弱光增强网络变得容易,我们构造了一个新的弱光增强网络,它由两类组成:真实的摄影对和从原始图像合成的对。第一种方法在实际情况下捕获退化的特征和属性。二是在数据扩充、场景和对象多样化方面发挥作用。
3.1 真实场景采集数据集
我们的数据集名为LOw Light paired dataset (LOL),包含500对LOw /normal-light图像对。据我们所知,LOL是第一个包含来自真实场景的图像对的数据集,用于弱光增强。
大多数弱光图像是通过改变曝光时间和ISO来收集的,而相机的其他配置是固定的。我们从各种场景中捕捉图像,例如,房子,校园,俱乐部,街道。图3显示了场景的一个子集。
由于相机的抖动、物体的移动和亮度的变化可能会导致图像对之间的不对中,受[1]的启发,我们使用三步法来消除数据集中图像对之间的这种不对中。实现细节可以在补充文件中找到。这些原始图像被调整为400×600,并转换为便携式网络图形格式。该数据集将对外公开。
3.2 从原始图像合成图像对
为了使合成图像符合真实黑暗摄影的性质,我们分析了弱光图像的照度分布。我们从公共MEF[18]、NPE[23]、LIME[9]、DICM[13]、vv1和Fusion[3]数据集中采集270张微光图像,将图像转换到YCbCr通道,并计算Y通道的直方图。我们还从RAISE[4]中采集了1000张原始图像作为法线图像,计算了YCbCr中Y通道的直方图。结果如图4所示。
原始图像比转换后的结果包含更多的信息。在对原始图像进行操作时,所有用于生成像素值的计算都在基础数据上一步完成,从而使结果更加准确。使用RAISE[4]中的1000张原始图像合成微光图像。利用Adobe Lightroom提供的界面,尝试不同的参数使Y通道的直方图与微光图像中的结果相匹配。最终参数配置可在补充材料中找到。如图4所示,合成图像的照度分布与弱光图像的照度分布相匹配。最后,我们将这些原始图像的大小调整为400×600,并将它们转换为便携式网络图形格式。
我们在第3节中提到的拥有500对图像的LOL数据集被分为485对用于训练,另外15对用于评估。因此,该网络在485个真实情况图像对和1000个合成图像对的基础上进行训练。整个网络是轻量级的,因为我们在经验上发现它已经足够达到我们的目的。分解网络需要5个卷积层,在两个没有ReLU的卷积层之间有一个ReLU激活。增强网由3个下采样块和3个上采样块组成。我们首先训练分解网和增强网,然后使用带有反向传播的随机梯度下降(SGD)对网络进行端到端微调。批大小设置为16,补丁大小设置为96× 96。
λ
i
r
\lambda_{i r}
λir?,
λ
i
s
\lambda_{i s}
λis?和
λ
g
\lambda_{g}
λg?分别被设置为0.001,0.1和10。当
i
≠
j
i \neq j
i=j,
λ
i
j
\lambda_{i j}
λij?被设置为0.001,当i=j,
λ
i
j
\lambda_{i j}
λij?被设置为1。
4.2 分解结果
在图5中,我们展示了LOL数据集评估集中的低光/正常光图像对,以及由Decom-Net和LIME分解的反射率和照度图。补充文件中提供了更多的示例。结果表明,我们的Decom-Net可以从文本和光滑区域在不同光照条件下的一对图像中提取底层一致的反射率。低光图像的反射率与正常光图像的反射率相似,只是在真实场景中出现了放大的暗区噪声。另一方面,照度图描绘的是图像上的明暗。与我们的结果相比,LIME在反射率上留下了很多照明信息(见架子上的阴影)。
4.3 评价
我们对来自公共LIME[9]、MEF[18]和DICM[13]数据集的真实场景图像进行了评估。LIME包含10个测试图像。MEF包含17个具有多个曝光级别的图像序列。DICM用商用数码相机收集了69张照片。我们将我们的retina - ex- net与四种最先进的方法进行比较,包括基于去霾的方法(DeHz)[5]、自然保护增强算法(NPE)[23]、同步反射率和照明估计算法(SRIE)[8]和基于照明映射估计(LIME)[9]。
图6显示了三幅自然图像的视觉对比。更多的结果可以在补充文件中找到。如每个红色矩形所示,利用基于学习的图像分解方法和多比例尺定制照明图,我们的方法在不过度曝光的情况下,使深埋在黑暗中的物体达到足够的亮度。与LIME相比,我们的结果没有部分过度曝光(参见Still lives中的叶子和Room中的外面叶子)。与DeHz相比,对象没有暗边,DeHz受益于加权电视损失项(参见Street中的房屋边缘)。
4.4 微光增强和去噪联合
考虑到综合性能,在retina - net中使用BM3D[3]作为去噪操作。由于噪声在反射率上被不均匀地放大,我们使用相对照明策略(见补充材料)。我们将我们的联合去噪视网膜网与两种方法进行了比较,一种是经过去噪后处理的LIME方法,另一种是最近提出的联合弱光增强去噪方法JED[22]。如图7所示,retina - ex- net能更好地保留细节,而LIME和JED模糊了边缘。
5、结论
本文提出了一种深度Retinex分解方法,该方法可以学习在不考虑分解后的反射率和照度的基础上,以数据驱动的方式将观测图像分解为反射率和照度。介绍了后续的照度增强和反射率去噪操作。对分解网络和弱光增强网络进行端到端训练。实验结果表明,该方法不仅具有良好的图像分解表现效果,而且具有视觉效果良好的增强效果。
|