畢玉萍 李勁華 趙俊莉
(青島大學數據科學與軟件工程學院 山東 青島 266000)
圖像超分辨率(Super Resolution,SR)重建一直以來是一個熱門研究方向。它是將一幅或多幅低分辨率(Low Resolution,LR)圖像作為輸入,輸出高分辨率(High Resolution,HR)圖像的一種計算機視覺任務。該研究雖然具有較高的挑戰性,但有許多應用價值,如醫學圖像處理[1]、衛星成像[2]、面部圖像增強[3-4]和壓縮圖像[5]等領域。
目前,圖像超分辨率算法已趨于成熟,主流的學習算法主要分為三種:基于插值[6]的方法、基于重建[7]的方法和基于學習[8-10]的方法。基于插值的方法主要通過對已有特征進行觀測來獲取像素點,通過這些已有的像素點擬合出數學模型,從新建的數學模型中提取特征來重建圖像。基于插值方法的算法存在計算量大、圖像邊緣和細節處理效果差的問題。基于重建的方法雖然可以重建較清晰的圖像,但是存在計算量大、丟失高頻細節的問題。基于深度學習的超分辨率圖像重建技術主要有以下幾種主要的方法:(1) 基于冗余字典建立低分辨率圖片和高分辨率圖片的特征塊投影矩陣[11-13];(2) 通過建立數學模型實現低分辨率和高分辨率圖像之間的一一對應關系[11-12],主要方法有固定的領域回歸、嶺回歸等模型。基于深度卷積神經網絡的圖像超分辨率模型[14](Super Resolution Convolutional Neural Network,SRCNN)能夠保持現有的重建效果,同時實現了較優的實驗效果。該模型由三層卷積層組成,并分別負責特征提取、高分辨率特征表示的非線性映射以及高分辨率特征表示的非線性圖像重建。SRCNN模型是直接將低分辨率圖像(LR)作為輸入,輸出高分辨率圖像(HR),與已有的傳統方法相比,處理比較簡單。但該方法是一個淺層的網絡結構,仍然存在著紋理模糊的問題。Ledig等[15]提出了基于生成對抗網絡(GAN)的圖像超分辨率方法(Super Resolution Convolutional Generative Adversarial Networks,SRGAN),該方法通過深層神經網絡[18-19]實現,在細節處理上取得更好的效果。
在SRGAN的基礎上,本文提出一種改進的基于GANs的圖像超分辨率算法,即具有類條件圖像超分辨率重建框架(Super Resolution Conditional Generative Adversarial Nets,SRCGAN),SRCGAN明確GAN類標簽的條件下作為GAN的輸入。本文通過為判別器添加這種輔助的自監督損失,可以實現更穩定的訓練,使判別器表征對生成器輸出質量的依賴性降低,從而提高重建效果。
近年來,GANs作為生成模型的框架取得了相當大的成功。GAN網絡結構由兩個模型組成:生成模型G,其作用是生成圖像集,作為判別器的輸入;判別模型D,其作用是辨別圖像是來自真實圖像還是生成器產生的偽圖像。在GAN中,發生器和判別器被訓練成一個雙反饋網絡結構,使生成的模型分布與真實分布之間的差異最小化。考慮輸入噪聲的先驗分布pz(z),為了了解生成器在數據x上的分布,由生成器執行從噪聲分布到數據空間G(z;θg)的映射。GAN定義判別器D(x;θd),它輸出的數值是來自生成器或真實數據集的概率。本文同時訓練G和D以最小化對數log(1-D(G(z)))和最小化log(D(x|y))。GANs的標準公式如下:
EZ~PZ(Z)[log(1-D(G(z)))]
(1)
式中:Pdata是數據分布;PZ是通過對抗性min-max優化來學習的生成器分布。
Mirza等[18]在上述GANs的基礎上提出了有條件的GANs(CGANs),CGANs[19-20]與GAN模型一樣也是由生成器和判別器組成,但GAN無法控制數據的生成過程。為了解決此問題,研究者通過調整類標簽上的模型,指導數據的生成過程。y被定義為類標簽,此時發生器和判別器被訓練成一個雙反饋回路的一部分,使生成的模型分布與真實分布之間的差異最小化。考慮輸入噪聲的先驗分布pz(z),為了了解生成器在數據x上的分布,由生成器執行從噪聲分布到數據空間G(z|y;θg)的映射。GAN定義判別器D(x|y;θd),它輸出的概率是判斷來自生成器生成的偽數據還是真實數據。同時訓練G和D在以y為條件的最小化對數log(1-D(G(z|y)))和D最小化log(D(x|y))。有條件的GANs的標準公式如下:
EZ~PZ(Z)[log(1-D(G(z|y)))]
(2)
式中:Pdata是數據分布;PZ是通過對抗性min-max優化來學習的生成器分布。
在CGANs和SRGAN的啟發下,本文提出了一種具有類條件的圖像超分辨率重建GAN框架(SRCGAN)。首先以比例因子對HR圖像(IHR)進行降采樣,若要創建LR輸入圖像(ILR),執行檢測采樣處理,隨后給GAN提供LR圖像和原始圖像中的數字標簽。與SRGAN相比,本文為SRGAN框架加入了條件元素,這也是本文的改進之處。
生成器和判別器分別以D(x,y|θd)和G(x,y|θg)為條件,其中:x表示HR圖像(要么是真實圖像,要么是生成器產生的圖像)作為輸入,y是類標簽。本文的對抗模式的目標是:
EILR~PG(ILR)[log(1-D(G(ILR,y),y))]
(3)
式中:Pdata是數據分布;PG是通過對抗性min-max優化來學習的生成器分布。通過式(3)的檢測采樣處理,待優化的目標參數減少,同時加入類標簽,讓網絡的優化訓練更具針對性,同時也提高了低分辨率圖像的重建效果。本文將條件GANs框架應用于MNIST[21]數據集,并表明它產生的圖像更接近MNIST數字。改進的SRGAN結構如圖1所示,可知本文方法在下采樣圖片時加入了條件類,這些類標簽是帶有數據集特有屬性的標簽,再將處理過的圖片輸入到生成器,訓練生成器生成的偽高分辨率的圖片,生成器生成的偽高分辨率圖片和真實的高分辨率圖片輸入到判別器中讓判別器加以判別,當生成器生成的圖片能夠達到以假亂真的時候,模型訓練完畢。本文的核心過程也是通過引入條件類解決在圖像重建過程中隨機處理的缺陷。通過條件類的引入,解決了重建過程中對于沒有更正過程的處理,從而進一步提升生成式對抗網絡的重建效果。因此,無論在準確率還是適用范圍,本文方法都有效地解決了目前重建效果差的問題。

圖1 SRCGAN結構圖與SRGAN結構圖的對比
本文使用MNIST數據集,共包含70 000幅圖像,其中60 000幅用作訓練集,10 000幅用作測試集,數據集為手寫體數字且服從均勻分布。數據集圖像尺寸大小為28×28。首先用雙三次插值將圖像縮小到7×7(縮小4倍),作為實驗的輸入,同時輸入數字標簽作為條件變量,評估SRCGAN相對于傳統GAN(即沒有任何條件變量)的性能。SRCGAN訓練的批次大小為128,學習率為0.001。該模型訓練了100個epochs(共迭代46 875次),利用ReLU[22]作為激活函數,Adam[23]作為優化器建立模型。對CNN分類器進行訓練,該模型訓練了70個epochs(共迭代32 813次),采用ReLU作為激活函數,Adam作為優化器。兩種網絡結構都由TensorFlow[24]庫編寫。
由于選取的MNIST數據集不能通過人工驗證實驗效果,考慮到CNN分類器識別圖片的高準確率,本文通過CNN分類器來驗證實驗結果。CNN分類器的作用相當于一個評分器,通過這個評分器可以比較SRGAN與SRCGAN重建圖片的準確率。訓練CNN對MNIST數據集的數字進行分類,以評估來自SRCGAN的預測是否可以正確地被識別為實際數字。CNN分類器在MNIST測試集上的準確率為0.986 1。將SRCGAN和SRGAN生成的圖像輸入CNN分類器,判別分類精度分別為0.802 3和0.682 2。這表明條件信息可以幫助生成更準確的HR圖像。表1對比了SRCGAN和GAN生成的圖像MNIST數字分類器的準確性。

表1 SRCGAN和GAN生成的圖像在MNIST測試集上通過CNN分類器判別的準確度
圖2比較了SRCGAN和GAN的輸出結果,圖中第一列為輸入的原始低分辨率圖像,第二列為GAN重建的圖像,第三列為CGAN重建的圖像,第四列為原始高分辨率圖像。由于GAN產生的大部分圖像都非常模糊,因此很難分辨出圖片具體代表什么數字;另一方面,用SRCGAN生成的數字圖像更清晰,數字更容易識別。SRCGAN的HR輸出比縮小的圖像有明顯的改善。總之,基于GAN的比較分類器和可視化結果表明,加入條件項可以提高HR圖像重建的質量。

圖2 MNIST分類器對SRCGAN輸出和GAN輸出的分類結果與LR輸入圖像和真實HR圖像比較
為了進一步驗證本文算法的應用價值,對車牌數據集進行了對比實驗,設置并選取標準差為10、均值為0的高斯分布來更新濾波器的初始值,并用隨機梯度下降法得到目標函數的最優解。通過多次實驗和調整參數,得到當放大因子為原圖像的3倍時,圖片重建效果表現最優。基于圖片的輸入,本文應用的主要方法為將RGB的顏色空間轉換為YCbCr顏色空間中,通過對亮度Y通道的重建,其余則通過運用雙三次插值法得到目標的最終尺寸。
本文選取了部分車牌圖像進行處理,當放大因子為3的情況下將本文方法與雙三次插值Bicubic算法和基于字典學習的K-SVD算法的重修效果作對比,結果如圖3所示。其中第一列為原始高分辨率圖像,第二列為Bicubic處理的圖像,第三列為K-SVD處理后的圖像,第四列為SRCGAN處理后的圖像。

圖3 放大因子為3的重建效果對比圖
可以看出,本文方法優于其他兩種算法,能夠獲得更加清晰的重建圖片。在與Bicubic算法作對比時,本文算法得到的重建圖像邊緣更加清晰且更平滑,圖片的整體圖像視覺效果更好,且達到人眼的美學標準。而與K-SVD算法作對比時,本文算法可以完全克服K-SVD算法產生的振鈴現象。車牌圖像雖然經過本文算法得到的整體重建圖片效果較好,但是在車牌圖像重建后的中文文字部分還是不夠清晰,有些細節信息不能很好地恢復和重建,與原始真實的高清車牌圖像對比,重建的文字效果和真實的文字還存在一定差距。對整體車牌圖像重建后也能高效清晰地重建車牌中的文字部分,是下一步研究工作中的重點和難點。
從客觀角度分析,表2是對比不同算法后PSNR值的比較,當PSNR值越大,表示重建的效果越好。由表2可知,本文提出的重建算法得到的PSNR值明顯高于其他兩種算法,充分說明本文算法重建質量優于其他兩種算法。Bicubic算法和K-SVD算法雖然在一定程度上提高了車牌圖像的質量,但是重修后的圖像仍存在邊緣模糊的短板和缺陷。對比實驗表明:本文提出的SRCGAN模型重建后的車牌圖像的邊緣和紋理都更加清晰,且獲得的圖像的重修效果的PSNR值均高于Bicubic算法和K-SVD算法得到的PSNR值,整體效果更接近原始的高分辨率圖像和真實圖片。這表明了SRCGAN網絡結構能夠有效處理細節和邊緣問題,顯著提高圖像的重建效果。

表2 不同算法對車牌重建后的PSNR值
本文提出并實現了圖像超分辨率的方法SRCGAN。在MNIST數據集和車牌數據集上評估SRCGAN的性能后,成功地從LR輸入中恢復了清晰的HR圖像。模型輸出與真實MNIST圖像幾乎一致,車牌的輸出與真實圖像也較為一致。SRCGAN是明確GAN類標簽的條件下作為GAN的輸入。深層網絡結構模型和CNN架構目前已能夠表現出更優的性能,但是SRCNN只能在較大的圖像尺度上進行訓練,并且只能在特定尺寸的訓練集上起作用。本文對SRGAN進行改進,將類標簽信息作為生成器的輸入,可以指導生成器生成的圖像更加接近數據集,從而提高圖像的重建效率以及準確率。與無條件信息的GAN相比,本文方法讓重建圖片更精確且更接近真實圖片。