袁琳君,蔣 旻*,羅敦浪,江佳俊,郭 嘉
(1. 武漢科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,武漢430065; 2. 智能信息處理與實(shí)時(shí)工業(yè)系統(tǒng)湖北省重點(diǎn)實(shí)驗(yàn)室(武漢科技大學(xué)),武漢430065)
(*通信作者電子郵箱345467866@qq.com)
填充圖像的缺失像素,通常稱為圖像修復(fù)或補(bǔ)全。圖像修復(fù)是計(jì)算機(jī)視覺中的一項(xiàng)重要任務(wù)。隨著各攝像技術(shù)的發(fā)展,人臉和人像的修復(fù)[1-4]已經(jīng)成為圖像修復(fù)領(lǐng)域的重點(diǎn)。目前大部分研究集中在面向人臉的圖像修復(fù)[3-4]和編輯[5],并已經(jīng)取得了較好的效果。但對于人像的修復(fù),研究并不像人臉修復(fù)那樣火熱。
人像修復(fù)的數(shù)據(jù)大部分來源于普通監(jiān)視視頻或個(gè)人日常拍照。在拍攝條件的限制下,人像圖片的數(shù)據(jù)的質(zhì)量往往會受到高光、陰影或遮擋等因素的影響。這些影響一方面造成了對受損人像修復(fù)的大量需求,另一方面也提高了人像修復(fù)技術(shù)的實(shí)現(xiàn)難度。另外,人臉目標(biāo)在形狀結(jié)構(gòu)和顏色分布上具有較多共性,但人像目標(biāo)由于衣著的不同、高矮胖瘦的區(qū)別以及人像姿態(tài)的高自由度等因素的影響具有更復(fù)雜多變的外觀。所以,與人臉圖像修復(fù)相比,人像修復(fù)面臨著更大的挑戰(zhàn)。
針對監(jiān)控視頻場景或個(gè)人相機(jī)拍攝的圖像修復(fù)需求,本文設(shè)計(jì)出一種新的對人像圖片中缺失區(qū)域進(jìn)行修復(fù)的方法。算法的目標(biāo):給定一張以人像為主體、并且部分區(qū)域信息完全丟失的圖像,能夠魯棒地對缺失區(qū)域進(jìn)行圖像修復(fù)。本文提出的修復(fù)方法創(chuàng)新在于:本文將人像姿態(tài)估計(jì)出姿態(tài)信息引入到修復(fù)過程中,由于人像姿態(tài)的引入大大約束了待修復(fù)區(qū)域圖像數(shù)據(jù)的解空間范圍,所以算法仍能保持一定的魯棒性。另外,本文利用人像姿態(tài)信息,連接人像姿態(tài)關(guān)鍵點(diǎn),形成姿態(tài)框架并膨脹框架,得到可以遮蓋圖片中的人像信息的姿態(tài)掩碼,根據(jù)掩碼加入人像損失函數(shù)。實(shí)驗(yàn)證明,與其他修復(fù)方法[6]相比,本文的方法具有更好的修復(fù)性能。
近年來,隨著移動(dòng)視頻和視頻數(shù)據(jù)的大規(guī)模增長,圖像修復(fù)問題也受到廣泛關(guān)注,并且出現(xiàn)了大量相關(guān)研究。大多數(shù)圖像修復(fù)研究可分為兩類:基于樣本的和基于深度神經(jīng)網(wǎng)絡(luò)的方法。
對于基于樣本的方法,Efros 等[7]提出通過在已知區(qū)域中搜索最佳匹配塊,復(fù)制最佳匹配塊來填充缺失部分的方法。Criminisi 等[8]提出bestfirst 算法用來搜索最相似的匹配塊,并使用找到的匹配塊來合成缺失的內(nèi)容。Simakov 等[9]提出了一種基于雙向相似性的全局優(yōu)化方法,優(yōu)化方案提高了修復(fù)的質(zhì)量和分辨率。Hays 等[10]是第一個(gè)使用大型參考數(shù)據(jù)集進(jìn)行孔填充的數(shù)據(jù)驅(qū)動(dòng)方法,它通過在數(shù)據(jù)庫中找到相似圖像區(qū)域來修補(bǔ)圖像中的漏洞。Whyte 等[11]通過幾何和光度配準(zhǔn)擴(kuò)展了這種方法。Barnes等[12]提出了一種基于補(bǔ)丁的數(shù)據(jù)結(jié)構(gòu),用于從圖像數(shù)據(jù)庫中進(jìn)行有效的補(bǔ)丁查詢。總的來說,一般基于樣本的修復(fù)方法在合成紋理上性能優(yōu)越,但不太適合保留邊緣和結(jié)構(gòu)。
在基于深度神經(jīng)網(wǎng)絡(luò)的方法方面,也出現(xiàn)了很多代表方法[10,13-15]。相當(dāng)一部分研究采用編碼器-解碼器模型來進(jìn)行圖像修復(fù)。Pathak 等[13]提出了一種用于圖像修復(fù)的編碼器-解碼器模型。它是把具有64×64 中心缺失區(qū)域的待修復(fù)圖像輸入編碼器-解碼器模型,通過網(wǎng)絡(luò)訓(xùn)練學(xué)習(xí)圖像特征,以修復(fù)64×64 的中心缺失區(qū)域。此外,由于Ronneberger 等[14]提出的U-Net 網(wǎng)絡(luò)對傳統(tǒng)卷積網(wǎng)絡(luò)中的編碼器-解碼器模型進(jìn)行了改進(jìn),加入連接,去掉了池化操作,以更好地保留圖像細(xì)節(jié),因此U-Net網(wǎng)絡(luò)被廣泛用于圖像修復(fù)。Yan等[15]用基于U-Net架構(gòu)的網(wǎng)絡(luò)進(jìn)行圖像修復(fù),并且網(wǎng)絡(luò)引入了一個(gè)特殊的移位連接層,即Shift-Net,取得了不錯(cuò)的修復(fù)效果。
除了基于編碼器-解碼器網(wǎng)絡(luò)模型的修復(fù)方法外,近年來,由于生成對抗網(wǎng)絡(luò)(Generative Adversarial Network,GAN)在各種條件圖像生成問題(如超分辨率、圖像修復(fù)、圖像翻譯和圖像編輯等)中產(chǎn)生了令人信服的結(jié)果,因此大量圖像修復(fù)方法采用了基于GAN 的架構(gòu)來解決修復(fù)/補(bǔ)全問題。Iizuka等[16]通過添加全局和局部鑒別器來改進(jìn)GAN 模型,保持圖像在局部和全局一致,使修復(fù)的圖片更加真實(shí)。此外Yu 等[6]提出了一種全新的內(nèi)容感知層來從距離遙遠(yuǎn)的區(qū)域提取近似待修復(fù)區(qū)域的特征,把內(nèi)容感知層提取的特征與卷積網(wǎng)絡(luò)相結(jié)合來修復(fù)缺失區(qū)域。Liu 等[17]提出部分卷積來修復(fù)不規(guī)則圖像。然而,他們無法處理人像圖像,因?yàn)闆]有考慮人像的高級語義結(jié)構(gòu)。
在人像姿態(tài)估計(jì)方面,Chu 等[18]對該人像姿態(tài)的關(guān)鍵鄰域增加視覺關(guān)注,來提高姿態(tài)估計(jì)的準(zhǔn)確性。Lifshitz 等[19]使用概率關(guān)鍵點(diǎn)投票方案進(jìn)行圖像定位,以獲得每個(gè)身體部位的位置信息。Insafutdinov等[20]提出一種基于卷積網(wǎng)絡(luò)的端到端關(guān)聯(lián)身體關(guān)節(jié)和特定人的ArtTrack(Articulated Multiperson Tracking)模型,通過簡化和稀疏的人像部分關(guān)系圖和利用最新的方法,以更快地推理,將大量的計(jì)算工作轉(zhuǎn)移到前饋卷積架構(gòu)上,該架構(gòu)即使在背景雜亂的情況,也能夠檢測并關(guān)聯(lián)同一個(gè)人的身體關(guān)節(jié),以共同推理在圖像和時(shí)間范圍內(nèi)的身體關(guān)節(jié)的分配。這些方法大幅提高了人像姿態(tài)估計(jì)的準(zhǔn)確性。
在人像修復(fù)方面,Wu 等[1]利用人類解析網(wǎng)絡(luò)從缺失圖片中估計(jì)人像解析圖,之后在人像解析圖的指導(dǎo)下合成輸入圖片的缺失區(qū)域,但由于信息缺失估計(jì)出的人像解析并不準(zhǔn)確。與Wu等[1]的估計(jì)人像解析圖來修復(fù)缺失圖像相比,本文的方法結(jié)合姿態(tài)估計(jì)與Yu 等[6]提出的兩階段式修復(fù)網(wǎng)絡(luò)來進(jìn)行圖像修復(fù)。第一階段粗略修復(fù)圖像,根據(jù)粗略修復(fù)圖像估計(jì)人像姿態(tài)信息,在第二階段引入人像姿態(tài)信息,基于生成對抗網(wǎng)絡(luò)來精確修復(fù)人像。另外,本文利用人像姿態(tài)信息,連接人像姿態(tài)關(guān)鍵點(diǎn),形成姿態(tài)框架并膨脹框架,得到可以遮蓋圖片中的人像信息的姿態(tài)掩碼,以此在損失中加入一種姿態(tài)信息損失,來約束修復(fù)圖像的姿態(tài)信息,這既解決了因圖像缺失信息導(dǎo)致的姿態(tài)修復(fù)不準(zhǔn)確的問題,又解決了圖像細(xì)節(jié)紋理修復(fù)問題。
本文對文獻(xiàn)[6]所提出的網(wǎng)絡(luò)進(jìn)行了擴(kuò)展,網(wǎng)絡(luò)結(jié)構(gòu)如圖1 所示。方法分為兩個(gè)部分:粗略修復(fù)網(wǎng)絡(luò)和精確修復(fù)網(wǎng)絡(luò)。
圖1 本文方法網(wǎng)絡(luò)結(jié)構(gòu)Fig. 1 Network structure of the proposed method
第一階段是粗略修復(fù)網(wǎng)絡(luò),如圖1 的步驟①,它是編碼器-解碼器結(jié)構(gòu)。解碼器的網(wǎng)絡(luò)結(jié)構(gòu)為6層的卷積層和4層的擴(kuò)張卷積層,擴(kuò)張卷積層是卷積層的變體,本文設(shè)置的膨脹系數(shù)η=2,4,8,16。這樣設(shè)計(jì)的擴(kuò)張卷積不會產(chǎn)生大量的損失信息,增大了感受野。解碼器的網(wǎng)絡(luò)結(jié)構(gòu)為5層的卷積層和2層的反卷積層,粗略修復(fù)圖像的輸入含有隨機(jī)的100×100 缺失區(qū)域的待修復(fù)圖像x,最后得到256×256×3的粗略修復(fù)圖像k。第一階段網(wǎng)絡(luò)的作用是對待修復(fù)圖像做粗略修復(fù)預(yù)測,修復(fù)人像大致結(jié)構(gòu)。
本文訓(xùn)練粗略修復(fù)網(wǎng)絡(luò)使用L1損失函數(shù),如式(1)所示:
其中:k表示粗略修復(fù)網(wǎng)絡(luò)生成的粗略修復(fù)圖像,y′表示真實(shí)圖像。
粗略修復(fù)網(wǎng)絡(luò)的修復(fù)效果雖然不精確,但粗略修復(fù)網(wǎng)絡(luò)可以修復(fù)圖像的大致結(jié)構(gòu),來提高后續(xù)姿態(tài)估計(jì)(圖1 步驟②)的準(zhǔn)確性。
為了提高修復(fù)質(zhì)量,在圖1 的步驟②中,本文使用Insafutdinov等[20]提出的一種基于卷積網(wǎng)絡(luò)的端到端關(guān)聯(lián)身體關(guān)節(jié)和特定人的姿態(tài)估計(jì)的ArtTrack 模型,通過粗略修復(fù)圖像估計(jì)出14個(gè)姿態(tài)位置點(diǎn)(包括頭部、頸部、肩、肘、腕、髖、膝和腳踝等關(guān)節(jié)點(diǎn))組成,再以每個(gè)姿態(tài)點(diǎn)為中心生成高斯分布,形成姿態(tài)熱圖p[21](本文中姿態(tài)熱量圖維度為256×256×14)。
網(wǎng)絡(luò)的第二階段是以GAN 為基礎(chǔ)的精確修復(fù)網(wǎng)絡(luò)。它的輸入是一個(gè)三元組{k,p,M},其中k代表粗略修復(fù)圖像,p代表姿態(tài)熱圖,M代表缺失區(qū)域掩碼,如圖1 的步驟③。由于姿態(tài)熱圖加入,在訓(xùn)練過程中可以加強(qiáng)網(wǎng)絡(luò)對人像姿態(tài)關(guān)注及訓(xùn)練,使修復(fù)的圖像姿態(tài)不會出現(xiàn)扭曲和變形。第二階段的網(wǎng)絡(luò)結(jié)構(gòu)分為生成器和辨別器。其中生成器為編碼器-解碼器結(jié)構(gòu),編碼器由并行的兩部分組成:在頂部編碼器中,其網(wǎng)絡(luò)結(jié)構(gòu)與第一階段的編碼器結(jié)構(gòu)類似;底部編碼器加入內(nèi)容感知塊,它用卷積的方法,來從已知的圖像內(nèi)容中匹配相似的斑塊,通過在全通道上做softmax 來找出最像待修補(bǔ)區(qū)域的斑塊,然后使用這個(gè)區(qū)域的信息做反卷積從而來重建該修補(bǔ)區(qū)域。解碼器采用聯(lián)合解碼把頂部編碼器和底部編碼器的編碼結(jié)果結(jié)合在一起,得到64×64×512 的圖片信息輸入到聯(lián)合解碼器中,如圖1 的步驟④。聯(lián)合編碼器有2 個(gè)反卷積層,步長為1/2,圖像信息經(jīng)過計(jì)算,輸出為256×256×3 的精確修復(fù)圖像x′。取缺失區(qū)域的修復(fù)結(jié)果與輸入的粗略修復(fù)圖像相結(jié)合,如y=x′⊙M+k⊙(1-M),得到最終修復(fù)結(jié)果y。聯(lián)合解碼器的輸出就是精確修復(fù)網(wǎng)絡(luò)的最終輸出,也是本文方法的最終修復(fù)結(jié)果。
對于本文網(wǎng)絡(luò)的辨別器,如圖1 的步驟⑤和步驟⑥,辨別器不斷地區(qū)分發(fā)生器結(jié)果的真實(shí)性(1 或0),它可以迫使生成器產(chǎn)生更逼真的圖像。本文采用文獻(xiàn)[16]提出的全局辨別器和缺失區(qū)域局部辨別器相結(jié)合的方法構(gòu)造辨別器模塊。全局辨別器輸入為修復(fù)圖像y,缺失區(qū)域局部辨別器輸入為缺失區(qū)域的修復(fù)圖像y⊙M。全局辨別器用于識別圖像的全局一致性,而缺失區(qū)域局部辨別器的目的是識別圖像局部一致性。通過兩個(gè)辨別器,最終修復(fù)結(jié)果不僅實(shí)現(xiàn)整體一致性,還可以優(yōu)化細(xì)節(jié)。
精確修復(fù)網(wǎng)絡(luò)的損失函數(shù)包括對抗性損失LGAN,重建損失Lrec和姿態(tài)信息損失函數(shù)Lpose。其中對抗性損失計(jì)算方法如式(2)所示:
其中:G表示GAN 中的生成器,D表示GAN 中的辨別器,y′表示真實(shí)圖像,M表示為缺失區(qū)域的掩碼,p表示姿態(tài)熱圖。
重建損失Lrec計(jì)算修復(fù)圖像和真實(shí)圖像之間的L1 距離。方法如式(3)所示:
其中:y表示修復(fù)網(wǎng)絡(luò)生成的修復(fù)圖像,y=G(x,p),y′是真實(shí)圖像,M表示缺失區(qū)域掩碼。圖像中的缺失區(qū)域因?yàn)槿笔畔?,?yīng)加重對缺失區(qū)域的關(guān)注。
另外,本文提出了姿態(tài)信息損失函數(shù)Losspose,它是針對圖像中的人像信息,對人像信息進(jìn)行約束的一種損失。由第2.2 節(jié)可知,待修復(fù)的圖片中的人像信息由14 個(gè)位置信息點(diǎn)(包括頭部、頸部、肩、肘、腕、髖、膝和腳踝等關(guān)節(jié)點(diǎn))組成。本文利用文獻(xiàn)[22]中的人像姿態(tài)信息p生成姿態(tài)掩碼Mp的方法。首先連通14 個(gè)姿態(tài)點(diǎn)(肩、肘和腕連接形成手臂;頭部、頸部與肩連接和髖與肩部連接形成上半身;髖、膝和腳踝連接形成腿部)形成姿態(tài)框架,然后以填充圓的方法來擴(kuò)充框架,直到逐漸完全覆蓋住圖像中的人像姿態(tài),生成姿態(tài)掩碼。生成掩碼過程如圖2所示。損失公式如式(4)所示:
修復(fù)網(wǎng)絡(luò)的總損失為:
α是重建損失的權(quán)重,本文實(shí)驗(yàn)設(shè)置為0.1。網(wǎng)絡(luò)的具體訓(xùn)練步驟將在第3章詳細(xì)講述。
圖2 掩碼生成過程Fig. 2 Process of mask generation
本文實(shí)驗(yàn)使用的數(shù)據(jù)集Deepfashion Dataset[23]。在這個(gè)數(shù)據(jù)集中含有大量不同人像的不同姿態(tài)圖片,本文從中抽取2 000多張不同人像、不同姿態(tài)的代表性圖片來進(jìn)行網(wǎng)絡(luò)模型的訓(xùn)練。
網(wǎng)絡(luò)訓(xùn)練分為兩個(gè)階段。在第一階段生成粗糙修復(fù)圖像的實(shí)驗(yàn)中,學(xué)習(xí)率設(shè)為1E-4,訓(xùn)練數(shù)據(jù)設(shè)置為100 000 步,使用Adam 優(yōu)化器,輸入數(shù)據(jù)是待修復(fù)人像圖片,輸出為粗略修復(fù)圖像。根據(jù)第一階段得到的粗略修復(fù)網(wǎng)絡(luò)來估計(jì)人像姿態(tài)信息,人像姿態(tài)估計(jì)和姿態(tài)掩碼生成的準(zhǔn)確性對后續(xù)訓(xùn)練修復(fù)網(wǎng)絡(luò)有比較大的影響,為了證明姿態(tài)估計(jì)和姿態(tài)掩碼生成的準(zhǔn)確性,本文做了人像姿態(tài)估計(jì)和姿態(tài)掩碼生成的實(shí)驗(yàn),效果如圖3 所示??梢钥闯鐾ㄟ^粗略修復(fù)圖像估計(jì)出的人像姿態(tài)信息大致準(zhǔn)確,生成的姿態(tài)掩碼雖然人像邊界有少量分割錯(cuò)誤(如圖3 最右上角子圖中人的手部和右下角子圖中人的腿部),但是從整體上來說,前景輪廓分割效果仍然具有較高的準(zhǔn)確性,對后續(xù)修復(fù)實(shí)驗(yàn)有很大幫助。在精確修復(fù)網(wǎng)絡(luò)中,本文設(shè)置訓(xùn)練200 000 步,實(shí)驗(yàn)使用的學(xué)習(xí)率為1E-4,使用Adam 優(yōu)化器。網(wǎng)絡(luò)通過訓(xùn)練得到精確修復(fù)圖像。本文修復(fù)結(jié)果如圖4 所示??梢钥闯觯疚牡娜讼裥迯?fù)方法具有很好的修復(fù)效果,能準(zhǔn)確修復(fù)圖像中的人像姿態(tài)。
為了驗(yàn)證所提方法的有效性,本文提出的方法和Contextual Attention[10]的圖像修復(fù)方法進(jìn)行了比較。對于人像圖片,修復(fù)效果比較如圖5 所示,其中(a)是原始圖像,(b)是輸入網(wǎng)絡(luò)的缺失圖片,(c)是contextual attention 方法的修復(fù)效果,(d)是本文方法的修復(fù)效果。此外,還計(jì)算了它們的SSIM(Structural SIMilarity index)和PSNR(Peak Signal-to-Noise Ratio)值,如表1。從圖5可以,本文修復(fù)方法有效地約束了姿態(tài)修復(fù)過程中的扭曲與變形。通過表1 實(shí)驗(yàn)數(shù)據(jù)可知,本文提出的方法對于人像數(shù)據(jù)集的修復(fù)性能有一定提高。
圖3 姿態(tài)估計(jì)和姿態(tài)掩碼效果Fig. 3 Results of pose estimation and pose mask
圖4 本文方法修復(fù)效果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
為了定量測量本文方法的修復(fù)性能,在測試數(shù)據(jù)集的修復(fù)結(jié)果上進(jìn)行了量化評估,并列在表2與表3中。本文主要考慮兩種因素對修復(fù)效果的影響:人像缺失的部位和人像缺失部位像素占人像總像素的比例。在人像中結(jié)構(gòu)最復(fù)雜的是面部結(jié)構(gòu),當(dāng)缺失部位為面部時(shí),修復(fù)效果會相對下降,當(dāng)缺失部分為四肢或身體,模型會有不錯(cuò)的修復(fù)效果,由于上半身的結(jié)構(gòu)要比下半身復(fù)雜(往往上衣比褲子或者裙子結(jié)構(gòu)復(fù)雜),當(dāng)缺失部分是下半身時(shí)修復(fù)效果最好;對于缺失像素占人像像素的比例這個(gè)因素,比例越大時(shí),修復(fù)效果也會相對較差。
表2 人像不同缺失部位對結(jié)果影響的量化評估Tab. 2 Quantitative evaluation of impact of different missing parts of portrait on results
表3 人像缺失程度對結(jié)果影響的量化評估Tab. 3 Quantitative evaluation of impact of degree of portrait missing on results
本文針對人像修復(fù),提出將姿態(tài)信息引入到修復(fù)過程中的方法,并通過人像姿態(tài)信息生成姿態(tài)掩模,在損失函數(shù)中加入姿態(tài)信息損失函數(shù),大大約束了修復(fù)圖像的姿態(tài)信息,使其修復(fù)成合理的人像姿態(tài)的圖像,減小姿態(tài)失真概率,這與實(shí)際的修復(fù)效果一致。但是,在修復(fù)臉部與衣著細(xì)節(jié)方面,修復(fù)效果還有待提升,希望在將來的工作中改進(jìn)該問題,提高算法魯棒性。