Introdução geral
Thin-Plate-Spline-Motion-Model é um projeto inovador de geração de animação de imagens apresentado na CVPR 2022. O projeto é baseado na teoria da Thin Plate Spline Transform, que permite a animação de alta qualidade de imagens estáticas com base em vídeos de direção. O projeto adota uma estrutura de aprendizado não supervisionado de ponta a ponta, que é particularmente boa para lidar com situações em que há grandes diferenças de pose entre a imagem de origem e o vídeo de direção. Por meio da introdução inovadora da estimativa de movimento thin spline e do mascaramento de várias resoluções, o modelo é capaz de gerar efeitos de animação mais naturais e suaves. O projeto não apenas abre o código-fonte da implementação completa do código, mas também fornece um modelo pré-treinado e uma demonstração on-line, permitindo que pesquisadores e desenvolvedores reproduzam e apliquem a técnica com facilidade.
E se o porta-voz da imagem pública for embora? Você pode manter a imagem do porta-voz e pedir a outra pessoa que grave um vídeo de modo que a imagem do porta-voz imite as ações do vídeo gravado para gerar o vídeo, semelhante à tecnologia de troca de rosto.
Lista de funções
- Geração de animação de imagem estática
- Suporte para treinamento em vários conjuntos de dados (VoxCeleb, TaiChi-HD, TED-talks, etc.)
- Modelos pré-treinados disponíveis para download
- Suporte para apresentações on-line baseadas na Web (integração do Hugging Face Spaces)
- Oferece suporte ao Google Colab em execução on-line
- Suporta treinamento com várias GPUs
- Fornecer a função de treinamento de rede do AVD (Advanced Video Decoder)
- Função de avaliação de reconstrução de vídeo
- Suporte para chamadas de API do Python
- Suporte ao ambiente do Docker
Usando a Ajuda
1. configuração ambiental
O projeto requer um ambiente Python 3.x (recomenda-se o Python 3.9), e as etapas de instalação são as seguintes:
- Clonagem do Project Warehouse:
git clone https://github.com/yoyo-nb/Thin-Plate-Spline-Motion-Model.git
cd Thin-Plate-Spline-Motion-Model
- Instale a dependência:
pip install -r requirements.txt
2. preparação de dados
O projeto oferece suporte a vários conjuntos de dados:
- Conjunto de dados MGif: consulte o projeto Monkey-Net para obtê-lo
- Conjuntos de dados TaiChiHD e VoxCeleb: processamento por diretrizes de pré-processamento de vídeo
- Conjunto de dados TED-talks: seguindo as diretrizes do projeto MRAA
Download do conjunto de dados de pré-processamento (VoxCeleb como exemplo):
# Faça o download e mescle para descompactar
cat vox.tar.* > vox.tar
tar xvf vox.tar
3. treinamento de modelos
Ordens de treinamento básico:
CUDA_VISIBLE_DEVICES=0,1 python run.py --config config/dataset_name.yaml --device_ids 0,1
Treinamento da rede AVD:
CUDA_VISIBLE_DEVICES=0 python run.py --mode train_avd --checkpoint '{checkpoint_folder}/checkpoint.pth.tar' --config config/dataset_name. yaml
4. avaliação da reconstrução de vídeo
CUDA_VISIBLE_DEVICES=0 python run.py --mode reconstruction --config config/dataset_name.yaml --checkpoint '{checkpoint_folder}/checkpoint. pth.tar'
5. apresentações de animação gráfica
Oferece uma variedade de maneiras de usá-lo:
- Jupyter Notebook: Usando demo.ipynb
- Linha de comando Python:
CUDA_VISIBLE_DEVICES=0 python demo.py --config config/vox-256.yaml --checkpoint checkpoints/vox.pth.tar --source_image . /source.jpg --driving_video . /driving.mp4
- Demonstração na Web:
- entrevistasEspaços para abraçar o rostoDemonstração on-line
- fazer uso deReplicarDemonstração da plataforma na Web
- aprovar (um projeto de lei ou inspeção etc.)Google Colabestar em movimento
6. aquisição do modelo de pré-treinamento
São fornecidas várias fontes de download:
- Google Drive
- Disco Yandex
- Baidu.com (Código do extrato: 1234)
7. advertências
- Recomenda-se treinar com mais dados e ciclos de treinamento mais longos para obter melhores resultados
- Garantir memória suficiente para a GPU
- Recomenda-se usar o conjunto de dados pré-processado para treinamento