陶 狀,廖曉東,2,3,沈江紅
1(福建師范大學 光電與信息工程學院,福州 350007)
2(福建師范大學 醫學光電科學與技術教育部重點實驗室,福建省光子技術重點實驗室,福州 350007)
3(福建師范大學 福建省先進光電傳感與智能信息應用工程技術研究中心,福州 350007)
圖像超分辨率重建是指從低分辨率圖像中獲得高分辨率圖像.在硬件限制的條件下,往往無法獲得高分辨率圖像,這時通過軟件的方式來獲得就顯得尤為重要.例如在醫學圖像中,由于成像設備的制約,產生的圖像得不到令人滿意的結果,而更換硬件的成本昂貴,通過軟件算法生成高清圖片幫助醫生判斷是一種很好的選擇.在安防系統中拍攝的視頻需要存儲,由于高分辨率圖像需要更多的存儲空間,所以通常都是存儲低分辨率圖像,但是在需要時重新查看這些視頻圖像往往需要高清的圖像來進行觀察分析.在目標檢測中,小目標檢測更具挑戰性,文獻[1]驗證了通過對小目標區域進行超分辨重建可以提高檢測的性能.總體來說,高分辨率圖像具有更好的視覺感受,具有更豐富的細節信息,有助于圖像的理解、處理和分析.超分辨重建逐漸成為圖像處理領域研究的熱點問題.
圖像超分辨率重建算法可以分為3 類,基于插值的方法、基于重建模型的方法、基于學習的方法.其中基于插值的方法計算速度很快,但是重建的高分辨圖像的質量不好.基于重建模型的方法通常采用復雜的先驗知識來限制可能的解空間,這種方法具有生成靈活和銳化細節的優勢,但是當比例因子增加時,重建的性能迅速下降,并且速度通常很慢.基于學習的方法例如馬爾科夫隨機場、隨機森林、稀疏編碼等直接構建從低分辨率圖像到高分辨率圖像的映射關系,具有快速計算和杰出性能的優勢,近年來基于深度學習的方法逐漸成為當前最具優勢的算法.
由于大量可用的數據和高效計算硬件的開發,基于深度學習的圖像超分辨率重建得到迅速的發展.第一次將深度學習用在圖像超分辨率任務上的是Dong等人[2]提出的SRCNN,他們首先用插值法將低分辨率圖像上采樣到所需的高分辨率圖,然后使用3 層卷積神經網絡進行特征提取、轉換和重建得到最后的高分辨率圖像,使用均方差損失函數訓練網絡.SRCNN用插值法進行上采樣帶來的細節平滑效應往往導致輸入圖像的結構發生錯誤估計,此外在一開始進行上采樣會大量增加后續操作的計算量.基于這些缺點,文獻[3]提出一種叫做亞像素卷積層的高效上采樣方法,他們首先利用卷積操作來增加特征圖的通道數,然后將特征圖的像素重新組合,達到上采樣的目的,其方法如圖1 所示.這種方法可以在網絡的最后將低分辨特征圖變換到高分辨率圖,網絡的主體在低分辨圖上進行計算,從而大大減少了計算量加快了運行速度.

圖1 亞像素卷積層示意圖
從另一個方面考慮,SRCNN 只用了3 層卷積神經網絡,然而在計算機視覺的其他任務中,更寬更深的網絡拓撲結構通常會帶來更優的結果.VDSR[4]是在超分辨率重建任務中第一個提出的非常深的模型.首先在結構上VDSR 使用的是20 層卷積神經網絡,鑒于可以有效增加感受野的最小卷積核大小是3,所以在VDSR中所有的卷積核大小都設為3,為了有效訓練深的網絡,VDSR 使用相對較高的初始學習率來加速收斂并且使用了梯度裁剪技巧來防止梯度爆炸.此外VDSR中還提出了一個重要的觀點,在低分辨率圖像到高分辨率圖像重建的過程中,高分辨率圖像包含大量的低分辨率圖像的信息,因此網絡所需要學習的是低分辨率圖像的高頻部分,這可以通過殘差操作來實現即將淺層特征圖通過跳轉連接和網絡后端的抽象特征圖相加.在之后深度學習的發展中,性能更好的殘差網絡和稠密網絡先后被運用在圖像超分辨率重建的任務中.
最近基于殘差稠密網絡[5]的圖像超分辨率重建算法被提出.殘差稠密模塊如圖2 所示,一方面它利用長跳轉殘差操作來避免在訓練中梯度消失的問題,另一方面模塊中所有的卷積層都被傳遞到后面所有的層中,這種特征重復利用的方式提高了網絡的學習效率,最后所有特征圖沿著通道方向拼接在一起,然后用1 ×1的卷積層壓縮通道,自適應的選取有用特征.殘差稠密網絡在圖像超分辨率中表現優異,本文所提的雙路徑反饋網絡是對殘差稠密網絡的改進,進一步提高其性能.

圖2 殘差稠密模塊示意圖
由于低分辨率圖像與重建的高分辨率圖像高度相似,因此低分辨率圖像信息對重建的高分辨率圖像至關重要.殘差稠密網絡使用長跳轉連接操作將低級特征傳輸到網絡后端與高級特征進行融合,并沒有直接利用輸入的低分辨率圖像.鑒于這種動機,本文所提的雙路徑反饋網絡一條分支為殘差稠密網絡,另一條分支使用亞像素卷積算法直接對輸入的低分辨率圖像進行上采樣到所需分辨率,然后兩條分支信息融合并通過反饋網絡循環訓練.這種方法減少了網絡學習的難度同時保證了重建圖片的質量.
本文所提的雙路徑反饋網絡可分解成3 部分:首先是基于殘差稠密網絡的高頻信息提取路徑,其次是基于亞像素卷積上采樣的低頻信息提取路徑,最后是將兩條路徑進行信息融合后的反饋網絡.
殘差稠密網絡[5]由殘差稠密模塊堆疊組成,如圖3中的上面一條分支所示.輸入的是低分辨圖像,首先進過一個卷積層將圖像轉換到特征域,第一個卷積層提取的是圖像的淺層特征,然后將淺層特征輸入到第二個卷積層進行特征變換,接著順序的通過一系列稠密殘差模塊并且每個殘差稠密模塊輸出的特征圖都會被聚集在一起.假設輸出的特征圖為 Fx∈RB×C×H×W,其中B、C、H、W 分別表示批量數、通道數、特征圖的高和寬,網絡中總共堆K 個稠密殘差模塊,沿著通道方向將所有特征圖拼接在一起得到 Fa∈RB×KC×H×W,具有通道數為KC 的特征圖 Fa之后通過1 ×1的卷積層通道數被壓縮為C,保持和淺層特征圖的數據維度一致.

圖3 雙路徑反饋網絡的架構示意圖
如圖3 第一條分支所示,淺層特征除了被輸入到之后的卷積層,還會通過長跳轉連接操作被直接傳輸到網絡的后端,這種殘差學習保證了淺層信息的流通,在反向傳播時不會由于網絡加深而導致的梯度消失影響到淺層參數的更新.
一幅圖像從頻率角度可以看成是高頻部分與低頻部分的疊加,高頻表示的是圖像變化劇烈的地方,如輪廓、線條,低頻表示的是圖像變化緩慢的地方.對于人的視覺系統來說,人腦對低頻部分的變化更敏感,高頻部分的變化往往感受不到.因此在圖像超分辨率重建中,保證重建圖像低頻部分的質量是算法需要滿足的基本前提,為此本文提出亞像素卷積路徑為重建圖像提供低頻信息,高頻部分則由另一條路徑學習得到.
如圖3 第二條分支所示,上采樣模塊直接作用在原始輸入的低分辨率圖像上,其過程如圖4 所示:首先通過1 ×1的卷積擴大輸入圖像的通道數,然后通過像素值重新安排來擴大分辨率.假設輸入的圖像通道數為C,上采樣因子為r,則通過1 ×1卷積需要將通道數擴張到 C ×r2,之后通過像素重排得到的高分辨率圖像為C×rH×rW.

圖4 上采樣路徑示意圖
所提方法整體架構的前半部分是雙路徑網絡,一條路徑為深度網絡來學習高頻信息,另一條路徑為淺層網絡提供低頻信息,兩條路徑分別經過上采樣模塊后進行信息融合.融合的過程如下:高頻路徑的特征圖為 Fh∈RB×G×H×W,低頻路徑的特征圖為Fl∈RB×C×H×W,沿著通道方向將 Fh與 Fl拼接得到特征圖Fhl∈RB×(G+C)×H×W,然后通過卷積核大小為1、通道數為G 的卷積層自適應的從高、低頻信息中選擇所需的特征.
為了進一步提高高分辨率圖片重建的質量,將融合后的特征圖輸入到反饋網絡來局部循環訓練,反饋網絡可以在不增加參數的情況下,擴大特征圖的感受野,有利于增強網絡的表示能力.反饋網絡可表示如下:

損失函數用來衡量網絡預測的圖像與真實圖像之間的差異,然后通過梯度下降算法不斷迭代優化使損失值越來越小,損失值收斂時網絡預測的圖像將非常接近真實圖像.
本文采用L1損失函數來訓練所提的方法,其可以用以下公式表示:

本文使用DIV2K 作為訓練集.DIV2K 數據集包含1000 張高質量的圖像,其中800 張為訓練集,100 張為驗證集,100 張為測試集.本文所提方法使用800 張訓練圖像訓練,選取驗證集中10 張圖像作為訓練過程中的評估,然后在基準數據Set5,Set14,B100,Urban100 上測試.
殘差稠密網絡的配置與文獻[5]保持一致,反饋網絡循環的次數設為2.所有實驗在Windows 10 系統,Pycharm 開發工具,深度學習開源框架Pytorch 0.41,NVIDIA 1080ti GPU 上完成,一次完整訓練大概需要1 天時間.
低分辨率圖像是在高分辨率圖像上通過雙三次插值且降采樣因子為4 計算得到的.在訓練的過程中,批量大小為16,高分辨率圖像被隨機裁剪成大小為128 的圖像塊,使用隨機水平和垂直翻轉來進行數據增強.使用Adam 優化器更新參數,學習率設為0.0001,其余參數保持默認值,每個訓練周期迭代1000 次,總共訓練200 個周期.
本文在數值上使用峰值信噪比(PSNR)[6]和結構相似度(SSIM)[7]來評估圖像超分辨率重建的性能,PSNR 和SSIM 的值越大表明圖像重建的質量越好.本文所提方法與雙三次插值法、SRCNN、RDN 在數值上和視覺上相比較來說明所提方法的性能.
表1 顯示了PSNR 和SSIM 在測試集上的結果,插值法和SRCNN 的重建的原圖來自文獻[8]的作者提供,RDN 重建的原圖無法獲得,本文根據網絡提供的代碼重新訓練.在測量PSNR 和SSIM 的數值時,本文將原始RGB 圖像轉到Ycrcb 色彩空間,然后取Y 通道進行數值計算,PSNR 和SSIM 的計算公式采用scikitimage 提供的函數.

表1 PSNR 和SSIM 在測試集上的結果
觀察表1 中的數值可以看出,本文算法在4 個測試集上PSNR 和SSIM 的值都高于其他3 種方法.雙三次插值法由于固有因素重建的圖像質量低于基于深度學習的方法.SRCNN 使用淺層的單一結構的卷積神經網絡,在重建圖像的質量上面低于深層的網絡.本文方法基于RDN 的改進,在增加了一條直接上采樣的路徑和局部反饋網絡之后,提供了重建圖像更多的特征信息,使得的評價指標有小幅上漲,這說明了本文所提算法的有效性.
圖5 至圖8 分別展示了在數據集Set5,Set14,BSD100,Urban100 上的重建效果圖.為了方便觀察,圖像的局部區域被放大顯示在下半部分.通過觀察放大部分的圖像,在視覺上雙三次插值法僅僅通過線性公式對圖像進行4 倍上采樣,所得圖像局部放大后模糊不清.SRCNN 重建的圖像效果雖然比雙三次插值法好,但是由于只使用3 層網絡,重建的結果仍然比較模糊.本文算法與RDN 相比,由于引入了更多了特征,重建的圖像顯得比較光滑,看上去更清晰.

圖5 數據集Set5 中圖像“butterfly”的重建結果展示圖

圖6 數據集Set14 中圖像“barbara”的重建結果展示圖

圖7 數據集BSD100 中圖像“119082”的重建結果展示圖

圖8 數據集Urban100 中圖像“img096”的重建結果展示圖
本文通過一組對比實驗來確定網絡的反饋次數.圖9 顯示了實驗結果對比圖,橫坐標為反饋次數,縱坐標為在驗證集上的PSNR 值.隨著反饋次數的增加,網絡中的感受野增大,網絡性能通常會提升.從圖中可以看出當反饋次數為2 時所提方法在驗證集上的PSNR值最大,所以本文設定反饋次數為2.當反饋次數大于2 時,由于缺少監督可能導致網絡性能下降.

圖9 不同反饋次數性能對比圖
本文提出一種基于雙路徑反饋網絡的圖像超分辨率算法,兩條路徑分別為深度網絡和淺層網絡,深度網絡學習重建圖像的高頻信息,特別的淺層網絡直接給重建圖像提供低頻信息,有利于訓練前期網絡穩定的優化迭代.此外模型中所采用的反饋網絡利用局部循環訓練進一步提高了圖像重建的質量.最后本文在4 個基準數據集上通過數值和視覺兩方面驗證了所提方法的有效性.