---
# System prepended metadata

title: 'Animating Landscape: Self-Supervised Learning of Decoupled Motionand Appearance for Single-Image Video Synthesis論文筆記'

---

# Animating Landscape: Self-Supervised Learning of Decoupled Motionand Appearance for Single-Image Video Synthesis論文筆記

## **一、Introduce:**
- 第一段主要說明，在過去的技術當中，對靜態圖片進行動畫化，有許多限制以及所產生的圖片大多數為低解析度的。
- 而過去的技術主要分成兩大方法
    - 1.Example-based:
        - 利用真實的影像動畫為模板，對目標圖像進行運動產生，例如Fluid motion或Time-varying scene appearance，但這種方法的缺點便是會十分依賴所給予的模板，當目標圖像與給予的模板在運動上有不同，容易產生不自然的流動或效果
        - ![](https://i.imgur.com/BeCp9bx.png)
            ▲以Example-Based進行圖像運動預測
        - ![](https://i.imgur.com/kwHz0qy.png)
            ▲以Example-Based進行Time-Varying圖像

    - 2.Learning-based:
        - 論文中提到，由於深度神經網路的技術逐漸發展，通過DNN的方式去對圖像進行流體運動預測，得到了很好的效果，特別是GAN、VAE被用來透過單一圖像生成動態影片。
        - 但是在上述的方法中，生成的解析度以及品質上都比起在生成圖像上效果相對低許多
        - 而造成以上的結果的問題主要是由
            - i)相比於圖像生成來說，在影片的生成上，Spatiotemporal domain太大而無法學習
            - ii)對於影像的下一幀有很多的不確定性，從單一輸入去學習union的輸出是較難處理且不穩定
- 而這篇論文中提出了以Learning-based的方法，透過利用CNN架構，對單一的戶外圖片產生高解析度的動態影像，且將運動（雲層飄動、水面流動）及外觀（白天、夜晚）分開訓練學習。

## 二、Related Work:
- 這段主要說明與本論文中使用的技術相關的一些知識
- 1. Optical Flow Prediction:
    - 在光線流動的預測上已有很多方法，而很多的方法都依賴合成資料的方法對影片進行延時，兒也因此在預測效果上較為不佳，主要原因是訓練的資料皆為合成，缺乏真實的資料
    - 而在2017年提出了用self-supervised的方法去估算兩張輸入連續影像之間的流動，而在這篇論文引用了這種技術，並在inference 階段加入latent code來處理預測的不確定性且在輸入端只有給予一張影像進行預測
- 2. Appearance Manipulation:
    - Color transfer 對兩張圖像進行匹配後，把目標圖像的顏色轉換成與參考圖像顏色，且保留目標場景的結構性，但與本論文所希望達成之目標較為不同
    - Style transfer 可以得到比Color transfer更豐富的訊息，但在Style transfer的方法中，在轉換的表達能力上較為強烈，因此在進行預測時較容易產生overfitting，因此而造成在各種場景中會產生很多不自然之結果，因此最後論文作者選用Texture transfer 進行運動預測，並搭配避免Overfitting的Transfer function來更改Color appearance

- 而作者也提到，在2018年也有一篇論文是在對圖像的流動進行預測，而與他們的方法不同之處是，本篇論文使用的為2D-CNN比起另一篇所使用的3D-CNN在訓練的複雜度上降低許多，而另一篇在訓練時需要真實的流動資料，而本篇論文不需要，且本篇論文還可以控制Appearance transtion

## 三、Method Overview:
![](https://i.imgur.com/WIapNYW.png)
上圖中展示了影片合成的整體流程

如圖中所見，在輸入一個圖片後，會先生成圖像流動的每一幀，並利用線性混合的方式讓他產生循環，進而生成一個圖像運動影片，此後在對光線顏色變化部分進行預測並生成結果後在與運動影片進行結合

在運動預測中，Loss計算中，由於在設計上作者假設其在空間上運動為平滑，所以在對於誤差是較不敏感。
而也因誤差較為不敏感，作者將生成之預測通過回朔之方法輸入影像對每個預測幀進行重建，由此避免對重複顏色採樣而導致RGB值的誤差累積。

由於在預測運動及色彩變化時有許多不確定性，因此本文中利用在訓練階段提取latent code來處理未來的不確定性。通過假設整的影片中整體的運動都是相似的，可以透過單一個latent code去控制單個影片的運動，且因為Appearance predictor是使用輸入圖像與每個訓練影像中任意幀進行訓練，因此也需要一個latent code來控制每個幀之外觀，因此影片是有序列性，所以我們需要一個也具有序列性之latent code存取在訓練時生成的latent code 或由使用者手動指定的latent code(如圖中codebook)

## 四、Models:
![](https://i.imgur.com/zpbqpKT.png)
- 首先對符號進行介紹，作者將顏色預測與運動預測符號以Ａ及Ｍ表示，P表示為Predictor，而Motion Predictor與Appearance Predictor所使用的架構均相同，皆為FCN之架構
- 輸入圖像為經過Linearly-Normalized RGB之圖像I ∈ [-1, 1]w×h×3，再加上一個latent code Z來處理預測之不確定性，而最用以Ｏ表示輸出

- Motion Predictor:
- -
    - Warping:
    - Loss:
        - (1).Loss for output obtained from the input image and the next frame :
             ![](https://i.imgur.com/Uca0JFh.png)
        - (2).Total Variation Loss:
              ![](https://i.imgur.com/YLcykXV.png)
        - (3).Total Training Loss:
              ![](https://i.imgur.com/NO83jpq.png)





    - Move Predictor Algorithm:
        ![](https://i.imgur.com/iaiKcrF.png) 
    - Encoder
        ![](https://i.imgur.com/NsrJ2tb.png)




