作者: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)
英文原文:https://medium.com/beyondminds/an-introduction-to-super-resolution-using-deep-learning-f60aff9a499d
請長按或掃描二維碼關注本公眾號