雷 帥,廖曉東,2,3,潘 浩,李俊珠,陳清俊
1(福建師范大學(xué) 光電與信息工程學(xué)院,福州 350007)
2(福建師范大學(xué) 醫(yī)學(xué)光電科學(xué)與技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室和福建省光子技術(shù)重點(diǎn)實(shí)驗(yàn)室,福州 350007)
3(福建師范大學(xué) 福建省先進(jìn)光電傳感與智能信息應(yīng)用工程技術(shù)研究中心,福州 350007)
圖像超分辨率重建技術(shù)一般可分為兩種,一種是利用多張低分辨率圖像合成一張高分辨率圖像,另一種就是本文所研究的從單張低分辨率圖像獲取高分辨率圖像[1,2].該技術(shù)是指使用軟件或硬件方法從獲取到的具有較少細(xì)節(jié)的低分辨率圖像中重建具有大量細(xì)節(jié)的對(duì)應(yīng)的高分辨率圖像.該方法目前被用于老照片修復(fù),視頻監(jiān)視[3],衛(wèi)星圖像遙感[4],醫(yī)學(xué)圖像[5,6]等領(lǐng)域.為了追求更好的圖像和視頻質(zhì)量,近年來(lái),越來(lái)越多的人們開(kāi)始關(guān)注和使用超分辨率技術(shù)[7].
在這些方法中,它們大致可以分為3 類(lèi):基于插值,基于重構(gòu)和基于學(xué)習(xí).基于插值的方法最早被提出,計(jì)算速度很快但插值后的高分辨圖像的細(xì)節(jié)很差,適用于對(duì)質(zhì)量要求不高的場(chǎng)景;基于重建模型的方法提高了重建質(zhì)量,但因其通常采用復(fù)雜的先驗(yàn)知識(shí)來(lái)限制可能的解空間,導(dǎo)致速度變慢.隨著大規(guī)模視覺(jué)識(shí)別挑戰(zhàn)賽(ILSVRC)等比賽的舉辦,各種基于卷積神經(jīng)網(wǎng)絡(luò)的模型如雨后春筍般蓬勃發(fā)展.鑒于CNN 具有較強(qiáng)的特征提取和表達(dá)能力,人們開(kāi)始嘗試將卷積神經(jīng)網(wǎng)絡(luò)應(yīng)用在圖像超分辨率重建任務(wù)上,因此圖像重建也取得了重大突破并不斷發(fā)展.各種基于深度學(xué)習(xí)的網(wǎng)絡(luò)模型的發(fā)展大致可分為以下兩個(gè)主要方向:一種是以PSNR、SSIM 等評(píng)價(jià)指標(biāo)最大化為優(yōu)化目標(biāo),可以較好地重建低頻信息,是早期諸如SRCNN 模型[8]所代表的網(wǎng)絡(luò).另一種是以減少感知損失為目標(biāo),而不只是關(guān)注硬性指標(biāo),以SRGAN 網(wǎng)絡(luò)[9]為代表.兩種不同方向的算法所對(duì)應(yīng)的應(yīng)用領(lǐng)域也不同.
對(duì)于圖像超分辨率重建任務(wù),特征圖的上采樣操作對(duì)于圖像的恢復(fù)至關(guān)重要,不同的上采樣操作可能會(huì)直接影響重建圖像的質(zhì)量.因此,本文基于內(nèi)容感知上采樣重建圖像,重建后的圖像的每個(gè)像素都是由特定的卷積核和內(nèi)容特征圖中的相應(yīng)位置生成的,并且通過(guò)特征圖自適應(yīng)地獲得特定卷積核.經(jīng)過(guò)實(shí)驗(yàn)證明,我們的方法顯著地提高了重建圖像的效果.
卷積神經(jīng)網(wǎng)絡(luò)雖然很早就問(wèn)世,但直到2014年SRCNN[8]的作者首次嘗試將卷積神經(jīng)網(wǎng)絡(luò)用在超分辨率重建上,成為超分網(wǎng)絡(luò)模型的開(kāi)山之作,并為后來(lái)的圖像超分辨率技術(shù)的發(fā)展提供了思路.分析其網(wǎng)絡(luò)結(jié)構(gòu)十分簡(jiǎn)單,僅使用了3 個(gè)卷積層就分別實(shí)現(xiàn)了圖像塊的提取和特征表示,特征的非線性映射和最終的超分辨率圖像重建功能,而且網(wǎng)絡(luò)可以自動(dòng)學(xué)習(xí)端到端的映射.但由于網(wǎng)絡(luò)的卷積層過(guò)少,導(dǎo)致捕獲特征的感受野受限,以及需要在網(wǎng)絡(luò)之外將圖像進(jìn)行預(yù)處理即通過(guò)雙三次插值到欲放大的尺寸,Dong 等人提出了改進(jìn)后的超分網(wǎng)絡(luò)FSRCNN[10],在網(wǎng)絡(luò)末端使用反卷積(deconvolution)來(lái)放大圖像尺寸,這樣可以在網(wǎng)絡(luò)中直接訓(xùn)練原始的低分辨率圖片而不需要進(jìn)行額外的操作,同時(shí)網(wǎng)絡(luò)可以共享映射層的參數(shù),這樣通過(guò)調(diào)整最后的反卷積層,就可以實(shí)現(xiàn)不同的上采樣倍率的切換.由于反卷積是通過(guò)補(bǔ)0 來(lái)實(shí)現(xiàn)圖像尺寸放大的,勢(shì)必會(huì)影響到重建效果.而且隨著神經(jīng)網(wǎng)絡(luò)層數(shù)的增加,網(wǎng)絡(luò)性能卻出現(xiàn)下降.He 等人在2016年提出殘差網(wǎng)絡(luò)ResNet[11],有效解決了網(wǎng)絡(luò)層數(shù)加深時(shí),模型因梯度消散而難以訓(xùn)練的問(wèn)題,將網(wǎng)絡(luò)擴(kuò)展到152 層,殘差網(wǎng)絡(luò)也成為現(xiàn)在應(yīng)用最廣泛的技術(shù).同年出現(xiàn)的VDSR[12]就將這種殘差結(jié)構(gòu)應(yīng)用到超分任務(wù)中,一舉將超分辨率重建神經(jīng)網(wǎng)絡(luò)擴(kuò)展到了20 層,使得網(wǎng)絡(luò)獲取更大的感受野,同時(shí)由于使用了殘差結(jié)構(gòu),減少了參數(shù),大大加快了網(wǎng)絡(luò)的收斂速度.密集網(wǎng)絡(luò)DenseNet[13]采用跳躍連接使得每層輸入都取決于之前所有層的輸出,網(wǎng)絡(luò)可以利用不同卷積層的特征信息,受此啟發(fā),SRDenseNet[14]將密集網(wǎng)絡(luò)應(yīng)用在超分辨率重建上,將所有深度層的特征全部連接起來(lái),并使用1×1的卷積層來(lái)減少特征數(shù)量,取得不錯(cuò)效果.2018年提出的RDN[15]將殘差結(jié)構(gòu)和密集連接相結(jié)合,作者在網(wǎng)絡(luò)中連續(xù)堆疊多個(gè)殘差稠密塊RDB (residual dense block),提出了稠密殘差的網(wǎng)絡(luò)結(jié)構(gòu),充分利用網(wǎng)絡(luò)中各個(gè)層的特征,并在網(wǎng)絡(luò)末端實(shí)現(xiàn)特征融合,使得重建效果非常接近真實(shí)圖像.目前人們將目光聚焦于特征圖通道,將注意力機(jī)制引入到了超分任務(wù)中[16],具有代表性的網(wǎng)絡(luò)如殘差通道注意網(wǎng)絡(luò)RCAN[17]和注意力機(jī)制殘差超分網(wǎng)絡(luò)SRRAM[18],網(wǎng)絡(luò)可以自適應(yīng)學(xué)習(xí)不同通道的權(quán)重,充分利用通道資源.對(duì)于以優(yōu)化感知損失為目標(biāo)的網(wǎng)絡(luò),它們不以PSNR為評(píng)判網(wǎng)絡(luò)性能的導(dǎo)向,而使重建后的圖像恢復(fù)高頻信息和紋理細(xì)節(jié),更加符合人類(lèi)認(rèn)知.SRGAN[9]首次將生成對(duì)抗網(wǎng)絡(luò)GAN[19]用在了超分辨率圖像重建任務(wù)上,其損失函數(shù)包括內(nèi)容損失(content loss)和對(duì)抗損失(adversarial loss),利用生成網(wǎng)絡(luò)和鑒別網(wǎng)絡(luò)互相博弈來(lái)提高恢復(fù)出的圖片的真實(shí)感,使重建后的圖像更符合現(xiàn)實(shí)世界人眼觀察到的內(nèi)容,而不是刻意追求相似性指標(biāo).最后是基于改進(jìn)后的ESRGAN[20],將SRGAN 生成網(wǎng)絡(luò)中的RB 模塊換成了RRDB (residual in residual dense block),同時(shí)去掉了歸一化層,優(yōu)化了網(wǎng)絡(luò)性能,得到更加自然和真實(shí)的圖像.
(1)插值法
傳統(tǒng)的基于插值的上采樣技術(shù)一般包括最近鄰插值,雙線性插值和雙三次插值.最近鄰插值是指利用最相鄰位置的像素點(diǎn)來(lái)重建待插值位置的像素,而與其他位置像素?zé)o關(guān),此方法雖然速度最快,但效果最差.雙線性插值指用相鄰的4 個(gè)像素點(diǎn)先橫向進(jìn)行線性插值,再在豎向上進(jìn)行插值,效果比最近鄰插值好.雙三次插值指像素點(diǎn)是利用矩形框16 個(gè)采樣點(diǎn)加權(quán)平均得到的,即先對(duì)一個(gè)軸進(jìn)行3 次插值,再對(duì)另一個(gè)軸進(jìn)行3 次插值.此方法速度最慢,但重建后的圖片效果相對(duì)最好.
(2)轉(zhuǎn)置卷積
轉(zhuǎn)置卷積先對(duì)低分辨率圖像進(jìn)行補(bǔ)0,再通過(guò)卷積獲得輸出,從而得到放大尺寸的圖像.神經(jīng)網(wǎng)絡(luò)可以學(xué)習(xí)轉(zhuǎn)置卷積的參數(shù),在超分任務(wù)中得到了廣泛的應(yīng)用.但是這種方法很容易導(dǎo)致在不同軸上的不均勻重疊,從而導(dǎo)致出現(xiàn)“棋盤(pán)效應(yīng)”,損害重建性能.
(3)亞像素卷積
亞像素的核心思想是通過(guò)網(wǎng)絡(luò)的卷積層后得到大量的特征圖通道,然后將這些通道重新排列平鋪得到預(yù)定尺寸的圖像.由于亞像素卷積可以獲得全局特征,因此網(wǎng)絡(luò)可以利用更多的上下文信息來(lái)還原更逼真的細(xì)節(jié).但亞像素卷積也有缺點(diǎn),由于特征不是均勻分布的,在提取的不同塊的邊界可能會(huì)出現(xiàn)偽影現(xiàn)象,導(dǎo)致輸出不平滑的結(jié)果.
對(duì)于骨干網(wǎng)絡(luò),我們使用殘差密集模塊堆疊的稠密殘差網(wǎng)絡(luò),并以該模塊為基準(zhǔn)來(lái)驗(yàn)證我們的內(nèi)容感知上采樣方法的有效性.圖1上部分是RDN 網(wǎng)絡(luò)[15]體系結(jié)構(gòu)的示意圖.該網(wǎng)絡(luò)結(jié)構(gòu)中的前兩個(gè)卷積層將圖像域轉(zhuǎn)換成特征域,并通過(guò)跳躍連接的方式將提取到的淺層特征傳遞到網(wǎng)絡(luò)的末端,從而促進(jìn)了淺層特征信息和深層特征融合.上采樣層在網(wǎng)絡(luò)末端用于重建圖像,從圖中可以看到,除了卷積層和上采樣層外,網(wǎng)絡(luò)的主體由若干堆疊的RDB 模塊組成用于提取局部特征.每個(gè)RDB 模塊的輸出不僅充當(dāng)下一個(gè)RDB 模塊的輸入,而且還同時(shí)將結(jié)果傳遞到網(wǎng)絡(luò)的末端進(jìn)行特征融合.從圖1下部分可看到RDB 模塊主要由卷積層和ReLU 激活函數(shù)組成,RDB 模塊的設(shè)計(jì)是從ResNet[11]和DenseNet[13]結(jié)合推出的,并將卷積后生成的特征圖傳輸?shù)矫總€(gè)后續(xù)層,每個(gè)RDB 模塊最后都有一個(gè)卷積層來(lái)減少通道數(shù),由于每個(gè)卷積層有不同的感受野,就可以充分利用所有層的特征信息來(lái)重建圖像.縫合是特征融合的一種方式,此方法對(duì)于加快網(wǎng)絡(luò)融合速度很有用,最后的跳躍連接的特征融合是通過(guò)逐像素相加實(shí)現(xiàn)的,這種殘差學(xué)習(xí)可以幫助解決梯度消失問(wèn)題并顯著減少計(jì)算量.
圖1 本文網(wǎng)絡(luò)結(jié)構(gòu)和RDB 模塊示意圖
對(duì)于圖像超分辨率重建,上采樣操作是至關(guān)重要的一步,因此,在本文中,我們摒棄常用的亞像素卷積上采樣而使用內(nèi)容感知上采樣層來(lái)重建圖像,以探索重建性能提高的可能性.圖2是內(nèi)容感知上采樣層的示意圖.如該圖所示,內(nèi)容感知上采樣層通常分為兩部分,第一部分即該圖的上半部分,該部分的目的是為每個(gè)像素生成特定的卷積核.主要步驟如下:首先,使用1×1卷積將給定的特征圖通道C壓縮為C',其目的是減少計(jì)算量.然后,將獲得的特征圖反饋送到子像素卷積層進(jìn)行特征重新排列.最后,使用激勵(lì)函數(shù)Softmax對(duì)上一步中的卷積核進(jìn)行歸一化.假設(shè)給定特征圖的形狀為RC×H×W,其中C、H、W分別表示通道數(shù)、特征圖的高和寬,則最終生成的卷積核形狀為,其中km代表每個(gè)像素的特定卷積核的大小,并用 σ表示超分辨率的放大倍數(shù).第二部分是圖形的下半部分,首先通過(guò)最近鄰插值方法將給定的特征圖擴(kuò)展到指定的放大倍數(shù),以獲得擴(kuò)展后的特征圖,然后從第一部分沿每個(gè)位置分別獲得特定的卷積核頻道已擴(kuò)展為km×km的大小.最后,目標(biāo)位置以擴(kuò)展的特征圖為中心,然后將內(nèi)積與卷積核進(jìn)行卷積.在此過(guò)程中,其大小與卷積內(nèi)核一致,并且不同的通道共享相同的權(quán)重.然后,我們可以獲得最終的所需像素值.該網(wǎng)絡(luò)最終由RDN的主干架構(gòu)和內(nèi)容感知的上采樣層組成.
圖2 基于內(nèi)容感知上采樣模塊的示意圖
在神經(jīng)網(wǎng)絡(luò)中,損失函數(shù)主要用來(lái)衡量通過(guò)網(wǎng)絡(luò)重建的圖像與真實(shí)高分圖像之間的差距,然后通過(guò)梯度下降算法不斷迭代更新來(lái)減小函數(shù)損失數(shù)值,當(dāng)損失值收斂時(shí)說(shuō)明網(wǎng)絡(luò)重建后的圖像的真實(shí)值將逼近原始圖像.常見(jiàn)的損失函數(shù)有L1,L2 等.本文選擇將L1損失函數(shù)放在輸出層中以降低損失函數(shù)值為目標(biāo)來(lái)更新參數(shù),以下公式為其表達(dá)式:
其中,H,W,C分別表示圖像的高度、寬度和通道數(shù).
圖像超分辨率的重建效果的評(píng)估指標(biāo)在本領(lǐng)域內(nèi)通常用峰值信噪比(peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似度(structural similarity,SSIM)來(lái)表示,要想提高重建圖像的質(zhì)量使其更加接近原始高分圖像,PSNR和SSIM的值就需要越高越好.
(1)PSNR
均方誤差定義為:給定一個(gè)大小為m×n的原始圖像K和重建后的高分圖像I,則均方誤差MSE為:
利用MSE得到峰值信噪比定義為:
其中,MAX為圖片可能的最大像素值,如果每個(gè)像素都用8 位二進(jìn)制來(lái)表示,那么其值就是28-1=255.一般來(lái)說(shuō),如果像素的二進(jìn)制數(shù)用B位來(lái)表示,那么MAX=2B-1.PSNR的單位是dB,其值越大說(shuō)明失真越少,重建效果越好.由于PSNR的評(píng)價(jià)標(biāo)準(zhǔn)和人眼觀測(cè)到的實(shí)際圖像機(jī)制不同,導(dǎo)致可能有的圖像PSNR 值很大,但是人眼評(píng)價(jià)相似度卻不高.
(2)SSIM
SSIM從亮度l、對(duì)比c、和結(jié)構(gòu)s三個(gè)維度對(duì)兩幅圖像的相似度進(jìn)行綜合比較,
SSIM的取值范圍是[0,1],取值越大說(shuō)明重建圖片和原圖相似度越高.由于圖片尺寸一般比較大,在實(shí)際中,我們通常會(huì)對(duì)圖片進(jìn)行分塊,然后分別計(jì)算每塊的SSIM,最后取平均值作為結(jié)構(gòu)相似度度量.假設(shè)圖像分為N塊,則平均結(jié)構(gòu)相似性MSSIM為:
現(xiàn)在的神經(jīng)網(wǎng)絡(luò)訓(xùn)練十分依賴數(shù)據(jù)集,在本文中,選擇DIV2K 作為我們的訓(xùn)練數(shù)據(jù)集.DIV2K 數(shù)據(jù)集包含1 000 張高質(zhì)量圖像,其中800 張作為訓(xùn)練集,100 張作為驗(yàn)證集,100張作為測(cè)試集.圖像超分任務(wù)一般使用成對(duì)的超分和低分圖像來(lái)訓(xùn)練網(wǎng)絡(luò).在網(wǎng)絡(luò)中首先通過(guò)雙三次插值降低圖像分辨率,再將低分辨率圖像作為輸入送入網(wǎng)絡(luò)中進(jìn)行訓(xùn)練,在訓(xùn)練過(guò)程中,放大倍數(shù)分別設(shè)置為2 倍、3 倍和4 倍.驗(yàn)證在不同放大倍數(shù)下,網(wǎng)絡(luò)的性能表現(xiàn).
同時(shí),我們分別在基準(zhǔn)數(shù)據(jù)集Set5,Set14,B100,Urban100 進(jìn)行測(cè)試.關(guān)于RDN 網(wǎng)絡(luò)的配置,每個(gè)RDB模塊中設(shè)有3 個(gè)卷積層,每個(gè)模塊最后的輸出通道數(shù)為16,我們總共在整個(gè)網(wǎng)絡(luò)中使用10 個(gè)RDB 模塊,除了網(wǎng)絡(luò)末端的卷積層和每個(gè)RDB 模塊最后使用的是1×1卷積核外,其他剩余的卷積層統(tǒng)一使用3×3的小卷積核.
這次所有實(shí)驗(yàn)均在Windows 10 操作系統(tǒng)和PyTorch框架上完成.使用英偉達(dá)1080Ti GPU 進(jìn)行訓(xùn)練.在訓(xùn)練過(guò)程中,批處理大小設(shè)為16,網(wǎng)絡(luò)輸入設(shè)為大小為32的圖像塊.使用隨機(jī)的水平和垂直翻轉(zhuǎn)來(lái)進(jìn)行數(shù)據(jù)擴(kuò)充,可以增加訓(xùn)練數(shù)據(jù)量,并提高網(wǎng)絡(luò)模型的泛化能力.在網(wǎng)絡(luò)的末端,我們使用Adam 優(yōu)化器來(lái)更新參數(shù),學(xué)習(xí)率設(shè)置為10-3,其余參數(shù)保持為默認(rèn)值.在整個(gè)過(guò)程中,記一次正向傳播和反向梯度更新為一次訓(xùn)練過(guò)程,我們一共迭代訓(xùn)練了200 次.
通過(guò)與雙三次插值方法SRCNN[8]和RDN[15]進(jìn)行數(shù)值和視覺(jué)比較,來(lái)驗(yàn)證我們方法的性能表現(xiàn).表1顯示了4 種方法在不同放大倍數(shù)下的測(cè)試結(jié)果,在測(cè)量PSNR和SSIM的值時(shí),我們將色彩空間從RGB 域轉(zhuǎn)換為Ycrcb 域,然后在Y 通道中進(jìn)行計(jì)算.從表1中可以看到,在PSNR和SSIM方面,與其他3 種方法相比,本文算法在基準(zhǔn)數(shù)據(jù)集上具有更高的數(shù)值.分析其原因,由于固有因素的限制,雙三次插值方法的圖像重建質(zhì)量低于基于深度學(xué)習(xí)的方法.SRCNN 使用了一個(gè)基于淺層結(jié)構(gòu)的單一卷積神經(jīng)網(wǎng)絡(luò),其重建圖像的質(zhì)量低于深層網(wǎng)絡(luò).本文提出的方法使用內(nèi)容感知上采樣層,相比于RDN 優(yōu)化了網(wǎng)絡(luò),其余結(jié)構(gòu)保持不變.從表1測(cè)試數(shù)據(jù)來(lái)看,評(píng)估指標(biāo)都增加了,這說(shuō)明了該算法的有效性.圖3顯示了我們的方法與RDN 網(wǎng)絡(luò)在不同比例(×2,×3,×4)之間的收斂性比較.從該圖中的第一張和第二張可以看出,我們的方法在×2和×3的放大倍數(shù)下PSNR的振蕩曲線更小,并且顯示出更好的穩(wěn)定性.當(dāng)放大倍數(shù)是×4 時(shí),我們所提出的方法在多次迭代過(guò)程中的PSNR值始終高于RDN,優(yōu)勢(shì)顯而易見(jiàn).圖4是實(shí)際圖像重建效果,為了便于觀察,將圖像的局部區(qū)域放大.可以看到我們方法重建的圖像不僅分辨率更高,并且圖像的紋理細(xì)節(jié)更加豐富,顯示出了較好的效果.
表1 不同方法在放大倍數(shù)分別為2 倍、3 倍及4 倍下的PSNR和SSIM 值
圖3 本文方法與RDN 在不同放大倍數(shù)下PSNR的收斂曲線對(duì)比
在本文中,對(duì)于超分辨率圖像的重建,我們提出了一種基于內(nèi)容感知上采樣的圖像超分辨率算法,該算法為重建圖像的每個(gè)像素自適應(yīng)生成特定的卷積核,使得從而明顯改善了重建圖像的分辨率.通過(guò)對(duì)4 個(gè)基準(zhǔn)測(cè)試數(shù)據(jù)集進(jìn)行視覺(jué)比較,數(shù)值比較和收斂圖比較,可以發(fā)現(xiàn)本文提出的方法比基準(zhǔn)方法RDN具有更好的結(jié)果.實(shí)際上,我們的方法還有很大的提升空間.我們小組研究下一步的主要方向是如何將超分辨率重建方法與更深入,更有效的網(wǎng)絡(luò)結(jié)構(gòu)結(jié)合起來(lái),從而恢復(fù)出高頻紋理細(xì)節(jié)信息,使重建圖像更加自然.