1. 程式人生 > 資訊 >Adobe 把 GAN 搞成了縫合怪,憑空 P 出一張 1024 解析度全身人像

Adobe 把 GAN 搞成了縫合怪,憑空 P 出一張 1024 解析度全身人像

換臉見多了,換身材的見過嗎?給定一張臉,就能自動換一個下半身,服飾、身材、膚色都毫無 PS 痕跡:

核心技術當然還是我們熟悉的 GAN,但不同的是,現在身體的每個部分都能被 PS 了。

從臉,膚色、服飾、頭髮等身體各個部位,甚至到肢體動作,都能被隨意設計和組合,最終“縫”成一張 1024 × 1024 解析度的全身照片:

而且這張“縫合怪”還完全沒有拼接行為帶來的陰影和邊界:

▲上方的面部由新方法生成,陰影邊界很少

怎麼做到的?把用於生成人體不同部位的 GAN“拼”起來。

這就是 Adobe 團隊最新提出的一種結合多個預訓練的 GAN 進行影象生成的新方法,論文目前已被 CVPR 2022 接收:

接下來就一起來看看他們到底是如何實現的。

用 PS 的方式 GAN 出個人體

如我們開頭所說,這是一種將多個 GAN 拼接起來使用的方法,研究團隊將其稱之為 InsetGAN

共分為兩類 GAN:

  • 全身 GAN(Full-Body GAN),基於中等質量的資料進行訓練並生成一個人體。

  • 部分 GAN,其中包含了多個針對臉部、手、腳等特定部位進行訓練的 GAN。

這兩類 GAN 的合作方式類似於 PS:全身 GAN 是一張已經有打底線稿的畫布,而部分 GAN 則是一張一張疊在上面的圖層。

但不同邊界的“圖層”在疊到畫布上時,一定會有出現對齊問題。

比如,將一張臉新增到身體上時,在膚色的一致性、衣服邊界和頭髮披散的自然性上可能出現細節的扭曲和丟失,或出現偽影(Artifacts):

如何才能更好地協調多個 GAN,讓它們產生一致的畫素呢?

研究團隊設計了這樣一種架構:

他們首先引入了一個邊界框檢測器,檢測部分 GAN 生成的特定區域在底層畫布,也就是全身 GAN 生成的區域中的位置,經過裁剪後再將特定區域嵌入。

這一過程相當於找到了兩個區域之間的一種隨機潛碼(latent code),使得所選區域的邊界能夠和嵌入區域相匹配,以實現無縫合成。

同時,他們還會對這兩個區域進行下采樣(Downsample),再次增加影象畫素內容的一致性。

基於這種方法,InsetGAN 可以在訓練後生成多張完整人像,同時膚色、頭髮和相關姿勢都能作出相應調整:

研究團隊也與之前的生成全身人像的方法 CoModGAN 做了比較,都是基於左側的人體進行面部的替換,顯然,InsetGAN 生成的面部更加自然:

▲上為 InsetGAN,下為 CoModGAN

作者介紹

論文共有 6 位作者,5 位來自 Adobe 研究院,還有 1 位來自阿卜杜拉國王科技大學(KAUST)。

其中有 Adobe 的首席科學家 Jingwan Lu,是 PS 2020 中智慧肖像、面板平滑、著色和神經風格化等過濾器的主要演算法貢獻者,也是 RealBrush 筆刷合成器的開發者。

她目前領導的團隊主要致力於利用大資料和生成性 AI(比如 GAN)來進行視覺內容的創造。

所以,準備好足不出戶換身材了嗎?(手動狗頭)

論文地址:

https://arxiv.org/abs/2203.07293

參考連結:

[1]https://www.youtube.com/watch?v=YKFYEt5hvOo

[2]http://afruehstueck.github.io/insetgan/