天天看點

圖像超分辨率重建

作者:閃念基因

1 背景

圖像超分辨率重建(Image Super-Resolution, SR)是一種通過算法将低分辨率(LR)圖像恢複成高分辨率(HR)圖像的技術。在現實中,由于多種原因,如傳感器分辨率、光學系統分辨率等,擷取高分辨率圖像的成本和困難度往往比較高,而低分辨率圖像則容易擷取。是以,如何從低分辨率圖像中恢複出高分辨率圖像一直是計算機視覺領域的一個研究熱點。普通插值算法、雙線性插值、最鄰近插值等,将圖像分辨率提高以後,無法獲得較為清晰的圖像,是以如何在提升分辨率的同時還保持圖像的清晰度,是圖像超分辨率重建的一個重點。本文将介紹基于深度學習的圖像超分辨率重建。

在介紹正式的超分内容前,需要明确一個容易混淆的問題:圖像清晰化和圖像超分辨率重建有什麼差別?

圖像超分辨率重建

圖1 圖像清晰化—同分辨率下提高清晰度

圖像超分辨率重建

圖2 超分辨率重建任務—從低分辨率重建高分辨率後,清晰度不變或提高

  • 圖像清晰化:圖像增強能夠将清晰度較低、視覺效果較差的圖像轉變成具有高清晰度的圖像
  • 圖像超分辨率重建:圖像超分辨率重建在将分辨率較低的圖像轉化為高分辨率圖像的同時,還能夠保持或圖像清晰度

2 算法發展路線

從2014年 SRCNN 算法被提出後,到目前為止,基于深度學習的圖像超分辨率重建算法大緻經曆了五個階段:

圖像超分辨率重建

在 SRCNN 算法時代,超分領域的主要問題是探索任務基礎元件,當 ESPCN 等算法相繼提出後,圖像超分辨率的基礎元件得到了完善,開始建構超分任務架構。SRResNet 的提出後,超分任務的任務架構也逐漸确定下來,随着超分任務架構的穩定,研究重心逐漸轉向兩個主要方向。首先,一方面努力集中在對深層網絡結構的不斷改進,以進一步提取圖像中的豐富特征資訊。另一方面,研究者們開始集中精力解決超分辨率領域的新挑戰,即盲超分任務與退化方式模組化。在本文中,将按照超分的技術發展路線介紹超分辨率算法,讓讀者能對圖像超分辨率算法有深入的了解。

3 論文算法詳解

本部分将從五個階段選取一些經典的論文進行介紹,以深入淺出的方式探讨圖像超分辨率算法的發展曆程。

3.1 超分任務核心元件探索階段

圖像超分辨率重建

圖3 SRCNN 網絡結構

SRCNN 被廣泛認為是超分辨率領域的先驅之一,引入深度學習方法,以取代傳統的插值和濾波技術。SRCNN 的設計旨在通過卷積神經網絡(CNN)學習從低分辨率圖像到高分辨率圖像的映射,進而實作圖像的超分辨率。其基本工作流程包括以下關鍵步驟:

(1)插值:首先,SRCNN 将輸入的低分辨率圖像通過插值的方式縮放到與目标尺寸相比對的分辨率。這個插值步驟有助于提供更多的資訊,為網絡提供高分辨率圖像的細節。

(2)特征提取:插值後的圖像通過一系列卷積層進行特征提取。SRCNN 的網絡結構包含三個主要卷積層,分别負責學習圖像的局部和全局特征,以及進行非線性映射。

(3)圖像重建:在特征提取之後,SRCNN 通過卷積層實作圖像的重建。這一步驟旨在利用學到的特征将高分辨率低清晰度圖像映射到高分辨率高清晰度圖像空間。

SRCNN 的貢獻在于引入了端到端的深度學習方法,消除了傳統方法中需要手工設計特征和多階段處理的複雜性。然而,随着後續算法的提出,SRCNN 的性能逐漸被更深、更複雜的網絡結構所超越。不過,SRCNN 為圖像超分辨率領域奠定了基礎,為後續算法的發展提供了有益的經驗。

圖像超分辨率重建

圖4 VDSR 網絡結構

VDSR 的主要貢獻在于采用了極深的網絡結構,以更好地捕捉圖像中的複雜特征和高頻資訊,進而實作更精确的超分辨率效果。以下是 VDSR 的主要特點:

  • 深度網絡結構:VDSR 采用了一個非常深的卷積神經網絡結構,具有19個卷積層。這種深度結構的設計旨在使網絡能夠學習到更豐富的圖像特征,進而提高對低分辨率輸入圖像的超分辨率性能。
  • 殘差學習: VDSR 使用了殘差學習的思想,VDSR 将高分辨率圖抽象了一個核心假設,即高分辨率圖=高分辨率低清晰化圖+紋理殘差,并将這種方式應用到了任務架構中。

VDSR 在超分辨率領域的貢獻在于抽象了一個核心假設:高分辨率圖=高分辨率低清晰化圖+紋理殘差,使得網絡能夠更好地了解和還原圖像中的細節。盡管後續出現了更複雜的網絡結構,但 VDSR 的成功啟示了通過增加網絡深度來提升超分辨率性能的有效性。

圖像超分辨率重建

圖5 ESPCN 網絡結構

ESPCN 的設計旨在提高超分辨率模型的效率,使其在處理大規模圖像資料時更加輕量化。ESPCN 的核心思想是通過亞像素卷積(Sub-Pixel Convolution)實作高效的上采樣。亞像素卷積是一種特殊的卷積操作,可以将低分辨率的特征圖映射到高分辨率的輸出圖像。ESPCN 的工作流程包括以下關鍵步驟:

(1)低分辨率特征提取:輸入的低分辨率圖像經過一系列卷積層,用于提取圖像的特征。這些卷積層幫助網絡學習從低分辨率到高分辨率的特征映射。

(2)PixelShuffle 上采樣:在 ESPCN 中,采用亞像素卷積層,通過這一層實作低分辨率特征圖的上采樣。這種上采樣方法有别于傳統的插值方法,更為高效地提高了圖像分辨率。

(3)重建:上采樣後的特征圖通過進一步的卷積操作進行圖像重建。這一步驟有助于恢複更豐富的圖像細節,使得高分辨率圖像更加清晰。

ESPCN 的創新之處在于通過亞像素卷積實作了輕量級的上采樣,使得模型在參數量和計算複雜度上都相對較小。這對于在資源受限的環境中進行實時圖像超分辨率處理非常有價值。雖然後續出現了更複雜的超分辨率算法,但 ESPCN 的設計理念為輕量級模型在圖像超分辨率任務中的應用提供了有益的經驗。

圖像超分辨率重建

圖6 EDSR

EDSR 采用了 SRResNet 的結構,差別于一些其他深度網絡,EDSR 去除了 BN,作者提出 BN 層天然會拉伸圖像本身的色彩、對比度,這樣反倒會使得輸出圖像變壞,去除 BN 後,模型會更加輕量。BN 層所消耗的存儲空間等同于上一層 CNN 層所消耗的,作者指出相比于 SRResNet,EDSR 去掉 BN 層之後節約了40 %的存儲資源。在 BN 騰出來的空間下插入更多的類似于殘差塊等 CNN-based 子網絡來增加模型的表現力。

3.2 超分任務架構建構階段

圖像超分辨率重建

圖7 SRResNet

在 SRResNet 中,作者搭建了完整的超分辨率任務架構,并将超分辨率任務劃分為四個核心元件:淺層、深層、上采樣層和重建輸出層。

(1)淺層:淺層元件扮演着任務起始階段的角色,通過一個大卷積核進行初步特征提取。這一步驟的目的是将輸入圖像轉換到一個特征空間内,為後續更深層次的網絡提供基礎特征表示,有助于更有效地捕捉圖像的高層次結構和紋理資訊。

(2)深層:深層元件是整個網絡中參數最多、計算最耗時的部分。經過淺層的特征轉換後,深層網絡負責進一步提取圖像中更加豐富和抽象的特征資訊。這個深度結構的引入使得網絡能夠逐漸了解圖像的複雜結構和紋理,進而更好地執行超分辨率任務。

(3)上采樣層:上采樣層元件使用 Pixshuffle 等技術将通道資訊轉換為分辨率資訊。這一步驟對于将特征圖從低分辨率映射到高分辨率至關重要,通過有效的上采樣,網絡能夠保留并放大輸入圖像的細節。

(4)重建輸出層:重建輸出層元件通過使用大卷積核,将高分辨率特征映射轉換為最終的高分辨率輸出圖。這一步驟在整個架構中扮演着關鍵的角色,決定了最終生成的超分辨率圖像的品質和清晰度。

SRResNet 的主要貢獻在于提出了完整的超分辨率任務架構,将其劃分為四個關鍵元件。在後續的超分辨率研究中,大部分的改進工作集中在對深層網絡結構的優化上,旨在增強深層的特征提取能力。這一任務架構的提出為超分辨率領域的進一步發展提供了堅實的基礎,其思想群組件延續至今,并在後續算法中發揮了重要的指導作用。

圖像超分辨率重建

圖8 LapSRN

之前以 SRResNet 為主的超分算法主要集中在固定倍率的超分辨率重建任務上,而 LapSRN 的獨特之處在于提出了一種非固定倍率放大的網絡架構,可以得到多個放大倍數的高分辨率圖,網絡采用了拉普拉斯金字塔結構,通過多尺度資訊的融合實作更全面的圖像超分辨率。以下是 LapSRN 的主要特點和工作原理:

  • 拉普拉斯金字塔結構:LapSRN 使用了拉普拉斯金字塔,這是一種圖像金字塔的變種,其中每個尺度的圖像由原始圖像減去其上一尺度的圖像上采樣得到。這種結構允許網絡在多個尺度上學習圖像細節,進而更全面地了解和還原高分辨率圖像。
  • 多尺度處理:LapSRN 将輸入圖像分解成多個尺度,每個尺度分别經過對應的 SR 網絡進行處理。這種多尺度的設計有助于網絡在不同分辨率上學習圖像的特征,更好地處理圖像中的紋理和細節。
  • 訓練:LapSRN 通過大量的高分辨率圖像及其對應的低分辨率版本進行監督學習。網絡的目标是最小化預測圖像與真實高分辨率圖像之間的差異,通過多尺度的結構和特征融合,學到從低分辨率到高分辨率的映射。
  • 金字塔重建:最後,通過将各個尺度的超分辨率結果與其上一尺度的細節圖像進行加和,實作了最終高分辨率的圖像重建。

LapSRN 的獨特設計使得它能夠更全面地處理圖像超分辨率任務,可以得到非固定倍率的放大圖像,進而在一定程度上提高了性能。拉普拉斯金字塔結構的引入為網絡提供了多尺度資訊的豐富表示,特征融合子產品的設計則增強了網絡對多尺度特征的整合能力。這些創新性的設計使得 LapSRN 成為圖像超分辨率領域中值得關注的算法之一。

3.3 對抗訓練階段

圖像超分辨率重建

圖9 SRGAN 網絡結構

SRGAN 将對抗引入了超分辨率任務,論文提出了超分辨率是一個病态問題(ill-posed),由于在實際場景中,高分辨率圖像經過了多種未知的退化方式得到了各種各樣的低分辨率圖像。而高分辨率圖像中,對清晰的定義也是不一的,也存在多種分布情況,是以圖像超分辨率任務,實質是一種多對多任務。而之前的超分辯算法一直隻采用的像素損失作為度量,是無法很好的解決病态問題的。使用像素損失度量多對多問題,最終會導緻預測結構就像是多個高清圖像的一個平均效果,會使得所得圖像很模糊,不符合真實高清圖像的分布,而 GAN 可以将其拉向真實高清圖像的分布。以下是 SRGAN 的主要特點和工作原理:

  • 生成對抗網絡(GAN):SRGAN 基于生成對抗網絡,其中包含一個生成器(Generator)和一個判别器(Discriminator)。生成器旨在生成高分辨率的圖像,而判别器則試圖區分生成的高分辨率圖像和真實高分辨率圖像。這種對抗性訓練促使生成器生成更真實、更逼真的圖像。
  • 損失函數:SRGAN 使用對抗損失(Adversarial Loss)作為優化目标,使生成器生成的圖像在外觀上難以與真實圖像區分。此外,為了確定生成的圖像在結構上更加保真,SRGAN 引入了感覺損失(Perceptual Loss),使用預訓練的深度網絡(如 VGG 網絡)來比較生成圖像和真實圖像之間的特征表示。

SRGAN 的主要貢獻在于将生成對抗網絡引入圖像超分辨率任務中,通過對抗訓練方式生成更為真實和細緻的高分辨率圖像。這種思想的引入對于超分辨率領域的發展産生了深遠的影響,啟發了後續許多其他基于 GAN 的超分辨率算法。

3.4 深層網絡結構優化階段

圖像超分辨率重建

圖10 RDN 網絡結構

圖像超分辨率重建

圖11 SAN 網絡結構

圖像超分辨率重建

圖12 SwinIR 網絡結構

RDN 等超分算法屬于第四階段的圖像超分辨率算法,主要集中在對超分架構對深層做優化。在第四階段超分的時期,是注意力機制,Transformer 等網絡元件被提出的時期,于是超分研究者們自然而然等把一些新的網絡元件引入了深層網絡的設計中,除了 RDN,還有 RDN,WDSR,RCAN,SwinIR,IGNN 等等算法,均是對深層結構進行優化和改進,本文不再贅述,感興趣的讀者可自行查閱相關資料。

3.5 盲超分與退化模組化階段

圖像超分任務作為基本的 low-level 視覺問題,圖像超分辨率目标是從其低分辨率觀測中重建高分辨率圖像。目前已經提出了基于深度學習的方法的多種網絡架構和超分網絡的訓練政策來改善性能。任務需要兩張圖檔,一張高分辨率的 HR 圖和一張低分辨率的 LR 圖。超分模型的目的是根據後者生成前者,而退化模型的目的是根據前者生成後者。經典超分任務認為:低分辨率的 LR 圖是由高分辨率的 HR 圖經過某種退化作用得到的,這種退化核預設為一個雙三次下采樣的模糊核 (downsampling blur kernel)。

也就是說,這個下采樣的模糊核是預先定義好的。但是,在實際應用中,這種退化作用十分複雜,不但表達式未知,而且難以簡單模組化。雙三次下采樣的訓練樣本和真實圖像之間存在一個域差。以雙三次下采樣為模糊核訓練得到的網絡在實際應用時,這種域差距将導緻比較糟糕的性能。這種退化核未知的超分任務我們稱之為盲超分任務。

盲圖像超分辨率主要分為顯示模組化(Explicit Modelling)和隐式模組化(Implicit Modelling)兩類方法。

  • 顯式模組化方案通常采用經典退化模型,即一種廣義的退化方式,如公式所示,這種退化方式要比 bicubic 下采樣更複雜:
圖像超分辨率重建
  • 隐式模組化方法和顯示模組化有較大的差别,它不依賴于任何顯式參數,而是利用額外的資料通過資料分布隐式的學習潛在超分模型,現有方法往往采用 GAN 架構探索資料分布
圖像超分辨率重建

圖13 Real ESRGAN 中的退化過程

Real ESRGAN 提出了一個高階退化過程來模拟實際退化,使用純合成資料訓練的Real-ESRGAN 能夠還原大多數真實世界的圖像,并實作比以往作品更好的視覺表現,使其在實際應用中更具實用性。采用上述經典退化模型合成訓練對時,訓練後的模型确實可以處理一些真實樣本。論文中提出,采用插值、模糊等固定流程退化方式時候,它仍然無法解決現實世界中一些複雜的劣化問題,尤其是未知的噪聲和複雜的僞影,這是因為合成的低分辨率圖像與逼真的退化圖像仍然有很大的差距。是以,論文中将經典的退化模型擴充到高階退化過程,以模拟更實際的退化。

圖像超分辨率重建

圖14 PDM-SR 中的退化過程

本文作者将退化函數作為随機變量進行研究,并将其分布模組化為模糊核和随機噪的聯合分布。所提出的機率退化模型 (PDM) 可以更好地将退化作用與圖像内容解耦。與之前的退化模型相比,PDM 可以生成具有更大退化多樣性的 HR-LR 訓練樣本,這可以生成更多種類的退化作用,并有助于提高 SR 模型在測試圖像上的性能。此外,PDM 提供了一個靈活的退化作用,可以根據不同的實際情況進行調整。

圖像超分辨率重建

圖14 PDM-SR 的訓練方式

PDM 也提出了一個統一的訓練架構,架構如圖所示,它可以和 SR 模型一起訓練, 這樣,PDM 就可以與任何 SR 模型內建,形成 Blind SR 的統一架構。

4 超分辨率思想與摳圖任務結合

在 Matting 任務中,算法需要具備兩個關鍵能力,即語義了解和高分辨率精細度處理。以往的 Matting 任務中,為了解決高分辨率任務下的精細摳圖問題,通常采用輸入輸出均為高分辨率圖像的網絡結構。然而,這樣的做法對訓練和推理資源造成了巨大的消耗。

圖像超分辨率重建

基于這一認識,我們将任務拆分為兩個關鍵部分:一個是低分辨率語義基礎網絡,用于解決主體明确的問題,另一個是超分辨率重建和細節修複的 Refine 網絡,用 Refine 網絡解決超分辨率重建和精細度問題。通過這種拆分,我們實作了對 Matting 任務的高效處理,并有效降低了對資源的需求。在 Refine 網絡的設計中,我們借鑒了 LapSRN 的網絡結構設計,采用了漸進式恢複的政策。這一政策允許網絡逐漸處理圖像的細節資訊,進而在保持高分辨率的同時有效地修複圖像的細微問題。這種設計不僅提高了 Matting 任務的精确性,同時也進一步降低了對計算資源的壓力。

5 總結

圖像超分辨率重建任務的發展經曆了從基礎元件設計到任務架構搭建的推進,到如今使用盲超分與退化模組化,以更真實地模拟低分辨率圖在實際場景中的分布情況。圖像超分辨率重建算法在海馬體圖像算法應用場景中都扮演着不可或缺的角色,雖然不直接作為海馬體算法應用場景的基礎任務架構,但使用超分辨率中的元件,有助于在計算資源有限的條件下實作高分辨率方案。

是以,深入了解和應用圖像超分辨率重建是重要的,通過本文的介紹,希望幫助讀者将能夠建立起對這一技術的深刻了解,為其在實際工作中的靈活運用提供了堅實的基礎。

本文作者

西西弗斯,來自缦圖網際網路中心算法團隊。

來源-微信公衆号:缦圖coder

出處:https://mp.weixin.qq.com/s/mcPTBK0TavHr55QlcRAqTQ