朱國迎 陳天昂 李嘉暉 劉純平
關鍵詞:虛擬試衣;深度學習;圖像合成
1引言
虛擬試衣系統可以幫助人們在網絡上試穿衣物,以判斷該衣物是否合身。除了電子商務領域,虛擬試衣在時尚圖片編輯、服裝檢索等領域仍有著廣泛的應用。目前的虛擬試衣系統分為兩類:3D試衣和2D試衣。3D試衣需要把服裝渲染到三維模型上,效果穩定。但是,獲取3D數據的過程在硬件的部署和計算效率上成本高昂,不利于推廣使用。2D試衣只需要一張用戶照片,一張服裝圖片,就可以生成一張穿著指定服裝的用戶照片。可見,2D試衣使用便利,具有較大應用前景和研究價值。人工修圖可以給圖片中的人物做簡易的換裝。但這種方式不僅手工勞動較多且效果十分局限。為了讓換衣后圖片質量更高,可以采用深度學習方法制作2D虛擬換衣系統。本文對基于深度學習的2D虛擬試衣系統進行了解讀和探討。
2效果要求
2D虛擬試衣系統的本質是圖像合成,即使用一張人物圖像和一張目標服裝圖像來合成穿著指定服裝的人物圖像。合成后的圖像一般需要達到以下要求才能基本符合實際需求[1]:(1)圖片中人物的身體部位和姿勢需要與輸入的用戶照片相同;(2)生成圖片中的服裝需要根據人的姿勢和輪廓變形,試衣系統需要讓這件衣服看上去是“穿”在用戶身上;(3)生成圖片中的服裝不僅包括顏色和紋理這些簡單的特征,還包含一些原有的相對復雜的圖案。
3模型方法
現有深度學習模型的圖像數據來源于網絡上的人物圖像和店內服裝圖像。這些圖像數據往往不是成對的。我們通常只能獲得穿著目標服裝的人物圖像和服裝圖像,難以獲得目標人物以相同的姿勢穿其他衣服的圖像。因此,現有的2D虛擬試衣的深度學習模型通常采用自監督學習方式,主要分為以下兩種:單向重構的圖像修復方法和循環一致性生成法。單向重構的圖像修復方法通過遮蓋人物圖像的服裝區域,然后使用服裝圖像重建已遮蓋的區域。循環一致性生成法源于CycleGANE2],該方法用來解決在GAN模型下圖像數據不配對的問題。下文會具體解釋循環一致性。
3.1單向重構的圖像修復方法
(1)VITON是第一個專注于2D虛擬試衣的深度學習模型。它采用一種“由粗到細”的策略,將目標服裝無縫傳輸到用戶被衣物覆蓋的部分。VITON包含三個部分:用戶表示模塊、U-net結構的生成器和細化網絡。為了滿足上述虛擬換衣的效果要求,VITON首先得到一個無關服裝信息的人物表示。該表示包含三部分:姿勢熱圖、用戶的身體表示、臉和頭發的分割。有了人物表示,就可以在輸出圖像里保持原照片人物輪廓。基于該無關服裝信息的用戶表示和目標服裝,生成器生成一個粗略的合成圖像和掩碼。根據該掩碼計算出TPS參數,再根據TPS參數將目標服裝形變成“合身”的形狀。VITON通過細化網絡將形變好的服裝與生成的粗糙的合成圖像進行匹配,并與其中的衣物區域進行無縫連接。
(2)CP_VTON[3]模型緊隨VITON被提出。VITON中服裝圖像在根據掩碼形變時會導致細節特征缺失。因為掩碼只能表示出形狀信息,生成的TPS參數并不能有效指導衣物上的具體花紋一起形變。而CP-VTON提出了一種新的可學習的薄板樣條變換以替代VITON中的形變過程。該變換通過卷積神經網絡實現,輸人人物表示信息和目標服裝,跳過掩碼,直接生成TPS參數。該TPS參數可以更好地形變衣物,使它與人物對齊。實驗證明,CP-VTON生成圖片的紋理圖案特征比Viton清晰得多。
(3) Viton_HDE4]模型為消除偽影影響、提高生成圖片的分辨率而生。該模型提出了ALIAS歸一化和ALIAS生成器,解決了形變后的衣物與人物輪廓不對齊問題,有效地維護了衣服的細節。ALIAS歸一化操作在形變后衣物的錯位區域上執行標準化,刪除了圖像中的衣物的背景信息。ALIAS生成器由一系列ALIAS殘差塊和上采樣層組成。而每個ALIAS殘差塊由ALIAS歸一化操作和卷積、激活函數組成。實驗證明.ALIAS生成器比U-net網絡生成的衣服紋理更加細化。
上述模型都基于以下兩個過程:形變服裝圖像以適應人物輪廓:將形變后的服裝圖像與遮罩后的人物圖像融合。這類方法的缺點在于,當目標服裝與輸入圖像中的服裝有明顯差異時,形變難度太大,效果不佳。如果輸入圖像中人物穿著短袖,但是目標服裝是長袖時,單向重構的圖像修復方法會把這件長袖重構成短袖。因為其缺乏端到端訓練,從而限制了這類方法的泛化潛力。
3.2循環一致性生成法
(1) CAGAN[s]把虛擬試衣問題建模成圖像類比問題:找出數據集中目標服裝圖像和穿著該服裝的人物的聯系。這種聯系包括但不限于遮擋、照明、3D旋轉和變形。通過深度學習模型獲取這種聯系后,我們就可以給任意人物圖像換上目標服裝照片。這樣的建模思路很符合深度學習的一貫做法,可以端到端的訓練模型。
CAGAN基于條件生成對抗網絡的框架來實現,它包括兩個部分:用來生成換裝后人物圖像的學習生成器G和鑒別器D。鑒別器D要做出兩個判斷:G生成的圖像是否逼真:G生成的人物圖像是否和目標服裝的聯系在數據集中觀察到的一致。在訓練的過程中,G和D相互受益:D的梯度引導G生成更高質量的圖像,而新生成的圖像構成D的負樣本。當找到一個平衡點時,該過程終止。最終G生成的圖像足夠逼真,且D無法分辨G生成的人物圖像是否和目標服裝有無聯系。另外,CAGAN引入了循環一致性的概念。當G生成的人物圖像中服裝被換回,該圖像應該與原圖像達成的效果一致。CAGAN解決2D虛擬試衣問題的思路是典型的深度學習方法。它對虛擬試衣問題的上下文做出盡可能少的假設,且強制執行循環一致性約束,但把信息提取全部交給模型的做法很有可能忽略了虛擬換衣場景下信息的特殊性。
(2)DCTONE6]模型充分考慮了2D虛擬試衣場景的特殊性,將模型分為三個部分:服裝形變模塊,保存了服裝設計;皮膚合成模塊,包括人體部分的生成:圖像合成模塊,用于生成輸出圖像。服裝形變模塊包含兩個順序連接的編碼器一解碼器網絡(MPN:掩碼預測網絡,STN:空間轉換網絡)和一個編碼器網絡。與以前VITON類模型不同的是,DCTON模型采用了Densepose描述符來表示人物特征,因為它不僅提供了關鍵點位置,還提供了語義解析結果(如身體和手臂形狀),而普通的2D姿態估計器只能提供關鍵點位置。語義解析的結果使模型在服裝合身和特征生成方面變得更加細節化。然后DCTON將Densepose描述的人物特征和用戶人物照片發送到MPN中,它將生成輸入圖像的服裝區域和皮膚區域的掩模,并分別作為進一步形變服裝和合成人物圖像的先驗指導。在得到服裝區域的掩模后,將它與目標服裝一起送進STN。STN會根據服裝區域掩模的指導來形變目標服裝。
DCTON模型也使用了循環一致性法約束圖像生成。首先給定一個皮膚區域圖像、目標服裝、Densepose描述符,原人物圖像,然后生成試穿結果圖像。反過來,使用生成的試穿結果圖像、結果圖像的皮膚區域,原服裝和Densepose對結果圖像的描述符進行輸入,生成逆預測的輸入圖像。
DCTON模型根據2D虛擬試衣的特殊需求,設計整體的網絡架構,如專門設計了皮膚合成模塊和STN模塊,其明顯比CAGAN更加適合虛擬試衣任務,并在圖像中表現更突出。
4創新方向
4.1優化網絡整體架構
網絡整體架構應依據2D虛擬試衣的任務目標而定,讓深度學習方法更加適用于虛擬試衣任務場景。正如VITON類框架的設計完全與人們換裝的過程相關:遮蓋服裝區域是“脫衣”的過程,而形變服裝照片則是“穿衣”的過程。因此,充分考慮深度模型的應用場景是優化網絡整體架構的關鍵。在DCTON模型里,皮膚合成模塊給了我們同樣的啟示,該模塊旨在恢復試穿時被遮蓋的人體皮膚區域,針對性地改善其他模型生成的圖像中皮膚部分殘缺的問題。在之后的工作中,我們也可以針對人臉細節缺失的問題,設計人臉生成模塊。在大多數情況下,要保留人臉的細節將人臉部分cut-paste即可。但仍有一些特殊情況,如原照片人物佩戴頭飾,我們需要在更換一件新衣服的同時更換新的頭飾。更特殊的情況,原來的頭飾遮擋住了人臉,我們需要恢復被遮擋的區域。模型在投入到實踐之前,是否需要根據應用場景設計新的模塊值得深思。
4.2優化特征提取
優化特征提取是優化深度模型常見的思路,選擇更加細致的特征和使用更豐富的特征在多數情況下能提高模型的效果。在VITON類中,CP-VITON用卷積神經網絡實現,直接生成TPS參數,選擇跳過掩碼,就是為了能夠收集更多的特征信息。ClothFlow模型引入了外觀流的概念以替代TPS參數,從而更加準確地形變目標服裝,這也是在保留更多的特征細節。DCTON模型使用Densepose描述符去獲取人物信息,也是為了得到更細致的特征——語義解析結果。在之后的工作中,我們可以嘗試更加高級的特征提取方式去獲取特征,以及嘗試一些新的卷積方式去代替一般的卷積核。值得一提的是,GAN在自監督圖像生成領域早有大的作為,因此,CAGAN如果采取更加細致和豐富的特征或許會有令人驚喜的效果。
5結束語
本文探討了基于深度學習的2D虛擬試衣模型,詳細對比和闡述了單向重構法與循環一致性生成法下模型各自的特點,總結并歸納了基于深度學習的2D虛擬試衣模型的創新思路。在實際應用場景下,我們需要根據具體場景構建恰當的深度學習模型結構,并盡量使用更優的特征提取方法。