宦 海 李鵬程 朱蓉蓉 陳逸飛
(南京信息工程大學(xué)電子與信息工程學(xué)院 江蘇 南京 210044)
圖像分辨率是一種性能參數(shù),其作用主要是衡量圖像在細(xì)節(jié)表現(xiàn)方面的能力以及其蘊(yùn)含的信息量大小。圖像分辨率多種多樣,其含義也各不相同,有時(shí)間和空間分辨率等,這些分辨率都能對(duì)成像系統(tǒng)所拍出的圖像在細(xì)節(jié)信息方面是否表現(xiàn)詳細(xì)進(jìn)行一個(gè)客觀的評(píng)價(jià)。低分辨率圖像所能包含的像素密度、清晰度、紋理細(xì)節(jié)信息都遠(yuǎn)遠(yuǎn)低于高分辨率圖像。因此,高分辨率圖像所包含的信息可信賴度會(huì)更高。致使提升圖像分辨率也變得越來(lái)越重要,對(duì)拍照工具中的光學(xué)硬件進(jìn)行改進(jìn)提高,這是最直接的一種做法,但是其受限程度太大[1],比如:改進(jìn)光學(xué)硬件制造工藝的難度巨大、制造高品質(zhì)的光學(xué)硬件成本會(huì)極大地增加等。但是從軟件編程和算法的角度來(lái)說(shuō),可以投入較少的成本并提高圖像重建的效率。所以在圖像處理領(lǐng)域當(dāng)中,對(duì)算法軟件的研究成為熱點(diǎn)話題。
圖像超分辨率重建技術(shù)有兩種,一種是從眾多低分辨率圖像中提取高價(jià)值信息并相互彌補(bǔ)信息缺漏從而合成一幅高分辨率圖像;另外一種是從單幅低分辨率圖像中提取信息并經(jīng)過(guò)軟件算法把丟失的高頻信息恢復(fù)從而優(yōu)化成一幅高分辨率圖像[2]。本文主要討論第二種重建方式。
自從圖像超分辨率重構(gòu)技術(shù)被提出,便受到很多學(xué)者的關(guān)注,發(fā)展階段[3]如下: “
圖像超分辨率” 的概念是20世紀(jì)中葉被Harris等第一次提出來(lái)的。但當(dāng)時(shí)超分辨率重構(gòu)只有理論并沒有付諸實(shí)際研究;把理論付諸實(shí)踐階段進(jìn)行發(fā)展是從1984年,Tsai等運(yùn)用傅里葉變換域的方法對(duì)多幅低分辨率圖像進(jìn)行信息處理然后生成一幅具有高分辨率的圖像,這是首次把對(duì)圖像重建與軟件技術(shù)相關(guān)聯(lián)的思想付諸實(shí)踐當(dāng)中;Dong等[4]提出SRCNN(Super-resolution Convolutional Neural Network)結(jié)構(gòu),其最重大的貢獻(xiàn)是在單幅圖片超分辨率重構(gòu)領(lǐng)域引入了深度學(xué)習(xí),此創(chuàng)新使這一領(lǐng)域重新煥發(fā)新機(jī),掀起研究新浪潮;Twitter的Shi等[5]提出了一種新的網(wǎng)絡(luò)模型—ESPCN(Efficient Sub-Pixel Convolutional Neural Network),該模型最大的特點(diǎn)就是引入了亞像素卷積的概念,把像素進(jìn)行了重新排列,從而達(dá)到對(duì)原始低分辨率圖像的亞像素信息進(jìn)行填充的目的,這一創(chuàng)新點(diǎn)最大的貢獻(xiàn)在于能夠?qū)D像重構(gòu)放大倍數(shù)進(jìn)行靈活調(diào)整,這一策略具有深遠(yuǎn)意義;VDSR[6](Very Deep Super-Resolution)最大的特點(diǎn)就是層數(shù)很多并運(yùn)用了大量的殘差網(wǎng)絡(luò)結(jié)構(gòu), 使得越深的網(wǎng)絡(luò)層擁有更大的感受野,解決了之前網(wǎng)絡(luò)結(jié)構(gòu)比較深時(shí)無(wú)法訓(xùn)練的問(wèn)題; ZSSR[7](ZeroShotSR)算法是第一篇采用無(wú)監(jiān)督方式搭建的卷積神經(jīng)網(wǎng)絡(luò)超分辨率算法,能對(duì)非理想條件下的圖像進(jìn)行處理且計(jì)算量小無(wú)任何尺寸限制,可應(yīng)用到任何比例的超分辨率任務(wù);IDN[8]網(wǎng)絡(luò)每一層有相對(duì)較少的濾波器數(shù)目執(zhí)行速度快,并且使用了分組卷積等。
在深度學(xué)習(xí)領(lǐng)域中,網(wǎng)絡(luò)越深發(fā)現(xiàn)擬合能力越強(qiáng),但是當(dāng)無(wú)限制地增加網(wǎng)絡(luò)的深度的時(shí)候會(huì)出現(xiàn)梯度爆炸和過(guò)擬合的現(xiàn)象,所以ResNet[9]殘差塊(如圖1所示)就是為了解決梯度爆炸[10]并增強(qiáng)特征傳播能力而提出的一個(gè)新思路。
殘差函數(shù)的公式如下:
y=F(x,Wi)+x
(1)
式中:x代表輸入由shortcut傳入高層;y代表輸出;所學(xué)習(xí)的殘差映射用函數(shù)F(x,Wi)表示。圖1所示的ResNet殘差塊,有兩個(gè)殘差映射層,輸入x經(jīng)過(guò)第一個(gè)權(quán)重層(Weight Layer)輸出F(W1x),然后經(jīng)過(guò)激活函數(shù)ReLU作為第二個(gè)權(quán)重層的輸入,第二個(gè)權(quán)重層輸出F(W2σ(W1x)),所以此殘差塊的最終輸出為y=F(W2σ(W1x))+x,其中σ為激活函數(shù)ReLU。
因?yàn)榈谝粚訖?quán)重經(jīng)過(guò)正則化很容易使輸出變?yōu)镕(x)=0,這樣把包含兩層權(quán)重層的殘差塊放在網(wǎng)絡(luò)的中間層或靠后層,此操作對(duì)于之前輸出的結(jié)果不會(huì)造成消極的影響,而且殘差塊中的隱藏單元可學(xué)到一些有用信息,會(huì)對(duì)輸出造成積極影響,從而深層網(wǎng)絡(luò)會(huì)獲取淺層網(wǎng)絡(luò)中比較重要的信息。
空洞卷積[11]是在原卷積核中等間隔地添加0像素值,其實(shí)現(xiàn)的方式有兩種:(1) 把0像素值直接填入到卷積核當(dāng)中作為一個(gè)新的卷積核;(2) 間接在卷積核前輸入等間隔的采樣。標(biāo)準(zhǔn)卷積與空洞卷積最大的差別就是感受野的不同,但是輸出形式相同??筛爬榭斩淳矸e是等間隔添加0像素值的標(biāo)準(zhǔn)卷積,是標(biāo)準(zhǔn)卷積的特殊形式。
在視覺任務(wù)處理的過(guò)程中,多尺度的信息是非常重要的,而多尺度信息依賴于感受野的不同,之前的網(wǎng)絡(luò)比如SegNet[12]就是先卷積再池化就是為了增加感受野并減少計(jì)算量,但是這樣先縮小再擴(kuò)大的方式會(huì)使分辨率在空間上有所損失。為了滿足這個(gè)過(guò)程并保證空間分辨率沒有損失或降低損失,所以使用空洞卷積,即擴(kuò)大了感受野而且參數(shù)不額外增加。為了對(duì)多尺度上下文的信息進(jìn)行捕獲,空洞卷積中有一個(gè)參數(shù)dilation-rate,設(shè)置不同的數(shù)值可以令感受野有所不同,即在卷積核中加入(dilation-rate-1)個(gè)0,如下以標(biāo)準(zhǔn)卷積3×3的卷積核為例展示。
圖2為空洞卷積原理圖,不同的dilation-rate所對(duì)應(yīng)的空洞卷積核的感受野不同,圖2(a)為dilation-rate=1的3×3卷積核,其感受野和標(biāo)準(zhǔn)卷積一樣為3×3;圖2(b)為dilation-rate=2的3×3卷積核,其感受野為5×5;圖2(c)為dilation-rate=5的3×3卷積核,其感受野為11×11。
空洞卷積的感受野以及輸出特征圖分辨率大小的公式如下:
R=(d-1)(k-1)+k
(2)
(3)
式中:d表示空洞卷積參數(shù)dilation-rate;k表示標(biāo)準(zhǔn)卷積核的大小;R代表空洞卷積神經(jīng)網(wǎng)絡(luò)特征所能看到輸入圖像的區(qū)域即感受野;H表示經(jīng)空洞卷積輸出的特征圖分辨率;h表示輸入特征圖的分辨率;p表示邊緣填充尺寸;s為卷積操作中每次窗口移動(dòng)的像素?cái)?shù)。
空洞卷積在沒提高參數(shù)量的情況下提高了感受野,但是與此同時(shí)帶來(lái)了一個(gè)比較嚴(yán)峻的問(wèn)題:通過(guò)前面對(duì)空洞卷積原理的介紹可知,空洞卷積對(duì)輸入特征圖上的像素點(diǎn)是離散采樣的,那么這樣就可能會(huì)出現(xiàn)有的像素點(diǎn)沒有被采樣到從而導(dǎo)致部分像素點(diǎn)丟失造成權(quán)重矩陣不連續(xù)的情況,因此在無(wú)規(guī)則堆疊空洞卷積的情況下會(huì)對(duì)信息的連續(xù)性造成損失,即gridding(網(wǎng)格)效應(yīng)。為保證結(jié)構(gòu)中卷積核的連續(xù)性,避免出現(xiàn)gridding問(wèn)題,應(yīng)滿足混合空洞卷積框架設(shè)計(jì)原則(Hybrid Dilated Convolution, HDC)[13]。本文在每個(gè)空洞卷積前面加不同尺寸的標(biāo)準(zhǔn)傳統(tǒng)卷積,然后把空洞卷積的輸出送到BN(Batch Normalization)層至ReLU激活后與殘差連接相加構(gòu)成空洞卷積串聯(lián)模塊如圖3所示。
空洞卷積串聯(lián)模塊工作原理如圖4所示,深色塊表示該位置的像素值是否被空洞卷積核放入計(jì)算當(dāng)中,可以發(fā)現(xiàn)輸入的特征圖經(jīng)過(guò)dilation-rate=5、dilation-rate=2、dilation-rate=1的3×3空洞卷積后特征圖上的每一個(gè)像素點(diǎn)都被利用到了,滿足HDC原則,可以有效地糾正經(jīng)過(guò)空洞卷積權(quán)重矩陣信息不連續(xù)的缺點(diǎn),去除網(wǎng)格效應(yīng)??斩淳矸e前加標(biāo)準(zhǔn)卷積是為了提高中心采樣點(diǎn)的重要性,模仿人眼視覺皮層神經(jīng)元工作特性,改善重建圖像視覺效果。
圖5為空洞卷積并聯(lián)模塊,其過(guò)程為:輸入特征圖從多路出發(fā),經(jīng)尺寸為dilation-rate的標(biāo)準(zhǔn)傳統(tǒng)卷積核、BN層與激活層輸送到空洞率為dilation-rate的空洞卷積中,再把不同dilation-rate的空洞卷積輸出逐級(jí)疊加后經(jīng)Concat模塊與殘差連接相加。此處的疊加方法與普通空洞卷積疊加方法還是有所區(qū)別的,逐級(jí)疊加的設(shè)計(jì)和在每個(gè)空洞卷積的前一層加上與dilation-rate大小相同的標(biāo)準(zhǔn)傳統(tǒng)卷積的設(shè)計(jì),一方面是為了使不同感受野相融合來(lái)捕捉多尺度信息,另一方面同空洞卷積串聯(lián)模塊相似也是為了提高采樣中心點(diǎn)的重要性,模仿人眼視覺皮層神經(jīng)元工作特性,改善重建圖像的視覺效果。
圖6所示為本文網(wǎng)絡(luò)的主體結(jié)構(gòu),由圖3空洞卷積串聯(lián)模塊和圖5空洞卷積并聯(lián)模塊以及結(jié)合殘差思想構(gòu)成的空洞卷積混聯(lián)模塊(DCM模塊)。首先利用空洞卷積并聯(lián)模塊把不同dilation-rate空洞卷積的輸出逐層相加,其作用就是把不同的感受野相疊加捕捉多尺度信息,并利用多尺寸標(biāo)準(zhǔn)卷積提高重建視覺效果;然后利用空洞卷積串聯(lián)模塊有效地糾正經(jīng)過(guò)空洞卷積權(quán)重矩陣信息不連續(xù)的缺點(diǎn),消除空洞卷積網(wǎng)格效應(yīng),并再次使用多尺寸標(biāo)準(zhǔn)卷積提高重建視覺效果;最后利用殘差的shortcut連接把低層的信息直接傳遞到高層,解決網(wǎng)絡(luò)退化問(wèn)題,使前后信息的傳播更加順暢。
本文模型以91幅圖像作為訓(xùn)練集,網(wǎng)絡(luò)的損失函數(shù)loss為均方誤差(Mean Square Error,MSE),優(yōu)化器選作ADAM,最開始的學(xué)習(xí)率設(shè)為1×10-5,每次輸入128幅17×17的圖像塊進(jìn)行訓(xùn)練。訓(xùn)練實(shí)驗(yàn)中使用的服務(wù)器為taitanX,編程語(yǔ)言用的是Python3.6版本,框架是TensorFlow1.14.0版本,以Set5、Set14、BSD500數(shù)據(jù)集作為驗(yàn)證集。
本文用了兩種方式對(duì)構(gòu)建的超分辨重建模型進(jìn)行評(píng)估,并對(duì)這兩種評(píng)價(jià)標(biāo)準(zhǔn)的優(yōu)缺點(diǎn)進(jìn)行細(xì)致的介紹。第一種為PSNR[14]( Peak Signal to Noise Ratio),峰值信噪比,是最為常用的評(píng)價(jià)標(biāo)準(zhǔn);第二種是SSIM(Structural Similarity) ,結(jié)構(gòu)相似,其與人類視覺評(píng)判最為接近。
峰值信噪比PSNR對(duì)單幅超分辨率重建后的圖像的評(píng)價(jià)是使用比較廣泛和常見的,以MSE為損失函數(shù),MSE是原始圖像和解碼后圖像之間差異的度量, 即原始圖像和解碼后圖像的均方誤差。PSNR與損失函數(shù)MSE緊緊掛鉤,所以訓(xùn)練的時(shí)候就可以大致地評(píng)價(jià)出模型的好壞,其公式為:
(4)
(5)
式中:MAXI表示圖像顏色的最大數(shù)值;I表示無(wú)壓縮無(wú)失真的原始圖像和;K表示經(jīng)過(guò)重建模型得到的高清圖像,兩幅圖像的大小皆為H×W的單色圖像。PSNR的值與重建效果成正比。
但是有時(shí)候會(huì)出現(xiàn)PSNR的值較大,其視覺效果卻很差的現(xiàn)象[15],因此引用SSIM。
結(jié)構(gòu)相似性SSIM[16]可以抵消MSE無(wú)法衡量圖像結(jié)構(gòu)相似性的缺陷,與人類視覺相似。為了得到輸入與輸出的相似性,需要輸入兩幅圖像到SSIM中,第一幅是無(wú)壓縮無(wú)失真的原始圖像X,第二幅圖像就是經(jīng)過(guò)重建模型得到的高清圖像Y。因?yàn)槿搜蹖?duì)圖像中最為敏感的部分就是結(jié)構(gòu)信息,所以為了模仿人眼判別重建圖像的質(zhì)量,可以把結(jié)構(gòu)信息作為評(píng)價(jià)標(biāo)準(zhǔn)之一。單從局部角度結(jié)構(gòu)信息S(x,y)上考慮,照明條件以及圖像對(duì)比度對(duì)于圖像的結(jié)構(gòu)信息影響甚微,所以計(jì)算結(jié)構(gòu)信息的時(shí)候,不考慮圖像亮度信息L(x,y)和對(duì)比度信息C(x,y),又因?yàn)榱炼刃畔⒂脭?shù)學(xué)方法表示為圖像所有像素點(diǎn)的均值(μi為i圖像所有像素的平均值),圖像的對(duì)比度信息用數(shù)學(xué)方法表示為圖像像素點(diǎn)的標(biāo)準(zhǔn)差(σi代表i圖像像素值的標(biāo)準(zhǔn)差),所以結(jié)構(gòu)信息S(x,y)需要去掉圖像像素點(diǎn)的平均值和歸一化像素點(diǎn)的方差,僅用像素點(diǎn)的相關(guān)系數(shù)表示即可。但是若考慮全面,從實(shí)際出發(fā),亮度和對(duì)比度對(duì)圖像質(zhì)量的好壞也會(huì)造成影響。綜上所述,判定重建圖像質(zhì)量時(shí)既要考慮結(jié)構(gòu)信息也需要考慮后兩者的影響,即結(jié)構(gòu)相似性SSIM為式(9)所示,SSIM值與重建圖像的質(zhì)量呈正相關(guān),其最大值為1。
(6)
(7)
(8)
SSIM(x,y)=[L(x,y)α]·[C(x,y)β]·[S(x,y)γ]
(9)
設(shè)定α=β=γ=1,且為了增加計(jì)算結(jié)果的穩(wěn)定性即防止分母為0,所以取c2=9、c1=2、c3=(0.03L)2,其中L為像素的最大值[17],彩色圖像設(shè)L=255,所以式(9)可以簡(jiǎn)化為:
(10)
設(shè)置卷積層數(shù)l=3,fi代表卷積核,ni代表通道數(shù),[f1=5,n1=64],[f2=3,n2=32],[f3=3,n3=c_dim×scale×scale]。c_dim表示顏色維度,本文中c_dim=3代表圖像為RGB色彩空間。Scale代表超分辨率重建圖像的擴(kuò)大因子,本文設(shè)置Scale=3,所以f3的通道數(shù)n3為c_dim×scale×scale=27。
所有的空洞卷積組合模塊在圖7網(wǎng)絡(luò)模型中有三個(gè)位置可供選擇,如圖7所示的①、②、③,下面對(duì)這三個(gè)位置進(jìn)行實(shí)驗(yàn)論證分析,對(duì)比結(jié)果選出最佳位置。因?yàn)閒1、f2、f3三個(gè)卷積核所用的padding=‘SAME’,因此經(jīng)過(guò)卷積核f1、f2、f3輸出的圖像塊大小是一致的,但是通道數(shù)卻是不一樣的,f1通道數(shù)n1是64,f2通道數(shù)n2是32,f3通道數(shù)n3是27,為了遵從常規(guī)實(shí)驗(yàn)卷積核通道數(shù)依次遞減的特點(diǎn),那么放在①處的空洞卷積通道數(shù)為64,②處的空洞卷積通道數(shù)為32,③處的空洞卷積通道數(shù)為27。因?yàn)橥ǖ罃?shù)的大小會(huì)對(duì)實(shí)驗(yàn)速度造成很大的影響,①處的空洞卷積通道數(shù)是②處的空洞卷積通道數(shù)的兩倍,所以實(shí)驗(yàn)計(jì)算速度會(huì)大打折扣,因此在比較①和②兩個(gè)位置時(shí),排除①選擇②。
②處的空洞卷積通道數(shù)與③處的空洞卷積通道數(shù)相差僅為5,速度相差不會(huì)太大,因此,實(shí)驗(yàn)主要對(duì)比這兩位置對(duì)圖像重建效果質(zhì)量的影響,為了研究不同結(jié)構(gòu)對(duì)圖像重建效果的影響,大膽假設(shè)所有的空洞卷積組合模塊分別在圖7的②與③位置的六種結(jié)構(gòu),并將所有結(jié)構(gòu)繪制如圖8所示。結(jié)構(gòu)一與結(jié)構(gòu)四是加入空洞卷積串聯(lián)模塊,結(jié)構(gòu)二與結(jié)構(gòu)五是加入空洞卷積并聯(lián)模塊,結(jié)構(gòu)三與結(jié)構(gòu)六是加入空洞卷積混聯(lián)模塊,每組內(nèi)部差別在于模塊放置的位置不同,在放大比例為3時(shí),比較各結(jié)構(gòu)的圖像重建效果。
從表1中可知,結(jié)構(gòu)六的圖像重建質(zhì)量與其他五個(gè)結(jié)構(gòu)相比,在Set14和BSD100數(shù)據(jù)集上效果最好。在數(shù)據(jù)集Set5上結(jié)構(gòu)三模型的圖像重建質(zhì)量最好,但是結(jié)構(gòu)三與結(jié)構(gòu)六模型重建效果相差較小。又因?yàn)榻Y(jié)構(gòu)六模型的空洞卷積通道數(shù)27要小于結(jié)構(gòu)三模型的空洞卷積通道數(shù)32,所以在綜合考慮運(yùn)行速度之后最終選擇結(jié)構(gòu)六模型作為最佳高效圖像超分辨率重建模型,如圖9所示。
表1 所有結(jié)構(gòu)重建效果對(duì)比結(jié)果
為了說(shuō)明本文提出的圖9模型對(duì)于圖像超分辨率重建的效果有積極的作用,模型在放大倍數(shù)為3的情況下以數(shù)據(jù)集Set5、Set14、BSD100作為驗(yàn)證,用PSNR和SSIM作為評(píng)價(jià)標(biāo)準(zhǔn),與雙3次差值 (Bicubic)、SRCNN[4]、ESPCN[5]、VDSR[6]、ZSSR[7]、IDN[8]算法進(jìn)行實(shí)驗(yàn)結(jié)果對(duì)比,如表2所示。
表2 本文算法與其他SR網(wǎng)絡(luò)在基礎(chǔ)數(shù)據(jù)集上的重建效果對(duì)比
選擇一個(gè)傳統(tǒng)超分辨率方法Bicubic和五個(gè)基于深度學(xué)習(xí)的超分辨算法與本文方法在重建效果上進(jìn)行比較,從表2可以看出在數(shù)據(jù)集Set5、Set14和BSD100上,本文設(shè)計(jì)的DCM方法在PSNR和SSIM的評(píng)價(jià)分?jǐn)?shù)上都高于其他六種算法。至于在視覺效果方面比較,本文僅選擇顯示Bicubic、SRCNN、ESPCN和基于DCM方法的超分辨率重建圖像。根據(jù)圖10、圖11、圖12分別展示的視覺效果發(fā)現(xiàn):本文的高效單幅圖像超分辨率重建模型與雙三次插值法(Bicubic)和SRCNN相比,在視覺效果上大大提高,可以看出高效重建模型重建出來(lái)的圖像在細(xì)節(jié)紋理方面處理得更為柔滑,表現(xiàn)得更為突出;與ESPCN算法相比雖然在視覺效果無(wú)法區(qū)分太明顯,但是根據(jù)表2可知PSNR和SSIM的評(píng)分?jǐn)?shù)有所提高。至于最新幾種算法在視覺效果方面與DCM方法相比,人眼無(wú)法區(qū)分其差異,此處就不再顯示視覺效果。
本文通過(guò)對(duì)引進(jìn)空洞卷積可能造成的消極影響進(jìn)行分析,并提出一種通過(guò)加入空洞卷積混聯(lián)模塊來(lái)消除空洞卷積的Gridding效應(yīng)從而僅保留空洞卷積提高感受野和能夠捕捉多尺度信息的積極作用,以此來(lái)提升超分辨率重建效果。使改進(jìn)后的高效模型在Set5、Set14、BSD100數(shù)據(jù)集上進(jìn)行檢測(cè),結(jié)果顯示,以PSNR和SSIM為評(píng)價(jià)標(biāo)準(zhǔn),本文設(shè)計(jì)帶有空洞卷積混聯(lián)模塊的模型擁有比傳統(tǒng)算法Bicubic和基于深度學(xué)習(xí)的SRCNN、ESPCN、VDSR、ZSSR、IDN算法更好的重建效果,與部分算法相比在視覺效果上面也有很大提高。