于 波,方業全,劉 閩,董君陶
1(中國科學院大學,北京 100049)
2(中國科學院 沈陽計算技術研究所,沈陽 110168)
3(沈陽市環境檢測中心站,沈陽 110000)
4(沈陽市第二十七中學,沈陽 110011)
視頻或者圖像在傳輸過程中,可能出現隨機性的誤碼、突發性的誤碼、傳輸中的丟包、時延過大或不均勻、定時抖動、傳輸包倒序等等問題,導致接收端解碼出的圖像質量嚴重下降.例如視頻在網絡傳輸中由于網絡擁堵導致視頻編碼后某一幀的宏塊包丟失造成解碼端產生誤碼,解碼輸出的視頻幀出現類似馬賽克的色塊,還會影響到與之相關的后續數據的解碼,造成誤碼擴散,使誤碼環境下解碼生成的畫面連續出現色斑,造成視頻質量嚴重下降.于是,建立合適的模型利用退化系統的先驗知識來降低或者消除觀察圖像中的失真,得到一個高質量的圖像以便于觀察或者進一步處理圖像復原過程顯得尤為重要.目前圖像重建技術主要分為兩類:一是基于插值的重建方法,利用多張圖像的豐富信息,圖像間的相同或相異信息以及圖像的先驗知識進行重建,例如鄰域像素重復技術和雙三次圖像插值技術等,修復效果不佳.二是基于學習的圖像重建方法,目前用于單幅圖像重建的最先進的方法大多是基于樣本學習的.這些方法主要利用相同圖像的內部相似性,或外部樣本學習映射函數.基于樣本的外部方法通常提供有大量豐富樣本,但是受到有效緊湊建模數據困難的挑戰.
近年來,基于深度學習的方法得到了廣泛的關注,在如目標分類、人臉識別、文本識別[1,2]等眾多計算機視覺問題中取得了優于傳統方法的顯著效果.本文對深度學習在圖像恢復重建問題中的應用進行探索,設計了用于圖像重建的卷積神經網絡結構,利用重建損失和對抗損失優化模型參數,增強重建圖像的紋理細節信息,減少重建圖像與真實圖像在結構誤差.用海量圖像構造訓練樣本,對設計的深度卷積神經網絡進行訓練以實現圖像的重建,在三組包含大量弱紋理區域的測試圖像序列中取得了優于基于插值方法的效果.
本文提出的神經網絡模型主要分為三個模塊:對圖像進行卷積操作提取特征、對提取的特征進行反卷積重建圖像,利用重建的圖像與原圖像的重建損失和對抗損失優化模型參數.
神經網絡模型的設計總框架如圖1所示.

圖1 神經網絡結構示意圖
本文卷積模塊基于標準的卷積神經網絡進行設計,由卷積層和激活函數層交替重復排列.卷積層中本文將卷積核尺寸、步幅和內邊距填充依次設為 4,2,1.激活函數層則采用線性單元激活函數.如圖1所示,輸入圖片的尺寸為 128×128,數據經過 64 個 4×4×3 的卷積核和激活函數進行處理得到64個64×64的特征圖,然后進入下一層特征提取,其中卷積核為64個4×4×64,得到64個32×32的特征圖,同樣依次處理,最后得到包含4000個元素的特征向量.
為了計算重建圖像的損失,損失函數考慮了重建損失和對抗損失.重建損失則采用基于原圖像和重建圖像矩陣之間的2-范數作為標準.在實驗中發現,如果只考慮重建損失,會導致訓練得到的神經網絡重建出的圖像丟失過多圖像結構等輪廓細節信息.所以本文損失函數引入對抗損失,利用對抗神經網絡[6]測度重建出的圖像與真值圖像之間的結構信息損失.模型總的損失設計為重建損失和對抗損失的加權和.
算法的整個計算過程:輸入圖像→卷積→激活→圖像特征→反卷積→激活→重建的圖像.可視化網絡結構如圖2.
本文的特征提取部分采用6層卷積網絡結構[7],并采用多個卷積核對圖像進行卷積提取特征,得到圖像特征向量.圖像的卷積操作,可以寫成矩陣形式.

圖2 可視化神經網絡模型
圖3表示對圖像做卷積,一個典型的4×4卷積核,其輸出結果中的每個元素都與輸入圖片一個4×4小方塊相連,也就是說輸出層的這個像素值只是通過輸入層的這個小方塊中的像素值計算而來.整個輸出層就相當于將原矩陣按照順序將各區域元素與權重W矩陣做內積,W矩陣為:


圖3 圖像卷積示意圖
式(1)矩陣中的權重系數1表示權重矩陣的初始值,卷積神經網絡每次迭代計算都更新權重矩陣中的權重系數.卷積核對圖像進行操作,相當于對圖像進行了低通濾波.因此卷積核核也被稱為濾波器,整個操作過程稱為卷積.對二維圖像的卷積操作可以看成對圖像進行濾波處理,比如常見的高斯濾波、拉普拉斯濾波(算子)等.如果要識別圖像中的某種特征,這個濾波器要對這種特征有很高的輸出,對其他形狀則輸出很低,這也就像是神經元的激活.
在訓練卷積神經網絡的時,使用一系列不同的濾波器提取圖片不同的特征,訓練神經網絡中不斷迭代更新濾波器權重系數、偏置系數等參數.如圖2所示,特征提取的第一層采用64個4×4的濾波器,輸出層得到64個特征圖,然后對特征圖做池化激活處理,第二層用128個濾波器處理這64個特征圖得到128個特征圖,后面的卷積層依次處理,最后得到輸入圖像的特征向量.
圖像重建部分主要對卷積模塊生成的特征向量進行反卷積處理.反卷積層由反卷積核和線性單元激活函數交替組成,反卷積能輸出高分辨率圖像,可以理解為對輸入進行卷積計算后再做上采樣的處理,直到輸出圖像大小和真值圖像大小相同.
在神經網絡中,線性單元激活函數是用于保證每層輸出的激活值都是正數,因此對于反向過程,同樣需要保證每層的特征圖為正值,也就是說這個反激活過程和激活過程沒有什么差別,直接采用線性單元激活函數.如圖2可視化神經網絡模型所示,圖像重建部分每一層由向上卷積核和池化函數、激活函數組成,第一層將特征提取部分輸出的特征向量進行向上卷積、池化、激活處理得到512個4×4的特征圖,然后經過下一層處理得到512個8×8的特征圖,依次處理重建出原圖像缺失部分的局部圖像,然后將原圖像與重建的局部圖像[8]融合成一張128×128的目標圖像.
工程地質勘察是工程設計的基礎。地質調查的質量對工程的建設與設計有著重要的影響。必須加強工程地質勘察的質量管理。在目前的工程地質勘察質量管理中,仍然存在一些影響地質勘察質量管理的問題。
為了測度重建圖像與真值圖像在紋理細節和結構上的差距,使重建圖像的紋理細節和結構信息損失最小化,本文神經網絡模型的損失函數采用了重建損失和對抗損失的加權和.重建損失使用2-范數測度重建圖像和真值圖像之間的距離,公式為:

式(2)中,Z表示輸入原圖像,G(Z)表示重建圖像,lγ表示重建損失.
引入生成對抗神經網絡得到重建圖像的對抗損失,對抗神經網絡如圖4所示,主要由卷積神經網絡G和卷積神經網絡D組成,卷積神經網絡G表示生成模型,D表示判別模型,其中G:Z→X將來自噪聲分布Z的樣本映射到數據分布X.學習過程是雙人游戲,其中判別器D同時考慮G和真實樣本的預測,并試圖區分它們,而G試圖通過產生盡可能表現為“真實”的樣本來混淆D.判別器D的目標是指示輸入是真實樣本還是預測樣本的邏輯可能性.

圖4 對抗神經網絡示意圖
圖4中生成模型G重建出的圖像為G(Z),圖像X表示與殘缺圖像Z對應的原完整圖像,在判別模型D中,重建圖像G(Z)和原完整圖像X為輸入圖像,D的輸出則是判斷圖像G(Z)與圖像X是同一幅圖像的邏輯可能性,是一個常量.判別圖像對于G來說,重建出的圖像要不斷的欺騙判別D,那么也就是:

對于D來說,要不斷的學習防止被G欺騙,也就是:

式(4)中,lα表示在判別神經網絡模型中重建圖像與原圖像之間的誤差.
本文中對抗損失則為生成對抗神經網絡的整個輸出值,即生成模型G輸出的重建圖像為真實圖像的邏輯可能性.
重建損失主要反映了新生成的圖像內容紋理細節與真值圖像的距離,對抗損失使用對抗神經網絡模型測度重建圖像和真值圖像在結構上的差異.為了使重建的圖像更加逼近真實圖像.本文中損失函數定義為:

式(5)中,λγ和 λα表示重建損失和對抗損失的對應的權重系數,本文分別設置為 λγ=0.95和 λα=0.05.式(5)表示卷積神經網絡模型的損失函數由重建損失和對抗損失的加權和組成.因此,在本文的神經網絡模型訓練中既考慮了重建損失又考慮了對抗損失.
本文使用Google發布的Open Image圖片數據集訓練上文設計的卷積神經網絡模型,該數據集包含大概900萬張圖片,這些圖像橫跨6000多個類別,具有很高的分辨率.實驗證明采用高分辨率圖像數據集比采用較低分辨率圖像數據集,使模型有更強的魯棒性.本文隨機從Open Image數據集中選取100 000張圖像作為訓練集,并進行尺寸為1 2 8×128的預處理得到圖像集H,然后將H中心的一個邊長為原圖一半的矩形區域添加噪音像素填充為白色,構造出帶有色塊(受損)的圖像集Z,將圖像集Z和原圖像集作為訓練數據集,訓練上文的卷積神經網絡模型.
本文的卷積神經網絡模型的訓練分為兩個階段:首先模型先經過一個六層的卷積神經網絡提取特征,輸出一個包含4000個元素的特征向量;其次,將特征向量輸入反卷積重建神經網絡,重建生成缺失的圖像塊,將生成的圖像塊與原圖像拼接成完整圖像.在反復的訓練中發現去除卷積神經網絡中的池化層,激活函數使用線性單元函數,重建的圖像能保持較好的局部紋理細節.在神經網絡模型在訓練過程中初始學習率設為 0.001,batch 設置為 50,不斷訓練模型,優化權重參數,直到損失函數值穩定在區間[0.005+0.0005].
本文算法評估數據集使用超分辨率研究領域通用的測試數據集合 Set5[9]、Set14[9]、BSD100[10],評測標準為PSNR(峰值信噪比),單位是dB,PSNR是最普遍,最廣泛使用的評鑒畫質的客觀量測法,其值越大就代表失真越少.公式為:

其中,MSE是原圖像與重建圖像之間均方誤差.
實驗中本文算法與SRCNN[9]算法、Bicubic算法、ESRCNN算法在評測數據集上進行對比.本文算法在Set5、Set14、BSD100數據集上PSNR值(表1)與另外3個算法相近,ESRCNN算法為SRCNN算法的改進型增加了卷積層,Ours(lα)表示本文算法模型的損失函數只考慮了重建損失,Ours(lα+lγ)表示本文算法模型損失函數考慮了重建損失和對抗損失.本文算法模型的損失函數不考慮對抗損失時,在評測數據集上本文的算法僅比SRCNN算法PSNR值大,表明本文算法重建生成的圖像比ESRCNN算法和Bicubic算法重建生成的圖像失真程大,比SRCNN算法重建生成的圖像失真程度小.本文模型的損失函數考慮對抗損失時,在評測數據集上本文算法和其他三種算法PSNR值相當,相比其他三種算法,本文算法平均PSNR值略大,表示考慮了對抗損失的模型重建的圖像更逼近原圖,對抗損失較多的反映在圖像的整體結構上,從圖5所示的圖像中可以直觀看到本文的算法模型重建的圖像相比其他算法較好的還原了圖像內部之間的輪廓結構信息.

表1 四種算法實驗結果(PSNR)
圖5是四種算法的圖像重建實驗結果,從左到右依次為SRCNN算法、Bicubic算法、ESRCNN算法和本算法重建生成的圖像,Bicubc算法重建的第一幅圖像生成的圖像塊在結構上有錯位,ESRCNN算法重建的第三幅圖像生成的圖像塊在結構上比原圖像多出一部分.從圖5中可以看出本文提出的算法基重建生成的圖像在結構上與原圖像中其他部分融合的很好,視覺上沒有明顯的突兀感.另外本文提出的重建算法生成的圖像在紋理細節上比較清晰,圖中重建出的樹和背景圖像層次分明.直觀的從視覺上分析結果和表1數據反映結果一致.總的來說,本文給出的神經網絡模型重建的圖像失真度較小,較好地重建了圖像的紋理和結構信息.
本文提出了一種基于圖像背景預測模糊區域內容的無監督圖像重建神經網絡模型,引入了對抗神經網絡模型計算重建圖像的對抗損失,重建損失主要反映了新生成的圖像內容紋理細節與真值圖像的距離,對抗損失使用對抗神經網絡模型測度重建圖像和真值圖像在結構上的差異.最后模型在三個不同的數據集下進行了實驗,并且證明該算法模型能夠較好地重建圖像.下一步工作,考慮將圖像重建應用到視頻單幀圖像重建,視頻相鄰幀之間存在著大量的互補冗余信息,重建視頻幀可以同時利用幀之間的時序相性和單幀圖像塊之間的空間相關性來改進模型使之可以處理視頻信息,提高視頻質量,嘗試結合視頻幀的時序、空域相關性等特征信息共同參與模型的訓練和學習.

圖5 四種算法的圖像重建實驗結果