曹建芳,張自邦,趙愛迪
(1.太原科技大學 計算機科學與技術(shù)學院,山西 太原 030024; 2.忻州師范學院 計算機系,山西 忻州 034000)
我國古代壁畫圖像已經(jīng)存在了不同程度的損壞,現(xiàn)在壁畫保護提出了更高的要求,不僅僅是對破損的壁畫進行修復[1],還有進一步的優(yōu)化工作。所謂優(yōu)化壁畫圖像就是對壁畫圖像進行超分辨率重建,圖像的超分辨率重建技術(shù)是指輸入一張或多張低分辨率圖像通過特定的算法輸出對應的高分辨率圖像。
Chao D等[2]在以往研究的基礎(chǔ)上,為了降低計算成本、增強超分辨率的實時性,在網(wǎng)絡(luò)的末端引入一個反卷積層,然后去除雙三次插值,直接從原始的低分辨率圖像到高分辨率圖像學習映射,并且采用較小的卷積核和更多的映射層。Jiwon Kim等[3]使用一個更深的卷積神經(jīng)網(wǎng)絡(luò),得到更大的感受野,通過殘差學習的方法解決深度網(wǎng)絡(luò)梯度消失的問題同時提高學習率,加快網(wǎng)絡(luò)收斂速度,最終在視覺效果上有了更好的表現(xiàn)。Mao XJ等[4]提出了一個非常深的完全卷積的編碼-解碼框架,網(wǎng)絡(luò)由多個卷積層和反卷積層組成。卷積層捕獲圖像內(nèi)容的抽象,同時消除損壞。反卷積層能夠?qū)μ卣鲌D進行上采樣并恢復圖像細節(jié)。Ying T等[5]提出了一種非常深的卷積神經(jīng)網(wǎng)絡(luò)模型,獲取更好的圖像超分辨率效果。特別是,在全局和局部兩方面采用殘差學習,既降低了訓練深層網(wǎng)絡(luò)的難度又能減少經(jīng)過深層網(wǎng)絡(luò)后圖像在細節(jié)方面的損失。Tong T等[6]通過在非常深的網(wǎng)絡(luò)中引入密集跳躍連接來實現(xiàn)一種單圖像超分辨率重建方法。在所提出的網(wǎng)絡(luò)中,每層的特征圖被傳播到所有后續(xù)層中,提供了組合低級特征和高級特征以提高重建性能的有效方式并且緩解非常深的網(wǎng)絡(luò)的梯度消失問題。
在壁畫優(yōu)化中應用現(xiàn)有超分辨率重建方法仍存在很多缺陷,本文提出了一種超分辨率重建算法,將其應用于古代壁畫圖像的超分辨率重建。提出的算法主要在以下幾個方面改進:①模型的構(gòu)建過程中采用遷移學習的思想;②引入殘差模塊加深網(wǎng)絡(luò)優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu);③去除卷積前的批量標準化,減少顯存的使用率加快模型訓練。
生成對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)是采用了博弈論的思想,該網(wǎng)絡(luò)包括生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)兩部分,其中生成網(wǎng)絡(luò)用于生成目標數(shù)據(jù),例如在超分辨率重建中的目標就是生成高分辨率圖像,判別網(wǎng)絡(luò)的任務(wù)是對生成數(shù)據(jù)和真實數(shù)據(jù)的分類,通過梯度優(yōu)化的過程逐漸增強判別網(wǎng)絡(luò)的分類能力。生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)在網(wǎng)絡(luò)訓練過程中相互促進,最終共同優(yōu)化出一對既能生成目標數(shù)據(jù),又能判別是否為生成數(shù)據(jù)的網(wǎng)絡(luò)模型。從而生成網(wǎng)絡(luò)更能夠在常規(guī)損失函數(shù)和判別網(wǎng)絡(luò)的共同約束下,大大提高了生成接近完美的目標數(shù)據(jù)的準確度。
GAN的基本結(jié)構(gòu)如圖1所示。
圖1 GAN的基本結(jié)構(gòu)
GAN的目標函數(shù)定義如式(1)所示
(1)
在卷積神經(jīng)網(wǎng)絡(luò)中可以通過增加網(wǎng)絡(luò)層數(shù)的方法,提取更加抽象的、更具有語義信息的圖像特征。但是簡單的增加網(wǎng)絡(luò)的層數(shù)會產(chǎn)生梯度彌散和退化問題,最終可能導致模型在訓練集上的準確率飽和甚至下降。
為了解決以上問題He K等[7]提出了殘差網(wǎng)絡(luò)并在ImageNet比賽分類任務(wù)上取得很好的成績,ResNet因其簡單實用的特點,現(xiàn)已在目標檢測、圖像分割、文本識別等領(lǐng)域被廣泛的應用。殘差模塊的基本結(jié)構(gòu)如圖2所示。
圖2 殘差模塊基本結(jié)構(gòu)
其中,x表示這一層殘差塊的輸入,F(xiàn)(x)為該殘差模塊的殘差,weight layer表示的是該層的權(quán)重。x為輸入值,F(xiàn)(x)是經(jīng)過第一層線性變化并激活后的輸出,然后在第二層進行線性變化之后激活之前,F(xiàn)(x)加入了這一層輸入值x,然后再進行激活后輸出。
增強藝術(shù)性超分辨率重建算法已生成對抗網(wǎng)絡(luò)為框架,并在傳統(tǒng)的生成對抗網(wǎng)絡(luò)(GAN)的基礎(chǔ)上并對其進行改進,分為兩部分:即生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò),生成網(wǎng)絡(luò)目的是輸出已完成超分辨率重建的壁畫圖像,判別網(wǎng)絡(luò)的目的是逐漸優(yōu)化生成網(wǎng)絡(luò),使其輸出更接近于真實壁畫圖像的數(shù)據(jù)。
生成網(wǎng)絡(luò)的設(shè)計架構(gòu)遵循encoder-decoder結(jié)構(gòu),主要分為特征提取和圖像重建兩部分,網(wǎng)絡(luò)輸入為低分辨率壁畫圖像,經(jīng)卷積神經(jīng)網(wǎng)絡(luò)特征提取、上采樣輸出高分辨率壁畫圖像。生成網(wǎng)絡(luò)的基本結(jié)構(gòu)如圖3所示。
圖3 生成網(wǎng)絡(luò)基本結(jié)構(gòu)
判別網(wǎng)絡(luò)由輸入層、卷積層和全連接層組成,網(wǎng)絡(luò)輸入層為真實的高分辨率圖像和生成網(wǎng)絡(luò)產(chǎn)生的高分辨率圖像。判別網(wǎng)絡(luò)主要目的是將真實超分辨率圖像和生成網(wǎng)絡(luò)輸出的超分辨率圖像正確的分類。判別網(wǎng)絡(luò)的分類準確率不斷提高,促進生成網(wǎng)絡(luò)模型優(yōu)化,從而產(chǎn)生更高質(zhì)量的高分辨率圖像。
(2)
內(nèi)容損失函數(shù)采用均方差損失函數(shù)(MSE loss)和VGG損失函數(shù)結(jié)合優(yōu)化模型參數(shù)。通常情況下會采取均方差損失優(yōu)化網(wǎng)絡(luò),獲取在像素級別上相似度較高的高分辨率圖像。MSE是每個樣本目標變量與預測值之間距離平方之和。計算MSE,即求出各個樣本的所有平方損失之和,然后除以樣本數(shù)量。MSE損失函數(shù)如式(3)所示
(3)
其中,N表示樣本的個數(shù);(x,y)表示樣本,x指的是訓練樣本中的特征集,y是指訓練樣本中的真實值;prediction(x)是樣本x的預測值。
但是MSE損失函數(shù)經(jīng)常產(chǎn)生局部區(qū)域平滑,很難恢復丟失的高頻細節(jié)信息(比如紋理信息),因此加入了VGG損失函數(shù),即獲取對比真實高分辨率圖像和生成的高分辨率圖像在特征圖上的差異,通過梯度下降算法在更高的特征維度上對模型進行優(yōu)化。具體過程是將生成的高分辨率圖像和真實高分辨率圖像分別輸入到已經(jīng)完成預訓練的19層VGG網(wǎng)絡(luò)中,然后對經(jīng)過VGG網(wǎng)絡(luò)后得到的特征圖求歐式距離,將其作為VGG損失。VGG損失的計算公式如式(4)所示
(4)
其中,i,j表示第i個池化層之前通過第j個卷積(激活之后),W和H分別表示特征圖的寬和高,IHR表示真實的高分辨率圖像,ILR表示低分辨率圖像,GθG(ILR)表示低分辨率圖像經(jīng)過網(wǎng)絡(luò)模型生成的超分辨率圖像,φi,j(IHR)x,y-φi,j(GθG(ILR))x,y表示真實超分辨率圖像和生成的超分辨率圖像在通過VGG19網(wǎng)絡(luò)的獲得的特征圖的差值。
最后在生成網(wǎng)絡(luò)中引入對抗學習的思想,將生成對抗損失加入損失函數(shù)的計算中,進一步優(yōu)化生成網(wǎng)絡(luò)模型。生成對抗損失計算公式如式(5)所示
(5)
其中,DθG>(GθG>(ILR))表示判別網(wǎng)絡(luò)將生成網(wǎng)絡(luò)產(chǎn)生的高分辨率圖像判別為真實的高分辨率圖像的概率。
結(jié)合MSE損失、VGG損失和生成對抗損失來增強像素級別和高維特征上高分辨率圖像的統(tǒng)一性,使得最終超分辨率圖像在細節(jié)的重建上有更好的效果。
2.3.1 采用遷移學習的思想
盡管壁畫圖像的超分辨率重建和普通圖像的超分辨率重建區(qū)別并不大,但是為了專門學習不同分辨率的壁畫圖像之間存在著怎樣的關(guān)系,盡量采用壁畫圖像完成模型的訓練和測試,得到專門用于壁畫圖像超分辨率重建的模型。但是現(xiàn)有壁畫圖像具有數(shù)量少、質(zhì)量低、破損嚴重的特點,因此壁畫圖像的收集和篩選工作較困難。圖像的超分辨圖像重建需要同一幅壁畫的不同分辨率的壁畫圖像使得大量數(shù)據(jù)的收集整理工作更加困難。
如何在少量的壁畫圖像數(shù)據(jù)的情況下,訓練得到適用于壁畫圖像的超分辨率重建網(wǎng)絡(luò)模型是一個重要問題。受到自創(chuàng)數(shù)據(jù)集的啟發(fā)[8],采用遷移學習的思想解決壁畫圖像數(shù)據(jù)少的問題。具體使用DIV2K數(shù)據(jù)結(jié)合少量壁畫圖像數(shù)據(jù)集方式的完成數(shù)據(jù)集的構(gòu)建,800對公開的DIV2K數(shù)據(jù)集中包含的圖像種類廣泛、數(shù)量眾多,100對專有的壁畫圖像具有更加明顯的壁畫圖像特征。
在訓練過程中首先使用DIV2K數(shù)據(jù)完成網(wǎng)絡(luò)的初步訓練,待模型相對穩(wěn)定后使用50對壁畫圖像進行再訓練,完成網(wǎng)絡(luò)模型調(diào)優(yōu),最終模型用于生成高分辨率壁畫圖像。在測試過程中使用另外50對壁畫圖像,采集數(shù)據(jù)結(jié)果然后進行數(shù)據(jù)分析,最后完成網(wǎng)絡(luò)模型的測試部分的工作。網(wǎng)絡(luò)訓練、調(diào)優(yōu)、測試過程如圖4所示。
圖4 網(wǎng)絡(luò)訓練、調(diào)優(yōu)、測試過程
2.3.2 引入殘差模塊
根據(jù)經(jīng)驗可知,合理加深生成網(wǎng)絡(luò),提取更加豐富的圖像特征對于超分辨率重建至關(guān)重要,同樣的適當在判別網(wǎng)絡(luò)中增加網(wǎng)絡(luò)層數(shù)也能使得判別網(wǎng)絡(luò)的判斷更加準確,進而更好優(yōu)化生成網(wǎng)絡(luò)。但是簡單增加神經(jīng)網(wǎng)絡(luò)的層數(shù)會出現(xiàn)梯度彌散等問題,最終導致模型收斂時間大大減慢,降低網(wǎng)絡(luò)的訓練效率。例如在判別網(wǎng)絡(luò)中采用了殘差學習的思想,使得判別網(wǎng)絡(luò)能夠全方位、更加精確區(qū)分真實的高分辨率圖像和生成的高分辨率圖像。
在避免過擬合的情況下,為了能提取更高維的圖像特征,判別網(wǎng)絡(luò)采用了11層的卷積層,其中第9-第11層組成殘差模塊,將第8層和第11層的輸出結(jié)果相加得到最終的圖像特征,最后通過全連接層進行分類完成判別網(wǎng)絡(luò)設(shè)計。判別網(wǎng)絡(luò)參數(shù)信息見表1。
表1 判別網(wǎng)絡(luò)參數(shù)信息
2.3.3 去除批量標準化
在處理高層的計算機視覺問題,例如圖像分類等問題時,通常在神經(jīng)網(wǎng)絡(luò)的卷積層的每個激活函數(shù)前加入批標準化(batch normalization,BN)[9],從而加快網(wǎng)絡(luò)模型訓練時間,解決梯度爆炸和梯度彌散的問題。
但在超分辨率重建領(lǐng)域,尤其GAN框架下訓練的比較深的網(wǎng)絡(luò)時,加入批標準化會產(chǎn)生偽影,降低圖像的超分辨率重建的效果。而且還會消耗更多的計算性能,使得網(wǎng)絡(luò)訓練的時間成本更高,增加了網(wǎng)絡(luò)模型的收斂時間。因此在生成網(wǎng)絡(luò)中去除了批標準化操作進一步優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)。傳統(tǒng)殘差模塊和本文使用殘差模塊對比如圖5所示。
圖5 殘差模塊對比
網(wǎng)絡(luò)模型的訓練流程分為兩個階段,依次為生成網(wǎng)絡(luò)模型訓練、生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)聯(lián)合訓練。在生成網(wǎng)絡(luò)訓練階段主要是初步訓練生成網(wǎng)絡(luò),使得生成圖像接近于目標高分辨圖像。聯(lián)合訓練階段是進一步優(yōu)化生成網(wǎng)絡(luò)模型,發(fā)揮生成對抗網(wǎng)絡(luò)的優(yōu)勢,使得生成的高分辨率圖像更加接近真實的高分辨率圖像。這種分階段的模型訓練方式節(jié)約了網(wǎng)絡(luò)訓練的計算機資源,在一定程度降低了模型更新的復雜度,加速了模型的收斂。具體網(wǎng)絡(luò)模型訓練算法描述如下。
輸入:低分辨率圖像和對應的高分辨率圖像。
輸出:生成網(wǎng)絡(luò)模型、判別網(wǎng)絡(luò)模型。
(1)讀取圖像數(shù)據(jù)集中的低分辨率圖像;
(2)通過卷積神經(jīng)網(wǎng)絡(luò)提取圖像特征;
(3)通過亞像素卷積[10]將圖像特征上采樣,得到目標大小的高分辨率圖像;
(4)與數(shù)據(jù)集中對應的高分辨率圖像對比,計算均方差損失,更新生成網(wǎng)絡(luò)模型,輸出重建后高分辨率壁畫圖像;
(5)重復(1)-(4),優(yōu)化生成網(wǎng)絡(luò)模型,直至MSE趨于相對穩(wěn)定;
(6)分別將生成的高分辨率圖像和對應的真實高分辨率圖像作為判別網(wǎng)絡(luò)的假樣本和真樣本輸入;
(7)高分辨率圖像特征提取,最后網(wǎng)絡(luò)連接全連接層輸出一個特征向量;
(8)通過sigmoid函數(shù)將特征向量轉(zhuǎn)化為概率值,然后判斷輸入的圖像是否為真實的超分辨率圖像;
(9)計算內(nèi)容損失值與對抗網(wǎng)絡(luò)損失值的和,更新保存生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)模型;
(10)重復(5)-(9),更新優(yōu)化生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)模型參數(shù),直至模型的loss值趨于穩(wěn)定并保持一段時間。
模型訓練流程如圖6所示。
圖6 模型訓練流程
經(jīng)過網(wǎng)絡(luò)模型的訓練最終得到了生成網(wǎng)絡(luò)模型和鑒別網(wǎng)絡(luò)模型,因此下一步對生成網(wǎng)絡(luò)模型進行測試。 在模型測試流程中,除了不再更新網(wǎng)絡(luò)模型的參數(shù),其它基本流程和模型訓練流程基本一致,最終在主觀、客觀兩個角度對重建后的高分辨率壁畫圖像進行評價。
為了驗證本文提出的算法在壁畫圖像的超分辨率重建上的有效性,本實驗使用的硬件環(huán)境主要有中央處理器(CPU)為英特爾Corei5-9400F@ 2.90 GHz,內(nèi)存為16 GB,顯卡為Nvidia GeForce RTX2070等;軟件環(huán)境為在Windows10系統(tǒng)上使用Python 3.7語言編寫、TensorFlow作為框架,完成壁畫圖像的超分辨率重建工作。
本文實驗驗證集以古代壁畫圖像為實驗對象,分為客觀指標對比和主觀評價對比以使得實驗更具完整性,實驗結(jié)果更具說服力,選取雙三次插值法(bicubic interpolation,BI)算法、SRGAN算法[11]、EDSR算法[12]和本文算法在不同風格類型、不同色彩對比度、紋理細節(jié)豐富的10張局部壁畫圖像放大4倍上對比壁畫圖像的超分辨率重建效果,實驗效果如圖7所示。
圖7 不同算法下不同壁畫圖像的超分辨率重建效果對比
可以看出,使用基于差值的BI算法復原的超分辨率圖像會出現(xiàn)模糊,圖像紋理出現(xiàn)鋸齒的現(xiàn)象,這是由于該算法假設(shè)圖像像素的灰度值的變化連續(xù)的,平滑的,但這并不符合實際情況。另外該算法不考慮圖像的降質(zhì)退化模型,最終導致壁畫的超分辨率圖像一般?,F(xiàn)階段較為流行的基于深度學習的EDSR算法和SRGAN算法相對BI算法修復效果有了很大的改進,但由于算法中采用的較少的網(wǎng)絡(luò)層數(shù)來提取圖像特征,因此更多的圖像細節(jié)信息不能獲取,造成了圖像中邊緣區(qū)域超分辨率重建效果模糊,有時在圖像色彩上的優(yōu)化也存在較大的偏差,重建的圖像細節(jié)的恢復有待提高。相比于以上超分辨率重建算法,本文算法在壁畫圖像紋理信息和色彩飽和度的超分辨率重建效果上明顯有更好的效果。
3.2.1 客觀指標對比
選取10張壁畫圖像的超分辨率重建結(jié)果對比,通常情況下選擇峰值信噪比[13](peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似性[14](structural similarity index,SSIM)這兩種常見的圖像質(zhì)量評估指標。其中PSNR通過比較兩幅圖像對應像素點之間的差異來評估圖像的好壞,PSNR越高,圖像失真越小,對應圖像的超分辨率重建效果就越好。具體計算公式如式(6)所示,實驗結(jié)果見表2
表2 不同算法下各個樣本的PSNR對比
(6)
其中,W表示圖像的寬度,H表示圖像的高度,X(i,j)和Y(i,j)分別表示兩張高分辨率圖像的像素點的值。
SSIM從亮度、對比度和結(jié)構(gòu)這3個角度來評估圖像的相似性,SSIM取值范圍為[0,1],值越大,表示圖像相似性越高。具體計算公式如式(7)所示,實驗結(jié)果見表3
表3 不同算法下各個樣本的SSIM對比
(7)
增強藝術(shù)性壁畫圖像超分辨率重建算法學習了EDSR和SRGAN的核心思想,使用其它網(wǎng)絡(luò)優(yōu)化技巧解決了一部分網(wǎng)絡(luò)訓練過程中的問題,采用數(shù)據(jù)集公開數(shù)據(jù)集與壁畫圖像數(shù)據(jù)聯(lián)合訓練模型的方法和更加科學的網(wǎng)路訓練流程,最終呈現(xiàn)出了較好的結(jié)果。通過對比實驗結(jié)果中的PSNR和SSIM的每個樣本值和平均值可知,本文算法相較于其它3種算法都有了較明顯提升,PSNR分別平均提升了1.0 dB-3.0 dB,SSIM分別平均提升了0.01-0.03。因此本文算法在客觀的實驗指標上體現(xiàn)了較好的優(yōu)異性。
3.2.2 主觀評價對比
由于客觀參數(shù)的對比并不能完全替代人眼視覺對壁畫超分辨率重建圖像的感受,為了使得超分辨率圖像的重建更具普遍性,因此本文采用評分法,隨機選取100名視力正常的各行業(yè)人員(男生50人,女生50人),對3種不同算法修復效果的整體一致性和結(jié)構(gòu)連續(xù)性打分。評分分為5個等級(非常滿意、滿意、一般、不滿意、非常不滿意),對應的分數(shù)依此為5,4,3,2,1。
經(jīng)統(tǒng)計對4個不同算法的整體美觀性和紋理細節(jié)結(jié)構(gòu)的評分結(jié)果分別求平均值,為了直觀對比滿意度測評的詳細信息,做出柱狀圖如圖8所示。
圖8 不同算法下壁畫圖像超分辨率重建效果 主觀評價對比
壁畫圖像優(yōu)化的目的是不僅僅用于古代文物的保護工作,同時也希望更多的普通人喜歡學習、欣賞古代壁畫的美。通過比較在整體美觀性和紋理細節(jié)結(jié)構(gòu)上本文算法都評分較高,因此本文提出的算法在主觀評價上得到了更好的效果。
本文針對壁畫圖像的優(yōu)化問題,提出了增強一致性生成對抗網(wǎng)絡(luò)來實現(xiàn)壁畫的超分辨率重建。通過遷移學習的方式解決了壁畫圖像數(shù)據(jù)少的重要問題,該算法首先通過卷積神經(jīng)網(wǎng)絡(luò)作為基礎(chǔ)架構(gòu)實現(xiàn)壁畫圖像的特征提取,其中采用殘差模塊的方式優(yōu)化生成網(wǎng)絡(luò)結(jié)構(gòu),并去除了批標準化操作進一步優(yōu)化,然后用提取的特征通過亞像素卷積的上采樣方式實現(xiàn)壁畫圖像的超分辨率重建;在判別網(wǎng)絡(luò)中采用較深的卷積神經(jīng)網(wǎng)絡(luò)并應用殘差學習的思想,來更加準確區(qū)分生成的高分辨率圖像和真實高分辨率圖像。通過與已有的算法比較,在壁畫圖像超分辨率的主觀視覺效果、峰值信噪比和結(jié)構(gòu)相似性都有明顯提高,結(jié)果表明本文算法在顏色豐富、紋理結(jié)構(gòu)強的壁畫圖像超分辨率重建上有更好的效果。
本文算法在進行壁畫圖像的超分辨率重建時,對于局部色彩單一、對比度較強的區(qū)域往往會出現(xiàn)其它顏色的噪點,使得圖像顏色不純,藝術(shù)研究價值降低。還存在對抗神經(jīng)網(wǎng)絡(luò)訓練時間不確定等問題。今后將在結(jié)合超分辨率重建和圖像降噪算法融合,解決生成的高分辨率圖像存在噪點的現(xiàn)象;采用更加科學的生成對抗網(wǎng)絡(luò)訓練終止條件等角度研究,實現(xiàn)壁畫的超分辨率重建。