【LLIE专题】一种语义感知知识引导的低照度图像增强方案
Learning Semantic-Aware Knowledge Guidance for Low-Light Image Enhancement(cvpr 2023)
- 专题介绍
- 一、研究背景
- 二、方法
- 2.1 语义感知嵌入(SE)模块
- 1. 输入
- 2. 输出
- 3.中间计算流程
- 2.2 语义引导直方图损失
- 2.3 语义引导对抗损失
- 三、实验结果
- 1、定量实验结果
- 1.1. 配对数据集(LOL/LOL-v2):全参考指标提升
- 1.2. 无配对数据集(MEF/LIME/NPE/DICM):无参考指标提升
- 2、定性实验结果
- 3、实验结论
- 四、总结
本文将对 Learning Semantic-Aware Knowledge Guidance for Low-Light Image Enhancement,这篇文章进行讲解。参考资料如下:
[1] 文章
[2] 代码
专题介绍
在低光照环境下,传统成像设备往往因画面昏暗、细节丢失而受限。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
【9】EnligtenGAN
【10】PTG
【11】CSNorm
【12】SG-LLIE结构提取方案
【13】SAIGFormer
【14】BEM
一、研究背景
- 目前的低照度图像增强的端到端模型(如 LLNet、EnlightenGAN)和 Retinex-based 模型(如 RetinexNet、KinD++),均采用全局均匀处理策略,未考虑不同区域的语义信息(如 “天空”、“汽车” 需不同增强策略),导致易出现颜色偏差(如黑色汽车变灰色,上图 (a))
- 基于此,这篇论文提出了语义感知知识引导框架Semantic-Aware Knowledge Guidance(SKF)对低照度图像进行增强。该框架以预训练在 PASCAL-Context 数据集的 HRNet (一种语义分割网络)作为语义知识库(SKB),通过三大核心组件融合语义先验:语义感知嵌入(SE)模块(跨模态交互细化图像特征)、语义引导颜色直方图(SCH)损失(基于语义分块保留局部颜色一致性)、语义引导对抗(SA)损失(结合语义定位 “假区域” 提升纹理自然度)。并且SKF能适配不同 LLIE 模型,具有较好的通用性。
二、方法
可以看出,引入了SKF之后,在很多方案上的psnr和ssim指标均有较大提升。
整体方案如上图所示,网络结构分为增强网络(Enhancement Net)和分割网络(Segmentation Net),其中分割网络提供语义先验,并且通过语义分割图设计了语义引导直方图损失和语义引导对抗损失。
下面我们将分三块分别介绍该论文的方案
2.1 语义感知嵌入(SE)模块
该模块是连接语义分割网络(SKB)与低光图像增强网络(Enhancement Net)的核心桥梁,其核心目标是通过跨模态交互解决语义特征与图像特征的异质性问题,实现图像特征的语义化细化,为后续增强过程提供精准的语义引导。
1. 输入
SE模块的输入包含两类异质特征,需先通过预处理实现维度对齐:
- 语义特征FsbF_s^bFsb:来自SKB(HRNet)的中间输出,包含多尺度语义信息(如“类别标签”“区域边界”),需通过卷积层Wq(⋅)W_q(\cdot)Wq(⋅)转换为指定通道数C;
- 图像特征FibF_i^bFib:来自增强网络解码器第b层的特征,反映低光图像的像素级信息(如亮度、纹理),需通过卷积层Wk(⋅)W_k(\cdot)Wk(⋅)转换为与语义特征相同的通道数C。
2. 输出
SE模块的输出为细化后的图像特征FobF_o^bFob,该特征融合了语义上下文信息,直接作为增强网络解码器第b+1层的输入,为后续图像重建提供语义化的特征基础。
3.中间计算流程
SE模块通过“维度对齐→注意力计算→特征加权→输出细化”四步实现跨模态交互,具体流程如下:
步骤1:特征维度对齐与归一化
为解决语义特征与图像特征的通道数不匹配问题,首先对两类特征进行转换:
- 图像特征 FibF_i^bFib和语义特征FsbF_s^bFsb均分别转化为通道数为C的特征;
- 对转换后的特征进行层归一化(Layer Normalization, LN),减少特征分布差异,提升后续注意力计算的稳定性。
步骤2:语义感知注意力图生成
借鉴Restormer的转置注意力机制,以低计算成本量化“语义-图像”特征的相关性,生成注意力图AbA^bAb :
- 相似度计算:将转换后的图像特征(记为Wk(Fib)W_k(F_i^b)Wk(Fib)与语义特征(记为Wq(Fsb)W_q(F_s^b)Wq(Fsb))进行矩阵乘法,再除以C\sqrt{C}C(通道数的平方根)以缓解梯度消失问题,公式为:
Wk(Fib)×Wq(Fsb)/CW_k(F_i^b) \times W_q(F_s^b) / \sqrt{C}Wk(Fib)×Wq(Fsb)/C - 注意力激活:对上述结果应用Softmax函数,得到语义感知注意力图Ab∈RC×CA^b \in \mathbb{R}^{C \times C}Ab∈RC×C,其中Ai,jbA^b_{i,j}Ai,jb表示图像特征通道i与语义特征通道j的相关性强度——值越大,说明该图像特征通道越需要被对应语义通道引导。
注意力图的核心作用是:筛选出对“语义一致性”最重要的图像特征通道,避免无关特征(如噪声)被强化。
步骤3:图像特征语义化加权
利用注意力图AbA^bAb对图像特征进行动态加权,实现语义信息的融入:
- 先将图像特征FibF_i^bFib通过另一卷积层Wv(⋅)W_v(\cdot)Wv(⋅)(参数可学习)转换为通道数为C的特征Wv(Fib)W_v(F_i^b)Wv(Fib);
- 将转换后的特征与注意力图AbA^bAb进行矩阵乘法,得到“语义加权后的图像特征”;
- 为保留原图像特征的基础信息,将“语义加权特征”与原始图像特征FibF_i^bFib进行残差连接(Element-wise Add)。
步骤4:特征最终细化与输出
对残差连接后的特征应用前馈网络(Feed-Forward Network, FN),通过非线性变换进一步融合语义与图像信息,最终输出细化后的特征FobF_o^bFob,传递至增强网络解码器的下一层。
2.2 语义引导直方图损失
语义引导直方图损失(Semantic-Guided Color Histogram Loss, SCH Loss) 是解决传统颜色直方图全局统计忽略局部语义差异问题的核心损失函数。其核心目标是通过语义分块与微分直方图估计,为不同语义区域(如“汽车”“天空”“人体”)提供独立的颜色约束,精准保留低光图像增强后的区域颜色一致性,避免全局处理导致的颜色偏差。SCH Loss的核心逻辑可概括为:“先按语义分块,再对每块计算微分直方图,最后通过L1损失约束增强结果与真实图像的直方图差异”,具体流程围绕以下三个核心步骤展开:
- 语义分块:利用语义分割图(来自SKB的HRNet)将增强图像划分为不同语义区域的子图(Patch),确保每个子图仅包含单一语义类别;
- 微分直方图估计:针对传统直方图的离散性,基于核密度估计(Kernel Density Estimation)设计可微版本,适配深度学习训练;
- 边界优化:剔除语义分割边界的像素,减少分割误差对直方图计算的干扰,提升约束精度。
下面我们详细介绍SCH Loss的数学实现与步骤:
步骤1:基于语义图的图像分块(语义分块)
首先利用SKB输出的独热编码语义图(IsegcI_{seg}^cIsegc,c为语义类别索引,如“汽车”对应c=1、“天空”对应c=2),将增强图像(IoutI_{out}Iout)划分为多个语义子图(Patch),公式如下:
P={P0,P1,...,Pclass},Pc=Iout⊙IsegcP = \left\{P^{0}, P^{1}, ..., P^{class }\right\}, \quad P^{c}=I_{out } \odot I_{seg }^{c}P={P0,P1,...,Pclass},Pc=Iout⊙Isegc
- ⊙\odot⊙:逐像素点积运算,用于筛选语义图中属于类别c的像素;
- Pc∈RW×H×3P^c \in \mathbb{R}^{W \times H \times 3}Pc∈RW×H×3:第c类语义对应的子图,仅包含该类别的像素,非该类别区域像素值为0;
- PPP:所有语义子图的集合,覆盖整幅增强图像的全部语义类别。
该步骤的核心作用是:将“全局颜色约束”拆解为“局部语义区域的独立颜色约束”,确保不同类别区域的颜色特性不被平均化。
步骤2:边界像素剔除(优化分块质量)
由于语义分割模型可能存在边界预测误差(如“汽车边缘”误判为“路面”),直接使用含边界的子图计算直方图会引入噪声。因此,SCH Loss进一步对步骤1得到的子图PPP进行优化,剔除边界像素,得到精炼子图P′P'P′:
- 具体操作:通过形态学处理或距离变换,筛选出子图中“远离语义边界”的核心像素,仅保留这些像素参与后续直方图计算;
- 目的:减少分割误差对颜色统计的干扰,确保直方图能真实反映该语义类别的颜色分布。
步骤3:可微颜色直方图估计(微分直方图)
传统颜色直方图(如RGB通道0-255强度的像素计数)是离散函数,无法计算梯度,因此SCH Loss基于核密度估计设计可微版本的直方图,以适配深度学习的反向传播训练。以子图Pc′P^{c'}Pc′的R通道为例,具体计算过程如下:
(1)锚点定义
对每个像素强度等级i∈[0,255]i \in [0,255]i∈[0,255],定义两个锚点(高锚点xijhx_{ij}^hxijh和低锚点xijlx_{ij}^lxijl),用于量化像素对该强度等级的贡献:
xijh=xj−i−0.5255,xijl=xj−i+0.5255x_{i j}^{h}=x_{j}-\frac{i-0.5}{255}, \quad x_{i j}^{l}=x_{j}-\frac{i+0.5}{255} xijh=xj−255i−0.5,xijl=xj−255i+0.5
- xjx_jxj:精炼子图Pc′(R)P^{c'}(R)Pc′(R)中第j个像素的R通道强度值(归一化到[0,1]);
- iii:目标像素强度等级(0-255);
- 锚点作用:通过Sigmoid函数将像素强度映射到连续的贡献值,实现直方图的可微性。
(2)像素贡献计算
利用Sigmoid函数计算第j个像素对强度等级i的贡献值,公式如下:
Contributioni,j=Sigmoid(α⋅xijh)−Sigmoid(α⋅xijl)\text{Contribution}_{i,j} = \text{Sigmoid}(\alpha \cdot x_{ij}^h) - \text{Sigmoid}(\alpha \cdot x_{ij}^l)Contributioni,j=Sigmoid(α⋅xijh)−Sigmoid(α⋅xijl)
- α\alphaα:缩放因子,实验中设为400,用于增强Sigmoid函数的区分度(当xjx_jxj恰好等于( i/255 )时,贡献值接近1;远离时接近0);
- 物理意义:每个像素对其所属强度等级的贡献是连续值,而非传统直方图的“0-1离散计数”,解决了离散性问题。
(3)微分直方图生成
对所有像素的贡献值求和,得到第c类语义子图在R通道的微分直方图HcH^cHc:
Hic=∑j(Sigmoid(α⋅xijh)−Sigmoid(α⋅xijl))H_{i}^{c}=\sum_{j} \left( \text{Sigmoid}(\alpha \cdot x_{ij}^h) - \text{Sigmoid}(\alpha \cdot x_{ij}^l) \right)Hic=j∑(Sigmoid(α⋅xijh)−Sigmoid(α⋅xijl))
Hc={i,Hic}i=0255H^{c}=\left\{i, H_{i}^{c}\right\}_{i=0}^{255}Hc={i,Hic}i=0255
- HicH_i^cHic:第c类语义子图中,强度等级i的“有效像素计数”(连续值);
- 扩展:对G、B通道重复上述过程,得到完整的RGB三通道微分直方图。
步骤4:L1损失约束(颜色一致性优化)
最后,通过L1损失约束增强图像子图的微分直方图(Hc(I^h)H^c(\hat{I}_h)Hc(I^h))与真实图像子图的微分直方图(Hc(Ih)H^c(I_h)Hc(Ih))的差异,确保增强后的语义区域颜色分布与真实场景一致,SCH Loss的最终公式为:
LSCH=∑c=0class∥Hc(Ih)−Hc(I^h)∥1\mathcal{L}_{S C H}=\sum_{c=0}^{class} \left\| H^{c}(I_{h}) - H^{c}(\hat{I}_{h}) \right\| _{1}LSCH=c=0∑classHc(Ih)−Hc(I^h)1
- IhI_hIh:真实正常光图像(Ground Truth);
- I^h\hat{I}_hI^h:增强后的图像;
- ∑c\sum_c∑c:对所有语义类别求和,确保全图所有区域的颜色一致性;
2.3 语义引导对抗损失
语义引导对抗损失(Semantic-Guided Adversarial Loss, SA Loss) 是解决传统对抗损失“无法定位‘假区域’、视觉质量与人类感知脱节”问题的核心组件。其核心目标是通过语义信息引导判别器精准定位低光图像增强中的“不自然区域”,同时结合全局与局部对抗约束,生成更符合人类视觉感知的自然纹理,进一步提升增强结果的视觉真实性。SA Loss的核心逻辑可概括为:“以语义分割结果为引导,分别设计全局语义对抗损失(约束整体真实性)和局部语义对抗损失(约束关键区域细节),二者加权融合形成最终对抗约束”,具体围绕以下两个关键设计展开:
- 全局语义引导:将增强图像与语义分割特征(Softmax前输出)拼接,让判别器在判断“真实/虚假”时,同时参考语义属性,确保增强结果的纹理与语义类别匹配(如“天空”不出现虚假细节);
- 局部语义引导:基于语义分割图筛选“最可能为假的局部patch”(而非随机选择),让判别器聚焦于语义上“最需优化的区域”(如“汽车表面的虚假反光”“墙面的颜色断层”),提升对抗训练的针对性。
下面我们详细介绍语义对抗损失实现与步骤:
SA Loss由全局语义对抗损失(Lglobal\mathcal{L}_{global}Lglobal) 和局部语义对抗损失(Llocal\mathcal{L}_{local}Llocal) 两部分组成,最终通过加权求和(此处权重为1,实验验证该比例最优)形成总损失,公式为:
LSA=Lglobal+Llocal\mathcal{L}_{SA} = \mathcal{L}_{global} + \mathcal{L}_{local}LSA=Lglobal+Llocal
以下分别详解两部分的实现逻辑与步骤:
局部语义对抗损失(Llocal\mathcal{L}_{local}Llocal):精准定位“假区域”
局部语义对抗损失的核心是“基于语义分块选择‘最差patch’”,让判别器聚焦于最不自然的区域进行优化,具体步骤如下:
步骤1:基于语义图生成局部候选patch
利用SKB输出的语义分割图,结合增强图像(IoutI_{out}Iout)生成语义对齐的局部patch集合(P′P'P′):
- patch来源:复用SCH Loss中“剔除边界像素后的精炼语义子图(P′P'P′)”,每个patch对应一个语义类别(如“汽车patch”“天空patch”),确保块与语义属性绑定;
步骤2:筛选“最差假patch”(PtP^tPt)
从候选patch集合P′P'P′中,选择判别器(D)判定为“最虚假”的patch作为“目标假patch(PtP^tPt)”,公式为:
xf=Pt,D(Pt)=min(D(P0),D(P1),...,D(Pclass))x_f = P^t, \quad D(P^t) = \min\left(D(P^0), D(P^1), ..., D(P^{class})\right)xf=Pt,D(Pt)=min(D(P0),D(P1),...,D(Pclass))
- xf∼pfakex_f \sim p_{fake}xf∼pfake:目标假patch属于“虚假分布”,是增强结果中最需优化的区域;
- D(Pc)D(P^c)D(Pc):判别器对第c类语义patch的“真实度评分”(值越小,判定为“虚假”的概率越高);
- 核心逻辑:通过语义patch的真实度排序,让判别器和生成器(增强网络)优先优化“语义上最不自然的区域”,避免传统随机patch的优化分散问题。
步骤3:局部对抗损失计算
以“目标假patch(xfx_fxf)”和“真实图像随机patch(xr∼prealx_r \sim p_{real}xr∼preal)”为输入,通过MSE损失(实验验证MSE比交叉熵更适合纹理优化)约束判别器与生成器的对抗训练,公式为:
Llocal=minGmaxDExr∼prealMSE(D(xr),0)+Exf∼pfakeMSE(D(xf),1)\mathcal{L}_{local} = \min_G \max_D \mathbb{E}_{x_r \sim p_{real}} MSE\left(D(x_r), 0\right) + \mathbb{E}_{x_f \sim p_{fake}} MSE\left(D(x_f), 1\right)Llocal=GminDmaxExr∼prealMSE(D(xr),0)+Exf∼pfakeMSE(D(xf),1)
全局语义对抗损失(Lglobal\mathcal{L}_{global}Lglobal):约束整体语义一致性
全局语义对抗损失的核心是“让判别器结合语义信息判断整体图像的真实性”,确保增强结果的全局纹理与语义类别匹配,具体步骤如下:
步骤1:全局输入特征构建
为让判别器感知语义属性,将增强图像(IoutI_{out}Iout)与语义分割网络的中间特征(Iseg′I_{seg}'Iseg′) 进行拼接,形成全局对抗的输入特征:
- Iseg′I_{seg}'Iseg′:SKB(HRNet)输出的“Softmax前特征”,包含更丰富的语义上下文信息(如区域边界、类别概率),而非仅含类别标签的独热编码;
- 拼接方式:通道维度拼接(如IoutI_{out}Iout为3通道RGB,Iseg′I_{seg}'Iseg′为C通道语义特征,拼接后为3+C通道特征),确保判别器在处理图像时同步参考语义信息。
步骤2:全局对抗损失计算
以“拼接后的全局特征(xfx_fxf)”和“真实图像(xr∼prealx_r \sim p_{real}xr∼preal)”为输入,通过MSE损失约束全局真实性,公式为:
Lglobal=minGmaxDExr∼prealMSE(D(xr),0)+Exf∼pfakeMSE(D(xf,Iseg′),1)\mathcal{L}_{global} = \min_G \max_D \mathbb{E}_{x_r \sim p_{real}} MSE\left(D(x_r), 0\right) + \mathbb{E}_{x_f \sim p_{fake}} MSE\left(D(x_f, I_{seg}'), 1\right) Lglobal=GminDmaxExr∼prealMSE(D(xr),0)+Exf∼pfakeMSE(D(xf,Iseg′),1)
- 核心逻辑:判别器需同时基于“像素纹理”和“语义属性”判断真实性,例如:若“天空区域”出现尖锐边缘(语义上不应存在),判别器会判定为“虚假”,倒逼生成器修正该区域为平滑纹理。
三、实验结果
本文针对提出的语义感知知识引导框架(SKF),在6个低光图像数据集(LOL、LOL-v2、MEF、LIME、NPE、DICM)上设计了全面的定量与定性实验,验证SKF对不同低光图像增强(LLIE)基线模型的性能提升效果。
1、定量实验结果
定量实验从“配对数据集性能提升”“无配对数据集性能提升”展开,全面量化SKF的有效性。
1.1. 配对数据集(LOL/LOL-v2):全参考指标提升
实验结果显示,所有搭载SKF的模型均较基线模型实现显著且稳定的性能提升,关键数据如下表(核心模型对比):
核心结论:
- 整体提升:所有SKF模型在LOL/LOL-v2上的PSNR平均提升1.750 dB/1.611 dB,SSIM平均提升0.041/0.037,LPIPS平均降低0.058/0.062,证明SKF能从“信号保真度”“结构一致性”“感知相似度”三个维度优化增强效果;
- SOTA表现:LLFlow-L-SKF在LOL/LOL-v2的PSNR分别达26.798 dB/28.451 dB,SSIM达0.879/0.905,成为当前该任务的最优方法之一;
- 通用性验证:无论是早期模型(RetinexNet,BMVC’18)还是最新模型(LLFlow,AAAI’22),SKF均能有效适配,验证其通用框架属性。
1.2. 无配对数据集(MEF/LIME/NPE/DICM):无参考指标提升
由于无配对数据集缺乏Ground Truth,仅采用NIQE(无参考视觉质量指标)评估,结果显示SKF模型的视觉自然度显著优于基线:
- 平均提升:所有SKF模型在4个无配对数据集上的NIQE平均降低0.519,其中KinD+±SKF表现最优,在DICM数据集的NIQE达3.538(基线KinD++为3.708),RetinexNet-SKF在MEF数据集的NIQE达3.632(基线RetinexNet为4.149);
- 场景适配性:在“低光室内(DICM)”“低光室外(LIME)”场景中,SKF模型均稳定降低NIQE,证明其对不同低光场景的适配能力。
2、定性实验结果
定性实验通过视觉对比图(LOL数据集图4、LIME数据集图5)直观展示SKF的优化效果,核心改进体现在“颜色偏差修正”“噪声与伪影消除”“细节纹理保留”三个维度:
3、实验结论
综合定量与定性实验结果,可得出以下核心结论:
- 有效性:SKF能显著提升LLIE模型的性能,在配对数据集上平均提升1.750 dB PSNR、0.041 SSIM,在无配对数据集上降低0.519 NIQE,且LLFlow-L-SKF达SOTA;
- 通用性:SKF可灵活嵌入Retinex-based/端到端模型,适配不同低光场景(室内/室外、配对/无配对),通用框架属性明确;
- 组件必要性:SE模块(特征细化)、SCH损失(颜色约束)、SA损失(纹理优化)协同作用,缺一不可,共同构成SKF的性能支撑;
- 感知对齐性:定性结果证明SKF能修正颜色偏差、消除伪影、保留细节,增强结果更符合人类主观感知,解决了传统模型“定量达标但视觉违和”的问题。
四、总结
-
本文聚焦低光图像增强(LLIE)任务中“现有方法全局均匀处理、忽略语义信息导致颜色偏差与纹理不自然”的核心问题,提出了语义感知知识引导框架(SKF)。从“特征级”和“损失级”双维度融入语义先验:特征级通过语义感知嵌入(SE)模块,利用转置注意力实现语义特征与图像特征的跨模态交互,细化图像特征;损失级则设计语义引导颜色直方图(SCH)损失(按语义分块保留局部颜色一致性)与语义引导对抗(SA)损失(结合语义定位“假区域”提升纹理自然度),并通过总损失函数协同优化。
-
当前SKF依赖预训练HRNet(SKB)提供语义先验,但SKB的语义类别固定(基于PASCAL-Context数据集),面对训练集中未包含的“未知语义类别”(如特殊场景中的“无人机”“充电桩”)时,SE模块的语义引导会失效,SCH与SA损失也无法针对性约束,导致这些区域仍可能出现颜色偏差或纹理不自然(文中结论也提及“处理未知类别时改进有限”)。对此,可设计动态语义权重机制:在训练阶段,为SKB输出的语义类别分配“置信度权重”——对于模型预测置信度高的“已知类别”(如“汽车”“天空”),维持原有SE、SCH、SA的强约束权重;对于置信度低的“潜在未知类别”(如预测概率低于阈值的区域),降低固定语义约束权重。
感谢阅读,欢迎留言或私信,一起探讨和交流。
如果对你有帮助的话,也希望可以给博主点一个关注,感谢。