论文总结:《Self-augmented Unpaired Image Dehazing via Density and Depth Decomposition》
1. 创新点
-
物理属性建模:首次在非配对去雾任务中引入雾的密度(散射系数)和场景深度分解,利用物理模型(大气散射方程)指导网络学习,解决了传统CycleGAN方法生成雾效不真实的痛点。
-
自增强机制:通过估计深度,模型能动态生成不同密度的雾图(比如近景薄雾、远景厚雾),相当于给训练过程“加难度”,提升去雾网络的泛化能力。
-
伪监督策略:无需真实深度或散射系数标签,而是通过循环框架中的伪标签(如用雾图预测的深度监督干净图的深度估计),让网络“自我监督”学习物理参数。
2. 模型架构与特点
模型名为 D⁴(Dehazing via Density and Depth Decomposition),核心包含三个子网络:
-
去雾网络(G_D):输入雾图,直接预测传输图(t)和散射系数(β),再利用物理公式反推深度(d = -ln(t)/β)。
-
深度估计网络(G_E):输入干净图,预测场景深度。训练时用雾图分支生成的深度作为伪标签,实现无监督学习。
-
细化网络(G_R):基于物理模型生成的粗糙雾图,进一步细化成逼真雾图(比如修正光照、边缘细节),类似“美颜滤镜”。
训练流程分两分支:
-
去雾-再雾分支:雾图 → 去雾 → 深度估计 → 重新渲染雾图 → 循环一致性约束。
-
雾化-去雾分支:干净图 → 随机采样β生成多密度雾图 → 去雾 → 约束β和深度一致性。
特点总结:
-
轻量高效:主干网络基于EfficientNet-lite3和UNet,参数少(10.7M)、计算量低(2.246 GMac)。
-
物理驱动:不像传统GAN硬学映射,而是通过分解物理参数,让生成过程更符合真实雾的分布。
-
数据自增强:随机采样β生成不同雾浓度,相当于“自己造题库”,减少对配对数据的依赖。
3. 训练数据
-
RESIDE数据集:
-
用途:主力训练集,包含室内(ITS)、室外(OTS)合成雾图。
-
测试子集:SOTS(室内外各500张),用于量化指标(PSNR/SSIM)。
-
-
I-HAZE:
-
特点:35对真实室内雾图(专业雾机制造),测试模型对真实雾的泛化能力。
-
-
Fattal数据集 & URHI:
-
真·实战考场:31张无GT真实雾图(Fattal)+4000+张真实户外雾图(URHI),纯靠人眼评测效果。
-
-
数据操作:
-
户外雾图的大气光A用暗通道先验估计,室内直接用最亮像素。
-
训练时图像缩放到256x256,加水平翻转增强,batch size=2(省显存?)。
-
4. 损失函数
-
循环一致性损失(Cycle Loss)
-
作用:像“来回翻译检查员”,确保去雾再雾化后的图与原图一致。
-
公式:雾图→去雾→再雾化≈原雾图;干净图→雾化→去雾≈原干净图。
-
直白理解:不能去完雾再雾化就变样,否则罚钱(L1损失)!
-
-
对抗损失(GAN Loss)
-
作用:雇两个“真假鉴定师”(判别器),逼生成器输出以假乱真的图。
-
套路:LSGAN(最小二乘GAN),比普通GAN更稳,防崩。
-
直白理解:去雾后的图要像真干净图,生成的雾图要像真雾图。
-
-
伪散射系数监督(Scatt Loss)
-
创新点:雾化时随机撒β值,去雾时要求网络猜回这个β,强迫学雾浓度。
-
公式:平方差(β预测值 vs 随机撒的β)。
-
直白理解:AI自己造的雾,得能认出浓度,否则扣分!
-
-
伪深度监督(Depth Loss)
-
脑洞:用雾图预测的深度,当干净图深度的伪标签。
-
逻辑:雾越厚的地方,深度越大(远景),反向约束干净图的深度估计。
-
直白理解:雾图告诉AI“这里远景”,干净图也得跟着学!
-
-
总损失函数
其中 λcyc =1, λadv = 0.2 和 λscatt = 1
5. 实验结果分析
1. 合成数据:实验室里的“学霸”
-
SOTS-Indoor(室内测试集):
-
成绩单:PSNR 25.42,SSIM 0.932,虽不如监督方法(如FFANet的PSNR 36.36),但在非配对方法中稳坐第一。
-
潜台词:“虽然没作弊(用配对数据),但我依然是班里最靓的仔!”
-
-
SOTS-Outdoor & I-HAZE(泛化能力考试):
-
逆袭时刻:PSNR 25.83(室外)、15.61(I-HAZE),全面碾压其他非配对方法,甚至超过部分监督模型。
-
关键点:传统监督方法(如FFANet)一出门就扑街(PSNR 20.23),D⁴却越战越勇,说明物理分解让模型更懂真实雾的套路。
-
2. 真实数据:街头实战的“扫地僧”
-
Fattal数据集:
-
视觉对比:FFANet去雾像没吃饭,PSD直接“美颜过度”变阿宝色,D⁴却自然得像开了通透模式(见图4)。
-
用户痛点:真实雾图没有标准答案,但D⁴胜在颜色保真+无伪影,适合发朋友圈!
-
-
URHI数据集(户外真实雾图):
-
结果:HardGAN和DADehaze去完像蒙层纱,D⁴直接让远景山脉“浮出水面”(见图5)。
-
秘密武器:户外训练时加入大气光自适应策略(暗通道先验),避免把夕阳当雾处理。
-
3. 深度估计与造雾:AI的“物理外挂”
-
深度图生成:
-
虽然比不过监督模型FCRN,但无监督学出合理深度(近景清晰、远景模糊),堪比“免费送的技能”(见图6)。
-
用户价值:能用来做背景虚化,一鱼两吃!
-
-
雾图生成:
-
CycleGAN生成的雾像均匀撒面粉,D⁴则按深度分层撒(近薄远厚),甚至能造不同浓度雾(见图6右)。
-
自黑吐槽:“这功能要是开源,天气预报的雾霾图都能自己P了!”
-
4. 效率对比:模型界的“瘦身冠军”
-
参数仅10.7M,计算量2.246 GMac:
-
比RefineDNet(65.8M)轻6倍,比FFANet(288 GMac)快128倍,手机都能跑。
-
用户优势:边缘设备狂喜,实时去雾不是梦!
-
5. 消融实验:少一个零件就翻车
-
去掉自增强(w/o Aug):PSNR暴跌2+,生成的雾图浓度固定,模型变成“死记硬背的学渣”。
-
去掉伪监督(w/o PS):深度估计崩盘,雾图生成像贴图,直接退化成CycleGAN水平。
-
结论:每个设计都是刚需,少一个就“武功全废”!
表一 与各种图像去雾算法对比
图一 与其他图像去雾算法的去雾效果比较
表二 SOTS数据集上的消融研究(其中w/o Aug表示散射系数为固定值,w/oPS表示去掉了伪β监督和伪深度监督)
6. 优缺点
优点:
-
在非配对方法中SOTA,尤其在真实雾图(如URHI、Fattal数据集)上泛化性强,去雾后细节保留好,无颜色失真。
-
模型轻量,适合落地应用(比如手机端图像增强)。
-
深度估计“白嫖成功”:无需真实深度标签,却能输出合理深度图(虽然不如监督方法精确)。
缺点:
-
亮区过曝:极端明亮区域(如天空、灯光)的传输图估计不准,导致深度预测错误(比如把亮区误判为近景)。
-
数据质量敏感:低质量训练数据(如模糊、噪声)会导致训练不稳定,可能生成伪影。
-
依赖先验假设:大气光A的估计仍依赖传统方法(如取最亮像素),若场景光照复杂,可能影响效果。
7. 总结
这篇论文就像给去雾模型装了个“物理引擎”,不仅让AI学会拆解雾的浓度和场景深度,还能自己造各种雾图来练习。虽然偶尔在强光下会翻车,但胜在不用配对数据、模型小巧,去雾效果比传统方法更自然,尤其适合真实场景的雾天修图。未来如果能解决亮区过曝的问题,估计能直接装进相机APP里!