劉 穎,譚仕立,畢 萍,朱婷鴿
(1.西安郵電大學 通信與信息工程學院,陜西 西安 710121;2.西安郵電大學 無線通信與信息處理技術(shù)國際聯(lián)合研究中心,陜西 西安 710121;3.西安郵電大學 圖像與信息處理研究所,陜西 西安 710121)
單幀圖像超分辨率重建(Single Image Super-Resolution,SISR)是指由一幅低分辨率(Low-Resolution,LR)圖像重建出一幅對應的高分辨率(High-Resolution,HR)圖像,是計算機視覺和圖像處理的重要技術(shù)之一[1-2],現(xiàn)已廣泛應用于醫(yī)學圖像增強、視頻成像和目標識別等計算機視覺任務(wù)。然而,從LR圖像中能夠生成多個不同的HR圖像,因此SISR是一個不適定問題。為了解決這個逆問題,大量學習LR與HR圖像之間映射關(guān)系的超分辨率(Super-Resolution,SR)重建算法相繼被提出。
目前,超分辨率重建主要分為基于卷積神經(jīng)網(wǎng)絡(luò)[3-11](Convolutional Neural Network,CNN) 和基于生成對抗網(wǎng)絡(luò)[12-14](Generative Adversarial Nets,GAN) 兩類方法?;诰矸e神經(jīng)網(wǎng)絡(luò)的圖像超分辨率[3](Super-Resolution Convolutional Neural Networks,SRCNN)是最早將卷積網(wǎng)絡(luò)應用于SISR的方法,其重建效果優(yōu)于非神經(jīng)網(wǎng)絡(luò)方法。超深度卷積網(wǎng)絡(luò)[4](Very Deep Convolutional Networks,VDSR)引入殘差學習,擴展了網(wǎng)絡(luò)的深度。基于亞像素卷積的超分辨率[5](Efficient Sub-Pixel Convolutional Neural Network,ESPCN)方法在最后一層引入亞像素卷積網(wǎng)絡(luò),將LR特征圖重新排列從而得到超分辨率圖像?;诰矸e神經(jīng)網(wǎng)絡(luò)的快速超分辨率[6](Fast Super-Resolution Convolutional Neural Networks,FSRCNN)方法在模型末尾使用反卷積層直接學習原始LR圖像與HR圖像之間的映射關(guān)系。LapSRN[7]方法利用拉普拉斯金字塔網(wǎng)絡(luò)逐步重建HR圖像的殘差。文獻[8]利用多尺度殘差塊構(gòu)建了高質(zhì)量網(wǎng)絡(luò)?;贑NN的SISR方法表現(xiàn)出了優(yōu)異的性能,大多數(shù)方法傾向于使用更大、更深的網(wǎng)絡(luò)重建圖像,但訓練這些模型需要更多的數(shù)據(jù)、時間和資源,開銷大但效果甚微。隨后,學者們開始關(guān)注網(wǎng)絡(luò)輕量化,如:文獻[9]通過多次回傳機制減少網(wǎng)絡(luò)參數(shù);利用級聯(lián)殘差網(wǎng)絡(luò)[10](Cascading Residual Network,CARN)提出了輕量化的超分辨率方法;稀疏掩碼超分辨率[11](Sparse Mask Super-Resolution,SMSR)網(wǎng)絡(luò)利用空域掩碼與通道掩碼構(gòu)建稀疏卷積,大幅減少了模型的計算量。
在另一類基于GAN的SISR方法中,基于生成對抗網(wǎng)絡(luò)的圖像超分辨率[12](Super-Resolution Generative Adversarial Network,SRGAN)方法把重建問題看作是圖像生成問題,通過生成器和判別器的不斷博弈從而達到視覺效果更好的重建結(jié)果?;贕AN的重建方法往往峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)不高,但其重建結(jié)果視覺效果好。采用GAN訓練獲得高效益的同時,常常也伴隨著極大的風險,這類方法訓練過程不穩(wěn)定、訓練曲線震蕩較大、耗費資源多,不易掌控。
觀察上述兩類方法的模型可以發(fā)現(xiàn),其均是直接通過最小化損失函數(shù)學習LR圖像和HR圖像之間的映射關(guān)系。然而,缺乏自然圖像的先驗信息使得真實的高頻細節(jié)信息重建尤為困難。因此,結(jié)合圖像先驗信息的重建方法成為另一類研究方向。圖像先驗信息包括總變差先驗[13]、稀疏先驗[14]和邊緣先驗[15]等,其中邊緣先驗最容易獲取,因此使用最為廣泛。深邊緣引導循環(huán)殘差[16](Deep Edge Guided Recurrent Residual,DEGR)網(wǎng)絡(luò)將圖像邊緣信息與遞歸網(wǎng)絡(luò)相結(jié)合,提出了邊緣引導的遞歸殘差網(wǎng)絡(luò)。軟邊緣提取網(wǎng)絡(luò)SeaNet[17]從LR圖中提取軟邊緣,并將其與重建的SR圖像進行卷積融合,學習到了更加豐富的高頻細節(jié)。殘差通道注意力網(wǎng)絡(luò)[18](Residual Channel Attention Networks,RCAN)提出了通道注意力機制,通過對特征通道之間的相互依賴性建模,自適應地重新縮放每個通道的特征,使網(wǎng)絡(luò)專注于更有用的通道。二階注意力網(wǎng)絡(luò)[19](Second-order Attention Network,SAN)提出了二階通道注意力機制,即利用二階梯度統(tǒng)計特性自適應的調(diào)整不同通道特征圖的權(quán)重。整體注意力網(wǎng)絡(luò)[20](Holistic Attention Network,HAN)引入了層注意力模塊和通道空間注意力模塊,分別學習不同層特征的權(quán)重以及各層特征的通道和空間相關(guān)性,獲得了較好的重建結(jié)果。但是,當遇到高倍數(shù)放大時,上述方法的效果并不理想。因此,擬對SeaNet模型進行改進,提出一種改進的漸進式圖像超分辨率重建算法。通過構(gòu)建兩層漸進式SISR網(wǎng)絡(luò)實現(xiàn)LR圖像的重建,即網(wǎng)絡(luò)整體結(jié)構(gòu)分為第一級放大重建和第二級細節(jié)重建。第一級放大重建中采用漸進式兩級放大重建結(jié)構(gòu),在殘差模塊中引入注意力機制,將注意力圖與輸入特征圖相乘以進行自適應特征優(yōu)化,將更多資源分配給對重建起關(guān)鍵作用的特征通道中。第二級細節(jié)重建中采用軟邊緣提取網(wǎng)絡(luò)提取圖像的邊緣細節(jié),使得重建結(jié)果在第一階段的基礎(chǔ)上有所提升。
基于CNN架構(gòu)的兩層漸進式網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示。第一層漸進式網(wǎng)絡(luò)是指整個網(wǎng)絡(luò)分為兩個階段,即第一階段的放大重建網(wǎng)絡(luò)和第二階段的細節(jié)重建網(wǎng)絡(luò)。第二層漸進式網(wǎng)絡(luò)是指在放大重建網(wǎng)絡(luò)中,先進行圖像特征提取,然后在重建階段采用一級放大和二級放大的逐級放大結(jié)構(gòu)。
圖1 兩層漸進式網(wǎng)絡(luò)結(jié)構(gòu)
在第一階段,粗超分辨率重建網(wǎng)絡(luò)的輸出可表示為
frough=FRIRN(ILR)
(1)
式中:FRIRN為粗超分辨率重建網(wǎng)絡(luò);ILR為輸入的LR圖片。
在第二階段,軟邊緣網(wǎng)絡(luò)提取的邊緣和融合層的輸出結(jié)果分別表示為
fedge=FEdge-Net(ILR)
(2)
ffusion=Ffusion([frough,fedge])
(3)
式中,F(xiàn)Edge-Net為軟邊緣提取網(wǎng)絡(luò);[]表示連接操作。
最終圖像重建的結(jié)果為
ISR=FIRN(ffusion)
(4)
式中,F(xiàn)IRN為細超分辨率重建網(wǎng)絡(luò)。
因此,第i個訓練樣本的網(wǎng)絡(luò)損失函數(shù)為
(5)
漸進式放大網(wǎng)絡(luò)結(jié)構(gòu)可以逐步修正重建圖像中的細節(jié)信息,尤其對高倍數(shù)放大的效果好。因此,粗超分辨率重建網(wǎng)絡(luò)采用漸進式的三級結(jié)構(gòu),如圖1中漸進式粗超分辨率重建網(wǎng)絡(luò)所示。LR圖像特征提取階段為第一級,由n1個殘差塊組成,主要用于對LR圖像進行特征提取。一級放大階段為第二級,通過反卷積層將LR圖像進行一級放大,再送入n2個殘差塊中進一步提取一級放大后圖像的特征。二級放大階段為第三級,再次通過反卷積層將一級放大后的圖像放大至目標尺寸,得到粗超分辨率重建結(jié)果frough。
在第一級和第二級網(wǎng)絡(luò)中均使用由特征提取模塊和卷積塊的注意力模塊[21](Convolutional Block Attention Module,CBAM)組成的殘差網(wǎng)絡(luò)結(jié)構(gòu),如圖2所示。
圖2 殘差塊結(jié)構(gòu)
第m個殘差塊的輸出定義為
fb,m=[W2(W1fb,m-1+b1)+b2+Fc]+fb,m-1
(6)
式中:fb,m-1為第m-1個殘差塊的輸出,也是當前殘差塊的輸入;W1和W2分別為該殘差塊中第一層和第二層卷積層的權(quán)重;b1和b2分別為對應的偏置;為ReLU函數(shù);Fc為注意力模塊網(wǎng)絡(luò)。
特征提取模塊由兩個卷積層和一個修正線性單元組成,CBAM由通道注意力和空間注意力兩部分串行組成。通過在通道和空間兩個獨立維度中依次推斷注意力圖,利用不同通道之間特征表示的相互依賴和相互作用,學習特征相關(guān)性,從而準確而快速地定位出目標區(qū)域,增強SR圖像的特征,同時抑制無用的噪聲。在殘差塊中加入注意力機制的策略可以提高網(wǎng)絡(luò)的學習能力,更有助于保留更細致的圖像特征。
重建圖像分辨率的提高是一個漸進的過程,因此低階特征對后續(xù)高階特性的影響較小,所以在殘差塊中并沒有使用長跳躍連接。
一幅圖像通常包含變化平緩的區(qū)域和變化劇烈的區(qū)域,事實上,變化平緩的區(qū)域主要由圖像的低頻信息構(gòu)成,變化劇烈的區(qū)域主要由圖像的高頻信息構(gòu)成,在視覺上體現(xiàn)為邊緣。
不同于傳統(tǒng)的Canny、Sobel和Roberts等圖像邊緣,由散度和梯度定義的軟邊緣也可以準確地保留圖像的高頻信息,故IEdge可定義為
IEdge=div(ux,uy)
(7)
軟邊緣提取網(wǎng)絡(luò)SeaNet將多尺度殘差網(wǎng)絡(luò)[22](Multi-scale Residual Network,MSRN)作為基本結(jié)構(gòu),并對其進行兩點改進:1)減少多尺度殘差塊的數(shù)量,降低復雜度;2)將學習ILR與IHR之間的映射應用于學習ILR與IEdge之間的非線性關(guān)系。
軟邊緣提取網(wǎng)絡(luò)的損失函數(shù)定義為
Edge=‖E(ILR-IEdge)‖1
(8)
式中:E(·)表示軟邊緣提取網(wǎng)絡(luò);E(ILR)表示提取的軟邊緣圖像。
不同網(wǎng)絡(luò)提取的軟邊緣示例如圖3所示。軟邊緣提取網(wǎng)絡(luò)包含了放大模塊,因此提取的軟邊緣圖像與HR圖像有相同的維度,使得目標物邊緣清晰,重建效果更好,而Canny邊緣中存在噪聲和不連續(xù)點,對重建結(jié)果造成了影響。
圖3 網(wǎng)絡(luò)提取的軟邊緣
第二階段的細節(jié)重建網(wǎng)絡(luò),分為融合層和細超分辨率重建網(wǎng)絡(luò)兩部分。
在重建前,需將軟邊緣提取網(wǎng)絡(luò)得到的高頻特征加入到第二階段的網(wǎng)絡(luò)中,故采用一個卷積層作為融合層,其輸出可定義為
ffusion=max(0,Wm[frough,fedge]+bm)
(9)
式中,Wm和bm分別為卷積層的權(quán)重和偏置。
細節(jié)重建網(wǎng)絡(luò)由兩個卷積層和n3個殘差塊構(gòu)成,其中殘差塊由兩個卷積層和一個修正線性單元組成,每個殘差塊的輸出可定義為
fr,n=[W4(W3fr,n-1+b3)+b4]+fr,n-1
(10)
式中:W3和W4分別為該殘差塊中第一層和第二層卷積層的權(quán)重;b3和b4分別為對應的偏置;為ReLU函數(shù),fr,n-1為前一個殘差塊的輸出,也是當前殘差塊的輸入,則全局殘差塊輸出為
fout=fr,n3+finput
(11)
式中,fr,n3和finput分別表示最后一個殘差塊的輸出和第一個殘差塊的輸入。
在訓練過程中,利用L1正則化定義內(nèi)容損失函數(shù)content,計算SR圖像與HR圖像之間的最小差別,即
content=‖ISR-IHR‖1
(12)
綜上,總損失函數(shù)則可被定義為
total=content+λedge
(13)
至此,兩層漸進式網(wǎng)絡(luò)雖然由3部分網(wǎng)絡(luò)組成,但是3部分網(wǎng)絡(luò)之間呈前后關(guān)聯(lián)的關(guān)系,從而實現(xiàn)了端到端的一個整體的網(wǎng)絡(luò)訓練。
實驗環(huán)境為NVIDIA Titan X GPU、pytorch 1.0版。選取DIV2K[23]為訓練數(shù)據(jù)集,其包含800幅訓練圖像,示例如圖4(a)所示。選取BSDS100[24]、Set5[25]、Set14[26]和Urban100[27]數(shù)據(jù)集為測試數(shù)據(jù)集,示例分別按列如圖4(b)所示,其包含多類場景圖像。
圖4 數(shù)據(jù)集選取示例
圖像預處理分為兩步:第一步,利用式(7)提取DIV2K訓練圖像的軟邊緣,將其作為軟邊緣提取網(wǎng)絡(luò)的目標邊緣;第二步,通過雙三次插值的方法將訓練圖像下采樣得到LR圖像,將其作為整個網(wǎng)絡(luò)的輸入。網(wǎng)絡(luò)中每個殘差塊的輸入和輸出通道數(shù)均為64,且殘差塊的卷積核大小均為3×3,其中,n1=12,n2=3,n3=40。
訓練時,迭代周期為750,初始學習率為0.000 1,學習率每隔200個周期減半。網(wǎng)絡(luò)的損失函數(shù)曲線如圖5所示。
圖5 損失函數(shù)曲線
根據(jù)PSNR和結(jié)構(gòu)相似性(Structural Similarity,SSIM)客觀評價指標,分別對比改進算法與含有圖像先驗信息的重建算法SelfExSR[27]、A+[28]、級聯(lián)結(jié)構(gòu)卷積網(wǎng)絡(luò)(Cascaded Structure Convolutional Network Multi-View,CSCN-MV)[29]、SMSR[11]、DEGREE-MV[30](Deep Edge guided Recurrent Residual Multi-View)、ENet[31]、EINet[32]、SeaNet和無圖像先驗信息的重建算法Bicubic、SRCNN、ESPCN、FSRCNN、VDSR、深度遞歸網(wǎng)絡(luò)[33](Deeply Recursive Convolutional Network,DRCN)、LapSRN、DRRN[34]、MemNet[35]、MSRN的性能,結(jié)果分別如表1和表2所示。計算時需將所有圖像轉(zhuǎn)換到Y(jié)CbCr空間并提取Y分量進行計算。
表1 改進算法與含有圖像先驗信息的重建算法的性能對比
表2 改進算法與無圖像先驗信息的重建算法的性能對比
表1中SelfExSR、A+和CSCN-MV均為非神經(jīng)網(wǎng)絡(luò)算法,ENet和EINet為基于GAN架構(gòu)的重建算法,其余算法為基于CNN架構(gòu)的重建算法。由表1可知,基于CNN架構(gòu)的重建算法的PSNR值要高于其余兩類算法。與EINet算法相比,后者使用的是Canny邊緣,而改進算法采用軟邊緣,圖像重建質(zhì)量更高。對比SeaNet算法,改進算法設(shè)計了逐級放大網(wǎng)絡(luò)結(jié)構(gòu),提升了重建放大階段的圖像重建質(zhì)量,獲得了較好的重建結(jié)果。自集成策略是指將測試圖像經(jīng)過水平翻轉(zhuǎn)、垂直翻轉(zhuǎn)和轉(zhuǎn)換通道后再進行測試,之后對多個結(jié)果取均值,可以看出,改進算法引入該策略后性能有所提升。
表2中所列算法均是基于CNN架構(gòu)的圖像重建算法,由表2可知,采用CNN架構(gòu)并加入邊緣先驗信息,可以同時提升圖像的重建效果。另外,LapSRN也同樣采用了漸進式策略進行重建,但改進算法結(jié)構(gòu)更復雜,網(wǎng)絡(luò)結(jié)構(gòu)更深,因此重建結(jié)果更好。
改進算法與非神經(jīng)網(wǎng)絡(luò)的學習模型Bicubic和SelfExSR,以及基于CNN和GAN的神經(jīng)網(wǎng)絡(luò)模型SRCNN、VDSR、LapSRN、MSRN等部分典型重建算法的視覺效果對比分別如圖6和圖7所示。
圖6 4倍放大的部分實驗結(jié)果
圖7 8倍放大的部分實驗結(jié)果
由圖6和圖7可以看出,改進算法重建結(jié)果邊緣清晰可見,而且可以避免鋸齒效應。如圖6中第一組圖,改進算法對比其他算法恢復的邊緣更加清晰連續(xù)。如圖7的第二組圖,改進算法恢復的蝴蝶翅膀邊緣更加完整平滑,可以恢復出更清晰的圖像細節(jié)信息,圖像重建結(jié)果更好。
兩層漸進式策略的SISR重建算法將SeaNet網(wǎng)絡(luò)框架進行改進,分為放大重建和細節(jié)重建兩個階段。在放大重建階段,采用了逐級放大的策略實現(xiàn)LR圖像到SR圖像的重建,保留了圖像更多的細節(jié)特征。在放大網(wǎng)絡(luò)中采用殘差結(jié)構(gòu),并在殘差塊中加入了注意力機制,增強了目標圖像的特征。實驗結(jié)果表明,改進算法取得的客觀評價指標比其他算法效果好,獲得了更加清晰化邊緣的超分辨率結(jié)果,且極大減少了鋸齒效應。下一步SISR研究工作可從以下幾個方面展開:在進行細節(jié)重建前,探索粗SR圖像與提取到的軟邊緣圖像進一步融合的策略;嘗試利用圖像其他先驗信息實現(xiàn)SR;結(jié)合基于GAN架構(gòu)的EINet和基于CNN架構(gòu)的重建算法的優(yōu)點,得到PSNR和SSIM兩個均優(yōu)的指標作為未來的研究方向。