← 返回 PaperDaily 视觉与图像

CVPR 2026新去雾:BPUL让四个主干都涨点

去雾这事最烦的不是“有雾”,而是雾还会挑地方、挑光照、挑场景。BPUL的思路很直接:别假装雾是确定性的,先把不确定性拎出来,再用物理一致性和对比约束把模型拽回正轨。😊

CVPR 2026新去雾:BPUL让四个主干都涨点
🐉 龙哥读论文知识星球来了!
公众号每日8篇拆解不够看?星球无上限更AI领域论文、资讯、招聘、招博、开源代码,一站式干货,每日2分钟刷完即赚! 👇扫码加入「龙哥读论文」知识星球,前沿干货、实用资源一站式拿捏~ xingqiu_header

龙哥导读:
去雾这事最烦的不是“有雾”,而是雾还会挑地方、挑光照、挑场景。BPUL的思路很直接:别假装雾是确定性的,先把不确定性拎出来,再用物理一致性和对比约束把模型拽回正轨。😊


原论文信息如下:
论文标题:
Backbone-Agnostic Perturbation-Induced Uncertainty Learning for End-to-End Real-World Image Dehazing
发表日期:
2026年07月
发表单位:
Wuhan University
原文链接:
https://arxiv.org/pdf/2607.11623v1.pdf

真实世界去雾为何困难重重?从不确定性出发

真实世界去雾最烦的地方,不是“雾很大”,而是“雾很会演”。同一张图里,左边可能是薄雾,右边可能是浓雾;远处有天空光,近处有遮挡物,亮处和暗处的退化程度还不一样。模型如果还把它当成一个简单的“输入一张雾图,输出一张清图”的确定性映射,往往就会出现两个老毛病:一是细节被抹平,二是颜色开始飘。
这篇论文的切入点很直接:真实去雾里最难的,不只是恢复图像本身,而是处理“退化到底有多不确定”这件事。 也就是说,雾不是一层均匀的灰纱,而是会随着空间位置、光照条件、场景结构和成像过程不断变化的复杂退化。只盯着像素误差,模型很容易学到“看起来差不多”的答案,但不一定是物理上说得通的答案。
图:经典大气散射模型
图:经典大气散射模型。这里 I(x) 是有雾图像,J(x) 是无雾辐射,t(x) 是透射率,A 是大气光。这个公式看着朴素,实际很“狡猾”:它告诉人们雾图不是凭空来的,而是清晰内容和退化过程混在了一起;问题在于,真实场景里 t(x)A 往往并不稳定,估计错一点,后面就容易一路跑偏。
传统方法喜欢先估计透射率和大气光,再代回物理模型;深度学习方法则更干脆,直接端到端学一个映射。问题是,真实去雾的数据里,雾的形态太复杂,监督信号再强,也很难把所有歧义都消掉。于是模型表面上学的是“清图”,实际上可能在偷偷记忆“哪些雾区更容易出错”。BPUL 的价值就在这里:它不再假装这种不确定性不存在,而是把它显式拎出来,变成可学习、可约束、可利用的信号。
顺手解释一下标题里的缩写:BPULBackbone-Agnostic Perturbation-Induced Uncertainty Learning,中文可理解为“与主干无关的扰动诱导不确定性学习”。简单说,就是不重做一套去雾网络,而是把一个“看穿雾有多不稳定”的插件,塞进现有主干里。

即插即用新框架BPUL:三大组件各司其职

BPUL 的设计很像“给现有去雾模型加三道保险”。第一道保险是 LPUM,负责在特征层里找出哪些通道、哪些位置对扰动最敏感;第二道保险是 PURM,负责把恢复结果再“倒推回去”,检查它能不能解释原始雾图;第三道保险是 D3CL,也就是 Dual-space Domain-diversified Distribution-aware Contrastive Loss,中文可译为“双空间、域多样化、分布感知对比损失”。
图1:BPUL嵌入主干网络的整体结构
图1:BPUL 嵌入分层编码器—解码器恢复网络的整体结构。绿色 Block 表示原有主干模块,BPUL 以插拔式方式嵌入,不改主干拓扑。这个图最重要的信息只有一句:BPUL 不是另起炉灶,而是在现有网络上加“去雾不确定性雷达”。
这三个模块的分工很清楚。LPUM 负责“看哪里不稳”,PURM 负责“恢复结果能不能解释雾”,D3CL 负责“别只学一个干净答案,要把真实雾域和合成雾域都拉开”。训练时三者一起上;推理时只保留 LPUM,PURM 和对比损失都下线。这个安排很务实,因为产品部署最怕的不是训练时多算一点,而是上线后还要背一堆辅助分支的包袱。
图2:LPUM模块示意图
图2:LPUM 模块示意图。它先估计通道级和空间级扰动分布,再根据扰动前后特征的差异生成不确定性响应,最后把这些响应转成特征调制权重。说白了,LPUM 干的不是“随机加噪”,而是“用可学习扰动把模型最不放心的地方照出来”。
这套思路的好处在于,它不要求换掉原来的去雾骨架。无论是卷积网络、Transformer,还是混合骨架,只要中间能拿到特征图,就能往里塞 LPUM。对工程实现来说,这种“骨架无关”比重新发明一套网络友好得多;对论文来说,也更容易证明方法本身不是某个主干的专属外挂。

核心揭秘:如何通过可学习的扰动感知不确定性?

LPUM 的核心逻辑其实不绕:先在特征图里“轻轻拨一下”,再观察哪里反应最强。反应越强,说明这个位置或通道对退化越敏感,也就越值得在后续恢复里重点照顾。它把“不确定性”从一个抽象概念,变成了特征响应差异。
公式:通道扰动分布预测
公式含义:先对特征做全局平均池化,再预测每个通道的均值和对数标准差。这里的 GAPGlobal Average Pooling,中文是“全局平均池化”。它的作用很朴素:先把整张特征图压缩成全局摘要,再判断每个通道该怎么扰动。
公式:通道扰动采样
公式含义:通过重参数化采样得到通道扰动 Ncεc 服从高斯分布,μcσc 是预测出来的分布参数。重参数化的好处是,采样这件事也能反向传播,不会把梯度链条掐断。
公式:通道不确定性响应
公式含义:把原特征和扰动后特征做一次“逆对齐”比较,得到通道差异 Dc。如果某个通道一扰动就乱,那它大概率承载了对雾很敏感的信息;如果几乎不动,说明它更稳。这个设计比单纯看注意力图更像是在“做体检”。
公式:通道调制权重
公式含义:把通道差异压缩成调制权重 Wc。后面的 sigmoid 让权重落在合理范围内,避免某些通道被“放飞自我”。
空间分支也是类似思路,只不过这次关注的是“哪里不稳”,而不是“哪个通道不稳”。它先在空间维度预测扰动分布,再把扰动打进去,比较扰动前后响应差,最后生成空间调制图。这样一来,模型既知道“哪类语义容易受雾影响”,也知道“图上哪一块最该优先修”。
公式:空间扰动分布预测
公式含义:空间扰动分布由当前特征直接预测。这里不再做全局压缩,因为空间分支需要保留位置感。
公式:空间扰动采样
公式含义:空间扰动 Ns 也是通过重参数化采样得到。
公式:空间不确定性响应
公式含义:计算空间响应差异 Ds。它反映的是“哪些地方一被扰动就容易暴露问题”。
公式:空间调制权重
公式含义:把通道维度上的平均值和最大值拼起来,再生成空间权重 Ws。平均值看整体,最大值看峰值,两者合起来更稳。
看到这里,逻辑其实已经很清楚了:LPUM 不是在“制造随机性”,而是在“用随机扰动做探针”,把特征里最不稳定的部分找出来,再让网络对这些部分更敏感、更谨慎地处理。这个思路挺聪明,因为真实去雾里最怕的就是模型太自信,结果把雾当纹理,把纹理当雾,最后两头都没处理好。

先验与对比双重约束,让去雾更稳健

如果说 LPUM 解决的是“看哪里容易出错”,那 PURM 解决的就是“恢复结果能不能自圆其说”。它的思路很像办案:模型先给出一张清图,再把这张清图塞回大气散射模型,看看能不能重新生成原始雾图。要是复原不回去,那说明这张清图大概率只是“看着顺眼”,未必“物理上靠谱”。
图3:PURM模块示意图
图3:PURM 模块示意图。它利用透射率和大气光先验,再结合 LPUM 的扰动线索,从恢复图反向重建雾图。图中 I-LPUM 表示继承式 LPUM,不再自己重新估扰动,而是直接复用主干里的扰动信息。这个设计很关键,因为它把“前向去雾”和“后向重建”绑在了一起。
公式:雾图重建模型
公式含义:PURM 用预测的透射率 T̂(x) 和大气光 Â(x) 重新生成雾图 Î(x)。这里的核心不是“再做一次去雾”,而是“验证恢复结果是否能解释原始退化”。
公式:透射率分支的先验调制
公式含义:透射率分支把先验 Td 注入到潜特征里,通过乘性和加性两类仿射变换进行调制。这个做法比简单拼接更灵活,因为先验不只是“输入”,而是“控制信号”。
公式:大气光分支的先验调制
公式含义:大气光先验 Ad 也以同样方式调制另一条分支。透射率和大气光的作用不同,前者管“雾有多厚”,后者管“整幅图被怎样染色”,两条线索缺一条都不够稳。
公式:重建损失
公式含义:重建损失 Lrec 用 Charbonnier 惩罚来约束重建雾图和原始雾图的一致性。它比纯 L1 更平滑一点,训练时通常更稳。
图4:D3CL示意图
图4:D3CL 示意图。对比约束同时发生在“清图恢复空间”和“雾图重建空间”里,负样本还分成真实雾负样本和合成雾负样本。这个设计的意思很明确:别只把输出拉近真值,还要把它和“像雾但不是这张图”的样本拉开距离。
这里的对比学习不是老派那种“拉近正样本、推远负样本”的简单版本,而是做了两层升级。第一层升级是负样本不再只用配对里的那张雾图,而是从别的训练对里采一个真实雾负样本,这样能覆盖更广的真实退化域;第二层升级是再加一个合成雾负样本,把真实雾和合成雾的差异也纳入约束。换句话说,模型不只是学“这张图应该长什么样”,还学“什么样的雾退化都不能乱认”。
公式:随机感知特征扰动
公式含义:在 VGG 感知特征上再加随机扰动,得到分布感知特征 φ̃l(x)。这里的 VGG 指的是冻结的感知网络,用来抽取多层语义特征。论文还给了一个固定扰动比例 r=0.2,属于一种省算力的分布近似办法。
公式:正样本距离
公式含义:计算 anchor 和 positive 的特征距离 dlap
公式:负样本距离
公式含义:分别计算与真实雾负样本、合成雾负样本的距离 dlandlas。这一步的关键不是“把负样本推远”,而是“把不同退化域都考虑进去”。
公式:D3CL定义
公式含义:D3CL 把正负样本距离组合起来,并在多层 VGG 特征上求和。它的直觉非常“工程”:正样本要近,真实雾负样本要远,合成雾负样本也要远,而且不同层的语义都要管住。
公式:清图空间对比损失
公式含义:在清图恢复空间里,去雾结果 是 anchor,真值清图是 positive,负样本则来自真实雾和合成雾域。
公式:雾图空间对比损失
公式含义:在雾图重建空间里,重建雾图 Î 作为 anchor,原始雾图作为 positive,再去做同样的域多样化约束。这样就把前向恢复和后向重建统一起来了。
公式:总损失函数
公式含义:总损失由三部分组成:清图重建、雾图重建、双空间对比约束。训练时把这三股力拧在一起,模型就不太容易只顾着“像”,却忘了“对”。
这部分最值得肯定的一点,是它没有把“物理先验”和“对比学习”当成两个互不相干的花活,而是明确地把它们服务于同一个目标:让去雾结果既符合视觉质量,也符合退化逻辑。很多方法的问题就在于,视觉上看着挺好,物理上一问三不知;BPUL 至少努力让模型别这么心虚。

实验效果如何?五个数据集、四个主干网络全面验证

实验部分的看点很明确:不是只在一个小数据集上刷分,而是放到五个真实配对去雾基准上检验,而且还把 BPUL 插进了四种不同主干里。这样的实验设计比较像“真刀真枪”地测泛化能力,而不是在单一骨架上做局部修饰。
图5:定性对比结果
图5:定性对比结果。每个面板上方是恢复图,下方是相对真值的绝对误差图。误差图这玩意儿很诚实,肉眼看着“差不多”的图,一放误差图就原形毕露。BPUL 的结果通常能看到更少的残余雾和颜色偏差,结构边缘也更完整。
图6:不确定性与雾重建分析
图6:不确定性与雾重建分析。输入—真值误差图、LPUM 的空间不确定性图,以及 PURM 重建的雾图被放在一起看,能更直观地理解模块之间的关系。LPUM 强调的区域,往往就是雾退化更复杂的区域;PURM 则负责把这种退化再“还原”出来,形成闭环。
表2:LPUM与PURM消融实验
表2:LPUM 与 PURM 的消融实验。结果说明两件事:第一,通道分支和空间分支缺一不可;第二,PURM 里先验输入、潜空间仿射调制、扰动共享这几项也不是摆设。尤其是“共享扰动”这个设计,说明前向去雾和后向重建最好别各玩各的,统一起来更稳。
表3:D3CL逐步构建实验
表3:D3CL 的逐步构建实验。结果显示,普通对比损失已经有帮助,但加入非对应真实雾负样本、合成雾负样本、随机感知特征之后,收益会继续上升;最后再把约束扩展到雾图重建空间,效果最好。这个顺序很有说服力,说明每一步都不是白加的。
从整体结果看,BPUL 的提升不是“某一个数据集突然冒尖”,而是五个真实基准上比较一致地涨点,且在不同主干上都能复用。这一点很重要,因为去雾论文最怕的就是只在某个场景里灵光一现,换个场景就开始掉链子。BPUL 至少在实验上证明了:不确定性建模 + 物理一致性 + 域多样化对比 这条组合拳,在真实去雾里确实有用。
更难得的是,论文还强调了推理阶段的成本控制。PURM 和 D3CL 都只在训练时存在,真正上线时只留下轻量的 LPUM。也就是说,训练阶段可以多花点心思把模型“教明白”,部署阶段不必背着一堆辅助模块跑马拉松。这种设计对于实际系统很友好,至少不会一边喊着轻量化,一边把推理链条搞得像年终报销单一样长。

龙迷三问

下面是龙哥对于大家可能的一些问题的解答:

这篇论文到底解决了什么问题?它解决的是“真实去雾里模型总把不确定性当没看见”这个老问题。BPUL 不是只追求输出更清晰,而是把退化敏感区域、物理一致性和域间差异一起纳入训练。

LPUM、PURM、D3CL 分别是什么意思?LPUM 是扰动诱导不确定性调制器,负责找出敏感特征;PURM 是先验引导的不确定性重建模块,负责从恢复图反推雾图;D3CL 是双空间域多样化分布感知对比损失,负责把清图空间和雾图空间都约束住。

这篇方法能不能直接落地?比很多“训练时很热闹、上线时很吓人”的方法更接近落地,因为推理阶段只保留轻量 LPUM。真正需要注意的是,PURM 依赖先验估计质量,若先验很差,训练约束也会打折扣,所以它更适合配合稳定的主干和合理的数据分布使用。

如果你还有哪些想要了解的,欢迎在评论区留言或者讨论~

龙哥点评

论文创新性分数:★★★★☆

把“不确定性”从抽象概念变成可学习扰动响应,这个切口挺新;更妙的是还把它和物理重建、对比学习绑成一套,逻辑完整。

实验合理度:★★★★☆

五个真实配对数据集、四种主干、定量定性和消融都做了,验证链条比较完整;唯一要看的是不同主干接入后的实现细节是否足够统一。

学术研究价值:★★★★☆

对真实去雾这种物理退化复杂、监督又不完美的任务,有明确启发意义;尤其是“前向恢复 + 反向重建 + 域对比”这套组合,值得迁移到别的恢复任务。

稳定性:★★★☆☆

训练约束很强,但 PURM 依赖先验估计,先验质量波动时会影响稳定性;不过推理侧只保留 LPUM,部署压力不算大。

适应性以及泛化能力:★★★★☆

骨架无关是加分项,说明不是绑死某一种网络;但它仍然主要服务于真实配对去雾,跨任务泛化还需要更多验证。

硬件需求及成本:★★★★☆

训练阶段多了重建分支和对比损失,成本会升;但推理阶段只保留轻量 LPUM,实际部署负担相对可控。

复现难度:★★★☆☆

思路清楚,但涉及多模块协同、先验估计和对比采样,复现时容易在细节上出偏差;如果代码没开源,门槛会更高。

产品化成熟度:★★★☆☆

适合做高质量图像增强链路中的训练增强模块,不太像即插即用的终局方案;要进产品,还得看先验估计和不同场景的鲁棒性。

可能的问题:方法链条较长,训练目标多,先验质量和负样本采样都会影响最终收益;若数据分布变化很大,优势可能会被稀释。


主要参考文献

Bingcai Wei. Backbone-Agnostic Perturbation-Induced Uncertainty Learning for End-to-End Real-World Image Dehazing. arXiv:2607.11623v1, 2026.
He, K., Sun, J., and Tang, X. Single Image Haze Removal Using Dark Channel Prior. 2011.
Ancuti et al. I-HAZE, O-HAZE, Dense-Haze, NH-HAZE and LMHaze benchmarks.

雾太重,图太糊,模型还总爱“装作看懂了”。BPUL这类方法的价值就在于:训练时把问题掰开揉碎,部署时尽量轻装上阵。想继续追这种能落地、讲物理、还真涨点的论文,欢迎加入龙哥读论文粉丝群,扫码一起把前沿拆明白~

end
欢迎加入龙哥读论文粉丝群,扫描下方二维码或者添加龙哥助手微信号加群:kangjinlonghelper。一定要备注:研究方向+地点+学校/公司+昵称(如 图像处理+上海+清华+龙哥),根据格式备注,可更快被通过且邀请进群。
『龙哥读论文』微信群目前包含:图像处理、大模型及智能体、自动驾驶及机器人、AI医疗及AI金融5个群
wechat_helper dianzan
转发文章 微博 X LinkedIn Facebook
龙哥读论文 · PaperDaily

本文基于龙哥读论文 PaperDaily 数据库整理,结合论文原文与工程视角进行解读。