王浩明
(上海理工大學 光電信息與計算機工程學院,上海 200093)
圖像修復是指運用技術(shù)手段對圖像中缺失破損的區(qū)域進行重建的過程。這一技術(shù)被廣泛應用于文物和老照片的修復、醫(yī)學圖像和衛(wèi)星遙感圖像的去噪、影視特效以及軍事安全等多個領(lǐng)域。
目前圖像修復算法中常采用兩階段網(wǎng)絡結(jié)構(gòu):先在第一階段網(wǎng)絡中粗略地預測缺失的結(jié)構(gòu),再用預測的結(jié)構(gòu)信息指導第二階段網(wǎng)絡進行更精細的修復,這是一個由粗到細的過程。Huang 等人[1]在第一階段使用一個簡單的膨脹卷積網(wǎng)絡,在第二階段整合上下文注意層來完成最終的修復;Liu 等人[2]提出的兩階段網(wǎng)絡都是基于U-Net 結(jié)構(gòu),為了獲得更好的空間一致性,在第二階段還額外引入了連貫語義注意層;Ren 等人[3]設計了StructureFlow,在第一階段保留邊緣的平滑圖像來訓練結(jié)構(gòu)重建器,在第二階段使用帶有外觀流的紋理生成器生成圖像細節(jié);Nazeri 等人[4]還提出了一個由邊緣生成器緊接一個圖像修復網(wǎng)絡組成的EdgeConnect 模型。
盡管兩階段網(wǎng)絡模型已經(jīng)取得一定成效,但是在面對內(nèi)容復雜的圖像時,得到的修復結(jié)果仍然容易產(chǎn)生偽影與模糊,使得最終修復結(jié)果的整體與局部的一致性都有所下降。造成這一結(jié)果的根本原因在于第一階段得到的結(jié)構(gòu)信息質(zhì)量不高,不足以為第二階段提供良好的指導,且在第二階段中不能使用最適合的patches 來對缺失區(qū)域進行進一步填充,對兩階段網(wǎng)絡的不同設計將產(chǎn)生不同的修復效果。
基于這一思路,本文在Wu 等人[5]的工作的啟發(fā)下提出了一種新的兩階段網(wǎng)絡,更好地解決面對復雜圖像會出現(xiàn)偽影與模糊的問題。
本文算法的整體流程如圖1 所示。在生成器G1、G2中,每一層上面的數(shù)字表示輸入256×256×3的圖像時卷積層/反卷積層得到的每層特征圖的尺寸,每一層下面的數(shù)字則表示卷積層/反卷積層每層的輸入通道數(shù)。
圖1 算法整體流程圖Fig.1 Overall flow chart of the algorithm
第一階段的特征學習網(wǎng)絡用于預測出完整的LBP 結(jié)構(gòu)信息,為第二階段修復網(wǎng)絡進一步的精細修復提供指導,是一種粗修復。
特征學習網(wǎng)絡的輸入由Ii的LBP 特征圖Li以及合成Ii對應的MaskM組成。
其中,Ii是由完整圖片與MaskM融合生成的破損圖片,LBP 特征的提取是通過LBP 等價模式完成的;輸入的Li和M經(jīng)過生成器G1與判別器D1的不斷博弈,最終由G1預測出完整的LBP 特征圖Lo,作為第二階段修復網(wǎng)絡輸入的一部分。
第二階段的修復網(wǎng)絡用于完成最終精細的修復。修復網(wǎng)絡的生成器G2是以第一階段的最終輸出Lo以及Ii與其對應的MaskM作為輸入的,通過G2與修復網(wǎng)絡的判別器D2的聯(lián)合訓練,輸出最終的修復結(jié)果Io。
特征學習網(wǎng)絡主要由LBP 等價模式模塊、生成器G1和判別器D1組成。
在許多兩階段圖像修復網(wǎng)絡中,都需要使用在第一階段網(wǎng)絡中捕獲的結(jié)構(gòu)信息為第二階段網(wǎng)絡提供指導,因此捕獲到的結(jié)構(gòu)信息質(zhì)量將直接影響后續(xù)圖像修復的質(zhì)量。目前許多兩階段圖像修復網(wǎng)絡中使用的結(jié)構(gòu)信息,通常涉及許多參數(shù),如預濾波強度和邊緣響應閾值等,并且其最佳設置也因圖像而異。
相比之下,LBP 特征涉及參數(shù)少,并且在紋理較細的區(qū)域,包含了更豐富的結(jié)構(gòu)信息。此外,相比其他特征需要不斷調(diào)整參數(shù)設置,來獲取最佳效果,LBP 特征更加通用簡單,因此本文選用LBP 特征作為第一階段的結(jié)構(gòu)信息。在此基礎上,本文使用了LBP 的等價模式,通過設置半徑R =1,采樣點P =8,實現(xiàn)LBP 算子模式種類數(shù)量的進一步減少。實驗證明,本文采用的LBP 等價模式對于最終的修復效果起到了很好的引導作用。
2.1.1 原始LBP
局部二值模式(Local Binary Pattern,LBP)是一種用于描述圖像局部紋理特征的算子,具有涉及參數(shù)少,包含豐富結(jié)構(gòu)信息的優(yōu)點[6]。
原始LBP 的計算方式示意如圖2 所示。以圖像上任一像素點(如圖2 中像素值為5 的黃色像素點)為中心,對其取一個3×3 的鄰域,依次將鄰域中的其余8 個點與中心像素點進行像素值的比較,比中心像素點像素值大的置1,反之置0;從左上角(如圖2 中原像素值為3 的像素點)開始,順時針依次將這些0 和1 連成一個八位二進制序列(圖2 中為01100101);最后,將序列轉(zhuǎn)換為十進制,便得到了這一像素點的LBP 值;依次計算圖像上的每一個像素點的LBP 值,便可得到整張圖像的LBP 特征圖。
圖2 原始LBP 計算方式示意圖Fig.2 Schematic diagram of the original LBP calculation method
2.1.2 圓形LBP 算法
為了增強LBP 適應不同尺寸圖片的能力,圓形LBP 算法被提出[7]。具體來說是通過使用半徑為R,采樣點總個數(shù)為P的圓形鄰域代替正方形鄰域,如圖3 所示。從左到右依次為:半徑為1,采樣點數(shù)為8;半徑為2,采樣點數(shù)為8;半徑為2,采樣點數(shù)為16 的示意圖。
圖3 圓形LBP 示意圖Fig.3 Schematic diagram of Circular LBP
圓形LBP 算法首先需要計算出除了中心像素點以外其余各個采樣點的坐標,根據(jù)坐標找到對應位置的像素值,依舊按照前面的原始LBP 計算方式計算出中心像素對應的LBP 值,第p個采樣點的坐標(xp,yp)計算公式如式(1)所示。
其中,(xc,yc)為中心像素點坐標;R表示半徑;P表示采樣點總個數(shù)。
2.1.3 LBP 等價模式
由圓形LBP 算法可以看出,P個采樣點對應著2P種模式,這種指數(shù)對應關(guān)系,使得P即使變動不大,二值模式種類的數(shù)量也會發(fā)生巨大變化,這對于紋理的提取、識別和分類都是不利的。所以需要使用等價模式來減少LBP 算子的模式種類的數(shù)量,實現(xiàn)對圓形LBP 算法的進一步優(yōu)化[7]。
當某個LBP 值所對應的二進制數(shù)從0 到1 或從1 到0 最多有兩次跳變時,該LBP 值所對應的二進制就定義為一個等價模式類,其余的都被稱為混合模式類。
LBP 等價模式使二值模式的種類數(shù)量大大減少,由原來的2P種減少為P(P -1)+1 種,而不會丟失任何信息。
為了獲得更精細的圖像修復結(jié)果,本文的特征學習網(wǎng)絡的生成器G1保留了Shift-Net 中生成器的U-Net 架構(gòu),其完整的網(wǎng)絡結(jié)構(gòu)見表1。Conv、DeConv、Cat、LReLU、IN 分別代表卷積層、反卷積層、連接層、α =0.2 的LeakyReLU 以及實例正則化(InstanceNorm)。每個括號里的4 個數(shù)字都分別代表濾波器數(shù)量(即通道數(shù))、卷積核尺寸、步長以及padding 數(shù)目。如:Conv(128,4,2,1),括號里的4個數(shù)字分別表示濾波器數(shù)量為128,卷積核尺寸為4×4,步長為2,padding 為1。
表1 G1 完整結(jié)構(gòu)Tab.1 The complete structure of G1
G1的編碼器部分(層1-層8)除了第一層是卷積層外,每層都是由Leaky ReLU、卷積以及InstanceNorm層疊加而成,編碼階段各卷積層的輸入通道數(shù)依次為64、128、256、512、512、512、512、512。
G1的解碼器部分(層8-層15)都是由ReLU、反卷積層以及實例正則化疊加而成。解碼階段各反卷積層輸入通道數(shù)依次為512、512、512、512、256、128、64、3。
對于特征學習網(wǎng)絡的判別器D1,本文采用PatchGAN 架構(gòu),見表2。D1與G1的編碼器部分具有相似的設計模式,但只有5 個卷積層。除了第一層和第五層,每一層的卷積層后都緊接一個實例正則化,除了第一層,每一層都有一個α =0.2 的LeakyReLU 層。卷積層的卷積核尺寸都為4×4、步長都為2,padding 都為1,各卷積層的輸入通道數(shù)依次為64、128、256、512、1。此外,最后一層使用了Sigmoid 作為激活函數(shù)。
表2 D1 完整結(jié)構(gòu)Tab.2 The complete structure of D1
修復網(wǎng)絡主要由生成器G2和判別器D2組成。在生成器G2中,除了引入了新的注意層,G2與G1、D2與D1都分別采用了完全相同的結(jié)構(gòu)。
為了使修復結(jié)果同時在全局和局部上具備更好的一致性,在修復網(wǎng)絡的生成器中加入新的注意層?,F(xiàn)有的使用注意力機制的算法都默認缺失區(qū)域與已知區(qū)域具有相同的結(jié)構(gòu)特征,僅在已知區(qū)域中搜尋相似patches 來對缺失區(qū)域進行填充,可能會遺漏掉更高質(zhì)量的patches。本文的注意層將搜索范圍擴大到已知區(qū)域以及修復過程中生成的區(qū)域,以得到更高質(zhì)量的相似patches。
其中,P代表從生成器G2第13 層的特征圖中的生成區(qū)域中提取出的所有1×1 的patches 組成的集合,則代表從生成器G2第13 層的特征圖中的已知區(qū)域中提取出的所有1×1 的patches 組成的集合。
(3)更新patches。為了更好的確保修復結(jié)果的全局一致性,本文采用非局部均值策略更新每個Pj∈P,更新的具體計算公式如式(4)、式(5)所示:
此外,將注意層安排在第13 層是出于對計算資源和性能的綜合考量:進入解碼器階段,越深的層得到的特征圖的尺寸越大,需要的計算資源需求也相應增加;但是當層數(shù)較小,提取的可用patches 數(shù)量不足,無法獲得更相似的patches 來填充破損區(qū)域,最終的修復性能也會因此下降。因此,為了在計算資源和性能之間實現(xiàn)平衡,參照Shift-Net 的設置,本文最終選擇在生成器的第13 層插入新的注意層,此時特征圖的尺寸為32×32。
同主流的圖像修復算法一樣,特征學習網(wǎng)絡整體的損失函數(shù)LLEARN是多個損失函數(shù)的加權(quán)和。LLEARN表示最終預測到的LBP 特征與Ground Truth的LBP 特征的差距,用于評估經(jīng)過特征學習網(wǎng)絡預測后得到的LBP 特征的質(zhì)量,其具體計算方式為
其中,Lrec1表示重建損失;Ladv1表示對抗損失;ωrec1,ωadv1分別代表Lrec1和Ladv1各自的權(quán)重。
重建損失Lrec1選用了L1損失,具體計算方式為
其中,Lo表示預測出的LBP 特征圖,Lg則表示Ground Truth 的LBP 特征圖。
對抗損失Ladv1的具體計算方式為
其中,M表示二值掩碼,Li表示從輸入的破損圖片Ii中提取的LBP 特征。
修復網(wǎng)絡的整體損失函數(shù)LInp在特征學習網(wǎng)絡的整體損失函數(shù)LLEARN的基礎上額外引入了感知損失Lper和風格損失Lstyle,具體計算方式為
其中,ωper,ωstyle為感知損失Lper和風格損失Lstyle對應的權(quán)重,ωrec2,ωadv2為重建損失Lrec2和對抗損失Ladv2對應的權(quán)重。
感知損失Lper的計算方式為
其中,Io表示最終修復得到的圖片;Ig表示Ground Truth 圖片;φl表示對應于ImageNet 預訓練的VGG-16 網(wǎng)絡的第l層的激活圖,集合C包括了conv2_1、conv3_1、conv4_1 層的層索引。
本文的風格損失函數(shù)Lstyle具體計算方式為
其中,Gφl是給定大小為Ci × Hi × Wi的特征圖后,由與感知損失相同的激活圖φl構(gòu)造的Ci ×Ci的Gram 矩陣。
5.1.1 數(shù)據(jù)集
本文實驗共使用4 種數(shù)據(jù)集,即CelebA-HQ、Places 和Paris StreetView 以及NVIDIA 提供的不規(guī)則Mask 數(shù)據(jù)集。本文使用CelebA-HQ 數(shù)據(jù)集原有的訓練集用于訓練,原有的測試集對半分為本文的測試集與驗證集,即訓練集28 000 張,新的測試集和驗證集各1 000 張;本文從Places 數(shù)據(jù)集中隨機選擇10 種場景,并將其原始驗證集對半分成本文的新的驗證集和測試集,即訓練集是來自10 種場景的5 萬張圖片,驗證集和測試集都分別是來自10 種場景的500 張圖片;本文從Paris StreetView 數(shù)據(jù)集原始訓練集中選擇100 張圖像作為驗證集,使用剩下的14 800 張圖像來構(gòu)成訓練集,測試集不變;訓練時采用從不規(guī)則Mask 數(shù)據(jù)集中隨機選取的策略。除了不規(guī)則Mask,本文還使用了中心Mask,中心Mask 的尺寸統(tǒng)一采用128×128(單位為像素)。此外,輸入網(wǎng)絡的圖片都會預處理為256×256 的大小。
5.1.2 訓練環(huán)境
本文的實驗模型主要是基于Pytorch 1.6.0 和Tensorflow 1.8.0 框架搭建的,使用一臺操作系統(tǒng)為Ubuntu 的服務器進行訓練。服務器的顯卡型號為RTX 3090,顯存大小為24 G,處理器類型為i9-10900k、運行內(nèi)存大小為64 GB,硬盤大小為2 T。編程語言使用python 3.6。
5.1.3 訓練過程
首先在特征學習網(wǎng)絡中訓練生成器G1和判別器D1,將G1得到的結(jié)果連接到修復網(wǎng)絡中,同時對G1、G2和D2進行訓練。
5.1.4 部分參數(shù)設置
batchsize 設置為8,模型使用Adam 優(yōu)化器對參數(shù)進行優(yōu)化,其中β1=0,β2=0.9,生成器網(wǎng)絡的學習率設為10-4,判別器的學習率為10-5來對網(wǎng)絡微調(diào),直至收斂為止,最多訓練30 個epoch。
為了直觀地驗證本文提出算法的有效性及優(yōu)越性,將本文的算法與當下流行的幾種算法在Places數(shù)據(jù)集上進行了定性比較,結(jié)果如圖4、圖5 所示。圖4、圖5 中的輸入圖片分別使用了中心Mask 以及不規(guī)則Mask,且圖5 輸入圖片中的缺失比例自上而下不斷擴大。
圖4 使用中心Mask 的Places 數(shù)據(jù)集上的修復結(jié)果對比圖Fig.4 Comparison of each algorithm on Places dataset with central mask
圖5 使用不規(guī)則Mask 的Places 數(shù)據(jù)集上的修復結(jié)果對比圖Fig.5 Comparison of each algorithm on Places dataset with irregular mask
由圖4 可以看出,使用了中心Mask 的Places 圖片,CA 出現(xiàn)了嚴重的語義不符:海面處出現(xiàn)了藍色方框;EC 也出現(xiàn)了明顯的掩膜邊界:山后的天空出現(xiàn)了明顯的正方形邊界;本文算法的結(jié)果也在海面部分出現(xiàn)了模糊,只有PC 的結(jié)果細膩自然,具備更多的紋理細節(jié)。
由圖5 可以看出,面對使用不規(guī)則Mask 的Places 圖片:在缺失比例較小(0%~30%)時,所有算法均取得了較好的修復效果,與GT 圖片相比,結(jié)果也很逼真。但是當缺失比例逐漸擴大(≥30%),除本文算法外的所有算法依次出現(xiàn)了模糊,其中CA的模糊最為嚴重,PC 和EC 均丟失了細節(jié),本文算法所有圖片依舊產(chǎn)生了自然真實的修復效果。
圖4 從視覺上定性證明本文算法在使用了中心Mask 的Places 數(shù)據(jù)集上,性能未能達到最佳;圖5則從視覺上定性證明了在使用了不規(guī)則Mask 的Places 數(shù)據(jù)集上,本文的算法產(chǎn)生了最好的修復效果。
通過使用性能指標來對圖像修復算法的性能進行客觀的定量比較。本文采用圖像修復中最常用的性能評價指標:峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結(jié)構(gòu)相似指數(shù)(Structural Similarity index,SSIM)。兩種指標的值的大小都是與算法的修復性能呈正相關(guān)的,PSNR 的單位為dB,SSIM 的范圍為0~1。
Contextual Attention(CA)、Partial Convolutions(PC)、Edge Connect(EC)以及本文算法在中心Mask 的CelebA-HQ 數(shù)據(jù)集和Paris StreetView 數(shù)據(jù)集上得到的性能評價指標如圖6、圖7 所示??梢钥闯?,在中心Mask 的CelebA-HQ 數(shù)據(jù)集上,本文算法的PSNR 和SSIM 值分別為28.19 dB 以及0.924;在中心Mask 的Paris StreetView 數(shù)據(jù)集上,本文算法的PSNR 和SSIM 值分別為26.35 dB 以及0.868;因此,無論在哪個數(shù)據(jù)集上,本文算法的PSNR 和SSIM 值都比當前流行的其他算法高,尤其是在CelebA-HQ 中,本文算法的PSNR 值比CA 高出4.95 dB,SSIM 值比CA 高出0.038,定量證明了本文算法與其他主流算法相比,在中心Mask 的CelebAHQ 和Paris StreetView 數(shù)據(jù)集上具有更好的修復性能,即從數(shù)值上反映了采用的LBP 等價模式和新的注意力層對于最終修復效果的有效性。
圖6 各算法在中心Mask 的CelebA-HQ 數(shù)據(jù)集上的SSIM 與PSNR 值對比圖Fig.6 Comparison of SSIM and PSNR values obtained by each algorithm on CeleBA-HQ dataset with central Mask
圖7 各算法在中心Mask 的Paris StreetView 數(shù)據(jù)集上的SSIM 與PSNR 值對比圖Fig.7 Comparison of SSIM and PSNR values obtained by each algorithm on Paris StreetView dataset with central Mask
為了驗證本文提出的LBP 等價模式和注意層對于圖像修復任務的有效性與優(yōu)越性,分別對這兩部分依次進行消融實驗。
5.4.1 LBP 等價模式
通過對LBP 等價模式進行消融實驗,得到了圖8 所示的結(jié)果。
由圖8(c)、圖8(g)對比可看出,未使用LBP 等價模式得到的修復結(jié)果出現(xiàn)了明顯的扭曲與細節(jié)丟失,眉毛與眼睛的細節(jié)都未能很好地還原;而使用LBP 等價模式得到的修復結(jié)果則很好地還原了人臉的細節(jié),產(chǎn)生了合理自然的結(jié)果,與Ground Truth 圖像也更接近,兩圖之間的對比很好地從視覺上定性證明了LBP 等價模式的有效性。
圖8 LBP 等價模式消融實驗結(jié)果定性對比圖Fig.8 Comparison of qualitative results of LBP uniform pattern ablation study
由圖8(d)、圖8(e)、圖8(f)對比可看出:結(jié)構(gòu)重建器預測的RTV 結(jié)構(gòu)信息過于平滑,遺漏了大量的結(jié)構(gòu)細節(jié),邊緣生成器預測的邊緣結(jié)構(gòu)信息包含不連續(xù)點,只有LBP 等價模式預測的結(jié)果包含了更完整的結(jié)構(gòu)信息。
由圖8(g)、圖8(h)、圖8(i)對比可以看出,最終的修復結(jié)果也是經(jīng)過LBP 特征引導的最為清晰準確,很好地證明了LBP 等價模式在提供結(jié)構(gòu)信息方面相比其他結(jié)構(gòu)特征提取器的優(yōu)越性。
5.4.2 注意層
為了驗證本文提出的注意層的有效性以及優(yōu)越性,將不使用任何注意層、使用上下文注意層以及使用本文新的注意層得到的修復結(jié)果進行比較,比較的結(jié)果如圖9 所示。
由圖9(c)、圖9(e)對比可直觀看出,使用與不使用本文提出的注意層最終得到的修復結(jié)果之間差距明顯:不使用本文提出的注意層得到的結(jié)果十分模糊,花朵的大部分細節(jié)也已經(jīng)丟失;而使用本文提出的注意層得到的結(jié)果則很好地還原了花朵缺失部分的細節(jié),得到的結(jié)果也更加細膩自然,從視覺上定性證明了本文提出的注意層的有效性。
圖9 注意層消融實驗定性結(jié)果比較圖Fig.9 Comparison of qualitative results of attention layer ablation study
由圖9(c)、圖9(e)對比可直觀看出,加入上下文注意層后,盡管修復效果獲得了一定的提升,去除了部分模糊,還原了部分細節(jié);將圖9(d)與圖9(e)進行對比可以看出,使用本文提出的注意層能更好地還原結(jié)構(gòu)信息,得到的修復的結(jié)果也更為清晰,從視覺上定性證明了本文提出的注意層相比其他注意層的優(yōu)越性。
除了上述的定性比較,本文還使用了不規(guī)則Mask 的Places 數(shù)據(jù)集做了注意層的定量比較,最終結(jié)果見表3。
由表3 的數(shù)據(jù)對比可看出,使用本文注意層的算法比不使用任何注意層的方法,PSNR 值高出了4.919 dB,SSIM 值高出了0.129,這一提升定量地驗證了本文提出的注意層的有效性;使用本文注意層的算法比使用上下文注意層的方法,在PSNR 上高出4.439 dB,在SSIM 上高出0.067,定量地驗證了本文提出的新的注意層的優(yōu)越性。
表3 注意層消融實驗結(jié)果定量比較表Tab.3 Comparison of quantitative results of attention layer ablation study
為了更好地解決面對復雜圖像時會出現(xiàn)偽影與模糊的問題,本文提出新的兩階段網(wǎng)絡,在第一階段的特征學習網(wǎng)絡中使用的LBP 等價模式,獲得了更高質(zhì)量的結(jié)構(gòu)信息,為第二階段的修復提供了更好的指導。并且在第二階段修復網(wǎng)絡的生成器中插入的新的注意層同時在已知區(qū)域和生成區(qū)域中尋找更高質(zhì)量的相似patches,使得最終的修復結(jié)果具備更好的全局和局部一致性。通過與其他算法進行主觀的定性比較以及客觀的定量比較,證明本文所提出的修復算法更好地解決了內(nèi)容復雜的圖像出現(xiàn)的偽影、模糊、不連貫的問題,能生成一致性更強、更加細膩真實的修復結(jié)果。但是,在面對具有大面積不規(guī)則缺失的圖像時,本文算法出現(xiàn)了明顯的性能下降,后續(xù)工作將針對這一不足開展。