線上購物被革命!谷歌最新模型AI一鍵試衣,細節不變姿勢隨意換
一鍵換裝,被谷歌給實現了!
這個AI試衣模型TryOnDiffusion,你只要給它一張自己的全身照,和服裝模特的照片,就能知道自己穿上這件衣服之后是什么樣子了。
主打的就是一個真實。所以,是真人版奇跡暖暖吧?

按說,各種換裝的AI早就有不少了,谷歌的這個AI模型究竟有何突破呢?
項目地址:https://tryondiffusion.github.io/
關鍵就在于,他們提出了一種基于擴散的框架,把兩個Parallel-Unet統一了起來。
在以前,這種模型的關鍵挑戰就在于,如何既保留衣服細節,又能將衣服變形,同時還能適應不同主體的姿勢和形狀,讓人感覺不違和。
以前的方法無法同時做到這兩點,要么只能保留衣服細節,但無法處理姿勢和形狀的變化,要么就是可以換姿勢,但服裝細節會缺失。
而TryOnDiffusion因為統一了兩個UNet,就能夠在單個網絡中保留衣服細節,并且對衣服進行重要的姿勢和身體變化。
可以看到,衣服在人物上的變形極其自然,并且衣服的細節也還原得非常到位。
話不多說,讓我們直接看看,谷歌的這個「AI試穿」到底有多厲害!




用AI生成試穿圖像
具體來說,Virtual Try-On(VTO)可以向顧客展示衣服在不同體型和尺寸的真實模特身上的效果。

虛擬服裝試穿中,有許多微妙但對于來說至關重要的細節,比如衣服的垂墜、折疊、緊貼、伸展和起皺的效果。
此前已有的技術,比如geometric warping(幾何變形),可以對服裝圖像進行剪切和粘貼,然后對其進行變形以適配身體的輪廓。
但這些功能,很難讓衣服妥帖地適應身體,并且會存在一些視覺缺陷,比如錯位的褶皺,會讓衣服看起來畸形和不自然。
因此,谷歌的研究者致力于從頭開始生成服裝的每個像素,以生成高質量、逼真的圖像。
他們采用的技術是一種全新的基于Diffusion的AI模型,TryOnDiffusion。
擴散是逐漸向圖像添加額外像素(或「噪聲」),直到它變得無法識別,然后完全消除噪聲,直到原始圖像以完美的質量重建。
像Imagen這樣的文本到圖像模型,就是使用的來自大語言模型LLM的擴散加文本,可以僅根據輸入的文本,就能生成逼真的圖像。

Diffusion是逐漸向圖像添加額外像素(或「噪聲」),直到它變得無法識別,然后再完全消除噪聲,直到原始圖像以完美的質量重建。
在TryOnDiffusion中,不需要使用文字,而是使用一組成對的圖片:一張圖片是衣服(或者穿著衣服的模特),一張圖片是模特。
每張圖片都會被發送到自己的神經網絡(U-net),并通過被稱為「交叉注意力」的過程來相互共享信息,輸出新的穿著這件衣服的模特的逼真圖像。
這種基于圖像的Diffusion和交叉注意力的結合技術,構成了這個AI模型的核心。

VOT功能讓用戶可以在符合自己身材的模特身上渲染展示上衣效果。
海量高質量數據訓練
谷歌為了使VTO功能盡可能提供真實的效果并且真的能幫助用戶挑選衣服,對這個 AI 模型進行了大量的訓練。
但是,谷歌沒有使用大語言模型來訓練它,而是利用了谷歌的購物圖。
這個數據集擁有全世界最全面,同時也是最新的產品、賣家、品牌、評論和庫存數據。
谷歌使用了多對圖像訓練模型,每對圖像由兩種不同姿勢的穿著衣服的模特圖組成。
比如,一個穿著襯衫的人側身站立的圖像和另一個向前站立的圖像。

谷歌專門的擴散模型將圖像輸入到他們自己的神經網絡(U-net)來生成輸出:穿著這件衣服的模特的逼真圖像。
在這對訓練圖像中,模型學習將側身姿勢的襯衫形狀與面朝前姿勢的圖相匹配。
反過來也一樣,直到它可以從各個角度生成該人穿著襯衫的逼真圖像。
為了追求更好的效果,谷歌使用數百萬不同服裝和人物的隨機圖像對多次重復了這個過程。
結果就是我們在文章開頭的圖片呈現出來的效果。
總之,TryOnDiffusion既保留了衣服的細節效果,也適配了新模特的身材和姿勢,谷歌的技術做到了二者兼得,效果相當逼真。



技術細節
在一張展示一個模特的身體的圖片,另一張展示另一個穿著某件衣服的模特的圖片的條件下,TryOnDiffusion的目標是生成一個展示這件服裝在這個人身上可能會呈現的具體的視覺效果。
解決這個問題最關鍵的難點在于,保持服裝細節逼真的同時,將服裝進行適當的變形以適應不同模特之間的姿勢和體型的變化。
先前的方法要么著重于保留服裝細節,但無法有效處理姿勢和形狀的變化。
要么允許根據期望的體型和姿勢呈現出了試穿效果,但缺乏服裝的細節。
谷歌提出了一種基于Diffusion的架構,將兩個UNet(稱為Parallel-UNet)合二為一,谷歌能夠在單個網絡中保留服裝細節并對服裝的試穿效果進行明顯的姿勢和身體變化。
Parallel-UNet的關鍵思想包括:
1)通過交叉注意機制隱式地為服裝制作褶皺;
2)服裝的褶皺和人物的融合作為一個統一的過程,而不是兩個獨立任務的序列。
實驗結果表明,TryOnDiffusion在定性和定量上均達到了最先進的性能水平。
具體的實現方式如下圖所示。

在預處理步驟中,目標人物從人物圖像中被分割出來,創建「無服裝 RGB」圖像,目標服裝從服裝圖像中分割出來,并為人物和服裝圖像計算姿勢。
這些信息輸入被帶入128×128 Parallel-UNet(關鍵步驟)以創建128x128的試穿圖像,該圖像與試穿條件的輸入一起作為輸入進一步發送到256×256 Parallel-UNet中。
再把256×256 Parallel-UNet的輸出內容被發送到標準超分辨率擴散(super resolution diffusion)來創建1024×1024的圖像。
而在上面整個流程中最為重要的128×128 Parallel-UNet的構架和處理過程,如下圖所示。

將與服裝無關的RGB和噪聲圖像輸入頂部的person-UNet中。
由于兩個輸入內容都是按像素對齊的,在 UNet 處理開始時直接沿著通道維度(channel demension)將兩個圖像連接起來。
由于兩個輸入都是按像素對齊的,我們在 UNet 處理開始時直接沿著通道維度將它們連接起來。
將分割后的服裝圖像輸入位于底部的garment-UNet。
服裝的特征通過交叉注意(cross attention)融合到目標圖像之中。
為了保存模型參數,谷歌研究人員在32×32上采樣(Upsampling)之后提前停止了garment-UNet,此時person-UNet中的最終交叉注意力模塊(final cross attention module)已經完成。
人和衣服的姿勢首先被送入線性層以分別計算姿勢嵌入。
然后通過注意力機制將姿勢嵌入融合到person-UNet中。
此外,它們被用在使用FiLM在所有規模上調制兩個UNet的特征。
與主流技術的對比


用戶調查研究:對于每組輸入的圖片,15個普通用戶選從4個備選技術中選擇一個他們認為最好的,或者選擇「無法區分」。TryOnDiffusion的表現明顯超過了其他技術。
下圖從左到右依次是「輸入,TryOnGAN,SDAFN,HR-VITON,谷歌的方法」。


局限性
不過TryOnDiffusion存在一些局限性。
首先,在預處理過程中,如果分割圖和姿勢估計存在錯誤,谷歌的方法可能會出現服裝泄漏的瑕疵。
幸運的是,近年來這方面的準確性已經大大提高,這種情況并不經常發生。
其次,不包括關服裝的RGB來顯示身體的效果并不理想,因為有時它可能只能保留身份的一部分。
例如紋身在這種情況下會不可見,某些的肌肉結構也會不可見。
第三,我們的訓練和測試數據集通常都會具有干凈統一的背景,因此無法確定該方法在更復雜的背景下的表現如何。
第四,我們不能保證服裝在模特身上是否真的合身,只關注試穿的視覺效果。
最后,本研究側重于上半身的服裝,谷歌還沒有對全身試穿效果進行實驗,未來會進一步對全身效果進行研究。






























