賈婷婷,王濟浩,鄭雅羽,馮 杰2(浙江工業大學信息工程學院,杭州30023)
2(浙江理工大學信息學院,杭州310018)
E-mail:yayuzheng@zjut.edu.cn
超分辨率圖像重建(Super resolution image reconstruction,SRIR或SR)是指用信號處理和圖像處理的方法,通過軟件算法的方式將已有的低分辨率(Low-resolution,LR)圖像轉換成高分辨率(High-resolution,HR)圖像的技術[1].SR 適用于解決各種計算機視覺方面的任務,如遙感衛星、安全與監視成像、醫學成像、圖像生成等.常用的SR方法有基于插值的算法、基于重建的算法和基于學習的算法.基于插值的算法根據圖像先驗信息和統計模型進行插值計算,實現簡單、計算復雜度低,但是重建結果在邊緣處存在環或鋸齒效應,得到的結果比較模糊[2].基于重建的算法從同一場景下的多幀LR圖像中提取高頻信息,融合生成HR圖像,但是需要在合適的先驗假設下才能獲得較好的重建效果.基于學習的算法主要是對高低分辨率訓練樣本的學習,構造高低分辨率字典對.與基于插值和基于重建的方法相比,基于學習的算法可以獲得更多的高頻信息,從而得到更加清晰的紋理細節,獲取更好的重建效果,因此得到更多關注.
在基于學習的SR重建算法中,Yang等[3]提出的基于稀疏表示的超分辨率圖像重建算法表現最為突出,通過高分辨率圖像樣本訓練出具有相同稀疏表示的高低分辨率字典對,從而重建出較好的高分辨率圖像.但是,該算法容易出現塊效應.黃等[4]引入自回歸正則化和非局部相似正則化,對稀疏表示系數的求解進行約束,并對重建后的高分辨率圖像進行全局優化.該算法對基于稀疏表示的超分辨率圖像重建方法進行了優化,提高了算法的魯棒性與重建圖像的質量.雖然上述方法重建后的圖像優于基于插值與基于重建的方法,但是對通用圖像的超分辨率重建效果卻不甚理想.
近年來,隨著計算機硬件計算力的大幅提升,卷積神經網絡在計算機視覺任務中取得了一系列巨大的成功.因此,越來越多的基于深度學習(deep learning,DL)的模型,尤其是卷積神經網絡(convolutional neural network,CNN),被廣泛用于SR領域.
Dong等[5]首先提出了SRCNN算法,學習非線性LR到HR映射,將一個三層卷積神經網絡引入到超分辨率網絡中.Kim等通過裁剪梯度,跳躍連接或遞歸學習的方式增加VDSR[6]和DRCN[7]算法中的網絡深度,以減輕網絡深度增加帶來的訓練問題.上述方法雖然優于傳統的基于學習的方法,更加適用通用圖像的超分辨率重建.但是,在預測之前,直接使用預定義的上采樣算子將輸入圖像升高到期望輸出的空間分辨率.這將會增加不必要的計算成本,并且會經常導致可見的重建偽像.
為了減少不必要的計算成本,削弱可見的偽像,Dong等[8]提出了FSRCNN算法.不再使用預定義的上采樣算子,直接將原始低分辨率圖像作為輸入并在最后一步引入轉置卷積進行上采樣.Lai等[9]提出了一種級聯結構的超分辨率算法LapSRN,能夠在多個分辨率下生成中間SR預測,并逐步進行優化,取得了較好的重建效果.但是這些方法均采用鏈式的方式堆疊構建模塊,僅重視卷積層之間的前向信息傳遞,從而忽視了卷積層之間的反饋交流信息.
因此,本文提出了一種拉普拉斯金字塔結構的團網絡超分辨率圖像重建算法(A Clique Network Super-resolution Image Reconstruction Algorithm Based on Laplace Pyramid Structure,LCN).為了最大化卷積層間的交流,提取更多的特征.本文將團網CliqueNet[10]中的團塊 Clique Block引入 SR 網絡,并對CliqueNet做進一步的改善,將改進后的結構命名為CNB,作為LCN的構建模塊.同一個CNB中的任意兩個卷積層之間都有前向和反饋連接,層間信息交替更新,以便信息流和反饋機制可以最大化,層間的連接更加密集.同時采用拉普拉斯金字塔結構,通過漸進式重建高分辨率圖像的方式,逐步地優化重建結果.并將殘差學習應用到網絡中,減少網絡參數,避免梯度爆炸.從實驗結果看,本文提出的算法在主觀與客觀都產生了較好的重建效果,尤其是在對邊緣與線條的重建上.
本文提出了一種拉普拉斯金字塔結構的團網絡.拉普拉斯金字塔結構已經廣泛應用于圖像混疊、紋理合成、邊緣感知過濾和語義分割等[11]領域,并取得較好的結果.因此,本文網絡采用拉普拉斯金字塔結構,能夠通過漸進式重建高分辨率圖像的方式,逐步優化重建的結果.
同時將改進后的團網CNB作為拉普拉斯金字塔結構的構建模塊.目前,團網CilqueNet僅被用于高級計算機視覺任務(例如,對象識別等).該網絡可以最大化卷積層間的交流,提取更多的特征.因此,本文對其進行改進,并引入SR網絡中.

圖1 LCN結構Fig.1 LCN structure
網絡結構如圖1所示,將ILR作為系統的輸入,ISR,S作為拉普拉斯金字塔結構第S級重建網絡的輸出.則ISR,S可由下式得出:

其中,HLCN,S()表示獲得拉普拉斯金字塔第S級高分辨率圖像HR的過程,可以是復合函數.關于LCN的更多細節將在2.2與2.3節中詳細給出.
本文網絡采用拉普拉斯金字塔結構.如圖1所示,在金字塔結構的每個層級中均包含特征提取和圖像重建兩個過程.
由于低分辨率圖像與高分辨率圖像在信息上有很多地方是共享的,因此本文僅對殘差進行學習.在特征提取過程中獲取殘差圖像,在圖像重建過程中將殘差圖像與低分辨率圖像矩陣相加,獲得高分辨率圖像.從而減少網絡參數,有利于梯度傳輸,防止梯度消失或梯度爆炸.
2.2.1 特征提取
對于一個非常深的網絡來說,直接將LR空間中的每個卷積層所提取到的全部特征都輸出是困難和不切實際的.因此,本文提出使用CNB作為拉普拉斯金字塔結構的構建模塊,以便可以提取更多的特征.
在拉普拉斯金字塔的每個層級中,特征提取均由CNB構建模塊、上采樣網絡(UPNet)、殘差提取網絡(RESNet)三個部分組成.輸入依次經過CNB構建模塊、上采樣網絡、殘差提取網絡,預測在當前金字塔層級上的殘差圖像.其中,每個上采樣網的輸出連接到兩個不同的層,其中一層用于在金字塔本層級上提取殘差圖像,另一層作為金字塔下一層級特征提取的輸入.
將F0,S作為拉普拉斯金字塔S級的輸入,假設在拉普拉斯金字塔結構的第S級中有n個CNB構建模塊,則第n個CNB構建模塊的輸出Fn,S可由下式得出:

其中,HCNB,n()表示第n個CNB構建模塊的特征提取,可以是復合函數.關于CNB構建模塊的更多細節將在2.3節中給出.HSFE()表示網絡輸入ILR經過淺層特征提取網絡(SFENet),進行特征提取的卷積運算.
在獲得CNB構建模塊提取到的細節特征之后,使用上采樣網絡對其進行上采樣,則圖像在S級上獲得的上采樣特征FUP,S可由下式所得:

其中,HUP()表示卷積運算.輸入Fn,S為S級中經過n個CNB構建模塊后所獲得的細節特征.
在獲得上采樣特征之后,使用殘差提取網絡來獲取殘差圖像,則在拉普拉斯金字塔S級中生成的殘差圖像IRES,S可由下式得出:

其中,HRES()表示卷積運算.輸入為金字塔S級圖像經過上采樣網絡后得到的特征FUP,S.至此,拉普拉斯金字塔結構第S級的特征提取完成.
2.2.2 圖像重建
在拉普拉斯金字塔的每個層級中,圖像重建主要由上采樣網(UPNet)和殘差融合兩部分組成.輸入首先經過上采樣網,然后將上采樣得到的放大后的低分辨率圖像與來自特征提取分支獲得的殘差圖像進行像素求和,以產生高分辨率的輸出圖像.同時將輸出的高分辨率圖像作為下一級金字塔的輸入,重建下一級的高分辨率圖像.
在金字塔S(S>=1)級上,當S=1時,使用上采樣網對輸入的低分辨率圖片進行上采樣.除此之外,使用上采樣網對S-1級生成的高分辨率圖像進行上采樣.上采樣后獲得的放大的低分辨率圖像可由下式得出:

其中,HUP()表示卷積運算.輸入ILR為低分辨率圖片,ISR,S-1為 S -1 級重建網絡的輸出.
最后將上采樣獲得的低分辨圖像ILSR,S與特征提取獲得的殘差IRES,S進行融合,獲得金字塔S級重建的高分辨率圖像ISR,S可由下式得出:

至此,拉普拉斯金字塔結構的超分辨率圖像重建完成.
如圖2所示為具有4層結構的Clique Block模塊.除了輸入節點F0,n,S外,同一Clique Block中的任意兩層之間都是雙向連接的,即任意層都是另一層的輸入和輸出.每一個Clique Block有兩個階段組成,第一個階段用于初始化團塊中的所有層,從第二階段開始,這些層將會被重復提取.
由于本文是專為圖像SR設計的網絡.因此,我們將CilqueNet進行改進.首先,我們刪除了與卷積層消耗相同數量GPU內存的批量標準化(Batch Normalization,BN)層,該層增加了計算復雜度,并且降低了網絡的泛化性能.其次,由于池化層的存在,將導致網絡丟棄一些像素級別的信息,因此我們刪除了池化層.最后,我們通過使用局部特征融合(LFFNet)網絡,將網絡中第二階段循環k次提取的到全部特征進行融合,以充分的利用分層特征,這在CilqueNet網絡中是被忽略的.我們將改進后的結構稱為CNB構建模塊.

圖2 Clique Block 結構[10]Fig.2 Clique Block structure[10]
本文提出的具有5層的CNB構建模塊如圖3所示.包含團連通網絡與局部特征融合(LFFNet)網絡.在團連通網絡中,除了輸入節點外,同一CNB中的任意兩層之間都是雙向連接,層間交替更新的.第一階段,用于初始化塊中的所有層.第二階段,這些層將會被重復提取,重復更新.由于第二個階段提取了更多的特征,因此,在局部特征融合網絡中,我們將團連通網絡中,第二階段循環k次提取到的特征進行融合,作為下一個CNB構建模塊的輸入.

圖3 CNB結構Fig.3 CNB structure
2.3.1 團連通網絡
第一階段,輸入層Fn-1,S通過單向連接初始化該CNB構建模塊中的其他所有層,每個更新的層被連接起來以更新下一層.我們將進行更新的層設為頂層,其他各層設為底層,且將底層的相應參數連接.為了方便后面通用式子的推導,我們將輸入節點 Fn-1,S改寫為 F10,n,S.則第一階段,金字塔 S 級中的第n個CNB中的輸入節點如下所示:

因此,第一階段,金字塔S層級中,第n個CNB構建模塊的第c層輸出可由此通用式得出:

其中,σ()表示非線性激活函數,*表示帶參數W的卷積運算.Wij,n,S表示更新過程中各層之間的權值,Wij,n,S在不同階段重復使用,每一層都將從最近更新的層接收反饋信息.
第二階段開始,各層開始交替更新.我們同樣將進行更新的層設為頂層,其他各層設為底層,且將底層的相應參數連接.因此,金字塔 S層級中,第 n個 CNB構建模塊的第c(c>=1)層,在第二階段,第k次(k>=2)循環中的輸出可由此通用式得出:

具有5層CNB的傳遞如表1所示.由兩個階段組成,第一個階段用于初始化塊中的所有層,第二個階段開始,這些層將會被重復提取,進行k次交替更新.

表1 層數為5的團塊信息傳遞[10]Table 1 Clique block information transfer with layer number 5[10]
2.3.2 局部特征融合網絡
由于第二個階段提取了更多的特征,因此應用局部特征融合(LFFNet)網絡,自適應的融合第二階段第k(k>=2)次循環提取到的局部特征.本文使用卷積層內核大小為1×1,自適應地控制輸出信息,則融合后的第n個CNB構建模塊的輸出為Fn,S可由下式得出:

其中,HLFF()表示卷積運算.至此,CNB構建模塊特征提取完成.
首先,對本文的實驗設置進行描述.然后,對網絡結構的有效性進行分析.接著,與其他算法在4個基準數據集上進行測試,并將所測的平均值與其他算法進行對比,為了對比的公正性,本文算法與另外6種算法均使用相同的訓練集.最后,將展示本文算法在解決通用圖像方面的有效性.
硬件平臺配置.本文硬件實驗平臺的處理器為Intel(R)Core(TM)i7-7700,主頻為 3.6GHz,內存為 16GB.
訓練集與測試集.本文使用了291張圖片作為訓練數據集,其中91張圖片來自Yang[12]等人,其他的200張圖片來自Berkeley Segmentation Dataset[13]訓 練 集.VDSR、DRCN、LapSRN也使用相同的訓練數據集,后面我們將會與這些模型進行對比.我們使用4個被廣泛使用的基準數據集Set5、Set14、BSDS100和 Urban100進行測試.其中,Set5、Set14和BSDS100由自然場景組成,Urban100由具有不同細節的具有挑戰的城市場景圖像組成.
訓練設置.將RGB圖像轉換為YCbCr信號,本文只對亮度通道Y進行超分辨重建,Cb、Cr通道進行雙三次插值放大.因此,輸入圖像與輸出圖像具有相同的大小.以三種方式增加訓練數據:1)縮放:按照[1,0.9,0.8,0.7,0.6,0.5]倍數進行圖像的縮小;2)旋轉:將圖像旋轉90度、180度以及270度;3)翻轉:以0.5的概率水平和垂直翻轉圖像.將動量參數設置為0.9,權值衰減設置為1e-4,學習率設置為1e-4.
訓練細節.輸入的LR圖像通過內核大小為3×3的卷積,輸出通道設置為64,作為金字塔第1層級特征提取分支的輸入.卷積之前在輸入的邊界填充零,以保持輸出的大小與每個金字塔層級的輸入相同.轉置卷積的卷積層內核大小為4×4.每個CNB中,團連通網絡的卷積層內核大小均為3×3,局部特征融合網絡的卷積層內核大小為1×1.除這些之外,其余卷積核的大小均為3×3.
測試設置.使用變換后的YCbCr空間的Y分量上的峰值信噪比PSNR和結構相似性SSIM[14]評估HR圖像,最優值用粗體標出.
拉普拉斯金字塔結構.為了說明金字塔模型的有效性,我們刪除網絡的金字塔結構進行4倍放大因子的訓練并測試,與本文的LCN算法進行對比.為了對比的有效性,除了金字塔結構使用與否外,兩個網絡使用相同的訓練數據集,輸入均采用雙三次下采樣的LR圖片,并通過相同個數的CNB構建模塊.最后我們在兩個基準數據集Set5和BSDS100上進行測試,測試結果如表2所示.由表2可知,在Set5與BSDS100這兩個測試數據集上,拉普拉斯金字塔結構在客觀評價指標PSNR/SSIM上對重建的 HR圖像分別有0.19dB/0.003和0.09dB/0.001的提升.其中,文中所述結果均為在相應數據集上的平均值.

表2 金字塔結構對網絡的影響Table 2 Impact of pyramid structure on the network
CNB構建模塊個數.我們將CNB構建模塊的個數n分別設置為1、2和3,同時進行4倍放大因子的訓練與測試.為了測試的公正性,除了CNB構建模塊的個數不同以外,其他各項均保持一致.將每個CNB構建模塊中的層數c設置為5.在兩個基準數據集上測試,得到CNB構建模塊的數量對網絡的影響.由表3可知,在Set5與BSDS100這兩個測試數據集上,當CNB構建模塊的個數n由1增加到2時,圖像的評價指標PSNR/SSIM隨著網絡復雜度的提升而有0.11dB/0.007和0.02dB/0.001 的提升.但是,當網絡的復雜度到達一定程度時,網絡參數增加,僅通過殘差學習來減少網絡參數已經無法滿足網絡.因此,CNB構建模塊的個數由2增加到3后,網絡的性能非但沒有增加,反而稍有下降,如表3所示.
CNB構建模塊層數.我們將CNB構建模塊的層數c分別設置為3、4、5并進行4倍放大因子的訓練與測試.將每個CNB的個數n設置為2,得到CNB構建模塊中層數c對網絡的影響.由表4可知,隨著層數c由3增加到4,在Set5和BSDS100這兩個測試數據集上,圖像的評價指標PSNR/SSIM有 0.10dB/0.001和0.01dB/0.001的提升.但是當c由4增加到5后,在測試數據集Set5中,圖像的評價指標PSNR/SSIM 依然有0.06dB/0.001的提升,在測試數據集BSDS100

表3 CNB個數n對網絡的影響Table 3 Impact of the number of CNBs on the network

表4 CNB層數c對網絡的影響Table 4 Impact of CNB layer number c on the network
中,網絡的性能評價指標SSIM卻稍有下降.綜合考慮,本文選擇n為2,c為5作為模型的最佳參數與其他算法進行對比.

表5 算法定量對比Table 5 Quantitative comparison between algorithms
由于訓練數據集將會對算法的測試產生影響.為了對比的公正性,我們的LCN與下面6種基于學習的超分辨率算法SRCNN、FSRCNN、VDSR、DRCN、LapSRN、RSRD[15]均使用相同的291張數據集進行訓練.表5顯示了上述算法與本文提出的LCN算法在4個基準測試數據集上,放大因子為2以及4的定量對比.其中,表內其他算法在相應數據集上測試的結果引用LapSRN與RSRD論文中公開發表的數據.
由表5可知,在使用相同訓練數據集的情況下,本文算法優于上述算法.在客觀指標上,本文提出的算法重建后的圖像在客觀評價指標PSNR與SSIM上分別有0.05dB至0.36dB與0.001至0.006的提升.在主觀視覺效果上,本文提出的算法能夠重建出更接近真實的圖像.在圖4和圖5中,對分別來自測試集BSDS100中的“37073”以及Urban100中的“image_093”的圖像進行4倍放大因子的重建,從主觀方面展示了幾種重建方法的重建效果.由圖4和圖5可以看出,本文所提出的LCN算法與其他算法相比,不僅可以恢復出較清晰的邊緣特征而且可以準確的重建平行直線和網格直線,重建后的圖 片更加的接近于真實圖片.

圖4 “37073”四種算法重建的比較Fig.4 Comparison of four algorithm reconstructions for“37073”

圖5 “image_093”四種算法重建的比較Fig.5 Comparison of four algorithm reconstructions for“image_093”
本文提出了一種拉普拉斯金字塔結構的團網絡超分辨率圖像重建算法,用來解決SR問題.采用拉普拉斯金字塔結構,通過漸進式重建高分辨率圖像的方式,逐步地優化重建結果.將殘差學習應用到網絡中,減少網絡參數,避免梯度爆炸.同時,為了最大化層間交流,將CNB作為拉普拉斯金字塔結構的構建模塊.在每個CNB模塊中,任意兩個卷積層之間既有前向又有反饋連接,層間信息交替更新,使層間信息流和反饋機制最大化,連接更加密集,提取到更多細節的特征.
在4個基準數據集上進行廣泛的評估,實驗表明本文提出的算法在圖像客觀評價指標PSNR與SSIM上,分別有0.05dB至0.36dB 與0.001 至0.006 的提升.在視覺質量上也取得了較好的效果,不僅消除了重建偽像,在對邊緣以及線條的重建上更是取得了較好的結果,更加適用于通用的圖像.但是本算法所用的參數較多,當網絡基本構建模塊CNB的個數以及層數增加到一定量時,僅靠殘差學習無法消除梯度爆炸帶來的重建質量下降問題,因此有待進一步改進算法.