李 英 李 臻
1(內(nèi)江職業(yè)技術(shù)學(xué)院信息技術(shù)系 四川 內(nèi)江 641000)
2(電子科技大學(xué) 四川 成都 610054)
隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)圖片的數(shù)量迅猛增長(zhǎng),人們對(duì)圖像真實(shí)感的質(zhì)量要求日益增高。受限于網(wǎng)絡(luò)帶寬和計(jì)算機(jī)存儲(chǔ)空間的約束,網(wǎng)絡(luò)中的圖像經(jīng)常采取有損壓縮和低分辨率的方式進(jìn)行傳輸,這就需要對(duì)低分辨率的壓縮圖像采用圖像增強(qiáng)技術(shù)重建出高分辨率的清晰圖像[1]。圖像增強(qiáng)大致可以分為兩個(gè)領(lǐng)域:超分辨率方法(Super Resolution,SR)和偽影去除方法(Artifact Removal,AR)。
超分辨率方法是將低分辨率圖像重建為高分辨率圖像的技術(shù),SR主要有3類:基于插值,基于重建和基于學(xué)習(xí)的方法。因?yàn)榛诓逯岛突谥亟ǖ姆椒◤?fù)雜度低,適用性不強(qiáng),生成的圖像邊緣輪廓比較模糊,不能滿足高分辨率的需求,所以基于學(xué)習(xí)的超分辨率技術(shù)成為研究的熱點(diǎn)。2014年,卷積神經(jīng)網(wǎng)絡(luò)首次應(yīng)用于圖像超分辨率領(lǐng)域中,開啟了使用卷積神經(jīng)網(wǎng)絡(luò)的超分辨率(Super-Resolution using Convolution Neural Network,SRCNN)算法[2]。該算法利用3層卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練低分辨率到高分辨率的關(guān)聯(lián)關(guān)系,獲取的高分辨率圖像效果比傳統(tǒng)方法有極大改善,但是由于網(wǎng)絡(luò)層次結(jié)構(gòu)太淺,圖像深層次的特征難以獲得。Ledig等[3]將生成對(duì)抗網(wǎng)絡(luò)應(yīng)用于圖像的超分辨率重建中,提出了基于生成對(duì)抗網(wǎng)絡(luò)的超分辨率(Super-Resolution using a Generative Adversarial Network,SRGAN)算法。該算法首先利用生成器網(wǎng)絡(luò)訓(xùn)練低分辨率圖像樣本,生成高分辨率圖像,然后用判別器網(wǎng)絡(luò)區(qū)分高分辨率圖像的來(lái)源,當(dāng)判別器無(wú)法辨別出圖像是原始輸入還是網(wǎng)絡(luò)生成時(shí),即生成出高質(zhì)量的高分辨率圖像。與其他深度學(xué)習(xí)方法相比,SRGAN算法生成的圖片效果在視覺上更逼真。席志紅等[4]針對(duì)目前卷積神經(jīng)網(wǎng)絡(luò)的超分辨率算法存在卷積層數(shù)少、模型簡(jiǎn)單、收斂速度慢等問題,提出了一種基于深層殘差網(wǎng)絡(luò)的加速圖像超分辨率重建方法,該方法在提高圖像分辨率的同時(shí)加快了收斂速度。謝珍珠等[5]針對(duì)基于學(xué)習(xí)的圖像超分辨率重建算法中存在邊緣信息丟失、易產(chǎn)生視覺模糊等問題,提出一種基于邊緣增強(qiáng)的深層網(wǎng)絡(luò)模型用于圖像的超分辨率重建方法,利用反卷積網(wǎng)絡(luò)實(shí)現(xiàn)邊緣增強(qiáng)的目標(biāo)。楊文瀚等[6]針對(duì)單幅圖像超分辨率重建受到多對(duì)一映射的困擾,造成高頻細(xì)節(jié)缺失的問題,提出了一種數(shù)據(jù)外補(bǔ)償?shù)纳疃染W(wǎng)絡(luò)超分辨率重建方法,該方法采取在構(gòu)建的深度網(wǎng)絡(luò)中對(duì)圖像進(jìn)行內(nèi)部重建,在線檢索的大數(shù)據(jù)進(jìn)行外部高頻信息補(bǔ)償?shù)姆绞教岣咚惴ㄐ阅堋?/p>
偽影去除方法是將壓縮圖像處理為無(wú)偽影銳利圖像的技術(shù)[7]。圖像的有損壓縮容易產(chǎn)生方塊偽影,不僅降低圖像的視覺效果,同時(shí)還影響后續(xù)圖像的處理,對(duì)于高度壓縮的圖像和視頻,因?yàn)橹亟▓D像中的紋理細(xì)節(jié)通常不存在,使得AR問題尤其突出。Dong等[8]提出了卷積神經(jīng)網(wǎng)絡(luò)的偽影減少(Artifacts Reduction Convolutional Neural Network,ARCNN)算法,利用淺層神經(jīng)網(wǎng)絡(luò)來(lái)衰減不同的壓縮偽影,在一定程度上減少了壓縮偽影。Svoboda等[9]提出了L4和L8網(wǎng)絡(luò)結(jié)構(gòu),通過(guò)結(jié)合殘差學(xué)習(xí)、跳過(guò)架構(gòu)和對(duì)稱權(quán)重初始化,在相對(duì)較短的時(shí)間內(nèi)訓(xùn)練出一個(gè)具有八層的網(wǎng)絡(luò),相對(duì)于ARCNN,利用該網(wǎng)絡(luò)處理偽影具有顯著的質(zhì)量改進(jìn),但仍然未能完全刪除高度壓縮的JPEG圖像中的所有偽影。
在當(dāng)前的圖像增強(qiáng)技術(shù)中,不存在任何能夠同時(shí)解決AR和SR問題的端到端網(wǎng)絡(luò)方法。當(dāng)互聯(lián)網(wǎng)上的圖像或監(jiān)控視頻中的對(duì)象識(shí)別和分類同時(shí)需要AR和SR時(shí),則必須將圖像應(yīng)用于兩種不同的算法。因此,同時(shí)進(jìn)行超分辨率和偽影消除的方法在這些場(chǎng)景中非常有用。為了解決高感知質(zhì)量圖像面臨的這一問題,本文提出了基于生成對(duì)抗網(wǎng)絡(luò)的多用途圖像增強(qiáng)魯棒算法,該算法能夠在一個(gè)網(wǎng)絡(luò)中以端到端的方式同時(shí)消除偽影和獲取高清晰度和豐富細(xì)節(jié)的超分辨率。該網(wǎng)絡(luò)使用帶跳躍鏈接的U-NET類生成器,方便共享低級(jí)信息,而且在生成器最后一層網(wǎng)絡(luò)之前設(shè)計(jì)一個(gè)像素解析模塊,提高輸出圖像分辨率,判別器采用自動(dòng)編碼方式有助于將大量有關(guān)生成圖像質(zhì)量的語(yǔ)義信息傳遞回生成器。本文在SRGAN的基礎(chǔ)上提出了一種基于網(wǎng)絡(luò)特征損失、邊緣損失和判別器重構(gòu)損失三者加權(quán)的感知損失函數(shù),該損失函數(shù)可以有效保留在圖像增強(qiáng)過(guò)程中經(jīng)常丟失的清晰度。
生成對(duì)抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)是由Goodfellow等[10]基于博弈論中的二人零和博弈思想提出的。GAN具有強(qiáng)大的圖片生成能力,在超分辨率、圖像修復(fù)和合成等方面應(yīng)用廣泛。
生成對(duì)抗網(wǎng)絡(luò)是一種通過(guò)對(duì)抗過(guò)程估計(jì)生成模型的網(wǎng)絡(luò)框架,該網(wǎng)絡(luò)的基本框架由一個(gè)生成網(wǎng)絡(luò)G和一個(gè)判別網(wǎng)絡(luò)D構(gòu)成,GAN的流程如圖1所示。
圖1 生成對(duì)抗網(wǎng)絡(luò)的流程示意圖
生成網(wǎng)絡(luò)G利用真實(shí)數(shù)據(jù)樣本x訓(xùn)練生成新的數(shù)據(jù)樣本G(z)。判別網(wǎng)絡(luò)D是一個(gè)二分類器,判斷樣本是來(lái)自于原始數(shù)據(jù)x還是由生成網(wǎng)絡(luò)產(chǎn)生G(z)。整個(gè)GAN過(guò)程網(wǎng)絡(luò)G與D同時(shí)運(yùn)行,判別網(wǎng)絡(luò)的目的是盡量使D(G(z))接近0,而生成網(wǎng)絡(luò)的目的是盡量使它接近1,最終二者在博弈中達(dá)到平衡。目標(biāo)函數(shù)表示為:
Ez,P(z)[log(1-D(G(z)))]
(1)
式中:z是潛在表征;x是真實(shí)數(shù)據(jù)樣本;P表示概率分布;E表示期望。
GAN在訓(xùn)練過(guò)程中因?yàn)殡S機(jī)噪聲的存在使得生成網(wǎng)絡(luò)的效果不佳。因此,SRGAN的初始化變量不再使用隨機(jī)噪聲,而是采用原始數(shù)據(jù)集的高分辨率圖像IHR經(jīng)過(guò)高斯濾波降采樣得到的低分辨率圖像ILR作為訓(xùn)練樣本。SRGAN流程如圖2所示。
圖2 生成對(duì)抗網(wǎng)絡(luò)的超分辨流程示意圖
SRGAN的目標(biāo)函數(shù)表示為:
EILR,P(ILR)[log(1-DθD(GθG(ILR)))]
(2)
式中:GθG和DθD表示由θG和θD參數(shù)化的前饋CNN生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò);θG={W1:L;b1:L}表示L層深度網(wǎng)絡(luò)的權(quán)重和偏差,由優(yōu)化超分辨重建的特定損失函數(shù)SR給出,參數(shù)θD同理。
SRGAN以感知損失作為優(yōu)化目標(biāo),該損失函數(shù)包括對(duì)抗損失和內(nèi)容損失兩項(xiàng),即:
(3)
本文是基于生成對(duì)抗網(wǎng)絡(luò)的圖像增強(qiáng)算法,目標(biāo)是利用低分辨率和被偽影破壞的圖像ILR估計(jì)出一個(gè)銳利無(wú)偽影的高分辨率圖像IHR。對(duì)于具有c通道的圖像,采用尺寸為W×H×C的實(shí)值張量來(lái)描述ILR。同理,IHR和IGT可由ρW×ρH×ρC描述,其中,IGT表示真實(shí)圖像,ρ=2p,p∈{0,1,2,…}。
為了估計(jì)低質(zhì)量輸入圖像的增強(qiáng)圖像,采用由θG參數(shù)化的前饋CNN生成網(wǎng)絡(luò)GθG。該網(wǎng)絡(luò)使用具有3×3核的卷積層和stead=1,然后進(jìn)行批量歸一化,激活函數(shù)選用泄漏ReLU。每個(gè)卷積層的濾波器數(shù)量如圖3所示。
圖3 本文網(wǎng)絡(luò)的總體架構(gòu)示意圖
本文方法的深度生成網(wǎng)絡(luò)GθG如圖3所示,對(duì)于p>0的情況,即輸出的尺度大于輸入時(shí),生成器在最后一層之前引入一個(gè)新的模塊,該模塊包含m(m>0)個(gè)子像素卷積層,每個(gè)像素卷積層將圖像的分辨率提高2倍。圖3展示了兩個(gè)像素卷積層,因此,將圖像超級(jí)解析為4倍。如果p=0,由于輸出圖像的尺寸與輸入圖像一致,則不需要引入該模塊。
判別網(wǎng)絡(luò)DθD的優(yōu)劣對(duì)于提出框架的性能非常關(guān)鍵。該網(wǎng)絡(luò)采用自動(dòng)編碼器的形式設(shè)計(jì),因此,自動(dòng)編碼器的輸出是其原始輸入或者生成輸入的重構(gòu)圖像,這樣設(shè)計(jì)的目的有助于判別器將大量有關(guān)生成圖像質(zhì)量的語(yǔ)義信息傳遞回生成器,而二進(jìn)制鑒別器不可能做到。本文方法的判別器包含有18個(gè)卷積層,其中增加了多個(gè)3×3的濾波核,采用stead=2的步幅卷積來(lái)減小特征映射的尺寸,然后使用像素卷積層來(lái)提高特征映射的分辨率。
對(duì)于圖像增強(qiáng)問題,盡管輸入圖像和輸出圖像的外觀不同,但實(shí)際上兩者具備相同底層結(jié)構(gòu)的渲染。在圖像轉(zhuǎn)換過(guò)程中,在輸入圖像和輸出圖像之間存在很多低級(jí)共享信息,可以直接通過(guò)網(wǎng)絡(luò)進(jìn)行傳遞。Ledig等[3]在SRGAN框架中使用殘差模塊和跳躍鏈接來(lái)幫助生成器傳遞這些信息,然而,本文發(fā)現(xiàn)按照U-net形狀[11]引入跳躍鏈接在傳遞信息方面更有效,在層n和層L-n之間添加跳躍鏈接,那么跳躍鏈接只是將第n層的所有通道與第L-n層的所有通道連接起來(lái),其中L是總層數(shù)。
U-Net網(wǎng)絡(luò)結(jié)構(gòu)如圖4所示,整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)看起來(lái)像一個(gè)U型,是一種編碼器-解碼器網(wǎng)絡(luò)。在U-Net網(wǎng)絡(luò)中,通過(guò)跳躍連接的方式,直接把底層特征和高層特征結(jié)合,從而實(shí)現(xiàn)精確的像素分類,特征的結(jié)合使用級(jí)聯(lián)的方式。
圖4 U-Net網(wǎng)絡(luò)結(jié)構(gòu)示意圖
損失函數(shù)的不同會(huì)產(chǎn)生網(wǎng)絡(luò)模型性能的差異,因此,適當(dāng)?shù)膿p失函數(shù)對(duì)生成網(wǎng)絡(luò)至關(guān)重要。本文在文獻(xiàn)[3]的基礎(chǔ)上,通過(guò)添加一個(gè)邊緣損失項(xiàng)和判別器重構(gòu)損失項(xiàng)來(lái)設(shè)計(jì)出一個(gè)新的損失函數(shù)。該函數(shù)可以根據(jù)感知特征評(píng)估圖像,擺脫利用最小化像素差異評(píng)估時(shí)的局限。由于邊緣損失項(xiàng)和重建損失項(xiàng)的引入,使得在去除偽影和4倍放大后也能夠生成銳利圖像。本文損失函數(shù)被定義為:
Floss=r×Eloss+(1-r)×Closs+LD
(4)
式中:Floss表示感知損失函數(shù);Eloss、Closs和LD分別表示特征損失項(xiàng)、邊緣損失項(xiàng)和重構(gòu)損失項(xiàng);r表示權(quán)重系數(shù)。
根據(jù)預(yù)先訓(xùn)練的19層VGG網(wǎng)絡(luò)的ReLU激活層選擇特征丟失,數(shù)學(xué)方程式可以定義為:
φi,j(GθG(ILR))x,y)2
(5)
式中:W和H分別表示輸入圖像的寬和高;φi,j表示VGG網(wǎng)絡(luò)中第i個(gè)最大池化層之前通過(guò)第j層卷積產(chǎn)生的特征圖。
邊緣信息的保存對(duì)于生成清晰的圖像非常重要,因此,本文引入邊緣損失項(xiàng):
Θ(GθG(ILR))x,y|
(6)
式中:Θ表示邊緣檢測(cè)函數(shù),以尺寸為3×3,σ=0.3的高斯濾波器為核心。
與大多數(shù)其他算法不同,本文的判別網(wǎng)絡(luò)可以提供判別器輸入的重構(gòu)圖像。設(shè)計(jì)重構(gòu)損失項(xiàng)的目的是為了區(qū)分重構(gòu)的真實(shí)圖像和假圖像的損失分布:
(7)
(8)
(9)
kt表示第t次迭代時(shí)的平衡因子:
(10)
式中:λ表示學(xué)習(xí)率,一般取10-3。
為了驗(yàn)證提出方法對(duì)不同用途圖像的增強(qiáng)效果,選取多個(gè)數(shù)據(jù)集進(jìn)行測(cè)試。選取Live1[12]數(shù)據(jù)集(29幅圖像)驗(yàn)證算法的AR性能,Set14[3](14幅圖像)和BSD300[3]數(shù)據(jù)集(300幅圖像)驗(yàn)證算法的SR性能。為了驗(yàn)證方法在AR+SR方面的性能,本文從三個(gè)數(shù)據(jù)集中隨機(jī)抽取100幅圖像。在測(cè)試過(guò)程中,AR數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果都是在JPEG圖像降級(jí)到10%的質(zhì)量系數(shù)來(lái)完成的,SR實(shí)驗(yàn)的放大因子為4,對(duì)于AR+SR,數(shù)據(jù)集的降質(zhì)系數(shù)為10%,放大因子為4,即對(duì)應(yīng)于圖像像素減少16倍。
本文所有實(shí)驗(yàn)是在NVIDIA DGX-1機(jī)器上基于TensorFlow完成的,使用來(lái)自ImageNet[13]數(shù)據(jù)集中60 000幅圖像的隨機(jī)樣本訓(xùn)練網(wǎng)絡(luò)。為測(cè)試SR、AR和AR+SR,在訓(xùn)練時(shí)將不同的訓(xùn)練圖像分別裁剪為96×96、256×256、128×128的隨機(jī)子圖像。訓(xùn)練網(wǎng)絡(luò)時(shí),學(xué)習(xí)率設(shè)置為10-4,迭代次數(shù)為5×104,使用β1=0.9的Adam優(yōu)化器優(yōu)化網(wǎng)絡(luò)。
圖5-圖7給出了本文算法和其他方法在不同數(shù)據(jù)集中分別測(cè)試AR、SR和AR+SR的部分可視化結(jié)果,其中ARCNN+SRGAN算法意味著首先使用ARCNN對(duì)圖像進(jìn)行恢復(fù),然后使用SRGAN超級(jí)解析圖像??梢钥闯?,相比于其他方法,本文方法不僅在AR實(shí)驗(yàn)中得到更銳利的圖像和SR實(shí)驗(yàn)中獲取更多的紋理細(xì)節(jié),還可以在同一網(wǎng)絡(luò)中為AR和SR提供一次端到端的解決方案,而且提出方法在顏色梯度較大區(qū)域生成的真實(shí)照片效果更加的柔和。
(a) 真實(shí)圖像 (b) ARCNN (c) L04 (d) 本文方法
(a) 真實(shí)圖像 (b) SRCNN (c) SRGAN (d) 本文方法
(a) 真實(shí)圖像 (b) SRGAN+ARCNN (c) ARCNN+SRGAN (d) 本文方法
為了進(jìn)一步驗(yàn)證,本文利用峰值信噪比(PSNR)、結(jié)構(gòu)相似性指數(shù)(SSIM)和梯度幅度相似度偏差(Gradient Magnitude Similarity Deviation,GMSD) 3個(gè)評(píng)價(jià)指標(biāo)來(lái)驗(yàn)證算法的有效性。
PSNR表示濾波圖像的最大像素值與噪聲的比值,定義為:
(11)
式中:MSE表示均方誤差;fmax和fmin分別表示去噪圖像的最大和最小像素。PSNR越大,說(shuō)明去噪圖像失真越小,圖像的去噪效果越好。
基于感知模型的歸一化度量SSIM定義為:
S(x,y)=f(l(x,y),c(x,y),s(x,y))
(12)
圖像梯度對(duì)圖像失真程度高度敏感,局部質(zhì)量下降在全局圖像的差異GMSD可以反映圖像的質(zhì)量,通常運(yùn)用圖像與線性濾波器Prewitt算子的卷積來(lái)提取圖像梯度:
(13)
式中:mIGT、mIHR分別表示圖像IGT和IHR的梯度幅度;hx、hy分別表示Prewitt濾波器的水平和豎直方向算子。然后計(jì)算梯度幅度相似度均值:
(14)
(15)
GMSD的值反映整幅圖像的失真嚴(yán)重程度,其值越高,圖像失真程度越高,質(zhì)量越差。
表1給出了不同算法進(jìn)行AR、SR、AR+SR測(cè)試時(shí)的指標(biāo)結(jié)果??梢钥闯?,本文方法在AR、SR、AR+SR方面的性能明顯優(yōu)于其他算法。
表1 不同算法進(jìn)行AR、SR、AR+SR測(cè)試時(shí)的指標(biāo)結(jié)果
本文還研究了不同損失函數(shù)和判別器結(jié)構(gòu)對(duì)網(wǎng)絡(luò)性能的影響。實(shí)驗(yàn)采用加權(quán)組合的特征損失項(xiàng)和邊緣損失項(xiàng),以及重構(gòu)損失項(xiàng)作為損失函數(shù),此處重點(diǎn)分析VGG特征映射和邊緣檢測(cè)器對(duì)網(wǎng)絡(luò)性能的影響。通過(guò)研究VGG與Canny、HED邊緣檢測(cè)器的結(jié)合性能發(fā)現(xiàn),Canny算法不僅快速有效,而且在保持銳度方面有所提升,如圖8所示。表2為不同邊緣檢測(cè)器的測(cè)試結(jié)果。
(a) 原圖 (b) Canny (c) HED
表2 不同邊緣檢測(cè)器進(jìn)行AR、SR測(cè)試時(shí)的指標(biāo)結(jié)果
實(shí)驗(yàn)采用兩種不同的鑒別器,第一種判別器(Dv1)對(duì)像素空間中的圖像進(jìn)行評(píng)估,第二種判別器(Dv2)對(duì)特征空間中圖像進(jìn)行評(píng)估,在判斷真假圖像時(shí)可以給出0或1的二進(jìn)制輸出。本文方法采用Dv1判別器,結(jié)構(gòu)如圖3所示,Dv2為文獻(xiàn)[3]中給定的判別器。通過(guò)研究了VGG和L1與Canny的結(jié)合性能,驗(yàn)證了引入Canny算子的網(wǎng)絡(luò)結(jié)構(gòu)可以提高圖像的感知質(zhì)量。
表3顯示了算法在不同判別器和損失函數(shù)下的定量性能??梢钥闯?,帶Dv1判別器的生成對(duì)抗網(wǎng)絡(luò)GAN采用引入Canny算子的加權(quán)組合損失函數(shù),能夠獲得最佳的性能指標(biāo)結(jié)果。
表3 不同判別器和損失函數(shù)進(jìn)行AR測(cè)試時(shí)的指標(biāo)結(jié)果
針對(duì)當(dāng)前圖像增強(qiáng)技術(shù)不能夠同時(shí)解決AR和SR問題的現(xiàn)象,本文提出了基于生成對(duì)抗網(wǎng)絡(luò)的多用途圖像增強(qiáng)魯棒算法,能夠在一個(gè)網(wǎng)絡(luò)中以端到端的方式同時(shí)進(jìn)行偽影去除和超分辨率。實(shí)驗(yàn)結(jié)果表明,對(duì)于高壓縮低分辨率圖像,本文方法可以同時(shí)進(jìn)行偽影去除和超分辨率,相比其他方法,在多個(gè)評(píng)價(jià)指標(biāo)上都有很好的性能體現(xiàn)。