Kindling the Darkness: A Practical Low-light Image Enhancer

Motivation

在图像增强问题中,没有真正的ground truth存在,因为人们最喜欢的光照水平并不相同。因此,仅将图像映射到具有特定光线水平的图像并不是很合适。

•如何从单个图像有效地估计照明分量,并灵活地调节光线水平?
•提升黑暗区域亮度后,如何消除以前隐藏在黑暗中的噪声和色彩失真之类的退化?
•如何在没有明确ground-truth的情况下训练模型以进行低光图像增强(仅参考几个图像)?

abstract

该网络受到Retinex理论的启发,将图像分解为两个部分。 一种成分(illumination)负责调光,而另一种(reflectance)负责去除颜色衰退。 以这种方式,原始空间被解耦为两个较小的子空间,期望可以更好地进行正则化/学习。 网络使用在不同曝光条件下拍摄的配对图像进行训练的,而不是使用任何地面真实的反射和照明信息。

main contributions

The main contributions of this work can be summarized in the following aspects.

  • 该网络受到Retinex理论的启发,将图像分解为illumination和reflectance两部分,从而将原始空间解耦为较小的部分
  • 该网络使用在不同光照/曝光条件下捕获的成对图像进行训练,而不是使用任何ground-truth的illumination和reflectance信息。(这个很好)
  • 我们设计的模型提供了一个映射功能,可以根据用户的不同需求灵活地调整亮度。(这个好)
  • 该网络还包含了一个模块,能够有效地去除通过照亮黑暗区域而放大的视觉缺陷。 (哪些缺陷啊?后面注意)
  • 广泛的实验被进行,以证明我们的设计的有效性和优越性的先进方案。(这句话是为了凑字数吗?学习一下)
具体一点

好的弱光图像增强器应能够有效消除暗处隐藏的退化,并灵活地调整光线/曝光条件。

从功能上来说,可以分为 layer decomposition, reflectance restoration, 和illumination adjustment三个模块。

Layer decomposition

根据Retinex理论可对输入进行分解,illumination map是灵活调整光线/曝光条件的关键。

Data Usage & Priors

没有光照条件确定的ground-truth。没有/很少有ground-truth的reflectance 和illumination 。layer 分解问题本质上是不确定的,因此,其他priors/regularizers 很重要。假设图像没有退化,则特定场景的不同镜头应有相同的reflectance 。 尽管illumination map可能会发生很大变化,但它们具有简单且相互一致的结构。 在实际情况下,弱光图像中体现的退化通常比明亮图像中的退化更严重,这将在reflectance 部分修复。

这启发了我们,在相对强光下图像的reflectance 可以作为从退化的低光下图像的反射的参考(ground-truth)。 有人会问为什么不使用合成数据? 因为很难合成。 不同传感器会造成不同形式的衰退。

Illumination Guided Reflectance Restoration

数学模型上,衰退的低光照图像可以表示为 I = R ∘ L + E \mathbf{I}=\mathbf{R} \circ \mathbf{L}+\mathbf{E} I=RL+E E \mathbf{E} E是衰退分量,所以我们有:
I = R ∘ L + E = R ~ ∘ L = ( R + E ~ ) ∘ L = R ∘ L + E ~ ∘ L \mathbf{I}=\mathbf{R} \circ \mathbf{L}+\mathbf{E}=\tilde{\mathbf{R}} \circ \mathbf{L}=(\mathbf{R}+\tilde{\mathbf{E}}) \circ \mathbf{L}=\mathbf{R} \circ \mathbf{L}+\tilde{\mathbf{E}} \circ \mathbf{L} I=RL+E=R~L=(R+E~)L=RL+E~L
R ~ \tilde{\mathbf{R}} R~代表衰退的Reflectance 。Reflectance 恢复不可能在整幅图像上进行均匀处理,illumination图可以作为一个很好的向导。

Arbitrary Illumination Manipulation

不同的人/应用程序喜欢的照明强度可能非常不同。 因此,实际系统需要提供用于任意照明操纵的接口。实际系统需要为任意照明操作提供一个接口。在文献中,增强光条件的三种主要方法是融合、光级预约和伽马校正(fusion, light level appointment, and gamma correction.)。基于fusion的方法,由于固定的融合模式,缺乏对光的调节功能。如果采用第二种,训练数据集必须包含目标级别的图像,这限制了它的灵活性。对于伽马校正,虽然它可以通过设置不同的值来达到目的,但它可能不能反映不同光(曝光度)水平之间的关系。本文提倡从真实数据中学习一个灵活的映射函数,它允许用户指定任意的光/曝光级别。

Method

在这里插入图片描述

Layer Decomposition Net

在retinex理论中,输入图片分解为reflectdance与illumination map。同时假定,在不考虑图片退化(噪声、颜色失真等)情况下,相同场景下的不同曝光的图片的reflectdance应该相同,illumination maps应该平滑。所以通过decomposition network输出的low reflectance作为restoration network的输入,用来生成增强图片;而high reflectance maps用作ground truth,有监督地同restoration network的输出图片计算loss。

decomposition network分为两个branches,一个是类U-Net结构,加上sigmoid layer,用于生成reflectance maps;另一个是由简单的卷积层和sigmoid layer组成,用于生成illumination maps。
总loss:
L L D : = L r e c L D + 0.01 L r s L D + 0.08 L i s L D + 0.1 L m c L D \mathcal{L}^{L D}:=\mathcal{L}_{r e c}^{L D}+0.01 \mathcal{L}_{r s}^{L D}+0.08 \mathcal{L}_{i s}^{L D}+0.1 \mathcal{L}_{m c}^{L D} LLD:=LrecLD+0.01LrsLD+0.08LisLD+0.1LmcLD
reflectance similarity loss: L r s L D : = ∥ R l − R h ∥ 2 2 \mathcal{L}_{r s}^{L D}:=\left\|\mathbf{R}_{l}-\mathbf{R}_{h}\right\|_{2}^{2} LrsLD:=RlRh22

illumination smoothness loss: L i s L D : = ∥ ∇ L l max ⁡ ( ∣ ∇ I l ∣ , ϵ ) ∥ 1 + ∥ ∇ L h max ⁡ ( ∣ ∇ I h ∣ , ϵ ) ∥ 1 \mathcal{L}_{i s}^{L D}:=\left\|\frac{\nabla \mathbf{L}_{l}}{\max \left(\left|\nabla \mathbf{I}_{l}\right|, \epsilon\right)}\right\|_{1}+\left\|\frac{\nabla \mathbf{L}_{h}}{\max \left(\left|\nabla \mathbf{I}_{h}\right|, \epsilon\right)}\right\|_{1} LisLD:=max(Il,ϵ)Ll1+max(Ih,ϵ)Lh1
L \mathbf{L} L表示illumination, I \mathbf{I} I表示输入。这个loss的意思是输入图梯度小点的地方,网络对它的illumination值更敏感(不能大,最好不变)。
mutual consistency loss(这个loss什么含义,问问别人): L m c L D : = ∥ M ∘ exp ⁡ ( − c ⋅ M ) ∥ 1 \mathcal{L}_{m c}^{L D}:=\|\mathbf{M} \circ \exp (-c \cdot \mathbf{M})\|_{1} LmcLD:=Mexp(cM)1 M : = ∣ ∇ L l ∣ + ∣ ∇ L h ∣ \mathbf{M}:=\left|\nabla \mathbf{L}_{l}\right|+\left|\nabla \mathbf{L}_{h}\right| M:=Ll+Lh
reconstruction error loss: L r e c L D : = ∥ I l − R l ∘ L l ∥ 1 + ∥ I h − R h ∘ L h ∥ 1 \mathcal{L}_{r e c}^{L D}:=\left\|\mathbf{I}_{l}-\mathbf{R}_{l} \circ \mathbf{L}_{l}\right\|_{1}+\left\|\mathbf{I}_{h}-\mathbf{R}_{h} \circ \mathbf{L}_{h}\right\|_{1} LrecLD:=IlRlLl1+IhRhLh1
网络看大图。

Reflectance Restoration Net

暗光图像的reflectance maps会比正常曝光图片的reflectance maps情况糟糕很多,所以这里需要用正常曝光的reflectance maps作为监督,计算loss来约束,同时也需要illumination maps提供指导,最终增强图片。

L R R : = ∥ R ^ − R h ∥ 2 2 − SSIM ⁡ ( R ^ , R h ) + ∥ ∇ R ^ − ∇ R h ∥ 2 2 \mathcal{L}^{R R}:=\left\|\hat{\mathbf{R}}-\mathbf{R}_{h}\right\|_{2}^{2}-\operatorname{SSIM}\left(\hat{\mathbf{R}}, \mathbf{R}_{h}\right)+\left\|\nabla \hat{\mathbf{R}}-\nabla \mathbf{R}_{h}\right\|_{2}^{2} LRR:=R^Rh22SSIM(R^,Rh)+R^Rh22

Illumination Adjustment Net

参数α用来调整illumination maps的亮度,通过(Lt / Ls)再算平均,得出。t为target,s为source;当α>1时,增亮,α小于1时变暗。最关键的是,这里的参数α是可以自己设定的,即想要多亮就要多亮,非常灵活。实际上α在网络中实际上是一张feature map,加权到原有的illumination maps上。
L I A : = ∥ L ^ − L t ∥ 2 2 + ∥ ∣ ∇ L ^ ∣ − ∣ ∇ L t ∣ ∥ 2 2 \mathcal{L}^{I A}:=\left\|\hat{\mathbf{L}}-\mathbf{L}_{t}\right\|_{2}^{2}+\left\||\nabla \hat{\mathbf{L}}|-\left|\nabla \mathbf{L}_{t}\right|\right\|_{2}^{2} LIA:=L^Lt22+L^Lt22

Experienment

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值