CVPR 2020 Poster | ACGPN: 基于圖像的虛擬換裝新思路
導讀:在CVPR 2020上,商湯科技提出的自適應內容生成保留網絡ACGPN值得關注,該工作為基于圖像的虛擬換裝提供了新的思路。并且該工作提出了一種新穎的衡量虛擬換裝難度的指標,并將所用數據集劃分成了三個難度。相比于主流方法,ACGPN不管是視覺質量上還是量化實驗上都有明顯優勢。
回顧
介紹算法之前,我們先來回顧一下基于圖像的虛擬換裝的歷史。傳統的虛擬換裝基于3D匹配,比如一些換裝墨鏡,都是生成一個跟蹤人物的虛擬貼圖。 而基于圖像的虛擬換裝,可以直接生成換好裝的人物圖片。 VITON提供了一個被廣泛使用的pipeline,現在的方法大多遵循類似的框架。
1.利用網絡泛化能力的重構學習
由于同一個模特在同一姿勢下穿著不同衣服的數據集較難獲得,常見做法是,將人物圖片的監督信息減弱,再將與人物身上同樣的inshop-clothes(平鋪的衣服正面大圖)穿在這個處理過后的表達上。將圖片的監督信息減弱防止過強的參考使得網絡無法泛化到不同的衣服上。 也就是提取關鍵點,模糊形狀等來作為一個人物的表達,再重構原來的圖像。 經典的衣服無關人物表達(clothing-agnostic person representation) 如下圖所示。
CP-VTON和VITON都采用了這一表達。但是由于提供的先驗信息較少,原圖的監督指導已經被壓縮到了極小值,雖然可以很好的解決原圖原有服裝對生成的干擾,但也難以讓網絡學會對復雜細節的建模。
2. 基于Thin-Plate Spline (TPS)變換的服裝變形模塊
VITON:如圖所示,VITON通過先生成衣服mask和原始inshop-clothes的mask來計算TPS變換的參數,將這套參數使用到inshop-clothes上,生成一個變形衣服圖。之后會和之前生成的一個coarse人物結果,一起refine出最終結果。整個流程是2-stage模式。VITON在進行圖像對齊的時候,利用Shape Context描述子提取圖像特征完成對齊,后來的CP-VTON則把這個部分用卷積神經網絡代替。
CP-VTON:CP-VTON基于VITON這個工作,增加了一個“GMM模塊”,使用一個網絡來回歸TPS變換的參數,拋棄了之前利用shape context圖像descriptor進行匹配的方法,變成learning-based,奠定了這一模塊的一般設計方法。
動機
現有方法存在的問題
我們拿CP-VTON和VITON舉例,以上為CP-VTON的文章中報告的圖像結果,我們可以看到以下幾點問題:
1.人物的肢體仍然較為模糊。
2.對于下裝很難做到清楚的保留。
3.衣服的紋理容易產生過度形變。
當我們運行兩者的官方源代碼,得到下圖的結果,我們還能發現一個更為本質的問題。
這兩個方法都無法處理人物肢體與衣服有交叉的情況。一旦手擋在了衣服前,或者姿勢較為復雜,往往圖片會丟失肢體細節,手指糊成一團。這給面向真實場景應用的虛擬換裝系統的實現,帶來極大的隱患與阻力,畢竟用戶在使用的時候,姿勢是各種各樣的。 為了解決這一問題,我們使用語義分割來代替原有的衣服無關人物表達。
網絡設計
該文章提出了一種自適應內容生成保留網絡即ACGPN。此方法利用一種layout aware的方法,自適應的判斷哪部分圖像是應該保留的,解決了現有方法中,無法對人物肢體與衣服有遮擋的情況的建模,極大程度地降低了生成結果中的偽影以及模糊細節;并通過引入仿射變換的共線性等性質,對變形inshop-clothes中的TPS變換起到約束,使得Logo和花紋不易扭曲變形。
ACGPN首先預測參考圖像的語義布局,然后根據預測的語義布局自適應地確定內容的生成或保存。特別地,ACGPN由三個主要模塊組成,如圖所示。
第一個是語義生成模塊(Semantic Generation Module (SGM)),它使用身體部位和衣服的語義分割來逐步生成暴露的身體部位的蒙版(即,合成的身體部位蒙版)和變形衣服區域的蒙版。與現有技術相反,提出的SGM以兩階段的方式生成語義蒙版,以首先生成身體部位并逐步合成服裝蒙版,這使得參考圖像中的原始服裝形狀對于網絡完全不可知。
第二部分是衣服變形模塊(Clothes Warping Module (CWM)),該模塊用于根據生成的語義布局對衣服進行變形操作。除了基于薄板樣條的方法以外,還對變形優化目標引入了二階差分約束,以使變形過程更加穩定,尤其是對于質地復雜的衣服。
最后,內容融合模塊(Content Fusion Module (CFM))整合了來自合成的人體部位蒙版,變形的服裝圖像和原始人體部位圖像的信息,以自適應地確定合成圖像中不同人體部位的生成或保存。
二階差分約束
在Clothes Warping Module里面,該文章使用Spatial Transformation Network (STN) 利用薄板樣條插值算法(TPS)對目標衣服進行變形,以保留衣服的紋理細節。但是,僅僅使用現有結構不足以保留精確的紋理細節,尤其是面對復雜姿勢、復雜衣服花紋的時候,更容易出現不匹配的情況。為了解決這一問題,該文章引入一種二階差分約束,對TPS變換中的網格點進行控制。
從圖中我們可以看出沒有該文章的約束,衣服雖然在整體形狀上沒有差異,但是內部花樣會產生較大扭曲。約束的公式為:
表示約束的Loss,
和
是權重超參數。p(x,y) 表示一個特定的采樣控制格點, p0(x0,y0),p1(x1,y1),p2(x2,y2),p3(x3,y3) 分別表示p(x,y)周圍的上下左右四個點。
表示兩個點之間的斜率。通過這個約束可以引入仿射變換的兩個性質,共線性和對應線段比例相同。從而減少過度的扭曲變形的發生。并且為了防止在求取斜率中會出現的除零錯誤,使用乘積形式:
形變Loss此處以L2表示,它是形變后的衣服與其ground-truth之間的1-范數距離
,
是形變后的衣服,
是其ground-truth。
最后的Loss即為:
其中表示總的形變Loss。
數據集:VITON Dataset
VITON在Zalando服裝網站(www.zalando.de)搜集的數據集。它包含大約19,000個圖像對,每個圖像對都包括一個正面的女性圖像和一個上衣圖像。 刪除無效的圖像對后,它會產生16,253個配對,并進一步分為訓練組14,221對和測試組2,032對。
實驗結果
實驗 實驗都是在VITON數據集上進行,并且根據姿勢的復雜程度可以分為Easy,Medium,Hard三個等級。 Easy: 手放兩側,身體向前; Medium: 身體會發生扭曲,肢體與身體輕微遮擋; Hard: 肢體與身體有嚴重遮擋。 該文章一共從兩個方面證明所提方法,質量性實驗:比較虛擬換裝結果,該文章提出的方法可以更有效地降低偽影提高真實度,并且能更好的保留衣服的紋理細節,達到照片級別的換裝效果;量化指標:通過SSIM和IS以及用戶調查等指標,從另外一個方面證明ACGPN算法的優越性。
傳送門
ACGPN代碼目前已經開源,歡迎各位同學使用和交流。
論文地址:https://arxiv.org/abs/2003.05863
源碼地址:https://github.com/switchablenorms/DeepFashion_Try_On
References
[1] Bochao Wang, Huabin Zheng, Xiaodan Liang, Yimin Chen, Liang Lin, and Meng Yang. Toward characteristic preserving image-based virtual try-on network. In ECCV(13), volume 11217 of Lecture Notes in Computer Science, pages 607–623. Springer, 2018.
[2] Xintong Han, Zuxuan Wu, Zhe Wu, Ruichi Yu, and Larry S. Davis. VITON: an image-based virtual try-on network. In CVPR, pages 7543–7552. IEEE Computer Society, 2018.
[3] Ruiyun Yu, Xiaoqi Wang, and Xiaohui Xie. Vtnfp: An image-based virtual try-on network with body and clothing feature preservation. In The IEEE International Conferenceon Computer Vision (ICCV), October 2019.