終于有人把各路StyleGAN做了個大匯總
本文經(jīng)AI新媒體量子位(公眾號ID:QbitAI)授權(quán)轉(zhuǎn)載,轉(zhuǎn)載請聯(lián)系出處。
StyleGAN在各種圖像處理和編輯任務(wù)上,表現(xiàn)很驚艷。
然而,“干一種活”就得換個體系重新“培訓(xùn)”一次,太麻煩。
終于,有人細細研究了一下,發(fā)現(xiàn):
其實只通過預(yù)訓(xùn)練和潛空間上的一點小操作,就可以讓StyleGAN直接上手各種“活兒”,包括全景圖生成、從單張圖像生成、特征插值、圖像到圖像翻譯等等。
更厲害的是,它在這些“活兒”上的表現(xiàn)還完全不輸每一位單項SOTA選手。
作者順勢做了個全面整理寫成了一篇論文,相關(guān)討論在reddit上直接收獲了700+的熱度:
網(wǎng)友紛紛感嘆:這總結(jié)真的是太酷了!
All You Need:預(yù)訓(xùn)練+一點空間操作
方法都非常簡單,我們一個一個來。
前提:fi∈RB×C×H×W表示StyleGAN第i層的中間特征(intermediate features)。
1、空間操作實現(xiàn)直觀和逼真的圖像
由于StyleGAN是全卷積的,我們可以調(diào)整fi的空間維度,從而在輸出圖像中引起相應(yīng)的空間變化。
用簡單的空間操作(如padding和resize),可以生成更直觀和真實的圖像。
比如下圖通過復(fù)制灌木和樹叢來擴展背景,與導(dǎo)致紋理模糊等瑕疵的原始resize相比,在特征空間中可以保持更真實的紋理。
2、特征插值
對StyleGAN中間層進行拼貼可以實現(xiàn)圖像信息混合,但要拼接的兩張圖差異太大時效果往往不好。
但采用特征插值就沒問題。
具體操作方法:在每個StyleGAN層,分別使用不同的潛噪聲生成fAi和fBi。然后用下面這個公式將它倆進行平滑地混合,然后再傳遞到下一個卷積層進行同樣的操作。
其中α∈ [0, 1]B×C×H×W是一個mask,如果用于水平混合,則mask將從左到右變大。
和對應(yīng)模型的定性和定量比較:
該特征插值法能夠無縫地混合兩幅圖像,而Suzuki等人的結(jié)果存在明顯的偽影。
用戶研究中,與Suzuki等人相比,87.6%的人也更喜歡該方法。
用戶研究包含40人,每人需比較不同方法下的25對圖像。
3、從單個圖像生成
除了在不同圖像之間進行特征插值,我們還可以在單個圖像中應(yīng)用它。
具體操作方法:在一些特征層中,選擇相關(guān)的patches,并將其與其他區(qū)域混合,在空間上進行復(fù)制。使用移位運算符Shift(·):
這和SinGAN的功能相同,不過SinGAN涉及采樣,而該方法只需要手動選擇用于特征插值的patches。
和SinGAN的定性和定量比較:
該方法生成的圖像更加多樣化和真實;SinGAN則未能以“有意義”的方式改變教堂結(jié)構(gòu),并產(chǎn)生不夠真實的云彩和風(fēng)景。
用戶研究中,83.3%的人更喜歡該方法生成的新圖像。
4、改進GAN反演
GAN反演的目的是在W+空間中定位一個樣式碼(style code),通過該樣式碼合成與給定目標(biāo)圖像相似的圖像。
Wulff等人的模型認為,在簡單的非線性變換下,W+空間可以用高斯分布建模。然而,在屬性轉(zhuǎn)移設(shè)置中,需要反轉(zhuǎn)源圖像和參考圖像,效果并不令人滿意。
最近的研究表明,與W+相比,利用σ進行面部操作的性能更好。
但作者發(fā)現(xiàn),沒有任何變換的σ空間也可以建模為高斯分布。
然后在這個空間而不是在GAN反轉(zhuǎn)期間,施加相同的高斯先驗。
效果比較:
該方法在圖像重建和可編輯性方面獲得了顯著改進。
5、圖像到圖像翻譯
得益于上部分σ空間的效果,作者建議在圖像到圖像翻譯時freeze產(chǎn)生σ的仿射變換層(affine transformation layer),這一簡單的變化能夠更好地保留圖像翻譯的語義(注意下圖d中嘴的形狀)。
此外,作者發(fā)現(xiàn):
(1)可以在所有空間維度上使用常數(shù)α來執(zhí)行連續(xù)翻譯;
(2)通過選擇要執(zhí)行特征插值的區(qū)域來執(zhí)行局部圖像翻譯;
(3)以及使用改進的GAN反演在真實人臉上執(zhí)行人臉編輯和翻譯。
這樣獲得的效果也更佳。
6、全景生成
作者通過“編織”兩幅圖像的混合(span)生成全景圖,方法如圖所示:
重復(fù)這個過程可以生成任意長度的全景圖像。
而且該方法不僅限于一次混合兩個圖像、也不限于只在水平方向生成。
一些示例:
7、屬性轉(zhuǎn)移
為了使特征插值能夠更好地用于任意人物姿勢的圖像的屬性轉(zhuǎn)移,作者選擇在源圖像和參考圖像之間執(zhí)行姿勢對齊,具體就是對齊W+空間樣式代碼的前2048個維度。
然后就可以應(yīng)用特征插值將所選特征進行源圖到目標(biāo)圖的轉(zhuǎn)移了。
與現(xiàn)有方法比較:
Collins等人的方法沒有準確地轉(zhuǎn)移細節(jié)屬性,Suzuki等人在姿勢不匹配時產(chǎn)生的圖像不夠真實。
而作者的方法既準確又真實。
用戶根據(jù)真實感和準確性進行選擇的結(jié)果也進一步驗證了該方法的優(yōu)越性。
ps. 此外還可以在任意區(qū)域執(zhí)行轉(zhuǎn)移,比如無縫融合兩邊眼睛明顯不同的兩半臉:
以上就是無需特定架構(gòu)或訓(xùn)練范式、在StyleGAN模型潛空間中執(zhí)行一些操作和微調(diào),就能與其他圖像處理任務(wù)達到同等或更佳性能的具體方法。
你覺得如何?還有什么需要補充的嗎?
論文地址:
https : //arxiv.org/abs/2111.01619
項目地址:
???
https://github.com/mchong6/SOAT??