王浩明
(上海理工大學 光電信息與計算機工程學院,上海 200093)
圖像修復是指運用技術手段對圖像中缺失破損的區域進行重建的過程。這一技術被廣泛應用于文物和老照片的修復、醫學圖像和衛星遙感圖像的去噪、影視特效以及軍事安全等多個領域。
目前圖像修復算法中常采用兩階段網絡結構:先在第一階段網絡中粗略地預測缺失的結構,再用預測的結構信息指導第二階段網絡進行更精細的修復,這是一個由粗到細的過程。Huang 等人[1]在第一階段使用一個簡單的膨脹卷積網絡,在第二階段整合上下文注意層來完成最終的修復;Liu 等人[2]提出的兩階段網絡都是基于U-Net 結構,為了獲得更好的空間一致性,在第二階段還額外引入了連貫語義注意層;Ren 等人[3]設計了StructureFlow,在第一階段保留邊緣的平滑圖像來訓練結構重建器,在第二階段使用帶有外觀流的紋理生成器生成圖像細節;Nazeri 等人[4]還提出了一個由邊緣生成器緊接一個圖像修復網絡組成的EdgeConnect 模型。
盡管兩階段網絡模型已經取得一定成效,但是在面對內容復雜的圖像時,得到的修復結果仍然容易產生偽影與模糊,使得最終修復結果的整體與局部的一致性都有所下降。造成這一結果的根本原因在于第一階段得到的結構信息質量不高,不足以為第二階段提供良好的指導,且在第二階段中不能使用最適合的patches 來對缺失區域進行進一步填充,對兩階段網絡的不同設計將產生不同的修復效果。
基于這一思路,本文在Wu 等人[5]的工作的啟發下提出了一種新的兩階段網絡,更好地解決面對復雜圖像會出現偽影與模糊的問題。
本文算法的整體流程如圖1 所示。在生成器G1、G2中,每一層上面的數字表示輸入256×256×3的圖像時卷積層/反卷積層得到的每層特征圖的尺寸,每一層下面的數字則表示卷積層/反卷積層每層的輸入通道數。

圖1 算法整體流程圖Fig.1 Overall flow chart of the algorithm
第一階段的特征學習網絡用于預測出完整的LBP 結構信息,為第二階段修復網絡進一步的精細修復提供指導,是一種粗修復。
特征學習網絡的輸入由Ii的LBP 特征圖Li以及合成Ii對應的MaskM組成。
其中,Ii是由完整圖片與MaskM融合生成的破損圖片,LBP 特征的提取是通過LBP 等價模式完成的;輸入的Li和M經過生成器G1與判別器D1的不斷博弈,最終由G1預測出完整的LBP 特征圖Lo,作為第二階段修復網絡輸入的一部分。
第二階段的修復網絡用于完成最終精細的修復。修復網絡的生成器G2是以第一階段的最終輸出Lo以及Ii與其對應的MaskM作為輸入的,通過G2與修復網絡的判別器D2的聯合訓練,輸出最終的修復結果Io。
特征學習網絡主要由LBP 等價模式模塊、生成器G1和判別器D1組成。
在許多兩階段圖像修復網絡中,都需要使用在第一階段網絡中捕獲的結構信息為第二階段網絡提供指導,因此捕獲到的結構信息質量將直接影響后續圖像修復的質量。目前許多兩階段圖像修復網絡中使用的結構信息,通常涉及許多參數,如預濾波強度和邊緣響應閾值等,并且其最佳設置也因圖像而異。
相比之下,LBP 特征涉及參數少,并且在紋理較細的區域,包含了更豐富的結構信息。此外,相比其他特征需要不斷調整參數設置,來獲取最佳效果,LBP 特征更加通用簡單,因此本文選用LBP 特征作為第一階段的結構信息。在此基礎上,本文使用了LBP 的等價模式,通過設置半徑R =1,采樣點P =8,實現LBP 算子模式種類數量的進一步減少。實驗證明,本文采用的LBP 等價模式對于最終的修復效果起到了很好的引導作用。
2.1.1 原始LBP
局部二值模式(Local Binary Pattern,LBP)是一種用于描述圖像局部紋理特征的算子,具有涉及參數少,包含豐富結構信息的優點[6]。
原始LBP 的計算方式示意如圖2 所示。以圖像上任一像素點(如圖2 中像素值為5 的黃色像素點)為中心,對其取一個3×3 的鄰域,依次將鄰域中的其余8 個點與中心像素點進行像素值的比較,比中心像素點像素值大的置1,反之置0;從左上角(如圖2 中原像素值為3 的像素點)開始,順時針依次將這些0 和1 連成一個八位二進制序列(圖2 中為01100101);最后,將序列轉換為十進制,便得到了這一像素點的LBP 值;依次計算圖像上的每一個像素點的LBP 值,便可得到整張圖像的LBP 特征圖。

圖2 原始LBP 計算方式示意圖Fig.2 Schematic diagram of the original LBP calculation method
2.1.2 圓形LBP 算法
為了增強LBP 適應不同尺寸圖片的能力,圓形LBP 算法被提出[7]。具體來說是通過使用半徑為R,采樣點總個數為P的圓形鄰域代替正方形鄰域,如圖3 所示。從左到右依次為:半徑為1,采樣點數為8;半徑為2,采樣點數為8;半徑為2,采樣點數為16 的示意圖。

圖3 圓形LBP 示意圖Fig.3 Schematic diagram of Circular LBP
圓形LBP 算法首先需要計算出除了中心像素點以外其余各個采樣點的坐標,根據坐標找到對應位置的像素值,依舊按照前面的原始LBP 計算方式計算出中心像素對應的LBP 值,第p個采樣點的坐標(xp,yp)計算公式如式(1)所示。

其中,(xc,yc)為中心像素點坐標;R表示半徑;P表示采樣點總個數。
2.1.3 LBP 等價模式
由圓形LBP 算法可以看出,P個采樣點對應著2P種模式,這種指數對應關系,使得P即使變動不大,二值模式種類的數量也會發生巨大變化,這對于紋理的提取、識別和分類都是不利的。所以需要使用等價模式來減少LBP 算子的模式種類的數量,實現對圓形LBP 算法的進一步優化[7]。
當某個LBP 值所對應的二進制數從0 到1 或從1 到0 最多有兩次跳變時,該LBP 值所對應的二進制就定義為一個等價模式類,其余的都被稱為混合模式類。
LBP 等價模式使二值模式的種類數量大大減少,由原來的2P種減少為P(P -1)+1 種,而不會丟失任何信息。
為了獲得更精細的圖像修復結果,本文的特征學習網絡的生成器G1保留了Shift-Net 中生成器的U-Net 架構,其完整的網絡結構見表1。Conv、DeConv、Cat、LReLU、IN 分別代表卷積層、反卷積層、連接層、α =0.2 的LeakyReLU 以及實例正則化(InstanceNorm)。每個括號里的4 個數字都分別代表濾波器數量(即通道數)、卷積核尺寸、步長以及padding 數目。如:Conv(128,4,2,1),括號里的4個數字分別表示濾波器數量為128,卷積核尺寸為4×4,步長為2,padding 為1。

表1 G1 完整結構Tab.1 The complete structure of G1
G1的編碼器部分(層1-層8)除了第一層是卷積層外,每層都是由Leaky ReLU、卷積以及InstanceNorm層疊加而成,編碼階段各卷積層的輸入通道數依次為64、128、256、512、512、512、512、512。
G1的解碼器部分(層8-層15)都是由ReLU、反卷積層以及實例正則化疊加而成。解碼階段各反卷積層輸入通道數依次為512、512、512、512、256、128、64、3。
對于特征學習網絡的判別器D1,本文采用PatchGAN 架構,見表2。D1與G1的編碼器部分具有相似的設計模式,但只有5 個卷積層。除了第一層和第五層,每一層的卷積層后都緊接一個實例正則化,除了第一層,每一層都有一個α =0.2 的LeakyReLU 層。卷積層的卷積核尺寸都為4×4、步長都為2,padding 都為1,各卷積層的輸入通道數依次為64、128、256、512、1。此外,最后一層使用了Sigmoid 作為激活函數。

表2 D1 完整結構Tab.2 The complete structure of D1
修復網絡主要由生成器G2和判別器D2組成。在生成器G2中,除了引入了新的注意層,G2與G1、D2與D1都分別采用了完全相同的結構。
為了使修復結果同時在全局和局部上具備更好的一致性,在修復網絡的生成器中加入新的注意層?,F有的使用注意力機制的算法都默認缺失區域與已知區域具有相同的結構特征,僅在已知區域中搜尋相似patches 來對缺失區域進行填充,可能會遺漏掉更高質量的patches。本文的注意層將搜索范圍擴大到已知區域以及修復過程中生成的區域,以得到更高質量的相似patches。

其中,P代表從生成器G2第13 層的特征圖中的生成區域中提取出的所有1×1 的patches 組成的集合,則代表從生成器G2第13 層的特征圖中的已知區域中提取出的所有1×1 的patches 組成的集合。


(3)更新patches。為了更好的確保修復結果的全局一致性,本文采用非局部均值策略更新每個Pj∈P,更新的具體計算公式如式(4)、式(5)所示:

此外,將注意層安排在第13 層是出于對計算資源和性能的綜合考量:進入解碼器階段,越深的層得到的特征圖的尺寸越大,需要的計算資源需求也相應增加;但是當層數較小,提取的可用patches 數量不足,無法獲得更相似的patches 來填充破損區域,最終的修復性能也會因此下降。因此,為了在計算資源和性能之間實現平衡,參照Shift-Net 的設置,本文最終選擇在生成器的第13 層插入新的注意層,此時特征圖的尺寸為32×32。
同主流的圖像修復算法一樣,特征學習網絡整體的損失函數LLEARN是多個損失函數的加權和。LLEARN表示最終預測到的LBP 特征與Ground Truth的LBP 特征的差距,用于評估經過特征學習網絡預測后得到的LBP 特征的質量,其具體計算方式為

其中,Lrec1表示重建損失;Ladv1表示對抗損失;ωrec1,ωadv1分別代表Lrec1和Ladv1各自的權重。
重建損失Lrec1選用了L1損失,具體計算方式為

其中,Lo表示預測出的LBP 特征圖,Lg則表示Ground Truth 的LBP 特征圖。
對抗損失Ladv1的具體計算方式為

其中,M表示二值掩碼,Li表示從輸入的破損圖片Ii中提取的LBP 特征。
修復網絡的整體損失函數LInp在特征學習網絡的整體損失函數LLEARN的基礎上額外引入了感知損失Lper和風格損失Lstyle,具體計算方式為

其中,ωper,ωstyle為感知損失Lper和風格損失Lstyle對應的權重,ωrec2,ωadv2為重建損失Lrec2和對抗損失Ladv2對應的權重。
感知損失Lper的計算方式為

其中,Io表示最終修復得到的圖片;Ig表示Ground Truth 圖片;φl表示對應于ImageNet 預訓練的VGG-16 網絡的第l層的激活圖,集合C包括了conv2_1、conv3_1、conv4_1 層的層索引。
本文的風格損失函數Lstyle具體計算方式為

其中,Gφl是給定大小為Ci × Hi × Wi的特征圖后,由與感知損失相同的激活圖φl構造的Ci ×Ci的Gram 矩陣。
5.1.1 數據集
本文實驗共使用4 種數據集,即CelebA-HQ、Places 和Paris StreetView 以及NVIDIA 提供的不規則Mask 數據集。本文使用CelebA-HQ 數據集原有的訓練集用于訓練,原有的測試集對半分為本文的測試集與驗證集,即訓練集28 000 張,新的測試集和驗證集各1 000 張;本文從Places 數據集中隨機選擇10 種場景,并將其原始驗證集對半分成本文的新的驗證集和測試集,即訓練集是來自10 種場景的5 萬張圖片,驗證集和測試集都分別是來自10 種場景的500 張圖片;本文從Paris StreetView 數據集原始訓練集中選擇100 張圖像作為驗證集,使用剩下的14 800 張圖像來構成訓練集,測試集不變;訓練時采用從不規則Mask 數據集中隨機選取的策略。除了不規則Mask,本文還使用了中心Mask,中心Mask 的尺寸統一采用128×128(單位為像素)。此外,輸入網絡的圖片都會預處理為256×256 的大小。
5.1.2 訓練環境
本文的實驗模型主要是基于Pytorch 1.6.0 和Tensorflow 1.8.0 框架搭建的,使用一臺操作系統為Ubuntu 的服務器進行訓練。服務器的顯卡型號為RTX 3090,顯存大小為24 G,處理器類型為i9-10900k、運行內存大小為64 GB,硬盤大小為2 T。編程語言使用python 3.6。
5.1.3 訓練過程
首先在特征學習網絡中訓練生成器G1和判別器D1,將G1得到的結果連接到修復網絡中,同時對G1、G2和D2進行訓練。
5.1.4 部分參數設置
batchsize 設置為8,模型使用Adam 優化器對參數進行優化,其中β1=0,β2=0.9,生成器網絡的學習率設為10-4,判別器的學習率為10-5來對網絡微調,直至收斂為止,最多訓練30 個epoch。
為了直觀地驗證本文提出算法的有效性及優越性,將本文的算法與當下流行的幾種算法在Places數據集上進行了定性比較,結果如圖4、圖5 所示。圖4、圖5 中的輸入圖片分別使用了中心Mask 以及不規則Mask,且圖5 輸入圖片中的缺失比例自上而下不斷擴大。

圖4 使用中心Mask 的Places 數據集上的修復結果對比圖Fig.4 Comparison of each algorithm on Places dataset with central mask

圖5 使用不規則Mask 的Places 數據集上的修復結果對比圖Fig.5 Comparison of each algorithm on Places dataset with irregular mask
由圖4 可以看出,使用了中心Mask 的Places 圖片,CA 出現了嚴重的語義不符:海面處出現了藍色方框;EC 也出現了明顯的掩膜邊界:山后的天空出現了明顯的正方形邊界;本文算法的結果也在海面部分出現了模糊,只有PC 的結果細膩自然,具備更多的紋理細節。
由圖5 可以看出,面對使用不規則Mask 的Places 圖片:在缺失比例較?。?%~30%)時,所有算法均取得了較好的修復效果,與GT 圖片相比,結果也很逼真。但是當缺失比例逐漸擴大(≥30%),除本文算法外的所有算法依次出現了模糊,其中CA的模糊最為嚴重,PC 和EC 均丟失了細節,本文算法所有圖片依舊產生了自然真實的修復效果。
圖4 從視覺上定性證明本文算法在使用了中心Mask 的Places 數據集上,性能未能達到最佳;圖5則從視覺上定性證明了在使用了不規則Mask 的Places 數據集上,本文的算法產生了最好的修復效果。
通過使用性能指標來對圖像修復算法的性能進行客觀的定量比較。本文采用圖像修復中最常用的性能評價指標:峰值信噪比(Peak Signal to Noise Ratio,PSNR)和結構相似指數(Structural Similarity index,SSIM)。兩種指標的值的大小都是與算法的修復性能呈正相關的,PSNR 的單位為dB,SSIM 的范圍為0~1。
Contextual Attention(CA)、Partial Convolutions(PC)、Edge Connect(EC)以及本文算法在中心Mask 的CelebA-HQ 數據集和Paris StreetView 數據集上得到的性能評價指標如圖6、圖7 所示??梢钥闯?,在中心Mask 的CelebA-HQ 數據集上,本文算法的PSNR 和SSIM 值分別為28.19 dB 以及0.924;在中心Mask 的Paris StreetView 數據集上,本文算法的PSNR 和SSIM 值分別為26.35 dB 以及0.868;因此,無論在哪個數據集上,本文算法的PSNR 和SSIM 值都比當前流行的其他算法高,尤其是在CelebA-HQ 中,本文算法的PSNR 值比CA 高出4.95 dB,SSIM 值比CA 高出0.038,定量證明了本文算法與其他主流算法相比,在中心Mask 的CelebAHQ 和Paris StreetView 數據集上具有更好的修復性能,即從數值上反映了采用的LBP 等價模式和新的注意力層對于最終修復效果的有效性。

圖6 各算法在中心Mask 的CelebA-HQ 數據集上的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 數據集上的SSIM 與PSNR 值對比圖Fig.7 Comparison of SSIM and PSNR values obtained by each algorithm on Paris StreetView dataset with central Mask
為了驗證本文提出的LBP 等價模式和注意層對于圖像修復任務的有效性與優越性,分別對這兩部分依次進行消融實驗。
5.4.1 LBP 等價模式
通過對LBP 等價模式進行消融實驗,得到了圖8 所示的結果。
由圖8(c)、圖8(g)對比可看出,未使用LBP 等價模式得到的修復結果出現了明顯的扭曲與細節丟失,眉毛與眼睛的細節都未能很好地還原;而使用LBP 等價模式得到的修復結果則很好地還原了人臉的細節,產生了合理自然的結果,與Ground Truth 圖像也更接近,兩圖之間的對比很好地從視覺上定性證明了LBP 等價模式的有效性。

圖8 LBP 等價模式消融實驗結果定性對比圖Fig.8 Comparison of qualitative results of LBP uniform pattern ablation study
由圖8(d)、圖8(e)、圖8(f)對比可看出:結構重建器預測的RTV 結構信息過于平滑,遺漏了大量的結構細節,邊緣生成器預測的邊緣結構信息包含不連續點,只有LBP 等價模式預測的結果包含了更完整的結構信息。
由圖8(g)、圖8(h)、圖8(i)對比可以看出,最終的修復結果也是經過LBP 特征引導的最為清晰準確,很好地證明了LBP 等價模式在提供結構信息方面相比其他結構特征提取器的優越性。
5.4.2 注意層
為了驗證本文提出的注意層的有效性以及優越性,將不使用任何注意層、使用上下文注意層以及使用本文新的注意層得到的修復結果進行比較,比較的結果如圖9 所示。
由圖9(c)、圖9(e)對比可直觀看出,使用與不使用本文提出的注意層最終得到的修復結果之間差距明顯:不使用本文提出的注意層得到的結果十分模糊,花朵的大部分細節也已經丟失;而使用本文提出的注意層得到的結果則很好地還原了花朵缺失部分的細節,得到的結果也更加細膩自然,從視覺上定性證明了本文提出的注意層的有效性。

圖9 注意層消融實驗定性結果比較圖Fig.9 Comparison of qualitative results of attention layer ablation study
由圖9(c)、圖9(e)對比可直觀看出,加入上下文注意層后,盡管修復效果獲得了一定的提升,去除了部分模糊,還原了部分細節;將圖9(d)與圖9(e)進行對比可以看出,使用本文提出的注意層能更好地還原結構信息,得到的修復的結果也更為清晰,從視覺上定性證明了本文提出的注意層相比其他注意層的優越性。
除了上述的定性比較,本文還使用了不規則Mask 的Places 數據集做了注意層的定量比較,最終結果見表3。
由表3 的數據對比可看出,使用本文注意層的算法比不使用任何注意層的方法,PSNR 值高出了4.919 dB,SSIM 值高出了0.129,這一提升定量地驗證了本文提出的注意層的有效性;使用本文注意層的算法比使用上下文注意層的方法,在PSNR 上高出4.439 dB,在SSIM 上高出0.067,定量地驗證了本文提出的新的注意層的優越性。

表3 注意層消融實驗結果定量比較表Tab.3 Comparison of quantitative results of attention layer ablation study
為了更好地解決面對復雜圖像時會出現偽影與模糊的問題,本文提出新的兩階段網絡,在第一階段的特征學習網絡中使用的LBP 等價模式,獲得了更高質量的結構信息,為第二階段的修復提供了更好的指導。并且在第二階段修復網絡的生成器中插入的新的注意層同時在已知區域和生成區域中尋找更高質量的相似patches,使得最終的修復結果具備更好的全局和局部一致性。通過與其他算法進行主觀的定性比較以及客觀的定量比較,證明本文所提出的修復算法更好地解決了內容復雜的圖像出現的偽影、模糊、不連貫的問題,能生成一致性更強、更加細膩真實的修復結果。但是,在面對具有大面積不規則缺失的圖像時,本文算法出現了明顯的性能下降,后續工作將針對這一不足開展。