当前位置: 首页 > news >正文

【LLIE专题】BEM:一对多映射,贝叶斯增强模型

在这里插入图片描述


BEM:一对多映射,贝叶斯增强模型(2025)

  • 专题介绍
  • 一、研究背景
  • 二、方法细节
    • 2.1 Stage1 BNN阶段
    • 2.2 Stage2 DNN阶段
    • 2.3 推理策略
  • 三、实验论证
  • 四、总结和思考

本文将对《Bayesian Neural Networks for One-to-Many Mapping in Image Enhancement》这篇文章进行解读。该论文利用贝叶斯神经网络(BNN)来捕捉数据不确定性并产生多样化的输出,以表征实际退化图的一对多映射,为不同暗光增强任务或需求提供灵活的推理方案。
参考资料如下:
[1]. BEM论文地址
[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

一、研究背景

在低光/水下图像增强任务中,同一退化图像可能对应多种合理增强结果(因光照、色彩等动态条件变化),而传统DNN只能生成单一输出。同时现有数据集(如LOL、UIEB)包含部分低质量标注,DNN会过拟合到劣质标签,导致增强效果不佳。

另一方面图像增强质量高度主观,需模型具备生成多样化输出的能力。确定性模型(如RetinexFormer等)在动态场景下泛化性差,而生成模型(如扩散模型)计算开销大,难以实时应用。

在这里插入图片描述

为解决这些问题,该论文提出了一种贝叶斯增强模型(BEM),关键点总结如下。

  • 首次将BNN应用于图像增强的一对多映射问题
    • 利用贝叶斯神经网络(BNN)来捕捉数据不确定性并产生多样化的输出,即通过权重采样生成多样化增强结果。
  • 动态动量先验(Momentum Prior)
    • 针对BNN在高维权重空间中易欠拟合的问题,提出动态更新的先验分布,通过指数移动平均(EMA)平滑参数更新,加速收敛并提升性能。
  • 两阶段BNN+DNN框架
    • 为实现实时推理,引入了一种两阶段方法:第一阶段采用BNN在低维空间中建模一对多映射,基于策略选择合适解作为第二阶段输入的;第二阶段使用确定性神经网络(DNN)细化图像细节。
  • 灵活推理策略
    • 蒙特卡洛(MC)预测:平均多个采样结果,鲁棒性强。
    • 基于排序的预测:利用无参考质量评估(如CLIP-IQA)选择最优候选,适应主观审美需求。

二、方法细节

整体框架如下:

在这里插入图片描述
图中有两个流程,虚线训练流程实线推理流程。我们先来看看理论推导部分,如果不感兴趣的话,可以直接跳到2.1节

对于确定性DNN而言,当输入xxx不相同时,输出yyy肯定也不相同。作者认为,当一个输入能够对应多个似乎合理的输出时,这种确定性就不适用了。于是作者通过贝叶斯估计将不确定性引入网络权重www,从而获得权重w∼P(w∣y,x)\mathbf{w} \sim P(\mathbf{w} | \mathbf{y}, \mathbf{x})wP(wy,x)的后验分布。在推理过程中,从该分布中采样权重。权重的后验分布表示为
P(w∣y,x)=P(y∣x,w)P(w)P(y∣x)P(\mathbf{w}|\mathbf{y}, \mathbf{x}) = \frac{P(\mathbf{y}|\mathbf{x}, \mathbf{w})P(\mathbf{w})}{P(\mathbf{y}|\mathbf{x})}P(wy,x)=P(yx)P(yx,w)P(w)

为了便于求解,基于变分推理(variational inference,VI)思路,用更易于处理的分布q(w∣θ)q(\mathbf{w} | \mathbf{\theta})q(wθ)近似P(w∣y,x)P(\mathbf{w} | \mathbf{y}, \mathbf{x})P(wy,x)

  • 真实后验分布:像一片复杂的山脉,高高低低很难描述。
  • 变分后验分布:用一座光滑的小山丘(高斯分布)去近似这片山脉。虽然不完全一样,但能够尽量接近就行,且容易计算。

这样就可以从q(w∣θ)q(\mathbf{w} | \mathbf{\theta})q(wθ)分布中采样得到权重www。对于θ{\theta}θ,可以用KL散度求解
θ⋆=arg⁡min⁡θKL[q(w∣θ)∥P(w∣y,x)]=arg⁡min⁡θ∫q(w∣θ)log⁡q(w∣θ)P(w)P(y∣x,w)dw=arg⁡min⁡θ−Eq(w∣θ)[log⁡P(y∣x,w)]+KL[q(w∣θ)∥P(w)]\begin{align*} \theta^\star &= \arg\min_\theta \text{KL} \left[ q(\mathbf{w}|\boldsymbol{\theta}) \parallel P(\mathbf{w}|\mathbf{y}, \mathbf{x}) \right] \\ &= \arg\min_\theta \int q(\mathbf{w}|\boldsymbol{\theta}) \log \frac{q(\mathbf{w}|\boldsymbol{\theta})}{P(\mathbf{w})P(\mathbf{y}|\mathbf{x}, \mathbf{w})} \, \text{d}\mathbf{w} \\ &= \arg\min_\theta -\mathbb{E}_{q(\mathbf{w}|\boldsymbol{\theta})} \left[ \log P(\mathbf{y}|\mathbf{x}, \mathbf{w}) \right] \\ &\quad\quad\quad + \text{KL} \left[ q(\mathbf{w}|\boldsymbol{\theta}) \parallel P(\mathbf{w}) \right] \end{align*}θ=argθminKL[q(wθ)P(wy,x)]=argθminq(wθ)logP(w)P(yx,w)q(wθ)dw=argθminEq(wθ)[logP(yx,w)]+KL[q(wθ)P(w)]

于是,损失函数可以定义为
L(x,y,θ)=−Eq(w∣θ)[log⁡P(y∣x,w)]⏟data-dependent term+KL[q(w∣θ)∥P(w)]⏟prior matching term\mathcal{L}(\mathbf{x}, \mathbf{y}, \boldsymbol{\theta}) = \underbrace{-\mathbb{E}_{q(\mathbf{w}|\boldsymbol{\theta})} \left[ \log P(\mathbf{y}|\mathbf{x}, \mathbf{w}) \right]}_{\text{data-dependent term}} + \underbrace{\text{KL} \left[ q(\mathbf{w}|\boldsymbol{\theta}) \parallel P(\mathbf{w}) \right]}_{\text{prior matching term}}L(x,y,θ)=data-dependent termEq(wθ)[logP(yx,w)]+prior matching termKL[q(wθ)P(w)]

在训练BNN神经网络时,需要对参数随机采样(比如从高斯分布中抽一个随机数)。但直接随机采样来获取www会导致梯度无法回传(因为随机操作是“不可导的”)。于是要把随机性转移到一个固定的“噪声源”上: w=μ+σ×ϵw=μ+σ×ϵw=μ+σ×ϵ,其中 ϵ∼N(0,I)ϵ∼N(0, I)ϵN(0,I)μμμσσσ 是网络可学习的参数。ϵϵϵ 是从标准正态分布采样的随机噪声(固定分布,与网络无关)。这样既保留了随机性,又能正常训练网络!

进一步,通过将先验参数更新为变分后验参数的指数移动平均(EMA)来提出动态先验。将P(w)=N(w;μtEMA,σtEMA2I)P(\mathbf{w}) = \mathcal{N}(\mathbf{w}; \boldsymbol{\mu}_t^{\text{EMA}}, {\boldsymbol{\sigma}_t^{\text{EMA}}}^2 \mathbf{I})P(w)=N(w;μtEMA,σtEMA2I)变为
μ0EMA=0,σ0EMA=σo1,μtEMA=βμt−1EMA+(1−β)μt,t=1...T,σtEMA=βσt−1EMA+(1−β)σt,t=1...T,\begin{align*} \boldsymbol{\mu}_0^{\text{EMA}} &= \mathbf{0}, \quad \boldsymbol{\sigma}_0^{\text{EMA}} = \sigma^{\text{o}} \mathbf{1}, \\ \boldsymbol{\mu}_t^{\text{EMA}} &= \beta \boldsymbol{\mu}_{t-1}^{\text{EMA}} + (1 - \beta) \boldsymbol{\mu}_t, \quad t = 1...T, \\ \boldsymbol{\sigma}_t^{\text{EMA}} &= \beta \boldsymbol{\sigma}_{t-1}^{\text{EMA}} + (1 - \beta) \boldsymbol{\sigma}_t, \quad t = 1...T, \end{align*}μ0EMAμtEMAσtEMA=0,σ0EMA=σo1,=βμt1EMA+(1β)μt,t=1...T,=βσt1EMA+(1β)σt,t=1...T,
也就是在每一轮迭代中,针对每个minibatch,都会按上式来做更新。其实是比较常见的策略,让参数更新更加稳定。其中β\betaβ为EMA衰减率。

最终损失函数可以表征为下式
Lmini(x,y,θ)=−Eq(w∣θ)[log⁡P(y∣x,w)]⏟data-dependent term+1MKL[q(w∣θ)∥P(w)]⏟prior matching term,=1M[∑iMEw∼q(w∣θ)∥F(xi;w)−yi∥22⏟data-dependent term+log⁡σtEMAσ+σ2+(μ−μtEMA)22σtEMA2−12⏟prior matching term],\begin{align*} \mathcal{L}^{\text{mini}}(\mathbf{x}, \mathbf{y}, \boldsymbol{\theta}) &= \underbrace{-\mathbb{E}_{q(\mathbf{w}|\boldsymbol{\theta})} \left[ \log P(\mathbf{y}|\mathbf{x}, \mathbf{w}) \right]}_{\text{data-dependent term}} + \underbrace{\frac{1}{M} \text{KL} \left[ q(\mathbf{w}|\boldsymbol{\theta}) \parallel P(\mathbf{w}) \right]}_{\text{prior matching term}}, \\ &= \frac{1}{M} \bigg[ \underbrace{\sum_{i}^M \mathbb{E}_{\mathbf{w} \sim q(\mathbf{w}|\boldsymbol{\theta})} \left\| F(\mathbf{x}^i; \mathbf{w}) - \mathbf{y}^i \right\|_2^2}_{\text{data-dependent term}} \\ &\quad + \underbrace{\log \frac{\boldsymbol{\sigma}_t^{\text{EMA}}}{\sigma} + \frac{\sigma^2 + (\boldsymbol{\mu} - \boldsymbol{\mu}_t^{\text{EMA}})^2}{2 {\boldsymbol{\sigma}_t^{\text{EMA}}}^2} - \frac{1}{2}}_{\text{prior matching term}} \bigg], \end{align*}Lmini(x,y,θ)=data-dependent termEq(wθ)[logP(yx,w)]+prior matching termM1KL[q(wθ)P(w)],=M1[data-dependent termiMEwq(wθ)F(xi;w)yi22+prior matching termlogσσtEMA+2σtEMA2σ2+(μμtEMA)221],

BNN在每次前向过程中,可以从变分后验分布中采样到一组权重,从而可针对同一个输入获得多个不同的输出。

直接用BNN实现高分辨率的端到端增强会非常耗时,于是作者设计了双阶段方案,第一阶段利用BNN对低维粗信息中的一对多映射进行建模,第二阶段利用DNN对原始高维空间中的高频细节进行细化。

2.1 Stage1 BNN阶段

BNN低维度信息建模,实现1对多映射。

可以这样做的主要原因是亮度和颜色在低维度空间中也能有效表征。当然,太小肯定也不行。

首先对输入的做预处理,包括低通滤波(LP)+ 下采样(r=1/16)至低维空间,避免空间混叠,减少计算量。其中的LP是通过FFT实现的。然后将低维度数据输入至BNN,这里使用了Instance Normalization,以更好地捕捉高对比度局部光照。其他网络结构并不太重要,关键在于其权重服从变分后验分布 q(w∣θ)q(w∣θ)q(wθ)就行。经过模型后的输出再做一次上采样,得到粗映射结果zzz。采样方式为双线性,整个过程可用下式表征,
z=Up(F(Down(LP(x),r);w)),w∼q(w∣θ)\mathbf{z} = \text{Up}(F(\text{Down}(\text{LP}(\mathbf{x}), r); \mathbf{w})), \quad \mathbf{w} \sim q(\mathbf{w}|\boldsymbol{\theta})z=Up(F(Down(LP(x),r);w)),wq(wθ)

第一阶段的zzz相当于增强后的光照条件,进一步将输入xxx与粗预测zzz相结合,得到目标y的第一阶段预测,记为y~\tilde{\mathbf{y}}y~
y~=(x+αz)∗z\tilde{\mathbf{y}} = (\mathbf{x} + \alpha \mathbf{z}) * \mathbf{z}y~=(x+αz)z
其中α\alphaα是一个比较小的系数。直接简单相加(x+zx+zx+z)会丢失原始图像的高频细节;直接相乘(x∗zx∗zxz)会放大输入图像中的噪声。最终y~\tilde{\mathbf{y}}y~yyy进行Lmini\mathcal{L}^{\text{mini}}Lmini损失计算。

2.2 Stage2 DNN阶段

这个阶段就比较简单了,直接选个好一点的模型作为Backbone,论文分别采用了transformer和mamba作为Backbone来测试。其中需要关注的点就是训练和推理两个阶段的输入有所不同。

  • 推理阶段:拼接原始图像 xxx与上采样的粗预测 Up(z∗)Up(z∗)Up(z),作为第二阶段模型输入
  • 训练阶段:使用真实粗标签LP(x2+4αy−x2α)\text{LP} \left( \frac{\sqrt{\mathbf{x}^2 + 4\alpha \mathbf{y} - \mathbf{x}}}{2\alpha} \right)LP(2αx2+4αyx)代替第一阶段的结果,避免DNN将多输出回归为单一结果。(这公式就是解一元二次方程得到的)

其实这个阶段就专注于微调,保留多样性,若用不同的结果去训练,相当于前面的多样性就没价值了。

2.3 推理策略

真正推理时,在第一阶段和第二阶段中间还有一步,那就是从第一阶段的多个输出中选择一个。选择的策略可以根据任务应用去制定,论文里测试了两种方式,

  • 蒙特卡洛(MC):平均 KKKzk​z_k​zkz∗z∗z,适合鲁棒性场景。
  • 基于排序:通过IQA(如CLIP-IQA、NIQE)评分选择最优 z∗z∗z,支持文本引导的个性化增强(论文中采用的默认文本为“明亮、自然、质量好的照片”)。

完整的双阶段推理伪码如下,还是比较直观的。
在这里插入图片描述
通过这种设计,消除了产生多个冗余输出的需要,显著加快了推理速度。且此策略可以用于大多数LLIE网络方案。

三、实验论证

针对暗光增强和水下增强分别做了实验。

  • 暗光增强(LLIE):LOL-v1/v2(配对)、LIME/NPE/MEF(非配对)。
  • 水下增强(UIE):UIEB-R90(配对)、U45/UCCS(非配对)。

定量分析
BEM在PSNR/SSIM/LPIPS上全面超越SOTA(如RetinexFormer、GLARE)。且Mamba骨干优于Transformer。灰色部分是通过100次采样选择最优结果,展示了该方法的潜力。
在这里插入图片描述
无参考指标的表现也不错。
在这里插入图片描述

另外,初始化的σ对结果也是有影响,太大太小都会导致效果下降,图中0.05时指标最佳。
在这里插入图片描述

定性分析
下图是从输入到输出的一对多映射的可视化。这些预测是根据三个指标进行排序的:PSNR, CLIP-IQA和NIQE,它们反映了图像质量的不同方面。
在这里插入图片描述
不确定性可视化:阴影区域不确定性低,光照区域高,符合一对多映射的物理意义。
在这里插入图片描述
不同策略的可视化:当数据集有噪声干扰时,虽然由于平均效果,MC输出避免了最差的结果,但它仍然可能无法满足审美期望。相比之下,CLIP-IQA在不需要数据清洗的情况下获得了美观的结果,这使得它对带有低质量数据的数据集兼容度更高。

在这里插入图片描述
其他方案视觉效果对比
在这里插入图片描述

论文末尾还有一些消融实验的分析,证明了所用策略的有效性。这里不在赘述,感兴趣的可以看一下原文附录部分。

作者还提到了很关键的一个点,要想PSNR高,就让亮度分布与GT尽量接近即可。但GT如果质量也差,那么增强结果就无法带来感知质量的提升。因此,没必要一味追求PSNR。
在这里插入图片描述

四、总结和思考

该论文提出了首个基于BNN的图像增强框架BEM,解决一对多映射问题。为图像增强的不确定性建模提供新思路,尤其适用于动态场景和标签噪声数据。更进一步,可将该策略扩展至其他视觉任务(如超分或降噪)

或许会有人觉得这种跑多次选最佳的方式有点“赖皮”,这就仁者见仁智者见智了。

或许还会有人觉得现实中不仅有一对多映射,还有多对一映射(同一高质量场景受到不同的暗光退化),这种情况如何解决?关注本专栏,后续将介绍多对一的新思路。❤️


感谢阅读,欢迎留言或私信,一起探讨和交流。
如果对你有帮助的话,也希望可以给博主点一个关注,感谢。

http://www.dtcms.com/a/341223.html

相关文章:

  • Deepseek+python自动生成禅道测试用例
  • 将集合拆分成若干个batch,并将batch存于新的集合
  • WMS仓储管理系统如何解决仓库的呆滞库存
  • 鸿蒙安卓前端中加载丢帧:ArkWeb分析
  • 第5.7节:awk赋值运算
  • IPSEC安全基础
  • Qt 中最经典、最常用的多线程通信场景
  • TDengine IDMP 运维指南(数据导入导出)
  • WIN10/WIN11:无法下载所有必需的文件 0x80072EE2 0x20000(未解决)
  • C++ std::sort的应用总结
  • Unity 大量子弹和小怪碰撞检测优化
  • GSPO:Towards scalable reinforcement learning for language models
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型和EasyOCR实现汽车牌照动态检测和识别(C#代码,UI界面版)
  • 使用UUP dump制作windows preview镜像
  • 手机、汽车如何实现卫星直连
  • imx6ull-驱动开发篇31——Linux异步通知
  • 玩转QEMU硬件模拟器 - Raspberry Pi OS驱动开发
  • 【项目复盘】【四轴飞行器设计】驱动开发部分
  • Redis 安装教程
  • 【数据结构之二叉树】
  • 【openssl】openssl CA.pl 签发证书操作步骤
  • redis执行lua脚本的原子性和数据库原子性的区别
  • [激光原理与应用-315]:光学设计 - SolidWorks, 光机系统设计的神器,打通光学与机械设计的闭环
  • Tomcat部署与HTTP协议详解
  • 佳维视工业一体机在公共交通系统配套中的应用
  • 疯狂星期四文案网第45天运营日记
  • LTspice仿真电路:(三十五)LED恒流驱动仿真(LT3497)
  • burpsuite+captcha-killer插件识别图片验证码进行爆破
  • AiPy 文档自动化处理实践:从 docx 到结构化 db 的高效转换方案
  • 华为仓颉语言的class(类)初步