范曉燁,王 敏
(河海大學(xué) 計(jì)算機(jī)與信息學(xué)院,南京 210024)
提升圖像清晰度是計(jì)算機(jī)視覺領(lǐng)域中的常見問題.它已經(jīng)成為視頻監(jiān)控、軍事目標(biāo)識(shí)別以及消費(fèi)型攝影、攝像等眾多應(yīng)用領(lǐng)域的一個(gè)重要研究課題.模糊的圖像嚴(yán)重影響目標(biāo)識(shí)別、語義理解等高級(jí)視覺任務(wù),所以,對(duì)模糊圖像的處理,提高圖像清晰度具有重要意義,因此受到了計(jì)算機(jī)視覺研究領(lǐng)域的高度關(guān)注.
最近,在圖像修復(fù)[1,2],超分辨率[3–7]和去模糊[8–10]相關(guān)研究領(lǐng)域中,通過應(yīng)用生成對(duì)抗網(wǎng)絡(luò)(GAN)[11]取得了重大進(jìn)展.它是一種基于真實(shí)圖像與生成圖像比較來進(jìn)行訓(xùn)練的模型,以博弈的思想使得輸出盡可能的接近輸入的真實(shí)分布,該訓(xùn)練方式可以很好地從樣本數(shù)據(jù)中學(xué)習(xí)特征,更好地解決分類和回歸問題.GAN包括兩部分:生成器和判別器.生成器生成圖像,辨別器判斷圖像是來自真實(shí)分布還是生成網(wǎng)絡(luò).在訓(xùn)練期間,判別網(wǎng)絡(luò)計(jì)算對(duì)抗損失對(duì)生成網(wǎng)絡(luò)進(jìn)行評(píng)分.GAN可以保留圖像的紋理細(xì)節(jié),創(chuàng)造出接近真實(shí)圖像的生成圖像,令人無法分辨是否為真實(shí)圖像.因此受到生成對(duì)抗網(wǎng)絡(luò)對(duì)圖像處理的啟發(fā),通過使用GAN 也可將提高圖像清晰度視為圖像到圖像的轉(zhuǎn)換.
本文采用GAN 的思想,生成網(wǎng)絡(luò)中采用改進(jìn)的殘差塊(residual block)作為主體,生成器損失函數(shù)在原有基礎(chǔ)上加入內(nèi)容損失、感知損失、紋理損失,在視覺和定量評(píng)估方面取得較大進(jìn)展.
卷積神經(jīng)網(wǎng)絡(luò)在計(jì)算機(jī)視覺任務(wù)中普遍應(yīng)用,從識(shí)別,語義分割到降噪,超分辨率,去模糊,修復(fù),都表現(xiàn)出了卓越的性能.深度網(wǎng)絡(luò)以端到端的多層方式將低級(jí)、中級(jí)、高級(jí)特征和分類器集成在一起,并且可以通過增加網(wǎng)絡(luò)深度來豐富特征.
一味地增加網(wǎng)絡(luò)層數(shù)帶來的問題就是梯度消失,不僅難以訓(xùn)練,而且收斂速度變慢,為解決上述問題,He 等提出了ResNet[12],它可以在增加特征圖通道數(shù)的同時(shí)增加網(wǎng)絡(luò)深度,而不增加網(wǎng)絡(luò)的復(fù)雜度,并通過實(shí)驗(yàn)證明殘差網(wǎng)絡(luò)收斂速度更快,當(dāng)網(wǎng)絡(luò)深度顯著增加時(shí),其準(zhǔn)確率也會(huì)隨之上升.這是選擇ResNet 作為GAN模型中生成網(wǎng)絡(luò)主體部分的原因之一.
之所以選擇GAN 作為網(wǎng)絡(luò)框架,是因?yàn)槲覀兿胍氖呛驼鎸?shí)圖像無法區(qū)分的輸出,這正是最近提出的GAN 所研究的[13–15].Isola 等[16]提出圖像到圖像的轉(zhuǎn)換問題通常是逐像素的分類或回歸問題,在本文中,通過逐像素的方式計(jì)算輸出和真實(shí)圖像之間的內(nèi)容損失.
原始ResNet 中的快捷連接僅僅是簡單地執(zhí)行恒等映射,并將其輸出添加至幾個(gè)網(wǎng)絡(luò)層之后的輸出,恒等快捷連接既不增加額外的參數(shù)也不增加計(jì)算復(fù)雜度.文獻(xiàn)[14]為了解決圖像分類等高級(jí)的計(jì)算機(jī)視覺問題,因此將ResNet 體系結(jié)構(gòu)直接應(yīng)用于提高圖像清晰度這類的低級(jí)計(jì)算機(jī)視覺問題是達(dá)不到最優(yōu)效果的.
傳統(tǒng)殘差網(wǎng)絡(luò)中有批歸一化操作,但是在提高圖像清晰度的應(yīng)用中,殘差塊中BN是沒有必要的,因?yàn)闅埐顗K中快捷連接已經(jīng)在不增加額外的參數(shù)和計(jì)算復(fù)雜度的前提下,加速了訓(xùn)練過程,因此本文的生成網(wǎng)絡(luò)部分中的殘差網(wǎng)絡(luò)也將去除BN 層.同樣重要的是He和Srivastava 等[17]說明跳躍連接可以將梯度反向傳播到底層,并將圖像細(xì)節(jié)傳遞到頂層,有助于減輕網(wǎng)絡(luò)中攜帶相同信息的負(fù)擔(dān)并獲得高質(zhì)量的局部最優(yōu)化.在提高圖像清晰度的過程中要考慮到圖像的局部多樣性,因此殘差結(jié)構(gòu)非常適用于提高圖像清晰度.
Pathak 等[18]發(fā)現(xiàn)將GAN 與傳統(tǒng)的損失函數(shù)混合起來對(duì)于訓(xùn)練效果是有益的,例如L2損失函數(shù).但是如果我們要求GAN 最小化預(yù)測(cè)像素和真實(shí)像素之間的L2距離,它將傾向于產(chǎn)生模糊的結(jié)果.Zhao 等[19]實(shí)驗(yàn)使用L1損失函數(shù)訓(xùn)練的網(wǎng)絡(luò)比使用L2可以獲得更好的性能表現(xiàn),收斂也更快.
綜上所述,為了生成圖像盡可能逼真,所以使用GAN框架,并和不同損失函數(shù)結(jié)合.在提高圖像清晰度方向上,要考慮到圖像特征的范圍靈活性和局部多樣性,所以生成器采用去除BN 的殘差塊作為主體結(jié)構(gòu).
本文遵循文獻(xiàn)[20]的思想,生成網(wǎng)絡(luò)由多個(gè)殘差塊組成.GAN 中的生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)均使用SAME模式進(jìn)行卷積,該操作會(huì)保持原特征圖的維數(shù)不變,從而實(shí)現(xiàn)無損特征提取.
受到文獻(xiàn)[11]的啟發(fā),GAN是一個(gè)最大最小的博弈問題,生成網(wǎng)絡(luò)希望生成圖像盡可能地接近真實(shí)分布,致使判別網(wǎng)絡(luò)認(rèn)為是真的;而判別網(wǎng)絡(luò)則是盡可能地分辨出圖像的真假,如式(1)所示:
其中,pdata為真實(shí)分布,pG為生成器分布,D和G分別表示判別器和生成器.將傳統(tǒng)的最大最小問題應(yīng)用于本文中便有式(2):
其中,IB為模糊圖像,IT為真實(shí)清晰圖像.
提高圖像清晰度對(duì)圖像紋理生成的要求極高,因此GAN 中的生成網(wǎng)絡(luò)至關(guān)重要.它需要對(duì)通過網(wǎng)絡(luò)層的信息進(jìn)行整合,為了改善反向傳播中的梯度流,快捷連接可以增強(qiáng)殘差網(wǎng)絡(luò)的梯度流.
本文GAN 中生成網(wǎng)絡(luò)和判別網(wǎng)絡(luò)的總體結(jié)構(gòu)如圖1,圖2所示.生成網(wǎng)絡(luò)主體部分由改進(jìn)的殘差塊(去除BN 層)和跳躍連接嵌套而成,不使用池化層和反池化層,因?yàn)槌鼗瘜訒?huì)丟失圖像細(xì)節(jié),然而這些細(xì)節(jié)信息對(duì)提高圖像清晰度至關(guān)重要.中間由5 個(gè)改進(jìn)的殘差塊組成,利用跳躍連接進(jìn)行像素級(jí)相加操作,保證了將圖像細(xì)節(jié)傳遞到特征圖頂層,有利于降低網(wǎng)絡(luò)的復(fù)雜度,獲得高質(zhì)量的局部最優(yōu)化,將梯度反向傳播到底層,使得訓(xùn)練深層網(wǎng)絡(luò)更加容易.
圖1 判別網(wǎng)絡(luò)架構(gòu)
圖2 生成網(wǎng)絡(luò)架構(gòu)
判別網(wǎng)絡(luò)部分主要由8 個(gè)卷積-激活-歸一操作組成,用兩個(gè)全連接層在尾部進(jìn)行重新擬合,減少特征信息的損失,根據(jù)特征的組合進(jìn)行分類,大大減少特征位置對(duì)分類帶來的影響.最后用Sigmoid 對(duì)全連接層的輸出進(jìn)行二分類,判斷輸入圖像真假與否.
如圖3所示圖3(a)為原始的殘差塊,其適用于圖像分類等高級(jí)計(jì)算機(jī)視覺問題,均達(dá)到較高水平,在提高圖像清晰度這類低級(jí)計(jì)算機(jī)視覺問題中,原始的殘差塊并沒有表現(xiàn)出滿意的效果,其中BN 層是不必要的模塊,將其去除可簡化網(wǎng)絡(luò)結(jié)構(gòu),在穩(wěn)定GAN 訓(xùn)練過程的同時(shí),性能也有所提升,圖3(b)為改進(jìn)的殘差塊.
圖3 殘差塊
另外將網(wǎng)絡(luò)中的ReLU 激活函數(shù)改為了PReLU,整流激活函數(shù)對(duì)神經(jīng)網(wǎng)絡(luò)性能的巨大提升功不可沒,由文獻(xiàn)[21]提出的PReLU 激活函數(shù)可以自適應(yīng)地學(xué)習(xí)整流器的參數(shù),在ImageNet 分類上,PReLU是超越人類分類水平的關(guān)鍵所在,在可忽略的計(jì)算成本下提高精度.
實(shí)驗(yàn)證明,選用LReLU 和ReLU 作為整流器對(duì)最終的實(shí)驗(yàn)結(jié)果幾乎沒有影響,因此采用可以不斷尋求最優(yōu)參數(shù)的PReLU 作為整流器.
本文GAN 模型的損失函數(shù)主要分為兩部分:生成器損失函數(shù)和判別器損失函數(shù),其中生成器損失函數(shù)由內(nèi)容損失、感知損失、紋理損失和對(duì)抗損失構(gòu)成,下面將進(jìn)行展開介紹.
2.4.1 內(nèi)容損失
本文GAN 模型的損失函數(shù)在原來最大最小問題的基礎(chǔ)上加入內(nèi)容損失函數(shù),文獻(xiàn)[4,18]使用的是均方誤差(L2)作為損失函數(shù),這可以在定量評(píng)估方面取得很高的分?jǐn)?shù),但是它會(huì)導(dǎo)致圖像的細(xì)節(jié)紋理太過平滑,給人視覺上有模糊的感覺.文獻(xiàn)[19]通過實(shí)驗(yàn)發(fā)現(xiàn)使用曼哈頓距離(L1)訓(xùn)練出來的模型性能更好,訓(xùn)練過程的收斂速度也比L2快,因此使用L1作為本文模型中的內(nèi)容損失函數(shù):
其中,W和H分別表示圖像的寬和高.
2.4.2 感知損失
當(dāng)兩幅圖像內(nèi)容完全一樣,但相對(duì)位置卻偏差1 個(gè)像素時(shí),求得的內(nèi)容損失卻不是0,其關(guān)注的是圖像中每一個(gè)對(duì)應(yīng)位置像素之間的距離,因此魯棒性不強(qiáng).感知損失允許模型的輸出可能與真實(shí)圖像不完全匹配,但鼓勵(lì)網(wǎng)絡(luò)生成具有類似特征表示的圖像,如式(4)所示:
本文使用預(yù)訓(xùn)練的VGG-19 網(wǎng)絡(luò)來獲取特征圖 φ,為了同時(shí)考慮到圖像中的多尺度信息捕獲高級(jí)和低級(jí)特征,因此將第2 個(gè)和第5 個(gè)池化層結(jié)果融合.避免了要求網(wǎng)絡(luò)輸出圖像與真實(shí)清晰圖像在像素級(jí)別上的一致,而是鼓勵(lì)兩幅圖具有相似的特征.
2.4.3 紋理損失
Ulyanov 等[22]在風(fēng)格遷移中將全局紋理合成到其他圖像,與風(fēng)格遷移任務(wù)的區(qū)別在于,本文任務(wù)中圖像中的紋理特征多樣化,不僅限于一種風(fēng)格,因此在訓(xùn)練過程中通過計(jì)算基于塊的紋理損失,使得網(wǎng)絡(luò)生成局部相似的紋理,可以促進(jìn)產(chǎn)生的圖像具有更豐富的紋理信息.如式(5)所示:
其中,Gr(F)=FFT.
2.4.4 對(duì)抗損失
生成器損失函數(shù)還有原始的對(duì)抗損失,其鼓勵(lì)生成網(wǎng)絡(luò)能夠生成更加自然的圖像.對(duì)抗損失如式(6):
2.4.5 判別器損失
GAN 網(wǎng)絡(luò)的損失函數(shù)中除了生成器損失函數(shù),還包括判別器損失函數(shù),判別網(wǎng)絡(luò)同時(shí)對(duì)生成圖像和真實(shí)圖像進(jìn)行判斷,判別器損失函數(shù)如式(7):
式中,對(duì)于真實(shí)樣本IT而言越大越好;對(duì)于假樣本而言越小越好,為了這兩項(xiàng)的期望趨勢(shì)相同,我們將改寫為
DIV2K 數(shù)據(jù)集[22]是新發(fā)布的用于圖象復(fù)原任務(wù)的高質(zhì)量圖像數(shù)據(jù)集,包括800 張訓(xùn)練圖像,100 張驗(yàn)證圖像和100 張測(cè)試圖像,圖像種類包羅萬象應(yīng)有盡有,所以本文采用該數(shù)據(jù)集進(jìn)行實(shí)驗(yàn),盡可能增加模型的泛化能力.
由于數(shù)據(jù)集圖像過大,因此訓(xùn)練過程中對(duì)圖像進(jìn)行隨機(jī)裁剪24×24 并翻轉(zhuǎn),使用Adam 優(yōu)化算法進(jìn)行500 000次迭代,訓(xùn)練25 萬次后進(jìn)行學(xué)習(xí)速率衰減,衰減率設(shè)置為0.1,訓(xùn)練生成網(wǎng)絡(luò)每更新一次,判別網(wǎng)絡(luò)更新兩次,防止GAN 訓(xùn)練的不平衡.
本小結(jié)通過消融實(shí)驗(yàn)證明改進(jìn)的殘差塊和損失函數(shù)對(duì)于提高圖像清晰度的有效性,如圖4所示,圖4(a)和圖4(b)分別為生成模型的輸入和真實(shí)清晰圖像,圖4(c)至圖4(f)為分別進(jìn)行實(shí)驗(yàn)得出的效果圖.具體來說,圖4(a)為輸入的模糊圖像,圖4(b)為真實(shí)清晰圖像,圖4(c)為沒有使用殘差塊的生成效果,定義該生成模型為StackedG;圖4(d)為使用傳統(tǒng)殘差塊的生成效果,定義該生成模型為ResG;圖4(e)為使用改進(jìn)殘差塊的生成效果,定義該生成模型為NonBN-ResG;圖4(f)為使用改進(jìn)殘差塊和損失函數(shù)的生成效果,定義該生成模型為NonBN-ResG-L.
圖4 消融實(shí)驗(yàn)
如圖5所示,更加細(xì)節(jié)地展示實(shí)驗(yàn)效果,為了方便起見標(biāo)號(hào)同圖4.對(duì)該女人的人臉細(xì)節(jié)觀察,圖5(c)有明顯的色彩失真,圖5(d)則有振鈴效應(yīng),圖5(e)的細(xì)節(jié)重建不足,較為模糊,圖5(f)的紋理特征,精細(xì)化程度均明顯高于其他3 種情況,包括頭發(fā)、眼睛、牙齒,甚至身后的文字均清晰可見,與真實(shí)的高清晰度圖像相差無幾.表1為定量分析,可得出使用L1作為內(nèi)容損失函數(shù)訓(xùn)練的網(wǎng)絡(luò)雖然在定量評(píng)估方面沒有達(dá)到最優(yōu),但比L2訓(xùn)練獲得更好的性能表現(xiàn).
本文提出了一種基于生成對(duì)抗網(wǎng)絡(luò)的提升圖像清晰度方法,生成網(wǎng)絡(luò)主體部分由改進(jìn)的殘差塊和跳躍連接嵌套而成,保證了將圖像細(xì)節(jié)傳遞到特征圖頂層,有利于降低網(wǎng)絡(luò)的復(fù)雜度,獲得高質(zhì)量的局部最優(yōu)化,將梯度反向傳播到底層,使得訓(xùn)練深層網(wǎng)絡(luò)更加容易.
將來視頻監(jiān)控等眾多領(lǐng)域?qū)D像清晰度會(huì)有更高的要求,目前有多項(xiàng)工作研究重點(diǎn)放在超分辨率的工作上,因此未來我們可以將提高清晰度和超分辨率結(jié)合起來,在實(shí)現(xiàn)超分辨率的基礎(chǔ)上并提高圖像清晰度,這可以成為將來的研究重點(diǎn).
圖5 實(shí)驗(yàn)細(xì)節(jié)對(duì)比
表1 不同模型的定量評(píng)估