祝旭陽(yáng),于俊洋,郝艷艷
1(河南大學(xué) 軟件學(xué)院,開(kāi)封 475004)
2(河南工業(yè)貿(mào)易職業(yè)學(xué)院 信息工程學(xué)院,鄭州 451191)
超分辨率重建(super-resolution,SR)技術(shù)旨在通過(guò)特定的約束函數(shù)把低分辨率圖像重建為高分辨率圖像. 由于圖像生成容易受到設(shè)備,天氣,光照和環(huán)境等因素的干擾只能獲得低分辨率圖像,然而高分辨率圖像往往含有更豐富的信息,具有極大價(jià)值. 提高圖像分辨率的最直接手段就是改善成像設(shè)備,但是這種方式會(huì)加重個(gè)人和中小企業(yè)的成本負(fù)擔(dān). 而圖像超分辨率重建技術(shù)是通過(guò)編程算法對(duì)低分辨率圖像進(jìn)行處理得到高分辨率圖像,這種方法成本極低,因此圖像超分辨率技術(shù)被廣泛應(yīng)用于智能監(jiān)控、國(guó)防軍事、醫(yī)學(xué)圖像和遙感衛(wèi)星等領(lǐng)域中.
圖像超分辨率重建技術(shù)方法大致可以分為3 類(lèi):基于插值[1],基于重建[2]和基于學(xué)習(xí)[3]. 基于插值的方法通過(guò)子像素和周?chē)袼氐目臻g位置關(guān)系利用數(shù)學(xué)公式推導(dǎo)插入新像素點(diǎn),基于插值的方法有最近鄰插值,雙線(xiàn)性插值和雙三次插值(bicubic),這種插值方法實(shí)現(xiàn)簡(jiǎn)單快捷. 基于重建的方法是對(duì)圖像的整體信息通過(guò)數(shù)學(xué)方式進(jìn)行結(jié)合然后重建出高分辨率圖像,常用的方法有迭代反投影法(IBP)[4],凸集投影法(POCS)[5]和最大后驗(yàn)概率估計(jì)法(MAP)[6]. 基于學(xué)習(xí)[7–9]的圖像超分辨率重建方法通過(guò)學(xué)習(xí)低分辨率圖像和高分辨率圖像之間的映射關(guān)系,得到大量先驗(yàn)知識(shí)來(lái)指導(dǎo)圖像重建. 上述都屬于基于傳統(tǒng)方法,算法簡(jiǎn)單,處理速度快,但是存在著邊緣紋理模糊,圖像效果不好的問(wèn)題.
近年來(lái),通過(guò)結(jié)合卷積神經(jīng)網(wǎng)絡(luò),學(xué)習(xí)低分辨率圖像和高分辨率圖像之間的復(fù)雜關(guān)系,達(dá)到了更好的重建效果. Dong 等人[10]提出了深度卷積網(wǎng)絡(luò)的圖像超分辨率(super-resolution convolutional neural network,SRCNN)重建模型,結(jié)合卷積神經(jīng)網(wǎng)絡(luò)通過(guò)端到端的訓(xùn)練方式,大大提高了重建圖像質(zhì)量,但是由于SRCNN在網(wǎng)絡(luò)模型中使用雙三次插值的方法實(shí)現(xiàn)對(duì)圖像的放大操作,會(huì)破壞圖像原有的細(xì)節(jié)信息,導(dǎo)致重建效果還不夠理想. 因此在SRCNN 的基礎(chǔ)上,Dong 等人[11]提出了加速圖像超分辨率重建的卷積神經(jīng)網(wǎng)絡(luò)(fast superresolution convolutional neural networks,FSRCNN)模型,在網(wǎng)絡(luò)層最后引入反卷積層代替雙三次插值對(duì)輸入圖像進(jìn)行尺寸放大,并且使用更小的卷積核和更多的卷積層達(dá)到加快模型速度的目的. Shi 等人[12]提出了一種基于亞像素卷積網(wǎng)絡(luò)的ESPCN,將亞像素卷積引入到圖像上采樣工作中,提高了圖像重建效果.
本文針對(duì)FSRCNN 模型中存在的圖像特征信息提取不充分和反卷積上采樣帶來(lái)的人工冗余信息問(wèn)題,提出了一種多尺度融合卷積神經(jīng)網(wǎng)絡(luò),首先在淺層特征提取階段設(shè)計(jì)了一種多尺度融合通道,增強(qiáng)對(duì)圖像中的高頻有用信息特征的提取能力; 其次在圖像重建部分使用亞像素卷積代替反卷積層進(jìn)行上采樣,避免反卷積層的人工冗余信息引入. 實(shí)驗(yàn)結(jié)果表明,與FSRCNN 模型相比,在Set5 和Set14 數(shù)據(jù)集中,2 倍放大因子下的PSNR值和SSIM值平均提高了0.14 dB、0.001 0,在3 倍放大因子下平均提高0.48 dB、0.009 1.
圖1 為FSRCNN 的網(wǎng)絡(luò)結(jié)構(gòu),其中,Conv(x,y,z)中,x代表卷積核大小,y代表卷積層輸出通道,z代表卷積層輸入通道. 分為5 層: 第1 層對(duì)低分辨率圖像進(jìn)行特征提取,卷積核大小是5,輸入通道為1,輸出通道是56. 第2 層是縮減層,減少模型的參數(shù)量,提高算法速度. 第3 層是學(xué)習(xí)映射層,對(duì)圖像信息進(jìn)行非線(xiàn)性學(xué)習(xí). 第4 層是擴(kuò)大層,增加圖像特征圖數(shù)量. 第5 層是反卷積層,對(duì)圖像上采樣得到重建圖像.
圖1 FSRCNN 的網(wǎng)絡(luò)結(jié)構(gòu)
子像素卷積又稱(chēng)像素重排序(pixel shuffle),像素重排是將不同通道的特征圖排序到同一個(gè)通道上,以此達(dá)到對(duì)圖像的像素增多的目的. 如圖2 為子像素卷積對(duì)圖像重建過(guò)程,假設(shè)低分辨率圖像大小為3×3 大小,若想得到一個(gè)9×9 大小的圖像,即需要對(duì)原本的圖像放大3 倍,首先使用1×1 大小的卷積核對(duì)原低分辨率圖像進(jìn)行卷積操作,生成 32=9 個(gè)3×3 大小的特征圖,然后將這9 個(gè)相同尺寸特征圖進(jìn)行像素的重新排列,拼成一個(gè)放大3 倍的高分辨率圖像.
圖2 子像素卷積
如圖3 所示為本文網(wǎng)絡(luò)結(jié)構(gòu),分為5 層: 第1 層為本文算法設(shè)計(jì)的一種多尺度特征融合提取通道,引用不同大小尺寸的卷積核對(duì)低像素圖像進(jìn)行特征提取,提高對(duì)圖像中不同尺度的高頻有用信息的提取能力.第5 層為子像素卷積重建層,引入了子像素卷積的方法對(duì)圖像進(jìn)行重建,抑制反卷積層帶來(lái)的人工信息冗余問(wèn)題,提高圖像的重建質(zhì)量.
圖3 本文結(jié)構(gòu)
為實(shí)現(xiàn)圖像超分辨率重建,需要對(duì)算法卷積神經(jīng)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練. 如圖4 所示,訓(xùn)練過(guò)程首先將高分辨率圖像下采樣得到低分辨率圖像,將高分辨率圖像和低分辨率圖像分別切割,獲得若干成對(duì)對(duì)應(yīng)訓(xùn)練樣本,將高分辨率圖像和低分辨率圖像成對(duì)輸入卷積神經(jīng)網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,通過(guò)損失函數(shù)指導(dǎo)卷積神經(jīng)網(wǎng)絡(luò)更新權(quán)重,經(jīng)過(guò)多輪迭代,最終得到圖像超分辨率重建模型. 在測(cè)試階段,將低分辨率圖像送入訓(xùn)練完成的模型,即可重建出高分辨率圖像.
圖4 模型構(gòu)建和訓(xùn)練過(guò)程
綜上,本文在FSRCNN 模型的基礎(chǔ)上設(shè)計(jì)了一種了多分支融合特征提取通道,提高算法對(duì)圖像有用信息的提取能力; 在圖像重建部分,使用子像素卷積代替反卷積,實(shí)現(xiàn)對(duì)圖像的重建,抑制人工冗余信息的引入.
在FSRCNN 模型使用了一層56 個(gè)5×5 大小卷積核的卷積層進(jìn)行特征提取工作,本文設(shè)計(jì)了一種多尺度融合特征提取通道,結(jié)合跳躍連接和特征融合操作,使用3 個(gè)不同大小的卷積核分別對(duì)輸入圖像進(jìn)行特征提取. 針對(duì)圖像的易模糊邊緣輪廓和細(xì)節(jié)特征的提取難度問(wèn)題,如圖5 所示為多尺度特征提取通道的結(jié)構(gòu)圖. 第一個(gè)通道為56 個(gè)1×1 大小的卷積核,獲得圖像的細(xì)節(jié)特征,具體實(shí)現(xiàn)公式為:
圖5 多尺度特征提取通道結(jié)構(gòu)
其中,F11(Y)表示第一通道卷積層輸出的特征圖,W11表示第一通道卷積層的權(quán)重,B11表示偏置項(xiàng).
第2 通道和第3 通道分別為28 個(gè)3×3 和5×5 大小卷積核進(jìn)行特征提取并拼接到一起,第2 通道的具體實(shí)現(xiàn)公式為:
其中,F12(Y)表示第2 通道卷積層輸出的特征圖,W12表示第2 通道卷積層的權(quán)重,B12表示偏置項(xiàng). 第3 通道的具體實(shí)現(xiàn)公式為:
其中,F13(Y)表示第3 通道卷積層輸出的特征圖,W13表示第3 通道卷積層的權(quán)重,B13表示偏置項(xiàng).
由于第2 通道和第3 通道分別采用了3×3 和5×5 的卷積核進(jìn)行特征提取,不同尺寸的卷積核可以獲得不同尺度的特征信息,通過(guò)Contact 操作將不同的特征信息進(jìn)行拼接,具體實(shí)現(xiàn)公式為:
之后將不同尺度的特征信息通過(guò)長(zhǎng)跳躍連接(LSC)操作進(jìn)行特征融合從而保證圖像信息的流通性和完整性. 具體實(shí)現(xiàn)公式為:
其中,F1(Y)表示特征融合后得到的特征圖,W14表示特征融合層的權(quán)重,B1表示該層的偏置項(xiàng). 相比FSRCNN 模型[11]僅有一個(gè)5×5 大小的卷積核作為特征提取通道,多尺度特征融合特征提取通道對(duì)圖像的不同尺度的信息提取更充分,加強(qiáng)了算法網(wǎng)絡(luò)模型的特征提取能力.
在算法的圖像重建部分,反卷積操作實(shí)現(xiàn)了對(duì)圖像的放大,在重建過(guò)程中使用反卷積填充圖像內(nèi)容,使得圖像內(nèi)容變得豐富,然而反卷積存在過(guò)多人工冗余信息引入的問(wèn)題,為了解決這個(gè)問(wèn)題,我們?cè)趫D像重建部分引用子像素卷積替代反卷積實(shí)現(xiàn)對(duì)圖像的上采樣過(guò)程.
如圖6 所示,首先使用1×1 的卷積對(duì)擴(kuò)大圖像輸入通道,然后通過(guò)像素重排擴(kuò)大圖像的分辨率. 若子像素卷積重建之前有r×r個(gè)通道特征圖,則通過(guò)使用子像素卷積重建會(huì)將r×r個(gè)特征圖通過(guò)特定的排序規(guī)則重新生成一副w×r,h×r的圖像.
圖6 上采樣路徑示意圖
本文算法采用MSE損失函數(shù),即均方損失函數(shù).經(jīng)過(guò)超分辨率重建神經(jīng)網(wǎng)絡(luò)重建得到的圖像f(xi)和真值圖像yi,通過(guò)對(duì)網(wǎng)絡(luò)模型進(jìn)行訓(xùn)練使損失函數(shù)的值減小從而指導(dǎo)低像素圖像重建出更好效果的高分辨率圖像.MSE損失函數(shù)如式(6)所示:
使用的激活函數(shù)為PReLU[13],即帶參數(shù)的ReLU函數(shù),避免ReLU 函數(shù)中零梯度壞死特性,并且還可以實(shí)現(xiàn)更高的準(zhǔn)確率,PReLU 激活函數(shù)表達(dá)式如式(7):
其中,Yi是第i通道的輸出,λ為PReLU 的參數(shù),且會(huì)隨著訓(xùn)練次數(shù)的增加而不斷更新.
如圖7,圖8 所示為本文算法訓(xùn)練階段的損失函數(shù)收斂曲線(xiàn)圖. 放大因子為×2 時(shí),在迭代到17 時(shí),損失函數(shù)收斂. 當(dāng)放大因子為×3 時(shí),訓(xùn)練迭代到18 代時(shí),損失函數(shù)收斂.
圖7 放大因子為×2 時(shí)損失函數(shù)收斂圖
圖8 放大因子為×3 時(shí)損失函數(shù)收斂圖
實(shí)驗(yàn)用91-image 數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練,首先對(duì)輸入的圖片進(jìn)行數(shù)據(jù)增強(qiáng),將圖像旋轉(zhuǎn)90°、180°、270°,并縮小0.9、0.8、0.7、0.6 倍,實(shí)現(xiàn)對(duì)數(shù)據(jù)集擴(kuò)充的目的.
測(cè)試集: 選用Set5[14]和Set14[15]公開(kāi)數(shù)據(jù)集作為測(cè)試集進(jìn)行效果度量.
本文算法采用Adam (Adam optimization algorithm)來(lái)優(yōu)化損失函數(shù),學(xué)習(xí)率設(shè)置為0.000 1,訓(xùn)練的批處理大小為16,訓(xùn)練迭代次數(shù)設(shè)置為20 次. 深度學(xué)習(xí)框架為PyTorch 1.2,實(shí)驗(yàn)的操作系統(tǒng)是Ubuntu 16.04,服務(wù)器是內(nèi)存8 GB 的Tesla P4.
本文采用峰值信噪比(PSNR)[16]和結(jié)構(gòu)相似度(SSIM)[17]作為重建效果的評(píng)價(jià)指標(biāo),PSNR值越大證明重建圖像比真值圖像失真越少.PSNR的公式如式(9):
其中,MSE表示均方誤差,H和W分別表示圖像的長(zhǎng)度和寬度,X(i,j)表示真值圖像,Y(i,j)表示重建后的圖像.峰值信噪比的單位為dB,值越大表示重建效果越好.
SSIM也常用來(lái)評(píng)價(jià)圖像重建效果,SSIM用來(lái)評(píng)價(jià)重建圖像與真值圖像的結(jié)構(gòu)相似性,值越大代表相似性越高,重建效果越好.SSIM的計(jì)算公式為:
其中,μH、μL分別表示圖像H和L的均值,σH、 σL分別表示圖像H和L的標(biāo)準(zhǔn)差,σ2H、σ2L分別表示圖像H和L的方差,σHL表示圖像H和L協(xié)方差.c1,c2和c3為常數(shù).
本文在Set5 和Set14 數(shù)據(jù)集上,對(duì)比了Bicubic、SRCNN[10]、FSRCNN[11]. 由表1 和表2 可以看出,從客觀評(píng)價(jià)標(biāo)準(zhǔn)出發(fā),對(duì)比不同算法,本文算法的重建質(zhì)量?jī)?yōu)于其他幾種算法. 相較于FSRCNN 算法,在Set5 測(cè)試集上,當(dāng)放大因子為×2 和×3 時(shí),PSNR值分別提高了0.15 dB 和0.57 dB. 在Set14 測(cè)試集上分別提高了0.13 dB、0.39 dB. 在Set5 測(cè)試集上,當(dāng)放大因子為×2 和×3 時(shí),SSIM值分別提高了0.001 9 和0.010 8. 在Set14 測(cè)試集上,SSIM值分別提高了0.000 2 和0.007 5.
表1 不同重建算法的PSNR 結(jié)果(dB)
表2 不同重建算法的SSIM 結(jié)果
如圖9 和圖10 所示,圖像通過(guò)不同的超分辨率重建算法獲得了不同的效果圖,可以看到,相較于傳統(tǒng)的Bicubic 算法,SRCNN 對(duì)圖像重建質(zhì)量提升了很多,FSRCNN 改善了圖像的紋理細(xì)節(jié)并且避免了噪聲對(duì)圖像細(xì)節(jié)的影響,而本文所提出的算法較之原來(lái)的方法保留更多的圖像細(xì)節(jié)特征,這主要是得益于多尺度特征融合通道對(duì)特征提取能力的提高和子像素卷積對(duì)人工冗余信息的抑制作用.
圖9 不同算法重建結(jié)果圖對(duì)比
圖10 不同算法重建效果圖對(duì)比
本文提出了一種基于多尺度卷積神經(jīng)網(wǎng)絡(luò)的圖像超分辨率重建算法,在算法的特征提取階段,設(shè)計(jì)了多通道多尺度特征提取方法,分別使用1×1、3×3 和5×5 大小的卷積核,對(duì)圖像的不同特征運(yùn)用不同尺寸的卷積操作,并結(jié)合跳躍鏈接和特征融合操作,提高對(duì)圖像特征信息的感知能力. 在圖像重建階段,使用子像素卷積避免反卷積層引用過(guò)多的人工冗余信息,提高重建圖像的質(zhì)量. 下一步將研究在網(wǎng)絡(luò)結(jié)構(gòu)中結(jié)合圖像的全局信息和局部信息,在訓(xùn)練階段充分利用高分辨率圖像中的高頻有用信息指導(dǎo)圖像重建過(guò)程,從而提高重建圖像的質(zhì)量.