李 昊,趙光哲
北京建筑大學 電氣與信息工程學院,北京 102616
圖像是了解外部世界的主要信息來源之一,與人們的生活密切相關。圖像的分辨率大小關乎著一幅圖像是否清晰,而圖像越清晰,所傳遞給人們的信息就越多,更容易讓人們感知出來。隨著各種電子設備的屏幕素質愈來愈好,圖片和視頻的清晰度也變得愈來愈重要,目前2 048×1 080和3 840×2 160的分辨率已經廣泛進入大眾的視野中,未來還會有更高的分辨率出現。人們對圖片和視頻的要求愈來愈高,模糊不清的圖像已經無法滿足當今社會的大部分需求,盡管現在手機、相機等電子設備很普及,但是還是無法滿足一般人的應用需求,因為高質量的攝像頭往往伴隨著昂貴的價格,所以通過算法或者軟件層面實現圖像的清晰化更能體現其價值。評價圖像是否清晰的一個關鍵點在于分辨率的問題上,高清圖像不僅清晰度高,視覺觀感也很不錯。
當今社會很多領域都離不開圖像超級分辨率技術,如醫(yī)學圖像領域、遙感探測領域和視頻監(jiān)控領域,哪怕是人工智能領域,圖像超級分辨率都可以作為一種數據增強的手段。
圖像超級分辨率重建技術能夠將一幅低分辨率(low resolution,LR)圖像恢復成高分辨率(high resolution,HR)圖像,是21 世紀以來計算機視覺的一個重要研究領域,一般情況下可以劃分為單幀圖像重建和多幀圖像重建,超級分辨率重建經歷了外推頻譜、頻率域、稀疏系數及字典和基于深度學習[1]的圖像超級分辨率這幾個階段[2]。
20 世紀60 年代,圖像超級分辨率問題由Harris[3]和Goodman[4]首次提出,他們所提出的方法是使用外推頻譜進行超級分辨率,徹底打開了圖像超級分辨率重建技術的大門,給之后的學者提供了理論基礎。1984年Tsai和Huang[5]提出了一種基于頻域的圖像超級分辨率重建的新算法。新算法利用傅里葉變換的可變和混合特性,根據多幅低分辨率圖像的特點,結合了許多低分辨率圖像之間的聯系,通過一系列變換,將高、低分辨率圖像的關系找出,從而達成圖像重建的目的。雖然低分辨率圖像和高分辨率圖像之間的線性關系對該算法的實際應用有一定效果,但它包含的先驗信息數量不多,退化模型也只適用于輸入圖像的重復線性空間運動,所以局限性也是非常大的。
在2010年的時候,Yang等人[6]提出了基于稀疏表示(sparse representation)方法的超級分辨率重建。該方法借鑒了壓縮感知的思想,通過大數量的高、低清圖像的稀疏表示和訓練降維,實現超分辨率的優(yōu)化求解,經過該方法重建后的圖像的質量尚可,也能夠提供數量龐大的高頻信息,但由于迭代次數多,字典學習出現過冗余的問題,導致計算代價大。
過了4 年,也就是在2014 年的時候,Dong 等人[7]首次將深度學習的思想引入到圖像超級分辨率算法當中,提出了基于卷積神經網絡的超級分辨率網絡(superresolution convolutional neural network,SRCNN)。Dong等人在算法中指出在輸入模型之前,首先要對低分辨率的圖像進行雙三次差值[8],然后使用深度學習網絡中的卷積層學習高、低分辨率圖像之間的關系,最后得出預測圖像。然而,超級分辨率卷積神經網絡中只存在三個卷積層,導致該網絡模型的結構過于簡單,網絡模型的深度太淺導致感受領域較小,使其學習圖像特征的能力不足,導致經過恢復操作后的內容細節(jié)和邊緣輪廓都比較粗糙,圖像的質量仍還有非常大的進步空間。
2016年,Kim等人[9]在SRCNN的基礎上提出了極深卷積神經網絡超級分辨率模型(very deep convolutional network for super-resolution,VDSR)。隨著網絡深度的加深,可以使網絡模型提高復雜非線性映射的學習能力,同時也可以擴大感受領域,增強網絡模型對圖像的高頻信息特征的獲取。VDSR 中最直接明顯的是殘差網絡的結構[10],殘差網絡使網絡的收斂率大幅度提高。但因為是在SRCNN 的基礎上,所以和SRCNN 存在相同的局限性,這無疑提前將計算量增加,伴隨而來的也有重建后的質量問題。
因為生成對抗網絡GAN(generative adversarial networks)在圖像生成方面較為優(yōu)越的性能,在2017 年,Ledig等人[11]首先將生成對抗網絡的思想作為超分辨重建領域的重點,提出一種基于生成對抗網絡的圖像超級分辨率重建算法模型SRGAN(super-resolution generative adversarial networks),解決了圖像的高頻信息損失問題[12]。
但是SRGAN中的生成器和判別器從宏觀層面來看都是一個線性的結構,而且生成器中的每一個殘差塊中的BN層都會導致偽影問題的產生,偽影問題是SRGAN網絡的通病,或者說就是BN層的通病。網絡結構基礎但過于簡單,還會伴隨著參數量過大的情況,導致SRGAN的訓練速度以及重建后的最終效果都不是最理想的[13]。
針對上述所提到的模型重建后的最終效果都存在或多或少的問題,本文提出一種新的解決方式:生成網絡中的殘差塊進行簡化并將密集殘差網絡與之結合。將判別網絡中的判別網絡模型進行改進,不再采用一維的線性結構。最終目的是可以在保證效率的同時又可以取得較好的重建質量,主要方法如下:
刪除原結構中的多余批量歸一化操作的殘差塊,對原有的Conv-BN-Conv-BN殘差塊進行了改良。有的圖片進行完超級分辨率之后產生偽影,而偽影之所以會產生就是因為殘差塊中的Batchnormalization層,故將其刪除掉。
在生成網絡中使用密集殘差網絡來提取更豐富的圖像的局部特征,同時也可以盡可能地使用提取到的各個特征,使整個生成網絡有一個順利的訓練過程。以密集殘差塊為標準單位,將5 個密集殘差塊組合成1 個基本塊,共構建20個基本塊形成新的生成器。
在判別網絡中使用U-Net 作為判別器的主干來訓練。U-net采用了完全不同的特征融合方式:拼接。與原先模型中的順序連接結構不同,U-net 采用不僅將特征在channel維度拼接在一起,形成更厚的特征,對網絡的訓練指導起到積極推進的作用,還可以提升訓練效率。
使用結合殘差網絡和分組卷積改進的殘差塊進行對圖像的超級分辨率,利用合理的特征選擇或者是模型調優(yōu),能夠達到一個較好的并且穩(wěn)定的提高分辨率的結果。針對前面所述的方法以及局限性,本文所提出的方法不僅改善了圖像重建后的偽影問題和丟失高頻細節(jié)的問題,還可以使訓練過程不會出錯,最終效果得到改善。
本文的主要貢獻主要如下:刪除原結構中的多余批量歸一化操作的殘差塊,對原有的Conv-BN-Conv-BN殘差塊進行了改良;引入密集殘差網絡的思想構建新的生成器;引入U-net網絡的思想構建新的判別器。
為了在可以在單幀低分辨率圖像重建中取得不錯的效果,在模型結構的大框架上,本文借鑒了由Goodfellow等人[14]提出的一種模型——生成對抗網絡GAN。[15]生成對抗網絡中存在一個生成器和一個判別器,兩個網絡通過相互對抗的方式進行學習,最終達到Nash均衡[16-17],其模型結構如圖1 所示??梢院唵蔚乩斫鉃榛楣ナ氐碾p方,生成模型的目標是通過大量學習真實值來輸出一張近似于真實值的圖像,判別模型的目標是需要判斷出輸入的圖像是來自真實值還是來自于生成模型。為了取得最后的成功,攻守雙方需要不斷優(yōu)化自己以此來提高自己的工作能力。
圖1 生成對抗網絡結構Fig.1 Generative adversarial network architecture
本文從兩個部分同時入手,以GAN的兩個部分為基本,融入自己的創(chuàng)新點,來實現圖像超級分辨率重建,本文的模型同樣由生成網絡和判別網絡構成,生成網絡學習如何生成和超高分辨率圖像相似的圖像,判別網絡學習如何分辨出生成圖像和真實圖像,其模型結構如圖2所示。其中生成網絡由20 個基本塊構成,判別網絡將U-Net替換順序連接作為新的判別器。
圖2 模型整體設計Fig.2 Model overall design
在訓練過程中,先通過生成網絡生成重建后的圖像,再將生成的高清圖像和真實圖像一起送入判別網絡,最終通過多個卷積層輸出一個值,該值表示為兩張圖像相對比后的誤差值,也可以理解為圖像為真還是為假,再經過誤差計算后實現自動調整模型參數,最終目標是使模型在多代更迭中自動更新,本文將模型目標函數定義為:
隨機噪聲y被輸入一個生成器G,產生一個假樣本G(y),生成器G的任務是根據真實的數據樣本的分布進行學習,并產生一個與之盡可能高度相似的數據樣本。判別器D是一個二進制分類器,其中輸入數據由兩部分組成,一個是由生成器G產生的假樣本G(y),另一個是真實樣本數據x,將概率值輸出,代表由生成器G產生虛假的數據樣本被視為是真實的概率,如果輸入源自真實樣本,則將1作為輸出結果,反之輸出結果為0。同時,判別器D將輸出結果反饋給生成器G,指導訓練生成器G,通過自循環(huán)的方式不斷地進行訓練,最理想的情況下可以達到判別器D無法分辨真實樣本還是虛假樣本,即當判別器D輸出最優(yōu)解為1/2。
然而早期的利用GAN處理圖像重建通常都是處理二倍放大,而當處理更大的放大倍數時,結果會出現涂抹感過于嚴重的情況,進而缺乏圖像的真實感,嚴重的話圖像的重要信息可能會糊成一片。因此,在2017年,Ledig提出了SRGAN,如圖3所示。
圖3 SRGAN生成器和判別器模型Fig.3 SRGAN generator and discriminator model
如圖3 所示,輸出通道數為n,步長為s,生成網絡中含有B個殘差塊,每個殘差塊中都存在批量歸一化層(BN)和激活函數層,最后經過兩個反卷積層和一個卷積層輸出一張重建圖像;判別網絡包含8 個卷積層,其中后7 個卷積層中同樣有為Leaky ReLU[18]激活函數和BN層,最后連接著全連接層。該結構改善了不僅改善了GAN 通常只能處理二倍放大倍數的問題,還將重建圖像的真實感和逼真度大幅度提高。
本文受到SRGAN 的啟發(fā),將密集殘差網絡的思想引入生成模型中。SRGAN 中的殘差塊由卷積層、批處理歸一化層[19](BN)和ReLU[20]激活函數組成,如圖4(a)所示。本文將殘差塊簡化到由1 個卷積層和1 個ReLU激活函數,并將其作為基本單位,如圖4(b)所示。BN層的主要目標是解決訓練過程中的梯度發(fā)散問題,同時改善了速度和精度。然而,對于圖像重建來說,與深度學習還是存在一定差異,如果繼續(xù)使用BN層,會導致圖像的色彩分布歸一化,并將原始圖像的空間表現破壞[21],導致在圖像重建中出現偽影問題。故本文從殘差網絡中刪除了批量歸一化,從生成模型中刪除批量歸一化操作,減少了模型的參數量和層數,避免圖像的偽影問題,以此來達到效率和效果的雙重改善。
圖4 SRGAN的殘差塊及其改進Fig.4 Improved before and after SRGAN residual blocks
本文的生成網絡整體結構如圖5(a)所示,基本分為三大部分,第一部分是一層卷積,第二部分是創(chuàng)新的密集殘差網絡,第三部分是增取樣。低清圖像經過一層卷積后,再經過密集殘差網絡和一次卷積,最后通過增取樣操作獲得高清圖像。其中,Basic Block 是由改進后的殘差塊為基本單位所重新構成的,如圖5(b)所示。圖中所示為4個單位殘差塊和一個卷積層,采用密集連接結構,使用前饋方式[22]連接所有的后續(xù)層,允許各個層之間關系密集,從而將先前層的特征充分利用。密集連接以級聯結合了所有卷積層的特征,每一層的特征圖都一個不落的傳給后續(xù)層,通過保留和使用每一層的特征,不損失特征來提高重建性能。
圖5 生成模型整體設計Fig.5 Generative model overall designs
圖5(b)為一個Dense Block模塊的示意圖,其中有4 個Conv+ReLU 模塊和一個單獨的Conv 模塊,一共需要5 個Dense Block 模塊,Conv+ReLU 模塊數從4 個依次遞減至沒有,單獨的Conv 一直保留,這樣就會形成5個Conv 模塊連續(xù)遞減的Dense Block 模塊,再將5 個Dense Block模塊構成一個Basic Block模塊,一共需要20 個Basic Block。不光Dense Block 加到主路徑上有一個參數β,5 個Dense Block 加到主路徑上的最后還有一個參數β參與到20 個Basic Block 的連接中。如圖5(c)所示。
綜上所述,在本文所改進的生成網絡中,一個Basic Block 中一共有15 個Conv 模塊,一共需要20 個Basic Block,即一共300個Conv模塊。Dense Block加到主路徑上還有一個參數β,通過密集連接的方式將各層與各層之間的圖像信息進行傳遞,原模型采用順序連接的方式,不光參數冗雜,還會導致訓練時間過長,最終效果也僅僅是有些許提升,本文與原模型中的生成網絡相比,可以有效縮短時間,改善呈現效果。
SRGAN 的判別網絡如圖6 所示,是由不斷重復的Conv 層、LR 層和BN 層所組成。判別器網絡采用順序連接的方式,經過1 組的Conv+LR 模塊和7 組的Conv+LR+BN 模塊,且8 個卷積核大小均為3×3,通道數從64一直到512,然后通過全連接層和Sigmoid 函數將圖像數據維度鋪成一維繼而對圖像分類判別真假。
圖6 SRGAN判別網絡模型圖Fig.6 SRGAN discriminant network model diagram
為了使生成器產生的高清晰度圖像更接近真實的高清晰度圖像,本文引入了相對應的鑒別模型。SRGAN的判別器更多地集中在圖像的整體角度判別真?zhèn)危褂肬-net 判別器可以在像素角度,對單個生成的像素進行真假判斷,這能夠在保證生成圖像整體真實的情況下,更加注重生成圖像細節(jié)。
U-net 網絡由多層信息構成,但總體上被分為兩個大類,一個是經過多次降低分辨率后的低分辨率信息。一個是經過多次擴大分辨率后的高分辨率信息。低分辨率的信息能夠提供整體圖像的信息特征,就可以解釋為對判別目標與其所在環(huán)境之間的關系。
高分辨率信息:經過不斷連接將高分辨率信息從編碼器直接傳遞到同一位置的解碼器上。可以提供更詳細的分割特征,如梯度等。由于SRGAN 中的判別器是一個從宏觀上來說可以看成是線性的結構,基礎但又過于簡單還伴隨著參數量過大的情況,于是本文首先采用像素非混洗來縮減空間大小,與此同時將通道大小增大,然后再將輸入送入到主SRGAN 的結構。所以大部分網絡的計算過程是在小分辨率空間中執(zhí)行的,這樣做就可以減少顯卡顯存和計算資源消耗。具有譜歸一化(SN)的U-Net鑒別器就非常適合上述特點,由于DRUSR的最終目的是解決比SRGAN 大得多的超分辨率空間,所以SRGAN 中的線性判別器的結構不再符合本文的要求。
具體來說的話,就是DRUSR 中的判別器首先從結構上就不能使用簡單的線性結構,新的判別器需要更強大的判別能力,用來應對更復雜的訓練輸出,同時可以為圖像的細小紋理生成準確的梯度反饋。將SRGAN中的VGG 判別器更改為跳躍連接結構的U-Net。U-Net網絡輸出每個像素的真實值,并提供給生成器詳細的反饋,與此同時由于U-Net網絡的結構相比較原始結構更加復雜也增加了訓練的不穩(wěn)定性,可以自行產生噪聲用來完善訓練過程。經過觀察,經過譜歸一化可以有效地緩解生成網絡中的過度銳化和偽影的產生。訓練過程分為兩個階段。首先,通過L1 loss訓練以PSNR為導向的模型,得到的模型命名為DRUSRNet。然后,使用訓練好的模型作為生成器的初始化,將L1 loss、感知損失和GAN loss作為參數來訓練DRUSR。
本文的判別網絡模型主體如圖7所示,分為兩個部分,一部分是提取特征的主體,一部分用來加強提取特征,在結構的最后還有一個預測網絡,預測網絡由一個全連接層和Sigmoid 函數構成,用于判斷生成網絡所生成的圖像是否逼真。
圖7 U-net網絡模型Fig.7 U-net network model
輸入進判別網絡的圖像經過兩次卷積核大小為3×3的卷積層,通道數從1 變成64,經過一次降采樣再經過兩次卷積核大小為3×3 的卷積層,通道數從64 變成128,反復降采樣操作一共4 次,卷積核不變,通道數翻倍至1 024,再經過4 次上采樣提升分辨率,通道數變更為1 024、512、256、128、64,最后變成2。通道數一樣的為一層,一共有5層,但只有前四層有跳躍結構,換言之就是復制、剪切特征圖像的操作,這樣做是為了保留圖像明顯的特征信息,因為隨著網絡層數的增加,圖像信息會越來越少,但是隨之而來的是特征信息數量暴增,為了不讓網絡層數影響到圖像內容,所以要加上跳躍操作。
第一部分是主干,通過主干特征提取部分得到大量的特征信息層,U-Net的主干部分和另一個網絡十分相似,就是非常熟悉的VGG網絡,通過用不同數量的卷積塊來構建不同結構的網絡。但是與VGG 網絡不同的是,U-Net的整體形狀更像一個字母U,所具備的功能就要更立體。生成網絡所生成的新圖像經過主干特征提取的操作,可以將在這一操作下獲得的初步有效特征層在下一步中進行融合。
第二部分是加強部分,可以理解為在第一部分的基礎上更進一步,獲得更多的特征信息。將在主干網絡中所獲取到的初步有效特征層進行四次增取樣,同時將特征信息進行“加”操作,也就是常說的數據融合,這樣就會獲得一個擁有了所有特征的有效特征層。
最后的部分是預測。使用最后的有效特征層,該層最終將對各像素點分類。利用全連接層和sigmoid函數對圖像數據維度進行展平,進行真假分類判斷。
U-net 的優(yōu)點是,網絡層越深,感知的視野就越大。淺層會讓人注意到紋理的特征,而深層則會讓人注意到特征的本質。因此,深部和淺部特征對網格非常重要;而更需要注意的一點是,通過剝離獲得的特征圖的邊緣是缺少信息的,畢竟每次圖像被下采樣時,一些邊緣特征將不可避免地丟失,丟失的特征無法從上采樣中恢復。因此,可以通過組合特征來恢復邊緣特征。
整個網絡模型的流程圖如圖8(a)所示,數據集中的圖像首先通過生成網絡,如圖8(b)生成一張假的圖像,將兩張圖像送入判別網絡,如圖8(c),經過判別網絡判斷生成圖像與真實圖像的相似性,根據損失函數判斷生成圖片是否比真實圖片更逼真或者更虛假。
圖8 系統(tǒng)整體流程圖Fig.8 Overall system flow chart
SRGAN 中的判決損失采用的是傳統(tǒng)判決器,傳統(tǒng)的判決器只是判斷輸入圖片的真假,但是本文采用的是相對判決器[23](RaGAN),與傳統(tǒng)判決器相比,在相對判決器中,判斷圖片真假的概率被判斷一張圖片與參考圖片對比來看是更真還是更假所取代,可以理解為以一張圖片為參考,被判斷的圖片是否比參考圖片更像真的或者說是更像假的,具體如圖9所示。
圖9 傳統(tǒng)判決器與相對判決器之間的比較Fig.9 Comparison between Standard GAN and Relativistic GAN
從圖9中可以看出與左邊的傳統(tǒng)判決器相比,右邊的相對判決器的損失函數多了一個相減的操作,而這個就是最關鍵的地方,它可以減少一定的圖像噪聲。
相對判決器的損失函數:
相對生成器中的損失函數:
相對平均判決器的表達式為:
Xr表示原始的高清圖片,即真實值。Xf表示經過重建后的圖片,即虛假值。σ表示sigmoid激活函數,C表示判決器的輸出,Ex表示取虛假數據的平均。
以下幾種情況都屬于圖像偽影問題,這也是SRGAN網絡模型最大的問題,可能有些圖片偽影問題不會太明顯,但是一旦出現就是致命的。具體如圖10所示。
圖10 圖像偽影的種類Fig.10 Types of image artifacts
振鈴效應的產生主要是由于高頻分量的損失和高頻分量精度的損失引起。振鈴效應就是指圖像輸出后在色值存在巨大色差的地方產生震蕩,就好比一口鐘被敲擊后的劇烈震蕩一樣,在圖像灰階轉換處出現傳統(tǒng)意義上的模糊。振鈴效應是否出現取決于圖像模型的選取,當選擇的點擴散函數尺寸與真實值存在過大差異時,振鈴效應就會更明顯。
當圖像顏色的位深度減少太多以至于產生視覺沖擊時就會出現色調分離。造成色調分離的主要原因是因為將圖像的色彩空間發(fā)生了轉變,通俗地講就是顏色發(fā)生了偏差,顏色的取值范圍出現誤差。圖像原本是由緊鄰的漸變色階構成,被數種突然的顏色轉變所代替。這一種突然的轉變,也將其稱作“跳階”。如今的圖像基本上都是8位顏色,也就是有256種顏色,如此多的顏色也就導致了色調分離的偏差有很多種情況,如果按照量化的標準來說,就是一個顏色對應一個R、G、B的數值,在經過訓練網絡不停的卷積之后,R、G、B三個數值發(fā)生了巨大的誤差,又經過增取樣后會將這個誤差繼續(xù)放大,運氣好的話可能圖像的色系沒有改變,只是改變了色階;反之會出現一片一片不同的顏色。
模糊效應又叫高斯模糊(Gaussian blur),是最常見的壓縮偽影,通常是用來減少圖像噪聲影響以及降低圖像細節(jié)層次的技術。從數學的角度來看,高斯模糊的過程就是圖像和正態(tài)分布也叫做高斯分布做積分變換。圖像模糊的出現通常是因為高頻空間頻率的降低而產生,通常會伴隨著物體邊緣寬度的變化,主要出現在低通濾波過程和圖像壓縮過程中。通俗地講,高斯濾波就是對整幅圖像進行加權平均的過程,每一個像素點的值,都由其本身和鄰域內的其他像素值經過加權平均后得到。
上式中的σ代表著每個像素點的離散程度,如果σ較小,平滑效果就不是很明顯;反之,平滑效果比較明顯,也就是圖像重建效果不好。
塊偽影是分塊轉換的編碼原理造成的。在分塊編碼轉換過程中,這些轉換應用于像素塊區(qū)域中,人們希望將圖片進行壓縮操作,于是就對不同的像素塊的變換系數進行數值化,從而造成塊之間的差異,進而形成了塊效應。
蚊子噪音通常是以隨機混疊的形式,在靠近物體清晰的邊緣出現,并且需要精細的檢測電路才能將它消除。
棋盤偽影主要出現在通過卷積網絡生成的圖像中,往往在色彩強烈的地方最突出。而造成這種現象的原因,是因為當使用反卷積層(deconvolution layer)將一個低分辨率圖像轉換為高分辨率圖像時(也可以大致理解為從像素中放大圖像)。大體上,反卷積層是讓卷積模型使用低分辨率圖像中的一個點,去“描繪”高分辨率圖像中的一個塊。
本文進行實驗所使用的實驗環(huán)境:硬件配置顯卡為RTX3070Ti,CPU為i5-9600KF,運行內存16 GB,實驗平臺搭載的是操作系統(tǒng)是Windows 10,使用Tensorflow-gpu 1.13,python 3.6。
數據集使用了兩個大類數據集,一個是DIV2K,一個是Flickr2K,源數據集是從論文及相關網站中獲取到的,搜索引擎里有兩個數據集的整合,便于其他研究人員下載。DIV2K共包含有1 000張分辨率為2 048×1 080的高清圖像,其中800張是模型訓練用的,100張是驗證圖像,100張是測試圖像。事實證明,數據集的數量越龐大,當其作用于網絡訓練的時候,模型的性能就會有非常大的提升。Flickr2K 數據集分為HR、LR_bicubic 和LR_unknow三個部分,其中HR中含有2 650張png格式的圖片,包含人物、動物、風景等,后兩者都含有×2、×3、×4這三種放大因子,作用于模型的常規(guī)訓練。在廣泛使用的4個基準數據集:Set5、Set14、BSD100、Urban100當作測試集評估本文改進的模型。
本文中的實驗,在該模型的訓練過程中將Batch_size規(guī)定為10;迭代次數為60 000次;規(guī)定每迭代50次就保存訓練的結果;訓練時從原圖像中隨機截取出96×96的高分辨率圖像塊,使用bicubic插值法將其下采樣為24×24的低分辨率圖像塊,作為原始的輸入數據。經過10 000次的訓練模型的學習率就減少1/2,初始學習率規(guī)定是0.000 1。訓練過程中,生成網絡和判別網絡交叉訓練。誤差反向傳播采用隨機梯度下降算法Adam,Adam_beta_1=0.5,初始學習率為0.000 2,初始衰減率為0.1。
峰值信噪比(peak signal to noise ratio,PSNR)、結構相似性(structural similarity index,SSIM)作為圖像質量評估指標。
4.4.1 峰值信噪比
峰值信噪比(PSNR)是一種評價圖像的客觀標準,是最普遍最廣泛使用的評估圖像質量的指標,它的單位是dB。
一般采取均方誤差(mean-square error,MSE)進行計算。兩幅寬(W)×高(H)單色圖像X和Y的均方誤差為:
對于一般有顏色的圖像來說,每一個像素點存在紅、綠、藍3 個0~255 的值,其均方誤差應該為所有值的均方誤差綜合再除以3:
故峰值信噪比就定義為:
峰值信噪比是超級分辨率重建中最為常見的評價標準,該數值越高,代表質量越好,但是數值和最終效果并不能完全劃等號,數值高有的時候并不代表圖像的最終效果就是完美的。如圖11 所示,圖11(b)的PSNR 值高于圖11(c),但圖11(b)的陽光直射效果和膚色并沒有圖11(c)好,圖11(b)中的陽光發(fā)灰,皮膚顏色顯暗。這個現象表明峰值信噪比不能只作為效果評價標準上的唯一標準,具有一定的缺陷。
圖11 PSNR與圖像視覺效果Fig.11 PSNR and image visual effects
4.4.2 結構相似性
結構相似性(SSIM)是測量兩幅數字圖像之間相似度的指標,能反映人眼的主觀感受。給定兩幅圖像x和y,通過亮度L(x,y)、對比度C(x,y)和結構S(x,y)定義結構相似性:
式中,μx和μy分別為x和y的平均值,σx和σy分別為x和y的標準差,σxy為x和y的共變異數字,C1、C2、C3皆為常數,且α、β、γ均大于0,在實際情況下通常使α=β=γ=1,
在反映圖像的視覺效果上如果將結構相似性這一指標作為判斷最終效果的唯一標準同樣和峰值信噪比一樣存在缺陷。
表1用于顯示DRUSR中每個組件的效果的整體視覺比較。
表1 消融分析實驗Table 1 Ablation analysis experiments
在表1中,第五張生成的圖像比其他所有圖像更清晰,紋理更豐富。帶有RDBD的深度網絡模型即本文修改后的生成器可以進一步改善恢復的紋理,因為深層模型有很強的表示能力來捕捉圖像信息。另外,更深的模型可以減少圖像噪音。與SRGAN相比,SRGAN聲稱更深的模型越來越難訓練,但本文中更深的模型顯示了其優(yōu)越的性能,易于訓練,這要歸功于生成器的改進,也就是將BN層刪除。
本文在四個公開數據集上測試了Bicubic、SRCNN[24]、VDSR[9]、FSRCNN[7]、SRGAN[11]以及本文的方法。對不同數據集上應用不同算法時,分別計算對應的峰值信噪比和結構相似性,結果如表2所示。
表2 四個數據集的六種算法的評價指標比較Table 2 Evaluation index comparison of six algorithms in four datasets
從表2中的數據可以看出,SRCNN、VDSR、FSRCNN在PSNR 和SSIM 兩個指標上取得了較好的結果,但是在最終效果上卻不及SRGAN,因為PSNR和SSIM兩個指標都只針對像素點的顏色等差異,并沒有考慮到眼睛的特性,才導致數值高但是最終效果不好的情況。本文提出的算法在SRGAN 的基礎上進行改進,相對于主觀效果較好的SRGAN而言,其PSNR值和SSIM值均與其他五種算法相比均有1%~4%的提升,轉化成高分辨率圖像后的視覺效果也相比其他五種算法更好。
本文實驗通過OpenCV庫進行圖像的雙三次插值,其余模型是采用原作者的源代碼進行復現重建,實驗結果如圖12 所示,圖中將六種不同模型在一個相同數據集上的最終效果進行對比。雙三次插值由于可以直接使用OpenCV庫的代碼進行操作,其重建效果是六種里面最差的,丟失了很多細節(jié)信息,肉眼可見的模糊以及色差不準,在嬰兒圖像的對比下可以看出圖像發(fā)白,兒童圖像的對比下可以看出頭發(fā)的細節(jié)丟失,糊成了一片。采用深度學習的模型或多或少都有所改善,SRCNN通過卷積神經網絡相對于雙三次插值重建效果有所改善,VDSR 和FSRCNN 均有更復雜的網絡結構,重建效果又有所改善,但由于一定的局限性缺乏真實感,SRGAN在前者的基礎上改善了真實感,但是偽影問題也隨之而來,綜上可以看出圖12 的四種算法或多或少都會出現細節(jié)的丟失。本文所采用的方法通過對比不難發(fā)現圖像的色彩還原度更高,色彩更加艷麗,鳥的圖像脖子與背景的綠葉區(qū)分度夠高,嘴巴上的橙色和紅色更真實;蝴蝶的圖像中黃色更黃,黑色更黑;嬰兒的圖像皮膚更加紅潤,帽子的色彩也更豐富;兒童的圖像臉更光滑,更有生氣。綜上本文的改進算法重建后的圖像與原始圖像愈發(fā)接近,且改善了SRGAN的偽影問題。
圖12 圖像重建效果對比Fig.12 Image reconstruction effects comparison
除了做實驗以外,還考慮了一些其他使用超分辨率的可能性,比如說手機和電腦的壁紙,一些老照片的修復等更貼近現實生活的例子,故利用本文所構建的網絡模型對幾張圖片進行了超級分辨率操作,最終效果如圖13所示。第一張海岸照片是從網上選取的分辨率非常低的老照片,第二張動漫圖片是一個頭像,第三張黃昏圖片是網上找到的分辨率是1 920×1 080 的壁紙,在圖片經過二次上傳或者變成頭像之后會被壓縮,導致分辨率降低,從圖13 中可以看出經過超級分辨率重建后的圖片與原圖對比像素范圍擴大了,進而清晰度有了明顯的提升,并且色彩并沒有出現失真和偏移的現象,在觀感上都有了明顯提升。
圖13 超分后的效果對比Fig.13 Comparison of effects after super reconstructed
除了以上提到的這些應用,現實里還有許多地方都需要,因為圖像和人們是密切相關的,不只是照片,視頻等素材也是可以通過超分辨率來獲得更好的觀感。
綜上可以看出,圖像超級分辨率重建技術經過了很多代演變,重建的效果也是一次比一次強,但是網絡模型層次越來越深,在每一代的訓練過程中會出現諸多問題,如不穩(wěn)定、圖像重建出現偽影、效率不高等缺點。
本文針對這些前者的問題,在重建效果和訓練時間相比之下,以較好的SRGAN模型為基礎,將殘差密集網絡和U-net共同引入到SRGAN模型中,優(yōu)化生成網絡和判別網絡的網絡結構。在生成網絡中,密集殘差網絡的引入打破了原始結構中的順序連接結構,解決了由順序連接所帶來的時間問題后,密集殘差網絡可以將信息更快地向前傳播,本文所使用的五個逐漸遞減至一個殘差塊再重復堆疊五個的結構,在保證最終質量的同時,將網絡的參數量盡可能地降低,保證時間效率得到最大提升。U-net的上采樣部分融合了特征提取部分的輸出,有效地將多維特征融合在一起。在后者的上采樣中,特征既來自第一個卷積塊的輸出(同維特征),也來自上采樣塊的輸出(高維特征),這樣的連接存在于整個網絡。這也導致在特征提取時為局部特征生成更加準確的反饋,避免圖像偽影問題的出現。此外還可以提高訓練效率。同時引入深度可分離卷積的思想,能十分高效地從較低分辨率圖像中學習高頻信息,提升學習效率,減少網絡結構中的參數量。結合實驗結果,本文給出的解決方法在網絡的公開數據集上得到了最終效果,相比較于其他方法均有提升。最后,本文對未來的工作也有如下展望:
生成對抗網絡為主體的圖像超級分辨率重建依然有很大的發(fā)展前景,但由于網絡的參數數量龐大,導致運行效率低下,如何進一步簡化模型結構或使用新的高效計算方法來減少計算工作量,同時還能確保最終圖像重建的質量保持不變,這將有助于提高高分辨率圖像重建的效率,甚至還有可能提高重建的質量。
上述是用效果換效率,也可以換個思路,用效率換效果,考慮如何將圖像質量提升得更好,不僅考慮4 倍放大,還要考慮8倍、16倍放大的情況,這完全取決于網絡模型的精度,可以犧牲一定的效率,換取重建質量更好的效果。
還有一個比較重要的問題,就是量化評價指標,現在熱門的兩個指標是PSNR 和SSIM,但是經過實驗發(fā)現,這兩個值只能相對評價一個圖像重建效果的好壞,經常會出現兩個數值和最后主觀感受不一致的情況,經過長時間的發(fā)展,重建技術也越來越先進,但是評價指標卻一直被這兩個值所束縛,那應該怎么改進標準,進而評價不同超分辨率算法的優(yōu)劣也成為了未來展望的工作目標。正如本文以及像SRGAN 這樣的算法一樣,主觀感受最好的圖片PSNR和SSIM值會出現較低的情況,反而顏色糊成一片的情況會使這兩個值變大,所以希望未來可以根據人眼的觀感進行量化,客觀評價指標輔助,構建有效的評價機制。
致謝本論文由“機器人仿生與功能研究”北京市重點實驗室平臺資助。