<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          用超分辨率扛把子算法 ESRGAN,訓(xùn)練圖像增強(qiáng)模型

          共 4219字,需瀏覽 9分鐘

           ·

          2021-05-19 04:07

          來源:HyperAI超神經(jīng)

          本文約3500字,建議閱讀9分鐘

          本文為你介紹基于插值、重建、學(xué)習(xí)的三大 SR 研究方法。


          內(nèi)容一覽:通過硬件或軟件方法,提高原有圖像的分辨率,讓模糊圖像秒變清晰,就是超分辨率。隨著深度學(xué)習(xí)技術(shù)的發(fā)展,圖像超分辨率技術(shù)在游戲、電影、醫(yī)療影像等領(lǐng)域的應(yīng)用,也愈發(fā)廣泛。


          關(guān)鍵詞:超分辨率   機(jī)器視覺   深度學(xué)習(xí)

          將圖像或影片從低分辨率轉(zhuǎn)化為高分辨率,恢復(fù)或補(bǔ)足丟失的細(xì)節(jié)(即高頻信息),往往需要用到超分辨率技術(shù)。


          根據(jù)所用低分辨率圖像的數(shù)量,超分辨率技術(shù)可分為單幅圖像的超分辨率 (SISR) 和多幅圖像的超分辨率 (MISR)。


          網(wǎng)友用 AI 技術(shù)給視頻上色、插幀
          恢復(fù)了 1920 年北京市民生活記錄影像


          SISR 利用一張低分辨率圖像,達(dá)到圖像尺寸增大或像素的增加的效果,從而獲得一張高分辨率圖像。


          MISR 則是借助同一場景中的多張低分辨率圖像,獲取不同細(xì)節(jié)信息,合成一張或多張高分辨率圖像。MISR 的輸出既可以是單幅圖像,也可以是一個(gè)圖像系列(即視頻)


          超分辨率 3 大法寶:插值、重建、學(xué)習(xí)

          圖像超分辨率方法可以分為 3 種:基于插值、 基于重建和基于學(xué)習(xí)的方法。

          方法 1:基于插值 

          插值法是指在放大圖像后的空缺點(diǎn)上,填補(bǔ)相應(yīng)的像素值,從而恢復(fù)圖像內(nèi)容,達(dá)到提高圖像分辨率的效果。

          常用的插值法包括:最近鄰插值、線性插值、雙線性插值和雙三次插值。

          最近鄰插值法

          最近鄰插值法實(shí)現(xiàn)起來最簡單粗暴,運(yùn)算量也最小,只需要直接復(fù)制最近像素點(diǎn)的像素值進(jìn)行填補(bǔ)即可,但是照搬旁邊的像素最顯著的特點(diǎn)就是效果差、塊效應(yīng)明顯。

          將左圖進(jìn)行最近鄰插值后
          得到的右圖產(chǎn)生了明顯可見的鋸齒或馬賽克現(xiàn)象

          線性插值

          線性插值 (Linear Interpolation) 是在一個(gè)方向上進(jìn)行插值,只針對一維數(shù)據(jù),其方程式是一個(gè)一元多項(xiàng)式,也就是說只有一個(gè)變量。

          線性插值原理示意圖
          已知坐標(biāo) (x0,y0) 和 (x1,y1),
          x 為 x0 和 x1 之間的一個(gè)已知值,求解 y

          雙線性插值

          雙線性插值 (Bilinear Interpolation) 與針對一維數(shù)據(jù)的線性插值方法類似,區(qū)別是雙線性插值拓展到了二維圖像,需要在 X 和 Y 兩個(gè)方向上進(jìn)行插值。

          雙線性插值的運(yùn)算過程比最近鄰插值稍稍復(fù)雜一些,但是效果更光滑,這也導(dǎo)致插值后圖像的部分細(xì)節(jié)看起來比較模糊。

          雙三次插值

          雙三次插值 (Bicubic Interpolation) 同理,用于三個(gè)變量的函數(shù)插值。雙三次插值法更為復(fù)雜,它輸出的圖像邊緣比雙線性插值更為平滑和精確,但是運(yùn)算速度也最慢。

          方法 2:基于重建 

          基于重建的超分辨率復(fù)原方法是指將多張同一場景的低分辨率圖像,在空間上進(jìn)行亞像素精度對齊, 得到高低分辨率圖像彼此之間的運(yùn)動偏移量, 構(gòu)建觀測模型中的空間運(yùn)動參數(shù),從而得到一幅高分辨率圖像的過程。

          原始高分辨率圖像(左)
          與經(jīng)過亞像素位移后得到的圖像序列(右)

          基于重建的超分辨率方法的核心思想,就是用時(shí)間帶寬(獲取同一場景的多幀圖像序列),換取空間分辨率,實(shí)現(xiàn)時(shí)間分辨率向空間分辨率的轉(zhuǎn)換。

          目前超分辨率重建方法可分為兩大類:頻域法和空域法。

          頻域法在頻域內(nèi)解決圖像內(nèi)插問題,其觀察模型是基于傅里葉變換的移位特性,它靈論簡單、運(yùn)算復(fù)雜度低,容易實(shí)現(xiàn)并行處理。

          空域法的線性空域觀測模型則涉及全局和局部運(yùn)動、光學(xué)模糊、幀內(nèi)運(yùn)動模糊等,其典型方法包括非均勻插值法、迭代反投影法、最大后驗(yàn)概率法(目前實(shí)際應(yīng)用和科學(xué)研究中運(yùn)用最多的一種方法)、凸集投影法。

          方法 3:基于學(xué)習(xí) 

          基于學(xué)習(xí)的超分辨率方法,是指通過神經(jīng)網(wǎng)絡(luò),直接學(xué)習(xí)低分辨率圖像到高分辨率圖像的端到端的映射函數(shù),利用模型習(xí)得的先驗(yàn)知識,獲取圖像的高頻細(xì)節(jié),從而獲得較好的圖像恢復(fù)效果。

          基于淺層學(xué)習(xí)的算法步驟包括:特征提取–>學(xué)習(xí)–>重建,主流方法包括:基于樣例 (Example-based) 法、鄰域嵌入方法、支持向量回歸方法、稀疏表示法等。

          其中基于樣例法是首個(gè)基于學(xué)習(xí)的單圖像超分辨率算法,由 Freeman 首次提出。它利用機(jī)器學(xué)習(xí)訓(xùn)練數(shù)據(jù)集,習(xí)得低分辨率和高分辨率之間的關(guān)系,進(jìn)而實(shí)現(xiàn)超分辨重建。

          基于深度學(xué)習(xí)的算法步驟包括特征提取–>非線性映射–>圖像重建

          基于深度學(xué)習(xí)的圖像超分辨率重建方法包括 SRCNN、FSRCNN、ESPCN、VDSR、SRGAN、ESRGAN 等,此處重點(diǎn)介紹 SRCNN、SRGAN、ESRGAN 三種算法。

          SRCNN

          SRCNN 是將深度學(xué)習(xí)用于超分辨率重建的開山之作,它的網(wǎng)絡(luò)結(jié)構(gòu)非常簡單,只包括 3 個(gè)卷積層。

          SRCNN 的網(wǎng)絡(luò)結(jié)構(gòu)
          三個(gè)算法步驟分別為:特征提取、非線性映射、圖像重建

          實(shí)現(xiàn)方法很精煉:輸入低分辨率圖像,用雙三次插值法將圖像放大至目標(biāo)尺寸,然后用三層卷積神經(jīng)網(wǎng)絡(luò)擬合低分辨率圖像跟高分辨率圖像之間的非線性映射,最后輸出重建后的高分辨率圖像。

          優(yōu)點(diǎn):
          網(wǎng)絡(luò)結(jié)構(gòu)簡單(僅使用 3 個(gè)卷積層);框架在選擇參數(shù)時(shí)很靈活,支持自定義。

          缺點(diǎn):
          僅針對單個(gè)尺度因子進(jìn)行訓(xùn)練,一旦數(shù)據(jù)量發(fā)生變化,則必須重新訓(xùn)練模型;僅使用一層卷積層進(jìn)行特征提取,比較局限,細(xì)節(jié)提現(xiàn)不充分;當(dāng)圖像放大倍數(shù)超過 4 時(shí),得到的結(jié)果過于平滑、不真實(shí)。

          SRGAN

          SRGAN 是首個(gè)支持圖像放大 4 倍仍能保持真實(shí)感的框架,科研人員提出了感知損失函數(shù) (perceptual loss function) 的概念,它包括一個(gè)對抗損失 (adversarial loss) 和一個(gè)內(nèi)容損失 (content loss)。

          SRGAN 中生成器和判別器的網(wǎng)絡(luò)結(jié)構(gòu)
          所有卷積層都有對應(yīng)的卷積核尺寸 k、特征圖數(shù)量 n 及步長 s

          對抗損失用判別器網(wǎng)絡(luò)來判斷輸出圖像跟原始圖像的真實(shí)性差異;內(nèi)容損失也是由感知相似性驅(qū)動的,而非像素空間相似性。

          感知損失函數(shù)的引入,使得 SRGAN 在進(jìn)行圖像超分辨率重建時(shí),能夠針對單幅圖像,生成真實(shí)紋理,補(bǔ)充損失的細(xì)節(jié)。

          ESRGAN 

          ESRGAN 在 SRGAN 的基礎(chǔ)上,進(jìn)一步改進(jìn)了網(wǎng)絡(luò)結(jié)構(gòu)、對抗損失和感知損失,增強(qiáng)了超分辨率處理的圖像質(zhì)量。模型改進(jìn)包括以下三個(gè)方面:

          1. 引入容量更大、更易于訓(xùn)練的 Residual-in- Residual Dense Block (RRDB) 來改善網(wǎng)絡(luò)結(jié)構(gòu),刪除 BN (Batch Normalization) 層,用 residual scaling 和 smaller initialization 來改善深度網(wǎng)絡(luò)的訓(xùn)練;

          2. 用 RaGAN 改進(jìn)判別器,預(yù)測高分辨率圖像跟原始圖像之間的相對真實(shí)性而不是絕對值,從而使得生成器恢復(fù)原始圖像更真實(shí)的紋理細(xì)節(jié);

          3. 改進(jìn)感知損失,把先前 SRGAN 中激活后的 VGG features 改為激活前執(zhí)行,提高輸出圖像的邊緣清晰度和紋理真實(shí)性。


          與其他方法相比,ESRGAN 輸出的建筑物圖像(右下)
          具有更多的自然紋理、細(xì)節(jié)效果更佳

          與 SRGAN 相比,ESRGAN 輸出的圖像畫質(zhì)更佳,且具有更真實(shí)和自然的紋理,并在 PIRM2018-SR 挑戰(zhàn)賽中榮登榜首,代碼見 github.com/xinntao/ESRGAN

          教程詳解:用 ESRGAN 進(jìn)行圖像增強(qiáng)

          本教程將演示如何在 TensorFlow Hub 中 用 ESRGAN 算法,進(jìn)行圖像增強(qiáng)。ESRGAN 的輸出結(jié)果如下圖所示:

          超分辨率重建后,原圖(左)與 ESRGAN 輸出結(jié)果(右)對比圖
          ESRGAN 在清晰度和細(xì)節(jié)處理方面表現(xiàn)優(yōu)異

          快速上手 ESRGAN


          開源協(xié)議:Apache License 2.0

          安裝環(huán)境:Python 3.6,TensorFlow 2.3.1

          使用說明:該模型使用 DIV2K 數(shù)據(jù)集(雙三次降采樣的圖像)中,大小為 128 x 128 的圖像快進(jìn)行訓(xùn)練

          注意事項(xiàng):運(yùn)行教程請使用「使用ESRGAN進(jìn)行圖像超分辨率重建.ipynb」,按順序運(yùn)行 cell 即可;目錄中 model 文件夾下為模型文件,esrgan-tf2_1.tar.gz 文件為模型壓縮包(本教程運(yùn)行中未使用壓縮包)


          完整教程傳送門:
          https://openbayes.com/console/openbayes/containers/EsAbdwfM6YN

          準(zhǔn)備環(huán)境 


          定義輔助函數(shù)


          對從路徑加載的圖像執(zhí)行超解析


          并排比較輸出大小


          完整教程傳送門:
          https://openbayes.com/console/openbayes/containers/EsAbdwfM6YN

          關(guān)于 OpenBayes 

          OpenBayes 是國內(nèi)領(lǐng)先的機(jī)器智能研究機(jī)構(gòu),提供算力容器、自動建模、自動調(diào)參等多項(xiàng) AI 開發(fā)相關(guān)的基礎(chǔ)服務(wù)。

          同時(shí) OpenBayes 還上線了數(shù)據(jù)集、教程、模型等眾多主流公開資源,供開發(fā)者快速學(xué)習(xí)并創(chuàng)建理想的機(jī)器學(xué)習(xí)模型。

          現(xiàn)在訪問 openbayes.com 并注冊

          即可享用 

          600 分鐘/周的 vGPU

          以及 300 分鐘/周 的 CPU 免費(fèi)計(jì)算時(shí)


          快行動起來,用 ESRGAN 訓(xùn)練你的超分辨率圖像增強(qiáng)模型吧!

          完整教程傳送門:
          https://openbayes.com/console/openbayes/containers/EsAbdwfM6YN

          參考:
          https://blog.csdn.net/weixin_42463482/article/details/82830628
          https://www.cnblogs.com/carsonzhu/p/10860594.html
          http://fcst.ceaj.org/EN/article/downloadArticleFile.do?attachType=PDF&id=108
          https://zhuanlan.zhihu.com/p/263008440

          編輯:于騰凱
          校對:林亦霖
          瀏覽 39
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  97国产在线| 第九色婷婷 | 青娱乐精品视频分类免费 | 麻豆国产乱伦 | 亚洲免费V |