18、论文阅读:AOD-Net:一体化除雾网络

AOD-Net: All-in-One Dehazing Network

  • 前言
  • 介绍
  • 相关工作
    • 物理模型
    • 传统方法
    • 深度学习方法
  • 建模与扩展
    • 变换后的公式
    • 网络设计
    • 与高级特征任务相结合
  • 除雾评价
    • 数据集和实现

前言

该论文提出了一种基于卷积神经网络(CNN)的图像去雾模型,称为 All-in-One 去雾网络(AOD-Net)。该模型基于重构的大气散射模型进行设计,不像以往的模型那样分别估计透射矩阵和大气光,而是通过轻量级的 CNN 直接生成干净图像。这种新颖的端到端设计使 AOD-Net 易于嵌入到其他深度模型中,例如 Faster R-CNN,从而提升雾霾图像上的高层次任务性能。实验结果表明,在合成和真实雾霾图像数据集上,AOD-Net 在 PSNR、SSIM 和主观视觉质量方面均优于现有的最先进方法。此外,将 AOD-Net 与 Faster R-CNN 结合后,我们在雾霾图像上的目标检测性能显著提升。

介绍

在这里插入图片描述
在这里插入图片描述

雾霾的存在会显著降低恶劣天气下拍摄的户外图像的清晰度,影响到目标检测和识别等高层次的计算机视觉任务。因此,单图像去雾成为一种非常实用的技术。尽管从单张图像中估计多个物理参数具有挑战性,许多近期的研究已在这一目标上取得显著进展。除了估计全局的大气光强度,去雾的关键在于恢复传输矩阵,为此采用了多种统计假设和复杂模型。然而,这些估计往往并不准确一些常用的预处理方法(如引导滤波和软抠图)可能会扭曲雾霾图像生成过程,导致恢复性能不佳。此外,传输矩阵和大气光这两个关键参数的非联合估计,可能在应用时放大误差。

本文提出了一种高效的端到端去雾卷积神经网络(CNN)模型,称为 All-in-One 去雾网络(AOD-Net)。尽管一些早期的去雾模型提出了“端到端”的概念,我们认为 AOD-Net 的主要创新在于,它是第一个从雾霾图像到清晰图像进行优化的真正端到端模型,而不是停留在中间的参数估计阶段。AOD-Net 基于重新构造的大气散射模型进行设计,使用合成的雾霾图像进行训练,并在合成和真实自然图像上进行测试。实验结果表明,AOD-Net 在 PSNR 和 SSIM 指标上优于多种现有的先进方法(Figure 1),并在视觉质量上表现出色(Figure 2)。作为轻量化模型,AOD-Net 处理 480 × 640 图像的时间仅需 0.026 秒,具有极快的处理速度。此外,AOD-Net 是第一个探索去雾模型如何帮助后续高层次视觉任务的模型。**由于其端到端的结构,AOD-Net 能轻松嵌入 Faster R-CNN,并大幅提升雾霾图像的目标检测性能。
**

相关工作

物理模型

大气散射模型是模糊图像生成过程的经典描述
在这里插入图片描述
在这里插入图片描述

传统方法

在去雾技术中,有多种方法致力于解决单图像去雾问题。具体而言,[23] 通过最大化局部对比度来处理雾霾去除问题。[6] 提出了一种基于物理的去雾方法,通过估算场景的反照率(albedo)来进行去雾。[8, 24] 则发现了有效的暗通道先验 (Dark Channel Prior, DCP),这使得传输矩阵的计算更加可靠。[12] 进一步引入边界约束和上下文正则化,以获得更清晰的去雾图像。[22] 提出了一个加速的自动恢复大气光强度的方法。[32] 开发了颜色衰减先验,并为雾霾图像建立了一个场景深度的线性模型,然后以监督方式学习模型参数。

深度学习方法

卷积神经网络(CNN)在计算机视觉任务中取得了广泛的成功,最近也被应用于去雾问题中。例如,[17] 提出了一种多尺度CNN (MSCNN) 模型,该模型首先生成一个粗略的传输矩阵,然后进行精细化处理。[3] 提出的 DehazeNet 是一种可训练的端到端模型,用于估计中间传输,通过雾霾图像作为输入,输出其传输矩阵。结合通过经验规则估算的大气光强度,基于大气散射模型可以恢复去雾图像。

上述方法的共同点在于,去雾的关键在于准确估算传输矩阵,同时独立计算大气光,然后利用这些参数恢复清晰图像然而,这种方法尽管直观且具有物理依据,却没有直接对图像的重建失真进行度量或最小化,因此难以避免图像恢复质量的次优表现。分步估算的误差会在每一步累积,可能相互放大,导致图像恢复效果欠佳。

与之相对,AOD-Net 建立在一种不同的信念之上,即物理模型可以通过“更端到端”的方式进行建模,将所有参数统一在一个模型中估算AOD-Net 不需要中间步骤来估算参数,而是直接输出去雾后的清晰图像。不同于 [3] 仅从雾霾图像到传输矩阵的端到端学习,AOD-Net 的完全端到端设计直接缩小了雾霾图像与清晰图像之间的最终目标差距。

建模与扩展

在本节中,解释了所提出的 AOD-Net。 我们首先介绍转换后的大气散射模型,AOD-Net 是基于该模型设计的。 然后详细描述AOD-Net的结构。 此外,由于其端到端设计,我们通过将所提出的模型直接嵌入到其他现有的深度模型中,讨论了将其扩展到模糊图像上的高级任务。

变换后的公式

根据公式 (1) 中的大气散射模型,得到的清晰图像为:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

网络设计

在这里插入图片描述
所提出的 AOD-Net 由两个部分组成(见图 4):一个使用五个卷积层来估计K(x) 的 K -估计模块接着是一个清晰图像生成模块,该模块由逐元素相乘层和若干逐元素相加层组成,通过计算公式 (4) 生成复原图像。

K-估计模块是 AOD-Net 的关键组件,负责估计深度和相对雾度水平。如图 4(b) 所示,我们使用五个卷积层,通过融合不同大小的滤波器来形成多尺度特征。[3] 采用了不同滤波器尺寸的并行卷积,[17] 则将粗尺度网络的特征与精细尺度网络的中间层相连接。受到这些方法的启发,AOD-Net 的“concat1”层连接了“conv1”和“conv2”层的特征。“concat2”同样连接“conv2”和“conv3”层的特征;“concat3”则连接“conv1”、“conv2”、“conv3”和“conv4”层的特征。这样的多尺度设计捕捉了不同尺度的特征,中间层的连接也弥补了卷积过程中信息的损失。

作为验证连接的简单基线方法,我们在 TestSetA(见第 4 节)上尝试了不使用连接的结构,即“conv1” → “conv2” → “conv3” → “conv4” → “conv5”。得到的平均 PSNR 为 19.0674 dB,SSIM 为 0.7707,两者均低于表 1 中的当前结果(尤其是 SSIM 的大幅下降)。值得注意的是,AOD-Net 的每个卷积层仅使用三个滤波器,因此与 [3] 和 [17] 等现有的深度方法相比,我们的模型更加轻量。

与高级特征任务相结合

高级计算机视觉任务(如目标检测和识别)关注视觉语义,并已受到广泛关注 [16, 30]。然而,这些算法的性能通常受到多种降质因素的影响传统方法首先通过单独的图像复原步骤作为预处理,再输入目标的高级任务中近期,[27, 4] 证明了复原与识别步骤的联合优化能优于传统的两阶段方法。

先前的研究 [31] 已探讨了噪声、模糊和低分辨率等常见降质的影响及其补救方法。然而,据我们所知,目前还没有类似的研究定量地分析雾霾对高级视觉任务的影响及其缓解方法。当前的去雾模型主要关注复原质量,而我们迈出了实现这一重要目标的第一步。由于其独特的端到端设计,AOD-Net 可以无缝嵌入其他深度模型中,形成一个能够在雾霾图像上执行高级任务的管道,并在其中隐式地进行去雾处理。这种管道可以端到端地联合优化,以提升性能,而如果将 AOD-Net 替换为其他深度去雾模型 [3, 17],这种优化将无法实现。

除雾评价

数据集和实现

我们通过公式 (1) 生成合成的雾霾图像,使用来自 NYU2 Depth Database [21] 的带有深度元数据的真实清晰图像。我们设定不同的大气光 A ,每个通道在 [0.6, 1.0] 范围内均匀选取,并选择 β ∈{0.4, 0.6, 0.8, 1.0, 1.2, 1.4, 1.6}

对于 NYU2 数据库,我们选取了 27,256 张图像作为训练集,3,170 张图像作为不重叠的测试集 TestSet A。我们还使用了 Middlebury 立体数据库 [19, 18, 9] 中的 800 张全尺寸合成图像作为测试集 TestSet B。此外,我们还收集了一组自然雾霾图像来评估我们模型的泛化性能。

在训练过程中,模型的权重通过高斯随机变量进行初始化。我们使用 ReLU 神经元,因为在我们的特定设置中发现其效果优于文献 [3] 中提出的 BReLU 神经元。动量参数和衰减参数分别设置为 0.9 和 0.0001。我们采用简单的均方误差(MSE)损失函数,发现它不仅提升了 PSNR,还提高了 SSIM 和视觉质量。

AOD-Net 模型在大约 10 个训练周期后收敛,通常在 10 个周期后表现足够好。我们还发现将梯度裁剪到 [−0.1, 0.1] 范围内有助于限制梯度范数。这一技术在稳定循环神经网络训练中非常流行 [15]。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/59336.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第538题把二叉搜索树转换为累加树

题目: 题解: func getSuccessor(node *TreeNode) *TreeNode {succ : node.Rightfor succ.Left ! nil && succ.Left ! node {succ succ.Left}return succ }func convertBST(root *TreeNode) *TreeNode {sum : 0node : rootfor node ! nil {if n…

docker+nacos

安装数据库 以docker安装为例(实际建议实体) 初始化数据库 /******************************************/ /* 数据库全名 nacos_config */ /* 表名称 config_info */ /******************************************/ CREATE TABLE config_i…

react18中redux-promise搭配redux-thunk完美简化异步数据操作

用过redux-thunk的应该知道,操作相对繁琐一点,dispatch本只可以出发plain object。redux-thunk让dispatch可以返回一个函数。而redux-promise在此基础上大大简化了操作。 实现效果 关键逻辑代码 store/index.js import { createStore, applyMiddlewar…

python批量合并excel文件

当工作中发现有多个excel表需要进行相同的操作或者需要汇总在一起,一个一个处理太费时间,以下的python代码能够帮你解决这个问题~ import pandas as pd import os# 设置Excel文件所在的文件夹路径和合并文件的输出路径 folder_path D:\\Desktop\\dat…

Qt中弹出窗口的实现与鼠标事件处理

在 Qt 开发中,弹出窗口(Popup Window)是一个常见的需求,例如下拉菜单、工具提示等。在实现弹出窗口时,我们通常会考虑使用 Qt::Popup 窗口类型,因为它可以自动处理许多细节,例如窗口的显示和关闭…

汇编语言与接口技术--算术运算程序设计

一、 实验要求 编程实现两个数:#998877H 和 #778899H 的加法运算。编程实现两个数:#998877H 和 #778899H 的减法运算。 二、 实验设计 1.整体思路 无符号角度: (1)加法 1.初始化:设置两个数 998877H 和…

(蓝桥杯C/C++)——基础算法(上)

目录 一、二分法 1.二分法简介 二分法简介-解题步骤 2.整数二分-简介 整数二分-模板 3.浮点二分-简介 浮点二分-模板 4.二分答案-简介 二分答案-模板​​​​​​​ 二、位运算 1.位运算简介 2.常见的位运算 按位与AND(&) 按位或OR( | ) 按位异或…

1-petalinux 问题记录-根文件系统分区问题

在MPSOC上使用SD第二分区配置根文件系统的时候,需要选择对应的bootargs,但是板子上有emmc和sd两个区域,至于配置哪一种mmcblk0就出现了问题,从vivado中的BlockDesign和MLK XCZU2CG原理图来看的话,我使用的SD卡应该属于…

CSS中的背景色和前景色

目录 1 对比度的计算1.1 亮度计算1.2 对比度比率 2 在线计算对比度 在我们的样式设计中,通常会有背景色和前景色的概念。前景色我们通常用来设置文本的颜色,而背景色通常是文本的所在容器的颜色。比如如果我们把文本放在普通容器里,那普通容器…

mac上的一些实用工具

一、录屏工具 快捷键:commandshift5 退出时候重复上面的快捷键即可看到操作键。 二、如何启用虚拟化技术(VT) 1、检查VT支持情况 终端输入sysctl -a|grep machdep.cpu.features,如果输出结果包含VMX,则说明你的Mac支持VT 2、检查Hypervisor.frramew…

docker复现pytorch_cyclegan

1、安装docker 配置docker镜像 添加镜像源至docker engine 2、wsl2安装nvidia-docker 要在Ubuntu中安装NVIDIA Docker,需要满足以下条件: 确保主机已安装NVIDIA的CUDA驱动程序,并使用适用于您操作系统的正确版本。 wsl --update在Ubuntu…

全面解析:区块链技术及其应用

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 全面解析:区块链技术及其应用 区…

[Redis] Redis主从复制模式

🌸个人主页:https://blog.csdn.net/2301_80050796?spm1000.2115.3001.5343 🏵️热门专栏: 🧊 Java基本语法(97平均质量分)https://blog.csdn.net/2301_80050796/category_12615970.html?spm1001.2014.3001.5482 🍕 Collection与…

独孤思维:图书电商远程诊断,差点晕倒

01 刚才一个图书学员想让我远程诊断下。 主要问题是,他用批量工具遇到问题,无法获取批量数据。 我远程一看,差点晕倒。 连工具都用错了,当然无法批量获取。 我说你仔细再看下专栏内容。 真的服了。 所以为什么有些人做不起…

十四届蓝桥杯STEMA考试Python真题试卷第二套第二题

来源:十四届蓝桥杯STEMA考试Python真题试卷第二套编程第二题。虽然不建议,但是我们还是给出一行代码的实现,以展现Python的简洁。 题目描述: 空调遥控器上的模式按钮可控制四种模式的切换。空调的初始模式为制热模式,…

C02S10-Linux的进程和计划任务管理

一、进程 1. 相关概念 程序:没有运行的代码,是指令和规则的集合,定义了要执行和操作的任务。进程:正在运行的代码,是程序的执行实例。线程:是计算机进行运算的最小单位,是进程中实际允许的单位…

初始JavaEE篇——多线程(8):JUC的组件

找往期文章包括但不限于本期文章中不懂的知识点: 个人主页:我要学编程程(ಥ_ಥ)-CSDN博客 所属专栏:JavaEE 目录 Callable接口 ReentrantLock synchronized 与 ReentrantLock的区别 信号量(Semaphore) CountDown…

C++ <string> 标头文件详解

目录 1. <string> 的基本介绍2. 创建和初始化字符串3. 字符串的基本操作3.1 连接字符串3.2 获取字符串长度3.3 访问和修改字符3.4 字符串比较 4. 常用字符串成员函数4.1 append()4.2 insert()4.3 erase()4.4 substr()4.5 find() 和 rfind()4.6 replace() 5. 字符串转换5.…

Java实现JWT登录认证

文章目录 什么是JWT?为什么需要令牌?如何实现?添加依赖&#xff1a;JwtUtils.java&#xff08;生成、解析Token的工具类&#xff09;jwt配置&#xff1a;登录业务逻辑&#xff1a;其他关联代码&#xff1a;测试&#xff1a; 什么是JWT? JWT&#xff08;Json Web Token&…

Meta AR 眼镜团队前负责人加入 OpenAI;visionOS 2.2 Beta 引入超宽屏投屏模式丨 RTE 开发者日报

开发者朋友们大家好&#xff1a; 这里是 「RTE 开发者日报」 &#xff0c;每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE&#xff08;Real-Time Engagement&#xff09;领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的数据」、「有思考的 文章 …