1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        用超分辨率扛把子算法 ESRGAN,訓練圖像增強模型

        共 7313字,需瀏覽 15分鐘

         ·

        2021-05-16 09:56

        By 超神經

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

        關鍵詞:超分辨率   機器視覺   深度學習


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

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

        網友用 AI 技術給視頻上色、插幀
        恢復了 1920 年北京市民生活記錄影像

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

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

         超分辨率 3 大法寶:插值、重建、學習


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

         方法 1:基于插值 

        插值法是指在放大圖像后的空缺點上,填補相應的像素值,從而恢復圖像內容,達到提高圖像分辨率的效果。

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

        最近鄰插值法

        最近鄰插值法實現起來最簡單粗暴,運算量也最小,只需要直接復制最近像素點的像素值進行填補即可,但是照搬旁邊的像素最顯著的特點就是效果差、塊效應明顯。

        將左圖進行最近鄰插值后
        得到的右圖產生了明顯可見的鋸齒或馬賽克現象

        線性插值

        線性插值 (Linear Interpolation) 是在一個方向上進行插值,只針對一維數據,其方程式是一個一元多項式,也就是說只有一個變量。
        線性插值原理示意圖
        已知坐標 (x0,y0) 和 (x1,y1),
        x 為 x0 和 x1 之間的一個已知值,求解 y

        雙線性插值

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

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

        雙三次插值

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

          方法 2:基于重建 

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

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

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

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

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

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

         方法 3:基于學習 

        基于學習的超分辨率方法,是指通過神經網絡,直接學習低分辨率圖像到高分辨率圖像的端到端的映射函數,利用模型習得的先驗知識,獲取圖像的高頻細節(jié),從而獲得較好的圖像恢復效果。

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

        其中基于樣例法是首個基于學習的單圖像超分辨率算法,由 Freeman 首次提出。它利用機器學習訓練數據集,習得低分辨率和高分辨率之間的關系,進而實現超分辨重建。

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

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

        SRCNN

        SRCNN 是將深度學習用于超分辨率重建的開山之作,它的網絡結構非常簡單,只包括 3 個卷積層。

        SRCNN 的網絡結構
        三個算法步驟分別為:特征提取、非線性映射、圖像重建

        實現方法很精煉:輸入低分辨率圖像,用雙三次插值法將圖像放大至目標尺寸,然后用三層卷積神經網絡擬合低分辨率圖像跟高分辨率圖像之間的非線性映射,最后輸出重建后的高分辨率圖像。

        優(yōu)點:
        網絡結構簡單(僅使用 3 個卷積層);框架在選擇參數時很靈活,支持自定義。

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

        SRGAN

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

        SRGAN 中生成器和判別器的網絡結構
        所有卷積層都有對應的卷積核尺寸 k、特征圖數量 n 及步長 s

        對抗損失用判別器網絡來判斷輸出圖像跟原始圖像的真實性差異;內容損失也是由感知相似性驅動的,而非像素空間相似性。

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

        ESRGAN 

        ESRGAN 在 SRGAN 的基礎上,進一步改進了網絡結構、對抗損失和感知損失,增強了超分辨率處理的圖像質量。模型改進包括以下三個方面:

         1  引入容量更大、更易于訓練的 Residual-in- Residual Dense Block (RRDB) 來改善網絡結構,刪除 BN (Batch Normalization) 層,用 residual scaling 和 smaller initialization 來改善深度網絡的訓練;

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

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

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

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

         教程詳解:用 ESRGAN 進行圖像增強


        本教程將演示如何在 TensorFlow Hub 中 用 ESRGAN 算法,進行圖像增強。ESRGAN 的輸出結果如下圖所示:

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

        快速上手 ESRGAN
        開源協(xié)議:Apache License 2.0
        安裝環(huán)境:Python 3.6,TensorFlow 2.3.1
        使用說明:該模型使用 DIV2K 數據集(雙三次降采樣的圖像)中,大小為 128 x 128 的圖像快進行訓練
        注意事項:運行教程請使用「使用ESRGAN進行圖像超分辨率重建.ipynb」,按順序運行 cell 即可;目錄中 model 文件夾下為模型文件,esrgan-tf2_1.tar.gz 文件為模型壓縮包(本教程運行中未使用壓縮包)

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

        準備環(huán)境 

        定義輔助函數

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

        并排比較輸出大小

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


                
        個人微信(如果沒有備注不拉群!
        請注明:地區(qū)+學校/企業(yè)+研究方向+昵稱



        下載1:何愷明頂會分享


        AI算法與圖像處理」公眾號后臺回復:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


        下載2:終身受益的編程指南:Google編程風格指南


        AI算法與圖像處理」公眾號后臺回復:c++,即可下載。歷經十年考驗,最權威的編程規(guī)范!



              
        下載3 CVPR2021

        AI算法與圖像處公眾號后臺回復:CVPR,即可下載1467篇CVPR 2020論文 和 CVPR 2021 最新論文

        點亮 ,告訴大家你也在看



        瀏覽 119
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            91久久国产露脸精品国产吴梦梦 | 大鸡巴在线视频 | 精品中文字幕在线观看 | 国产精品久久久久久久久久久久 | 69国产精品免费视频 | 国产在线观看国产精品产拍 | 精品乱码一区二区三四区视频 | 亚洲AV成人无码精品直播在线 | 操美女小逼逼 | 欧美操逼XXX |