图像去雾:AOD-Net

本文深入探讨了大气散射模型及其在图像去雾中的应用,重点介绍了AOD-Net模型的结构和工作原理。AOD-Net通过整合传输函数和大气光参数,提出了一种新的图像恢复公式,并采用轻量级网络进行实时估计。实验表明,AOD-Net在处理白色场景、夜间照片和无雾图像时表现出色,且具备良好的鲁棒性和适用性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

论文地址: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)可以重写为以下形式:

其中:

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

3、AOD-Net模型

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

网络中的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在不引入假色调或扭曲物体轮廓的情况下,成功地消除了雾层。

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

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

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

5、实验结果

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

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

### AOD-NET算法实现方法 #### 环境配置 为了成功运行AOD-NET,需先设置合适的开发环境。建议使用Python 3.x版本以及PyTorch框架作为主要工具集[^1]。 #### 资源获取 可以从GitHub上找到官方维护的AOD-Net仓库链接,并下载最新的源码文件。此外,还需准备用于训练的数据集,如OTS、HSTS等合成数据集或是真实场景下的图像集合[^2]。 #### 安装依赖库 安装必要的第三方库来支持项目的正常运作。通常情况下,这包括但不限于NumPy, OpenCV-Python, Matplotlib等科学计算和可视化包。对于深度学习部分,则依靠PyTorch及其扩展组件完成模型构建与优化工作。 ```bash pip install numpy opencv-python matplotlib torch torchvision ``` #### 加载预训练权重 如果希望直接利用已有的成果进行推理实验而不必重新开始漫长的训练过程,可以加载由作者提供的预训练参数文件。这些权重往往经过精心调校,在多个公开评测指标下表现优异。 ```python import torch model.load_state_dict(torch.load('path_to_pretrained_weights')) ``` #### 构建并编译模型结构 按照论文描述定义神经网络架构——即所谓的“AOD-Net”。此阶段涉及创建卷积层、激活函数以及其他辅助模块之间的连接关系;同时也要注意初始化策略的选择以促进收敛速度加快。 ```python class AOD_Net(nn.Module): def __init__(self): super(AOD_Net, self).__init__() # Define layers here def forward(self, x): # Implement forward pass logic here return output ``` #### 数据处理流程 编写脚本读取输入图片并将它们转换成适合喂给神经网路的形式。一般而言,这意味着要调整尺寸大小、归一化像素值范围至特定区间内(-1 ~ +1)等等操作。 ```python from PIL import Image import transforms as T def preprocess_image(image_path): transform = T.Compose([ T.Resize((height,width)), T.ToTensor(), T.Normalize(mean=[0.5], std=[0.5]) ]) img = Image.open(image_path).convert('RGB') tensor_img = transform(img) return tensor_img.unsqueeze(0) # Add batch dimension ``` #### 执行预测任务 最后一步就是实际调用之前建立好的实例对象来进行前向传播运算从而获得后的效果图像输出。 ```python with torch.no_grad(): dehazed_output = model(input_tensor) output_np = dehazed_output.squeeze().cpu().numpy() plt.imshow(output_np.transpose((1, 2, 0))) plt.show() ```
评论 43
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

地球被支点撬走啦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值