盛培卓,李婷玉,李天寶,宋 丹,劉安安
(1.天津大學(xué)智能與計(jì)算學(xué)部,天津 300354;2.天津大學(xué)電氣自動(dòng)化與信息工程學(xué)院,天津 300072)
面向?qū)W位服照片生成的虛擬試衣方法旨在根據(jù)用戶給定的人像以及所選的學(xué)位服種類生成對(duì)應(yīng)穿著學(xué)位服的人像圖片。該方法可以使學(xué)生足不出戶拍攝學(xué)位畢業(yè)照,減少疫情期間學(xué)生的大規(guī)模聚集,也可以幫助不在校的學(xué)生遠(yuǎn)程拍攝學(xué)位畢業(yè)照,并且可以使畢業(yè)照更加多樣化。
目前最主流的虛擬試衣方法主要分為兩種:一種是基于物理仿真的三維虛擬試衣技術(shù);另一種是基于圖像生成的二維虛擬試衣技術(shù)。早期研究中,與虛擬試衣相關(guān)的工作主要采用三維測(cè)量和構(gòu)建三維服裝模型的方法。Guan等[1]于2012年提出了針對(duì)所有人試穿(Dressing any person,DRAPE)的服裝模型,該模型可以將因身體形狀引起的衣服變形和因姿勢(shì)變化引起的衣服變形進(jìn)行“分解”,這種“分解”提供了一個(gè)近似的物理服裝變形,大大簡(jiǎn)化了服裝的合成。隨后,Hahn等[2]于2014年提出了一種基于自適應(yīng)基的子空間服裝仿真技術(shù),可以只用幾個(gè)基礎(chǔ)向量再現(xiàn)出多種多樣并具有細(xì)節(jié)的褶皺模式,更加方便地模擬了服裝的變形。但是,上述兩種方法的計(jì)算量非常大,因此很難得到廣泛的應(yīng)用。隨后,隨著神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)的發(fā)展,學(xué)者們開(kāi)始利用生成對(duì)抗網(wǎng)絡(luò)(Generative adversarial networks,GAN)來(lái)解決虛擬試穿問(wèn)題。Jetchev等[3]于2017年提出了條件模擬生成對(duì)抗網(wǎng)絡(luò)(Conditional analogy GAN,CAGAN),這是一種基于U-Net的生成對(duì)抗網(wǎng)絡(luò)[4],這種網(wǎng)絡(luò)無(wú)法處理較大的空間變形,因此利用這種方法無(wú)法產(chǎn)生逼真的結(jié)果。近年來(lái),基于圖像生成的二維虛擬試衣技術(shù)得到了眾多研究者的關(guān)注。2018年,Han等[5]提出了基于圖像的虛擬試穿網(wǎng)絡(luò)(Image-based virtual try-on network,VITON),該方法首先使用形狀上下文匹配算法[6]對(duì)衣服進(jìn)行變形處理,然后使用U-Net生成器學(xué)習(xí)圖像合成,將扭曲后的衣服與人體圖像進(jìn)行合成。2018年,Wang等[7]提出了面向特征保留的基于圖像的虛 擬 試 穿 網(wǎng) 絡(luò)(Characteristic-preserving virtual try-on network,CP-VTON)。與VITON[5]相 比,CP-VTON[7]引入了幾何匹配模塊[8],使得生成的試衣結(jié)果與VITON[5]相比更加自然,紋理更加清晰。Song等[9]提出的面向形體保持的基于圖像的虛擬試穿網(wǎng)絡(luò)(Shape-preserving image-based virtual try-on network,SP-VITON)針對(duì)形體提取問(wèn)題在此基礎(chǔ)上做了改進(jìn),通過(guò)引入密集人體姿態(tài)估計(jì)(Dense human pose estimation,DensePose)模型[10]透過(guò)原始圖像中的服裝來(lái)提取出較為真實(shí)的人體形體,很大程度上消除了原始服裝對(duì)試衣結(jié)果產(chǎn)生的影響,進(jìn)一步優(yōu)化了虛擬試衣結(jié)果。
但是,上述方法都不太適合直接進(jìn)行學(xué)位服的虛擬試衣工作,因?yàn)樵谥疤岢龅奶摂M試衣技術(shù)中,大多是針對(duì)短袖、襯衫等服裝,尚未有工作針對(duì)學(xué)位服這類服裝的試穿進(jìn)行研究。在試穿短袖這類服裝時(shí),試穿結(jié)果僅會(huì)受到人體上半身的影響。而在學(xué)位服的試穿中,不僅是人體上半身,下半身的形體及姿勢(shì)也會(huì)對(duì)試穿結(jié)果造成影響。除此之外,學(xué)位服作為寬松型的裙裝,在試衣時(shí)要求將人的上半身與下半身作為一個(gè)整體,因此上半身與下半身之間的姿勢(shì)動(dòng)作等均會(huì)相互影響,例如當(dāng)人張開(kāi)雙臂時(shí)學(xué)位服的下擺也會(huì)隨之變得相對(duì)寬大。同時(shí),人體的腰部、胯部等作為人體上半身與下半身的連接處,其特征也會(huì)對(duì)試衣結(jié)果造成一定影響。但是,學(xué)位服寬松的特性也要求其在試穿時(shí)并不需要緊緊貼合人體的輪廓,這就使得不同體型人的試衣結(jié)果差距不會(huì)太大,并且一些不明顯的人體姿勢(shì)及形體特征并不會(huì)對(duì)試衣結(jié)果產(chǎn)生影響。另一方面,上述方法所采用的虛擬試衣數(shù)據(jù)集與學(xué)位服相差甚遠(yuǎn),不能用于訓(xùn)練學(xué)位服的虛擬試衣網(wǎng)絡(luò)。
為了解決上述問(wèn)題,本文提出面向?qū)W位服照片生成的虛擬試衣方法,并取得較為理想的效果。本文的主要工作和創(chuàng)新點(diǎn)如下:
(1)分析了學(xué)位服等長(zhǎng)裙類衣物數(shù)據(jù),根據(jù)學(xué)位服的連體性等特點(diǎn)以及人物穿著學(xué)位服后的特點(diǎn),有效提取了穿著學(xué)位服人物的人體特征,并設(shè)計(jì)了由服裝變形模塊和虛擬試穿模塊構(gòu)成的虛擬試衣網(wǎng)絡(luò),進(jìn)行學(xué)位服虛擬試衣任務(wù)。
(2)在虛擬試衣的任務(wù)基礎(chǔ)上,增加了背景融合模塊,有助于生成更真實(shí)的畢業(yè)場(chǎng)景照片。
(3)首次收集并提出了學(xué)位服虛擬試衣數(shù)據(jù)集,該數(shù)據(jù)集彌補(bǔ)了虛擬試衣研究中長(zhǎng)裙類數(shù)據(jù)集的空白,有助于推動(dòng)相關(guān)工作的研究和發(fā)展。
近年來(lái),隨著信息技術(shù)的發(fā)展和計(jì)算機(jī)運(yùn)算能力的提高,深度學(xué)習(xí)方法和深度學(xué)習(xí)模型在各個(gè)領(lǐng)域取得了越來(lái)越好的應(yīng)用效果[11]。將深度學(xué)習(xí)的方法應(yīng)用于虛擬試衣任務(wù),通過(guò)訓(xùn)練模型生成對(duì)應(yīng)的虛擬試衣人物圖像,可以實(shí)現(xiàn)基于圖像生成的虛擬試衣方法。2017年,Zhu等[12]提出了一種利用生成對(duì)抗網(wǎng)絡(luò)在穿著者身上生成指定服飾物品的方法,將復(fù)雜的圖像生成過(guò)程分為兩個(gè)階段來(lái)確保生成對(duì)抗網(wǎng)絡(luò)結(jié)構(gòu)的整體連貫性:在第1階段中通過(guò)有效的空間約束條件來(lái)指導(dǎo)生成合理的語(yǔ)義分割結(jié)果[13];在第2階段中,使用具有成分映射層的生成模型來(lái)渲染最終圖像,該網(wǎng)絡(luò)的提出也為采用深度學(xué)習(xí)方法進(jìn)行虛擬試衣任務(wù)提供了很好的思路。隨后,VITON[5]和CP-VTON[7]網(wǎng)絡(luò)的提出使得以特定的人物圖像和衣物圖像作為輸入合成對(duì)應(yīng)的虛擬試穿圖像成為可能。VITON網(wǎng)絡(luò)[5]采用了與服裝無(wú)關(guān)的人物特征表示,其中人物特征包括人物姿勢(shì)、人物身材以及人物身份信息(面部和頭發(fā))。通過(guò)這種與服裝無(wú)關(guān)的人物特征表示可以最大化地?cái)[脫原始衣物對(duì)人像信息的干擾,保留更多的任務(wù)形象信息,從而利用這些信息與給定衣物圖像進(jìn)行合成,最終生成更逼真的虛擬試衣圖像。CP-VTON網(wǎng)絡(luò)[7]在VITON網(wǎng)絡(luò)[5]的基礎(chǔ)上增加了幾何匹配模塊[8],通過(guò)對(duì)幾何匹配模塊進(jìn)行訓(xùn)練使網(wǎng)絡(luò)學(xué)習(xí)薄板樣條變換,從而使衣服能夠更好地與人體部位進(jìn)行對(duì)齊,并且在試衣結(jié)果中更自然地保留衣服上原本的圖案與紋理。但是,VITON[5]與CP-VTON[7]網(wǎng)絡(luò)在提取原始圖像中人體形體時(shí)仍然存在一定的缺陷,這是由于它們?cè)趯?duì)人物形體進(jìn)行提取時(shí)只是對(duì)人體解析結(jié)果的身體分割部分進(jìn)行下采樣操作,即將穿著原始衣服的人體下采樣到低分辨率來(lái)表示人體的形體,這樣生成的形體提取結(jié)果會(huì)在很大程度上受到原始衣服的影響。當(dāng)原始圖像中的衣服較為寬松肥大時(shí),可能提取到的身體形體也隨之變得肥胖。針對(duì)形體提取的問(wèn)題,SP-VITON網(wǎng)絡(luò)[9]對(duì)數(shù)據(jù)集進(jìn)行處理,通過(guò)對(duì)數(shù)據(jù)集中圖像大小進(jìn)行調(diào)整來(lái)增強(qiáng)人物身材變化。在此基礎(chǔ)上,通過(guò)用基于稠密的人類姿勢(shì)估計(jì)方法的DensePose模型[10]將每個(gè)像素映射到一個(gè)密集的姿勢(shì)點(diǎn)集合,以此消除衣物的干擾,進(jìn)而提取衣服遮擋下的人物身材信息,從而能夠更準(zhǔn)確地刻畫(huà)人體信息。SP-VITON網(wǎng)絡(luò)[9]對(duì)于人體體型提取方法的改進(jìn)使得虛擬試穿技術(shù)可以應(yīng)用于更多的服裝類型。2019年,Dong等[14]提出了面向多姿態(tài)引導(dǎo)的虛擬試穿網(wǎng)絡(luò)(Multi-pose guided virtual try-on network,MG-VTON),將虛擬試衣擴(kuò)展到任意姿勢(shì)下,該方法可以在不同姿勢(shì)下將衣服轉(zhuǎn)移到人像上。MG-VTON網(wǎng)絡(luò)[14]分為3個(gè)階段:首先合成所需的目標(biāo)圖像的人體解析圖,以匹配所需的姿勢(shì)和衣服形狀;隨后采用深度變形的生成對(duì)抗網(wǎng)絡(luò)將衣服扭曲并與人體解析圖進(jìn)行合成;最后使用多姿勢(shì)合成掩膜的渲染精化衣服上的紋理細(xì)節(jié)并去除偽影,使得合成效果更加逼真。
上述方法都是針對(duì)目標(biāo)衣物進(jìn)行相應(yīng)的變形并采用一定方法將變形后的衣物與人體相擬合達(dá)到試衣效果。除此之外,Wu等[15]提出了一種新穎的M2E(Model to everyone)虛擬試穿網(wǎng)絡(luò),不需要單獨(dú)的目標(biāo)衣服圖像,可以將模型圖像中的衣服轉(zhuǎn)移到待試穿人像上。此網(wǎng)絡(luò)中包含3個(gè)關(guān)鍵模塊,即姿勢(shì)對(duì)齊網(wǎng)絡(luò)(Pyramid attention network,PAN)、紋理細(xì)化網(wǎng)絡(luò)(Texture refinement network,TRN)以及空間變換網(wǎng)絡(luò)(Spatial transformer network,F(xiàn)TN)。同時(shí),文獻(xiàn)[15]以自監(jiān)督的方式訓(xùn)練了算法框架,逐步將模型圖像中的衣服轉(zhuǎn)移到了人像中,解決了收集訓(xùn)練集困難的問(wèn)題。Yoo等[16]于2016年提出了一種圖像生成模型,該模型利用像素級(jí)別的域區(qū)分轉(zhuǎn)移方法可以從人物圖像中解析服裝圖像,在采用生成對(duì)抗網(wǎng)絡(luò)中的判別器的同時(shí)還引入了一種新穎的域判別器用來(lái)使生成的圖像與輸入圖像相關(guān)。另一種以人為中心的圖像生成方法是姿勢(shì)引導(dǎo)的人物圖像生成,其可以基于單個(gè)姿勢(shì)合成新的人物圖像。典型方法是Neverova等在2018年提出的DensePose轉(zhuǎn)換[17]和Dong等同年提出的軟門(mén)控變形生成對(duì)抗網(wǎng)絡(luò)(Soft-gated warping-GAN,SGWG)[18]。除了對(duì)于單個(gè)圖像的虛擬試衣技術(shù)外,還有一些工作致力于實(shí)現(xiàn)基于視頻的虛擬試穿。Dong等[19]于2019年提出了流指導(dǎo)變形的生成對(duì)抗網(wǎng)絡(luò)(Flow-navigated warping GAN,F(xiàn)W-GAN),該系統(tǒng)可以實(shí)現(xiàn)將衣服轉(zhuǎn)移到人身上并且生成以任意姿勢(shì)為條件的視覺(jué)逼真視頻。
受第1節(jié)相關(guān)工作的啟發(fā),根據(jù)學(xué)位服的特點(diǎn),本文提出一種面向?qū)W位服照片生成的虛擬試衣方法,如圖1所示。本文方法以原始輸入圖像Ii和目標(biāo)學(xué)位服圖像c作為輸入,目標(biāo)為生成學(xué)位服人像照片I?。I?中除衣服以外的其他特征(如人物姿勢(shì)、人物身材以及人物身份信息)都與原始輸入圖像Ii中一致,并且I?中的人物所穿衣服替換為c中圖像,并且原始圖像Ii中的衣服信息不對(duì)I?中的衣服信息造成任何干擾。
圖1 面向?qū)W位服照片生成的虛擬試衣方法Fig.1 Virtual try-on method for generation of graduation photo
在進(jìn)行訓(xùn)練時(shí),采用構(gòu)建訓(xùn)練三元組(Ii,c,It)對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練可以達(dá)到較好的效果,其中It為Ii中人物穿著學(xué)位服c的圖像,即目標(biāo)生成圖像I?的真實(shí)圖像。但是,由于訓(xùn)練任務(wù)要求圖像Ii與It中除人物穿著的衣服不同以外,圖片中的其他信息,例如人體姿勢(shì)與人物特征等均需相同,這就使得獲取這樣一對(duì)訓(xùn)練三元組幾乎不可能。而VITON網(wǎng)絡(luò)[4]可以解決此問(wèn)題,即通過(guò)與服裝無(wú)關(guān)的人體特征表示來(lái)保持用戶的身體姿勢(shì)、身材以及身份信息。
圖2展示了面向?qū)W位服照片生成的虛擬試衣方法的整體框架。首先獲取輸入圖像Ii的與服裝無(wú)關(guān)的人物特征表示p,其中包括姿勢(shì)估計(jì)(即姿勢(shì)熱圖獲?。?、身材估計(jì)(即人物形狀獲取)及人臉與發(fā)型部分提?。瓷矸菪畔@?。?。在訓(xùn)練階段,以與服裝無(wú)關(guān)的人物特征表示p和變形前的學(xué)位服c作為輸入,將其通過(guò)服裝變形模塊后生成變形后的學(xué)位服c?。隨后,將c?與p作為虛擬試穿模塊的輸入,生成最終的虛擬試衣結(jié)果I?。合成虛擬試衣結(jié)果I?后,將其通過(guò)背景融合模塊,即可生成相應(yīng)背景之下的虛擬試衣結(jié)果R。
圖2 面向?qū)W位服照片生成的虛擬試衣方法的整體框架Fig.2 Overall framework of virtual try-on network for graduation photo generation
實(shí)現(xiàn)虛擬試衣任務(wù)目標(biāo)必不可少的一個(gè)環(huán)節(jié)是提取原始圖像Ii中的人物特征。借助人物特征表示中的一些人體特征,才能使目標(biāo)衣物準(zhǔn)確地覆蓋在人體相應(yīng)部位的同時(shí)保持原圖像Ii中其他人體特征。由于在進(jìn)行學(xué)位服虛擬試穿時(shí)相應(yīng)的信息也需要得到保留,而VITON網(wǎng)絡(luò)[5]中獲取人物特征表示的方法對(duì)于穿著學(xué)位服的人像同樣適用,因此本文采用VITON網(wǎng)絡(luò)[5]中獲取人物特征表示的方法提取本文的人物特征。同時(shí),學(xué)位服與其他服裝相比相對(duì)寬大,在試穿時(shí)人體體型的變化對(duì)試穿結(jié)果的影響不大,因此沒(méi)有采用SP-VITON網(wǎng)絡(luò)[9]中利用DensePose模型[10]獲取人體身材的方法。本文獲得3個(gè)不同方面人物特征表示的方法。
2.2.1 姿勢(shì)熱圖
人體姿勢(shì)是人物特征表示中的一個(gè)重要組成部分,也是決定著衣服變形狀態(tài)與變形程度的一個(gè)重要因素。Cao等[20]在2017年提出了一種先進(jìn)的姿勢(shì)估計(jì)模型部分關(guān)聯(lián)域(Part affinity fields,PAFs),利用這個(gè)模型可以有效地檢測(cè)出人物圖像的2D姿勢(shì)并獲取關(guān)鍵的姿勢(shì)點(diǎn)。本文基于PAFs[20]估計(jì)人體姿勢(shì),將用戶圖像Ii作為輸入來(lái)獲取原始圖像中人體的18個(gè)姿勢(shì)關(guān)鍵點(diǎn)的坐標(biāo)。除獲取這些關(guān)鍵點(diǎn)的二維坐標(biāo)外,還需要獲取其對(duì)應(yīng)部位的語(yǔ)義位置屬性(即每個(gè)關(guān)鍵點(diǎn)所以對(duì)應(yīng)身體的部位,例如頭部、頸部、肘部及膝部等),因此需要對(duì)這18通道的姿勢(shì)關(guān)鍵點(diǎn)進(jìn)行單獨(dú)存儲(chǔ)。本文用“1”填充每個(gè)關(guān)鍵點(diǎn)周圍11×11部分的鄰域,用“0”填充其余部分,這樣就形成了用于表示人體姿勢(shì)的18通道姿勢(shì)熱圖。
2.2.2 人體身材
本文使用Liang等[21]于2018年提出的人體解析模型聯(lián)合身體解析與姿態(tài)估計(jì)網(wǎng)絡(luò)(Joint body parsing & pose estimation network,JPPNet)獲得用戶圖像Ii的人體分割圖。隨后對(duì)分割圖下采樣,生成模糊的二進(jìn)制掩膜的一通道特征圖,使得該特征圖能夠大致覆蓋人體的不同部位,以此作為對(duì)人體身材的估計(jì)。
2.2.3 身份信息
身份信息指人的面部及頭發(fā)部位等信息,也是在虛擬試衣任務(wù)中需要保留下來(lái)的關(guān)鍵信息,往往需要通過(guò)對(duì)人體進(jìn)行解析后獲取。本文同樣采用JPPNet模型[21]生成人體分割圖。在人體分割圖中,不同的區(qū)域代表不同的語(yǔ)義信息,即人體的不同部位。在虛擬試衣任務(wù)中,通過(guò)對(duì)應(yīng)的語(yǔ)義信息,將其中的面部和頭發(fā)部分提取為三通道RGB圖像,作為辨識(shí)人物身份的標(biāo)志。將上述3方面的人體特征進(jìn)行拼接即獲得了文中用到的人物特征表示,如圖3所示。該特征表示中包含虛擬試衣任務(wù)中所需的人物信息,作為后文虛擬試穿網(wǎng)絡(luò)的輸入可以使其達(dá)到更好的訓(xùn)練效果。
圖3 與服裝無(wú)關(guān)的人體特征表示Fig.3 Clothing-free person representation
本文的虛擬試穿網(wǎng)絡(luò)由服裝變形模塊與虛擬試穿模塊組成。
2.3.1 服裝變形模塊
服裝變形模塊以與服裝無(wú)關(guān)的人物特征表示p以及變形前的學(xué)位服圖像c作為輸入,輸出變形后的學(xué)位服圖像c?。若以D表示服裝變形模塊,其功能即可表示為c?=D(p,c)。在服裝變形模塊中,首先將人物特征表示p與學(xué)位服圖像c分別通過(guò)2個(gè)用于提取高級(jí)特征的網(wǎng)絡(luò),將提取到的2個(gè)高級(jí)特征通過(guò)1個(gè)相關(guān)層組合成為1個(gè)張量。隨后,將該張量通過(guò)一個(gè)回歸網(wǎng)絡(luò),計(jì)算空間變換參數(shù)θ。最后,根據(jù)人物特征表示p,利用一個(gè)參數(shù)為θ的具有形狀上下文匹配[22]的薄板樣條(Thin plate spline,TPS)變換模塊,將輸入的學(xué)位服圖像c輸出為變形后的學(xué)位服圖像c?。若用T表示該TPS模塊,則該功能可對(duì)應(yīng)表示為c?=Tθ(c)。服裝變形模塊的損失函數(shù)LD(θ)由變形學(xué)位服c?與原始圖像It中的人像所穿衣服cw之間的L1損失組成,有
在進(jìn)行訓(xùn)練時(shí),服裝變形模塊通過(guò)最小化損失函數(shù)LD(θ)來(lái)學(xué)習(xí)如何將目標(biāo)衣物轉(zhuǎn)移到目標(biāo)人物的對(duì)應(yīng)部位并對(duì)其逐漸優(yōu)化,從而生成更理想的輸出。
2.3.2 虛擬試穿模塊
虛擬試穿模塊旨在將變形后的學(xué)位服c?與目標(biāo)人像進(jìn)行融合,生成最終的試穿結(jié)果I?。在虛擬試穿模塊T中,首先以與服裝無(wú)關(guān)的人物特征表示p與在服裝變形模塊中生成的變形后的學(xué)位服c?作為輸入,依次經(jīng)過(guò)下采樣層與上采樣層構(gòu)成的U-Net,在生成渲染人像I'的同時(shí)生成學(xué)位服合成圖的掩膜M,隨后將M與I'通過(guò)掩膜合成生成最終的試穿結(jié)果I?,表達(dá)式為
虛擬試穿模塊的損失函數(shù)LT由L1損失和VGG(Visual geometry group)感知損失[23]構(gòu)成,表達(dá)式為
式中:λwarp表示L1范數(shù)的權(quán)重;λVGG表示VGG感知損失范數(shù)的權(quán)重。式中的第1項(xiàng)代表試穿結(jié)果I?與真實(shí)圖像It之間的L1損失;第2項(xiàng)代表試穿結(jié)果I?與真實(shí)圖像It之間的感知損失。通過(guò)L1范數(shù)和VGG感知損失范數(shù)可以使得生成的結(jié)果I?利用更多變形后的學(xué)位服中的信息并且使其更加平滑,從而使得生成的結(jié)果能夠保留更多衣服上的細(xì)節(jié)紋理,并且使試穿結(jié)果看起來(lái)更加逼真自然。
經(jīng)過(guò)上述虛擬試穿網(wǎng)絡(luò)得到試穿的人像結(jié)果后,本文將其通過(guò)一個(gè)背景融合模塊使其能夠自由地與所需的背景進(jìn)行拼接。如圖4所示,將生成的學(xué)位服試穿結(jié)果I?與背景圖片B作為輸入,目標(biāo)是生成一個(gè)圖像R,R中除被I?替換的像素部分將背景遮擋外,其余部分均保留原有背景圖片B中的特征,且I?經(jīng)背景融合后人物特征(如人物姿態(tài)、衣服特征等)保持不變。
圖4 背景融合目標(biāo)Fig.4 Goal of background fusion
如圖5所示,在本文的背景融合模塊中,首先對(duì)人物圖像進(jìn)行二值化處理得到二值化圖像D。隨后,通過(guò)圖像邊界兩側(cè)灰度級(jí)的突變獲取圖像的邊界連續(xù)像素序列,進(jìn)而得到人物的邊緣輪廓序列并對(duì)其最外層進(jìn)行繪制,從而獲得以人物最外層邊緣為界的掩膜圖像m。由于使用僅通過(guò)提取邊緣后的掩膜圖像m不易與背景圖像自然融合,因此本文使用圖像膨脹技術(shù)對(duì)掩膜圖像m邊緣白色像素進(jìn)行處理。通過(guò)膨脹去除任務(wù)邊緣干擾色素得到更完美的掩膜圖像m?,使人物邊界向外部擴(kuò)張,與背景融合更加自然。在原背景圖像上確定人物位置,根據(jù)得到的掩膜圖像m?對(duì)原背景圖像B進(jìn)行相應(yīng)的像素替換,即可得到背景融合后的虛擬試穿結(jié)果R。
圖5 背景融合整體框架Fig.5 Background fusion overall framework
本文構(gòu)建了一個(gè)新的學(xué)位服照片數(shù)據(jù)集(https://github.com/jr011/-dataset),數(shù)據(jù)集信息如表1所示。首先,在淘寶、京東等網(wǎng)站上爬取了模特穿著學(xué)位服的圖片,經(jīng)過(guò)人工質(zhì)量篩選后剩余1 176張人物圖像It。由于學(xué)位服之間樣式類似,最主要的區(qū)別為領(lǐng)子顏色區(qū)別,在此實(shí)驗(yàn)中本文共收集了5種領(lǐng)子顏色的學(xué)位服,分別為紅色、黃色、粉色、綠色及銀白色。因此,根據(jù)學(xué)位服圖片c中領(lǐng)子顏色為其做對(duì)應(yīng),得到1 176組對(duì)應(yīng)的訓(xùn)練集。由于數(shù)據(jù)量過(guò)少,可能導(dǎo)致網(wǎng)絡(luò)學(xué)習(xí)效果不佳,本文嘗試?yán)瞄L(zhǎng)裙數(shù)據(jù)集與學(xué)位服數(shù)據(jù)集進(jìn)行合并對(duì)網(wǎng)絡(luò)進(jìn)行訓(xùn)練。因此,本文又在www.zalando.de網(wǎng)站上爬取了15 049組訓(xùn)練對(duì),其中每組訓(xùn)練對(duì)包括裙子圖像c和人物圖像It,其中人物圖像中的模特穿著對(duì)應(yīng)裙子。由于網(wǎng)絡(luò)上收集到的圖片分辨率不同,且背景顏色非常豐富,會(huì)對(duì)后期的訓(xùn)練結(jié)果產(chǎn)生較大的影響,因此需要對(duì)訓(xùn)練集進(jìn)行預(yù)處理。首先將其分辨率統(tǒng)一為443像素×641像素,隨后對(duì)其背景顏色進(jìn)行處理,將其背景統(tǒng)一處理成白色。
表1 數(shù)據(jù)集信息Table 1 Dataset information
本文在訓(xùn)練中使用Adam優(yōu)化器[24],其參數(shù)為:β1=0.5,β2=0.999,λwarp=λVGG=λM=1。訓(xùn)練服裝變形模塊50 000步,訓(xùn)練虛擬試穿模塊50 000步。在前50 000步的訓(xùn)練中將學(xué)習(xí)率設(shè)為0.000 1,對(duì)于后50 000步將學(xué)習(xí)率線性衰減為0。原始輸入圖像的分辨率為443像素×641像素,然后在輸入過(guò)程中調(diào)整為256×192的固定大小,最終輸出圖像也具有相同的分辨率。對(duì)實(shí)驗(yàn)圖片的預(yù)處理和背景合成部分在CPU i7-8550U處理器上運(yùn)行,獲取與服裝無(wú)關(guān)的人體特征表示、網(wǎng)絡(luò)訓(xùn)練及測(cè)試部分均在GPU GTX 1080 Ti上進(jìn)行,Tensorflow版本為1.15,Python版本為3.7。
在第1階段服裝變形模塊中,特征提取網(wǎng)絡(luò)包含4個(gè)二步下采樣卷積層以及2個(gè)一步卷積層,其濾波器的數(shù)量分別為64、128、256、512、512、512。而回歸網(wǎng)絡(luò)包含2個(gè)二步卷積層、2個(gè)一步卷積層以及1個(gè)全連接輸出層,其濾波器數(shù)量分別為512、256、128、64。第2階段的虛擬試穿模塊中,在U-Net中包含6個(gè)二步下采樣卷積層和6個(gè)上采樣卷積層,下采樣卷積層的濾波器數(shù)量分別為64、128、256、512、512、512,上采樣卷積層濾波器數(shù)量分別為512、512、256、128、64、4。在每個(gè)卷積層之后是實(shí)例歸一化層[25]以及斜率為0.2的Leaky ReLU[26]。
圖6展示了對(duì)服裝變形模塊進(jìn)行訓(xùn)練的結(jié)果,將真實(shí)衣服變形和通過(guò)TPS生成的變形結(jié)果進(jìn)行比較,可以看出除衣服邊緣變形有一定差距以及手持物遮擋外,生成的變形結(jié)果比較準(zhǔn)確。
圖6 服裝變形模塊訓(xùn)練結(jié)果Fig.6 Training results of clothing deformation module
圖7展示了對(duì)虛擬試穿模塊進(jìn)行訓(xùn)練的結(jié)果,利用服裝變形模塊生成的變形后的學(xué)位服以及變形掩膜圖像,虛擬試穿模塊也可以較為準(zhǔn)確地將變形后的學(xué)位服覆蓋在人像的對(duì)應(yīng)位置。
圖7 虛擬試穿模塊訓(xùn)練結(jié)果Fig.7 Training results of virtual try-on module
圖8展示了對(duì)虛擬試衣網(wǎng)絡(luò)進(jìn)行測(cè)試的結(jié)果。利用本文的方法,在測(cè)試結(jié)果的圖像生成中,原有圖像的人體服裝對(duì)試衣結(jié)果幾乎沒(méi)有影響。模型可以使學(xué)位服較好地根據(jù)人像身體特征進(jìn)行變形,將其覆蓋在人體的對(duì)應(yīng)區(qū)域,并且將人物特征及學(xué)位服上的褶皺較好地保留,從而產(chǎn)生較為逼真的試衣結(jié)果。同時(shí)利用本模型可以在不同的人像上進(jìn)行虛擬試穿生成不同的結(jié)果,生成的虛擬試衣結(jié)果具有多樣性,證明本文方法具有良好的魯棒性。
圖8 虛擬試衣結(jié)果Fig.8 Virtual try-on results
將輸出的虛擬試衣合成人像通過(guò)背景合成網(wǎng)絡(luò)與背景進(jìn)行合成,結(jié)果如圖9所示。實(shí)驗(yàn)結(jié)果表明生成的圖像有較強(qiáng)的真實(shí)性。
圖9 背景融合結(jié)果Fig.9 Background fusion results
除可視化結(jié)果外,本文還對(duì)生成的虛擬試衣結(jié)果進(jìn)行了定量分析。在虛擬試衣工作中,定量評(píng)價(jià)指標(biāo)主要有起始分?jǐn)?shù)(Inception score,IS)[27]、峰值信噪比(Peak signal-to-noise ratio,PSNR)和結(jié)構(gòu)相似性(Structural similarity,SSIM)[28]等。本文參考VITON、CP-VTON中對(duì)結(jié)果的定量分析方法,同樣采用IS指標(biāo)[25]定量評(píng)估本文模型的圖像生成質(zhì)量。IS指標(biāo)的計(jì)算采用Google的圖片分類網(wǎng)絡(luò)Inception Net V3模型,主要考慮生成圖像的清晰度及生成圖像的多樣性兩個(gè)方面。模型將生成器生成的圖像數(shù)據(jù)作為圖片分類網(wǎng)絡(luò)的輸入,并輸出1 000維向量,其中不同維的向量代表該圖像屬于不同類別的概率。在衡量清晰度時(shí),圖像越清晰,網(wǎng)絡(luò)對(duì)于圖像的類別判斷越準(zhǔn)確,因此圖像屬于某一類的概率會(huì)越大。在衡量多樣性時(shí),當(dāng)生成器生成的圖像數(shù)據(jù)足夠多時(shí),其多樣性也越強(qiáng),圖像數(shù)據(jù)在1 000類中的類別分布越平均。綜合來(lái)看,生成的圖像越清晰且生成圖像的多樣性越強(qiáng)時(shí),IS值越高。表2展示了本文方法與VITON、CP-VTON及SP-VTON方法在原數(shù)據(jù)集進(jìn)行試衣生成結(jié)果的IS值。通過(guò)對(duì)比可以看出,本文方法與VITON、CP-VTON及SP-VTON方法的IS值差異不大,證明本文方法在清晰度和多樣性方面可以達(dá)到較好的標(biāo)準(zhǔn),驗(yàn)證了本文方法的圖像生成質(zhì)量。
表2 本文方法與其他方法IS定量比較Table 2 IS value comparison between the proposed method and other methods
圖10展示了本文虛擬試衣網(wǎng)絡(luò)生成學(xué)位服照片的2種失敗情況,其原因分別是:(1)訓(xùn)練集中人物的腿部幾乎都呈豎直站立的狀態(tài),因而對(duì)于一些較為復(fù)雜罕見(jiàn)的人物姿勢(shì),網(wǎng)絡(luò)無(wú)法準(zhǔn)確地將服裝覆蓋到人體的對(duì)應(yīng)部位;(2)人物原始服裝顏色較深且形狀較為復(fù)雜,在進(jìn)行試穿時(shí)很難消除原始服裝對(duì)試穿結(jié)果帶來(lái)的影響。針對(duì)這一點(diǎn),可以通過(guò)引入DensePose模塊[10]提取衣服下的人體身材消除原始衣物的影響,對(duì)結(jié)果進(jìn)行改進(jìn)。除此之外,在進(jìn)行試穿時(shí)手部和腳部等處的信息可能會(huì)被模糊或改變。通過(guò)對(duì)VITON[5]及CP-CTON[7]網(wǎng)絡(luò)的實(shí)驗(yàn)結(jié)果進(jìn)行觀察,發(fā)現(xiàn)其也有相同的現(xiàn)象,即在虛擬試衣圖像生成時(shí)會(huì)生成原本不存在的偽影,導(dǎo)致其結(jié)果中原本褲子等非試衣區(qū)域的顏色發(fā)生改變。這是由于在生成虛擬試衣結(jié)果時(shí),網(wǎng)絡(luò)忽略了人體解析、服裝和姿勢(shì)之間的相互作用。針對(duì)這一點(diǎn),為了使原有圖像中的更多細(xì)節(jié)被更好地保留,可以利用保留頭部的方法保留手部和腳部信息,即根據(jù)對(duì)應(yīng)的語(yǔ)義信息直接將其從原圖像中提取保留以對(duì)試衣結(jié)果進(jìn)行優(yōu)化。
圖10 失敗情況Fig.10 Failure cases
本文提出了一種面向?qū)W位服照片生成的虛擬試衣方法,用于根據(jù)用戶所提供的人物圖像以及選擇的目標(biāo)學(xué)位服來(lái)合成虛擬試穿圖像,并將虛擬試穿圖像與特定的背景進(jìn)行融合,生成逼真的畢業(yè)場(chǎng)景照片。文中針對(duì)學(xué)位服的特性,設(shè)計(jì)了面向?qū)W位服等長(zhǎng)裙類衣物的虛擬試衣方法,并且構(gòu)建了一個(gè)學(xué)位服虛擬試衣數(shù)據(jù)集。實(shí)驗(yàn)結(jié)果表明,本文方法能夠在完成虛擬試穿任務(wù)時(shí)較好地保留原始圖片中人物的姿勢(shì)、形體特征及身份特征,從而將目標(biāo)學(xué)位服很好地與人物圖像相融合,并且保留衣服上的細(xì)節(jié)紋理。同時(shí)也能在保持人物特征及服裝的情況下將生成的虛擬試衣圖像與背景自然融合,有助于畢業(yè)生在線進(jìn)行畢業(yè)照生成。