python怎么實現圖像去噪_基于深度卷積神經網絡和跳躍連接的圖像去噪和超分辨...

a78a45ada54026c75fba743bff0218ab.png

Image Restoration Using Very Deep Convolutional Encoder-Decoder Networks with Symmetric Skip Connections

作者:Xiao-Jiao Mao、Chunhua Shen等

本文提出了一個深度的全卷積編碼-解碼框架來解決去噪和超分辨之類的圖像修復問題。網絡由多層的卷積和反卷積組成,學習一個從受損圖像到原始圖像的端到端的映射。卷積層負責特征提取,捕獲圖像內容的抽象信息,同時消除噪聲/損失。相對應,反卷積層用來恢復圖像細節。

1a821b9c8abc37ad4fc62237d1f97dc1.gif

網絡結構

419b89a26d1cc85384ae6bfa49e0aec9.png

在底層圖像修復領域,由于池化操作會丟失有用的圖像細節信息,因此,本網絡沒有用到池化層,是一個全卷積的網絡結構。

卷積層的特征圖和與之相應成鏡像關系的反卷積層特征圖進行跳躍連接,對應像素直接相加后經過非線性激活層然后傳入下一層。

受 VGG 模型的啟發,卷積核大小都設置為為 3*3。另外,由于網絡結構本質上是一個像素級的預測,因此輸入可以是任意大小的圖片,輸出和輸入保持一致。

1a821b9c8abc37ad4fc62237d1f97dc1.gif

反卷積解碼器

在全卷積的情況下,噪聲一步步地被消除。經過每一個卷積層后,噪聲等級減小,圖像內容的細節也可能會隨之丟失。在本篇論文提出的結構中,卷積層保留了主要的圖像內容,而反卷積層則用來補償細節信息,可以達到良好去噪效果的同時較好地保留圖像內容。

另一方面,卷積層逐漸減小特征圖的大小,反卷積層再逐漸增大特征圖的大小,最終確保輸入輸出大小一致,也可以保證在移動端計算能力有限情況下的測試效率。

1a821b9c8abc37ad4fc62237d1f97dc1.gif

跳躍連接

正如殘差網絡的設計初衷,跳躍連接可以解決網絡層數較深的情況下梯度消失的問題,同時有助于梯度的反向傳播,加快訓練過程。

69f8d0dff43f717e46285213c439d1c7.png

通過傳遞卷積層的特征圖到反卷積層,有助于解碼器擁有更多圖像細節信息,從而恢復出更好的干凈圖像。

針對輸入噪聲圖像 X 和輸出干凈圖像 Y,本網絡致力于學習一個殘差即 F(X) = Y - X。

1a821b9c8abc37ad4fc62237d1f97dc1.gif

討論

d53325b36f7cd6e9e9838d54fa8d7f70.png

實驗 (a) 對比有無跳躍連接情況下 PSNR 隨迭代次數的變化,可以看到有跳躍連接的情況下 PSNR 有顯著提高。

實驗 (b) 對比不同網絡結構下 Loss 值隨迭代次數的變化,可以看到在同等層數的網絡下,有跳躍連接時 Loss 值相對要小很多。

實驗 (c) 對比一般的殘差網絡(由一系列的殘差塊組成)和本文提出的網絡情況下 PSNR 隨迭代次數的變化,可以看到本文中提出的這種跳躍連接方式可以獲得更好的 PSNR。

網絡的大容量使得本文提出的結構能夠處理不同噪聲等級的圖像去噪問題和不同尺寸參數的超分辨問題。

1a821b9c8abc37ad4fc62237d1f97dc1.gif

實驗

因為本網絡的卷積核僅僅是為了消除噪聲,因此對圖像內容的方向不敏感。所以,在測試的時候,我們可以旋轉或者鏡像翻轉卷積核進行多次前向傳播,然后對多次的輸出取平均從而得到一個更平滑的結果。

圖像去噪的實驗結果對比

252506de878b59a14665317a7a62a3ce.png

圖像超分辨的實驗結果對比

1526c4bab7e76c12d0036aabb3fcc965.png

可以看到,RED-20, 10 層卷積 10 層反卷積的情況下已經取得了比傳統方法好的效果,而且加深網絡之后還可以取得更好的效果。

噪聲等級越大,本文中提出的網絡比其他網絡的提高幅度就越大,也就是優勢越明顯。

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

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

相關文章

STL源碼剖析 queue隊列概述

queue是一種先進先出的數據結構,他有兩個出口允許新增元素(從最底端 加入元素)、移除元素(從最頂端刪除元素),除了對于頂端和底端元素進行操作之外,沒有辦法可以獲取queue的其他元素即queue沒有…

java輸入正數和負數并計算個數

題目 從鍵盤讀入個數不確定的整數,并判斷讀入的正數和負數的個數,輸入 為0時結束程序。 知識點 最簡單“無限” 循環格式:while(true) , for(;;),無限循環存在的原因是并不 知道循環多少次,需要根據循環體內部某些條件&#xf…

python為什么運行不了_python為什么會環境變量設置不成功

學習python編程,首先要配置好環境變量。本文主要講解python的環境變量配置,在不同版本下如何安裝 Windows 打開Python官方下載網站 x86:表示是32位電腦 x86-64:表示是64位電腦 目前Python版本分為2.x版本和3.x版本。推薦大家使用3.x版本。 設置環境變量&…

STL 源碼剖析 heap堆

heap不屬于STL容器的組件,屬于幕后角色,是priority_queue的助手priority_queue 允許用戶以任何次序將任何元素推入容器內,但是取出的時候需要從優先級最高(也就是數值最高)的元素開始取,這種思想是基于heap的函數實現如果使用list…

java 打印星號

代碼1 package lesson.l2_for; //6列4行 //****** //****** //****** //****** public class ForDemo8 {public static void main(String[] args) {for (int i1;i<4;i){for (int j 1; j <6 ; j) {System.out.print("*");}System.out.println();}} }代碼2 pa…

python從小白到大牛百度云盤_Java從小白到大牛 (關東升著) 中文pdf+mobi版[36MB]

《Java從小白到大牛》是一本Java語言學習立體教程&#xff0c;讀者群是零基礎小白&#xff0c;通過本書的學習能夠成為Java大牛。主要內容包括&#xff1a;Java語法基礎、Java編碼規范、數據類型、運算符、控制語句、數組、字符串、面向對象基礎、繼承與多態、抽象類與接口、枚…

java打印九九乘法表

代碼1 package lesson.l5_loop; //九九乘法表 //1*11 //2*12 2*24 //3*13 3*26 3*39 //4*14 4*28 4*312 4*416 //5*15 5*210 5*315 5*420 5*525 //6*16 6*212 6*318 6*424 6*530 6*636 //7*17 7*214 7*321 7*428 7*535 7*642 7*749 //8*18 8*216 8*324 8*432 8*540 8*648 8*75…

STL源碼剖析 priority_queue

priority_queue是一個擁有權重概念的queue&#xff0c;允許底部加入新的元素&#xff0c;頭部刪除舊的元素&#xff0c;以及審視元素數值的操作priority_queue帶有權重的概念&#xff0c;即元素按照權重進行排列&#xff0c;而不是按照插入隊列的順序進行排序。要求權值高者在前…

python數字1 3怎么表示_Python入門篇之數字

數字類型 數字提供了標量貯存和直接訪問。它是不可更改類型&#xff0c;也就是說變更數字的值會生成新的對象。當然&#xff0c;這個過程無論對程序員還是對用戶都是透明的&#xff0c;并不會影響軟件的開發方式。 Python 支持多種數字類型&#xff1a;整型、長整型、布爾型、雙…

java 打印100以內的質數

題目 質數&#xff1a;只能被1和它本身所整除的數。即&#xff1a;從2開始一直到這個數-1&#xff0c;都不能被這個數整除&#xff1b;最小的質數是2 知識點 1.System.currentTimeMillis():計算當前時間距離1970-1-1的毫秒數&#xff0c;返回long 2.Math.sqrt&#xff1a;開…

STL源碼剖析 slist單向鏈表概述

概述 SGI STL的list是一個雙向鏈表&#xff0c;單向鏈表是slist&#xff0c;其不在標準規格之內單向和雙向鏈表的區別在于&#xff0c;單向鏈表的迭代器是單向的 Forward Iterator&#xff0c;雙向鏈表的迭代器屬于雙向的Bidirectional Iterator。因此很多功能都被受限但是單向…

output怎么用_用樹莓派實現室內溫度監控

樹莓派加上溫度傳感器實現室內溫度監控。可用于家庭&#xff0c;轎車&#xff0c;工業&#xff0c;農業 等許多方面。可做溫度預警&#xff0c;自動降溫等操作。各位小伙伴可自行腦補發揮。1.硬件準備a.樹莓派&#xff08;Raspberry Pi&#xff09;一個b.DS18B20溫度傳感器一個…

java 家庭收支賬戶

代碼1 package lesson.project.p1_familyAccount;import java.util.Scanner;public class FamilyAccount {public static int money 10000;public static String all "";public static void main(String[] args) {Scanner scanner new Scanner(System.in);while …

【Android 13】使用Android Studio調試系統應用之Settings移植(四):40+個依賴子模塊之ActionBarShadow

文章目錄 一、篇頭二、系列文章2.1 Android 13 系列文章2.2 Android 9 系列文章2.3 Android 11 系列文章三、子模塊AS移植3.1 AS創建目標3.2 創建ActionBarShadow(1)使用VS Code打開org_settings/SettingsLib目錄(2)ActionBarShadow的Manifest.xml(3)ActionBarShadow的An…

STL源碼剖析 關聯式容器

STL關聯式容器以set(集合) 和 map(映射表)兩大類&#xff0c;以及對應的衍生體構成,比如mulyiset(多鍵集合) multimap(多鍵映射表) ,容器的底層均基于紅黑樹RB-Tree也是一個獨立的容器&#xff0c;但是不對外開放此外還提供了標準之外的關聯式容器 hash table散列表&#xff0c…

python求小于n的所有素數_用python求出2000000內所有素數的和?不知怎么寫?

展開全部 import itertools import time N 2000000 L range(N) def findnxt(s): flag 0 for n in itertools.ifilter(None, L[s1:]): return n t0 time.time() n 2 X int(N ** .5) while n < X: for i, x in enumerate(L[::n][1:]): if i0: continue L[x] 0 n findn…

STL源碼剖析 關聯式容器 紅黑樹

概念 紅黑樹不僅僅是一個二叉樹&#xff0c;必須滿足如下條件1&#xff0c;每個節點不是紅色就是黑色 (深色底紋為黑色&#xff0c;淺色底紋為紅色)2&#xff0c;根節點是黑色的3&#xff0c;如果節點為紅&#xff0c;其子節點必須為黑色的4&#xff0c;任一節點至NULL(樹的尾…

java藍橋杯 試題-基礎練習-數列排序

試題-基礎練習-數列排序 題目 問題描述   給定一個長度為n的數列&#xff0c;將這個數列按從小到大的順序排列。1<n<200 輸入格式   第一行為一個整數n。   第二行包含n個整數&#xff0c;為待排序的數&#xff0c;每個整數的絕對值小于10000。 輸出格式   輸出…

python生成的詞云沒有圖案_還在為專欄封面發愁?我用Python寫了個詞云生成器!...

媽媽再也不用擔心我寫專欄找不到合適的封面了&#xff01;B站專欄的封面至少是我一直頭疼的問題&#xff0c;每次寫完文章卻找不到合適的圖片作為封面。 詞云是一個很不錯的選擇&#xff0c;既美觀&#xff0c;又提綱挈領。網上也有詞云生成的工具&#xff0c;但大多收費/只能試…

java 1000以內的完數

題目 代碼 package lesson.l6_review;public class PrefectNumber {public static void main(String[] args) {for (int i 1; i <1000 ; i) {int num0;for (int j 1; j <i-1 ; j) {if (i%j0){numj;}}if (inum){System.out.print(i"\t");}}} }