由吳韋恩、張雲軒和李韌創作。
我們提出了一種新穎的基於學習的臉部重演框架。所提出的方法稱為 ReenactGAN,能夠將任意人的單眼視訊輸入中的臉部動作和表情轉移到目標人的影片中。我們首先將源面映射到邊界潛在空間上,而不是在像素空間中執行直接傳輸,這可能會導致結構偽影。隨後使用變換器使源面的邊界適應目標的邊界。最後,使用特定於目標的解碼器來產生重新制定的目標臉部。由於有效且可靠的基於邊界的傳輸,我們的方法可以執行照片般逼真的臉部重演。此外,ReenactGAN 的吸引力在於整個重演過程是純粹前饋的,因此重演過程可以即時運作。
克隆這個倉庫:
git clone ...
cd ReenactGAN
邊界編碼器在 WFLW 和 Helen 資料集上進行訓練,邊界變換器和解碼器都在 CelebV 資料集上進行訓練。編碼器的訓練需要大量的時間,因此您可以在./pretrained_models/v8_net_boundary_detection.pth獲取預先訓練的編碼器。
要訓練邊界變壓器,請運行
sh script/train_Transformer.sh
您需要處理參數--root_dir和--which_target 。 --root_dir指資料集的目錄, --which_target指目標是哪個人
0: Emmanuel_Macron
1: Kathleen
2: Jack_Ma
3: Theresa_May
4: Donald_Trump
要訓練解碼器,請運行
sh script/train_Decoder.sh
另外,您需要注意--root_dir的值,它指的是目標人員的目錄。
要測試模型,請運行
sh script/move_models.sh ./checkpoints/Transformer_2019-xx-xx_xx-xx-xx/G_BA_xx.pth ./checkpoints/Decoder_2019-xx-xx_xx-xx-xx/xx_net_G.pth trump
sh script/test.sh
用於測試的圖片位於 ./test_imgs/samples/image,文字檔案 ./test_imgs/samples/images_list.txt 包含這些圖片的清單。測試完成後,您將獲得一個名為results的Floder,其中包含真實人臉和重演人臉的圖像、真實人臉的邊界和變換後的邊界。以下是一些結果。
您可以從 Decoder 和 Transformer 取得我們經過訓練的模型。
如果您發現 ReenactGAN 對您的研究有幫助,請參考:
inproceedings{wayne2018reenactgan,
author = {Wu, Wayne and Zhang, Yunxuan and Li, Cheng and Qian, Chen and Loy, Chen Change},
title = {ReenactGAN: Learning to Reenact Faces via Boundary Transfer},
booktitle = {ECCV},
month = September,
year = {2018}
}