曹承瑞 劉微容 史長宏 張浩琛
圖像修復是指對圖像中缺失或損壞區域進行修復重建的過程,它是計算機視覺技術領域的重點研究內容之一,其在圖像編輯、圖像渲染等諸多領域具有重要實用價值[1?8].如何在圖像破損區域合成與現有上下文區域結構語義一致、內容準確、細節豐富的局部圖像信息,是圖像修復方法需要解決的難點問題.
根據所利用特征級別的不同,現有圖像修復方法可分為兩大類:1)利用低級非語義特征的方法;2)利用高級語義特征的方法.其中,利用低級非語義特征的圖像修復方法為傳統的圖像修復方法,通常基于擴散或圖像塊匹配機制將非破損區域的低級特征 “粘貼”到破損區域.此類方法對特定的圖像缺損類型有著優秀的修復效果.例如基于擴散的方法將圖像信息從破損區域邊界往內部進行傳播,可以有效地修復 “抓痕”這樣的細小破損.基于圖像塊匹配的方法在背景修復方面性能強大,并廣泛應用于商用軟件中.然而,此類利用低級非語義特征的圖像修復方案無法對破損區域的上下文進行深入理解,即無法獲取圖像的高級語義特征,使得此類方法對高度模式化的圖像(比如人臉)無法實現很好的修復效果.
利用高級語義特征的方法,從大規模數據中學習高級語義特征,大大提升了修復性能.其中,基于生成式對抗網絡GANs[9](Generative adversarial nets)的方法已成為圖像修復領域的主流.基于GANs的方法將圖像修復問題轉化為基于條件生成對抗網絡[10]的條件生成問題.此類方法通常以破損圖像與標定破損區域的掩碼作為條件輸入,采用自動編碼器網絡作為生成器來重建缺損區域的內容,并結合判別器網絡以對抗方式訓練,最終得到完整的圖像輸出.為有效地綜合利用圖像上下文區域的特征,GL[11](Globally and locally consistent image completion)引入級聯擴張卷積,并將其集成到自動編碼器網絡的 “瓶頸區”.雖然擴張卷積可以在一定程度上將遠距離特征納入其感受野中,以達到綜合利用遠距離特征的目標;但是擴張卷積有較大的空穴區域,以規則對稱的網格方式采樣圖像特征,從而造成遠距離重點區域特征被忽略.MC[1](Multi-column convolutional),CA[2](Contextual attention)
以及CI[12](Contextual-based inpainting)等方案采用單級上下文注意力方案,計算圖像上下文的語義相似度,顯式地從破損圖像的未破損區域中借取有意義的圖像表達,緩解了遠距離特征無法有效利用的問題.
然而,以上這些方法通常無法為場景復雜圖像的缺損區域生成結構合理、細節豐富的內容.如圖1(b)所示,修復結果圖像中明顯存在整體性或局部性結構錯亂,此外生成圖像還存在語義特征重建不夠細致的問題,即對圖像語義(比如人臉圖像的眼睛、鼻子等部分)重建比較模糊.

圖1 當前圖像修復方法所存在的結構和細節問題展示Fig.1 The structure and detail issues encountered in current image inpainting method
如圖2 所示為當前主流圖像修復方案通常采用的自動編碼器生成網絡.缺損圖像經過編碼器編碼得到淺層特征,將淺層特征送入 “瓶頸區”進行特征提取,然后再由解碼器解碼為完整圖像.我們通過研究發現此類自動編碼器結構存在非常嚴重的特征傳遞受阻問題,其 “瓶頸區”高級特征的截面過大(一般為64×64 像素大小).大截面特征使得擴張卷積與單級注意力特征匹配等方案[2,11?12]無法充分獲取結構與細節特征,同時阻礙了結構和細節特征在網絡中傳播,從而導致了修復結果中出現結構錯亂和語義對象模糊等現象.

圖2 常規自動編碼器Fig.2 Conventional autoencoder
如圖3 所示,針對特征傳遞受阻問題,我們對自動編碼器結構中的 “瓶頸區”網絡部分進行以下兩步改進:第1 步,多級特征壓縮.將編碼器與解碼器之間的 “瓶頸網絡”中大小為h×w×c像素的高級特征分別按照0、2、4、8 壓縮率進行縮放,構建多級壓縮特征,即F0、Fc2、Fc4和Fc8.越高壓縮率的特征,其尺度越小.若按照特征尺度大小對多級壓縮特征進行排列,其結果為F0>Fc2>Fc4>Fc8.多級壓縮特征在特征表達方面是互補的,越小尺度的特征中有著越小的結構特征空間,網絡更容易從中搜索出有意義的結構表達,但是越小尺度特征越缺乏細節信息;與之相反,越大尺度特征中雖然在結構表達能力上更弱,卻有著越豐富的細節特征,網絡更容易從中搜索出有意義的細節表達.因此,大小尺度特征之間的這種互補性為第2 步,即多級注意力傳播,提供了巨大潛力.多級注意力傳播可以充分利用不同壓縮特征對不同特征(結構/細節)表達方面的優勢.具體來說,我們分別對各級壓縮特征Fc8、Fc4、Fc2和F0依次執行注意力匹配與替換,得到注意力特征;并依據從小尺度到大尺度的順序對注意力特征進行分級傳播.如圖3 所示注意力特征A8與壓縮特征Fc4結合,將小尺度注意力特征傳播至更高尺度.其后注意力特征A4再以相同的過程傳播至A2和A0.由于前一級注意力特征匹配替換的結果總比后一級有更準確的結構表達;后一級緊湊的壓縮特征總比前一級有更多的細節特征.因此,多級注意力的傳播方案可以促使網絡在多個尺度下既保持圖像結構準確,又不斷地豐富細節.相比當前基于單級注意力的圖像修復方案[1?2,12],我們的多級方案可以得到更加豐富的深度特征.

圖3 多級注意力特征傳播自動編碼器Fig.3 Multi-scale attention propagation driven autoencoder
同時,與當前主流方法中由 “粗”到 “細”的多階段方案不同,我們期望在一個階段內實現細粒度圖像重建.為此,我們還提出了一種復合粒度判別器網絡對圖像修復過程進行全局語義約束與非特定局部密集約束.其中,全局語義約束由全局判別器實現,該判別器的輸出為一個評價圖像整體真實度得分的值;非特定局部密集約束由局部密集判別器實現,“非特定局部”與 “密集”體現在我們的局部密集判別器所執行的是對圖像內多個相互重疊的局部區域進行密集地判別.因此,這種密集局部判別方式非常適合處理不規則破損情況下的修復任務.
在包括人臉、建筑立面和自然圖像在內的多個數據集上進行的大量實驗表明,本文所提出的多級注意力傳播驅動的生成式圖像修復方法所生成的圖像修復結果比現有方法擁有更高的圖像質量.
綜上所述,本文的貢獻如下:1)提出了一種端到端的圖像修復模型,該模型通過對全分辨率的圖像上下文進行編碼,將提取的高級特征壓縮為多尺度緊湊特征,并依據尺度大小順序驅動緊湊特征進行多級注意力特征傳播,實現了包括結構和細節在內的高級特征在網絡中的充分傳播.2)提出了一種復合粒度判別器,對圖像進行全局語義約束與非特定局部密集約束,使得圖像修復在單個前向過程中同時實現高質量的細粒度重建.
利用圖像級低級非語義特征的傳統圖像修復方法[7,13?18]可分為兩類:基于擴散的方法和基于圖像塊的方法.基于擴散的方法利用距離場等機制將圖像信息從相鄰像素傳播到目標區域,對于圖像的小面積或類抓痕的窄缺損區域有著非常有效的修復效果.當缺損區域面積過大或紋理變化很大時,它們通常會生成明顯的視覺偽影.基于圖像塊的方法首先用于紋理合成,然后擴展到圖像修復.與基于擴散的方法相比,基于圖像塊的方法能夠修復場景更復雜的圖像.通常,基于圖像塊的方法采用迭代方式,從同一圖像的非缺損區域或外部圖像庫中采樣相似的信息來填補缺損區域.由于必須計算每個目標-源對的相似度分數,因此此類方法需要大量的計算和內存開銷.PatchMatch[3]是一種典型的基于圖像塊的方法,它通過快速最近鄰域算法解決了這個問題,極大地加快了傳統算法的速度,取得了較高質量的修復效果.基于圖像塊的方法假設修復區域的紋理可以在圖像的其他區域找到,然而這種假設未必時時成立,因此限制了該方法的應用范圍;此外,由于缺乏對圖像的高層語義理解,基于圖像塊的方法無法為人臉等高度模式化破損圖像重建出語義合理的結果.因此,無論基于擴散還是基于圖像塊的傳統修復方法,均不具備感知圖像高級語義的能力.
近年來,基于深度學習的圖像修復方法從大規模數據中學習高級語義表示,大大提高了修復效果.Context Encoder[19]是最早用于語義圖像修復的深度學習方法之一.它采用自動編碼器結構,通過最大限度地降低像素級重建損失和對抗損失,實現了對128×128 圖像中心區域存在的64×64 矩形缺損區域的修復.編碼器將帶有破損區域的圖像映射到高級特征空間,該特征空間用于解碼器重構完整的輸出圖像.然而,由于通道維全連通層的信息瓶頸以及對圖像局部區域缺乏約束,該方法輸出圖像的重建區域往往出現明顯的視覺偽影.Iizuka 等[11]通過減少下行采樣層的數量,用一系列膨脹卷積層代替通道全連接層,在一定程度上解決了上下文編碼器的信息瓶頸問題.同時,Iizuka 等[11]還引入了一種局部判別器來提高圖像的質量.然而,這種方法需要復雜的后處理步驟,如泊松混合,以增強孔邊界附近的顏色一致性.Yang 等[12]和Yu 等[2]將粗到細的卷積網絡配置方案引入到了圖像修復中.該方案在第1 步使用深度卷積神經網絡實現對破損區域的粗略估計.進而,在第2 步的深度卷積網絡中,利用注意力機制或特征塊交換操作,搜索圖像上下文中最相似的特征塊并替換缺失區域內的特征塊,從而得到細化的輸出結果.然而,這兩種方案在不規則破損區域修復上并沒有很好的泛化能力.Wang 等[1]提出了一種用于圖像修復的多列生成網絡,設計了置信值驅動的重建損失,并采用了隱式多樣馬爾科夫隨機場(Implicit diversified Markov random field,ID-MRF) 正則化方案來增強局部細節.它在矩形和不規則掩碼上都取得了很好的效果.Liu 等[20]在圖像修復中引入部分卷積,對卷積進行了掩蓋和重新歸一化,僅利用非破損區域的有效像素,有效地解決了基于卷積所帶來的色差、模糊等偽影問題.
如圖4 所示,我們提出的多級注意力傳播網絡由兩部分組成:(a)多級注意力傳播生成器G,(b)復合判別器D.多級注意力傳播網絡生成器是針對圖像修復任務改進的自動編碼器,通過編碼過程、多級注意力傳播過程與解碼過程重建圖像的破損區域.復合判別器網絡D通過將G生成的圖像判別為 “假”來懲罰G,從而促進G生成真實圖.我們將從破損圖像到完整圖像的學習過程描述為一個映射函數,該映射函數將破損圖像流形z映射到完整圖像流形x.為了簡化符號,我們還將使用這些符號來表示它們各自網絡的功能映射.
如圖4 所示,我們的多級注意力傳播生成器G主要由特征提取網絡、多級注意力傳播網絡、上采樣網絡等3個子網絡構成.設Iinput=z和Ioutput=G(z)為多級注意力傳播網絡生成器的輸入和輸出.在淺層特征提取階段,提取淺層特征F?1:

圖4 多級注意力傳播網絡整體框架Fig.4 The framework of multistage attention propagation network

其中Enc(·) 為編碼器網絡.該網絡的編碼器首先進行平坦卷積,然后采用下采樣與卷積操作對受損圖像進行壓縮編碼.
其次,將提取的有用局部特征F?1進行特征細化:

其中Bot(·) 為由4 層擴張卷積級聯組成的 “瓶頸區”網絡,卷積核尺寸為3×3,膨脹率分別為2、4、8、16.
接下來,進行多級注意力傳播.注意力多級傳播的第一步是將細化后的高級特征縮放為多級壓縮特征:

其中Cn(·) 為特征縮放操作,n為縮放率,表示特征尺寸縮放為原來的1/n.
隨后,對壓縮特征進行基于注意力的多級特征匹配與傳播,以小尺度結果引導后續處理:


其中⊕表示通道維疊加,Attl(·) 為在壓縮率為l的特征上進行的匹配替換與傳播操作,更多細節將在第3.2 節中給出.
最終,經過多級注意力特征配替換與傳播后,采用上采樣網絡將高級特征映射轉化為完整的輸出圖像:

其中Dec(·) 為解碼器網絡,對特征A0進行兩次上采樣得到完整的重建圖像.
我們采用當前最先進的注意力特征匹配方案[2,12,21].注意力通常是通過計算缺失區域內外的圖像塊或特征塊之間的相似度來獲得的.因此可以將缺失區域外的相關特征進行轉移,即通過相似度關系將圖像上下文的圖像塊/特征塊加權復制到缺失區域內部.圖5 所示,Attl(·) 首先從壓縮特征Fc中學習區域親和力,即從Fc中提取特征塊并計算破損區域內部特征塊和外部特征塊之間的余弦相似性:

圖5 注意力特征匹配與傳播Fig.5 Flowchart of attention feature matching and propagation

從高級特征圖中獲取注意分值后,采用基于注意分值加權的上下文填充相似特征塊中的破損區域:

作為生成網絡的補充,復合判別器網絡D用于判斷G生成的圖像是否足夠真實.在圖像修復中,高質量的圖像不僅取決于圖像的整體特征,還取決于圖像局部對象的特征.不同于全局與局部判別器來分別約束全局與局部破損區域,我們設計了復合判別器來實現全局語義約束與非特定局部密集約束.
如圖4(b)所示,全局語義約束與非特定局部密集約束分別由全局判別器D1與非特定局部密集判別器D2來實現.全局判別器由卷積層與全連接層構成,輸出為一個評價圖像整體真實度得分的值.非特定局部密集判別器類似Patch-GAN[22]結構,由5個的步長卷積(內核大小為5,步長為2)進行疊加構成.輸入由圖像和掩模通道組成,輸出為形狀為Rh×w×c的三維特征圖,其中h、w、c分別表示通道的高度、寬度和數量.然后,我們將判別器的損失直接應用到判別器最后一層特征圖的每個元素上,形成針對輸入圖像局部不同位置的數量為h×w×c的生成對抗網絡.復合判別器網絡中全局判別器與非特定局部密集判別器在功能方面為相互補充的.全局判別器針對全局的約束,促使生成的圖像破損區域與非破損區域在全局層面實現自然過渡;而非特定局部密集判別器對圖像內多個局部區域進行密集的有重疊的判別,使得圖像局部擁有豐富的細節紋理.
損失函數由三部分組成:1)對抗損失Ladv;2)特征匹配損失Lmatch; 3)重構損失Lrec.整體的目標函數可以表示為:

其中損失項的平衡參數ω1=1、ω2=1 000.
我們方法采用改進的Wasserstein GAN[23],對抗損失同時應用于網絡G和網絡D,最終影響生成網絡G對破損圖像的重構過程.復合判別器網絡D的輸出值代表生成網絡G的輸出圖像與真實圖像的相似程度,被用來懲罰并促使生成網絡G生成更真實圖像.我們的復合判別器網絡D由D1和D2組成.對抗性損失可以表示為:

特征匹配損失Lmatch用來比較判別器中間層的激活映射,迫使生成器生成與真實圖像相似的特征表示,從而穩定訓練過程,這類似于感知損失[24?26].不同于感知損失比較從預先訓練的VGG 網絡獲取到來自真值圖像與輸出圖像的激活映射,特征匹配損失比較的是判別器中間層激活映射.我們定義特征匹配損失Lmatch為:

其中L為判別器的最終卷積層,Ni為第i個激活層的元素個數,D1(i) 為判別器D1第i層的激活映射,D2(i)為判別器D2第i層的激活映射.
圖像修復不僅要保證修復好的圖像具有語義真實感,而且要對圖像進行像素級精確重建.因此,對于像素級重建過程,我們定義了L1 重建損失:

我們使用3個面向于圖像修復任務的國際公認通用圖像數據集來驗證我們的模型(數據集分割如表1 所示).

表1 3個數據集的訓練和測試分割Table 1 Training and test splits on three datasets
–Places2[27]數據集:MIT 發布的數據集,包含超過800 萬張來自365個場景的圖像.
–CELEBA-HQ[28]數據集:來自CelebA 的高質量人臉數據集.
–Facade[29]數據集:世界各地不同城市建筑立面集合.
在Windows 10 系統上使用Python 開發編譯了本文所提出方法的程序代碼.編譯測試所用的深度學習平臺軟件配置為TensorFlow v1.8、CUDNN v7.0 和CUDA v9.0;核心硬件配置為Intel 8 700 3.20 GHz 的CPU,12G NVIDIA TITAN XP 的GPU.我們使用Adam 優化器對批量大小為6 的模型進行訓練,beta1 與beta2 分別設定為0 和0.9.在模型訓練初始階段的學習率設置為1×10?4,隨后再使用1×10?5學習率對模型進行微調.在模型訓練過程中,訓練集中的全部圖像均被縮放至256×256大小.訓練好的模型可在CPU 及GPU 上運行,不論缺損面積大小,修復過程在Intel(R) Core(R) CPU上平均運行時間為1.5 秒,在NVIDIA(R) TITAN XP GPU 上平均運行時間為0.2 秒.本文中全部實驗結果都是從訓練好的模型中直接輸出的,未進行任何后期處理.
我們將與以下經典主流方案進行比較:
–PatchMatch (PM)[3]:一種典型的基于圖像塊的方法,從周圍環境復制類似的圖像塊.
–CA[2]:一個兩階段的圖像修復模型,利用了高層次的上下文注意特征.
–MC[1]:為圖像修復模型設計了一個置信值驅動的重建損失,并采用了隱式多樣馬爾可夫隨機場正則化來增強局部細節.
我們將本文方法與第4.3 節中當前經典主流方案分別進行了定性和定量分析,以證明本文方法的優越性.
定性比較.圖6、圖7 和圖8 分別展示了我們的方法在Places2、Facade 和CelebA-HQ 數據集上和對比方法之間的對比結果.在大多數情況下,我們的圖像修復結果比對比方法在結構重建方面表現得更準確合理.與其他方法相比,我們提出的方法在細節紋理重建上表現得更加細致.

圖6 Places2 數據集上的結果比較Fig.6 Comparisons on the test images from Places2 dataset

圖7 Facade 數據集上的結果比較Fig.7 Comparisons on the test image from Facade dataset

圖8 CelebA-HQ 數據集上的結果比較Fig.8 Comparisons on the test image from CelebA-HQ dataset
定量比較.我們使用PSNR、SSIM 和平均L1損失等指標來客觀衡量修復結果的質量.其中,PSNR和SSIM 可以大致反映模型重構原始圖像內容的能力,為人類的視覺感知提供了良好的近似.平均L1損失直接測量重建圖像與真值圖像之間的L1 距離,是一個非常實用的圖像質量評估指標.如表2 所示,我們的方法在Places2、CelebA-HQ 和Facade 數據集中取得了最優的結果,其中SSIM、PSNR 是最高的,平均L1 損失是最低的.

表2 CelebA-HQ、Facade 和Places2 數據集上的定量對比Table 2 Quantitative comparisons on CelebA-HQ,Facade and Places2
我們在建筑立面數據集上分別進行了兩個分解實驗來驗證我們所提出方案的有效性.為了更清楚地展示實驗結果,所有的實驗均為矩形中心掩碼情況下的圖像修復結果.
1) 多級注意力傳播的有效性
圖9(a)為輸入圖像,圖9(b)為有注意力傳播時的圖像修復結果,圖9(c)為無注意力傳播時的圖像修復結果,圖9(d)為原圖.具體來說,這次試驗參與對比的分別為本文提出方案的結果與本文方案除去多級注意力傳播時的結果.可以看出在多級注意力傳播的幫助下本文所提出的方案有著更準確的結構重建能力.

圖9 有/無注意力傳播時的圖像修復結果Fig.9 Results with/without attention propagation
2) 復合判別器網絡的有效性
如圖10(a)為輸入圖像,圖10(b)為有復合判別器時的圖像修復結果,圖10(c)為無復合判別器時的圖像修復結果,圖10(d)為原圖.可以看出在復合粒度判別器的幫助下本文所提出的方案有著更細膩的細節重建能力.

圖10 有/無復合判別器時的圖像修復結果Fig.10 Results with/without compound discriminator
為驗證多級注意力機制以及復合粒度判別器網絡的有效性,我們以平均L1 損失為性能參考(平均L1 損失越小性能越好),進行了對比定量研究,結果如表3 所示.其中,Att0 至Att8 為注意力組件,Single-D為單全局判別器,Cg-D為本文所提出的復合粒度判別器.

表3 組件有效性研究Table 3 Effectiveness study on each component
從表3 中我們可以看出,多級注意力傳播可以在很大程度上提升網絡性能,同時由于復合粒度判別器對全局語義與非特定局部的密集約束,網絡性能得到了進一步提升.
為進一步驗證我們方法的泛化能力,我們還通過對所提出模型進行對象移除實際應用研究.
如圖11 所示,在示例(a)中,我們嘗試刪除人臉圖像中的眼鏡.我們可以看到本文方法都成功地刪除了眼鏡,并在眼鏡區域重建出了清晰自然的人眼.在示例(b)中,我們的模型將面部大面積區域移除,并重建出合理的結果.值得注意的是,示例(a)與示例(b)人臉圖像均不是正視前方,而在訓練過程中,整個訓練集中的非正視前方圖像只占據少數,這從側面說明了本文方法具有良好的泛化能力.更多的成功移除特定對象,重建出高品質的結果見示例(c)、(d)、(e)、(f).

圖11 在Facade、CelebA-HQ 和Places2 數據集上的實例研究結果Fig.11 Case study on Facade,CelebA-HQ and Places2
本文提出了一種基于層級注意力傳播的圖像修復網絡.為解決圖像修復結果中的結構錯亂與語義對象模糊問題,我們提出將編碼器編碼的高級語義特征進行多尺度壓縮和多層級注意力特征傳播,以實現包括結構和細節在內的高級特征的充分利用.同時,為實現在一個階段內完成粗粒度與細粒度圖像的同步重建,我們提出了一種復合粒度判別器網絡對圖像修復過程進行全局語義約束與非特定局部密集約束.大量實驗表明,與經典主流方法相比,我們提出的方法可以產生更高質量的修復結果.