基于细节增强卷积和内容引导注意的单图像去雾

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 摘要
  • Abstract
  • 文献阅读:DEA-Net:基于细节增强卷积和内容引导注意的单图像去雾
    • 1、研究背景
    • 2、方法提出
    • 3、相关知识
      • 3.1、DEConv
      • 3.3、多重卷积的计算
      • 3.3、FAM
      • 3.4、CGA
    • 4、实验
      • 4.1、数据集
      • 4.2、评价指标
      • 4.3、实验结果
      • 5、贡献
  • 二、CGA模块代码学习
    • 1、空间注意力模块
    • 2、通道注意力模块
    • 3、像素注意力模块
  • 总结


摘要

本周主要阅读了文章,DEA-Net:基于细节增强卷积和内容引导注意的单图像去雾。该论文提出了提出了一种细节增强注意力块(DEAB),该模块由一个细节增强卷积(DEConv)和一个内容引导的注意力(CGA)机制组成,使得模型能够更好地保留图像的细节信息,同时又能关注图像中的重要信息,从而达到更好的去雾效果。除此之外,还学习学习了CGA模块的注意力代码模块的学习。

Abstract

This week, I mainly read the article DEA-Net: Single Image De-Fogging Based on Detail Enhancement Convolution and Content Guided Attention. This paper proposes a detail enhancement attention block DEAB, which consists of a detail enhancement convolution DEConv and a content guided attention CGA mechanism. This module enables the model to better preserve the details of the image while also focusing on important information in the image, thus achieving better de-fogging effects. In addition, I also learned about the attention code module of the CGA module.


文献阅读:DEA-Net:基于细节增强卷积和内容引导注意的单图像去雾

Title: DEA-Net: Single image dehazing based on detail-enhanced convolution and content-guided attention
Author:Zixuan Chen, Zewei He†, Zhe-Ming Lu
From:JOURNAL OF LATEX CLASS FILES, VOL. 14, NO. 8, AUGUST 2021 1

1、研究背景

单张图像去雾是一个低级视觉任务,旨在从单张受雾影响的图像中恢复其清晰的场景。图像去雾在许多计算机视觉应用中都有需求,例如自动驾驶、无人机、监控系统等。在这些应用中,准确的场景感知和物体识别对于系统的可靠性和安全性至关重要。当然单图像去雾是一个具有挑战性的问题,它从观测到的雾图像中估计潜在的无雾图像。一些现有的基于深度学习的方法致力于通过增加卷积的深度或宽度来提高模型性能。卷积神经网络(CNN)的学习能力仍然没有得到充分探索。

2、方法提出

本文提出了一种细节增强注意力块(DEAB),DEA-Net是一种用于单张图像去雾的深度学习网络。它采用类似U-Net的编码器-解码器结构,由三部分组成:编码器部分、特征转换部分和解码器部分。在去雾等低级视觉任务中,从编码器部分融合特征与解码器部分的特征是一种有效的技巧。该模块由一个细节增强卷积(DEConv)和一个内容引导的注意力(CGA)机制组成。DEConv包含并行的普通卷积和差异卷积,五个卷积层(四个差异卷积和一个普通卷积),这些卷积层并行部署用于特征提取。 此外,复杂的注意力机制(即CGA)是一个两步注意力生成器,它可以首先产生粗略的空间注意力图,然后对其进行细化。
在这里插入图片描述

3、相关知识

3.1、DEConv

DEConv包含五个卷积层(四个差异卷积和一个普通卷积),这些卷积层并行部署用于特征提取。具体来说,采用中心差分卷积(CDC)、角差分卷积(ADC)、水平差分卷积(HDC)和垂直差分卷积(VDC)将传统的局部描述符集成到卷积层中,从而可以增强表示能力和泛化能力。在差异卷积中,首先计算图像中的像素差异,然后与卷积核卷积以生成输出特征图。通过设计像素对的差异计算策略,可以将先验信息显式编码到CNN中。这些卷积用于特征提取和学习,可以增强表示能力和泛化能力。
在这里插入图片描述

3.3、多重卷积的计算

VC、CDC、ADC、HDC和VDC的核函数,与图像进行卷积,最后并行卷积结合在一起。
在这里插入图片描述

3.3、FAM

FAM(Feature attention module)是一种用于图像去雾的注意力机制模块,它包含通道注意力和空间注意力两部分。FAM通过对不同通道和像素进行不平等处理,提高了去雾性能。然而,FAM的空间注意力只能在图像级别上解决不均匀的雾分布问题,忽略了其他维度。以此有以下几个缺点:

  1. 空间注意力机制:FAM中的空间注意力只能在图像级别上解决不均匀的雾分布问题,这意味着它无法处理多尺度维度的雾分布问题。在处理具有复杂雾分布的图像时,这可能会导致去雾效果不佳。
  2. 通道特异性SIMs(空间注意图):FAM在计算注意力权重时,只使用了一个单一通道来表示输入特征的重要区域,而输入特征的通道数量相对较大。这可能导致注意力权重的计算不够准确,从而影响去雾效果。
  3. 两个注意力权重之间缺乏信息交换:在FAM中,通道注意力和空间注意力是顺序计算的,它们之间没有信息交换。这意味着它们可能无法充分考虑彼此的特点,从而影响去雾效果。

3.4、CGA

CGA(Content-Guided Attention)是一种内容引导注意力机制,用于提高图像恢复任务中神经网络的性能。CGA是一种粗细处理过程,首先生成粗略的空间注意力图,然后根据输入特征图的每个通道进行细化,以产生最终的空间注意力图。CGA通过使用输入特征的内容来引导注意力图的生成,从而更加关注每个通道的唯一特征部分,可以更好地重新校准特征,学习通道特定的注意力图,以关注通道之间的雾霾分布差异。CGA的工作过程分为两步:

  1. 生成粗略的空间注意力图。这是一个粗细处理过程,通过生成一个粗略的注意力图,可以快速捕捉到图像中的主要特征。
  2. 根据输入特征图的每个通道对注意力图进行细化。这一步的目的是使注意力图更加精确,能够关注到特征图中的独特部分。

在这里插入图片描述

4、实验

4.1、数据集

  1. SOTS:SOTS是一个包含1000张室内和室外清晰图像以及对应的带有不同雾度的模糊图像的数据集。该数据集分为训练集、验证集和测试集。SOTS数据集的图像具有丰富的场景和复杂的雾度,因此可以有效地评估图像去雾方法在各种情况下的性能。
  2. Haze4K:Haze4K数据集包含4000张带有不同雾度的室内和室外图像,用于训练和测试图像去雾方法。该数据集分为训练集和测试集。Haze4K数据集的图像具有较高的分辨率和丰富的场景,可以有效地训练和评估图像去雾方法。

4.2、评价指标

  1. PSNR:峰值信噪比(Peak Signal-to-Noise Ratio)是一种用于衡量图像质量的评价指标。它通过计算去雾图像与清晰图像之间的均方误差(MSE)来评估图像去雾方法的性能。PSNR的计算公式为:PSNR = 10 * log10(255^2 / MSE) 。其中,255是像素值的范围,MSE是去雾图像与清晰图像之间的均方误差。PSNR值越高,说明去雾图像的质量越好,图像去雾方法的性能也就越好。
  2. SSIM:结构相似度指数(Structural Similarity Index)是一种用于衡量图像结构信息的评价指标。它通过比较去雾图像与清晰图像之间的亮度、对比度和结构信息来评估图像去雾方法的性能。SSIM的计算公式为:SSIM = (2 * μx * μy + C1) * (2 * σxy + C2) / ((μx^2 + μy^2 + C1) * (σx^2 + σy^2 + C2))。其中,μx和μy分别是去雾图像和清晰图像的平均灰度值,σx2和σy2分别是去雾图像和清晰图像的方差,σxy是去雾图像和清晰图像的协方差,C1和C2是常数。SSIM值越高,说明去雾图像的结构信息与清晰图像越相似,图像去雾方法的性能也就越好。

4.3、实验结果

在这里插入图片描述

5、贡献

  1. Detail-Enhanced Convolution (DEConv)
    作者提出了Detail-Enhanced Convolution (DEConv),这是一种包含并行的vanilla和difference卷积的新型卷积方式。DEConv第一次引入差分卷积来解决图像去噪问题。传统的卷积操作主要是通过滑动窗口在输入图像上进行操作,而差分卷积则是在卷积操作中引入了差分的思想,使得卷积核在不同的位置具有不同的权重,这样可以更好地捕捉图像中的细节信息,提高去噪效果。DEConv的引入,使得模型能够更好地保留图像的细节信息,提高图像去雾的性能。

  2. Content-Guided Attention (CGA)
    作者还提出了Content-Guided Attention (CGA),这是一种创新的注意力机制。CGA为每个通道分配唯一的SIM,引导模型关注每个通道的重要区域。这样可以强调编码在特征中的更多有用信息,以有效提高去雾性能。CGA的引入,使得模型能够更加关注图像中的重要信息,忽略无关的信息,从而提高图像去雾的效果。此外,作者还将DEConv与CGA相结合,提出了DEA-Net的主要模块,即细节增强注意模块 (DEAB)。DEAB的引入,使得模型能够更好地保留图像的细节信息,同时又能关注图像中的重要信息,从而达到更好的去雾效果 。

二、CGA模块代码学习

1、空间注意力模块


class SpatialAttention(nn.Module):
    def __init__(self):
        super(SpatialAttention, self).__init__()
        self.sa = nn.Conv2d(2, 1, 7, padding=3, padding_mode='reflect', bias=True)
        # 定义一个二维卷积层self.sa,输入通道数为2,输出通道数为1,卷积核大小为7x7  
        # padding=3表示在输入数据的周围填充3个像素,保持空间尺寸不变  
        # padding_mode='reflect'表示使用反射填充方式  
        # bias=True表示卷积层使用偏置项  
        
   def forward(self, x):  
        x_avg = torch.mean(x, dim=1, keepdim=True)  
        # 计算输入x在通道维度(dim=1)上的平均值,并保持输出的维度与输入相同  
        x_max, _ = torch.max(x, dim=1, keepdim=True)  
        # 找到输入x在通道维度上的最大值,并忽略最大值的索引(用_表示)  
        # 同样保持输出的维度与输入相同  
        x2 = torch.cat([x_avg, x_max], dim=1)  
        # 将x_avg和x_max沿着通道维度(dim=1)拼接起来,得到新的张量x2  
        # 此时x2的通道数是x的两倍  
        sattn = self.sa(x2)  
        # 将x2作为输入传递给之前定义的卷积层self.sa,得到输出sattn  
        return sattn  
        # 返回计算得到的空间注意力图sattn

2、通道注意力模块

class ChannelAttention(nn.Module):  
    def __init__(self, dim, reduction=8):  
        # 初始化方法,接收输入特征的通道数dim和一个可选的通道数减少比例reduction(默认为8super(ChannelAttention, self).__init__()  
        # 定义了一个自适应平均池化层,输出大小为1x1,用于对每个通道内的所有元素进行平均  
        self.gap = nn.AdaptiveAvgPool2d(1)  
        # 定义了一个顺序模型self.ca,包含两个卷积层和一个ReLU激活函数  
        self.ca = nn.Sequential(  
            # 第一个卷积层将输入特征的通道数从dim减少到dim // reduction,使用1x1的卷积核,无填充,并使用偏置  
            nn.Conv2d(dim, dim // reduction, 1, padding=0, bias=True),  
            # ReLU激活函数对第一个卷积层的输出进行非线性变换,inplace=True表示直接在输入数据上进行修改  
            nn.ReLU(inplace=True),  
            # 第二个卷积层将通道数从dim // reduction恢复到原始的dim,同样使用1x1的卷积核和无填充  
            nn.Conv2d(dim // reduction, dim, 1, padding=0, bias=True),  
        )  
  
    def forward(self, x):  
        # 对输入x进行自适应平均池化操作,得到每个通道的平均值  
        x_gap = self.gap(x)  
        # 将池化后的结果x_gap传递给self.ca顺序模型,计算通道注意力权重  
        cattn = self.ca(x_gap)  
        # 返回计算得到的通道注意力权重  
        return cattn

3、像素注意力模块

class PixelAttention(nn.Module):  
    def __init__(self, dim):  
        super(PixelAttention, self).__init__()  
        # 定义一个二维卷积层,输入通道数为2*dim,输出通道数为dim,  
        # 卷积核大小为7x7,填充大小为3(使用reflect模式),分组数为dim,并使用偏置项。  
        self.pa2 = nn.Conv2d(2 * dim, dim, 7, padding=3, padding_mode='reflect', groups=dim, bias=True)  
        # 定义一个Sigmoid激活函数  
        self.sigmoid = nn.Sigmoid()  
  
    def forward(self, x, pattn1):  
        """  
        前向传播方法,接收两个输入:特征图x和另一个注意力图pattn1。  
        """  
        # 获取输入x的形状  
        B, C, H, W = x.shape  
        # 在x的通道维度之后增加一个新的维度,大小为1  
        x = x.unsqueeze(dim=2)  
        # 在pattn1的通道维度之后增加一个新的维度,大小为1  
        pattn1 = pattn1.unsqueeze(dim=2)   
        # 将x和pattn1在第二个维度(现在的大小为2)上进行拼接  
        x2 = torch.cat([x, pattn1], dim=2) 
        # 使用Rearrange函数对x2的形状进行重排,将通道数和第二个维度的大小合并成一个维度  
        x2 = Rearrange('b c t h w -> b (c t) h w')(x2)  
        # 将重排后的x2输入到卷积层self.pa2中  
        pattn2 = self.pa2(x2)  
        # 对卷积层的输出应用Sigmoid激活函数  
        pattn2 = self.sigmoid(pattn2)  
        # 返回计算得到的像素注意力权重pattn2  
        return pattn2  
  

总结

本周主要阅读了文章,DEA-Net:基于细节增强卷积和内容引导注意的单图像去雾。该论文提出了提出了一种细节增强注意力块(DEAB),该模块由一个细节增强卷积(DEConv)和一个内容引导的注意力(CGA)机制组成,使得模型能够更好地保留图像的细节信息,同时又能关注图像中的重要信息,从而达到更好的去雾效果。除此之外,我还学习学习了CGA模块的注意力代码模块的学习。下周再接再厉

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Springboot+druid+多数据源

背景:早期项目是springboot2.x druid 的单数据源工程,其中使用了dblink的方式进行跨数据库访问。现在客户的机房搬迁,记账的下游数据库说是搬到不同区域,dblink的方式需要长期占用资源,需要修改成直连方式。 按照AI的…

AttenFace一个基于人脸识别的实时考勤验证系统算法研究

0 、引言 论文提出了一个使用面部识别、允许实时监控考勤的考勤系统, 可以检查由于欺骗和遗漏造成的欺诈。 论文地址:https://arxiv.org/abs/2211.07582v1 1. 概述 在大学和其他机构的课堂上,通常会进行考勤。然而,这种方式往往…

工业互联网基本概念及关键技术(295页PPT)

资料介绍: 工业互联网的核心是通过工业互联网平台把设备、生产线、工厂、供应商、产品和客户紧密地连接融合起来。这种连接能够形成跨设备、跨系统、跨厂区、跨地区的互联互通,从而提高效率,推动整个制造服务体系智能化。同时,工…

2024最新华为OD机试-C/D卷 - 在线OJ使用说明

文章目录 🪐在线 OJ 入口🎧申请OD使用权限🍓在线 OJ 的使用说明OJ主界面专题系列语言支持评测结果 🪐在线 OJ 入口 🔗 2024最新华为OD机试 - 在线OJ入 🎧申请OD使用权限 本专栏配套 OJ 的为了配合考友更高…

git: 批量删除分支

环境: window11git version 2.42.0git-bash.exe window环境下: 1. 批量删除本地 git branch |grep xxx |xargs git branch -D比如: 想批量删除本地含有 release 关键字的分支: 2. 批量删除远程 git branch -r | grep xxxx | …

Qt for Android 申请摄像头权限

步骤 1. 添加用户权限 AndroidManifest.xml 中新增&#xff08;不添加后面申请选项时不弹窗&#xff09; 或者再Qt Creator中直接添加 2. Qt代码申请权限 Qt自己封装好了一些常用的权限申请&#xff0c; 详情Qt Assistant文档搜索 QPermission查看 #include <QPermi…

kafka-消费者组(SpringBoot整合Kafka)

文章目录 1、消费者组1.1、使用 efak 创建 主题 my_topic1 并建立6个分区并给每个分区建立3个副本1.2、创建生产者发送消息1.3、application.yml配置1.4、创建消费者监听器1.5、创建SpringBoot启动类1.6、屏蔽 kafka debug 日志 logback.xml1.7、引入spring-kafka依赖1.8、消费…

如何理解与学习数学分析——第二部分——数学分析中的基本概念——第7章——连续性

第2 部分&#xff1a;数学分析中的基本概念 (Concepts in Analysis) 7. 连续性(Continuity) 本章首先讨论连续性的直观概念&#xff0c;并介绍与早期数学中常见的函数不同的函数。解释了连续性的定义&#xff0c;并演示了如何使用它来证明函数在一点上连续&#xff0c;以及证…

K210视觉识别模块学习笔记5:(嘉楠)训练使用模型_识别人脸

今日开始学习K210视觉识别模块:(嘉楠)训练与使用模型_识别人脸 亚博智能的K210视觉识别模块...... 固件库版本: canmv_yahboom_v2.1.1.bin 之前的训练网址部署模型时需要我们自己更换固件&#xff0c;而且还不能用亚博的图像操作库函数了&#xff0c;这十分不友好&#xff0…

【Python系列】Python 方法变量参数详解

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

C++第二十四弹---从零开始模拟STL中的list(上)

✨个人主页&#xff1a; 熬夜学编程的小林 &#x1f497;系列专栏&#xff1a; 【C语言详解】 【数据结构详解】【C详解】 目录 1、基本结构 2、基本函数实现 2.1、默认构造函数 2.2、尾插数据 3、迭代器的封装 3.1、迭代器的基本结构 3.2、迭代器重载函数的实现 4、迭…

数字逻辑电路交通信号灯控制器设计与multisim仿真

当今时代是一个自动化时代,交通灯控制等很多行业的设备都与计算机密切相关。因此,一个好的交通灯控制系统,将给道路拥挤、违章控制等方面给技术革新。随着大规模的集成电路及计算机技术的迅速发展,以及人工智能在控制技术方面的广泛运用,智能设备有了很大的发展,是现在科…

基于ssm的乡村振兴战略下海东地区农产品购销系统

一、系统架构 前端&#xff1a;vue | element-ui 后端&#xff1a;spring | springmvc | mybatis 环境&#xff1a;jdk1.8 | mysql | maven | nodejs 二、代码及数据库 三、功能介绍 01. web端-首页1 02. web端-首页2 03. web端-登录 04. web端…

【数学建模】MATLAB入门教程:插值与拟合(下)

前言 插值与拟合在数据处理和科学计算中扮演着非常重要的角色&#xff0c;它们用于估算未知数据点的值&#xff0c;帮助我们理解和预测数据趋势 一、一维插值 1、一维插值定义 已知n1个节点(,)(j0,1,...,n,其中互不相同&#xff0c;不妨设a<<...<b),求任一插值点(…

网络安全领域六大顶级会议介绍:含会议介绍、会议地址及会议时间和截稿日期

**引言&#xff1a;**从事网络安全工作&#xff0c;以下六个顶会必须要知道&#xff0c;很多安全的前沿技术都会在如下会议中产生与公开&#xff0c;如下会议发表论文大部分可以公开下载。这些会议不仅是学术研究人员展示最新研究成果的平台&#xff0c;也是行业专家进行面对面…

chlarles抓包工具之---打断点

打断点的目的 通过打断点可以修改请求的数据或者响应&#xff0c;来测试各种场景 打断点流程 1、选中需要打断点的接口右键&#xff0c;选中Breakpoints 2、Proxy --> Breakpoint Setting 如果打断点一直进不去&#xff0c;把设置的query项清空

音频数据上的会话情感分析

情感分析&#xff0c;也被称为观点挖掘&#xff0c;是自然语言处理(NLP)中一个流行的任务,因为它有着广泛的工业应用。在专门将自然语言处理技术应用于文本数据的背景下,主要目标是训练出一个能够将给定文本分类到不同情感类别的模型。下图给出了情感分类器的高级概述。 例如,三…

【CTF Web】BUUCTF BUU LFI COURSE 1 Writeup(代码审计+PHP+文件包含漏洞)

BUU LFI COURSE 1 1 点击启动靶机。 解法 <?php /*** Created by PhpStorm.* User: jinzhao* Date: 2019/7/9* Time: 7:07 AM*/highlight_file(__FILE__);if(isset($_GET[file])) {$str $_GET[file];include $_GET[file]; }如果GET请求中接收到file参数&#xff0c;就会…

刷新方盒子最快10万销量纪录 捷途旅行者何以颠覆越野市场?

近年”方盒子“产品迅速崛起&#xff0c;在新一轮的市场角逐中&#xff0c;率先突围的并非传统豪强&#xff0c;而是首次进军越野市场的捷途汽车。作为“燃油车&#xff0c;”捷途旅行者&#xff0c;在面对纯电、混动等产品的强势围剿下&#xff0c;仅用时9个月便成为细分市场销…

Linux ip命令常用操作

ip 命令来自 iproute2 软件包&#xff0c;在 CentOS 7 中默认已安装&#xff08;yum install -y iproute&#xff09;。 iproute2 软件包提供了很多命令&#xff08;rpm -ql iproute |grep bin&#xff09;&#xff0c;如 ss 命令、bridge&#xff0c;这些命令可以完全替代 if…