代 強,程 曦,王永梅*,牛子未,劉 飛
(1.安徽農(nóng)業(yè)大學(xué)信息與計算機學(xué)院,合肥230036; 2.南京理工大學(xué)計算機科學(xué)與工程學(xué)院,南京210094)
(?通信作者電子郵箱wym@ahau.edu.cn)
圖像超分辨率重建技術(shù)具有非常廣闊的應(yīng)用前景,在視頻游戲、高清音視頻、醫(yī)學(xué)成像等許多領(lǐng)域具有很高的實用價值。單幅圖像超分辨重建是一個典型的計算機視覺問題,旨在將低分辨率(Low-Resolution,LR)圖像重建為高分辨率(High-Resolution,HR)圖像。此外,神經(jīng)元科學(xué)領(lǐng)域的信息門控以及注意力機制[1-2]的思想對于構(gòu)造出更好的單幅圖像的超分辨率重建網(wǎng)絡(luò)影響很大。隨著深度學(xué)習(xí)的不斷發(fā)展,深度學(xué)習(xí)已應(yīng)用于許多圖像超分辨率重建任務(wù)。與早期算法相比,卷積神經(jīng)網(wǎng)絡(luò)具有更高的性能。AlexNet[3]在圖像識別中的出色表現(xiàn)使深度卷積神經(jīng)網(wǎng)絡(luò)成為當(dāng)今的研究熱點。之后,VGG[4]證明了通過加深卷積神經(jīng)網(wǎng)絡(luò)各層來增強識別性能的方法,但是,隨著網(wǎng)絡(luò)的深入,模型的訓(xùn)練變得越來越困難。為了解決這個問題,Highway Network[5]被提出,隨后的深度殘差網(wǎng)絡(luò)(deep Residual Network,ResNet)[6]使極深的網(wǎng)絡(luò)模型成為可訓(xùn)練的。卷積神經(jīng)網(wǎng)絡(luò)在早期只用于識別任務(wù),但是后來發(fā)現(xiàn)卷積網(wǎng)絡(luò)在許多領(lǐng)域都具有巨大的價值,例如目標(biāo)檢測[7-8]、圖像語義分割[9-10]和圖像風(fēng)格遷移[11-12]等。圖像超分辨率重建是計算機視覺領(lǐng)域的重要任務(wù),諸如最近鄰插值、雙線性插值和雙三次插值之類的早期插值方法已在各種軟件中廣泛使用。然而,以上圖像重建方法幾乎不能達(dá)到令人滿意的水平。
Yang等[13-14]提出了基于經(jīng)典稀疏編碼的圖像超分辨率重建方法,并取得了良好的效果;Salvador等[15]提出了貝葉斯方法來完成圖像超分辨率重建任務(wù);Timofte等[16-17]通過錨定鄰域回歸提出了調(diào)整后的基于鄰域快速回歸的快速的超分辨率方 法(Adjusted Anchored Neighborhood Regression for Fast Super-Resolution,A+)。這些模型進(jìn)一步改善了圖像的峰值信噪比。Huang等[18]提出了具有圖像自相似的單幅圖像超分辨率方法(single image Super-Resolution from transformed Self-Exemplars,SelfExSR)模型,針對紋理自相似的圖像具有更好的還原效果。近年來,許多基于深度神經(jīng)網(wǎng)絡(luò)的單幅圖像超分辨率重建模型被提出進(jìn)一步提高了重建性能。Dong等[19]提出了基于卷積神經(jīng)網(wǎng)絡(luò)的超分辨率方法(Super-Resolution Convolutional Neural Network,SRCNN),SRCNN是深度學(xué)習(xí)在圖像超分辨率重建上的開山之作,對于一個低分辨率的圖像,SRCNN首先采用雙三次插值(bicubic)將低分辨率圖像放大成目標(biāo)尺寸,接著通過三層卷積網(wǎng)絡(luò)擬合非線性映射,最后輸出高分辨率圖像結(jié)果。后來,文獻(xiàn)[20-21]提出用于稀疏先驗的圖像超分辨率的深層網(wǎng)絡(luò)(Deep networks for image superresolution with sparse prior,CSCN),且具有更高的重建性能。Shi等[22]通過高效的亞像素卷積神經(jīng)網(wǎng)絡(luò)實現(xiàn)了實時圖像和視頻超分辨率重建,該方法在低分辨率空間中提取特征圖,同時引入了一個有效的子像素卷積層,該層學(xué)習(xí)了一個升序濾波器陣列,將最終的低分辨率特征圖升級到高分辨率輸出,這樣可以有效更換超分辨率通道中的雙三次插值濾波器,并為每個特征圖進(jìn)行專門訓(xùn)練以獲得更復(fù)雜的升頻濾波器,同時還降低了整個超分辨率操作的計算復(fù)雜度。Lai等[23]提出了一個基于拉普拉斯金字塔網(wǎng)絡(luò)的圖像超分辨率重建模型(Laplacian Pyramid Super Resolution Network,LapSRN),該模型的每一級的金字塔都以粗糙分辨率的特征圖為輸入,用解卷積來升采樣得到更精細(xì)的特征圖,此外該模型可以通過一次正向計算實現(xiàn)多尺度的超分辨率重建。后來,Ren等[24]提出了一種具有k-均值和卷積神經(jīng)網(wǎng)絡(luò)的單幅圖像超分辨率重建方法,該方法不僅利用卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)能力,而且使它們適應(yīng)于描繪紋理多樣性以實現(xiàn)超分辨率重建。Tai等[25]提出了利用局部殘差學(xué)習(xí)和全局殘差學(xué)習(xí)的通過深度遞歸殘差網(wǎng)絡(luò)實現(xiàn)圖像的超分辨率方法(Image Super-Resolution via Deep Recursive Residual Network,DRRN),該模型中的每個殘差單元都共同擁有一個相同的輸入,該模型中的每個殘差單元都包含2個卷積層,在DRRN中的每一個遞歸塊內(nèi),殘差單元內(nèi)對應(yīng)位置相同的卷積層參數(shù)都共享。Tong等[26]也利用密集連接建立了一個超分辨率重建網(wǎng)絡(luò),該模型引入了一個由遞歸單元和門單元組成的存儲塊,通過自適應(yīng)學(xué)習(xí)過程準(zhǔn)確地挖掘持久性存儲器。遞歸單元在不同的接收域下學(xué)習(xí)當(dāng)前狀態(tài)的多級表示,該模型在各層之間密集地連接特征圖,并取得了很高的性能。
本文提出了一個具有自動殘差縮放功能的輕量級網(wǎng)絡(luò)(light-weight Network with Automatic Residual Scaling,ARSN),并與加速超分辨率卷積神經(jīng)網(wǎng)絡(luò)(Fast Super-Resolution Convolutional Neural Network,F(xiàn)SRCNN)[27]、使用超深度卷積網(wǎng)絡(luò)的精確圖像超分辨率方法(accurate image Super-Resolution using Very Deep convolutional network,VDSR)[28]、用于圖像超分辨率的深度遞歸卷積網(wǎng)絡(luò)方法(Deeply-Recursive Convolutional Network for image super-resolution,DRCN)[29]、用于圖像還原的持久性存儲網(wǎng)絡(luò)(persistent Memory Network for image restoration,MemNet)[30]等網(wǎng)絡(luò)比較了網(wǎng)絡(luò)輸入、層數(shù)、是否使用殘差學(xué)習(xí)等參數(shù)。如表1所示,這些方法的網(wǎng)絡(luò)層數(shù)趨于越來越深,而本文方法網(wǎng)絡(luò)權(quán)重相對較輕,層數(shù)少得多。同時,本文方法可以直接輸入低分辨率圖像而無需進(jìn)行雙三次插值,這可以減少額外的計算。
表1 先進(jìn)方法概述Tab.1 Overview of state-of-the-art methods
ARSN的基本結(jié)構(gòu)如圖1所示,該模型包含幾個用于特征提取的特殊殘差塊,殘差塊的數(shù)量可以根據(jù)實際情況增加或減少,所有殘差塊的輸出通過跳躍連接在級聯(lián)層中連接,然后使用重建網(wǎng)絡(luò)來重建出高分辨率圖像。
圖1 ARSN的結(jié)構(gòu)Fig.1 Structure of ARSN
如圖2所示,每個殘差塊包含兩個卷積層,每個卷積層包含64個具有3×3內(nèi)核大小的卷積核,以保持輸出特征圖的比例。
圖2 特定殘差塊的結(jié)構(gòu)Fig.2 Structure of a specified residual block
殘差塊中的第一卷積層通過參數(shù)整流線性單元(Parametric ReLU,PReLU)[31]激活函數(shù)。PReLU的公式如下所示:
pi用式(2)進(jìn)行權(quán)重更新,其中μ是動量,?是迭代的學(xué)習(xí)率,而ε是損失函數(shù)。
與標(biāo)準(zhǔn)殘差網(wǎng)絡(luò)和SrResNet中的殘差塊不同,本文提出的模型中的殘差塊會刪除無用的批標(biāo)準(zhǔn)化層。Szegedy等[32]發(fā)現(xiàn)添加特征圖將使模型的訓(xùn)練變得不穩(wěn)定。因此,按照Szegedy等[32]和Lim等[33]的方法,本文提出的模型在殘差塊的第二個卷積層之后添加殘差門控。
根據(jù)最新流行病學(xué)資料顯示[7-8],全球糖尿病患者人數(shù)在3.8億左右,是目前最為嚴(yán)重的代謝性疾病之一,嚴(yán)重影響患者的生活質(zhì)量和生活健康。糖尿病患者往往存在多飲、多食、多尿以及身體消瘦等臨床癥狀,對糖尿病患者進(jìn)行中醫(yī)護(hù)理具有重要意義。中醫(yī)認(rèn)為人體是一個有機的整體,強調(diào)人與自然、環(huán)境的相互統(tǒng)一,中醫(yī)學(xué)中,糖尿?。ㄏ剩┎C是陰津虧損、稟賦不足以及燥熱偏盛等,所以強調(diào)在疾病的治療和康復(fù)中保證患者的生活護(hù)理質(zhì)量,從整體的角度出發(fā)。其次,中醫(yī)特色護(hù)理具有個性化特征,針對不同個體患者和患者疾病的不同階段[9],在中醫(yī)辨證的基礎(chǔ)上進(jìn)行個體化指導(dǎo),能夠讓治療具有針對性,促進(jìn)患者的康復(fù)。
如圖3所示,本實驗研究了殘差塊的4種不同結(jié)構(gòu)。
圖3 不同殘差塊的結(jié)構(gòu)Fig.3 Structure of different residual blocks
本文提出模型中的殘差塊可以表示為式(3):
其中:xi是一個殘差塊的輸入;xi+1是輸出;G表示殘差縮放門;W1、W2是每個卷積層的權(quán)重;δ表示PReLU激活函數(shù)。
本文在重建網(wǎng)絡(luò)中利用了全局殘差學(xué)習(xí),這可能會導(dǎo)致網(wǎng)絡(luò)的主要分支學(xué)習(xí)或預(yù)測圖像的細(xì)節(jié)。ARSN還使用了亞像素重組(subpixel shuffle)來放大低分辨率圖像,實驗發(fā)現(xiàn)與簡單的反卷積層或雙三次插值相比,全局殘差可以更快地收斂并產(chǎn)生更好的質(zhì)量。主要的重建過程如圖4所示。
圖4 重建網(wǎng)絡(luò)的結(jié)構(gòu)Fig.4 Structureof reconstruction network
實驗還使用稱為多重監(jiān)督的重建網(wǎng)絡(luò)監(jiān)督ARSN的每個輸出。通過最小化模塊的平均L1損失來訓(xùn)練模型,可以在式(4)中看到:
其中:L表示總損失函數(shù);N表示自動殘差縮放塊的數(shù)量;yH和yL表示高分辨率標(biāo)簽圖像和低分辨率輸入圖像;M代表本文提出的神經(jīng)網(wǎng)絡(luò)從低分辨率到高分辨率的映射;θ代表要優(yōu)化的網(wǎng)絡(luò)參數(shù)。
在實驗中,DIV2K數(shù)據(jù)集用于訓(xùn)練模型。將訓(xùn)練圖像隨機旋轉(zhuǎn)或翻轉(zhuǎn)作為數(shù)據(jù)增強。所有RGB圖像都被轉(zhuǎn)換到Y(jié)CbCr色彩空間,在訓(xùn)練期間僅使用其Y通道。另外,還使用BSD100[34]、Set5[35]、Set14[36]和 Urban100[18]作為測試集來評估模型的性能。
實驗硬件配置:CPU為Xeon 48 Cores,GPU為NVIDIA Tesla P40,256 GB內(nèi)存。軟件環(huán)境:Ubuntu16.10,CUDA8.0/CUDNN5.1,PyTorch 0.2。本文模型使用PyTorch作為框架來構(gòu)建超分辨率模型,并使用并行計算機架構(gòu)(Compute Unified Device Architecture,CUDA)來加快訓(xùn)練速度。將初始學(xué)習(xí)率設(shè)置為0.000 1,并且在60個epoch后會降低。實驗還使用Adam優(yōu)化器來最小化損失函數(shù),并訓(xùn)練了120個epoch。初始?xì)埐畋壤蜃釉O(shè)置為0.25,并將在訓(xùn)練模型時自動更新。動量設(shè)為0.9,權(quán)重衰減設(shè)為0.001。將256張圖像設(shè)置為mini batch,以供輸入模型。
使用8位圖像,因此n值為8,此外,均方誤差(Mean Squared Error,MSE)可以用式(6)表示:
本文僅使用YCbCr圖像的Y通道,對于單通道輸入,公式中的W和H表示輸入圖像的寬度和高度,X和Y表示原始圖像和生成圖像。
表 2和表 3顯示了 Set5、Set14、BSD100和 Urban100上scale x2和scale x4超分辨率任務(wù)的方法的結(jié)果,最好的結(jié)果用加粗標(biāo)記,第二好的結(jié)果用下劃線標(biāo)記。
作為比較示例,本文從BSD100數(shù)據(jù)集中選擇了3個圖像,分別是img_052、img_039和img_084。本文將傳統(tǒng)的重建方法,包括本文將傳統(tǒng)的重建方法,包括雙三次差值、A+、SelfExSR,基于深度學(xué)習(xí)的方法,包括SRCNN、VDSR、DRCN、LapSRN與本文提出的ARSN進(jìn)行了比較,如圖5所示。
圖5 本文模型與現(xiàn)有方法的定性比較Fig.5 Qualitativecomparison between ARSNwith existingmethods
從圖5可以看出,ARSN在細(xì)節(jié)和紋理上都有較好的表現(xiàn):圖5(a)只有ARSN可以正確重建斑馬線上的紋理,而其他對比方法則會使線條模糊;圖5(b)顯示本文方法在重建一些難以恢復(fù)的密集紋理時具有較少的錯誤;圖5(c)的結(jié)果表明,與現(xiàn)有方法相比,本文方法在重建圖像細(xì)節(jié)上的性能更加優(yōu)異。
表2 數(shù)據(jù)集Set5、Set14、BSD100和Urban100上的scale x2的PSNR和SSIMTab.2 PSNRand SSIMof scalex2 on Set5,Set14,BSD100 and Urban100 datasets
表3 數(shù)據(jù)集Set5、Set14、BSD100和Urban100上的scalex4的PSNR和SSIMTab.3 PSNRand SSIMof scalex4 on Set5,Set14,BSD100 and Urban100 datasets
模型參數(shù)的數(shù)量會影響模型的速度和硬件占用率,而較少的參數(shù)可以有效地減少計算量。圖6顯示了本文提出的ARSN與其他先進(jìn)模型參數(shù)的比較以及在Set14測試集上的圖像重建性能的比較。
圖6 不同模型參數(shù)數(shù)量和PSNR值比較Fig.6 Comparison of thenumber of model parametersand PSNR valuesof different methods
圖6包括與DRRN、LapSRN、帶有跳躍連接且可以快速而準(zhǔn)確的實現(xiàn)圖像超分辨率方法(Fast and Accurate Image Super Resolution by Deep CNN with Skip Connection and Network in Network,DCSCN)[37]、VDSR、DRCN、MemNet和使用具有對稱跳躍連接的非常深的卷積編碼器/解碼器網(wǎng)絡(luò)進(jìn)行圖像恢復(fù)的方法(image restoration using very deep convolutional encoderdecoder networks with symmetric skip connections,RED30)[38]等網(wǎng)絡(luò)模型,可以看出ARSN在Set14測試集上具有更高的PSNR值,并且模型的參數(shù)也較少。
在ARSN模型中,每個殘差塊包含兩個卷積層,殘差塊的數(shù)量控制模型的深度。隨著殘差塊數(shù)的變化,模型的性能將在一定程度上變化,但是,殘差塊數(shù)量的增加將大大增加模型中參數(shù)的數(shù)量,過多的殘差塊會降低模型的速度。因此,為了使模型具有較高的性能和速度,找到合適數(shù)量的殘差塊是非常重要的。實驗在NVIDIA Tesla P40顯卡上進(jìn)行測試,測試了不同數(shù)量的殘差塊的時間和內(nèi)存消耗,結(jié)果顯示見表4。本文使用BSD100測試集測量內(nèi)存消耗和運行時間,該測試集包含100張分辨率為480×320的圖像。此外,本文使用Python中的時間庫來計算這些圖像之間的平均運行時間。
從表4中可以看出,隨著殘差塊數(shù)的增加,模型的性能會更好,但是當(dāng)殘差塊數(shù)的數(shù)量超過7時,模型的性能幾乎沒有提升而內(nèi)存消耗和運行時間卻增加了很多,所以,從實際的角度來看,為了確保模型的實時速度和低內(nèi)存占用率,應(yīng)將殘差 塊的數(shù)量控制在7個以下。
表4 不同數(shù)量的殘差塊的性能比較Tab.4 Performancecomparison of different number of residual blocks
每個卷積層中的濾波器數(shù)量會影響模型的性能和參數(shù)數(shù)量。數(shù)量太少會導(dǎo)致性能不佳,但是,如果數(shù)量太大,模型的訓(xùn)練將變得不穩(wěn)定,模型的速度將大大降低,因此有必要找到合適數(shù)量的濾波器。表5中顯示了模型性能與每個卷積層中濾波器數(shù)量之間的關(guān)系。本節(jié)以和第3.1節(jié)中相同的方式測量GPU內(nèi)存消耗和運行時間。
從表5中可以看出,當(dāng)濾波器的數(shù)量超過64時,模型的性能會下降,但GPU內(nèi)存消耗和運行時間卻會增加很多。這是由于當(dāng)濾波器數(shù)量過大時,模型中的參數(shù)數(shù)量很大,模型的訓(xùn)練將會變得非常困難,往往會出現(xiàn)過擬合,模型的性能也會降低,所以選擇合適的濾波器數(shù)量是非常重要的。
表5 每層中不同數(shù)量濾波器的性能比較Tab.5 Performancecomparison of different number of filtersin each layer
本節(jié)研究殘差塊中卷積層之間的激活函數(shù)。實驗用7個殘差塊固定模型,并將模型性能與Sigmoid、ReLU、PReLU和Swish[39]進(jìn)行比較,實驗結(jié)果見表6。
表6 不同激活函數(shù)的模型性能表現(xiàn)Tab.6 Performanceof models with different activation functions
如表6所示,根據(jù)PSNR,ReLU和PReLU在Set5中獲得了相似的結(jié)果,但是PReLU在Set14和BSD100中更好。Sigmoid的成績最差,僅在Set5中得分37.27。事實證明,Swish在其他任務(wù)(如圖像分類)中具有更好的性能,而實驗發(fā)現(xiàn)這種方法不適用于超分辨率重建任務(wù)。
本節(jié)主要研究殘差縮放如何影響最終模型的性能。從3.1節(jié)的實驗中可以得出,當(dāng)殘差塊數(shù)量為7時,模型的性能最好,所以在本節(jié)研究殘差縮放如何影響最終模型的性能的實驗中,用7個殘差塊固定了模型,并比較了有0.5縮放因子的固定縮放(Fixed parameter)、自動殘差縮放(Automatic scaling)以及空間參數(shù)縮放(Spatial parametric scaling)等三種縮放對最終模型的性能影響,其中沒有使用縮放的模型(Original residual)用來作實驗對比。
從表7的實驗結(jié)果得出使用了縮放的模型在SSIM中獲得了相似的分?jǐn)?shù),而自動縮放在PSNR的3個測試集中獲得了第一名,然后是固定因子縮放和空間參數(shù)縮放,而沒有使用縮放的模型的實驗結(jié)果是最差的。
表7 不同殘差縮放的模型性能表現(xiàn)Tab.7 Performanceof modelswith different residual scalings
本文提出了一種具有自動殘差縮放而且可用于單幅圖像的超分辨率重建的輕量網(wǎng)絡(luò)。與其他對比模型相比,本文提出的模型大幅減少了參數(shù)數(shù)量,并具有實時重建圖像的能力。本文提出的模型已經(jīng)在許多標(biāo)準(zhǔn)測試數(shù)據(jù)集上進(jìn)行了測試,其性能達(dá)到了很高的水平。與之前提出的加深的超分辨率卷積神經(jīng)網(wǎng)絡(luò)模型相比,該模型具有更好的性能以及更高的實時處理能力;此外,該方法大幅減少了模型參數(shù)和計算量。因此,該模型具有較高的實用性。將來,它可以在諸如智能電話和物聯(lián)網(wǎng)監(jiān)視系統(tǒng)的終端設(shè)備中使用,改善其成像性能。