Pastiche Master: Exemplar-Based High-Resolution Portrait Style Transfer
cvpr2022 code and paper
背景
現(xiàn)有的stylegan finetuning的人物風(fēng)格化方法,基本上是將source domain變換到target domain,這要求target domain至少上百張質(zhì)量較高的樣本,并且只能實(shí)現(xiàn)一種風(fēng)格化。
DualStyleGAN在stylegan-ffhq的基礎(chǔ)上,同樣是finetuning,但是增加了condition,引入dual style path以及有效的監(jiān)督,使得可以利用風(fēng)格模板,生成符合模板風(fēng)格的人臉圖像。
Method
DualStyleGAN整體分成2個(gè)大的部分:
- 原始的stylegan,其中mapping network成為intrinsic style path,指的是真實(shí)人臉的風(fēng)格
- Extrinsic style path:控制風(fēng)格
除此之外,還有一個(gè)Encoder,用于提取指定的真實(shí)或者風(fēng)格圖像的code ∈R18×512\in R^{18 \times 512}∈R18×512,
extrinsic style path還有ModRes,Ts, Tc這3類模塊,每個(gè)模塊的作用后面再說。
原始的stylegan在整個(gè)訓(xùn)練過程中都是fixed,存在參數(shù)更新優(yōu)化的只有橘色的部分。
intrinsic style path接受3種輸入:
- 正太分布隨機(jī)采樣的z
- 風(fēng)格圖用E提取出來的latent code zi+z_i^+zi+?
- 真實(shí)圖用E提取出來的latent code z+z^+z+
Extrinsic style path有兩種輸入:
- 風(fēng)格圖用E提取出來的latent code ze+z_e^+ze+?,捕捉語義信息,比如風(fēng)格圖的頭發(fā)顏色,臉型等
- 從高斯噪聲中采樣的z,通過N映射得到的code
生成圖像的過程如下:
G(E(I),E(S),w)G(z1,N(z2),w)G(E(I), E(S), w) \\ G(z1, N(z2), w)G(E(I),E(S),w)G(z1,N(z2),w)
w∈R18w \in R^{18}w∈R18是控制兩路style的混合權(quán)重,默認(rèn)為1,當(dāng)w為0是,模型就退化為原始的stylegan ffhq。
dualstylegan的Extrinsic style path得到code有兩個(gè):
- structure code
- color code
color作用于8-18層,用于控制細(xì)粒度的風(fēng)格
structure code組用于前7層,控制shape等粗粒度的風(fēng)格。
color transfer
mapping network得到的color code,經(jīng)過一個(gè)TcT_cTc?模塊(參與訓(xùn)練的FC層),得到的均值方差會(huì)和stylegan原始的intrinsic style code按照比例混合。
structure control
在粗分辨率層(1-7),使用modulative residual blocks去調(diào)整stylegan的卷積特征,本質(zhì)上是一個(gè)帶有adain的ResBlock。這里的設(shè)計(jì)思想是從無監(jiān)督finetuning式風(fēng)格化方法中總結(jié)得到。
toonify的成功,是在target domain上的finetuning。但在finetuning前后,兩種模型共享隱空間。繼而可以推測(cè)FT前的特征和FT后的特征其實(shí)是相關(guān)。而且FT之后,模型權(quán)重也改變了。因此作者認(rèn)為,可以通過讓特征變化來模擬在FT過程中的權(quán)重變化。
因此作者使用了ResBlock,模擬FT之前的特征變化,這樣既可以在訓(xùn)練初期,不改變特征空間,使得預(yù)訓(xùn)練模型有效;還能在訓(xùn)練過程中讓domain遷移。
訓(xùn)練方式
作者使用了3階段訓(xùn)練法,使用課程學(xué)習(xí)逐漸加大訓(xùn)練的難度,讓pretrain模型更加穩(wěn)定完成domain遷移。
stage 1: color transfer on source domain
先將modelRes的權(quán)重設(shè)置為0,這樣殘差為0,其實(shí)不改變?cè)瓉淼奶卣?#xff0c;不影響預(yù)訓(xùn)練模型的FT穩(wěn)定性。TcT_cTc? 的權(quán)重初始化為單位陣,所以不改變?cè)瓉淼腇FHQ的latent code。這樣,第一階段的訓(xùn)練,其實(shí)和帶有style mixing的標(biāo)準(zhǔn)訓(xùn)練沒有區(qū)別。
從上圖可以看出,第一階段的FT結(jié)果,仍保留了原圖的shape,但是顏色等細(xì)節(jié)和風(fēng)格圖一致。
stage 2:structure transfer on source domain
這個(gè)stage目的是讓dualstylegan學(xué)習(xí)到風(fēng)格圖的中級(jí)風(fēng)格。
隨機(jī)采樣z1z1z1和z2z2z2,其中z~2\tilde{z}_2z~2?是從{z2,E(g(z2)}\{z_2, E(g(z_2)\}{z2?,E(g(z2?)}采樣,小ggg是stylegan-ffhq(w=0);zl+z_l^+zl+?是z1,z2z1,z2z1,z2的stylemixing,lll是stylemixing的起始層數(shù)。lll會(huì)逐漸從7變成5。
min?Gmax?DλadvLadv+λperc?Lperc?(G(z1,z~2,1),g(zl+))\min _{G} \max _{D} \lambda_{\mathrm{adv}} \mathcal{L}_{\mathrm{adv}}+\lambda_{\text {perc }} \mathcal{L}_{\text {perc }}\left(G\left(\mathbf{z}_{1}, \tilde{\mathbf{z}}_{2}, \mathbf{1}\right), g\left(\mathbf{z}_{l}^{+}\right)\right) Gmin?Dmax?λadv?Ladv?+λperc??Lperc??(G(z1?,z~2?,1),g(zl+?))
pS:如果沒有這個(gè)perception loss,又會(huì)如何呢?這個(gè)監(jiān)督有點(diǎn)雞肋的感覺,強(qiáng)行加個(gè)監(jiān)督。
PS:而且為啥要用g(zl+)g\left(\mathbf{z}_{l}^{+}\right)g(zl+?)作為vgg loss的gt。因?yàn)間是原始ffhq的生成器,這是要讓模型再次生成真實(shí)人臉嗎?
stage3:style transfer on target domain
前兩個(gè)stage都算是在source domain的遷移,他們的效果仍然保留了真實(shí)的特征,只是顏色等微觀屬性傾向于是風(fēng)格圖。stage3就要將模型想domain遷移了。
首先,用風(fēng)格圖S的兩路style code重構(gòu)S:
Lperc?(G(zi+,ze+,1),S)\mathcal{L}_{\text {perc }}\left(G\left(\mathbf{z}_{i}^{+}, \mathbf{z}_{e}^{+}, \mathbf{1}\right), S\right) Lperc??(G(zi+?,ze+?,1),S)
然后,使用style loss,包含content loss和feature matching loss,其中content loss就是ID loss和modelRes正則的和
Lsty?=λCXLCX(G(z,ze+,1),S)+λFMLFM(G(z,ze+,1),S)\mathcal{L}_{\text {sty }}=\lambda_{\mathrm{CX}} \mathcal{L}_{\mathrm{CX}}\left(G\left(\mathbf{z}, \mathbf{z}_{e}^{+}, \mathbf{1}\right), S\right)+\lambda_{\mathrm{FM}} \mathcal{L}_{\mathrm{FM}}\left(G\left(\mathbf{z}, \mathbf{z}_{e}^{+}, \mathbf{1}\right), S\right) Lsty??=λCX?LCX?(G(z,ze+?,1),S)+λFM?LFM?(G(z,ze+?,1),S)
Lcon=λIDLID(G(z,ze+,1),g(z))+λreg∥W∥2\mathcal{L}_{\mathrm{con}}=\lambda_{\mathrm{ID}} \mathcal{L}_{\mathrm{ID}}\left(G\left(\mathbf{z}, \mathbf{z}_{e}^{+}, \mathbf{1}\right), g(\mathbf{z})\right)+\lambda_{\mathrm{reg}}\|W\|_{2} Lcon?=λID?LID?(G(z,ze+?,1),g(z))+λreg?∥W∥2?
這篇論文還有細(xì)節(jié)需要深究,文中提到的Destylization的作用、多個(gè)z的定義,以及反復(fù)使用原始的ffhq的g,為什么這么設(shè)計(jì),其實(shí)筆者也沒有搞清楚。
其他
總結(jié)
以上是生活随笔為你收集整理的Pastiche Master: Exemplar-Based High-Resolution Portrait Style Transfer的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端开发-后台信息管理页面的开发流程
- 下一篇: SSM框架终极篇——Spring、Spr