摘要
夜间拍摄的图像常常面临诸如低光和模糊等挑战,这些问题主要是由于昏暗环境和长时间曝光的频繁使用所导致。现有方法要么独立处理这两种退化问题,要么依赖于通过复杂机制生成的精心设计的先验知识,这导致了较差的泛化能力和较高的模型复杂度。为了解决这些挑战,我们提出了一种名为LIEDNet的端到端框架,以高效且有效地在真实和合成数据上恢复高质量图像。具体而言,所提出的LIEDNet由三个关键组件组成:视觉状态空间模块VSSM,局部特征模块LFM 以及双重门控Dconv前馈网络DGDFFN。VSSM和LFM的结合使得模型能够捕捉全局和局部特征,同时保持较低的计算开销。此外,DGDFFN通过提取多尺度结构信息来提高图像保真度。在真实和合成数据集上的大量实验表明,LIEDNet在恢复低光、模糊图像方面具有优越性能。代码可在https://github.com/MingyuLiu1/LIEDNet 获取。
引言
图像修复专注于从其退化的版本中重建清晰的图像,在多个领域有着广泛应用,包括去雾[1]、去模糊[2]、去雨[3]和低光增强[4]。在低光场景下,夜间摄影通常采用长时间曝光来捕获更多光线并改善照明。然而,这样得到的图像往往仍然存在可见度低和色彩失真的问题。此外,相机抖动或动态场景造成的运动模糊和噪声会进一步降低长曝光期间的图像质量[5]。因此,现实世界中的夜间图像经常表现出如低亮度和模糊等混合退化现象,相比单一来源的退化问题,这提出了更为复杂的挑战。
随着深度学习的迅速发展,针对低光图像增强(LLIE)[6]–[12]和图像去模糊[13]–[22]提出了许多方法。然而,大多数方法独立处理这些退化问题。具体来说,现有的LLIE技术能够有效增强图像亮度并减少噪声,但往往忽视了运动模糊引起的空间退化。另一方面,当前的去模糊方法是为在正常光照条件下捕捉的图像设计的,并且难以从低可见度图像中提取运动模糊信息,导致次优结果。因此,简单地结合LLIE和去模糊技术不足以解决混合退化挑战[5]。
为了解决这些挑战,LEDNet [5]引入了LOLBlur数据集,并提出了一种专门在其上训练的端到端框架。尽管做出了这样的努力,由于无法捕捉精细纹理和结构细节,该框架未能实现最佳修复质量。随后,开发了一种名为FourierDiff [23]的零样本方法来联合处理LLIE和去模糊。最近,VQCNIR [24]和Ye等[25]研究了集成可靠的先验知识以增强修复性能的方法。然而,这些方法严重依赖于通过复杂模块获得的精心设计的先验知识,这阻碍了模型的泛化能力,并不可避免地增加了计算成本。
我们注意到,在低光图像中,亮度并非均匀分布。因此,仅 LEDNet 依靠全局信息可能导致照明过度或不足增强[5],如图2(a)所示。整合局部和全局特征有助于缓解增强过程中的局部伪影。然而,如图2(b)所示,这种组合仍然难以消除模糊并恢复精细的纹理细节。这一局限性源于场景内的不同元素,例如移动物体和背景,经历不同的模糊运动,每一种都需要特定的信息才能进行有效的去模糊。因此,源自固定尺度感受野的空间线索不足以准确去模糊。
基于上述观察,我们提出了一种名为 LIEDNet 的轻量级端到端框架,用于从未清晰的低光图像中恢复高质量图像。与之前的最先进方法相比,我们的模型展示了更优越的性能和更低的模型复杂度,如图1所示。模型的核心是Local Mamba Block (LMB),它集成了三个基本模块:(1) 全局特征模块(GFM),(2) 局部特征模块(LFM),以及(3) 双重门控Dconv前馈网络(DGDFFN)。虽然基于 Transformer 的模型擅长获取像素级别的关系以进行图像修复[7],[16],[26],但它们的高计算复杂度限制了实际应用。相比之下,视觉状态空间模块(VSSM)提供了线性复杂度的同时有效地建模长程依赖,成为传统Transformer架构更为高效的替代方案。因此,我们将 VSSM 作为 GFM 纳入我们的框架中。此外,应用了一个基于CNN的模块来增强局部特征提取,减少了色彩失真并提高了局部区域的修复质量。基于GDFFN [16],DGDFFN采用多分支架构来在门控分支内捕捉多尺度特征,促进显著的模糊减轻和精确的纹理及结构细节恢复。
我们的主要贡献总结如下:
- 我们提出了LIEDNet,这是一种专为联合低光增强和去模糊任务设计的轻量级网络,实现了效率和效果的平衡。
- 我们引入了使用VSSMs捕获长程依赖性和CNNs提取局部信息的Local Mamba Blocks。此外,我们集成了新型的DGDFFN来提供多尺度结构特征。通过利用丰富的局部和全局线索,所提出的网络显著增强了修复质量。
- 在合成和真实世界数据集上的广泛实验表明了模型的卓越性能以及低计算开销。
II. 相关工作
A. 低光照图像增强
低光照图像增强(LLIE)旨在恢复在次优光照条件下拍摄的图像。传统方法如直方图均衡化[27]–[32]、伽马校正[33]–[35]和Retinex理论[36]–[40]通常会产生伪影,且难以泛化到复杂的真实场景。近年来,基于学习的方法[6]、[41]–[43]在LLIE任务中表现出显著改进。首个基于CNN的LLIE方法LLNet[41]利用自编码器对低光照图像进行去噪和光照增强。后续研究[6]、[8]、[44]将Retinex理论融入深度学习框架以提升性能。此外,无监督学习被探索用于增强网络的泛化能力。Zero-DCE[42]和Zero-DCE++[43]将LLIE建模为图像特定的曲线估计任务。最近,RetinexMamba[8]和MambaLLIE[45]尝试基于Mamba的网络解决LLIE问题。尽管现有LLIE方法表现优异,但它们未能解决由运动模糊引起的空间退化。相比之下,我们的方法通过整合VMamba与CNN来捕获全局和局部特征,指导网络恢复具有清晰纹理的正常光照图像。
B. 图像去模糊
由于图像去模糊是病态问题,传统方法通常将其建模为优化问题[46]–[48],并利用稀疏图像先验[48]、局部平滑先验[49]或暗通道先验[50]等约束解空间。然而,对手工先验的依赖限制了这些方法在复杂场景中的泛化能力。基于学习的方法(如CNN模型)在去模糊任务中取得了显著进展[13]–[15]、[51]–[54]。SRN[14]提出了一种从粗到细的多尺度图像恢复网络,DMPHN[15]则利用多块分层网络整合多尺度信息。此外,基于Transformer的方法因擅长捕获全局上下文信息,在图像去模糊中表现出色[16]、[26]、[55]。Restormer[16]在通道维度而非空间维度应用自注意力机制,显著提升了去模糊效果。为降低Transformer的计算复杂度,EVSSM[17]提出了一种基于Mamba的高效去模糊框架。然而,现有方法大多针对日间光照条件设计,在低光照环境中性能显著下降。我们提出的LIEDNet通过高效提取低光照数据的结构信息,克服了这一局限性。
C. 联合低光照增强与去模糊
低光照模糊图像恢复仍是一个相对未被充分探索的领域。简单地将LLIE与去模糊网络结合无法充分解决其内在复杂性。先前工作如LEDNet[5]提出了统一网络以同时处理LLIE和去模糊。随后,FourierDiff[23]提出零样本扩散模型来解决光照与结构细节的联合退化问题。Ye等人[25]采用基于Transformer的框架并结合结构先验来恢复混合退化的图像。最近,VQCNIR[24]引入码本先验以应对复杂退化。然而,这些方法通常涉及高计算复杂度和复杂机制。相比之下,我们的方法提供了一种更高效的解决方案,在降低模型复杂度的同时实现了可靠的性能。
D. 视觉状态空间模型
近年来,状态空间模型(State Space Models, SSMs)[56]–[59]展现了在保持线性复杂度的同时捕获长程依赖关系的卓越能力。因此,许多工作专注于将视觉SSM应用于计算机视觉任务[45]、[60]–[64]。例如,VMamba[61]提出了跨扫描策略以弥合有序序列与非因果视觉图像之间的差距。MambaSR[60]将Mamba扩展应用于图像超分辨率。EVSSM[17]则提出了基于SSM的高效去模糊网络。后续研究如Retinex-Mamba[8]、WaveMamba[10]和MambaLLIE[45]聚焦于利用SSM进行低光照增强。基于Mamba在图像恢复中的成功,本研究首次将Mamba应用于低光照增强与去模糊联合任务的高效恢复。
III. 方法
A. 前置知识
状态空间模型
状态空间模型(SSMs)源自线性时不变(LTI)系统,其中输入
x
(
t
)
∈
R
x(t) \in \mathbb{R}
x(t)∈R 通过隐式潜在状态
h
(
t
)
∈
R
N
h(t) \in \mathbb{R}^N
h(t)∈RN 映射到输出响应
y
(
t
)
∈
R
y(t) \in \mathbb{R}
y(t)∈R,
N
N
N 表示状态大小。系统可数学形式化为线性常微分方程(ODE):
h
′
(
t
)
=
A
h
(
t
)
+
B
x
(
t
)
,
y
(
t
)
=
C
h
(
t
)
+
D
x
(
t
)
,
h'(t) = A h(t) + B x(t), \quad y(t) = C h(t) + D x(t),
h′(t)=Ah(t)+Bx(t),y(t)=Ch(t)+Dx(t),
其中
A
∈
R
N
×
N
A \in \mathbb{R}^{N \times N}
A∈RN×N,
B
∈
R
N
×
1
B \in \mathbb{R}^{N \times 1}
B∈RN×1,
C
∈
R
1
×
N
C \in \mathbb{R}^{1 \times N}
C∈R1×N, 和
D
∈
R
D \in \mathbb{R}
D∈R 是权重参数。
为了实际实现,连续 SSM 需转换为离散版本。具体而言,矩阵
A
A
A 和
B
B
B 通过零阶保持(ZOH)模型转换为离散形式
A
ˉ
\bar{A}
Aˉ 和
B
ˉ
\bar{B}
Bˉ:
A
ˉ
=
exp
(
Δ
A
)
,
B
ˉ
=
(
Δ
A
)
−
1
(
exp
(
A
)
−
I
)
⋅
Δ
B
,
\bar{A} = \exp(\Delta A), \quad \bar{B} = (\Delta A)^{-1}(\exp(A) - I) \cdot \Delta B,
Aˉ=exp(ΔA),Bˉ=(ΔA)−1(exp(A)−I)⋅ΔB,
其中 Δ \Delta Δ 和 I I I 分别表示时间尺度参数和单位矩阵, exp ( ⋅ ) \exp(\cdot) exp(⋅) 是指数函数。
随后,方程可重写为:
h
t
=
A
ˉ
h
t
−
1
+
B
ˉ
x
t
,
y
t
=
C
h
t
+
D
x
t
.
h_t = \bar{A} h_{t-1} + \bar{B} x_t, \quad y_t = C h_t + D x_t.
ht=Aˉht−1+Bˉxt,yt=Cht+Dxt.
最近,Mamba[65] 被引入以实现动态特征表示,使得参数 B ˉ \bar{B} Bˉ, C C C 和 Δ \Delta Δ 依赖于输入。基于类似递归结构,Mamba 能够从长序列中捕获信息,从而激活大量像素以贡献于恢复过程。此外,Mamba 采用并行扫描算法[66] 优化训练和推理过程。
B. 总体流程
提出的 LIEDNet 管道如图
3
(
a
)
3(a)
3(a) 所示。总体上,LIEDNet 由编码器-解码器架构组成。我们表示输入退化图像为
I
∈
R
H
×
W
×
3
I \in \mathbb{R}^{H \times W \times 3}
I∈RH×W×3,其中
H
H
H 和
W
W
W 分别是图像的高度和宽度。
图像首先通过补丁嵌入模块处理,提取浅层特征
F
s
∈
R
(
H
/
r
)
×
(
W
/
r
)
×
C
F_s \in \mathbb{R}^{(H/r) \times (W/r) \times C}
Fs∈R(H/r)×(W/r)×C,其中
r
r
r 是缩放因子。随后,
F
s
F_s
Fs 通过三级编码器处理,每级包含多个局部 Mamba 模块(LMBs)和级间下采样层。此过程降低空间分辨率同时增加通道容量,在瓶颈处生成深层特征
F
b
∈
R
(
H
/
8
)
×
(
W
/
8
)
×
4
C
F_b \in \mathbb{R}^{(H/8) \times (W/8) \times 4C}
Fb∈R(H/8)×(W/8)×4C。为引入中间监督,我们从
F
b
F_b
Fb 预测
I
^
↓
8
\hat{I}_{\downarrow8}
I^↓8,并利用下采样的真实标签
Y
↓
8
Y_{\downarrow8}
Y↓8 计算低光增强损失。解码器逐步将特征上采样回原始图像尺寸。跳跃连接用于将编码器特征传递到对应解码器层,增强特征表示。最终,通过将输入退化图像
I
I
I 与恢复图像
I
^
\hat{I}
I^ 相加,生成最终输出。我们计算
I
^
\hat{I}
I^ 与
Y
Y
Y 之间的去模糊损失。
C. 局部 Mamba 模块 (LMB模块)
我们引入 LMB 模块以通过有效整合全局和局部信息来增强特征表示。LMB 的架构如图 3(b) 所示,包含三个关键组件:用于全局特征提取的VSSM、用于获取局部特征的LFM,以及用于多尺度特征学习(多尺度学习通过结合不同层级的特征,使模型既能关注局部细节,又能理解全局上下文)的 DGDFFN。给定输入特征 F i F_i Fi,首先应用层归一化(LN)进行初步处理。随后,特征通过 VSSM 和 LFM 并行处理。最后,DGDFFN 用于学习和细化结构信息。
全局特征模块VSSM:受 Mamba 捕获长程依赖关系的能力启发,我们在 LIEDNet 中利用 VSSM 作为全局特征模块。如图
3
(
c
)
3(c)
3(c) 所示,我们遵循先前工作[61],通过两个并行分支处理输入特征
F
n
∈
R
H
×
W
×
C
F_n \in \mathbb{R}^{H \times W \times C}
Fn∈RH×W×C。具体而言,第一个分支通过线性层后接
3
×
3
3×3
3×3 深度卷积层和 SiLU 激活函数处理特征,随后通过 2D选择性扫描模块2D-SSM和层归一化。第二个分支通过线性层扩展特征,后接 SiLU 激活函数。最终,通过点积结合两分支特征,并通过线性层将通道数还原为
C
C
C。
整个过程表示为:
F
1
,
F
2
=
Chunk
(
F
n
)
,
F
1
′
=
LN
(
2
D
S
S
M
(
SiLU
(
Dw
3
×
3
(
ϕ
(
F
1
)
)
)
)
)
,
F_1, F_2 = \text{Chunk}(F_n), \quad F'_1 = \text{LN}(2DSSM(\text{SiLU}(\text{Dw}_{3 \times 3}(\phi(F_1))))),
F1,F2=Chunk(Fn),F1′=LN(2DSSM(SiLU(Dw3×3(ϕ(F1))))),
F
2
′
=
SiLU
(
ϕ
(
F
2
)
)
,
F
global
=
ϕ
(
F
1
′
⊙
F
2
′
)
.
F'_2 = \text{SiLU}(\phi(F_2)), \quad F_{\text{global}} = \phi(F'_1 \odot F'_2).
F2′=SiLU(ϕ(F2)),Fglobal=ϕ(F1′⊙F2′).
局部特征模块LAM:在低光条件下,局部区域的照明差异较大,全局操作容易导致次优恢复结果[5]。此外,去模糊需要丰富的局部信息以有效恢复纹理细节。受 Squeeze-and-Excitation 框架[67] 启发,我们引入 LFM 以更有效地捕捉局部特征。如图 3(d) 所示,我们首先将归一化后的特征沿通道维度通过全局平均池化(GAP)层,生成大小为
H
×
W
×
1
H \times W \times 1
H×W×1 的特征图。然后,通过两个插入 ReLU 激活函数的 1×1 卷积层提取深层特征。最终,通过 Sigmoid 函数处理深层特征,获得通道权重
W
W
W,用于自适应调整每个通道的重要性。具体表示为:
W
=
σ
(
W
1
×
1
(
ReLU
(
W
1
×
1
(
GAP
(
F
n
)
)
)
)
)
,
F
local
=
W
⊙
F
n
.
W = \sigma(W_{1 \times 1}(\text{ReLU}(W_{1 \times 1}(\text{GAP}(F_n))))), \quad F_{\text{local}} = W \odot F_n.
W=σ(W1×1(ReLU(W1×1(GAP(Fn))))),Flocal=W⊙Fn.
双门控卷积前馈网络DGDFFN:为从图像特征中获取更多结构信息,我们提出 DGDFFN,其架构如图 3(e) 所示。我们首先使用 1×1 卷积层处理输入特征,然后将特征拆分为三个分支。主分支使用 3×3 深度卷积层和 GeLU 激活函数。同时,我们将默认 GDFFN[16] 中的门控分支从 3×3 深度卷积扩展为 3×3 和 5×5 深度卷积的组合。随后,通过 ReLU 激活函数拼接特征,并通过 1×1 卷积层将通道数从
2
C
2C
2C 降至
C
C
C。最终,主分支和门控分支的特征通过逐元素乘法结合,生成输出特征。DGDFFN 的过程表示为:
F
1
,
F
2
,
F
3
=
Chunk
(
W
1
×
1
(
F
n
′
)
)
,
F
m
=
GeLU
(
Dw
3
×
3
(
F
1
)
)
,
F_1, F_2, F_3 = \text{Chunk}(W_{1 \times 1}(F'_n)), \quad F_m = \text{GeLU}(\text{Dw}_{3 \times 3}(F_1)),
F1,F2,F3=Chunk(W1×1(Fn′)),Fm=GeLU(Dw3×3(F1)),
F
g
=
W
1
×
1
(
ReLU
(
Dw
3
×
3
(
F
2
)
)
⊕
ReLU
(
Dw
5
×
5
(
F
3
)
)
)
,
F_g = W_{1 \times 1}(\text{ReLU}(\text{Dw}_{3 \times 3}(F_2)) \oplus \text{ReLU}(\text{Dw}_{5 \times 5}(F_3))),
Fg=W1×1(ReLU(Dw3×3(F2))⊕ReLU(Dw5×5(F3))),
F
′
=
W
1
×
1
(
F
m
⊙
F
g
)
.
\quad F' = W_{1 \times 1}(F_m \odot F_g).
F′=W1×1(Fm⊙Fg).
D. 损失函数
我们遵循[5] 实现低光增强损失 L lle L_{\text{lle}} Llle 和去模糊损失 L deb L_{\text{deb}} Ldeb。
低光增强损失
由于 LLIE 和去模糊的目标不同,中间监督是必要的,尤其是对于曝光调整的约束。因此,我们在编码器特征的最小(×8)下采样尺度上应用
L
1
L_1
L1 损失和感知损失:
L
lle
=
∥
I
^
↓
8
−
Y
↓
8
∥
1
+
λ
per
∥
f
VGG19
(
I
^
↓
8
)
−
f
VGG19
(
Y
↓
8
)
∥
1
,
L_{\text{lle}} = \| \hat{I}_{\downarrow8} - Y_{\downarrow8} \|_1 + \lambda_{\text{per}} \| f_{\text{VGG19}}(\hat{I}_{\downarrow8}) - f_{\text{VGG19}}(Y_{\downarrow8}) \|_1,
Llle=∥I^↓8−Y↓8∥1+λper∥fVGG19(I^↓8)−fVGG19(Y↓8)∥1,
其中
f
VGG19
(
⋅
)
f_{\text{VGG19}}(\cdot)
fVGG19(⋅) 表示预训练的 VGG19 模型[68],
∥
⋅
∥
\|\cdot\|
∥⋅∥ 表示
L
1
L_1
L1 损失函数。
去模糊损失
我们同样利用
L
1
L_1
L1 损失和感知损失定义去模糊损失
L
deb
L_{\text{deb}}
Ldeb:
L
deb
=
∥
I
^
−
Y
∥
1
+
λ
per
∥
f
VGG19
(
I
^
)
−
f
VGG19
(
Y
)
∥
1
.
L_{\text{deb}} = \| \hat{I} - Y \|_1 + \lambda_{\text{per}} \| f_{\text{VGG19}}(\hat{I}) - f_{\text{VGG19}}(Y) \|_1.
Ldeb=∥I^−Y∥1+λper∥fVGG19(I^)−fVGG19(Y)∥1.
因此,最终损失定义为:
L
=
λ
lle
L
lle
+
λ
deb
L
deb
,
L = \lambda_{\text{lle}} L_{\text{lle}} + \lambda_{\text{deb}} L_{\text{deb}},
L=λlleLlle+λdebLdeb,
其中
λ
per
,
λ
lle
,
λ
deb
\lambda_{\text{per}}, \lambda_{\text{lle}}, \lambda_{\text{deb}}
λper,λlle,λdeb 分别设置为 0.01、0.8 和 1。