【LLIE专题】EnlightenGAN 无监督低照度图像增强

EnlightenGAN:无配对数据低光图像增强方案

在这里插入图片描述


本文将对 EnlightenGAN: Deep Light Enhancement without Paired Supervision,这篇暗光增强算法进行讲解。参考资料如下:

[1] EnlightenGAN文章
[2] EnlightenGAN代码


专题介绍

在低光照环境下,传统成像设备往往因画面昏暗、细节丢失而受限。LLIE(低照度暗光增强)技术应运而生,它通过提升图像亮度、对比度,减少噪点并恢复色彩细节,让暗夜变得清晰可见。

LLIE技术从传统方法如直方图均衡化、Retinex模型等起步,近年来借助深度学习,尤其是卷积神经网络(CNN),GAN模型,扩散模型实现了质的飞跃。这些算法能自动学习图像特征,精准处理低光照图像,效果显著优于传统技术。

本专题将聚焦LLIE技术的核心原理、应用案例及最新进展,让我们一起见证LLIE如何点亮暗夜,开启视觉新视界!欢迎一起探讨交流!

系列文章如下
【1】ZeroDCE
【2】HVI
【3】CLIP-LIT
【4】GLARE
【5】Retinexformer
【6】SG-LLIE
【7】GPP-LLIE
【8】FusionNet


一、研究背景

在实际场景中,要同时拍摄同一视觉场景的低光照和正常光照照片极具挑战性。本文提出了一种高效的无监督生成对抗网络,称为EnlightenGAN,它无需低光照/正常光照图像对即可进行训练,且在各种真实世界测试图像上表现出良好的泛化能力。
本文不使用真实数据来监督学习,而是利用从输入本身提取的信息对非配对训练进行正则化,并针对低光照图像增强问题采用了一系列创新方法,包括全局 - 局部判别器结构、自正则化感知损失融合以及注意力机制。由于非配对训练带来的高度灵活性,EnlightenGAN能轻松适用于不同场景的真实世界图像。

二、EnlightenGAN方法

2.1 总体方案

EnlightenGAN是一种无监督的暗光增强方案,主要运用了以下几个策略实现无监督增强。

  • 全局 - 局部判别器:全局判别器处理整体光照,局部判别器确保局部区域的真实感,避免过曝或欠曝。
  • 自正则化感知损失:利用预训练 VGG 模型约束低光输入与增强输出的特征距离,保留图像内容。
  • 注意力引导 U-Net 生成器:使用输入图像的光照信息生成注意力图,指导网络重点增强暗区域,抑制亮区域。
    在这里插入图片描述

2.2 详细方案

2.21 全局-局部判别器

作者注意到图像级(图像全局尺度上的)普通判别器在空间变化光照图像上(图像不同区域光照不同)往往效果不佳;如果输入图像的某些局部区域需要与其他部分进行不同程度的增强,例如,在整体较暗的背景中有一个小的明亮区域,仅靠全局图像判别器往往无法提供所需的适应性。

因此为了在全局改善光照的同时自适应地增强局部区域,提出了一种新颖的全局 - 局部判别器结构,两者均使用PatchGAN进行真假判别。除了图像级别的全局判别器之外,通过从输出图像和真实正常光照图像中随机裁剪局部图像块来添加局部判别器,并学习区分它们是真实的(来自真实图像)还是虚假的(来自增强后的输出)。这种全局 - 局部结构确保增强图像的所有局部图像块看起来都像真实的正常光照图像,这对于避免局部过曝或欠曝至关重要。

全局判别器,采用了相对判别器结构。相对判别器的标准函数为:
D R a ( x r , x f ) = σ ( C ( x r ) − E x f ∼ P f a k e [ C ( x f ) ] ) , ( 1 ) D_{Ra}(x_r, x_f)=\sigma(C(x_r)-\mathbb{E}_{x_f \sim \mathbb{P}_{fake }}[C(x_f)]), (1) DRa(xr,xf)=σ(C(xr)ExfPfake[C(xf)]),(1)

D R a ( x f , x r ) = σ ( C ( x f ) − E x r ∼ P r e a l [ C ( x r ) ] ) , ( 2 ) D_{Ra}(x_f, x_r)=\sigma(C(x_f)-\mathbb{E}_{x_r \sim \mathbb{P}_{real }}[C(x_r)]), (2) DRa(xf,xr)=σ(C(xf)ExrPreal[C(xr)]),(2)
在EnlightenGAN中,相对判别器(Relativistic Discriminator)的设计旨在优化生成对抗网络(GAN)的训练稳定性与生成质量,其核心思想是通过比较真实数据与虚假数据的相对真实性来引导生成器学习,而非传统判别器仅单独判断数据的真伪。以下是相对判别器公式的详细解析:

  • 符号解析
    • x r x_r xr:真实数据(正常光图像), x f x_f xf:虚假数据(生成器输出的增强图像)。
    • C ( x ) C(x) C(x):判别器网络对输入数据的特征提取结果。
    • E x ∼ P [ ⋅ ] \mathbb{E}_{x \sim \mathbb{P}}[\cdot] ExP[]:对分布 P \mathbb{P} P中样本的期望运算。
    • σ \sigma σ:Sigmoid函数,将输出映射到(0,1)区间,表征概率。
  • 核心逻辑
    • 公式(1)计算“真实数据 x r x_r xr比虚假数据 x f x_f xf更真实”的概率:通过比较 C ( x r ) C(x_r) C(xr)与虚假数据特征期望 E [ C ( x f ) ] \mathbb{E}[C(x_f)] E[C(xf)]的差值,若差值越大,说明 x f x_f xf
### 照度图像增强技术综述 #### 技术背景与发展 光照条件下的成像通常会面临亮度不足、对比度降以及噪声增加等问题。为了改善这些问题,研究者们提出了多种照度图像增强方法。这些方法可以分为传统方法和基于深度学习的方法两大类。 传统的照度图像增强方法主要包括直方图均衡化、Retinex理论及其变体、Gamma校正以及其他基于物理模型的技术[^1]。这类方法依赖于手工设计的特征提取器和优化目标,在计算效率上具有优势,但在复杂场景中的表现可能受限。 近年来,随着深度学习的发展,许多研究人员转向利用神经网络来解决照度图像增强问题。这种方法通过构建复杂的端到端映射关系,能够更好地捕捉输入与输出之间的非线性特性。具体而言,现代LLIE(Low-light Image Enhancement)框架往往涉及特定的学习策略、创新性的网络结构设计、精心定义的损失函数以及大规模标注数据集的支持[^2]。 #### 关键技术分析 以下是几种重要的照度图像增强关键技术: 1. **多尺度上下文聚合** 多尺度信息对于理解图像内容至关重要。一种有效的方式是采用膨胀卷积(dilated convolution),它能够在不改变感受野大小的情况下引入更大的空间范围内的像素关联性。这种机制允许模型捕获更广泛的纹理细节并减少因下采样操作带来的分辨率下降风险[^3]。 2. **暗通道先验** 暗通道先验是一种广泛应用于大气散射现象处理的有效工具,最初由何恺明等人提出用于单张图片除雾任务。“暗通道”的概念指的是自然景观照片里大部分区域至少存在一个颜色分量接近零的情况。此假设被证明适用于大多数户外环境,并据此开发出了相应的恢复流程[^4]。尽管其原始用途并非针对夜间或者昏暗条件下拍摄的照片调整,但某些情况下也可以间接借鉴这一理念来进行初步预处理或辅助其他算法完成最终效果改进工作。 3. **生成对抗网络 (GAN)** GANs因其强大的生成能力而成为当前最流行的解决方案之一。它们不仅可以合成逼真的高亮版本样本,而且还能保留原图的真实感不受破坏。例如CycleGAN架构无需配对训练实例即可实现跨域转换;Pix2pix则强调一对一精确对应关系建立等等。不过需要注意的是,虽然此类方案具备高度灵活性,但也伴随着潜在不稳定性和难以控制结果一致性的问题。 4. **自监督/弱监督学习范式** 当获取大量高质量标签变得困难时,探索如何仅依靠少量甚至完全没有明确指导信号便能达成预期目的就显得尤为重要了。一些前沿尝试正在朝向这方面迈进——比如借助循环一致约束促使隐含表征尽可能贴近实际分布形态从而达到泛化性能提升的目的。 #### 总结 总体来看,无论是经典还是新兴手段都有各自适用场合及局限之处。未来的研究方向可能会更加注重融合两者优点形成混合型体系结构以便适应更多元化的应用场景需求。与此同时,考虑到能耗成本等因素影响,轻量化部署也成为不可忽视的一个重要考量维度。 ```python import torch.nn as nn class DilatedConvBlock(nn.Module): def __init__(self, in_channels, out_channels, kernel_size=3, dilation_rate=2): super(DilatedConvBlock, self).__init__() padding = int((kernel_size - 1) * dilation_rate / 2) self.conv = nn.Conv2d(in_channels=in_channels, out_channels=out_channels, kernel_size=kernel_size, stride=1, padding=padding, dilation=dilation_rate) def forward(self, x): return self.conv(x) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值