讓照片動起來

Darren Wang
Aug 28 · 9 min read

Few-Shot Adversarial Learning of Realistic Neural Talking Head Models

Photo by Eric TERRADE on Unsplash

當漫遊在美術館的時候,大家都只是在靜靜地觀賞名人的作品 。但如果能看到圖畫裡的人物會動是多麽讓人振奮的事!就在今年的5月20號,由Samsung團隊提出的paper就能完成像哈利波特裡才會出現裡的情節,太不可思議了啊。

近年來,很多影片生成都是採用puppeteering的方式進行生成,例如透過追蹤骨架,讓原本不會跳舞的人都變成舞神,如同木偶般被操縱。本篇論文亦是用landmark,就是fig 1.裡用彩線輪廓去控制source圖,來達到圖片會動的效果。

fig 1. 只要一張source圖,source圖就能根據target圖和landmark來當做變化的目標

網路架構

fig 2. talking head的網路架構

我們來一一分析網路架構吧!!!

— 符號表示 —

x_i[t] : 取第i個影片的第t個frame

y_i[t] : 取第i個影片的第t個影格之landmark

x_hat_i[t] : generator經由y_i[t]的輸入得到新的圖

ϕ : embedder network的參數

e_hat_i : 第i個影片經過embedder後輸出的平均向量

Ρ : project 矩陣 ,是可以訓練的

Ψ_hat_i : generator的參數,Ψ_hat_i = Ρ.e_hat_i

Ψ : generator的參數

θ : discriminator的參數

W : 一個可以train的矩陣,其訓練目標為columns存放每個影片的vector

W_i : 取出第i個column vector

L_DSC : discriminator loss

L_ADV : 對抗的loss

L_FM : discriminator 前幾層輸出的loss

L_CNT : content loss

L_MCH : e_hat_i和W_i的L1_loss

D : x_hat_i[t] 和 W_i算出的分數

架構分析

作者把訓練分成兩個部分,一個是meta-learning stage,另一個是fine-tuning stage。

通常在meta-learning stage訓練完後就可以生成圖,但會有不可識別身份的缺陷,所以根據作者敘述,再經過fine-tuning stage就可以改善這些gap。

meta-learning stage

  • Embedder
fig 3. embedder

首先我們先把重點放到embedder上,我們會用一段video來當作資料餵入網路,但當然不是整個影片,而是要把影片拆成很多影格(frame)及其對應的landmark餵入,稱之為sequence_i,經過embedder後取平均會得到該影片的embedded vector,來代表sequence_i的主要特徵為e_hat_i。

  • Generator
fig 4. generator

Generator network的參數可以拆分成2個部分,Ψ_hat_i和Ψ,Ψ_hat_i會經由e_hat_i和Ρ的矩陣乘積得來,其Ρ是可以訓練的。

將Ψ_hat_i丟到adaIN裡,adaIN 通常會設計在Generator的後半段。

adaIN全名叫 adaptive instance normalization,其主要目的是可以修改global information,這裡就先不再贅述。

generator會根據landmark y_i[t]產生一張圖x_hat_i[t],起初產生的圖一定很差,所以一定要有一個目標讓網路去更新,其目標就是x_i[t],其loss我們這邊就叫content loss,記做L_CNT。論文採用VGG19和VGGFace算L_CNT。

VGG19和VGGFace都是用train好的權重,將x_hat_i[t]和x_i[t]分別餵進這兩個網路,並用L1 loss算,其結果會如下:

fig 5.content loss

L_CNT =

L1_loss ( VGG19(x_hat_i[t]) , VGG19(x_i[t] ) ) +

L1_loss ( VGGFace(x_hat_i[t]) , VGGFace(x_i[t]) )

注意*1:每項loss前可以乘上一個weight

注意*2:VGG19會用Conv1,6,11,20,29結果concat算L1_loss,VGGFace則是用Conv1,6,11,18,25結果concat算L1_loss

  • Discriminator
fig 6.算出分數r,越大越好

生成圖x_hat_i[t] , 真圖x_i[t] 經過discriminator後會得到一個向量V,V會和W_i去做運算得到一個分數r,參考下列公式,w_0和b也是訓練參數,但sequence_i丟入網路後所更新到的參數只會影響W_i(W第i個column,其他column不會影響到),而w_0和b則是不同的sequence丟到網路都會更新 :

我們主要就是要讓V和W_i的運算結果越高越好(loss則前面要加負號),所以L_ADV為 :

L_FM : 生成圖x_hat_i[t]在discriminator前幾層的輸出 和 真圖x_i[t]在discriminator前面幾層輸出之L1_loss加總。

discriminator loss記做L_DSC :

在訓練的時候,我們會把生成圖x_hat_i[t]和landmark y_i[t] 及真圖x_i[t]和y_i[t]雙雙丟到discriminator裡,希望前者pair的分數會小於-1,後者pair的分數會大於1。

另外還會算一個L_MCH :

*個人覺得這個loss可有可無,就算沒有也是可以更新所有參數,此篇論文用L_MCH只是要讓結果更robust。

L_MCH = L1_loss ( W_i , e_hat_i)

主要是希望這兩個向量越接近越好,這兩個向量目標都是對第i個影片算出特徵向量,只是一個是透過embedder,另一個是透過discriminator。

— 訓練流程 —

The training proceeds by alternating updates of the embedder and the generator that minimize the losses L_CNT , L_ADV and L_MCH with the updates of the discriminator that minimize the loss L_DSC

原文之意是 L_CNT , L_ADV , L_MCH 和 L_DSC交替更新

— total loss 做個總結—

L_total = L_CNT + L_ADV + L_MCH

L_ADV = -D + L_FM

L_CNT會更新Generator , Embeder , P矩陣

L_ADV會更新所有網路參數(包括所有網路及P , W , w_0 , b)

L_MCH會更新Embeder和W

L_DSC會更新所有網路參數(和L_ADV一樣,但更新的目標不一樣)

fine-tuning stage

此階段可有可無,但經過這個階段,會讓蒙娜麗莎的顏藝更為逼真。

首先,你可以照一個你想讓它動的圖片,例如蒙娜麗莎的微笑,可以是一張也可以是多張,多張佳,但偏偏蒙娜麗莎的微笑只有一張,其他表情就沒有了,所以只能勉為其難就用一張

這裡的T就等於1。

Ψ_plum = P.e_hat_NEW

landmark y傳到已訓練好的generator,P亦是訓練好的project matrix

Ψ_plum可以當作微調蒙娜麗莎的參數

而Ψ是在meta-learning stage訓練的參數

所以generator在此階段會調整Ψ_plum和Ψ,因為有Ψ_plum,讓generator更新的時候會考慮到蒙娜麗莎的特徵,產生的圖會比較像蒙娜麗莎。

另外,此階段不用考慮W,因為蒙娜麗莎的圖片絕對不會出現在W column裡,但要怎麼算D呢(分數)。要算D會需要用到W column,所以

變成

我們用w_plum來取代原本的W_i+w_0,w_plum初始化則是e_hat_New+w_0,這點其實蠻直觀的,其實e和W_i本來就是要算sequence_i的特徵。

也因為沒有W,此階段也不用算L_MCH

其餘都跟meta-learning stage差不多。


實驗結果

下圖是實驗結果,FF(feed-forward model)是只訓練150 epochs且沒有算L_MCH,且也沒有進入fine-tuning stage,而FT model(原文沒寫是啥的縮寫),只訓練75 epochs,但有算L_MCH。

fig 7.實驗結果

以視覺上來看,FF看起來很真,但會有那麼一點點不像Ground truth,而FT經過fine-tuning stage後就比較接近Ground truth。

— —

reference

[1] Few-Shot Adversarial Learning of Realistic Neural Talking Head Models

Taiwan AI Academy

news, tech reviews and supplemental materials

Darren Wang

Written by

Taiwan AI Academy

news, tech reviews and supplemental materials

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade