論文閱讀:Face Video Generation from a Single Image and Landmark

  • 2020 年 5 月 12 日
  • AI

沒想到,五月的更新拖到了現在 可太懶了最近 想法總是多於行動 就好比理論多於實踐 有知識不會應用還不是等於零。今天還是論文記錄。

論文題目:《Face Video Generation from a Single Image and Landmark》
論文地址://arxiv.org/abs/1904.11521
論文閱讀參考://blog.csdn.net/o0Helloworld0o/article/details/104193621

本篇文章只記錄個人閱讀論文的筆記,具體翻譯等不展開,詳細可見上述的連接。

Background

Task(what to do)
In this paper we are concerned with the challenging problem of producing a full image sequence of a deformable face given only an image and generic facial motions encoded by a set of sparse landmarks.
在本文中,我們關注的挑戰性問題是,僅給出影像和一組稀疏地標編碼的一般面部運動,就可以生成可變形臉部的完整影像序列。
也就是說,可以根據一幅給定的面部影像和一組稀疏的目標面部特徵點去生成一段面部運動的影片,可以在這樣的基礎上在加入音頻等,進行擴展。如下圖所示:

即給定source image s及其landmark l,還有一段target landmark序列 l_1^T=\left [ l_1, l_2, \cdots, l_T \right ],生成的一段video \tilde{f}_1^T=\left [ \tilde{f}_1, \tilde{f}_2, \cdots, \tilde{f}_T \right ]
其中將2D landmark位置解釋為heatmaps影像,其中每個通道代表每個landmark位置。在每個通道上,每個landmark的位置都由一個二維高斯分布描述,其平均峰值位於地面真實位置。

Related work
Generative Adversarial Networks (GANs)
Image-to-Image Translations
Video-to-Video Translations

Some method and Motivation
1.StarGAN可用於訓練使用離散表達式。進行面部表情傳遞的模型。
2.遵循與StarGAN相同的研究思路,GANimation根據某些面部動作單位(AUs)的激活及其強度來轉換面部影像。但在某些AU不受約束的條件下,檢測精度還不夠高。原因之一是由於必須由訓練有素的專家來執行的高昂的注釋費用,因此缺少注釋數據。除此,AU不能描述講話過程中產生的可能的嘴唇運動模式。因此,GANimation模型不能以直接的方式用於傳輸語音。
3.X2Face方法建議使用由嵌入網路產生的程式碼(例如,人臉識別,姿勢等)來驅動人臉合成。然而,該方法假定某些變化完全被解開。此外,生成的影像缺少高頻細節,這可能是由於缺乏對抗訓練策略所致。
4.在本文中,我們受到面部標誌物本地化和跟蹤中最新方法所取得的顯著成果的激勵,並據我們所知提出了方法,即受面部標誌驅動的面部影像和影片合成方法。與StarGAN和GANimation相反,我們的方法不需要任何人工注釋,我們使用的是由最先進的面部界標定位演算法提供的偽注釋。

Work

Do?
1.We designed a generator that takes a facial image, its current landmarks, and target landmarks as inputs and generates a facial image with the same identity but with target landmarks.
2.We proposed an exhaustively designed adversarial training architecture for our generator that is not prone to drift owing to error accumulation. That is, we incorporated adversarial losses both for an image, as well
as a video generation. That way, our generator can be applied to generate images and videos.
3.For identity preservation and correct motion transfer we included both verification, as well as landmark localisation losses.
總的來說,分為三大部分
第一,我們設計了一種生成器,該生成器將面部影像,其當前landmarks和目標landmarks作為輸入,並生成具有相同標識但具有目標landmarks的面部影像。
第二,為我們的生成器提出了一個詳盡設計的對抗訓練架構(MotionGAN),該架構不會因錯誤累積而漂移。也就是說,我們將影像和影片生成的對抗性損失都計入了成本。這樣,我們的生成器可以應用於生成影像和影片。
第三,對於身份保護和正確的運動傳遞,我們既包括驗證,也包括標誌性的本地化損失。

Model

我們的模型框架是基於生成對抗網路,如上圖所示該網路包含四個子網路:生成器G,影像幀判別器Df,影片判別器Dv和驗證網路V.

1.生成器G:生成器包含Encoder、LSTM Block、Decoder
生成器的輸入為source image、source landmark、target landmark的疊加(按通道的級聯)\left [ s, l, l_t \right ]
生成器網路架構基於由兩個卷積下取樣層和六個殘差模組層組成,最後以兩個轉置卷積上取樣層結束。網路上半部分用於編碼器,下半部分用於解碼器。編碼器的輸出通過單層LSTM模組。之後將LSTM塊的輸出逐個元素地添加到編碼器的輸出中,並成為解碼器的輸入。
解碼器的輸出是面部影像\tilde{f}_t=G\left ( s, l, l_t \right )--(影像下面的公式是影片)。為了簡潔起見,我們省略了LSTM內部使用的單元格和隱藏狀態,並將T連續幀的影片生成定義為\tilde{f}_1^T=G\left ( s, l, l_1^T \right )
2.影像幀判別器Df:將真實影像f_t 或生成影像\tilde{f}_t ,拼接上source image、source landmark、target landmark,得到\left [ s, l, f_t, l_t \right ], \left [ s, l, \tilde{f}_t, l_t \right ],作為影像幀判別器Df的輸入。
Df的架構也與生成器G相同,但沒有LSTM單元。我們還遵循CycleGAN的輸出層,該層使用修補程式識別器執行局部區域的預測(PatchGan)。
輸出是具有一個通道的影像,該通道代表鑒別器的預測。最終預測的是每個位置的預測平均值。由於我們以源影像s及其landmark為條件的輸入,因此Df不僅可以區分真實幀還是生成的幀,而且還可以識別是否保留了生成幀\tilde{f}_t的標識和其他屬性。
3.影片判別器Dv:輸入為T個實際影片幀{f}^T_1或生成的影片幀\tilde{f}^T_1的堆棧。
其結構也類似於不帶LSTM單元的發生器G的結構。但是,為了使影片判別器Dv封裝影片的時間運動,我們將生成器G中使用的2d卷積層替換為3d卷積層,同時使其他層以及其他激活功能保持不變。
此外,網路Dv在上取樣層有兩個分支:一個用於預測給定影片序列是真實的還是偽造的,另一個用於輸出相應的landmark,具體取決給定的影片輸入。主要是鼓勵生成器G生產其landmark類似於目標landmark現實影片。
4.驗證網路V:驗證網路V是經過預訓練的網路,網路在整個訓練過程中保持固定,僅用於確保生成的幀保留源影像的身份。
為了利用所有可用的身份資訊,我們使用V計算兩對臉部特徵:在生成的幀和源影像之間(V(\tilde{f}_{t}),V(s)),以及在生成的幀和目標幀之間(V(f_{t}),V(f_{t})),這邊涉及到損失L_{id}

Loss functions
1. Image Reconstruction Loss
對於生成器G,採用pixel-wise l1 norm 作為reconstruction loss
L_{img}^{G}= \frac{1}{T} \sum _{t=1}^{T}||G(s,l,l_{t})-f_{t}|
其中ft是ground truth image,lt是ground truth landmark
2.Frame Adversarial Loss:Df用於確保每個生成的幀看起來真實,並保留源影像s的資訊。對於給定的生成影片f和目標影片的每一幀,我們將對抗損失分配給Df定義為:L_{adv}^{D}= \frac{1}{T} \sum _{t=1}^{T}E_{f_t} \left[ \log (D_{f}(s,l,f_{t},l_{t})) \right] +E_{l_t}(1-Df(s,l,G(s,l,lt),lt)]
3.Video Adversarial Loss:影片級別的對抗損失函數,作用於一個T幀序列:L_{adv}^{Dv}=E_{f^T_1} \left[ \log (D_{v}(f_{1}^{T})) \right] +E_{l^T_1} \left[ \log (1-D_{v}(G(s,l,l_{1}^{T}))) \right]
4.Pairwise Feature Matching Loss:我們採用特徵匹配損失進行調整,該損失可提供更穩定的訓練併產生逼真的結果:L_{adv}^{G}= \frac{1}{T} \sum _{t=1}^{T}||I_{D_{f}}(G(s,l,l_{t}))-I_{D_{f}}(f_{t})||^{2}_{2}+∥I_{D}(G_{1}^{T})||_{2}^{2}
5. Landmarks Reconstruction Loss:Dv同時也對影像的landmark進行預測,使用L2損失
L_{lms}^{D_{v}}=||D_{v}^{l}(f_{1}^{T})-l_{1}^{T}||_{2}^{2}
G也要使得生成影像的landmark具有最小的loss
L_{lms}^{G}=||D_{v}^{l}(G(s,l,l_{1}^{T}))-l_{1}^{T}||_{2}^{2}

Experiments

Implementation Details
G的目標函數:\lambda _{1}L_{img}^{G}+ \lambda _{2}L_{adv}^{G}+ \lambda _{3}L_{lms}^{G}+ \lambda _{4}L_{i}^{G}
Df的目標函數:L_{adv}I^{D_{f}}
Dv的目標函數:\lambda _{5}L_{adv}^{D_{v}}+ \lambda _{6}L_{lms}^{D_{v}}
超參數設置:λ1=1,λ2=0.01,λ3=10,λ4=0.1,λ5=1,λ6=100
受限於memory size,設置T=4

Experiments 1:Video Generation from Target Landmarks
Dataset:300VW的面部影片資料庫訓練和評估模型,該資料庫包含114個影片和大約218k幀。
Baselines:Cyclegan Startgan
Metrics:Peak Signal-to-Noise Ratios (PSNR) ,Structural Similarity index (SSIM) ,RMS,CED,AUC,FR
PSNR根據均方誤差(MSE)和最大像素值來測量產生的結果與地面真實幀之間的差異。 SSIM是一種量化兩個影像之間感知品質的方法。
Ablation Studies:我們以不同的損失組合重複訓練:L^G_{img},沒有V,沒有Df,沒有Df以及最終的損失
Result:


Experiment 2: Video Synthesis based on Audio Inputs
Dataset:GRID數據集有33個發言者,每個發言者發音1000個簡短短語,每個短語包含有限詞典中的6個單詞。
Baseline:Speech2Vid,SdfaGAN
Metric:除了PSNR,SSIM和FMS指標外,對於此任務,我們還使用由預先訓練的唇讀網路估計的詞錯誤率(WER)來測量口頭消息的準確性。
Result:

Experiment 3:Changing Images Expressions
我們通過根據landmark更改影像的情感來展示我們方法的另一種應用
Dataset:Radboud人臉資料庫(RaFD)包含來自73位參與者的8,040張影像,每個影像執行從五個不同角度同時捕獲的八種面部表情
Result:

總的來說,作者提出了一種非常靈活的方法,用於根據由一組面部標誌定義的目標運動來編輯面部影像。該方法既可以用於面部表情/運動傳遞,也可以用於給定單個面部影像和landmark序列的影像序列生成。
著重解決人臉影片的生成問題,指定一個face image,再指定一系列landmark,就可以生成一段新的影片,技術上沒有新的idea,都是一些已有技術的組合,生成效果上由於沒有看到作者提供的影片,僅從文章中的每一幀影像來看,效果尚可


Ending~
小李累了~

Tags: