基于細節增強卷積和內容引導注意的單圖像去霧

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔

文章目錄

  • 摘要
  • 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模塊的注意力代碼模塊的學習。下周再接再厲

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23086.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23086.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23086.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深度學習 - 構建神經網絡

1. 自動求導機制 概念解釋: 自動求導:PyTorch的autograd模塊允許我們自動計算張量的梯度,這在反向傳播算法中尤為重要。反向傳播是神經網絡訓練的核心,用于計算每個參數的梯度并更新參數。 生活中的例子: 想象你是…

Java時間類(十六) -- 將一天的時間進行等步長分割

廢話不多說,直接上工具類: import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List;/*** @ClassName TimeSplitterUtil* @Description …

C語言指針與數組名的聯系

目錄 一、數組名的理解 a.數組名代表數組首元素的地址 b. 兩個例外 二、使用指針來訪問數組 三、一維數組傳參的本質 一、數組名的理解 a.數組名代表數組首元素的地址 我們在使用指針訪問數組的內容時,有這樣的代碼: int arr[10] {1,2,3,4,5,6,7,…

枚舉(enum)+聯合體(union)

枚舉聯合 一.枚舉類型1.枚舉類型的聲明2.枚舉類型的優點3.枚舉類型的使用 二.聯合體1.聯合體類型的聲明2.聯合體的特點3.相同成員的結構體和聯合體對比4.聯合體大小的計算5.聯合體的練習(判斷大小端)6.聯合體節省空間例題 一.枚舉類型 1.枚舉類型的聲明…

Sentinel1.8.6更改配置同步到nacos(項目是Gateway)

本次修改的源碼在:https://gitee.com/stonic-open-source/sentinel-parent 一 下載源碼 地址:https://github.com/alibaba/Sentinel/releases/tag/1.8.6 二 導入idea,等待maven下載好各種依賴 三 打開sentile-dashboard這個模塊&#xf…

介紹下CIDR(Classless Inter-Domain Routing)無類別域間路由

最近在搞DELL EMC XtremIO的重新初始化,在Stortage controller和XMS的xinstall配置的時候,需要配置用到CIDR,就是classless inter-domian routing,總結了一下,其實很多對網絡設備的地方都用得到,以前還不知…

華為手機錄屏在哪里?圖文詳解幫你找!

隨著科技的進步,智能手機已成為我們日常生活中不可或缺的工具。其中,華為手機憑借其卓越的性能和用戶體驗,在全球范圍內贏得了廣泛的贊譽。在眾多功能中,錄屏功能尤為實用,無論是制作教程、記錄游戲精彩瞬間&#xff0…

壓敏電阻器是在規定溫度下,當電壓超過某一臨界值時電導隨電壓的升高而急速增大的一種電阻器

壓敏電阻器是在規定溫度下,當電壓超過某一臨界值時電導隨電壓的升高而急速增大的一種電阻器。壓敏電阻器的伏安特性是非線性的,因此,壓敏電阻器亦稱為非線性電阻器,非線性來自于壓敏電阻器兩端的外加電壓,其伏安特性如圖 9-1所示。從圖9-1可以看出,壓敏電阻器有對稱型和非對稱型…

網絡運維簡介

目錄 1.網絡運維的定義 2.誕生背景 3.網絡運維的重要性 4.優點 5.缺點 6.應用場景 6.1.十個應用場景 6.2.數據中心運維 7.應用實例 8.小結 1.網絡運維的定義 網絡運維(Network Operations)是指管理、監控和維護計算機網絡以確保其高效、安全和…

2024最新華為OD算法題目

在一個機房中,服務器的位置標識在 n*m 的整數矩陣網格中,1表示單元格上有服務器,0 表示沒有。如果兩臺服務器位于同一行或者同一列中緊鄰的位置,則認為它們之間可以組成一個局域網。請你統計機房中最大的局域網包含的服務器個數。 輸入描述 第一行輸入兩個正整數,n和m,…

Python私教張大鵬 Vue3整合AntDesignVue之文本組件

案例&#xff1a;展示標題 核心代碼&#xff1a; <a-typography><a-typography-title>Introduction</a-typography-title> </a-typography>vue3示例&#xff1a; <template><a-typography><a-typography-title>這是一個標題</…

HTTP請求過程

HTTP&#xff08;超文本傳輸協議&#xff09;請求過程是客戶端&#xff08;通常是瀏覽器&#xff09;與服務器之間通信的方式&#xff0c;用于從服務器請求資源&#xff08;如網頁、圖片、視頻等&#xff09;。以下是HTTP請求的基本步驟&#xff1a; 建立TCP連接&#xff1a; 如…

【K8s】專題四(6):Kubernetes 控制器之 Job

以下內容均來自個人筆記并重新梳理&#xff0c;如有錯誤歡迎指正&#xff01;如果對您有幫助&#xff0c;煩請點贊、關注、轉發&#xff01;歡迎掃碼關注個人公眾號&#xff01; 目錄 一、基本介紹 二、工作原理 三、相關特性 四、資源清單&#xff08;示例&#xff09; 五…

C語言經典習題20

一編寫一個函數用于計算高于平均分的人數 編寫一個函數int fun(float s[],int n)&#xff0c;用于計算高于平均分的人數&#xff0c;并作為函數值返回&#xff0c;其中數組s中存放n位學生的成績。再編寫一個主函數&#xff0c;從鍵盤輸入一批分數&#xff08;用-1來結束輸入&a…

電路分析答疑 1

三要素法求解的時候&#xff0c; 電容先求U&#xff0c;再利用求導求I 電感先求I&#xff0c;再利用求導求U 若I的頭上沒有點點&#xff0c;那就是求有效值 疊加定理&#xff0c;不要忘記 若電流值或者電壓值已經給出來了&#xff0c;那就說明這一定是直流電。 在畫畫圈的時候…

數據庫(25)——多表關系介紹

在項目開發中&#xff0c;進行數據庫表結構設計時&#xff0c;會根據業務需求及業務模塊之間的關系&#xff0c;分析并設計表結構&#xff0c;各個表之間的結構基本上分為三種&#xff1a;一對多&#xff0c;多對多&#xff0c;一對一。 一對多 例如&#xff0c;一個學校可以有…

Mac修改Mysql8.0密碼

轉載請標明出處&#xff1a;http://blog.csdn.net/donkor_/article/details/139392605 文章目錄 前言修改密碼Step1:修改my.conf文件Step2:添加配置skip-grant-tablesStep3:重啟mysql服務Step4:進入mysqlStep5:刷新權限Step6:修改密碼Step7:再次刷新權限Step8:刪除/注釋 skip-…

DNS域名

DNS域名 DNS是域名系統的簡稱 域名和ip地址之間的映射關系 互聯網中&#xff0c;ip地址是通信的唯一標識 訪問網站&#xff0c;域名&#xff0c;ip地址不好記&#xff0c;域名朗朗上口&#xff0c;好記。 域名解析的目的就是為了實現&#xff0c;訪問域名就等于訪問ip地址…

【Python】 獲取當前日期的Python代碼解析與應用

標題&#xff1a;Python中獲取當前日期的簡單指南 基本原理 在Python中&#xff0c;獲取當前日期是一個常見的需求&#xff0c;尤其是在處理日志、數據記錄和時間相關的任務時。Python提供了多種方式來獲取和處理日期和時間&#xff0c;其中最常用的模塊是datetime。datetime…

多客陪玩系統-開源陪玩系統平臺源碼-支持游戲線上陪玩家政線下預約等多場景應用支持H5+小程序+APP

多客陪玩系統-開源陪玩系統平臺源碼-支持游戲線上陪玩家政按摩線下預約等多場景應用支持H5小程序APP 軟件架構 前端&#xff1a;Uniapp-vue2.0 后端&#xff1a;Thinkphp6 前后端分離 前端支持&#xff1a; H5小程序雙端APP&#xff08;安卓蘋果&#xff09; 安裝教程 【商業…