使用深度學習來實現超解析度的介紹

  • 2019 年 11 月 14 日
  • 筆記

來源:AI公園

作者:Bharath Raj 編譯:ronghuaiyang

導讀

這裡詳細討論了用於使用深度學習的超解析度的各種組件、損失函數和度量。

介紹

超解析度是從給定的低解析度(LR)影像中恢復高解析度(HR)影像的過程。由於較小的空間解析度(即大小)或退化的結果(如模糊),影像可能具有「較低的解析度」。我們可以將HR影像和LR影像通過如下公式聯繫起來:LR = degradation(HR)`

顯然,在應用退化函數時,我們可以從高解析度影像中得到低解析度影像。但是,我們可以反過來做嗎?在理想情況下,是的!如果我們知道精確的退化函數,通過對LR影像應用它的逆函數,我們可以恢復HR影像。

但是,問題就在這裡。我們通常事先不知道退化函數。直接估計逆退化函數是一個不適定的問題。儘管如此,深度學習技術已被證明是有效的超解析度方法。

本部落格主要介紹如何通過使用監督訓練方法使用深度學習來進行超解析度。還討論了一些重要的損失函數和度量。很多內容都來自於這篇文獻綜述:https://arxiv.org/abs/1902.06068,讀者可以參考一下。

監督方法

如前所述,深度學習可以用給定的低解析度影像來估計高解析度影像。通過使用高解析度影像作為目標(或 ground-truth)和LR影像作為輸入,我們可以將其視為監督學習問題。

在本節中,我們將按照卷積層的組織方式對各種深度學習方法進行分組。在我們繼續討論組之前,先介紹一下數據準備和卷積類型。用於優化模型的損失函數在本部落格的最後單獨給出。

數據準備

獲取低解析度數據的一個簡單方法是對高解析度數據進行退化。這通常是通過模糊或添加雜訊來實現的。較低空間解析度的影像也可以通過經典的上取樣方法進行縮放,比如Bilinear或Bicubic插值。還可以引入JPEG和量化雜訊來降低影像的品質。

對高解析度影像進行退化處理以獲得其低解析度版本

需要注意的一件重要事情是,建議以未壓縮(或無損壓縮)格式存儲高解析度影像。這是為了防止由於有損壓縮而導致的高解析度影像品質下降,這可能會導致性能不佳。

卷積類型

除了經典的2D卷積,網路中還可以使用一些有趣的變體來改進結果。Dilated卷積可以提供更有效的視場,因此可以使用相隔很遠的資訊。Skip connections、Spatial Pyramid Pooling和Dense Blocks推動了低級特徵和高級特徵的結合,以提高性能。

上面的圖片提到了一些網路設計策略。有關更多資訊,可以參考這篇論文:https://arxiv.org/abs/1902.06068。關於深度學習中常用的不同類型卷積的入門知識,你可以參考這個部落格:https://towardsdatascience.com/types-of-convolutions-in-deep-learning-717013397f4d。

第1組:前置上取樣

該方法首先對低解析度影像進行插值,得到「粗」的高解析度影像。現在,CNNs被用來學習從插值的低解析度影像到高解析度影像的端到端映射。這個方法的直覺是,使用傳統方法(如雙線性插值)對低解析度影像進行上取樣,然後對結果進行細化,可能比學習從低維空間到高維空間的直接映射更容易。

一個典型的前置上取樣網路

您可以參考這篇文章的第5頁:https://arxiv.org/abs/1902.06068,了解使用這種技術的一些模型。優點是,由於上取樣是用傳統的方法處理的,CNN只需要學習如何對粗影像進行細化,這更加簡單。此外,由於我們這裡沒有使用轉置卷積,checkerboard artifacts可能會被繞過。然而,缺點是預定義的上取樣方法可能會放大雜訊並導致模糊。

第2組:後置上取樣

在這種情況下,低解析度影像被傳遞到CNNs。上取樣在最後一層使用可學習層來執行。

一個典型的後置上取樣網路

該方法的優點是在較低維空間(上取樣前)進行特徵提取,從而降低了計算複雜度。此外,通過使用一個可學習的上取樣層,可以對模型進行端到端的訓練。

第3組:逐步上取樣

在上面的組中,雖然計算複雜度降低了,但是只使用了一個上取樣卷積。這使得大尺度縮放的學習過程更加困難。為了解決這個缺陷,Laplacian Pyramid SR Network和progressive SR採用了漸進上取樣的框架。在這種情況下,模型使用級聯神經網路在較小的尺度上每一步逐步重建高解析度的影像。

一個典型的逐步上取樣網路

通過將一個困難的任務分解成更簡單的任務,可以大大降低學習難度,獲得更好的性能。此外,像curriculum learning這樣的學習策略可以進一步降低學習難度,提高最終的performance。

第4組:迭代上下取樣

另一種流行的模型架構是hourglass(或U-Net)結構。有些變體,如Stacked Hourglass網路使用幾個連續的hourglass結構,有效地在上取樣和下取樣過程之間交替。

一個典型的迭代上下取樣網路

該框架下的模型能夠更好地挖掘出低解析度影像和高解析度影像對之間的深層關係,從而提供更高品質的重建結果。

損失函數

利用損失函數來測量生成的高解析度影像與ground truth高解析度影像之間的差異。然後用這個差(誤差)來優化監督學習模型。存在幾種類型的損失函數,每一種函數都對生成的影像的不同方面進行懲罰。

通常,通過對每個損失函數的誤差分別加權和求和,可以使用多個損失函數。這使得模型能夠同時關注多個損失函數所貢獻的方面。

 total_loss = weight_1 * loss_1 + weight_ 2 * loss_2 + weight_3 * loss_3

在本節中,我們將探索用於訓練模型的一些流行的損失函數。

像素損失

像素損失是最簡單的一類損失函數,其中生成的影像中的每個像素都直接與ground-truth影像中的每個像素進行比較。使用流行的損失函數,如L1或L2損失,或高級變體,如smooth L1損失。

PSNR度量(下面討論)與像素損失高度相關,因此最小化像素損失可以直接最大化PSNR度量值(表明性能良好)。然而,像素損失並沒有考慮到影像品質,而且模型常常輸出感知上不令人滿意的結果(通常缺乏高頻細節)。

內容損失

這種損失是基於影像的感知品質來評估影像品質的。一種有趣的方法是比較生成的影像和ground truth影像的高層特徵。我們可以讓影像通過一個預先訓練好的影像分類網路(如VGG-Net或ResNet)來獲得這些高級特徵。

上面的函數計算ground-truth影像和生成的影像之間的內容損失,給定pre-trained網路(Φ),和第I層的輸出,網路計算這兩者的損失。這種損失鼓勵生成的影像在感知上類似於ground-truth影像。由於這個原因,它也被稱為感知損失。

紋理損失

為了使生成的影像具有與ground-truth影像相同的樣式(紋理、顏色、對比度等),使用紋理損失(或樣式重建損失)。根據Gatys et. al的描述,影像的紋理被定義為不同特徵通道之間的相關性。特徵通道通常用預訓練的影像分類網路(Φ)來提取。

計算Gram矩陣

特徵圖之間的相關關係用Gram矩陣(G)表示,G是矢量化特徵圖i和j在圖層I上的內積(見上圖)。一旦對兩幅影像計算了Gram矩陣,計算紋理損失就很簡單,如下圖所示:

計算紋理損失

通過使用這種損失,推動模型來創建真實的紋理和視覺上更令人滿意的結果。

Total Variation損失

利用Total Variation (TV)損失抑制生成影像中的雜訊。它取相鄰像素之間的絕對差值之和,並測量影像中有多少雜訊。對於生成的影像,TV loss計算如下:

這裡, i,j,k 分別對高度,寬度和通道進行迭代。

對抗損失

生成對抗網路(GANs)已越來越多地用於包括超解析度在內的幾種基於影像的應用。GANs通常由兩個神經網路組成——生成器和鑒別器——相互競爭。

給定一組目標樣本,生成器嘗試生成樣本,以欺騙鑒別器,使其相信它們是真實的。鑒別器試圖從假(生成的)樣本中分辨出真實(目標)樣本。使用這種迭代訓練方法,我們最終得到一個生成器,它非常擅長生成與目標示例類似的示例。下圖顯示了一個典型GAN的結構。

為了提高性能,對基本GAN體系結構進行了改進。例如,Park et. al使用特徵級鑒別器來捕捉真實高解析度影像的更有意義的潛在屬性。你可以查看這個blog:https://medium.com/beyondminds/advances-in-geners-adversarialnetworks-7bad57028032?

通常情況下,進行對抗損失訓練的模型具有更好的感知品質,即使它們在PSNR上可能比那些進行像素損失訓練的模型要差。一個小缺點是,GAN的訓練過程有點困難和不穩定。但是,目前正在積極研究穩定的GAN的訓練的方法。

度量

一個大問題是我們如何定量地評估模型的性能。許多影像品質評估(IQA)技術(或度量)用於相同的目的。這些指標可以大致分為兩類——主觀指標和客觀指標。

主觀度量基於人類觀察者的感知評價,而客觀度量基於試圖評估影像品質的計算模型。主觀度量通常更「感知上準確」,但是其中一些度量不方便、耗時或計算成本高昂。另一個問題是這兩類度量標準可能不一致。因此,研究人員經常使用這兩類指標來顯示結果。

在本節中,我們將簡要探討一些廣泛使用的度量標準,以評估超級解析度模型的性能。

PSNR

峰值信噪比(PSNR)是一種常用的客觀指標,用於測量有損變換的重建品質。PSNR與ground truth影像與生成影像的均方誤差(MSE)的對數成反比。

在上面的公式中,L是可能的最大像素值(對於8位RGB影像,它是255)。不足為奇的是,由於PSNR只關心像素值之間的差異,它並不能很好地代表感知品質。

SSIM

結構相似度(SSIM)是一種基於亮度、對比度和結構三個相對獨立的比較來衡量影像之間結構相似度的主觀度量。抽象地說,SSIM公式可以表示為亮度、對比度和結構比較的加權乘積,分別計算。

式中,α,β和γ分別為亮度、對比度和結構比較函數的權重。常用的SSIM公式表示如下:

在上面的公式中μ(I)代表了一個特定影像的均值,σ(I)表示了特定影像的方差,σ(I,I』)表示了兩張影像的協方差,C1, C2是設置的常量,避免計算的不穩定。為簡潔起見,這裡沒有解釋這些術語的意義和確切的推導過程,感興趣的讀者可以在本文中查看第2.3.2節:https://arxiv.org/abs/1902.06068。

由於影像統計特徵可能分布不均或失真,局部評估影像品質比全局更可靠。均值SSIM (MSSIM)是一種局部評估品質的方法,它將影像分割成多個窗口,並對每個窗口獲得的SSIM進行平均。

無論如何,由於SSIM是從人類視覺系統的角度來評價重建品質的,所以它更符合感知評價的要求。

其他的IQA分數

下面列出了其他一些評估影像品質的方法。感興趣的讀者可以參考這篇論文:https://arxiv.org/abs/1902.06068了解更多細節。

  • 平均意見評分(MOS)
  • 基於任務的評價
  • 資訊保真度準則(IFC)
  • 視覺資訊保真度(VIF)

Tags: