图像去雾:AOD-Net

论文地址:https://arxiv.org/pdf/1707.06543.pdf

相关代码:GitHub - MayankSingal/PyTorch-Image-Dehazing: PyTorch implementation of some single image dehazing networks.

数据集下载:https://sites.google.com/site/boyilics/website-builder/project-page

目录

1、在进入图像去雾之前,先简单了解下大气散射模型

2、论文中针对大气散射模型的改进

3、AOD-Net模型

4、AOD-Net的一些特性:

5、实验结果


关于 AOD-Net 的 LibTorch 部署可以看这篇博客:

AODNet在Libtorch端的部署全过程(附详细源码)_Flag_ing的博客-CSDN博客https://blog.csdn.net/Flag_ing/article/details/1094052631、在进入图像去雾之前,先简单了解下大气散射模型

1999年,针对雾天能见度低的问题,Srinivasa G. Narasimhan等人通过建立数学模型,解释了雾天图像的成像过程以及雾天图像包括的各个要素。该模型认为在强散射介质下,引起探测系统成像结果质量降低的主要原因有两种:

       一是目标反射光受大气中悬浮粒子的吸收和散射作用,造成目标反射光能量的衰减,这导致探测系统的成像结果亮度降低,对比度下降;

       二是太阳光等环境光受大气中散射介质的散射作用形成大气光,通常这部分背景光强度大于目标光,因而造成探测系统的成像结果模糊不清。

大气散射的数学模型如下所示:

  • 为探测系统所得到的雾天图像
  • 表示需要恢复出的去雾图像
  • 参数x表示图像中像素点的位置
  • λ表示光的波长
  • 表示无穷远处的大气光值(光源来自于无穷远出的天空)
  • 表示传输函数,其物理意义为经过粒子衰减能够达到探测系统的那部分光的比例。为散射系数,用于描述介质对不同波长光的散射能力,d(x)是光线传输距离。

2、论文中针对大气散射模型的改进

将(1)式简化成如下形式:

代表恢复出来的去雾图像,则可以得到以下公式:

 以往对于图像去雾以往的工作遵循一下三步流程:

  1. 利用复杂的深度模型从模糊图像I (x)中估计传输矩阵t (x)
  2. 用一些经验方法估计A
  3. 估计去雾图像J (x)

但是该流程会导致一个不能直接最小化图像复原误差的欠佳结果。对A和t (x)的分别评估将会导致累计甚至放大的误差。

因此,文章的一个idea是整合A和t(x)这两个参数,并用K(x)来代替,公式(3)可以重写为以下形式:

其中:

图像去雾:AOD-Net_第1张图片

b是一个常量偏置,默认为1。由于K (x)依赖于I (x),因此我们的目标是建立一个输入自适应深度模型,该模型的参数会随着输入模糊图像的变化而变化,使输出J (x)与groundtruth clean image之间的重构误差最小化。

3、AOD-Net模型

文章提出的AOD-Net网络有两个模块,如下图所示

图像去雾:AOD-Net_第2张图片

网络中的K-estimating模块负责从输入I(x)中估计K(x)参数,接下来是一个去雾图像生成模块(clean image generation module),利用K(x)作为其输入自适应参数来估计J (x)。

K-estimating模块是AOD-Net中的重要模块,负责估算雾深度和相对水平(the depth and relative haze level)。模型中使用五个卷积层,并通过融合不同大小的滤波器形成多尺度特征。在AOD-Net的网络层中, “concat1”层连接了来自“conv1”和“conv2”层的特性。类似地,“concat2”连接来自“conv2”和“conv3”的特征,“concat3”连接了来自“conv1”、“conv2”、“conv3”和“conv4”的特征。这种多尺度设计以不同尺度捕获特征,中间连接层也弥补了卷积过程中的信息损失。另外,AOD-Net的每一个卷积层只使用了三个滤波器。在K-estimating模块后,去雾图像生成模块由一个element-wise的乘法层和几个element-wise的加法层组成,通过式(4)生成恢复的图像。

4、AOD-Net的一些特性:

1、对白色风景自然图像具有较好的去雾效果。

白色场景或物体一直是图像去雾的主要障碍。许多先前的模型在白色物体上表现不佳,因为对于与大气光颜色相似的物体,透射值接近于零。由实验结果可以发现,AOD-Net模型虽然没有明确地考虑解决白色场景的问题,但该端到端的方案似乎在这方面有着较强的鲁棒性。AOD-Net在不引入假色调或扭曲物体轮廓的情况下,成功地消除了雾层。

图像去雾:AOD-Net_第3张图片

2、对于无雾(Haze-Free)图像伤害小

尽管AOD-Net模型是训练在有雾图像的数据集上,但实验证明,在无雾的条件下,AOD-Net具有良好的性能,对输入图像的负面影响很小。这也是对模型中提出的K-estimation 模块鲁棒性和有效性的认可。

3、AOD-Net是轻量型网络,可以嵌入高级视觉任务(如目标检测)中使用

5、实验结果

1、白天照片的去雾效果。(左边是原图,右边是去雾后的效果,下同)

图像去雾:AOD-Net_第4张图片

2、夜晚照片的去雾效果。

图像去雾:AOD-Net_第5张图片

你可能感兴趣的:(机器学习,机器学习,pytorch,深度学习,神经网络)