論文學習:Learning to Generate Time-Lapse Videos Using Multi-StageDynamic Generative Adversarial Networks
Welcome To My Blog
這篇論文收錄於KDD2018,有關視訊生成的,論文有個專案主頁,題目翻譯過來大致是:使用多階段動態生成對抗網路學習生成time-lapse(延時)視訊.
多階段具體來說是兩階段,
1. 第一階段(Base-Net): 注重每一幀內容的真實性
2. 第二階段(Refine-Net): 注重幀與幀之間物體的運動
下圖是模型整體框架,叫做MD-GAN
MD-GAN由base-net和refine-net構成
Base-Net
Generator,G1
G1採用的是encoder-decoder這種結構,具體是採用了多個3D卷積層-反捲積層對;同時還採用了skip connection(構成了U型架構)的策略,3D卷積和skip connection 對視訊內容進行了很好的建模.
skip connections用於連線與encoder對應的decoder的feature maps,從而使decoder再次利用encoder的資訊,減少了資訊損失.
skip connection是通過identity mapping(恆等對映)實現的
Discriminator,D1
D1採用的是G1中encoder的網路,除了最後一層用的是sigmoid啟用函式而不是ReLU了
損失函式
Lcon是畫素級別的L1距離,L1可以使畫面更加sharpness
作用
base-net保證內容的sharpness
Refine-Net
Generator,G2
G2的網路和G1很像,只不過G2中移除了部分skip connections,具體的是溢位了 “conv1” and “deconv6”, “conv2” and “deconv5”之間的skip connection
因為使用G1中那麼多的skip connection對視訊的動態性不能很好的建模
Discriminator,D2
D2和D1的結構一樣,只不過有3個D2,分別是Y1,Y2,Y對應的D2
D2的重點是Gram matrix和ranking loss
Gram matrix 建模幀與幀之間物體運動的動態性
在refine-net中,作者引入Gram matrix作為運動特徵的表示(motion feature representation),用來輔助G2學到幀與幀之間的動態特性
具體怎麼用?
1. 首先從D2中提取特徵,具體的就是以D2的某一層的輸出作為特徵,論文中說的是:features of the first and third convolutional layers (after the ReLU layer) of discriminator D2,也就是第一個和第三個卷積層+ReLU啟用後的輸出作為特徵.
2. 接下來用這些特徵去計算Gram矩陣,這樣做的好處是加入了豐富的時間資訊,而動作是隨著時間進行的,所以也就是加入了訓練集視訊片段的動作資訊.
Gram矩陣的計算如論文所示,這其實是求提取自D2中的特徵之間的協方差矩陣,計算得到的Gram矩陣將會用於ranking loss.
ranking loss
ranking loss是論文的一大特點,計算得到的Gram矩陣將會用於ranking loss.
D2的結構和D1一樣,針對D2中某一層的特徵,ranking loss計算公式如下所示,這個公式引用自ContrastingLoss-Generative Semantic Manipulation with Contrasting這篇論文,原論文用的是l2正規化,這裡用的是l1正規化,也許是因為l1正規化對於視訊生成任務更合適,確切地說是因為l1正規化會提升生成視訊的sharpness(清晰度).進一步觀察公式,如果ranking loss小,說明:g(Y2;l)接近g(Y;l),同時g(Y2;l)遠離g(Y1;l),換句話說就是生成的視訊Y2更接近ground truth Y,同時比起base-net的輸出Y1,refine-net的Y2有了進一步的提升(動作上的提升)
損失函式
最終的ranking loss是把所有層的結果加起來(論文中是用了D2的第一層和第三層卷積層輸出)
注意到三個D2(Y,Y1,Y2)組成的ranking loss充當Discriminator的一部分
refine-net的損失函式,Lcon是畫素級別的L1距離,L1可以是畫面更加sharpness
演算法流程
最大化D,最小化G
作用
在保證視訊內容的清晰度(sharpness)的基礎上,提升畫面的動態性
總結
- 論文提出了MD-GAN,MD-GAN有兩個網路:base-net和refine-net
- 使用base-net保證內容的sharpness
- 使用refine-net提升畫面的動態性
- Generator中的3D卷積與skip connection(通過恆等對映實現)算是亮點
- D2中的Gram matrix和ranking loss算是重點