張 健,何京璇,王 容
(海南大學,海南 海口 570228)
圖像所包含的信息量大小在很大程度上取決于圖像的分辨率高低,因此分辨率成為評價圖像質量的關鍵指標。
圖像的超分辨率技術[1]是指從一幀或多幀分辨率低的觀測圖像中恢復出高分辨率圖像或圖像序列的技術。根據對當前文獻的研究,基于學習的超分辨率技術無論是在圖像質量還是圖像類型上都優于基于插值[2]和基于重建的方法[3-4]。基于學習的超分辨率技術主要有:CHANG H等人提出的鄰域嵌入算法[5]、TIMOFTE R等人提出的固定鄰域回歸[6]和調整的固定鄰域回歸[7]、YANG J C等人提出的稀疏編碼算法[8]、DONG C等人提出的利用卷積神經網絡對圖像進行超分辨率重建(SRCNN)的算法[9-10]等。
基于卷積神經網絡的特征,本文提出一種新的圖像重建算法,通過卷積操作提取原始LR圖像豐富的圖像特征,在網絡末用反卷積進行高分重建,同時在網絡中加入殘差結構提升網絡性能。實驗結果顯示,相比于Bicubic[2]、SRCNN等方法,本文提出的算法具有更好的圖像超分辨率重建結果,且運算速度、網絡收斂速度更快,系統性能更穩定。
由DONG C等人[10]提出的SRCNN算法是一種基于卷積神經網絡的圖像重建算法,該算法首先利用Bicubic方法將輸入的低分辨率圖像放大,達到與將要輸出的高分辨率圖像相同的尺寸后,再經過三個卷積層得到重建的圖像。圖1展示了SRCNN的網絡結構。

圖1 SRCNN的網絡結構
如圖1所示,首先通過Bicubic方法得到放大后的圖像,根據第一層卷積操作對圖像進行特征提取,再通過第二個卷積層實現非線性映射,最后由第三個卷積層實現對圖像的重建,從而獲取高分辨率的圖像。SRCNN實現了將CNN用于圖像處理的問題,但是需要采用雙三次插值法對圖像進行預處理,運算速度較慢。
本文利用反卷積代替傳統的雙三次插值,并在網絡中加入殘差結構,同時引入反卷積層對處理后的圖像進行上采樣,通過調整步長實現對采樣因子的調整,從而實現不同尺寸的高分辨率圖像的重建。
圖2展示了本文算法的網絡框架。第一層卷積Conv1作為特征提取層,將低分辨率的圖像直接輸入至網絡,采用64個卷積核對圖像進行卷積以提取圖像的原始特征信息,生成64個特征圖,形成C1層。Conv1層的卷積核的尺寸大小為5×5。
Conv2、Conv3以及Conv4構成了非線性映射層。將Conv1生成的64個特征圖輸入至殘差網絡模塊,經過殘差網絡輸出64幅特征圖,即C3層,然后采用32個卷積核進行卷積操作生成32個特征圖,形成C4層。Conv2、Conv3、Conv4層卷積核的尺寸大小都為3×3。
最后一層deconv為反卷積層,運用反卷積上采樣操作實現了最終圖像重建。本文設計的網絡模型中將反卷積核的尺寸設置為9×9,并通過調整步長來調整采樣因子,實現低分辨率圖像的不同放大尺寸的重建。
當步長s大于1時,卷積相當于下采樣操作,而反卷積相當于上采樣操作,當步長等于1時,卷積與反卷積本質上相同。網絡的復雜度與步長有直接關系,當步長s大于1時,網絡的復雜度將會降低s2,但是如果步長過大,會嚴重影響圖像重建的質量。圖3展示了反卷積操作過程,該過程可用式(1)表示:
F1(Y)=max(W1*Y+B1,0)+ajmin(0,W1*Y+B1)
(1)
其中,Y為輸入的低分辨率圖像,參數W1和B1分別是反卷積核的權重矩陣和偏置量,F1(Y)則表示經反卷積操作后得到的上采樣圖像。通過在反卷積層中設置步長k(參數“stride”),實現對輸入圖像的k倍放大。

圖2 本文算法的網絡框架

圖3 反卷積操作過程
相較于雙三次插值得到一個連續插值函數的方法,插值本質上是圖像的低通濾波器,此方法雖能得到比較平滑的圖像,然而在插值處理時濾去了圖像的高頻信息,因而圖像在細節上會有所缺失。本文用反卷積代替雙三次插值,并將其放置于網絡末端用于圖像重建,與SRCNN相比較計算復雜度只與LR尺寸相關,提高了網絡速度,并且不損失圖像細節。
非線性映射是圖像超分辨率重建過程中最重要的一個階段,該階段對性能的影響最為重大。增大非線性映射階段的網絡層數能夠實現更好的低分辨率圖像重建效果,但是隨著隱藏層數的增加,會出現梯度爆炸/梯度消失以及網絡性能退化等問題[11-12]。因此,本文在非線性映射階段加入殘差網絡,實現更有效的梯度下降,使得整個網絡收斂更快、精度更高,且未引入任何額外的參數以及計算復雜度。殘差模塊堆積組成殘差網絡,一個殘差塊又分為直接映射部分和殘差部分[12-14]。圖4展示了殘差網絡中一個殘差模塊的結構,殘差網絡結構可由式(2)描述:
y=x+f(θ,x)
(2)
其中,x為殘差網絡的輸入,θ是殘差網絡結構的參數,f(θ,x)則為網絡學習到的殘差映射關系,一般由兩個或三個卷積操作構成,y表示殘差網絡的輸出。本文采用的殘差網絡只包含一個殘差模塊,且殘差模塊只包含卷積層、激活函數層以及快捷連接,并沒有使用批量化單元。

圖4 一個殘差模塊的結構
多個卷積層級聯的輸出和輸入元素間相加得到殘差塊的輸出,利用恒等映射(identity mapping)來構建新增的層,解決了極深度條件下深度卷積神經網絡性能退化的問題。同時,恒等映射避免了新增層對模型精度的影響,避免模型變差的問題。此外,在網絡訓練反向傳播時,可加快損失傳到前層網絡,對前層權重值進行修正,所以總體上提高了網絡的精度。
本文采用的激活函數為帶參數的修正線性單元(PReLU)[15],與ReLU激活函數相比,PReLU激活函數只增加少量計算量,但實現了更高的準確率,并且能夠避免ReLU激活函數造成的“dead features”現象[16]。PReLU激活函數在一定程度上能夠起到正則效果。
本文采用真實圖像與網絡預測圖像的均方誤差(Mean Squared Error,MSE)表示損失函數(Loss Function),如式(3)所示:
(3)
其中,Θ={Wm,bm}表示訓練學習的網絡參數,F(Ym;Θ)和Xm分別表示網絡預測圖像與一組真實圖像,通過最小化L(Θ)經反向傳播修正網絡各層的Θ參數,從而得到最佳的映射模型。
本文實驗采用文獻[7]中提供的公開數據集Timofte dataset,該數據集包含91張訓練圖像和兩個測試數據集Set5、Set14。
為了提升訓練圖像數據的有效性[17-18],本文對91張原始訓練圖像進行包括旋轉、縮放在內的數據擴大,最后得到1 820張圖像作為訓練集。使用Set5的圖像作為訓練過程中的驗證集。
為驗證本文算法的重建性能以及網絡收斂速度,實驗中對91個圖像分別進行放大倍數為2的500萬次迭代訓練和放大倍數為3的300萬次迭代訓練以及放大倍數為4的100萬次迭代訓練,并使用公開數據集Timofte dataset中的Set5、Set14以及在圖像超分辨率重建領域通用的BSD200[19]進行測試,并將測試結果與Bicubic、RFL[20]、FSRCNN-s[10]、SRCNN[21]等方法進行比較。本文使用RMSE(均方根誤差)、PSNR(峰值信噪比)、SSIM(結構相似性指數)作為生成的高分辨率圖像的質量評價標準。
表1和表2分別展示了當訓練集為91[7]張圖像時,各重建方法分別在2倍、3倍、4倍圖像放大比例下的RMSE均值及PSNR均值。
表3展示了當訓練集為91[7]張圖像時,各超分辨率重建方法分別在2倍、3倍、4倍圖像放大比例下的SSIM均值。表4展示了當訓練集為91張圖像時,各超分辨率重建方法分別在2倍、3倍、4倍圖像放大比例下各測試集上的測試時間。

表1 不同放大比例下各測試集經不同方法處理后RMSE的平均值

表2 不同放大比例下各測試集經不同方法處理后PSNR的平均值

表3 不同放大比例下各測試集經不同方法處理后SSIM的平均值

表4 不同放大比例下在各測試集上重建的測試時間 (s)
由表1和表2可知,本文所提算法RMSE的值明顯低于其他方法RMSE的值,而PSNR的值均高于其他方法;從表3可以看出經過本文算法重建后的SSIM的值均高于其他方法;由表4可見,本文算法重建的測試時間更短,效率更高。
圖5和圖6分別展示了在2倍和4倍方法比例下,Bicubic、SRCNN以及本文方法對圖像“butterfly_GT”和“lenna”的重建效果對比。

圖5 2倍放大比例下“butterfly_GT”的重建效果對比

圖6 4倍放大比例下“lenna”的重建效果對比
針對現有的SRCNN算法,本文提出了一種新的圖像超分辨率重建算法,基于卷積神經網絡,圖像特征提取源自低分辨率的空間,降低了系統算法的計算復雜度,通過反卷積層實現最終的圖像重建,同時在網絡中加入殘差結構,大大優化了網絡的性能。實驗結果表明,相比Bicubic、SRCNN等方法,本文方法取得了更好的圖像重建性能,運算速度大大提升,且在較少次數的訓練下達到更好的效果,提高了算法的性能。下一步將研究其他更有效的網絡模型,在獲得更優的超分辨率重建效果的同時,達到視頻實時處理的要求。