當前位置: 華文星空 > 知識

零基礎 PyTorch 入門超分辨率

2023-04-28知識

文@ 142857

1 什麽是超分辨率

超分辨率(Super-Resolution, SR)重建技術的基本思想是釆用訊號處理的方法,在改善低分辨率(Low Resolution, LR)影像質素的同時,重建成像系統截止頻率之外的資訊,從而在不改變硬件器材的前提下,獲取高分辨率(High Resolution, HR)的影像。透過深度學習方法提升影像/影片的分辨率,作為將模糊的影像變清晰的神奇技術,影像超分辨率技術在遊戲、電影、相機、醫療影像等多個領域都有廣泛的套用,例如手機拍月亮、影片去馬賽克(敲黑板,老司機最感興趣的深度學習技術)。

使用深度學習方法實作超分辨率需要在大量數據集上訓練深度神經網絡模型,然後將訓練好的模型套用在實際數據上進行超分辨率處理。


1.1 數據
超分辨率常用的數據集有 Set5, Set14, DIV2K, Urban100, BSD100 等, 其中 DIV2K 是常用的訓練集。
在超分辨率任務中, 我們一般會使用已知的下采樣方式來得到成對的數據, 常用的方式是 bicubic down sampling,常用的下采樣在 PIL, opencv 等影像處理工具包能夠找到。但需要留意的是, 在不同工具包下, 即使是同一個下采樣方法也會有細微分別, 所以在準備數據時需要確保你使用的是跟其他方法一樣, 否則比較就會變得不公平。目前常用的是利用 MATLAB 的 imresize function 來進行 bicubic 下采樣。


1.2 模型結構
超分辨率深度學習模型由上采樣模組和大量特征提取模組組成,廣泛使用跳接結構。下圖為 ESRGAN 演算法的網絡結構,一層摺積層將三通道圖片轉化為含有多個通道(一般為64)的特征圖,然後使用大量 Basic Block 進行特征提取,經過跳躍連線後進行上采樣,最後經過兩層摺積層加工後得到超分辨率結果。

Basic Block 可以是殘留誤差塊 (Res Block),也可以是稠密連線塊 (Residual Dense Block),還可以像 ESRGAN 一樣使用巢狀殘留誤差的稠密連線塊 (Residual in Residual Dense Block)。

.css-19xugg7{position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);} < style data-emotion-css="12cv0pi"> .css-12cv0pi{box-sizing:border-box;margin:0;min-width:0;height:100px;-webkit-box-pack:center;-webkit-justify-content:center;-ms-flex-pack:center;justify-content:center;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;position:absolute;width:100%;bottom:0;background-image:linear-gradient(to bottom,transparent,#ffffff 50px);}
< style data-emotion-css="1pr2waf"> .css-1pr2waf{font-size:15px;color:#09408e;}
編輯於 2023-04-28 14:16 IP 屬地未知
< style data-emotion-css="ch8ocw"> .css-ch8ocw{position:relative;display:inline-block;height:30px;padding:0 12px;font-size:14px;line-height:30px;color:#1772F6;vertical-align:top;border-radius:100px;background:rgba(23,114,246,0.1);}.css-ch8ocw:hover{background-color:rgba(23,114,246,0.15);}
< style data-emotion-css="1xlfegr"> .css-1xlfegr{background:transparent;box-shadow:none;} < style data-emotion-css="1gomreu"> .css-1gomreu{position:relative;display:inline-block;}
openmmlab