Everybody dance now

極驗發表於2018-10-31

本週介紹一篇來自加利福尼亞大學伯克利分校今年8月推出的論文。該論文提出了一種在不同的人物影片中遷移動作的方法:給定兩個影片——一個是想要合成的目標人物的影片,另一個是動作源影片,透過一個端到端的管道,可以實現這兩個影片中人物的動作遷移(見圖1)。之前類似的工作需要3維圖形資訊,而本次的工作使用生成式對抗網路。透過從源影片中獲取的姿態特徵推斷目標人物畫面。

Everybody dance now

圖1:從源影片中遷移動作到兩個目標上

方法總覽

動作遷移管道分為三個部分:

1. 姿態檢測。在姿態檢測階段,透過預訓練的姿態檢測模型(openpose)從源影片中描繪給定幀的姿態圖形。

2. 全域性姿態標準化。全域性姿態標準化階段,計算給定幀內源和目標人物身體形狀和位置之間的差異,將源姿態圖形轉換到符合目標人物身體形狀和位置的姿態圖形。

3. 從標準化後的姿態圖形推斷目標人物的影像。這一階段使用一個生成式對抗模型,訓練模型學習從標準化後的姿態圖形推斷到目標人物影像。

Everybody dance now

圖2:訓練流程(上)遷移流程(下)

圖2上半部分描述生成式對抗模型訓練流程。

從目標影片中給定一個幀y,使用預訓練的姿態檢測模型P圖獲得對應的姿態圖形x = P(y)。在訓練階段使用對應的(x, y)影像對去學習從姿態圖形x到目標人物合成影像(即:G(x))的對映G。透過在鑑別器D使用對抗訓練和在預訓練VGGNet使用感知重建損失,我們可以最佳化生成器G,使其輸出接近真實影像y。判別器試圖區分“真實”的影像對(例如(x, y))和“偽造”的影像對(例如(x, G(x))。

圖2下半部分描述遷移流程。

和訓練過程相似,姿態檢測模型P從源影片給定幀y'中抽取姿態圖形x'。由於x'和目標影片中人物的身體尺寸和位置不同,我們透過全域性姿態標準化轉換,使其和目標人物更一致,記x。將x推入已訓練的模型G中生成目標人物影像G(x),生成的影像與源影片中的y幀相對應。

下面我們詳細的介紹方法細節。

姿態檢測和標準化

姿態檢測

本文的姿態檢測使用預訓練的模型P(如:開源專案openpose等),得到精確的肢體關節座標x,y的估計。透過連線各個關節點可以得到姿態圖形,如圖3所示。在訓練過程中,姿態圖形作為生成器G的輸入。在遷移過程中P從源動作物件中獲取估計x'並透過標準化匹配到目標人物。姿態估計相關文獻見文章末尾。

Everybody dance now

圖3:姿態圖形和對應目標幀


全域性動作標準化

首先找到源影片和目標人物影片中最小和最大的腳踝關鍵點位置(距離鏡頭最近為最大,反之為最小)。方法很簡單,靠近影像最底部的為最大腳踝關鍵點,另一個為最小。

偏移量b透過如下公式計算:

Everybody dance now

其中Everybody dance nowEverybody dance now分別為目標影片中最小和最大的腳踝關鍵點位置,Everybody dance nowEverybody dance now分為原影片的。Everybody dance now為源影片的腳踝平均位置。Everybody dance now為源影片當前幀相對於第一幀的姿態位置偏移量(文中未說明,我的觀點)。

比例scale透過如下公式計算:

Everybody dance now

其中Everybody dance nowEverybody dance now分別為目標影片中最小和最大腳踝關鍵點的高度,Everybody dance nowEverybody dance now

分為原影片的。

用於影像間轉換的對抗訓練

Pix2pix框架

透過修改基於pix2pixHD的對抗訓練,可以生成時間連貫的影片幀以及合成真實的面部影像。

在原始的條件化GAN中,生成器G用來對抗多尺寸的鑑別器D=(D1,D2,D3)。原始pix2pixHD的目標任務形式如下:

Everybody dance now

其中Everybody dance now是原始pix2pixHD中的對抗損失,形式如下:

Everybody dance now

Everybody dance now是pix2pixHD中提出的鑑別器特徵匹配損失。Everybody dance now感知重建損失,透過比較預訓練VGGNet不同特徵層中的差異獲得。


時序平滑

為了生成影片序列,本文修改了原始pix2pixHD中單個影像生成的模式,使其產生時間連續的相鄰幀(圖4)。模型預測兩個連續的幀,第一個輸出G(xt-1)由相應的動作圖形xt-1和一個空影像z(值為0,由於沒有t-2的幀輸入所以用空值作為一個佔位符)作為預測條件;第二個輸出G(xt)以xt和G(xt-1)為條件。相應的,鑑別器的任務變為鑑別真實序列(xt-1, xt, yt-1, yt)和偽造序列(xt-1, xt, G(xt-1), G(xt))的真實性以及時間連續性。透過在原始pix2pixHD最佳化目標上新增時序平滑損失Everybody dance now得到新的最佳化目標,Everybody dance now形式如下所示:

Everybody dance now
Everybody dance now

圖4:時序平滑訓練示意圖


面部生成式對抗網路

本文新增一個特殊的GAN結構來訓練生成更細節更真實的面部區域(圖5)。


在使用生成器G得到整幅影像後,我們擷取以面部為中心的小區域影像Everybody dance now,將其和動作圖形的相應區域XF輸入到另一個生成器Everybody dance now中,得到一個面部的殘差Everybody dance now。最終的輸出是將殘差加上對應區域的原始值,即Everybody dance now。和原始pix2pix最佳化目標類似,鑑別器嘗試區分“真實”面部影像對Everybody dance now和偽造圖相對Everybody dance now

Everybody dance now


實驗結果

由於對於生成影像,沒有相應的真實影像來評價。為了評價單個影像的質量,本文測量影像的Structural Similarity(SSIM)和Learned Perceptual Image Patch Similarity(LPIPS)。依靠質量分析來評價輸出影片的時間連續性。SSIM和LPIPS的相關資料見文章末尾。

Everybody dance now

表1:身體影像輸出比較


表1記錄了將生成的目標人物影像,按標準化動作圖形邊框裁剪後計算的結果。T.S表示生成器結果經過時序平滑的方案。T.S.+Face是本文的完整模型,包含時序平滑和麵部生成。

Everybody dance now

表2:面部影像輸出比較


表2記錄了將生成的目標人物影像,按面部邊框裁剪後計算的結果。

Everybody dance now

表3:姿態距離


表3計算了姿態距離d。如果身體部分影像被正確的合成,那麼合成影像的姿態圖形應該和作為條件輸入的姿態圖形非常接近。為了評價姿態的一致性,本文設計了姿態距離矩陣來計算姿態差異。對於兩個姿態p和p',每一個有n個連線點:p1,......,pn和p'1,......p'n。我們計算對應連線點Everybody dance now的L2距離均值來衡量姿態距離。

Everybody dance now

姿態距離越低,表示影像質量越好。

Everybody dance now

表4:平均每幅圖未檢測到的連線點數量

表4表示平均每幅圖,在源動作影像中根據姿態檢測得到連線點,而在生成圖中姿態檢測未檢測到的點的數量。


最後展示幾組源影像和對應動作圖形、生成影像的結果圖。

Everybody dance now

圖5:結果展示


相關文獻

影像相似性衡量

SSIM:

Zhou Wang, Alan C Bovik, Hamid R Sheikh,and Eero P Simoncelli.2004. Image quality assessment:from error visibility to structural similarity. IEEE transactions on image processing 13, 4(2004),600–612.


LPIPS:

Richard Zhang, Phillip Isola, Alexei A Efros, Eli Shechtman, and Oliver Wang. 2018. The Unreasonable Effectiveness of Deep Features as a Perceptual Metric.In CVPR.


pix2pixHD:

https://arxiv.org/pdf/1711.11585v2.pdf


姿態估計:

卷積姿態機器

https://arxiv.org/pdf/1602.00134.pdf

實時多人2d動作估計

https://arxiv.org/pdf/1611.08050.pdf

手部關鍵點探測

https://arxiv.org/pdf/1704.07809.pdf

本文原文(Everybody dance now):

https://arxiv.org/pdf/1808.07371.pdf

相關文章