袁琳君,蔣 旻*,羅敦浪,江佳俊,郭 嘉
(1. 武漢科技大學計算機科學與技術學院,武漢430065; 2. 智能信息處理與實時工業系統湖北省重點實驗室(武漢科技大學),武漢430065)
(*通信作者電子郵箱345467866@qq.com)
填充圖像的缺失像素,通常稱為圖像修復或補全。圖像修復是計算機視覺中的一項重要任務。隨著各攝像技術的發展,人臉和人像的修復[1-4]已經成為圖像修復領域的重點。目前大部分研究集中在面向人臉的圖像修復[3-4]和編輯[5],并已經取得了較好的效果。但對于人像的修復,研究并不像人臉修復那樣火熱。
人像修復的數據大部分來源于普通監視視頻或個人日常拍照。在拍攝條件的限制下,人像圖片的數據的質量往往會受到高光、陰影或遮擋等因素的影響。這些影響一方面造成了對受損人像修復的大量需求,另一方面也提高了人像修復技術的實現難度。另外,人臉目標在形狀結構和顏色分布上具有較多共性,但人像目標由于衣著的不同、高矮胖瘦的區別以及人像姿態的高自由度等因素的影響具有更復雜多變的外觀。所以,與人臉圖像修復相比,人像修復面臨著更大的挑戰。
針對監控視頻場景或個人相機拍攝的圖像修復需求,本文設計出一種新的對人像圖片中缺失區域進行修復的方法。算法的目標:給定一張以人像為主體、并且部分區域信息完全丟失的圖像,能夠魯棒地對缺失區域進行圖像修復。本文提出的修復方法創新在于:本文將人像姿態估計出姿態信息引入到修復過程中,由于人像姿態的引入大大約束了待修復區域圖像數據的解空間范圍,所以算法仍能保持一定的魯棒性。另外,本文利用人像姿態信息,連接人像姿態關鍵點,形成姿態框架并膨脹框架,得到可以遮蓋圖片中的人像信息的姿態掩碼,根據掩碼加入人像損失函數。實驗證明,與其他修復方法[6]相比,本文的方法具有更好的修復性能。
近年來,隨著移動視頻和視頻數據的大規模增長,圖像修復問題也受到廣泛關注,并且出現了大量相關研究。大多數圖像修復研究可分為兩類:基于樣本的和基于深度神經網絡的方法。
對于基于樣本的方法,Efros 等[7]提出通過在已知區域中搜索最佳匹配塊,復制最佳匹配塊來填充缺失部分的方法。Criminisi 等[8]提出bestfirst 算法用來搜索最相似的匹配塊,并使用找到的匹配塊來合成缺失的內容。Simakov 等[9]提出了一種基于雙向相似性的全局優化方法,優化方案提高了修復的質量和分辨率。Hays 等[10]是第一個使用大型參考數據集進行孔填充的數據驅動方法,它通過在數據庫中找到相似圖像區域來修補圖像中的漏洞。Whyte 等[11]通過幾何和光度配準擴展了這種方法。Barnes等[12]提出了一種基于補丁的數據結構,用于從圖像數據庫中進行有效的補丁查詢。總的來說,一般基于樣本的修復方法在合成紋理上性能優越,但不太適合保留邊緣和結構。
在基于深度神經網絡的方法方面,也出現了很多代表方法[10,13-15]。相當一部分研究采用編碼器-解碼器模型來進行圖像修復。Pathak 等[13]提出了一種用于圖像修復的編碼器-解碼器模型。它是把具有64×64 中心缺失區域的待修復圖像輸入編碼器-解碼器模型,通過網絡訓練學習圖像特征,以修復64×64 的中心缺失區域。此外,由于Ronneberger 等[14]提出的U-Net 網絡對傳統卷積網絡中的編碼器-解碼器模型進行了改進,加入連接,去掉了池化操作,以更好地保留圖像細節,因此U-Net網絡被廣泛用于圖像修復。Yan等[15]用基于U-Net架構的網絡進行圖像修復,并且網絡引入了一個特殊的移位連接層,即Shift-Net,取得了不錯的修復效果。
除了基于編碼器-解碼器網絡模型的修復方法外,近年來,由于生成對抗網絡(Generative Adversarial Network,GAN)在各種條件圖像生成問題(如超分辨率、圖像修復、圖像翻譯和圖像編輯等)中產生了令人信服的結果,因此大量圖像修復方法采用了基于GAN 的架構來解決修復/補全問題。Iizuka等[16]通過添加全局和局部鑒別器來改進GAN 模型,保持圖像在局部和全局一致,使修復的圖片更加真實。此外Yu 等[6]提出了一種全新的內容感知層來從距離遙遠的區域提取近似待修復區域的特征,把內容感知層提取的特征與卷積網絡相結合來修復缺失區域。Liu 等[17]提出部分卷積來修復不規則圖像。然而,他們無法處理人像圖像,因為沒有考慮人像的高級語義結構。
在人像姿態估計方面,Chu 等[18]對該人像姿態的關鍵鄰域增加視覺關注,來提高姿態估計的準確性。Lifshitz 等[19]使用概率關鍵點投票方案進行圖像定位,以獲得每個身體部位的位置信息。Insafutdinov等[20]提出一種基于卷積網絡的端到端關聯身體關節和特定人的ArtTrack(Articulated Multiperson Tracking)模型,通過簡化和稀疏的人像部分關系圖和利用最新的方法,以更快地推理,將大量的計算工作轉移到前饋卷積架構上,該架構即使在背景雜亂的情況,也能夠檢測并關聯同一個人的身體關節,以共同推理在圖像和時間范圍內的身體關節的分配。這些方法大幅提高了人像姿態估計的準確性。
在人像修復方面,Wu 等[1]利用人類解析網絡從缺失圖片中估計人像解析圖,之后在人像解析圖的指導下合成輸入圖片的缺失區域,但由于信息缺失估計出的人像解析并不準確。與Wu等[1]的估計人像解析圖來修復缺失圖像相比,本文的方法結合姿態估計與Yu 等[6]提出的兩階段式修復網絡來進行圖像修復。第一階段粗略修復圖像,根據粗略修復圖像估計人像姿態信息,在第二階段引入人像姿態信息,基于生成對抗網絡來精確修復人像。另外,本文利用人像姿態信息,連接人像姿態關鍵點,形成姿態框架并膨脹框架,得到可以遮蓋圖片中的人像信息的姿態掩碼,以此在損失中加入一種姿態信息損失,來約束修復圖像的姿態信息,這既解決了因圖像缺失信息導致的姿態修復不準確的問題,又解決了圖像細節紋理修復問題。
本文對文獻[6]所提出的網絡進行了擴展,網絡結構如圖1 所示。方法分為兩個部分:粗略修復網絡和精確修復網絡。

圖1 本文方法網絡結構Fig. 1 Network structure of the proposed method
第一階段是粗略修復網絡,如圖1 的步驟①,它是編碼器-解碼器結構。解碼器的網絡結構為6層的卷積層和4層的擴張卷積層,擴張卷積層是卷積層的變體,本文設置的膨脹系數η=2,4,8,16。這樣設計的擴張卷積不會產生大量的損失信息,增大了感受野。解碼器的網絡結構為5層的卷積層和2層的反卷積層,粗略修復圖像的輸入含有隨機的100×100 缺失區域的待修復圖像x,最后得到256×256×3的粗略修復圖像k。第一階段網絡的作用是對待修復圖像做粗略修復預測,修復人像大致結構。
本文訓練粗略修復網絡使用L1損失函數,如式(1)所示:

其中:k表示粗略修復網絡生成的粗略修復圖像,y′表示真實圖像。
粗略修復網絡的修復效果雖然不精確,但粗略修復網絡可以修復圖像的大致結構,來提高后續姿態估計(圖1 步驟②)的準確性。
為了提高修復質量,在圖1 的步驟②中,本文使用Insafutdinov等[20]提出的一種基于卷積網絡的端到端關聯身體關節和特定人的姿態估計的ArtTrack 模型,通過粗略修復圖像估計出14個姿態位置點(包括頭部、頸部、肩、肘、腕、髖、膝和腳踝等關節點)組成,再以每個姿態點為中心生成高斯分布,形成姿態熱圖p[21](本文中姿態熱量圖維度為256×256×14)。
網絡的第二階段是以GAN 為基礎的精確修復網絡。它的輸入是一個三元組{k,p,M},其中k代表粗略修復圖像,p代表姿態熱圖,M代表缺失區域掩碼,如圖1 的步驟③。由于姿態熱圖加入,在訓練過程中可以加強網絡對人像姿態關注及訓練,使修復的圖像姿態不會出現扭曲和變形。第二階段的網絡結構分為生成器和辨別器。其中生成器為編碼器-解碼器結構,編碼器由并行的兩部分組成:在頂部編碼器中,其網絡結構與第一階段的編碼器結構類似;底部編碼器加入內容感知塊,它用卷積的方法,來從已知的圖像內容中匹配相似的斑塊,通過在全通道上做softmax 來找出最像待修補區域的斑塊,然后使用這個區域的信息做反卷積從而來重建該修補區域。解碼器采用聯合解碼把頂部編碼器和底部編碼器的編碼結果結合在一起,得到64×64×512 的圖片信息輸入到聯合解碼器中,如圖1 的步驟④。聯合編碼器有2 個反卷積層,步長為1/2,圖像信息經過計算,輸出為256×256×3 的精確修復圖像x′。取缺失區域的修復結果與輸入的粗略修復圖像相結合,如y=x′⊙M+k⊙(1-M),得到最終修復結果y。聯合解碼器的輸出就是精確修復網絡的最終輸出,也是本文方法的最終修復結果。
對于本文網絡的辨別器,如圖1 的步驟⑤和步驟⑥,辨別器不斷地區分發生器結果的真實性(1 或0),它可以迫使生成器產生更逼真的圖像。本文采用文獻[16]提出的全局辨別器和缺失區域局部辨別器相結合的方法構造辨別器模塊。全局辨別器輸入為修復圖像y,缺失區域局部辨別器輸入為缺失區域的修復圖像y⊙M。全局辨別器用于識別圖像的全局一致性,而缺失區域局部辨別器的目的是識別圖像局部一致性。通過兩個辨別器,最終修復結果不僅實現整體一致性,還可以優化細節。
精確修復網絡的損失函數包括對抗性損失LGAN,重建損失Lrec和姿態信息損失函數Lpose。其中對抗性損失計算方法如式(2)所示:

其中:G表示GAN 中的生成器,D表示GAN 中的辨別器,y′表示真實圖像,M表示為缺失區域的掩碼,p表示姿態熱圖。
重建損失Lrec計算修復圖像和真實圖像之間的L1 距離。方法如式(3)所示:

其中:y表示修復網絡生成的修復圖像,y=G(x,p),y′是真實圖像,M表示缺失區域掩碼。圖像中的缺失區域因為缺失信息,應加重對缺失區域的關注。
另外,本文提出了姿態信息損失函數Losspose,它是針對圖像中的人像信息,對人像信息進行約束的一種損失。由第2.2 節可知,待修復的圖片中的人像信息由14 個位置信息點(包括頭部、頸部、肩、肘、腕、髖、膝和腳踝等關節點)組成。本文利用文獻[22]中的人像姿態信息p生成姿態掩碼Mp的方法。首先連通14 個姿態點(肩、肘和腕連接形成手臂;頭部、頸部與肩連接和髖與肩部連接形成上半身;髖、膝和腳踝連接形成腿部)形成姿態框架,然后以填充圓的方法來擴充框架,直到逐漸完全覆蓋住圖像中的人像姿態,生成姿態掩碼。生成掩碼過程如圖2所示。損失公式如式(4)所示:

修復網絡的總損失為:

α是重建損失的權重,本文實驗設置為0.1。網絡的具體訓練步驟將在第3章詳細講述。

圖2 掩碼生成過程Fig. 2 Process of mask generation
本文實驗使用的數據集Deepfashion Dataset[23]。在這個數據集中含有大量不同人像的不同姿態圖片,本文從中抽取2 000多張不同人像、不同姿態的代表性圖片來進行網絡模型的訓練。
網絡訓練分為兩個階段。在第一階段生成粗糙修復圖像的實驗中,學習率設為1E-4,訓練數據設置為100 000 步,使用Adam 優化器,輸入數據是待修復人像圖片,輸出為粗略修復圖像。根據第一階段得到的粗略修復網絡來估計人像姿態信息,人像姿態估計和姿態掩碼生成的準確性對后續訓練修復網絡有比較大的影響,為了證明姿態估計和姿態掩碼生成的準確性,本文做了人像姿態估計和姿態掩碼生成的實驗,效果如圖3 所示。可以看出通過粗略修復圖像估計出的人像姿態信息大致準確,生成的姿態掩碼雖然人像邊界有少量分割錯誤(如圖3 最右上角子圖中人的手部和右下角子圖中人的腿部),但是從整體上來說,前景輪廓分割效果仍然具有較高的準確性,對后續修復實驗有很大幫助。在精確修復網絡中,本文設置訓練200 000 步,實驗使用的學習率為1E-4,使用Adam 優化器。網絡通過訓練得到精確修復圖像。本文修復結果如圖4 所示。可以看出,本文的人像修復方法具有很好的修復效果,能準確修復圖像中的人像姿態。
為了驗證所提方法的有效性,本文提出的方法和Contextual Attention[10]的圖像修復方法進行了比較。對于人像圖片,修復效果比較如圖5 所示,其中(a)是原始圖像,(b)是輸入網絡的缺失圖片,(c)是contextual attention 方法的修復效果,(d)是本文方法的修復效果。此外,還計算了它們的SSIM(Structural SIMilarity index)和PSNR(Peak Signal-to-Noise Ratio)值,如表1。從圖5可以,本文修復方法有效地約束了姿態修復過程中的扭曲與變形。通過表1 實驗數據可知,本文提出的方法對于人像數據集的修復性能有一定提高。

圖3 姿態估計和姿態掩碼效果Fig. 3 Results of pose estimation and pose mask

圖4 本文方法修復效果Fig. 4 Results of the proposed method

圖5 本文方法與其他方法對比效果Fig. 5 Comparison of results of the proposed method with other methods

表1 兩種方法的PSNR和SSIM值的比較Tab. 1 PSNR and SSIM results comparison of two methods
為了定量測量本文方法的修復性能,在測試數據集的修復結果上進行了量化評估,并列在表2與表3中。本文主要考慮兩種因素對修復效果的影響:人像缺失的部位和人像缺失部位像素占人像總像素的比例。在人像中結構最復雜的是面部結構,當缺失部位為面部時,修復效果會相對下降,當缺失部分為四肢或身體,模型會有不錯的修復效果,由于上半身的結構要比下半身復雜(往往上衣比褲子或者裙子結構復雜),當缺失部分是下半身時修復效果最好;對于缺失像素占人像像素的比例這個因素,比例越大時,修復效果也會相對較差。

表2 人像不同缺失部位對結果影響的量化評估Tab. 2 Quantitative evaluation of impact of different missing parts of portrait on results

表3 人像缺失程度對結果影響的量化評估Tab. 3 Quantitative evaluation of impact of degree of portrait missing on results
本文針對人像修復,提出將姿態信息引入到修復過程中的方法,并通過人像姿態信息生成姿態掩模,在損失函數中加入姿態信息損失函數,大大約束了修復圖像的姿態信息,使其修復成合理的人像姿態的圖像,減小姿態失真概率,這與實際的修復效果一致。但是,在修復臉部與衣著細節方面,修復效果還有待提升,希望在將來的工作中改進該問題,提高算法魯棒性。