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]。
相关文章:

18、论文阅读:AOD-Net:一体化除雾网络
AOD-Net: All-in-One Dehazing Network 前言介绍相关工作物理模型传统方法深度学习方法 建模与扩展变换后的公式网络设计与高级特征任务相结合 除雾评价数据集和实现 前言 该论文提出了一种基于卷积神经网络(CNN)的图像去雾模型,称为 All-in…...

Hadoop生态圈框架部署(五)- Zookeeper完全分布式部署
文章目录 前言一、Zookeeper完全分布式部署(手动部署)1. 下载Zookeeper2. 上传安装包2. 解压zookeeper安装包3. 配置zookeeper配置文件3.1 创建 zoo.cfg 配置文件3.2 修改 zoo.cfg 配置文件3.3 创建数据持久化目录并创建myid文件 4. 虚拟机hadoop2安装并…...

【机器学习】聚类算法分类与探讨
💗💗💗欢迎来到我的博客,你将找到有关如何使用技术解决问题的文章,也会找到某个技术的学习路线。无论你是何种职业,我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章,也欢…...

MySQL中distinct与group by之间的性能进行比较
在 MySQL 中,DISTINCT 和 GROUP BY 都是用于去重或汇总数据的常用 SQL 语法。尽管它们在某些情况下能产生相同的结果,但它们的内部工作方式和性能表现可能有所不同。理解这两者的差异,对于选择正确的语法非常重要,尤其是在处理大量…...

计算机视觉读书系列(1)——基本知识与深度学习基础
研三即将毕业,后续的工作可能会偏AI方向的计算机视觉方面,因此准备了两条线来巩固计算机视觉基础。 一个是本系列,阅读经典《Deep Learning for Vision System》,做一些总结跑一些例子,也对应本系列文章 二是OpenCV实…...

怎么查看navicat的数据库密码
步骤1:打开navicat连接数据库工具,顶部的文件栏-导出结果-勾选导出密码-导出 步骤2:导出结果使用NotePad或文本打开,找到,数据库对应的的Password"995E66F64A15F6776“”的值复制下来 <Connection ConnectionName"…...

webrtc前端播放器完整案例
https://download.csdn.net/download/jinhuding/89961792...

GORM优化器和索引提示
在使用 GORM 进行数据库操作时,优化器和索引提示可以帮助你提高查询性能。GORM 提供了一些方法来利用这些特性。 优化器提示 优化器提示(Optimizer Hints)是数据库系统提供的功能,用于指导查询优化器如何处理查询。不同的数据库…...

linux驱动-i2c子系统框架学习(1)
可以将整个 I2C 子系统用下面的框图来描述: 可以将上面这一 I2C 子系统划分为三个层次,分别为用户空间、内核空间和硬件层,内核空间就包括 I2C 设备驱动层、I2C 核心层和 I2C 适配器驱动层, 本篇主要内容就是介绍 I2C 子系统框架中…...

元戎启行嵌入式面试题及参考答案
介绍下 CAN 通信原理 控制器局域网(CAN)是一种串行通信协议,主要用于汽车、工业自动化等领域的电子控制单元(ECU)之间的通信。 其通信原理是基于多主站架构。在总线上,多个节点(设备)都可以主动发起通信。CAN 协议使用差分信号来传输数据,通过两条信号线 CAN_H 和 CAN…...

【EasyExcel】EasyExcel导出表格包含合计行、自定义样式、自适应列宽
目录 0 EasyExcel简介1 Excel导出工具类设置自定义表头样式设置自适应列宽添加合计行 2 调用导出工具类导出Excel表3 测试结果 0 EasyExcel简介 在数据处理和报表生成的过程中,Excel是一个非常常用的工具。特别是在Java开发中,EasyExcel库因其简单高效而…...

es数据同步(仅供自己参考)
数据同步的问题分析: 当MySQL进行增删改查的时候,数据库的数据有所改变,这个时候需要修改es中的索引库的值,这个时候就涉及到了数据同步的问题 解决方法: 1、同步方法: 当服务对MySQL进行增删改的时候&…...

apt镜像源制作-ubuntu22.04
# 安装必要的软件 sudo apt-get install -y apt-mirror # 编辑/etc/apt/mirror.list,添加以下内容 set base_path /var/spool/apt-mirror # 指定要镜像的Ubuntu发布和组件-null dir jammy-updates main restricted universe multiverse # 镜像的Ubuntu发布和组件的URL-n…...

libaom 源码分析: 预测编码过程梳理
AV1 预测编码中核心技术 AV1(AOMedia Video 1)作为一种开源的视频编码格式,其预测编码核心技术主要包括以下几个方面: 分区树分割模块: AV1利用多类型分割模式,递归地对图像/视频序列进行分区,以捕捉更丰富的空间信息,从而提升编码效率。这包括新的方向预测分割模式及…...

从0开始学习Linux——Yum工具
往期目录: 从0开始学习Linux——简介&安装 从0开始学习Linux——搭建属于自己的Linux虚拟机 从0开始学习Linux——文本编辑器 上一个章节我们简单了解了Linux中常用的一些文本编辑器,本次教程我们将学习yum工具。 一、Yum简介 Yum(全名…...

【Linux】Linux管道揭秘:匿名管道如何连接进程世界
🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.什么是管道 ?2. 管道的类型2.1 匿…...

【LeetCode】【算法】155. 最小栈
LeetCode 155. 最小栈 题目描述 设计一个支持 push ,pop ,top 操作,并能在常数时间内检索到最小元素的栈。 实现 MinStack 类: MinStack() 初始化堆栈对象。 void push(int val) 将元素val推入堆栈。 void pop() 删除堆栈顶部的元素。 int …...

3.3 windows,ReactOS系统中页面的换出----1
系列文章目录 文章目录 系列文章目录3.3 页面的换出MiBalancerThread()MmTrimUserMemory()MmPageOutVirtualMemory() 3.3 页面的换出 在前一节中我们看到,如果有映射的页面已经被倒换到磁盘上即倒换文件中,…...

QCustomPlot添加自定义的图例,实现隐藏、删除功能(二)
文章目录 实现步骤:详细代码示例:实现原理和解释:使用方法:其他参考要实现一个支持复选框来控制曲线显示和隐藏的自定义 QCPLegend 类,可以通过继承 QCPLegend 并重写绘制和事件处理方法来实现,同时发出信号通知曲线的状态变更。 实现步骤: 继承 QCPLegend 类,添加绘…...

Linux云计算 |【第五阶段】CLOUD-DAY8
主要内容: 掌握DaemonSet控制器、污点策略(NoSchedule、Noexecute)、Job / CronJob资源对象、掌握Service服务、服务名解析CluterIP(服务名自动发现)、(Nodeport、Headless)、Ingress控制器 一…...

岛屿数量 广搜版BFS C#
和之前的卡码网深搜版是一道题 力扣第200题 99. 岛屿数量 题目描述 给定一个由 1(陆地)和 0(水)组成的矩阵,你需要计算岛屿的数量。岛屿由水平方向或垂直方向上相邻的陆地连接而成,并且四周都是水域。…...

hive切换表底层文件类型以及分隔符
1、改底层文件存储类型,但是一般只会在数据文件与期望类型一致的时候使用,比如load等方式时发现建表时没指定对这样的,因为这个语句不会更改具体的底层文件内容,只改元数据 ALTER TABLE 表名 SET FILEFORMAT 希望类型;2、更改数据…...

ChatGPT o1与GPT-4o、Claude 3.5 Sonnet和Gemini 1.5 Pro的比较
全新的ChatGPT o1模型(代号“Strawberry”)是OpenAI的最新进展,专注于以前的AI模型难以应对的领域:高层次推理、数学和复杂编程。OpenAI设计o1模型以花费更多时间思考问题,使其在需要逐层推理的任务中提高准确性。本文…...

asp.net文件防盗链
URLRewriter实现 可以参考下面的文章 代码 .net framework 新建asp.net framework的web项目,新建AntiTheftChainHandler using System.Web;namespace AntiTheftChainStu01.Handler {public class AntiTheftChainHandler : IHttpHandler{public bool IsReusable…...

【日志】力扣58.最后一个单词的长度//14.最长公共前缀//28. 找出字符串中第一个匹配项的下标
2024.11.6 【力扣刷题】 58. 最后一个单词的长度 - 力扣(LeetCode)https://leetcode.cn/problems/length-of-last-word/?envTypestudy-plan-v2&envIdtop-interview-150 int lengthOfLastWord(char* s) {int count 0;for (int i strlen(s) - 1; i…...

华为杯”第十五届中国研究生数学建模竞赛-B题:光传送网建模与价值评估(续)
目录 4. 问题二 光传送网规划 4.1 基本假设 4.2 模型建立 4.3 子问题一 4.2 子问题二 4.5 子问题三 5. 问题三 改善星座图 5.1 问题简述 5.2 问题分析 5.3 建模与问题求解 5.3.1 方案一 5.3.2 方案二 6. 模型评价 6.1 模型的优点 6.2 模型的缺点 参考文献 本文篇幅较长,分为上…...

android 使用xml设置背景图片和圆角
使用xml设置背景图片和圆角 <?xml version"1.0" encoding"utf-8"?> <layer-list xmlns:android"http://schemas.android.com/apk/res/android"><item><shape><solid android:color"android:color/transparen…...

数据结构,问题 E: 表达式括号匹配
题目描述 假设一个表达式有英文字母(小写)和数字、运算符(,—,*,/)和左右小(圆)括号构成,以“”作为表达式的结束符。请编写一个程序检查表达式中的左右圆括号…...

国家宠物美容师职业技能等级评价(高级)理论考试题
国家宠物美容师职业技能等级评价 理论考试复习参考范围 高级/三级 宠物美容师(高级)理论考试题 一 判断题 犬只的世界只有黑白灰三种,通过颜色呈现的深浅度进行辨识(A ) A 对 B 错 美国养犬俱乐部简称AKC…...

Spring挖掘:(AOP篇)
学习AOP时,我们首先来了解一下何为AOP 一. 概念 AOP(面向切面编程,Aspect Oriented Programming)是一种编程技术,旨在通过预编译方式或运行期动态代理实现程序功能的统一管理和增强。AOP的主要目标是在不改变原有业务逻辑代码的…...