論文閱讀-人臉生成_StyleGAN
本文優先發布在我的個人部落格:oukohou。wang。
部落格同時提供大量非技術類博文,敬請訪問。
Paper : A Style-Based Generator Architecture for Generative Adversarial Networks
Code : StyleGAN — Official TensorFlow Implementation
Data : The FFHQ dataset
StyleGAN,提出了一個新的 generator architecture,號稱能夠控制所生成影象的高層級屬性(high-level attributes),如 髮型、雀斑等;並且生成的影象在一些評價標準上得分更好;同時隨論文開源了一個高質量資料集:FFHQ, 包含 7W 張
高畫質人臉照。7W 張啊朋友們,簡直就是寶藏啊~
1。 Style-based generator
開門見山,直說論文所提出的 style-based generator。不同於常見的直接把 latent code 輸入給 generator 的輸入層的做法,這篇論文摒棄了輸入層, 轉而添加了一個非線性對映網路:
,如下圖:
圖中,
Z
和
W
的維度都是512維,
A
是一個仿射變換(Affine transform),
B
是每個channel的高斯噪聲的係數,而
AdaIN
則是:
圖中,
則是
w
經過
A
變換之後得到的
對的個數與每一層feature map的channel數相同。
好了,總結一下,說的這麼玄乎,其實就是把輸入
z
用了8層全連線層做了個非線性變換,得到512維的
w
,然後再用個仿射變換
A
得到每一層normalization 所需的
scale
和
shift
,也就是
,在這之前還有個高斯噪聲輸入。如此而已。
然後作者認為,因為每一個卷積層都被歸一化,並且經過了
的
scale
、
shift
,所以generator所生成的圖片的style就是受
來控制的,即所謂
style-based generator
。而且因為每一層都會有歸一化,所以這些操作只能影響最終的結果一部分。
2。 Style mixing
為進一步促使這些
style
來區域性化其控制效果,作者又採用了
mixing regularization
。其實也很簡單,作者的style-based generator不是有個 8層卷積的非線性變換麼,這下提前計算兩個影象的變換結果
,然後在生成過程中隨機取
或者
的值進行操作。結果如下圖:
然後作者說這些不同的styles控制了不同的有意義的high-level attributes。
個人感覺,這些styles確實對結果有影響,但要說不同的style控制不同的屬性,未免有點牽強。不過是從結果強推結論罷了。
3。 Stochastic variation
作者說,人有很多隨機屬性,例如頭髮、鬍鬚、雀斑等,所以一個好的generator自然也要能夠實現stochastic variation。
而作者認為,傳統的generator的輸入就只有輸入層,所以generator自身必須尋找一種生成偽隨機數的方式,而這會消耗網路的
capacity
,並且很難隱藏生成的 訊號的週期性。
而這時,作者的高斯噪聲輸入
B
就派上了用場了。如下圖:
4。 Separation of global effects from stochasticity
然後就是作者聲稱的,其style
A
和高斯噪聲
B
能夠分別控制生成影象的不同level:
A
控制全域性屬性,如姿態、身份等,而
B
控制一些相對次要的 隨機變數,如不同的髮型、鬍鬚分佈等等。
其實這也不難理解,觀察generator結構中,如圖,再放一次:
A
的作用是對所有的feature map進行scale和shift,自然影響結果也是全域性性的; 而
B
只是加到了每層的畫素上,緊接著就被
AdaIN
給歸一化了……自然只能影響很小一部分,而在人臉生成這個task上,這個很小一部分恰巧表現為頭髮、鬍鬚、雀斑等的分佈而已。
5。 Experiments
然後就是一些對比試驗了,大同小異,乏善可陳,直接放大家喜聞樂見的圖片吧:
6。 End
時隔將近一個月,終於又更新了一篇啦~~
開心~~
完結撒花~~
微信公眾號:璇珠雜俎(也可搜尋oukohou),提供本站優質非技術博文~~
regards。
oukohou|璇珠雜俎。
上一篇:資料分析之機器學習入門
下一篇:心如明鏡堅定前行