徐 俊,普園媛,b,徐 丹,趙征鵬,錢文華,吳 昊,陽秋霞
(云南大學 a.信息學院,b.云南省高校物聯(lián)網(wǎng)技術(shù)及應用重點實驗室,昆明 650504)
隨著互聯(lián)網(wǎng)技術(shù)的迅猛發(fā)展,越來越多的人喜歡在電商平臺(如淘寶、蘑菇街、唯品會)購買衣服。但由于電商平臺的特殊性,人們只能通過虛擬模特來觀察服裝效果,并不能直觀地判斷服裝是否適合自己。針對如何讓服裝虛擬試穿到用戶身上是目前試衣領(lǐng)域的研究熱點,用戶通過試衣結(jié)果體驗自己穿著不同款式的服裝,可以直觀判斷自己是否心儀某件衣服,從而幫助用戶做出購買決策。
為了滿足上述需求,學者們將GAN[1]應用于虛擬試衣任務,借助GAN將服裝虛擬試穿到人物圖像上,直觀觀察服裝試穿效果。而虛擬試衣與圖像生成[2-3]、圖像翻譯[4-6]以及圖像編輯[7]等任務有著本質(zhì)的不同。虛擬試衣時圖像會產(chǎn)生幾何形變,細節(jié)特征容易丟失,因此學者將傳統(tǒng)的像素間損失(L1和L2損失)和感知損失[8]引入到GAN中,來保留圖像信息。此外還引入了對抗損失[4],最大限度減小對抗損失,使得生成器生成的圖像更接近原始圖像,但是會遺漏關(guān)鍵的細節(jié)特征。在面臨巨大的幾何變化時,細節(jié)的保存能力較差,這就限制了GAN在虛擬試衣中的應用。
DONGGEUN et al[9]采用結(jié)合GAN和深度CNN的方式來完成圖像生成任務,在沒有考慮人物姿勢的前提下,通過穿著服裝的人物圖像生成其上衣圖像。LASSNER et al[10]提出了圖像級穿著全身服裝的人物生成模型,可以根據(jù)人物姿勢形態(tài)進行服裝調(diào)整,但服裝是隨機生成,并沒有考慮如何控制服裝項。WEI-LIN et al[11]訓練了提升服裝時尚感的模型,能自動度量時尚標準,對全身服裝進行微小改變,可以將輸入圖像的服裝調(diào)整為更加時尚的服裝。NIKOLAY et al[12]采用GAN實現(xiàn)2D試衣,讓模特試穿給定的服裝,但是沒有考慮人物的姿態(tài),要求人物圖像和服裝圖像高度對齊。WANG et al[13]提出了通過一個端到端的網(wǎng)絡(luò)來聚合服裝圖像的多尺度特征,結(jié)合姿態(tài)和參考服裝生成新人物圖像,但參考服裝的紋理形變程度過大,偏離了原始圖像的紋理。YANG et al[14]在TPS形變的基礎(chǔ)上,引入了二階差分約束,使得參考服裝的紋理不會發(fā)生較大形變,效果更加真實,但人物姿態(tài)較為復雜時,會出現(xiàn)無法正確試衣的情形。HAN et al[15]提出先生成粗糙試衣圖像,再對參考服裝的特征信息進行二次提取,來合成更加真實的試衣圖像,但是依然會丟失服裝和人物細節(jié)特征。WANG et al[16]在此基礎(chǔ)上,提出了特征保留的試衣網(wǎng)絡(luò),更好地保留了參考服裝圖像的細節(jié)特征,但試衣后人物細節(jié)特征丟失,除服裝區(qū)域變化外,人物手臂手部區(qū)域以及其它非試衣服裝區(qū)域發(fā)生了不可控的變化,無法合成更加寫實保真的圖像。MINAR et al[17]在WANG et al[16]的基礎(chǔ)上,提出了服裝形狀和紋理保留網(wǎng)絡(luò),雖然它優(yōu)于目前的方法,但對于長袖款、紋理復雜的服裝圖像,以及姿態(tài)復雜的目標人物圖像,它并不總是能生成滿意的試衣效果。
針對上述問題,本文提出了款式變換和局部渲染相結(jié)合的虛擬試衣方法,保留參考服裝細節(jié)信息的同時,需保持目標人物圖像的手臂區(qū)域、手部臉部區(qū)域、頭發(fā)區(qū)域以及非試衣區(qū)域等信息不變,然后將服裝渲染到人物圖像的目標區(qū)域來完成試衣(如圖1所示)。其過程主要包括以下幾個步驟:
首先,對人物圖像進行像素級語義分割,尋找出具體的服裝區(qū)域,為局部渲染的實施創(chuàng)造條件;其次,試衣時,如果僅對服裝區(qū)域進行渲染,當目標服裝圖像和參考服裝款式不同時,局部渲染策略則無法實現(xiàn),因此需要應用款式變換模塊將其轉(zhuǎn)換為與參考服裝相同的款式,從而實現(xiàn)不同服裝款式間的換裝。此外,提出的款式變換模塊是可學習的,便于學習多種服裝款式之間的轉(zhuǎn)換;第三,為了讓服裝更好地符合試穿者身材,提出了可學習的TPS服裝形變模塊,將參考服裝根據(jù)目標服裝圖像的身材姿態(tài)進行相對應的形變;最后,將形變過的服裝無縫地渲染到目標圖像上,采取局部渲染策略(僅對服裝區(qū)域進行渲染),保留了人物原始的細節(jié)特征。
圖1 款式變換和局部渲染相結(jié)合的虛擬試衣效果Fig.1 A virtual try-on effect that combines style transformation and local rendering
本文在上述基礎(chǔ)上,為了更好地保留服裝細節(jié)特征和人物細節(jié)特征,提出了款式變換和局部渲染相結(jié)合的虛擬試衣網(wǎng)絡(luò)(如圖2所示),主要包含4個部分:服裝語義分析模塊、服裝款式變換模塊、服裝形變模塊和服裝渲染模塊。
圖2 本文虛擬試衣網(wǎng)絡(luò)框架Fig.2 Virtual try-on network in this paper
此外,由于款式轉(zhuǎn)換需要兩幅服裝圖像在相同域下進行轉(zhuǎn)換,因此無法直接實現(xiàn)目標圖像I1和參考服裝圖像R之間的轉(zhuǎn)換,這也是引入?yún)⒖紙D像I2的原因,此外參考圖像I2可以是與參考服裝圖像R款式相同的任意圖像。
對服裝I1、I2進行語義分割,提取出具體的服裝區(qū)域,是款式變換的前期工作。主要包括3個步驟:1) 利用馬爾科夫隨機場作為基礎(chǔ)網(wǎng)絡(luò)模型,尋找出相鄰像素點,確定具體的服裝區(qū)域;2) 為了能讓計算機自動辨別服裝區(qū)域的標簽Ii,選定標簽過的服裝區(qū)域作為正樣本,其他外部區(qū)域作為負樣本,訓練分類器C;3) 采取滑動窗遍歷整幅圖像,通過分類器尋找出指定標簽的服裝區(qū)域,進而提取該區(qū)域掩膜M.
款式變換模塊包含生成器Gst和判別器Dst.生成器輸出生成的圖像,由6層卷積網(wǎng)絡(luò)和3層殘差塊組成。判別器Dst對生成器Gst產(chǎn)生的圖像I*進行真假樣本的判定,由3層卷積層組成。卷積層作為特征提取,殘差塊級聯(lián)鄰層特征,作為特征優(yōu)化。
Lcyc=‖Gst2(Gst1(I1,M1))-(I1,M1)‖1+
‖Gst1(Gst2(I2,M2))-(I2,M2)‖1.
(1)
Lidt=‖Gst1(I2,M2)-(I2,M2)‖1+
‖Gst2(I1,M1)-(I1,M1))‖1.
(2)
(3)
L1sgan=(Dst(I1,M1)-1)2+Dst(Gst(I2,M2))2.
(4)
款式變換模塊的整體損失Lst:
Lst=L1sgan+λcycLcyc+λidtLidt+λctxLctx.
(5)
服裝形變模塊由2個特征提取網(wǎng)絡(luò)、1個特征連接網(wǎng)絡(luò)、1個回歸網(wǎng)絡(luò)和1個TPS轉(zhuǎn)換網(wǎng)絡(luò)組成。
Lwarp(θ)=‖R*-Rgt‖1.
(6)
式中:Rgt為目標人物服裝的Ground-truth圖像。
服裝渲染模塊由6層卷積網(wǎng)絡(luò)和3層Unet網(wǎng)絡(luò)組成。卷積層作特征提取,Unet層采用3個跳連接,將低層和高層特征進行拼接,更好地保留原始特征。
Lrender=λL1‖It0-Igt‖1+λvggLVGG(It0,Igt) .
(7)
式中:Igt為ground-truth圖像,LVGG為VGG感知損失函數(shù)。
實驗部分使用HAN et al[15]提出的數(shù)據(jù)集,約16 000對圖像,每對圖像包括參考服裝圖像、目標人物圖像、語義分割圖、人物姿態(tài)圖以及mask圖像,服裝人物圖像主要是純色背景的女性上裝圖像,隨機選取14 221對,2 032對作為訓練集和測試集。選取該數(shù)據(jù)集中兩種不同款式的服裝圖片若干張,作為款式變換模塊的訓練,例如在訓練長短袖轉(zhuǎn)換時,選取120張長袖圖片和120張短袖圖片進行訓練。此外,為了更好地驗證款式變換的效果,還使用了LIANG et al[21]提供的CCP數(shù)據(jù)集,該數(shù)據(jù)集包含約2 000張背景復雜的人物服裝圖片。
語義分析、款式變換、服裝形變和服裝渲染4個模塊均在pytorch平臺下完成,輸入和輸出圖片分辨率均為256×192.其中,款式變換模塊初始學習率為0.000 2,選取Adam優(yōu)化器,批量大小為1,單GPU訓練約60 h;服裝形變和服裝渲染模塊初始學習率為0.000 1,選取Adam優(yōu)化器,批量大小為4,單GPU訓練耗時約25 h.本文基于分辨率256×192的圖像來計算PSNR、SSIM和MSE值,以此作為定量評價指標。
WANG et al[16]提出的虛擬試衣網(wǎng)絡(luò)CP-VTON是目前該虛擬試衣領(lǐng)域較新、效果較好的方法,因此,本文后續(xù)實驗都是基于CP-VTON的方法進行相關(guān)比較。
為了驗證模型的有效性,且便于與Ground-Truth進行比較,用本文提出的方法與CP-VTON方法測試了訓練集中所有圖片(14 221張),隨機選取了部分結(jié)果,如圖3所示。
圖3 兩種方法驗證訓練集結(jié)果比較Fig.3 Results of the two methods in training dataset
從圖3可以看出,CP-VTON和本文方法都能完成試衣。但CP-VTON會丟失人物一些細節(jié)特征,例如人的手臂、手部等細節(jié)特征,此外,試衣后的人物下裝發(fā)生了不可控的變化。對于這些問題,本文提出的方法實現(xiàn)了較好的效果。
在測試集進行了相關(guān)測試,該部分測試主要包括不同款式的試衣測試、人物手臂姿勢簡單的試衣測試和人物手臂姿勢復雜的測試。
3.2.1不同服裝款式的試衣測試
當參考服裝圖像和目標人物圖像的款式不同時,應用款式變換模塊將目標圖像變換為與參考圖像相對應的款式,例如圖4中參考圖像為短袖、目標圖像為長袖,應用款式變換將目標圖像變換為短袖款式,然后再結(jié)合參考圖像進行試衣。
圖4 兩種不同款式換裝結(jié)果比較Fig.4 Comparison of two different styles
由圖4可以看出,本文方法更好地保留人物的細節(jié)特征,但也產(chǎn)生了微弱的失真。由于不同款式間的換裝,本文方法需要經(jīng)過款式變換模塊,該模塊在服裝渲染前需要進行款式之間的轉(zhuǎn)換(如圖4中目標圖像由長袖款變?yōu)槎绦淇?,經(jīng)款式變換后的圖像會產(chǎn)生一定程度的失真,該失真同樣影響著最終的試衣結(jié)果。
3.2.2人物姿勢簡單類的試衣測試
當目標人物手臂姿勢較為簡單時,本文方法和CP-VTON方法的實現(xiàn)效果較好。由圖5可知,當目標圖像手臂姿勢較簡單時,兩種方法都達到了令人滿意的效果,但本文方法在人物細節(jié)特征保持方面優(yōu)于CP-VTON.
圖5 姿勢簡單類的測試結(jié)果Fig.5 Test results of easy poses
3.2.3人物姿勢復雜類的試衣測試
當目標人物手臂姿勢較為復雜時,先前工作試衣失敗或者效果不佳。如圖6可以看出,CP-VTON進行試衣渲染時,會出現(xiàn)手臂和手部細節(jié)丟失、位置錯誤以及下裝隨機改變等情況。
圖6 姿勢復雜類的測試結(jié)果Fig.6 Test results of complicated poses
從圖4-圖6的整體結(jié)果比較可以看出,本文提出的款式變換和局部渲染相結(jié)合的試衣方法效果更加顯著。該方法摒棄了傳統(tǒng)的全局渲染的試衣方法,采用先進行服裝語義分割,確定具體的服裝區(qū)域后,僅對服裝區(qū)域進行渲染的策略,不再對人物圖像整體進行渲染,很好地保證了除試穿的服裝區(qū)域外,其他非試衣區(qū)域的特征信息不會丟失,同時也保證試穿上裝時,下裝不會發(fā)生變化。尤其在保持人物手臂、手部細節(jié)以及下裝不變等方面效果較好,證實了算法設(shè)計的有效性。
上述定性比較是基于視覺層面上的結(jié)果對比,該部分為了更好地比較兩種方法的效果,采取定量比較的方式,選取了3個評價指標對生成結(jié)果進行評測,其中PSNR、SSIM、MSE分別表示兩幅圖像間的峰值信噪比、結(jié)構(gòu)相似性以及均方誤差,評測結(jié)果如表1和表2所示。
表1 隨機選取50組實驗結(jié)果Table 1 50 groups of test results selected randomly
表2 全部測試結(jié)果Table 2 All test results
表1是隨機選取50組實驗結(jié)果的數(shù)據(jù),表2是全部測試結(jié)果(共14 221組)的數(shù)據(jù)。從表中可以看出,本文方法的PSNR值略高于CP-VTON方法,表明了本文方法試衣后的圖像質(zhì)量更好。SSIM值基本一致,表明兩種方法在圖像結(jié)構(gòu)性保留方面都有著較好的效果。此外,本文方法的MSE值小于CP-VTON方法,說明了本文方法的圖像失真較小,更好地保留了原始圖像的結(jié)構(gòu)特征,試衣后圖像更加保真。
圖像級的虛擬試衣是一項復雜的研究任務,先前方法在試衣時,人物圖像手臂、手部等細節(jié)特征容易丟失,此外,在試穿上裝時,下裝發(fā)生不可控的變化。針對上述問題,本文提出了款式變換和局部渲染相結(jié)合的虛擬試衣網(wǎng)絡(luò):先對人物圖像進行像素級語義分割,尋找出具體的服裝區(qū)域,為服裝的局部渲染提供前提條件。為了實現(xiàn)不同服裝款式間的試衣,構(gòu)造可學習的款式變換模塊;此外,為了讓服裝更好地符合試穿者身材姿態(tài),使用了可學習的TPS服裝形變模塊,從而使試衣后圖像更加保真寫實。除試衣的服裝區(qū)域外,保留了原始圖像的其他細節(jié)特征。
在未來的研究中,虛擬試衣有著廣闊的研究前景。但是還有一些問題需要繼續(xù)展開深入研究:1) 在實現(xiàn)圖像保真的前提下,試衣時應考慮參考服裝圖像的款式,不僅僅是基于目標圖像進行試衣。目前該方法實現(xiàn)起來難度較大,不僅是簡單地將形變后的參考服裝圖像試穿到目標圖像上,還要結(jié)合參考服裝圖像的款式,進行試衣;2) 首次將InstaGAN應用于服裝款式轉(zhuǎn)換,由于服裝款式的多樣性,實現(xiàn)難度較大,效果還有待提升,后續(xù)還需要進行相關(guān)改進,增強款式轉(zhuǎn)換后圖像的真實感。