張海濤,趙 燚
(遼寧工程技術大學 軟件學院,遼寧 葫蘆島 125105)
圖像超分辨率(Super-Resolution,SR)重構的目標是根據(jù)輸入的一幅或者多幅低分辨率(Low-Resolution,LR)圖像來估計高分辨率(High-Resolution,HR)圖像.從本質上說,由于在圖像降質過程中的信息丟失,這些降質過程基本上都是不可逆的,因此圖像超分辨率重構是一個不適定問題.
目前,單幀圖像超分辨率重構(Single Image Super-Resolution,SISR)可分為三大類:基于插值的方法[1-4]、基于重構的方法[5-8]和基于學習的方法[9-16].在早期研究中最常使用圖像插值法,根據(jù)低分辨率圖像的局部統(tǒng)計信息和空間關系來估計高分辨率圖像.典型的圖像插值方法包括二次線性插值法(Bilinear)、二次立方插值法(Bicubic)和邊緣定向插值法(Edge Directed).但是,基于插值的圖像超分辨率算法更傾向于將圖片處理得平滑.基于重構的方法是利用信號處理技術來求解成像系統(tǒng)的逆過程,進而得到高分辨率圖像,但是其運算較為復雜.基于學習的圖像超分辨率重構算法由于具有較好的超分辨率重構質量成為近幾年的研究熱點,其主要思想是通過一個包含高、低分辨率圖像的外部數(shù)據(jù)集學習得到先驗知識,這種先驗知識通常是低分辨率圖像與其對應的高分辨率圖像之間的映射關系,從而在給定低分辨率圖像的情況下,通過優(yōu)化方法獲得相應的高分辨率圖像.Chang等人提出基于局部線性嵌入的鄰域嵌入方法[9](Neighbor Embedding with Locally Linear Embedding,NE+LLE),該方法假設低分辨圖像塊與高分辨圖像塊組成的兩個流形空間具有相似的局部幾何結構,根據(jù)這種假設,將低分辨輸入圖像塊與訓練集中的K近鄰之間的重構關系,映射到對應的高分辨圖像塊上,合成需要的高分辨圖像.Yang等人提出基于稀疏表示的圖像超分辨率重構算法[10](Image super-resolution via sparse representation,ScSR),該方法假設高、低分辨率圖像信號之間的線性關系可以通過低維投影精確表示出來,根據(jù)這個假設,先通過訓練集學習到高、低分辨率之間的先驗知識,稱為字典,對于輸入的低分辨率圖像根據(jù)低分辨率圖像字典求取其稀疏性系數(shù)矩陣,再通過稀疏性系數(shù)矩陣和高分辨率圖像字典重構高分辨率圖像.Timofte等人基于NE+LLE和ScSR提出了錨定鄰域回歸[11](Anchored Neighborhood Regression,ANR),改善了算法時間效率的問題.首先,使用與字典原子的相關性而不是歐式距離來計算最近的鄰域;第二,使用全局協(xié)同編碼能帶來可觀的計算提速,將超分辨率映射簡化到預計算的投影矩陣;第三,提出了錨定鄰域回歸,將低分辨率圖像塊的鄰域嵌入到字典中最近的原子,并預先計算相應的嵌入矩陣.
近年來,深度學習在圖像處理以及計算機視覺領域中異?;馃?出現(xiàn)大量基于深度學習圖像超額分辨率算法.其中Gao等人提出了基于深度受限玻爾茲曼機[12](Restricted Boltzmann machine,RBM)的圖像超分辨率重構算法,使用深度受限玻爾茲曼機學習高、低分辨率圖像之間共享的稀疏表示系數(shù).Cui等人提出深度網(wǎng)絡級聯(lián)[13](Deep Network Cascade,DNC)的思想,DNC是級聯(lián)的多個協(xié)同局部自編碼器,在級聯(lián)的每個層中,首先進行非局部自相似搜索,以增強輸入圖像塊的高頻紋理細節(jié),然后將增強的圖像塊輸入到協(xié)同局部自編碼器中,生成高分辨率圖像塊.Dong等人提出了基于卷積神經網(wǎng)絡的圖像超分辨率重構算法[14](Super-Resolution Convolutional Neural Network,SRCNN),首先利用3層卷積神經網(wǎng)絡學習得到有效的高、低分辨率圖像塊之非線性映射關系,然后根據(jù)這種映射關系將輸入的低分辨率重構為高分辨率圖像.Ledig等人提出基于對抗生成網(wǎng)絡的圖像超分辨率重構算法[15](Super-Resolution Using a Generative Adversarial Network,SRGAN),該算法取得了較好的視覺效果,但是客觀評價指標卻低于其他算法,其細節(jié)部分雖然在視覺上更清晰,但是與原始高分辨率圖像有較大差距.
雖然基于學習的圖像超分辨率重構算法可以利用學習到的高、低分辨率圖像之間的先驗知識將低分辨率圖像重構為高分辨率圖像,但這種方法在圖像細節(jié)的恢復上還有待加強.本文在SRCNN的基礎上在網(wǎng)絡層數(shù)、卷積核大小、卷積核數(shù)量以及激活函數(shù)的選取上進行改進并結合傳統(tǒng)學習方法中的字典學習方法對原始高分辨率圖像與改進SRCNN網(wǎng)絡重構圖像之間的殘差進行學習,并對SRCNN重構圖像中缺少的殘差部分的高頻信息進行補償,以取得更好的圖像超分辨率重構效果.
卷積神經網(wǎng)絡(Convolutional Neural Network,CNN)是最近幾年發(fā)展起來并受到高度重視的一種前饋神經網(wǎng)絡.CNN的二維拓撲結構專門針對具有類似網(wǎng)絡結構的數(shù)據(jù)設計的,例如時間序列數(shù)據(jù)或者圖像數(shù)據(jù)等.因此,多維圖像可以直接作為網(wǎng)絡的輸入,避免傳統(tǒng)算法中對圖像復雜的預處理、特征提取等過程.CNN的非全連接、權值共享和局部感受野的特性在圖像處理方面有其獨特的優(yōu)越性,減少了網(wǎng)絡訓練所需的參數(shù),降低了網(wǎng)絡復雜性,并且這種特性對于位移、比例縮放和旋轉等形式的變形具有高度不變性.所以CNN在圖像處理中得到廣泛應用.
CNN是一個多層神經網(wǎng)絡,其每層都由一組二維平面構成,且每個平面包含多個獨立神經元.CNN的層級結構一般包含卷積層、激勵層、池化層和全連接層.卷積層的作用是對輸入數(shù)據(jù)進行特征提取.激勵層通過激勵函數(shù)添加非線性因素,將線性映射轉化成非線性映射,因為通常每個卷積層后都連接激勵層,所以常把連接的卷積層和激勵層視為一層卷積層對待.池化層對卷積層得到特征進行降采樣提取局部敏感特征,一方面將特征壓縮降低網(wǎng)絡計算復雜性,另一方面進行特征壓縮提取主要特征.全連接層將前面獲取到的局部特征匯總為全局特征,并且最后的全連接層作為輸出層執(zhí)行分類或回歸等任務.CNN通常在一個或幾個卷積層后會連接一個池化層,進而級聯(lián)成深度神經網(wǎng)絡,最后由全連接層輸出.經典的卷積神經網(wǎng)絡LeNet-5結構如圖1所示.
圖1 LeNet-5 網(wǎng)絡結構Fig.1 LeNet-5 network structure
作為一種基于學習的單幀圖像超分辨率算法,超分辨卷積神經網(wǎng)絡(Super-Resolution Convolutional Neural Network,SRCNN)旨在學習一個以低分辨率圖像為輸入,高分辨率圖像為輸出的端到端的非線性映射.這里將原始高分辨率圖像設為X,將X降采樣后用Bicubic插值恢復到與X相同大小的低分辨圖像設為Y,通過SRCNN學習到的非線性映射關系設為F,使得F(X)與原始超分辨率圖像X盡可能相似.SRCNN網(wǎng)絡結構包含3個卷積層,相當于一個全卷積神經網(wǎng)絡.由于超分辨率重構需要更好的保存圖像特征信息并且其輸出也是不需要降維的完整圖像,因此不需要池化層和全連接層.前兩層使用激勵函數(shù)為ReLu(Rectified Linear Unit),最后一層不使用激勵函數(shù).ReLu函數(shù)公式如下:
y=max (0,x)
(1)
SRCNN這3個卷積層,每個層負責特定的任務,分別于傳統(tǒng)的SISR算法中三個過程相對應:
圖像塊提取和表示:該操作從低分辨率圖像Y中提取多個特征塊,并將每個特征塊表示為高維度向量,這些向量構成第一層的特征圖.
非線性映射:這個操作是非線性地將來自第一層的每個高維向量映射到另一個高維向量上.每個映射向量都是一個高分辨率圖像塊的表示.這些映射向量構成了第二層的特征圖.
重構:這個操作集合了上一層的高分辨率圖像塊,來生成最終的高分辨率圖像.這幅圖像與原始高分辨率圖像X近似.
上述操作在網(wǎng)絡中的位置以及SRCNN整體網(wǎng)絡結構如圖2所示.接下來詳細介紹每層的具體操作.
特征塊提取和表示階段:在傳統(tǒng)算法中這一步驟通常使用PCA、DCT等操作來表示它們,這相當于通過一組卷積核對圖像進行卷積,而這些卷積核是由人們設定好的模板.在SRCNN中將這些模板加入到網(wǎng)絡優(yōu)化中,由網(wǎng)絡訓練得到,設本層操作為F1:
F1(Y)=max (0,W1×Y+B1)
(2)
其中,W1表示大小為c×f1×f1×n1的卷積核,c表示輸入的低分辨率圖像的通道數(shù),f1表示卷積核的尺寸,n1表示卷積核的個數(shù).B1表示維度n1為偏置向量.
圖2 SRCNN網(wǎng)絡結構Fig.2 SRCNN network structure
非線性映射階段:在上一層對每個圖像塊提取到一個n1維的特征圖.在本層中將這n1維特征圖非線性映射為n2維的特征圖.設本層操作為F2:
F2(Y)=max (0,W2×F1(Y)+B2)
(3)
其中,W2表示大小為n1×1×1×n2的卷積核,n1表示第一層特征圖維度,n2表示第二層特征圖維度.B2表示維度n2為偏置向量.
重構:通過求取重疊圖像塊的平均值來生成最終的高分辨率圖像.求取平均值也可視為使用卷積核對圖像進行卷積.因此,設本層操作為F3:
F3(Y)=W3×F2(Y)+B3
(4)
其中,W3表示大小為n2×f3×f3×c的卷積核,n2表示第二層特征圖維度,f3表示卷積核尺寸,c表示輸出的高分辨率圖像的通道數(shù).B3表示維度c為偏置向量.由于求取平均值的操作是一種線性操作,因此本層并未使用激活函數(shù)增加其非線性因素.
SRCNN網(wǎng)絡的三層結構,第一層選擇卷積核尺寸f1為9,卷積核個數(shù)n1為64;第二層選擇卷積核尺寸為1,卷積核個數(shù)n2為32;第三層選擇卷積核尺寸f3為5,卷積核個數(shù)等于輸出圖像通道數(shù),即9-1-5的網(wǎng)絡結構.這種網(wǎng)絡結構在實際使用中,在網(wǎng)絡訓練階段存在損失函數(shù)收斂速度差的情況.為使SRCNN網(wǎng)絡達到更好的重構效果,本文從網(wǎng)絡層數(shù)、卷積核尺寸與數(shù)量以及激活函數(shù)的選擇上對網(wǎng)絡進行改進,優(yōu)化網(wǎng)絡的超分辨率重構效果.
深度學習方法一般情況下優(yōu)于傳統(tǒng)機器學習方法,因為深度學習通常具有更深的網(wǎng)絡層次結構,對于深度學習來說,這些更深網(wǎng)絡層次結構可以提供更多可供訓練學習的參數(shù),因此得到的效果往往更好.對于CNN在SISR上的應用,三層卷積的神經網(wǎng)絡也許不是最優(yōu)方案.參考AlexNet[17]、VGGNet[18]和GoogleNet[19]等網(wǎng)絡結構,它們層數(shù)已經達到十幾層甚至幾十層之多.因此,我們也可以通過增加CNN的層次來提高圖像超分辨率重構效果.但通常上述網(wǎng)絡針對的是分類任務,在網(wǎng)絡中存在多個池化層,通過對特征壓縮從而降低網(wǎng)絡計算復雜度.對于SRCNN使用的全卷積神經網(wǎng)絡,過高的層數(shù)意味著有更多參數(shù)需要訓練學習,無疑增大了訓練時間.通過實驗,增加卷積層數(shù)到4層的網(wǎng)絡模型是可行的,訓練時間可以接受.如果繼續(xù)增加層數(shù),訓練網(wǎng)絡所花費的時間代價較高,因此,我們選擇4層的卷積神經網(wǎng)絡來進行圖像超分辨率.
加深卷積神經網(wǎng)絡的方法除了增加層數(shù),也可以通過增加卷積層卷積核的個數(shù)、卷積核的尺寸等方法.由于CNN是深度學習領域中一個著名的“黑盒”模型,各參數(shù)均由網(wǎng)絡訓練迭代優(yōu)化而來.因此,SRCNN的3層與傳統(tǒng)SISR的3個步驟并非完全對應.由于,SRCNN的第一層和第二層都使用了激活函數(shù)增加非線性因素,非線性映射并不僅僅針對第二層,而是通過每層的激活函數(shù)逐步進行的,因此,SRCNN在第二層只使用較少參數(shù)的1×1卷積核僅僅是為了非線性映射而降低了對于特征進一步提取的能力.我們可以增大第二層的卷積核尺寸,在我們的4層卷積神經網(wǎng)絡中,每層卷積核尺寸分別為9×9、7×7、7×7和5×5,即9-7-7-5的網(wǎng)絡結構.在卷積核數(shù)量上,為了使提取到的特征逐步整合為高分辨率圖像,參考SRCNN逐步遞減的方式,每層卷積核數(shù)量分別為64、32、16和c,c表示輸出高分辨率圖像的通道數(shù).
在激活函數(shù)的選擇上,我們使用比ReLu更好的PReLu[20](Parametric Rectified Linear Unit)作為激活函數(shù),PReLu即帶參數(shù)的ReLu,函數(shù)公式如下:
y=max(0,x)-α×min(0,x)
(5)
其中,α參數(shù)可由網(wǎng)絡訓練獲得.使用PReLu作為激活函數(shù)的優(yōu)點是,僅僅增加了少量的參數(shù),便可達到更好的效果,同時網(wǎng)絡的計算復雜性和網(wǎng)絡過擬合的危險性僅僅小幅度增加.
修改后的網(wǎng)絡各層操作分別為F1、F2、F3和F4,其公式如下:
F1(Y)=max(0,W1×Y+B1)+α1×min (0,W1×Y+B1)
(6)
F2(Y)=max(0,W2×F1(Y)+B2)+α2×min(0,W2×F1(Y)+B2)
(7)
F3(Y)=max(0,W3×F2(Y)+B3)+α3×min(0,W3×F2(Y)+B3)
(8)
F4(Y)=W4×F3(Y)+B4
(9)
其中,W1、W2、W3和W4分別表示大小為c×f1×f1×n1、n1×f2×f2×n2、n2×f3×f3×n3和n3×f4×f4×c的卷積核,c表示輸入的低分辨率圖像的通道數(shù),f1、f2、f3和f4表示各層卷積核的尺寸,n1、n2和n3表示各前三層卷積核的個數(shù).B1、B2、B3和B4表示各層偏置向量,α1、α1和α3表示前三層中非線性映射參數(shù).
根據(jù)上文網(wǎng)絡結構,學習端到端的映射函數(shù)F所需要的網(wǎng)絡參數(shù)為θ={W1,W2,W3,W4,B1,B2,B3,B4,α1,α2,α3},通過隨機梯度下降法與反向傳播法[21](Back-Propagation,BP)優(yōu)化參數(shù),使重構圖像F(Y,θ)和其對應的原始高分辨率圖像之間的損失函數(shù)達到最小值,此時的參數(shù)即為所需的參數(shù).給定一組高分辨率圖像集{Xi}和一組與之對應的降質后的低分辨率圖像集{Yi},損失函數(shù)選擇均方誤差(MSE),其公如下:
(10)
其中,n為訓練樣本個數(shù).
字典學習[22](Dictionary Learning)也可稱為稀疏表示(Sparse Representation).在稀疏表示方面的成就表明,高維信號之間的線性關系可以從其低維度投影中準確地恢復.其基本原理為,自然圖像可以視為稀疏信號,當用一組過完備字典線性表達出輸入信號時,在滿足一定稀疏度的情況下,展開系數(shù)可以獲得對原始輸入信號的良好近似.該方法在圖像復原與超分辨重構以及圖像降噪中取得良好表現(xiàn).通過矩陣分解的角度看待字典學習的過程:給定樣本數(shù)據(jù)集X={x1,x2,…,xn},字典學習的目標是把X矩陣分解為D、Z矩陣:
X≈D·Z
(11)
其中,D={d1,d2,…,dK}稱之為字典,D的每一列dk稱之為原子,同時D的每一個原子都是一個歸一化向量.Z={z1,z2,…,zn}稱對應稀疏表示的系數(shù)矩陣,同時X要求盡可能稀疏.字典學習優(yōu)化問題的目標函數(shù)可以表示為:
(12)
其中,X表示訓練數(shù)據(jù)集,D表示學習的字典,Z為所對應稀疏表示系數(shù)矩陣.但是由于這種表示中l(wèi)0正則項難以求解,所以很多時候使用l1正則項近似替代.因為目標函數(shù)中存在兩個未知變量D、Z,構造字典的算法通常分為稀疏表示和字典更新兩個步步驟.
稀疏表示:首先設定一個初始化的字典,用該字典對給定數(shù)據(jù)進行稀疏表示,得到系數(shù)矩陣Z.di表示字典D的列向量,zi表示稀疏表示系數(shù)矩陣Z的行向量.即:
(13)
字典更新:初始字典通常不是最優(yōu)的,滿足稀疏性的系數(shù)矩陣表示的數(shù)據(jù)和原數(shù)據(jù)會有較大誤差,我們需要在滿足稀疏度的條件下逐行逐列對字典進行更新優(yōu)化,減小整體誤差,逼近可使用的字典.忽略字典中第k項dk的影響,計算當前稀疏表示誤差矩陣:
(14)
(15)
在本文中,針對殘差圖像的字典學習優(yōu)化模型如下:
(16)
由于該字典學習方法有益于高頻信息的恢復,本文將卷積神經網(wǎng)絡與字典學習相結合,應用于圖像超分辨率重構中,本文方法總體框架如圖3所示.
圖3 本文方法總體框架圖Fig.3 Overall framework of proposed method
本文的實驗環(huán)境:CPU為Intel(R) Core(TM) i5-7500 CPU @ 3.40GHz;GPU為NVIDIA GeForce GTX 1060 6GB;內存為8GB;操作系統(tǒng)為Ubuntu 16.04 LTS.其中卷積神經網(wǎng)絡的訓練在深度學習框架Caffe上實現(xiàn),其他部分均在Matlab 2017a平臺上完成.
在數(shù)據(jù)集的選取上,訓練集選擇與SRCNN相同的Timofte數(shù)據(jù)集(包含91幅自然圖像),測試集選擇在圖像超分辨率重構領域中常用的兩個數(shù)據(jù)集Set5與Set14,分別包含5張圖像與14張圖像.在數(shù)據(jù)集處理上,本文使用與通常的SISR研究中相同的方法獲取低分辨率圖像,即對原始高分辨率圖像進行降采樣至其1/k之后,再使用Bicubic插值方法放大k倍,得到與原始高分辨率圖像相同尺寸的低分辨率圖像.在使用卷積神經網(wǎng)絡和字典學習訓練圖像超分辨率重構模型時,輸入數(shù)據(jù)為高、低分辨率圖像塊.在卷積神經網(wǎng)絡中以步長為10像素的滑動窗口在圖像上截取大小20×20像素的具有重疊區(qū)域的圖像塊.由于卷積神經網(wǎng)絡中的卷積核大小影響,導致輸出圖像小于輸入圖像,因此要對低分辨率圖像塊進行填充,填充后大小為38×38像素.在字典學習中,直接將CNN重構圖像與殘差圖像分解成9×9的圖像塊.
本文使用YCbCr顏色空間,由于大多數(shù)圖像超分辨率算法都是對YCbCr顏色空間中的亮度分量(Y)敏感,通常是將圖像轉換到YCbCr顏色空間,對Y分量進行圖像超分辨率重構后在與原Cb、Cr分量合并得到重構的高分辨率圖像.因此,本文在實驗過程中僅考慮Y分量的單通道,但本文也適用多通道.
考慮到單通道,本文卷積神經網(wǎng)絡模型中各項參數(shù)為:c=1,n1=64,f1=9,n2=32,f2=7,n3=16,f3=7,f4=5,基礎學習率為0.0001.在字典學習中,原子個數(shù)為500.
為驗證本文算法效果,在對比實驗中,選取如下算法作為對比算法:圖像超分辨率重構中的經典算法以及多數(shù)圖像超分辨重構算法的預處理算法Bicubic插值算法;基于稀疏表示的圖像超分辨率重構算法中的經典算法ScSR[10];結合鄰域嵌入與局部線性嵌入的基于外部樣例學習的圖像超分辨率重構算法NE+LLE[9];結合了稀疏表示與鄰域嵌入的基于外部樣例學習的圖像超分辨率重構算法ANR[11];以及本文的第一階段原型算法,使用深度學習模型中卷積神經網(wǎng)絡的SRCNN[14].
客觀評價效果:按照圖像超分辨率重構領域中常用實驗方法,將上述算法同本文算法分別在放大系數(shù)k為2、3、4倍進行對比,主要客觀評價指標為峰值信噪比(Peak Signal to Noise Ratio,PSNR),次要客觀評價指標為結構相似性(structural similarity,SSIM).由于篇幅所限,僅在Set5數(shù)據(jù)集上放大系數(shù)為3倍的圖像超分辨率重構中將將每張圖像的PSNR評價指標列出,其他不同倍數(shù)、不同評價指標的對比將按照數(shù)據(jù)集,以該數(shù)據(jù)集圖像的平均值做對比.實驗結果如表1、表2和表3所示.
表1 Set5上PSNR對比結果(k=3)
Table 1 PSNR contrast results on Set5 (k=3)
ImageBicubicScSRNE+LLEANRSRCNN本文Baby33.9134.435.0635.1335.0135.06Bird32.5834.134.5634.6034.9135.50Butter-fly24.0425.625.7525.9027.5828.28Head32.8833.233.6033.6333.5533.64Woman28.5629.930.2230.3330.9231.26
對比上述客觀評價實驗數(shù)據(jù),本文算法取得了較高的PSNR與SSIM的平均值,
對比SRCNN大部分圖像均有所提
表2 Set5上不同放大系數(shù)的PSNR與SSIM均值對比結果
Table 2 Comparison of PSNR and SSIM mean of different
amplification coefficients on Set5
kBicubicScSRNE+LLEANRSRCNN本文PSNR233.66-35.7735.8336.3436.53330.3931.4431.8431.9232.3932.75428.42-29.6129.6930.0830.36SSIM20.929-0.9490.9490.9520.95330.8680.8820.8950.8960.9000.90940.801-0.8400.8410.8520.860
升,但是在部分圖像上提升并不明顯,如Set5上的baby圖像.這是因為一些圖像紋理精細、細節(jié)微小,在降采樣之后損失大量有效信息,以至于重構效果提升不明顯,
下文主觀對比
表3 Set14上不同放大系數(shù)的PSNR與SSIM均值對比結果
Table 3 Comparison of PSNR and SSIM mean of different
amplification coefficients on Set14
kBicubicScSRNE+LLEANRSRCNN本文PSNR230.23-31.7631.8032.1832.31327.5428.3128.6028.6529.0029.24426.00-26.8126.8527.2027.42SSIM20.868-0.8990.9000.9030.90430.7730.7950.8070.8090.8150.82040.701-0.7330,7350.7410.749
中bird圖像,鳥眼內部瞳光的還原沒有得到較好改進也是這個原因.而對比不同放大系數(shù)k的實驗數(shù)據(jù)可以發(fā)現(xiàn),在放大系數(shù)k為較大倍數(shù)(2、3)時,PSNR值和SSIM值提升比放大系數(shù)k為較小倍數(shù)時明顯,這是因為將原始圖像降采樣到其1/2時,其圖像信息保存相對較完整,大部分圖像超分辨率算法均可以較好的對其進行重構,殘差相對較小,而本文中的字典學習方法是針對殘差圖像進行學習的,在使用字典學習方法進一步對殘差中的高頻分量進行補償時,可能會引入一些不必要的冗余信息,因此,限制了其分辨率重構效果.
主觀評價效果:將本文算法得到的超分辨率重構圖像同上述其他算法得到超分辨率重構圖像進行對比,選取放大系數(shù)k=3上的三張圖像進行主觀對比,結果如圖4、圖5以及圖6所示.
圖4 butterfly圖像主觀對比結果Fig.4 Subjective contrast results of butterfly images
圖4展現(xiàn)了不同算法在butterfly圖像上的放大3倍的超分辨率重構與結果,從放大區(qū)域可以看出,本文算法對該圖像超分辨率重構效果較好,在邊緣等細節(jié)上的重構效果要好于其他算法,更加接近原始高分辨率圖像,同時圖像中黑色部分噪聲較少,更為純凈.而傳統(tǒng)算法的結果圖中可以看出邊緣較為模糊.
圖5展現(xiàn)了不同算法在bird圖像上放大3倍的超分辨率重構與結果,從放大區(qū)域可以看出,雖然本文算法的超分辨率重構效果及邊緣上的表現(xiàn)都好于其他算法,如鳥嘴邊緣的黑色羽毛處的重構,但是對比本文算法結果圖與原始高分辨率圖像,在鳥眼內部的細節(jié)還原上還欠佳,同其他算法一樣鳥眼內部的瞳光并未得到還原.
圖6展現(xiàn)了不同算法在lenna圖像上放大3倍的超分辨率重構與結果,通過放大圖像中的帽檐邊緣可以看出,本文算法得到的結果圖像邊緣更加銳利,更接近原始高分辨率圖像.
圖5 bird圖像主觀對比結果Fig.5 Subjective contrast results of bird images
在時間效率方面,對比算法中只有SRCNN與本文算法是深度算法,與其他非深度算法對比訓練時間效率意義不大,因為在使用訓練好的模型時只需執(zhí)行一次.深度算法需要花費大量時間訓練,SRCNN與本文算法通常訓練需要迭代100萬次能得到理想結果.在輸入圖像塊大小均為38×38,使用相同的GPU環(huán)境下訓練,每進行100次迭代,SRCNN花費時間平均為1.8s,本文算法花費時間平均為3.2s,因此每次迭代相差0.014s,以迭代100萬次為訓練完成計算,本文算法在訓練階段比SRCNN需多花約4小時.在使用模型進行重建時,將本文算法與其他對比算法在Set5數(shù)據(jù)集上相同CPU環(huán)境下運行時間進行對比,如表4所示.本文算法要快于ScSR,略慢與SRCNN.其中Bicubic為其他算法基礎操作且運行速度約為0.01s.
通過上文主觀以及客觀的評價效果,與傳統(tǒng)算法相比本文算法效果提升明顯,表明卷積神經網(wǎng)絡可以學習到有效的高、低分辨率圖像之間的映射關系.同時與SRCNN相比,本文也取得了效果上的提升,表明基于字典學習的殘差補償方法能補償SRCNN中未能恢復的高頻信息,但時間成本也會因此增加.本文所提出的基于改進SRCNN和字典學習的算法能恢復更為豐富的細節(jié)信息和分明的圖像邊緣,得到視覺效果更好的超分辨率重構圖像.
圖6 lenna圖像主觀對比結果Fig.6 Subjective contrast results of lenna images
ImageBicubicScSRNE+LLEANRSRCNN本文Baby0.0s24.6s7.4s1.0s13.6s15.7sBird0.0s7.3s2.4s0.3s3.3s4.1sButter-fly0.0s5.7s1.9s0.3s2.3s4.6sHead0.0s8.6s2.2s0.3s2.4s4.4sWoman0.0s7.8s2.1s0.3s2.4s4.2s
本文提出了一種基于改進SRCNN和字典學習的圖像超分辨率重構算法,該算法在超分辨率卷積神經網(wǎng)絡的基礎上,對其網(wǎng)絡結構進行改進,并針對原始高分辨率圖像與SRCNN輸出的重構圖像的殘差采用傳統(tǒng)的字典學習方法進行學習,實現(xiàn)了高頻信息補償,具有較優(yōu)的視覺效果及客觀評價指標.在圖像超分辨率的圖像質量上,本文算法取得了一定研究成果,對比SRCNN在Set5和Set14測試集上平均PSNR分別提升了0.36dB和0.24dB,但在網(wǎng)絡訓練時會消費較多時間,因此本文下一步將在保證圖像質量的前提下研究如何提升算法的時間效率.