low-light系列:Lightening Network for Low-light Image Enhancement
前言
文章下载链接在后面
这是一篇顶刊TIP2020的文章,重点在于:
- 文章将暗光增强任务视为一个求residual(残差)的任务
- LBP模块的提出,借用了SR(超分辨率)任务中的back-projection思想
- 可调亮度的参数γ
- 没有采用常用的L1、L2作为loss,而是采用SSIM loss 与TV smooth loss
- 暗光增强任务需要融合global和local不同层级的特征才能很好地完成任务
residual的假设
Y
=
X
+
γ
P
(
X
)
−
n
Y = X + \gamma P(X)-n
Y=X+γP(X)−n
其中将
P
(
)
P()
P()是提亮操作,X是原图,γ是参数,减去n是噪声,Y是期望的图像。
简单的,即原图X加上提亮操作后的残差再减去噪声,即成为期望的提亮图像。在论文中,认为低光图像和正常光照图像差距体现在像素value上的不同,即低光数值低,正常光数值高。论文中有更加详细的解释。
DLN网络结构
网络结构如图,输入低光图像,经过一系列模块后计算出残差,再加上最开始的原图X,得到期望的图像Y。
LBP
BP是back-projection,是来自于超分领域的思想,作者将其成功应用在暗光增强领域,成为lighten BP,即LBP
这里需要结合公式,以及这张图进行理解:
Y
^
=
λ
2
L
1
(
X
)
+
L
2
(
D
(
L
1
(
X
)
)
−
λ
1
X
)
\hat Y = \lambda_{2}L_1(X) + L_2(D(L_1(X))-\lambda_{1}X)
Y^=λ2L1(X)+L2(D(L1(X))−λ1X)
参数在图中都有展示,
- 首先是L1,提亮操作,第一次将原图X提亮,得到 Y ~ \tilde Y Y~,
- 再经过D,将其变暗得到 X ~ \tilde X X~,
- 作者认为,提亮又变暗的 X ~ \tilde X X~应该是和原图X一模一样才对(类似cycle gan),但是实际上肯定是有差距的,而这个差距就是低光残差 R ~ L L \tilde R_{LL} R~LL,
- 再进行一次提亮操作L2,这时候的结果与之前 Y ~ \tilde Y Y~相减为正常光残差 R ~ N L \tilde R_{NL} R~NL,
- 用公式来展示的话即上面的公式,λ为参数,得到最终的期望图像。
Feature Aggregation(FA)
图中的FA是上面网络结构中右侧FA作为展示,有三个输入。
- 首先将三个不同输入cat(相同scale),经过卷积和全局池化得到squeezed vector,这时候的向量代表了各个不同通道的显著特征,
- 经过两个全连接(1个是16/C,一个是C)得到重新分配过后的weight vector,然后expand变回原始大小,
- 进行element-wise 相乘,再使用conv kernel size为1的卷积降维为WHC
- 整个过程类似SENet
如此,将图像中的不同层级的最显著特征提取出来并融合
Loss
本文中并没有如其他暗光增强任务,使用L1 loss和L2 loss,而是直接使用了SSIM loss和TV smooth loss:
loss详细介绍请参考论文。
消融实验
作者做了使用不同loss、使用残差和不适用残差、使用不同数量LBP模块、是否使用FA模块的实验,来证明本文方法的优势。
具体参见论文。
视觉效果对比
文章下载链接:www.sci-hub.ren/10.1109/TIP.2020.3008396