視頻生成-MagicAnimate快讀
概況
目標
??給定一張參考人物圖\(I_{ref}\)和運動序列\(p^{1:N}=\{p_1, \cdots, p_N\}\),\(N\)是視頻幀長度。論文目標是合成一個運動連貫的視頻\(I^{1:N}=\{I_1, \cdots, I_N\}\),合成視頻中人物與參考人物是一樣的,且遵循所提供的運動。
現狀
- 現在的擴散模型是處理單幀圖片的,無法抓住視頻幀之間時序關系,無法保證生成視頻幀之間的連貫性,導致動畫閃跳現象。
- 基于CLIP方法編碼的參考圖像,其提取的語義級特征較稀疏和極致(籠統與粗糙),難以抓住細節的特征。
方法總覽
- 建立視頻擴散模型,通過Temporal Transformer建模時間序列
- 引入新的外觀編碼器\(F_a\)編碼參考圖像\(I_{ref}\)為\(y_a\),條件建模論文中模型,實現人物ID和背景保留的動畫。
- 引入目標姿態序列,通過ControlNet編碼為運動特征序列\(y_p^{1:K}\),條件建模論文中模型,使得目標對象按照這種運動生成視頻
整個訓練和推理過程參考Fig.1
時序一致性建模
??如圖Fig.1 所示,隨機初始化\(K\)個隱變量噪音\(z_t^{1:K}\),在視頻擴散模型內部數據先由\(\mathbb {R}^{N \times C \times K \times H \times W}\)轉化為\(\mathbb {R}^{(NK) \times C \times H \times W}\),進入時序模塊中,再轉換為\(\mathbb {R}^{(NHW) \times K \times C}\),從而建模視頻幀之間相同空間位置處的依賴關系,跳出時序模塊再轉換為原來形狀。更細節解釋可以參考視頻生成-AnimateDiffusion快讀
外觀編碼器
??參考圖片指導下人像動畫的生成,關鍵點在于保留下人物身份信息和背景信息。論文中的方法是,參考ControlNet的設計,復制基礎UNet \(F_a(\cdot, \theta^a)\)的一個可訓練的副本,計算其在每個時間步\(t\)下的依賴于參考圖像\(I_{ref}\)的隱藏層輸出,即
其中\(y_a\)是UNet模型的中間模塊和上采樣模塊對應輸出的歸一化注意力隱藏狀態。此處與ControlNet將其以殘差相加方式不同。參考圖Fig.1, 上部的Appearance Encoder結構中,只有中間模塊和上采樣模塊的輸出傳遞給中部擴散網絡對應的中間模塊和上采樣模塊。兩個模塊相對應部分的特征,在空間自注意力層計算過程中,進行特征拼接,公式化表示如下:
其中的\([\cdot]\)就表示按照某個維度的拼接操作,通過這種操作,就可以將視頻擴散模型中的空間自注意力機制擴展到混合多種數據源的混合空間自注意力機制。從而實現了服從不同分布的信息的交互融合。用在此處,在生成視頻幀過程中,既考慮到用參考圖片信息使得生成的圖片和參考圖片相近,又考慮到運動信息如姿態位置等使得生成的圖片在姿態位置上又和建模用的運動數據集中的運動情況相近。總之通過這種方式,把希望呈現的信息都加入了。
運動編碼
??ControlNet中條件引入OpenPose關鍵點常用于人類動畫生成。雖然這個得到可以解釋的結果,但是論文認為關鍵點很稀疏以及對特定運動如旋轉等不魯棒。因此選擇DensPose輸出作為運動監督信號。論文使用姿態ControlNet \(F_p(\cdot, \theta^p)\)計算第\(i\)幀DensPose運動信號\(p_i\)產生的UNet隱藏層狀態值,即
在后續擴散UNet結構中,將以殘差連接方式加入到UNet中間模塊和上采樣模塊的計算中。
其它
問題1: 論文中的公式(1)、(2)和(3)中的變量\(z_t\)指的是哪個?與公式(4)中\(z_t^{1:K}\)是什么關系?
參考
[1] MagicAnimate: Temporally Consistent Human Image Animation using Diffusion Model
[2] CBAM: Convolutional Block Attention Module

浙公網安備 33010602011771號