眨眼算什么,让蒙娜丽莎像你一样唠上嗑才算硬核
第一次寫文章還把蒙娜麗莎名字寫錯(cuò)了,原諒四川人我N、L不分,蒙娜麗莎表示有很多話要說。這不,三星莫斯科AI中心和Skolkovo 科學(xué)技術(shù)研究所(DeepWarp也是他們的作品)在19年5月份就發(fā)表了一篇論文,文章中提出的talking head模型,讓蒙娜麗莎說上了話,讓瑪麗蓮夢露笑開了眼。
(話癆式蒙娜麗莎)
像這類換臉的技術(shù)有很多,比如被玩壞了的deepfake,最新的FaceShifter(和Face X-Ray簡直上演了換臉?biāo)惴ǖ拿c盾),以及只遷移表情的face2face和其升級(jí)版可以完成上身運(yùn)動(dòng)和頭部運(yùn)動(dòng)遷移的HeadOn。但是這些方法都需要大量的數(shù)據(jù)(應(yīng)該是A轉(zhuǎn)B,A和B都需要一定量的數(shù)據(jù)),且對(duì)計(jì)算資源要求高。而該論文的模型只需要少量樣本(few-shot),甚至只需要一張圖像(one-shot),比如:蒙娜麗莎,就可以把她的臉、表情、頭部動(dòng)作按照你給的說話視頻動(dòng)起來了。
相關(guān)資源
論文:Few-Shot Adversarial Learning of Realistic Neural Talking Head Models
復(fù)現(xiàn)代碼:https://github.com/vincent-thevenin/Realistic-Neural-Talking-Head-Models
論文筆記
作者首先采用了一個(gè)元學(xué)習(xí)(meta-learning)的架構(gòu),在大量不同外表、不同談話表情的說話人視頻數(shù)據(jù)上進(jìn)行預(yù)訓(xùn)練(embedding)。在預(yù)訓(xùn)練過程中,同時(shí)利用少量的對(duì)應(yīng)視頻幀人頭圖像(同一個(gè)人)和視頻的embedding信息完成關(guān)鍵點(diǎn)到真實(shí)圖像的生成,元學(xué)習(xí)的主要目的是通過GAN實(shí)現(xiàn)人臉關(guān)鍵點(diǎn)(Landmarks)到人臉的生成過程;然后利用元學(xué)習(xí)得到的高質(zhì)量生成器和判別器重新在新的人頭數(shù)據(jù)集上(可以同一人像也可以不同人像)進(jìn)行對(duì)抗學(xué)習(xí),其實(shí)就是一個(gè)微調(diào)(fine-tuning)或者在線學(xué)習(xí)的過程。
(論文公開的視頻)
01
元學(xué)習(xí)
元學(xué)習(xí)階段包含三個(gè)網(wǎng)絡(luò):嵌入網(wǎng)絡(luò)(embedder)、生成網(wǎng)絡(luò)(generator)和判別網(wǎng)絡(luò)(discriminator),首先,定義一些如下數(shù)學(xué)符號(hào):
:視頻視頻序列數(shù)量;
?:第i個(gè)視頻序列;
?:第i個(gè)視頻的第t幀;?
:第i個(gè)視頻的第t幀對(duì)應(yīng)的關(guān)鍵點(diǎn)結(jié)果(通過《How far are we from solving the 2d & 3d face alignment problem》得到);
(模型結(jié)構(gòu))
嵌入網(wǎng)絡(luò)
:輸入視頻幀及對(duì)應(yīng)的關(guān)鍵點(diǎn)結(jié)果,嵌入式網(wǎng)絡(luò)的作用是將該輸入映射為一個(gè)維向量。其中是網(wǎng)絡(luò)可訓(xùn)練參數(shù),通過元學(xué)習(xí)過程進(jìn)行優(yōu)化,因此嵌入向量就包含了特定的視頻幀信息,通過求平均得到視頻的嵌入向量。
具體地,從視頻數(shù)據(jù)集隨機(jī)選取視頻i,并從該視頻隨機(jī)選取第t幀,并在除第t幀外隨機(jī)選取k(k=8)幀s1, s2, . . . , sK,通過對(duì)這K幀經(jīng)過embedder得到的向量求平均,得到的平均向量,作為該視頻的嵌入向量。
問:那么第t幀是拿來干什么用的呢??
答:通過該幀的關(guān)鍵點(diǎn)讓生成網(wǎng)絡(luò)生成該幀人臉圖像。
生成網(wǎng)絡(luò)
ψ:輸入視頻幀關(guān)鍵點(diǎn)定位圖像,以及要轉(zhuǎn)換的視頻嵌入向量,生成對(duì)應(yīng)幀的重建結(jié)果。生成器的作用是要使得生成的圖像和視頻幀視頻幀圖像相似度越大越好。生成網(wǎng)絡(luò)的參數(shù)有兩部分:共性參數(shù)?ψ和特性參數(shù)ψ,在元學(xué)習(xí)過程中,ψ可以直接訓(xùn)練得到,而ψ則需要通過嵌入向量?經(jīng)過MLP預(yù)測得到,即:ψ。
那么,利用關(guān)鍵點(diǎn)和視頻嵌入向量對(duì)第t幀進(jìn)行重建:
嵌入網(wǎng)絡(luò)和生成網(wǎng)絡(luò)的參數(shù)通過以下?lián)p失函數(shù)進(jìn)行優(yōu)化:包含三個(gè)部分:內(nèi)容損失、對(duì)抗損失和匹配損失。
其中,內(nèi)容損失和風(fēng)格遷移的損失類似,通過對(duì)真實(shí)圖像和預(yù)測圖像在VGG19的Conv1,6,11,20,29的激活層特征,以及VGGFace的Conv1,6,11,18,25的激活層特征分別計(jì)算L1距離,并進(jìn)一步加權(quán)求和而來。
對(duì)抗損失:生成器生成的圖像應(yīng)該盡可能“騙”過判別器,使得判別器輸出的真實(shí)性得分最大化。
對(duì)抗損失中,作者還借鑒了pix2pixHD的特征匹配損失,即從判別器的中間層提取特征,學(xué)習(xí)匹配真實(shí)圖像和生成圖像的這些中間表示,具有穩(wěn)定訓(xùn)練的作用。
嵌入向量匹配損失:對(duì)應(yīng)視頻嵌入向量的距離,其中一個(gè)嵌入向量來自于嵌入網(wǎng)絡(luò),另一個(gè)嵌入向量,是判別網(wǎng)絡(luò)權(quán)重的一部分,借鑒自《cGANs with Projection Discriminat》的思想。
判別網(wǎng)絡(luò)
:判別網(wǎng)絡(luò)的輸入包括:第t幀的圖像或者生成圖像、對(duì)應(yīng)的關(guān)鍵點(diǎn)結(jié)果,以及視頻序列的索引i,為卷積神經(jīng)網(wǎng)絡(luò)參數(shù),視頻嵌入矩陣,第i列表示第i個(gè)視頻嵌入向量,以及和都是判別網(wǎng)絡(luò)的可訓(xùn)練參數(shù)。通過卷積網(wǎng)絡(luò),判別器將圖像和關(guān)鍵點(diǎn)結(jié)果映射為一個(gè)N維向量,基于這個(gè)結(jié)果和、和線性運(yùn)算,得到一個(gè)得分,表示輸入是否為第t幀的真實(shí)圖像以及是否和輸入的關(guān)鍵點(diǎn)結(jié)果相匹配 。
在更新嵌入網(wǎng)絡(luò)和生成網(wǎng)絡(luò)時(shí),判別網(wǎng)絡(luò)通過如下的hinge loss更新其權(quán)重,損失函數(shù)形式:
02
少樣本微調(diào)
在元學(xué)習(xí)已收斂的模型基礎(chǔ)上,通過少量樣本進(jìn)行微調(diào),即只有一個(gè)視頻序列(要模仿的視頻)和少量幀(需要轉(zhuǎn)換的圖像)的簡單版元學(xué)習(xí),選取T張同一視頻的圖像幀x(1), x(2), . . . , x(T),以及對(duì)應(yīng)的關(guān)鍵點(diǎn)結(jié)果圖像 y(1), y(2), . . . , y(T),T大小不同于元學(xué)習(xí)的K,T=1時(shí)為one-shot 學(xué)習(xí)。
通過嵌入網(wǎng)絡(luò)得到輸入T幀圖像的嵌入向量:
繼而完全可以通過生成器對(duì)關(guān)鍵點(diǎn)圖像生成類似于這T幀的圖像,但是存在個(gè)體差異:看起來像但是真實(shí)度不夠,這個(gè)差異可以通過接下來的微調(diào)有效地解決。
微調(diào)生成網(wǎng)絡(luò)
ψψ:同預(yù)訓(xùn)練一致,生成器對(duì)輸入的關(guān)鍵點(diǎn)圖像重建人臉圖像,訓(xùn)練參數(shù)也包含兩部分:ψ和ψ',ψ'通過和預(yù)訓(xùn)練的投影矩陣P進(jìn)行初始化,后續(xù)直接更新ψ',然后更新ψ′,使得G更快適應(yīng)于另一個(gè)域(測試集),初始化:
ψ
損失函數(shù):
微調(diào)判別網(wǎng)絡(luò)
:卷積層參數(shù)以及偏置均由預(yù)訓(xùn)練參數(shù)初始化,所以微調(diào)后的判別器形式如下:
那么該如何初始化呢,并不能像預(yù)訓(xùn)練那樣采用,因?yàn)楸硎居?xùn)練集第i個(gè)視頻的嵌入向量。這時(shí)候就體現(xiàn)出它的作用了,因?yàn)榭梢允箉與更相似,所以可以初始化為:
損失函數(shù):
03
實(shí)驗(yàn)結(jié)果
作者在兩個(gè)數(shù)據(jù)集:VoxCeleb1和VoxCeleb2進(jìn)行訓(xùn)練和驗(yàn)證,并通過FID(Frechet Inception Distance)、SSIM(結(jié)構(gòu)相似度)、CSIM(余弦相似度)以及用戶調(diào)研進(jìn)行定量和定性地評(píng)估。
左邊的T表表示測試所用圖像數(shù)量,可以看出T=1也可以生成比較逼真的圖像;T越大時(shí),生成效果越好。
(T為不同值時(shí)在兩個(gè)數(shù)據(jù)集的生成結(jié)果以及不同方法的對(duì)比)
作者還在靜態(tài)畫數(shù)據(jù)上通過one-shot學(xué)習(xí),生成動(dòng)態(tài)的視頻結(jié)果,其中輸入的的關(guān)鍵點(diǎn)數(shù)據(jù)來自于VoxCeleb2。不過作者使用了余弦相似度對(duì)視頻進(jìn)行了排序,找出了相似的臉型的視頻作為被模仿的輸入。(但是這怎么微調(diào)呢,沒有g(shù)round truth啊?)
(單張靜態(tài)畫的預(yù)測結(jié)果)
拿code搞事情
搞不了事情了,以后添置臺(tái)設(shè)備再玩兒吧
長按二維碼關(guān)注我們
有趣的靈魂在等你
留言請(qǐng)摁
總結(jié)
以上是生活随笔為你收集整理的眨眼算什么,让蒙娜丽莎像你一样唠上嗑才算硬核的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 读研打比赛领奖金免费旅游,国内算法竞赛平
- 下一篇: 论文创新,可以看看这几篇去雨文章是怎么做