写在前面:先是初步调研,然后是几篇论文的概要,最后是模型的实际测试,主要是对前一段工作的总结,内容不完善,仅做参考。

keyword:hazy ,dehazing

去雾方法主要可以分为两种:一种是基于大气退化模型,利用神经网络对模型中的参数进行估计,早期的方法大多数是基于这种思想的;另一种是利用输入的有雾图像,直接输出得到去雾后的图像(end2end)。目前最新的去雾方法更倾向于后者。

0.早期方法

   暗通道先验  ;对比度最大值 ;颜色衰减先验 ;色度不一致

   https://zhuanlan.zhihu.com/p/114185254

   https://www.jianshu.com/p/f92211b62c1b

1. 主要是CVPR最近两年的论文

[1] Multi-Scale Boosted Dehazing Network With Dense Feature Fusion, CVPR2020 【code】
提出了一种基于U-Net架构的具有密集特征融合的多尺度增强去雾网络

[2] Domain Adaptation for Image Dehazing, CVPR2020 【code】
域适应 +图像去雾,解决了大部分去雾方法在合成数据集上优秀而真实数据集上歇菜的问题。 缺点:运行时间超级长

[3] Distilling Image Dehazing With Heterogeneous Task Imitation, CVPR2020
知识蒸馏 + 去雾。先使用干净图像训练自编码网络作为teacher;将去雾网络作为student,使用teacher挖掘的干净图像的隐含特征和重建信息来指导有雾图像到干净图像的映射。

[4] Learning To Restore Hazy Video: A New Real-World Dataset and a New Method, CVPR2021
视频去雾,发表了真实世界视频去雾数据集(是否可以取对应帧做图像去雾的数据集?)

[5] Contrastive Learning for Compact Single Image Dehazing, CVPR2021 【code】
单图除雾网络、自动编码器、对比正则化 → AECR-Net
提出了一种新的对比正则化(CR),建立在对比学习的基础上,利用模糊图像和清晰图像的信息分别作为负样本和正样本。
为了保证性能和内存存储的平衡,开发了一个紧凑的基于类自动编码器(AE)框架的去雾网络,它包括一个自适应的混合操作和一个动态特征增强模块。

[6] Ultra-High-Definition Image Dehazing via Multi-Guided Bilateral Learning, CVPR2021 重点关注
在速度和准确率 trade-off中表现好,能够在单个GPU上对4K图像进行实时去雾的新型网络,该网络由三个深度CNN组成,创建了一个大规模的4K图像去雾数据集。

[7] PSD: Principled Synthetic-to-Real Dehazing Guided by Physical Priors, CVPR2021 重点关注  【code】
可以使用大多数现有的除雾模型作为其backbone,并且多个物理先验的结合大大促进了除雾效果。
从预训练合成数据的去雾模型backbone开始,PSD利用真实的模糊图像以无监督的方式对模型进行微调,证明了为现实世界的去雾得到了最新的性能。

[8] All in One Bad Weather Removal using Architectural Search,CVPR2020 重点关注
去雾去雨的大一统框架,雨,雾,雪和附着雨滴使用单一网络 
首先设计一个带有多个特定于任务的编码器的生成器,每个编码器都与特定的恶劣天气退化类型相关联。利用神经结构搜索来最优地处理从所有编码器提取的图像特征。随后,为了将退化的图像特征转换为干净的背景特征,引入了一系列基于张量的操作,这些操作封装了雨、雾、雪和附着雨滴形成背后的基本物理原理,这些操作充当了体系结构搜索的基本构建块。最后,鉴别器同时评估了恢复图像的正确性和退化类型。设计了一种新的对抗学习方案,它只反向传播退化类型的损失到各自的任务特定的编码器。

[9] AOD-Net:All-in-One Dehazing Network,ICCV2017
去雾的代表性算法,轻量级端到端,根据重新制定的大气散射模型设计。关注他主要是因为运行速度快,但是效果不是特别好。

[10] 图像去雾的最新研究进展,自动化学报2005
很早的一个被引用很多的去雾综述

[11] HardGAN: A Haze-Aware Representation Distillation GAN for Single Image Dehazing,ECCV2020  【paper】 【code】

[12] Physics-based Feature Dehazing Networks,ECCV2020 【paper】

[13] Fast Deep Multi-patch Hierarchical Network for Nonhomogeneous Image Dehazing. (Accepted at NTIRE Workshop, CVPR 2020)  【paper】

2. 论文精读(PSD、MSBDN、DMPHN、DMSHN...)

选择符合使用场景或有较大借鉴意义的论文进行精读整理。

论文信息主要内容评论
1

Ultra-High-Definition Image Dehazing via Multi-Guided Bilateral Learning, CVPR 2021

【paper】

在速度和准确率 trade-off中表现好,能够在单个GPU上对4K图像进行实时去雾的新型网络,该网络由三个深度CNN组成,创建了一个大规模的4K图像去雾数据集。

(1)Motivation:传统方法使用各种清晰图像先验来规范solution space,但计算昂贵且手工设计的先验不适用于多样的真实图。→ 早期DL方法替换掉一些module或step,但计算开销大且不同的雾使用同一组权重并不普适,不能处理4K图。→ 本文方法可以单GPU实时处理4K图像。

(2)框架图:

a)第一个CNN:以低分辨率提取输入的有雾图像的与雾相关的特征,然后在双边空间(bilateral space)中拟合局部仿射模型(locally-affine models)

b)第二个CNN:学习多个与学到的双边模型相关的全分辨率引导图

c)第三个CNN:将高质量的特征图融合到去雾图中去

(3)对比实验:

等待开源。。。
2

PSD: Principled Synthetic-to-Real Dehazing Guided by Physical Priors, CVPR 2021

【paper】

可以使用大多数现有的除雾模型作为其backbone,并且多个物理先验的结合大大促进了除雾效果。(Domain Adaptation)

从预训练合成数据的去雾模型backbone开始,PSD利用真实的模糊图像以无监督的方式对模型进行微调,实验证明了为真实图的去雾得到了SOTA。

(1)Motivation:以前的基于学习的方法在合成数据上训练,合成数据与真实数据具有域差异,使得这些方法在真实数据测试时效果不好。

(2)框架图:

 a)预训练阶段

首先使用SOTA的去雾模型作为backbone,因为这些模型在合成数据集上取得了很好的性能,并且可以隐式地提供模糊图像的 domain knowledge 。

 然后修改骨干到一个基于物理的网络,同时生成清晰图像J 和 transmission map t ,并且从单一有雾图像 I 中得到大气光 A 。合成一个重建loss来共同优化三个组件,引导网络输出服从物理散射模型。在这个阶段,只使用标记的合成数据进行训练,最终得到一个在合成域上进行预训练的模型。

b)微调阶段

利用未标记的真实数据进行微调。受去雾的物理背景的启发,本文认为高质量的无雾图像应该遵循一些特定的统计规律,这些规律可以从图像先验中得到。此外,单个先验所提供的物理知识并不总是可靠的,所以目标是找到多个先验的组合,希望它们能够相互补充。基于此,设计了一个先验损失committee 来指导训练未标记的真实数据。

 此外,本文实现了learning without forgetting (LwF)方法,该方法通过将原始任务的训练数据(即合成的模糊图像)与真实的模糊数据一起通过网络转发,强制我们的模型记忆合成域的领域知识。

(3)对比实验

即插即用,可以更换不同的backbone,本文中使用的去雾backbone是MSBDN

3

All in One Bad Weather Removal using Architectural Search,CVPR 2020

【paper】

去雾去雨的大一统框架,雨,雾,雪和附着雨滴使用单一网络 (NAS,GAN)

设计了一种新的对抗学习方案,它只反向传播退化类型的损失到各自的任务特定的编码器。

 首先设计一个带有多个特定于任务的编码器的生成器,每个编码器都与特定的恶劣天气退化类型相关联。

利用神经结构搜索来最优地处理从所有编码器提取的图像特征。

随后,为了将退化的图像特征转换为清晰的背景特征,引入了一系列基于张量的操作,这些操作封装了雨、雾、雪和附着雨滴形成背后的基本物理原理,这些操作充当了体系结构搜索的基本构建块。

最后,鉴别器同时评估了恢复图像的正确性和退化类型。

复杂,没必要用NAS,放弃之
4

Fast Deep Multi-patch Hierarchical Network for Nonhomogeneous Image Dehazing,CVPR 2020

【paper】

通过聚合来自雾状图像不同空间部分的多个图像块中的特征(具有较少的网络参数)来还原非均匀的雾状图像。

对于具有各种密度的场景的雾霾或雾的不同环境非常鲁棒。它还提供了更快的运行时间,在处理1200x1600 HD品质的图像下,平均运行时间为0.0145s

(1)Motivation:基于CNN的端到端深度学习方法在非均匀(Non-homogeneous)去雾中往往会严重失败,而且现有的流行的多尺度方法耗时且内存效率低下。本文方法通过聚合来自雾图像不同空间部分的多个图像patch中的特征(具有较少的网络参数)来还原非均匀的雾图像。

(2)框架图:本文提出了深度多块分层网络(DMPHN)与深度多尺度分层网络(DMSHN)两种解决方案

a) 多patch

 DMPHN是一种多层体系结构。总归包括3个级别,每个级别对应的图像分块数不一样。从底往上来看,分别为4-2-1。具体操作:

1)对输入图像按照水平竖直分成4个patches,分别送入Encoder-3,得到4个特征图。按照竖直方向对特征进行拼接得到两个特征F3-1,F3-2。再经过Decoder3,得到两个输出结果03-1,03-2;

2)对输入图像按照竖直方向分成2个patches,与1)中输出的03-1,03-2对应相加。然后分别送入Encoder2得到两个特征,与1)中拼接得到的F3-1,F3-2进行元素相加,再对两个特征拼接。送入Decoder2得到输出结果02-1;

3)重复2)中操作。

b) 多尺度

 结构与DMPHN相似,也是包含3个级别的编码器解码器结构。主要区别是:
1)DMPHN采用输入图像分块策略,DMSHN采用对尺度策略,分别采用1,0.5,0.25的输入尺度;
2)DMPHN中的不同级之间的相加,在DMSHN中采用上采样然后相加的操作。

c)Encoder 和 Decoder

 在DMPHN和DMSHN的所有级别上使用相同的编码器和解码器体系结构。 编码器由15个卷积层,6个残差连接和6个ReLU单元组成。 解码器和编码器中的各层相似,不同之处在于将2个卷积层替换为反卷积层以生成清晰图像作为输出。

经测试,真实图像效果不行
5

Multi-Scale Boosted Dehazing Network with Dense Feature Fusion,CVPR 2020

【paper】

基于U-Net架构,密集特征融合,多尺度增强去雾网络

该方法是基于boosting和误差反馈这两个原理设计的,通过在所提出模型的解码器中加入 “Strengthen-Operate-Subtract” 增强策略,开发了一种简单而有效的增强解码器,以逐步恢复无雾图像。

为了解决在U-Net架构中保留空间信息的问题,使用反投影反馈方案设计了一个密集特征融合(DFF)模块。DFF模块可以纠正高分辨率特征中缺失的空间信息,并利用非邻近特征。

(1)架构图:

 (2)增强模块:

(3)DFF模块的应用:

3. 模型测试结果

在真实图像上测试了PSD、MSBDN、DMPHN和DMSHN四个方法。随便选了几张图展示效果,大部分是RESIDE数据集中RTTS的图像,还有一张随便下载的海边灯塔图。

总结为:PSD去雾效果明显,但是颜色改变也明显,变得更加鲜艳;MSBDN去雾效果轻微,但是保持了原图的颜色;DMPHN和DMSHN效果很差,跑出了类似风格化的结果。。。统一的缺点是对天空的处理不好,不过这也是一直没处理好的通病了。速度上,使用单张GPU,PSD每张图要0.4s,MSBDN要0.3s。

原图
PSD
MSBDN
DMPHN
DMSHN
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐