檀結慶,朱星辰,蔡蒙琪
(合肥工業(yè)大學 數(shù)學學院,安徽 合肥 230601)
近十年來,神經(jīng)網(wǎng)絡在各個領域取得了巨大的成功。神經(jīng)網(wǎng)絡的思想誕生于20世紀80年代,在2012年的ImageNet比賽上,文獻[1]使用神經(jīng)網(wǎng)絡方法取得成績后,神經(jīng)網(wǎng)絡領域迅速再次成為研究者們關注的焦點。經(jīng)過幾年的發(fā)展,從圖像處理、語音識別到幾何造型,神經(jīng)網(wǎng)絡算法的應用推動這些領域的研究取得了巨大的進步。
在圖像處理上,卷積神經(jīng)網(wǎng)絡(convolutional neural network,CNN)也成為研究者關注的主要方法。圖像超分辨重建,即將低分辨率圖像(low resolution,LR)恢復成高分辨率圖像(high resolution,HR),也在使用CNN方法后得到了飛速的發(fā)展。
卷積神經(jīng)網(wǎng)絡方法的應用讓單幅圖像超分辨率(single image super resolution,SISR)問題得到了較好的解決。文獻[2]提出了SRCNN模型,第1次將CNN方法應用到圖像超分辨率(super resolution,SR)問題上。SRCNN是一個端到端學習LR圖像到HR圖像映射的高效網(wǎng)絡,它不需要進行人為的特征處理,并取得了令人滿意的表現(xiàn)。之后,大部分研究都專注于提出更高效的網(wǎng)絡結構來學習LR圖像到HR圖像之間的映射。一系列基于CNN的模型被提出[3-13],從上采樣方法,到中間層的特征提取方法與特征處理方法,再到映射結構,研究者們在CNN模型的結構方面做了很多工作,并取得了令人矚目的進步。然而,大多數(shù)模型只是針對其他研究領域中模型結構的變化,對超分辨率領域的CNN模型結構進行了改動,大體上傾向于組建一個更深更復雜的網(wǎng)絡結構。這意味著在模型訓練上需要更多的資源、時間與技巧,使得CNN模型在網(wǎng)絡結構方向上的改進逐漸陷入瓶頸。
在網(wǎng)絡結構改進逐漸陷入瓶頸的同時,作為CNN模型中的重要一環(huán),損失函數(shù)層的改進卻一直沒有受到很大的關注。CNN模型中,l2損失函數(shù)是最早被廣泛使用的損失函數(shù)。鑒于它的可微性與實現(xiàn)上的簡單性,l2損失函數(shù)被使用了相當長的時間。文獻[14]通過對比實驗的方法驗證了l1損失函數(shù)具有比l2損失函數(shù)更快的收斂速度且不亞于l2損失函數(shù)的準確性。因而l1損失函數(shù)在SR領域逐漸代替l2損失函數(shù)成為最廣泛使用的默認損失函數(shù)。但在此之后,再沒有一個得到廣泛應用的新的損失函數(shù)。一方面,這是因為超分辨方向的研究者們對該領域關注度不夠,另一方面,這也與圖像處理中圖像質量評估(image quality assessment,IQA)選擇的主觀性及其能否與深度學習的損失函數(shù)層相結合有關。
針對網(wǎng)絡改進趨于停滯和損失函數(shù)沒有受到關注這一問題,本文聚焦損失函數(shù)層并強調IQA領域在圖像處理中對神經(jīng)網(wǎng)絡的重要性,提出一種新的損失函數(shù),通過實驗驗證,使用適當?shù)膿p失函數(shù)可以讓神經(jīng)網(wǎng)絡模型在不改變原有結構的基礎上提升模型效果。
本文的目標是對卷積神經(jīng)網(wǎng)絡的損失函數(shù)層進行改進,因此只討論基于CNN的圖像超分辨方法。因為損失函數(shù)層的構造與圖像質量評估方法息息相關,所以需簡要介紹圖像超分辨方法及圖像質量評估方法的相關情況。
SISR問題的發(fā)展可以大致分為3個階段。第1階段的插值方法通?;诓蓸永碚?如最近鄰插值、線性雙三次插值。這些方法速度很快,但是在細節(jié)重建上的表現(xiàn)一般。第2階段方法的主要思想是建立LR圖像與HR圖像之間的映射關系,比如鄰域嵌入方法和稀疏編碼方法。它們通常優(yōu)于插值方法,但需要大量存儲空間對字典進行存儲,同時運行速度較慢。
在第3階段,研究者們大都專注于構建一個端到端的CNN網(wǎng)絡模型,使用龐大的訓練數(shù)據(jù)庫來學習低分辨率圖像到高分辨率圖像的映射。文獻[2]提出SRCNN,并將CNN模型第1次運用到超分辨率問題后,SISR領域迅速出現(xiàn)很多CNN模型。早期模型通常使用經(jīng)過預處理的LR圖像作為輸入,即通過上采樣將LR圖像放大到HR圖像尺寸,再將其輸入網(wǎng)絡。這種方法增加了計算復雜度,且上采樣通常使用插值方法,會產(chǎn)生人眼可見的缺陷。為了解決這個問題,文獻[3]和文獻[4]對上采樣方法進行了改進,讓神經(jīng)網(wǎng)絡直接使用LR圖像作為輸入,加快了CNN網(wǎng)絡訓練與應用時的速度。與此同時,包括DRCN[5]、LapSRN[6]、SRResNet[7]和EDSR[8]等在內的眾多CNN模型被提出。其中,EDSR模型首次引入殘差結構以及DRRN[9]模型引入稠密網(wǎng)絡結構,可視為此階段的重要進展。然而,后續(xù)更多的模型改進通常是基于上述兩者模型結構的重組與解構,缺少重大創(chuàng)新。
SISR問題中使用的CNN模型大致可以分為3個部分:特征提取與特征處理的中間部分、SISR問題特有的上采樣部分以及損失函數(shù)部分。其中,損失函數(shù)是CNN模型中最為重要與基礎的一環(huán),針對不同問題選擇合適的損失函數(shù)不僅能夠提升收斂速度,還能提升訓練效果,提高模型性能。在SISR問題中損失函數(shù)的選擇需要考慮IQA的選擇與構造的損失函數(shù)的可微性。
在圖像超分辨領域,峰值信噪比(peak signal noise ratio,PSNR)與結構相似性(structural similarity index measure,SSIM)是廣泛使用并得到認可的2種圖像質量評價指標,它們都是基于參考圖像的評價方法。從這2個評價標準出發(fā),研究者們對不同的損失函數(shù)進行了研究與嘗試,期望模型可以在這2個指標上得到突破。
PSNR是一種基于2幅圖像像素點進行比較的指標。從PSNR公式出發(fā),通過均方誤差(mean square error,MSE)的表達式,可以得到l2損失函數(shù),而l2損失函數(shù)的可微性與凸性等特點,讓它在優(yōu)化問題中得到了廣泛應用。文獻[13]通過實驗驗證了使用l1損失函數(shù)能夠加速模型收斂,同時最終收斂時得到的模型精度不會有太大差別。由此,l1損失函數(shù)逐漸代替l2損失函數(shù)成為圖像超分辨領域中模型訓練的默認損失函數(shù)。盡管PSNR在客觀上能夠解釋2張圖像的相似性,但PSNR是基于像素點進行的比較,因此在PSNR值較高時,也可能出現(xiàn)人眼視覺不佳的圖像。為了解決這個問題,IQA領域的研究者們提出了另一個基于圖像統(tǒng)計信息的指標,即SSIM。
SSIM指標是基于2幅圖像的均值、標準差等數(shù)據(jù)進行比較的方法,相比于PSNR,更注重整體圖像在人眼視覺中的感受。文獻[13]從SSIM指標出發(fā),分別分析了SSIM和基于SSIM改進的多尺度結構相似性(multi-scale structural similarity index measure, MS-SSIM)評價指標,并提出了l1與MS-SSIM混合的新的損失函數(shù)。這種新的混合損失函數(shù)相比于單一地使用l1或者MS-SSIM指標,會讓模型表現(xiàn)有所提升。
除了以上2種指標,IQA領域還在不斷提出新的指標,以期達到能夠符合人眼視覺評價的效果。比如基于MS-SSIM,根據(jù)局部信息加入權重策略進行改進的基于信息權重的結構相似性指標(information content weighted structural similarity measure,IW-SSIM)。方差擴大因子(variance inflation factor,VIF)指標則根據(jù)扭曲圖像與真實圖像之間共享信息進行判別。特征相似性(feature similarity,FSIM)則從視覺感知中重要的相位一致性出發(fā),利用2幅圖像的局部相位一致性與梯度對圖像質量進行度量。
本節(jié)首先從SSIM出發(fā),對SSIM和MS-SSIM損失函數(shù)進行闡述,然后提出基于梯度幅值相似偏差(gradient magnitude similarity deviation,GMSD)的損失函數(shù),并提出基于l1、MS-SSIM和GMSD的新的混合損失函數(shù)。
常用的l1損失函數(shù)和l2損失函數(shù)都是基于PSNR指標提出的損失函數(shù)。由于PSNR是基于像素點進行比較的指標函數(shù),常會忽略人類視覺的感受。SSIM指標與PSNR不同,是一種從人眼視覺出發(fā),基于圖像的統(tǒng)計信息進行比較的指標函數(shù)。
令
有
(1)
(2)
從(2)式可以看出,SSIM損失函數(shù)的計算與選取的鄰域大小相關。由于要使用鄰域像素點,在邊界時需要通過填充,以解決邊界點的計算問題。對此求偏導數(shù):
其中
2GσG((i,j)∈(k,l))×
(3)
(4)
其中:lq、csq表示在縮小2q倍后的圖像上求得的值;M為設定的最大縮小倍數(shù);α、βj為可設定的參數(shù)。本文設定為α=1,βj=1(j=1,…,M)。由此,MS-SSIM損失函數(shù)寫作:
MS-SSIM的反向傳播導數(shù)可以寫作:
文獻[14]提出了基于參考的圖像質量評價方法GMSD。GMSD在IQA領域的表現(xiàn)優(yōu)于SSIM與MSK-SSIM。與SSIM相同,GMSD也是一種基于統(tǒng)計信息的圖像質量評價方法。GMSD從圖像的梯度信息出發(fā),提取結構信息。自然圖像往往具有類型豐富的局部結構,而不同的結構在失真時會有不同的梯度變化。鑒于局部質量退化引起的圖像全局變化可以反映圖像質量,GMSD方法先通過計算局部梯度相似性來衡量局部圖像質量,再通過計算局部圖像質量的標準差來衡量圖像全局的質量。GMSD的公式如下:
對上述3個部分分別求偏導:
其中,H1((i,j)∈(k,l))與H2((i,j)∈(k,l))分別表示點(i,j)在圖像塊(k,l)中相應的h1與h2卷積核系數(shù)。一方面,GMSD在IQA領域擁有優(yōu)于SSIM、MS-SSIM的良好表現(xiàn),更符合人類視覺;另一方面,GMSD中的梯度計算與神經(jīng)網(wǎng)絡有著天然聯(lián)系,使它可以自然地應用于反向傳播過程中。
從上述說明可以看出,單純使用l1損失函數(shù)并不能使訓練出的模型在視覺上達到最佳效果,而使用MS-SSIM訓練出的模型則容易在平滑區(qū)域產(chǎn)生一致性偏差,因此,本文提出使用l1損失函數(shù)、MS-SSIM損失函數(shù)及GMSD損失函數(shù)相結合的新的損失函數(shù),其表達式為:
Lmix=αLl1+βLGMSD+
(1-α-β)LMS-SSIM。
一方面,該損失函數(shù)使用l1這種像素級損失函數(shù),保證了收斂速度以及模型的準確性;另一方面,使用LMS-SSIM損失函數(shù)對圖像整體相似性進行了調整。最后,加入的LGMSD損失函數(shù)又發(fā)揮了GMSD指標在IQA領域優(yōu)于MS-SSIM評價指標的特性,讓產(chǎn)生的圖像更符合人類視覺,也利用了求取圖像梯度與卷積操作的天然聯(lián)系,融入了神經(jīng)網(wǎng)絡的訓練過程。經(jīng)過實驗驗證,參數(shù)設置為α=0.8、β=0.1、d2=10時,模型訓練可以達到良好效果,且該函數(shù)比單純使用l1損失函數(shù)具有更快的收斂速度以及更好的收斂性。具體實驗過程與結論將在第3部分闡述。
本節(jié)將給出改進的損失函數(shù)在不同測試集上的效果。首先介紹實驗使用的數(shù)據(jù)集與模型以及實現(xiàn)細節(jié);然后給出實驗結果并與其他方法進行對比。
實驗使用廣泛采用的DIV2K數(shù)據(jù)集進行訓練,并在Set5、Set14、BSDS100、Urban100和Manga109數(shù)據(jù)集上進行測試。這些測試數(shù)據(jù)圖片涵蓋范圍廣泛,能夠有效驗證模型的泛化性能。所有的實驗都在RGB空間完成,并使用x2,x3,x4的上采樣倍數(shù)進行訓練和測試。
本文使用多尺度殘差網(wǎng)絡(multi-scale residual network,MSRN)模型[12]作為實驗模型。MSRN模型首先使用3×3的卷積核從低分辨率圖像中提取特征,然后使用8個多尺度殘差塊(multi-scale residual block,MSRB)進一步處理,并將每一步的結果進行串聯(lián),接著用1×1卷積核作為瓶頸層進行特征組合篩選,最后使用亞像素卷積完成上采樣。MSRB的具體結構如圖1所示。
圖1 MSRB結構
在實驗中使用了MSRN中的模型參數(shù),將模型使用的l1損失函數(shù)更換為本文提出的基于GMSD的混合損失函數(shù),并將實驗結果與原始的MSRN模型進行對比??紤]到圖像質量評判標準的適用性,沿用PSNR/SSIM 2個廣泛使用的圖像評價指標。實驗結果見表1所列。
實驗均在MSRN模型基礎上進行,第1列是使用l1損失函數(shù)進行訓練的結果,第2列是使用文獻[13]提出的損失函數(shù)進行訓練的模型結果,第3列為使用本文提出的損失函數(shù)進行訓練的結果。通過表1的實驗對比,可以發(fā)現(xiàn),采用本文提出的基于GMSD的混合損失函數(shù)訓練模型能夠在不改動模型其余部分的情況下有效提升模型質量。
表1 PSNR數(shù)值結果
SR視覺效果如圖2、圖3所示。
圖2 SR視覺效果一
圖3 SR視覺效果二
本文研究了圖像超分辨領域CNN模型的損失函數(shù),提出了新的基于GMSD的混合損失函數(shù),并通過實驗,驗證了在保持模型結構與參數(shù)不變的情況下,使用新的損失函數(shù)進行模型訓練仍然可以大幅度提升模型性能。進一步的研究工作可以探索改進損失函數(shù)的其他方法以避免CNN模型結構的改進瓶頸。