Criado por Wayne Wu, Yunxuan Zhang e Ren Li.
Apresentamos uma nova estrutura baseada em aprendizagem para reconstituição facial. O método proposto, conhecido como ReenactGAN, é capaz de transferir movimentos e expressões faciais da entrada de vídeo monocular de uma pessoa arbitrária para o vídeo de uma pessoa alvo. Em vez de realizar uma transferência direta no espaço de pixels, o que poderia resultar em artefatos estruturais, primeiro mapeamos a face de origem em um espaço latente de fronteira. Um transformador é posteriormente usado para adaptar o limite da face da fonte ao limite do alvo. Finalmente, um decodificador específico do alvo é usado para gerar a face alvo reconstituída. Graças à transferência eficaz e confiável baseada em limites, nosso método pode realizar a reconstituição facial fotorrealista. Além disso, o ReenactGAN é atraente porque todo o processo de reconstituição é puramente feed-forward e, portanto, o processo de reconstituição pode ser executado em tempo real.
Clone este repositório:
git clone ...
cd ReenactGAN
O codificador de limite é treinado no conjunto de dados WFLW e Helen, e tanto o transformador de limite quanto o decodificador são treinados no conjunto de dados CelebV. O treinamento do codificador requer muito tempo, então você pode obter o codificador pré-treinado em ./pretrained_models/v8_net_boundary_detection.pth .
Para treinar o transformador de limite, execute
sh script/train_Transformer.sh
Você precisa cuidar dos argumentos --root_dir e -- which_target . --root_dir refere-se ao diretório do conjunto de dados e -- which_target refere-se a qual pessoa será o alvo
0: Emmanuel_Macron
1: Kathleen
2: Jack_Ma
3: Theresa_May
4: Donald_Trump
Para treinar o decodificador, execute
sh script/train_Decoder.sh
Além disso, você precisa cuidar do valor de --root_dir , que se refere ao diretório da pessoa alvo.
Para testar o modelo, execute
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
As imagens usadas para teste estão em ./test_imgs/samples/image, e o arquivo de texto, ./test_imgs/samples/images_list.txt, contém a lista dessas imagens. Após o teste, você obterá um floder chamado results , que contém as imagens dos rostos reais e reencenados, os limites e os limites transformados dos rostos reais. Aqui estão alguns resultados.
Você pode obter nossos modelos treinados em Decoder e Transformer.
Se você achar o ReenactGAN útil para sua pesquisa, cite:
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}
}
Entre em contato com [email protected]