mathematics-2024《Graph Convolutional Network for Image Restoration: A Survey》

推薦深藍學院的《深度神經網絡加速:cuDNN 與 TensorRT》,課程面向就業,細致講解CUDA運算的理論支撐與實踐,學完可以系統化掌握CUDA基礎編程知識以及TensorRT實戰,并且能夠利用GPU開發高性能、高并發的軟件系統,感興趣可以直接看看鏈接:深藍學院《深度神經網絡加速:cuDNN 與 TensorRT》
在這里插入圖片描述

核心思想

該論文的核心思想是系統性地綜述了圖卷積網絡(Graph Convolutional Networks, GCNs)在圖像修復(image restoration)領域的應用,重點探討了GCNs在圖像去噪(image denoising)、超分辨率(image super-resolution)和去模糊(image deblurring)等任務中的潛力與優勢。論文強調了GCNs在處理非歐幾里得數據結構(如圖像的像素關系圖)方面的獨特能力,特別是其能夠捕捉圖像中的長距離依賴(long-range dependencies)并保留局部結構信息,從而提升修復效果。論文通過對比傳統方法(如基于濾波和基于模型的方法)與基于學習的GCN方法,展示了GCNs在復雜圖像修復任務中的優越性,并指出了未來的研究方向和挑戰。


目標函數

在圖像修復任務中,GCNs的目標函數通常設計為最小化修復圖像與真實清晰圖像之間的差異,同時考慮圖像的拓撲結構信息。具體來說,目標函數可以分為以下幾類:

  1. 圖像去噪目標函數
    對于去噪任務,目標函數通常基于均方誤差(Mean Squared Error, MSE)或結構相似性(Structural Similarity, SSIM)等指標,結合GCNs的圖結構特性。例如,論文中提到的AdarGCN和CP-GCN等方法的目標函數可以表示為:
    L = 1 N ∑ i = 1 N ∥ I ^ i ? I i ∥ 2 2 + λ R ( G ) , \mathcal{L} = \frac{1}{N} \sum_{i=1}^N \left\| \hat{I}_i - I_i \right\|_2^2 + \lambda \mathcal{R}(\mathcal{G}), L=N1?i=1N? ?I^i??Ii? ?22?+λR(G),
    其中:

    • I ^ i \hat{I}_i I^i? 表示GCN預測的去噪圖像像素值, I i I_i Ii? 為對應的真實清晰圖像像素值。
    • R ( G ) \mathcal{R}(\mathcal{G}) R(G) 是正則化項,基于圖結構 G \mathcal{G} G(包括節點和邊信息),用于約束圖的拓撲特性或防止過擬合。
    • λ \lambda λ 是正則化權重。
  2. 超分辨率目標函數
    對于超分辨率任務,目標函數旨在最小化低分辨率圖像經過GCN上采樣后的輸出與高分辨率真實圖像之間的差異。例如,GCEDSR方法的目標函數可能為:
    L = 1 N ∑ i = 1 N ∥ GCN ( I i L R ) ? I i H R ∥ 2 2 + μ L perceptual , \mathcal{L} = \frac{1}{N} \sum_{i=1}^N \left\| \text{GCN}(I^{LR}_i) - I^{HR}_i \right\|_2^2 + \mu \mathcal{L}_{\text{perceptual}}, L=N1?i=1N? ?GCN(IiLR?)?IiHR? ?22?+μLperceptual?,
    其中:

    • I i L R I^{LR}_i IiLR? I i H R I^{HR}_i IiHR? 分別為低分辨率輸入和高分辨率目標圖像。
    • L perceptual \mathcal{L}_{\text{perceptual}} Lperceptual? 是感知損失(perceptual loss),基于預訓練網絡(如VGG)提取的高級特征差異。
    • μ \mu μ 是感知損失的權重。
  3. 去模糊目標函數
    去模糊任務的目標函數通常結合像素級損失和結構級損失。例如,WIG-Net方法的目標函數可能為:
    L = ∥ I ^ ? I ∥ 2 2 + γ L gradient + η L graph , \mathcal{L} = \left\| \hat{I} - I \right\|_2^2 + \gamma \mathcal{L}_{\text{gradient}} + \eta \mathcal{L}_{\text{graph}}, L= ?I^?I ?22?+γLgradient?+ηLgraph?,
    其中:

    • L gradient \mathcal{L}_{\text{gradient}} Lgradient? 是梯度損失,鼓勵恢復圖像保留清晰的邊緣信息。
    • L graph \mathcal{L}_{\text{graph}} Lgraph? 是基于圖結構的損失,約束GCN輸出的拓撲一致性。
    • γ \gamma γ η \eta η 是權重參數。

目標函數的優化過程

GCNs的目標函數優化通常通過梯度下降法或其變種(如Adam優化器)實現,結合圖結構的特性進行迭代更新。優化過程包括以下步驟:

  1. 圖結構構建

    • 將圖像表示為圖 G = ( V , E ) \mathcal{G} = (V, E) G=(V,E),其中節點 V V V 表示像素或圖像塊,邊 E E E 表示像素間的關系(如鄰接關系或特征相似性)。
    • 使用鄰接矩陣 A A A 表示邊權重,歸一化后的形式為 D ~ ? 1 2 A ~ D ~ ? 1 2 \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} D~?21?A~D~?21?,其中 A ~ = A + I N \tilde{A} = A + I_N A~=A+IN?(加入自環), D ~ \tilde{D} D~ 為度矩陣。
  2. 特征傳播與聚合

    • GCN通過消息傳遞機制更新節點特征。每一層的特征更新公式為:
      H ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) , H^{(l+1)} = \sigma \left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right), H(l+1)=σ(D~?21?A~D~?21?H(l)W(l)),
      其中 H ( l ) H^{(l)} H(l) 是第 l l l 層的節點特征矩陣, W ( l ) W^{(l)} W(l) 是可學習的權重矩陣, σ \sigma σ 是激活函數(如ReLU)。
  3. 損失計算

    • 根據目標函數(如MSE、感知損失或圖結構損失),計算當前預測輸出與真實圖像之間的損失。
  4. 反向傳播與參數更新

    • 通過自動微分計算損失對網絡參數(包括權重矩陣 W ( l ) W^{(l)} W(l) 和圖結構相關參數)的梯度。
    • 使用優化器(如Adam)更新參數:
      θ ← θ ? η ? θ L , \theta \leftarrow \theta - \eta \nabla_{\theta} \mathcal{L}, θθ?η?θ?L,
      其中 η \eta η 是學習率, ? θ L \nabla_{\theta} \mathcal{L} ?θ?L 是損失對參數的梯度。
  5. 迭代優化

    • 重復上述步驟直到損失收斂或達到預設的迭代次數。

主要貢獻點

該論文的主要貢獻點包括:

  1. 系統性綜述

    • 提供了GCNs在圖像修復領域的全面綜述,涵蓋圖像去噪、超分辨率和去模糊三大任務,填補了相關領域綜述的空白。
  2. 方法分類與分析

    • 將GCN方法分類為圖像去噪、超分辨率、去模糊以及與大模型(LLMs)結合的方法,并分析了每類方法的動機、原理和性能。
  3. 性能比較

    • 通過公開數據集(如Set5、Set14、Urban100、BSD100)對GCN方法與傳統方法進行了定量和定性比較,展示了GCN在捕捉長距離依賴和提升圖像質量方面的優越性。
  4. 未來方向與挑戰

    • 提出了GCN在圖像修復中的潛在研究方向(如網絡優化、多模態融合、輕量化設計)和挑戰(如圖結構構建、計算成本、泛化能力),為后續研究提供了指導。

實驗結果

論文通過在標準數據集上進行實驗,比較了GCN方法與傳統方法的性能。以下是關鍵實驗結果的總結:

  1. 圖像去噪

    • 在BSD68和Set12數據集上,GCN方法(如AdarGCN、CP-GCN、GAiA-Net)在峰值信噪比(PSNR)和SSIM指標上優于傳統方法(如BM3D)和CNN基方法(如DnCNN)。
    • 例如,CP-GCN在BSD68數據集上針對高斯噪聲( σ = 50 \sigma=50 σ=50)的PSNR達到28.45 dB,優于DnCNN的28.01 dB。
  2. 超分辨率

    • 在Set5、Set14、Urban100和BSD100數據集上,GCEDSR方法在不同放大倍數( × 2 , × 4 , × 8 \times 2, \times 4, \times 8 ×2,×4,×8)下表現出色。例如,在Set5數據集上,GCEDSR在 × 4 \times 4 ×4放大倍數的PSNR為32.61 dB,SSIM為0.9001,優于EDSR(32.46 dB / 0.8968)。
    • 隨著放大倍數增加,所有方法的性能下降,但GCN方法在恢復高頻細節方面更具優勢。
  3. 去模糊

    • 在GoPro數據集上,WIG-Net等GCN方法在PSNR和SSIM上優于傳統去模糊方法(如DeblurGAN)。例如,WIG-Net的PSNR達到30.12 dB,優于DeblurGAN的29.55 dB。
    • GCN方法在處理復雜運動模糊時表現出更好的結構保留能力。
  4. 綜合分析

    • GCN方法在捕捉長距離依賴和復雜拓撲結構方面優于CNN方法,尤其是在處理非均勻噪聲或復雜場景時。
    • 定性結果顯示,GCN方法生成的圖像在紋理細節和結構完整性上更接近真實圖像。

算法實現過程

以下以圖像去噪任務中的AdarGCN方法為例,詳細解釋GCN算法的實現過程:

  1. 輸入準備

    • 輸入為噪聲圖像 I noisy ∈ R H × W × C I_{\text{noisy}} \in \mathbb{R}^{H \times W \times C} Inoisy?RH×W×C,其中 H H H W W W 為圖像高寬, C C C 為通道數。
    • 將圖像分割為像素或圖像塊,構造圖 G = ( V , E ) \mathcal{G} = (V, E) G=(V,E),其中節點 V V V 表示像素/塊,邊 E E E 根據像素間的空間距離或特征相似性定義。
    • 計算鄰接矩陣 A A A,通常基于k近鄰算法(k-NN)或余弦相似性:
      A i j = { exp ? ( ? ∥ f i ? f j ∥ 2 2 σ 2 ) , if? j ∈ N i , 0 , otherwise , A_{ij} = \begin{cases} \exp\left(-\frac{\|f_i - f_j\|_2^2}{\sigma^2}\right), & \text{if } j \in \mathcal{N}_i, \\ 0, & \text{otherwise}, \end{cases} Aij?={exp(?σ2fi??fj?22??),0,?if?jNi?,otherwise,?
      其中 f i f_i fi? f j f_j fj? 是節點 i i i j j j 的特征向量, N i \mathcal{N}_i Ni? 是節點 i i i 的鄰居集。
  2. GCN網絡架構

    • 初始化:將輸入圖像的像素特征(或提取的CNN特征)作為節點特征矩陣 H ( 0 ) ∈ R N × F H^{(0)} \in \mathbb{R}^{N \times F} H(0)RN×F,其中 N N N 是節點數, F F F 是特征維度。
    • GCN層:堆疊多個GCN層,每層執行特征聚合和變換:
      H ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) , H^{(l+1)} = \sigma \left( \tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)} \right), H(l+1)=σ(D~?21?A~D~?21?H(l)W(l)),
      其中 A ~ = A + I N \tilde{A} = A + I_N A~=A+IN? D ~ \tilde{D} D~ 是度矩陣, W ( l ) ∈ R F l × F l + 1 W^{(l)} \in \mathbb{R}^{F_l \times F_{l+1}} W(l)RFl?×Fl+1? 是權重矩陣。
    • 自適應聚合:AdarGCN引入自適應權重機制,動態調整鄰接矩陣 A A A
      A ′ = Softmax ( MLP ( [ H i ( l ) , H j ( l ) ] ) ) , A' = \text{Softmax} \left( \text{MLP} \left( [H^{(l)}_i, H^{(l)}_j] \right) \right), A=Softmax(MLP([Hi(l)?,Hj(l)?])),
      其中 MLP \text{MLP} MLP 是一個多層感知機, [ H i ( l ) , H j ( l ) ] [H^{(l)}_i, H^{(l)}_j] [Hi(l)?,Hj(l)?] 是節點對的特征拼接。
  3. 輸出層

    • 最后一層GCN輸出節點特征 H ( L ) H^{(L)} H(L),通過全連接層或卷積層映射回圖像空間,生成去噪圖像 I ^ \hat{I} I^
      I ^ = Conv ( H ( L ) ) . \hat{I} = \text{Conv} \left( H^{(L)} \right). I^=Conv(H(L)).
  4. 損失函數

    • 使用MSE損失計算預測圖像與真實圖像的差異:
      L = 1 N ∑ i = 1 N ∥ I ^ i ? I i ∥ 2 2 . \mathcal{L} = \frac{1}{N} \sum_{i=1}^N \left\| \hat{I}_i - I_i \right\|_2^2. L=N1?i=1N? ?I^i??Ii? ?22?.
    • 可選地加入正則化項,如圖平滑損失:
      L graph = ∑ i , j A i j ∥ H i ? H j ∥ 2 2 . \mathcal{L}_{\text{graph}} = \sum_{i,j} A_{ij} \left\| H_i - H_j \right\|_2^2. Lgraph?=i,j?Aij?Hi??Hj?22?.
  5. 訓練過程

    • 使用Adam優化器,設置學習率(如 1 0 ? 3 10^{-3} 10?3),批量大小(如32)。
    • 在訓練集(如BSD68)上迭代優化,驗證集上監控PSNR和SSIM。
    • 提前停止或學習率調度以防止過擬合。
  6. 測試與評估

    • 在測試集(如Set12)上評估模型,計算PSNR、SSIM等指標。
    • 定性分析輸出圖像的紋理和結構恢復效果。

總結

該論文通過系統綜述和實驗驗證,展示了GCNs在圖像修復領域的強大潛力,尤其是在處理復雜像素關系和長距離依賴方面的優勢。其目標函數結合像素級損失和圖結構約束,通過梯度下降優化實現高效訓練。實驗結果表明,GCN方法在去噪、超分辨率和去模糊任務中均優于傳統方法,為未來研究提供了重要參考。算法實現過程清晰,結合圖結構構建和GCN特征傳播,適合處理非歐幾里得數據結構的圖像修復任務。

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

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

相關文章

[LevelDB]LevelDB版本管理的黑魔法-為什么能在不鎖表的情況下管理數據?

文章摘要 LevelDB的日志管理系統是怎么通過雙鏈表來進行數據管理為什么LevelDB能夠在不鎖表的情況下進行日志新增 適用人群: 對版本管理機制有開發訴求,并且希望參考LevelDB的版本開發機制。數據庫相關從業者的專業人士。計算機狂熱愛好者,對計算機的…

【C++進階篇】C++容器完全指南:掌握set和map的使用,提升編碼效率

C容器的實踐與應用:輕松掌握set、map與multimap的區別與用法 一. 序列式容器與關聯式容器1.1 序列式容器 (Sequential Containers)1.2 關聯式容器 (Associative Containers) 二. set系列使用2.1 set的構造和迭代器2.2 set的增刪查2.2.1 插入2.2.2 查找2.2.3 刪除 2.…

2_Spring【IOC容器中獲取組件Bean】

Spring中IOC容器中獲取組件Bean 實體類 //接口 public interface TestDemo {public void doSomething(); } // 實現類 public class HappyComponent implements TestDemo {public void doSomething() {System.out.println("HappyComponent is doing something...")…

安卓開飯-ScrollView內嵌套了多個RecyclerView,只想與其中一個RecyclerView有聯動

在 Android 開發中,將 RecyclerView 嵌套在 ScrollView 內通常會導致性能問題和滾動沖突,應盡量避免這種設計。以下是原因和替代方案: 為什么不推薦 RecyclerView ScrollView??? 性能損耗? RecyclerView 本身已自帶高效回收復…

HTTP 請求中 Content-Type 頭部

HTTP 請求中 Content-Type 頭部可以設置的各種不同的傳輸格式。multipart/form-data 只是其中一種,主要用于傳輸包含文件的數據。 以下是一些常見的 HTTP 請求體的 Content-Type 及其用途: 常見的數據傳輸格式 (Content-Type) 列表: application/json: 描述: 用于傳輸 JSO…

【U-boot 命令使用】

文章目錄 1 查詢有哪些命令2 信息查詢命令dbinfo - 查看板子信息printenv- 輸出環境變量信息version - 輸出uboot版本信息 3 環境變量操作命令修改環境變量新建環境變量刪除環境變量 4 內存操作命令md命令nm命令mm命令mv命令cp命令cmp命令 5 網絡操作命令與網絡有關的環境變量p…

初學者如何用 Python 寫第一個爬蟲?

初學者如何用 Python 寫第一個爬蟲? 一、爬蟲的基本概念 (一)爬蟲的定義 爬蟲,英文名為 Web Crawler,也被叫做網絡蜘蛛、網絡機器人。想象一下,有一個勤勞的小蜘蛛,在互聯網這個巨大的蜘蛛網中…

IDE/IoT/搭建物聯網(LiteOS)集成開發環境,基于 VSCode + IoT Link 插件

文章目錄 概述IDE安裝安裝舊版本VSCode安裝插件安裝問題和解決手動安裝SDK包手動下載依賴工具 IoTLink配置IoTLink Home用戶設置-工具鏈-編譯器用戶設置-工具鏈-構建器用戶設置-工具鏈-燒錄器用戶設置-SDK管理工程設置-SDK配置工程設置-編譯器工程設置-調試器 創建工程Demo 源碼…

深度剖析:Dify+Sanic+Vue+ECharts 搭建 Text2SQL 項目 sanic-web 的 Debug 實戰

目錄 項目背景介紹sanic-web Dify\_service handle\_think\_tag報錯NoneType問題描述debug Dify調用不成功,一直轉圈圈問題描述debug 前端markdown格式只顯示前5頁問題描述debug1. 修改代碼2.重新構建1.1.3鏡像3.更新sanic-web/docker/docker-compose.yaml4. 重新部…

理想AI Talk第二季-重點信息總結

一、TL;DR 理想為什么要做自己的基模:座艙家庭等特殊VLM場景,deepseek/openai沒有解決理想的基模參數量:服務端-300B,VLencoder-32B/3.6B,日常工作使用-300B,VLA-4B為什么自動駕駛可以達成&…

TensorRT

TensorRT 下載 TensorRT 7.1.3.4 TAR壓縮包,解壓到安裝目錄: tar xzvf TensorRT-7.1.3.4.Ubuntu-16.04.x86_64-gnu.cuda-11.0.cudnn8.0.tar.gz 添加 TensorRT lib 到環境變量: gedit ~/.bashrc # 添加 export LD_LIBRARY_PATH$LD_LIBRARY_PAT…

【NGINX】 -9 nginx + tomcat實現的多級反向代理

文章目錄 1、tomcat的安裝 (centos版本)1.1 安裝Java依賴環境1.2 安裝tomcat 2、tomcat的虛擬主機的配置2.1 配置多級目錄 3、利用nginx的反向代理實現將轉發指向一個虛擬機3.1 nginx服務器的配置3.2 客戶端配置 4、 反向多級代理代理服務器操作nginx 1 服務器nginx 2 服務器to…

基于requests_html的python爬蟲

前言:今天介紹一個相對性能更高的爬蟲庫requests_html,會不會感覺和requests有點聯系?是的。為什么開始不直接介紹呢?因為我覺得requests是最基本入門的東西,并且在學習過程中也能學到很多東西。我的python老師在介紹這…

【架構篇】架構類型解釋

架構設計的本質:從模糊概念到系統化思維 摘要 “架構”是系統設計的靈魂,但許多人對它的理解仍停留在抽象層面。本文系統解析架構的8大核心維度,結合設計原則、案例與誤區分析,幫助開發者建立從戰略到落地的完整認知框架。 一、架…

用Python繪制夢幻星空

用Python繪制夢幻星空 在這篇教程中,我們將學習如何使用Python創建一個美麗的星空場景。我們將使用Python的圖形庫Pygame和隨機庫來創建閃爍的星星、流星和月亮,打造一個動態的夜空效果。 項目概述 我們將實現以下功能: 創建深藍色的夜…

PyTorch循環神經網絡(Pytotch)

文章目錄 循環神經網絡(RNN)簡單的循環神經網絡長短期記憶網絡(LSTM)門控循環單元(GRU) 循環神經網絡(RNN) 循環神經網絡(RecurrentNeuralNetwork,RNN&#…

用算術右移實現邏輯右移及用邏輯右移實現算術右移

函數srl()用算術右移實現邏輯右移,函數sra()用邏輯右移實現算術右移。 程序代碼 int sra(int x,int k); unsigned int srl(unsigned int x, int k);void main() {int rx1,k,x1;unsigned int rx2,x2;k3;x10x8777;x20x8777;rx1sra(x1, k);rx2srl(x2, k);while(1); }…

pojo層、dao層、service層、controller層的作用

在Java Web開發中,常見的分層架構(如Spring Boot項目)通常包含POJO層、DAO層、Service層和Controller層,各層職責明確,協同工作。以下是各層的作用及相互關系: 1. POJO層(Model/Entity層&#…

【Linux網絡】五種IO模型與阻塞IO

IO 在Linux網絡環境里,IO(Input/Output)指的是網絡數據在系統與外部網絡(像其他設備、服務器或者客戶端)之間進行傳輸的過程。 它是網絡編程和系統性能優化的核心內容。 IO :INPUT和OUTPUT(站…

入門OpenTelemetry——應用自動埋點

埋點 什么是埋點 埋點,本質就是在你的應用程序里,在重要位置插入采集代碼,比如: 收集請求開始和結束的時間收集數據庫查詢時間收集函數調用鏈路信息收集異常信息 這些埋點數據(Trace、Metrics、Logs)被…