?

結合SENet的密集卷積生成對抗網絡圖像修復方法

2022-05-10 08:45張道暢
小型微型計算機系統 2022年5期
關鍵詞:密集卷積損失

劉 強,張道暢

(東北電力大學 理學院,吉林 吉林 132012)

1 引 言

數字圖像修復[1]的過程是以一種數學表達式的形式傳遞給計算機,使得計算機能夠自動實現圖像修復.早期的圖像修復技術通過圖像已知區域信息對缺失區域進行填充,主要分為以下幾類:基于偏微分(Partial Differential Equation,PDE)和變分(Total Variation,TV)的圖像修復方法[1,2]、基于樣本的圖像修復方法[3,4]、基于變換域的圖像修復方法[5-7].傳統的圖像修復方法僅利用缺失區域周邊的已知信息進行修復,當出現大區域缺失或已知區域與缺失區域相似信息較少時,結果會出現較大的偏差;還有一些方法使用人工交互的方式進行修復,這類方法在文物字畫等修復問題上應用較為廣泛,但面對較大面積的缺失問題時,模型過于依賴草圖骨架,修復結果具有局限性,效果不理想.

為了能夠更好的利用缺失圖像的已知信息,研究學者將自編碼器[8](Autoencoder,AE)和生成對抗網絡[9](Generative Adversarial Networks,GAN)結合,在一定程度上解決了傳統圖像修復算法存在的問題.Pathak等人[10]提出了一種命名為Context Encoder的網絡用于圖像修復,CE算法將自編碼器與生成對抗網絡進行結合,能夠對大區域缺失的圖像進行修復,但修復的結果常常出現偽影等現象.Yeh等人[11]設計了一種利用先驗誤差來進行圖像修復的方法,該方法將圖像語義分割技術與生成對抗網絡相結合,通過引入l2損失和先驗損失生成修復圖像,但對于結構比較復雜的小數據集仍有語義不連貫的現象.Iizuka等人[12]首次提出雙判別網絡的算法,利用局部判別網絡增強局部紋理清晰度,利用全局判別網絡保證全局修復效果的語義連貫.Yu等人[13]提出由粗到細的二級生成網絡結構,其中第1個網絡進行初始粗略預測,第2個網絡引入注意力機制,然后將粗略預測作為輸入并對粗略結果精細化.Liu等人[14]提出了部分卷積,即用一個二值化的掩碼將經典卷積分為有效卷積和無效卷積,旨在處理圖像修復結果顏色不一、模糊等問題.Yu等人[15]針對部分卷積在更新掩碼的過程中的缺陷提出門控卷積,該方法通過手繪待修復區間的草圖骨架信息來引導修復,但受邊界草圖的限制,導致修復結果具有局限性.Meng等人[16]利用密集卷積網絡(DenseNet)中密集卷積塊緊密連接的特性,在降低參數量的同時提取更多的特征信息,但對于紋理結構復雜的圖像,修復結果仍有上下文不一致問題.

盡管生成對抗網絡在圖像修復領域得到了廣泛的應用,但該類算法過于依賴生成網絡的自生成能力,仍存在許多問題亟待解決.例如當數據集較小時,網絡訓練容易出現局部過擬合現象;使用人工交互式修復方法時,草圖骨架的優劣極大的限制了修復結果,模型泛化能力較差;對于圖像紋理結構較為復雜的圖像,容易出現模糊、語義不連貫等現象.

針對上述問題,本文基于密集卷積網絡[17]中密集卷積塊能夠加強特征傳播、鼓勵特征復用的特性,與注意力機制對圖像細節修復的指導作用結合,提出一種結合SENet的密集卷積生成對抗網絡圖像修復方法.生成網絡通過密集卷積塊進行特征重用,加強特征傳遞,獲取更深層的特征信息;使用池化層代替原有的過渡層,保留更多的有效特征信息;同時,引入SENet[18]中的SE(Squeeze-and-Excitation)模塊注意力機制,增強重要特征在修復過程中的指導作用;此外,在編碼器和解碼器之間引入U-Net的跳躍連接[19](Skip connection),減少由于下采樣造成的信息損失,并優化紋理一致性問題;使用MSE損失作為衡量生成圖像質量的重要因素,聯合MSE損失、對抗損失和總變分損失作為優化生成網絡的總損失,進行模型訓練.

2 相關理論

2.1 生成對抗網絡

生成對抗網絡[9](GAN)是Goodfellow等人在2014年提出的.近年來,生成對抗網絡(GAN)作為一個熱門課題人們已經進行了廣泛的研究,并且在一些特定應用上與其它機器學習算法相結合,如半監督學習、遷移學習和強化學習,在圖像修復問題上得到了廣泛的應用[10-16].

GAN的核心思想來自于博弈論,網絡通過生成器和判別器之間的互相欺騙進行優化,最終形成一個納什平衡的狀態.生成對抗網絡由生成網絡G和判別網絡D構成,其結構如圖1所示.生成網絡G通過學習真實數據的概率分布Pdata映射生成類似真實數據的內容G(z).判別網絡D需要盡可能的辨別出輸入數據的來源,即對x和G(z)進行分類.當判別網絡D無法區分數據來源時,網絡達到最優,其目標函數見公式(1):

圖1 GAN模型

(1)

其中,G表示生成網絡,D表示判別網絡,E(·)表示數學期望,V表示目標函數,x表示樣本,z表示隨機噪聲,表示真實樣本的概率分布,表示生成樣本的概率分布.

2.2 DenseNet模型

DenseNet[17]是一種具有密集連接結構的卷積神經網絡.該網絡由多個密集卷積塊和過渡層構成,并且具有讓網絡更窄,參數更少的特性,這一優點很大一部分原因得益于密集卷積塊的設計.在密集卷積塊中,之前所有層的輸出都是后面該層的輸入,通過這種密集連接的形式能夠提取更多的特征信息,其結構如圖2所示.單個密集卷積塊內,層與層之間使用正則化函數BN、激活函數ReLU和卷積函數Conv進行連接,增強結構的泛化能力.

圖2 密集卷積塊結構

2.3 Squeeze-and-Excitation模塊

Squeeze-and-Excitation(SE)模塊[18]能夠獲取特征信息的重要程度,以此來加強特征信息在圖像修復法過程中的指導作用,其結構如圖3所示.SE模塊包括Squeeze和Excitation兩個部分.Squeeze操作旨在用一個具有全局感受野的值來表示各個通道特征的重要程度,對每個通道做全局均值池化,得到一個具有全局感受野的特征圖;Excitation操作使用全連接層作用于特征圖,對每個通道的重要性進行預測,得到的重要程度權重再作用到相應的通道上,構建通道之間的相關性.

圖3 SE模塊結構

3 本文方法

現有的圖像修復方法對于有較大面積缺失的情況,尤其是在數據集較小或者圖像結構相對復雜的圖像修復問題上,常出現模糊、偽影、圖像語義不連貫等現象.為了更好的處理上述問題,縮短訓練周期,提高模型的自生成能力,加強面部紋理細節的修復,本文利用DenseNet優秀的特征提取能力,并結合SE模塊增強重要特征在修復過程中的指導作用,優化生成對抗網絡的生成器,判別網絡使用DCGAN框架進行改進,算法如圖4所示.本文算法首先利用帶有跳躍連接的編碼—解碼器對掩碼圖像提取特征和下采樣,再根據重要特征生成與原始圖像數據分布類似的輸出結果;其次判別網絡對結果進行二分類判別,通過不斷對抗博弈進而優化網絡參數;最后當模型達到穩定后,將對應缺失區域的生成圖像填充到待修復的圖像中獲得修復結果.

圖4 本文算法框架圖

3.1 生成網絡

生成網絡G是模型的重要組成部分,該結構使用編碼—解碼器結構作為基本框架.編碼器中使用4個密集卷積塊對圖像特征進行提取,塊與塊之間使用帶有SE模塊的池化層進行連接,SE模塊獲取各個通道特征的重要程度后,賦予通道權重系數;解碼器同樣包含4個密集卷積塊,密集卷積塊對特征進一步篩選,塊與塊之間使用帶有SE模塊的反卷積層進行連接,SE模塊將篩選后的特征賦予通道權重系數后,傳遞給反卷積層用來恢復圖像數據,解碼器的最后一層使用一個1×1的卷積層對圖像通道進行限制,最終獲得與原始圖像尺寸相同的修復結果.

此外,本文方法參考文獻[16]在取消傳統編碼器和解碼器之間全連接層的基礎上進行改進,刪除了密集卷積網絡中的過渡層,塊與塊之間引入注意力機制加強重要特征的指導作用,同時在編碼—解碼器之間相同尺寸的位置引入U-Net的跳躍連接,減少由于下采樣造成的特征丟失,增強網絡的生成能力,其結構如圖5所示.

圖5 生成網絡結構

3.2 判別網絡

判別網絡D是將輸入圖像進行分類的二分類器.其輸入是64×64的真實圖像和生成圖像,經過4個步長為2,5×5的卷積核進行特征提取,卷積層之間都使用正則化函數BN和激活函數LReLU進行連接,最后一層使用一個線性全連接層進行二分類.判別網絡旨在盡可能正確的判別輸入圖像來自真實圖像或者生成圖像,最終達到納什平衡.

3.3 損失函數

損失函數設計是優化網絡的關鍵.本文參考文獻[10]的損失函數并在其基礎上進行改進.

3.3.1 訓練集損失函數

在訓練過程中聯合MSE損失、對抗損失和TV損失作為訓練網絡的總損失,提高網絡穩定性和修復效果.總損失函數的定義如公式(2)所示:

Losstrain=λMSELMSE+λadvLadv+λTVLTV

(2)

其中,λMSE,λadv和λTV分別表示對應損失項的權重.

MSE損失通過提取的全局特征用來分析推斷缺失區域的數據分布,保證整體結構的上下文語義連貫.MSE損失作為損失函數中最重要的組成部分,有效的反映了生成圖像和真實圖像的差距,其定義如公式(3)所示:

LMSE=(x-G(M⊙x))2

(3)

其中,G表示生成網絡;x表示輸入的真實圖像;M是二進制掩碼,值為0的部分表示缺失區域,值為1的部分代表保留區域;⊙代表對應元素相乘.

對抗損失用于加強生成網絡和判別網絡的博弈過程,旨在讓生成圖像的數據分布更接近真實圖像,使得結果真實性更高.這里對抗損失采用判別網絡的目標函數,其定義如公式(4)所示:

Ladv=log(D(x))+log(1-D(G(M⊙x)))

(4)

其中,D表示判別網絡.

TV損失在圖像修復過程中對圖像的平滑度進行約束,改善缺失區域和已知區域疊加時出現的偽影問題,加強邊界像素的視覺一致性,其定義如公式(5)所示:

LTV=∑i,j|Gi+1,j(M⊙x)-Gi,j(M⊙x)|
+|Gi,j+1(M⊙x)-Gi,j(M⊙x)|

(5)

其中,i和j表示像素點的坐標.

3.3.2 測試集損失函數

模型測試過程中,使用文本損失和先驗損失的聯合損失作為總損失,如公式(6)所示:

上博楚簡是“上海博物館藏戰國楚竹書”的簡稱,記載內容主要以儒家類為主,在文字學方面有很大的研究價值。[1]本文主要參考李零先生所著《上博楚簡三篇校讀記》[2]展開相關討論?!渡喜┏喨Wx記》是以《上海博物館藏戰國楚竹書》第一冊為研究對象(內含《子羔》篇“孔子詩論”、《緇衣》及《性情》三部分),李零先生對簡文進行辨識分析,有助于我們更好地了解竹簡原貌,并能夠從中考察漢語史上語氣詞的使用及發展演變情況。

Lval=λcontextLcontext+λpriorLprior

(6)

其中,λcontext和λprior分別表示對應損失項的權重.

文本損失來自于真實圖像和生成圖像已知區域的不同,通過已知信息中的數據分布選擇更真實的修復結果,其定義如公式(7)所示:

Lcontext=|M⊙G(M⊙x)-M⊙x|

(7)

先驗損失是指基于高級圖像特征表示的一類懲罰,而不是基于像素的差異,先驗損失鼓勵修復的圖像與從訓練集中提取的樣本數據分布相似,其定義如公式(8)所示:

Lprior=log(1-D(G(M⊙x)))

(8)

4 實驗結果與分析

4.1 數據集與運行環境

本文方法在CelebA數據集上進行模型驗證.在CelebA數據集202599張名人人臉圖像中隨機選取20000張圖像作為訓練集;隨機選取不同于訓練集的1000張圖像作為測試集.

實驗計算平臺為AMD R7 4800H CPU 8核16線程和NVIDIA GeForce RTX 2060 6G顯存.軟件環境為Windows 10,python3.7和TensorFlow v 1.14.

數據集選取中心感興趣區域的五官部分,經過預處理后形成64×64的有25%中心缺失區域掩碼和有約80%隨機缺失區域掩碼的訓練集.實驗在兩個不同的訓練集上迭代40個周期,時間各約10小時.由于設備內存限制,將batchsize大小設置為8.實驗中參考文獻[11]和文獻[16]的建議,參數經過對比實驗后選定λMSE=0.999,λadv=0.001,λTV=1×10-6,λcontext=1,λprior=0.003,網絡使用Adam迭代器進行訓練,學習率設置為2×10-4.

4.2 定性分析

由圖6可知,CE算法修復結果圖6(c)對于中心缺失區域圖像,修復結果模糊,邊界有輕微偽影現象,且有少量噪聲點分布;對于隨機缺失區域圖像,眼睛和胡須位置無法保證較好的語義連貫.SI算法修復結果圖6(d)對于中心缺失區域圖像,雖然利用泊松分布技術解決了修復區域邊界的偽影問題,但對于面部細節和眼鏡遮擋問題未能得到很好的改善;對于隨機缺失區域圖像,修復結果模糊不清,且全局上下文一致性較差.DN算法修復結果圖6(e)中心缺失和隨機缺失雖能夠基本恢復圖像語義,但全局一致性不高,在眼球和鼻梁等語義細節問題上內容不夠準確,缺乏真實性.本文方法修復結果圖6(f)無明顯模糊,基本沒有偽影問題的出現,能夠較好的保持圖像的上下文語義連貫,而且對于第2、4行有物體遮擋面部的圖像,模型仍然可以很好的恢復完整的語義信息.

圖6 CelebA數據集上不同方法的修復結果

對比幾類算法與本文方法的區別,SI算法過度依賴生成對抗網絡的自生成能力,模型訓練周期長,且對于面部的鼻梁、胡須等細節位置未能生成語義連貫的修復結果,當使用小數據集時問題更加明顯.CE算法、DN算法和本文方法利用圖像的已知信息學習真實圖像的數據分布規律,但CE算法未能解決缺失區域邊界的偽影問題和圖像語義的噪聲點問題;DN算法基本解決了偽影問題,并在修復效果上有所提升,但對于眼睛的寬窄、眼球的方向、鼻梁的高低等細節問題仍需改進,特別是對于有眼鏡和帽子等類似的遮擋物時,修復結果一致性有待提升.本文方法引入密集卷積網絡提取全局特征,并結合SENet的SE模塊,更好的學習面部紋理細節的數據分布,可以看出本文方法在圖像上下文一致、模糊和偽影等問題的處理上優于其他3種方法,修復結果視覺真實性較高.模型訓練約40個周期達到穩定,相比較其他3類算法模型訓練用時更短.

4.3 定量分析

除視覺定性分析外,實驗還對模型修復結果使用峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似性(Structural Similarity Index,SSIM)兩個指標進行定量分析.PSNR能夠對圖像的高頻細節進行評價,值越大表示修復結果失真越??;SSIM能夠反映兩者的相似程度,取值在0~1之間,值越大說明修復后的結果與真實圖像的相似度越高,即修復的效果越好.

由表1結果可知,將不同算法與本文方法在CelebA數據集上的修復結果分別在25%中心區域缺失和80%隨機區域缺失實驗中進行比較,所得結果的PSNR和SSIM均具有優勢,與定性分析中修復結果的視覺對比一致.

表1 不同修復方法的PSNR和SSIM

4.4 密集卷積塊與SE模塊的影響

為了證明密集卷積塊與SE模塊對圖像修復的重要作用,在CelebA數據集上進行對比實驗,結果如圖7所示.圖7(a)為原始圖像;圖7(b)為待修復圖像;圖7(c)為未使用密集卷積塊和SE模塊模型結構的修復結果,第1、2行修復區域邊緣偽影問題嚴重,第3、4行生成的圖像模糊不清,無法保持良好的上下文一致性;圖7(d)為使用密集卷積塊模型但未使用SE模塊結構的修復結果,第1、2行修復后的圖像基本能夠恢復圖像語義信息,但仍有模糊問題的出現,且對于第2行戴墨鏡人臉問題上有語義缺失問題,圖像上下文不連貫,第3、4行眉毛、眼眶和牙齒等細節仍有噪聲點的出現;圖7(e)為本文方法修復結果,SE模塊對密集卷積塊提取的淺層特征進行重要程度的劃分,賦予特征通道權重指導圖像修復過程,修復后的圖像能夠很好的保持全局一致性,且模糊、偽影問題基本得到解決,對于墨鏡和側臉結構性較強的圖像細節也能很好的進行修復.

圖7 不同結構的修復結果

表2列出了是否使用密集卷積塊與SE模塊模型的PSNR和SSIM在25%中心區域缺失與80%隨機區域缺失的定量分析結果,可以看出本文方法充分利用了密集卷積塊特征提取能力以及SE模塊的指導作用,既能在定性分析中取得較大的優勢,同時在PSNR和SSIM的數值對比上也取得了良好的分析結果.

表2 不同結構的PSNR和SSIM

對比不同結構的修復結果發現,密集卷積塊能夠很好的學習圖像全局語義信息,但對于部分細節修復上仍有不足.引入SE模塊注意力機制后,修復結果在眉毛、眼睛、牙齒等細節得到改善,與PSNR和SSIM的數據分析結果一致.

5 結 語

本文提出了一個結合SENet的密集卷積生成對抗網絡圖像修復方法.該方法結合DenseNet中密集卷積塊的特征提取能力與SENet中SE模塊注意力機制,獲取更全面的特征信息;在編碼—解碼器之間引入跳躍連接,彌補由于下采樣造成的特征丟失問題;使用池化層代替密集卷積網絡的過渡層,保證更多的特征信息進行傳遞;聯合MSE損失、對抗損失和TV損失構建網絡模型,提高網絡的修復能力.本文方法通過在CelebA數據集上進行對比實驗,在定性分析和定量分析中均優于CE、SI和DN這3種方法.但生成網絡過強可能加劇梯度消失問題的產生,因此下一步工作需要對判別網絡進行改進,以此應用于高分辨率圖像的修復,維系生成網絡和判別網絡的動態博弈過程.

猜你喜歡
密集卷積損失
洪澇造成孟加拉損失25.4萬噸大米
基于全卷積神經網絡的豬背膘厚快速準確測定
基于圖像處理與卷積神經網絡的零件識別
基于深度卷積網絡與空洞卷積融合的人群計數
兩敗俱傷
Seeing Red
卷積神經網絡概述
做個Patty萬人迷
西方緊盯中俄“密集”軍演
損失
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合