Introdução geral
O ER-NeRF (Efficient Region-Aware Neural Radiance Fields) é um sistema de síntese de caracteres falantes de código aberto apresentado no ICCV 2023. O projeto utiliza a técnica Region-Aware Neural Radiance Fields para gerar com eficiência vídeos de alta fidelidade de personagens falantes. Os principais recursos do sistema são um esquema de processamento regionalizado que modela a cabeça e o tronco do personagem separadamente e uma técnica inovadora de decomposição do espaço de áudio que permite uma sincronização labial mais precisa. O projeto fornece código completo de treinamento e inferência, suporta vídeos de treinamento personalizados e pode usar diferentes extratores de recursos de áudio (por exemplo, DeepSpeech, Wav2Vec, HuBERT etc.) para processar a entrada de áudio. O sistema alcança melhorias significativas na qualidade visual e na eficiência computacional, fornecendo uma solução técnica importante no campo da síntese de caracteres falantes.
Novo projeto: https://github.com/Fictionarry/TalkingGaussian
Lista de funções
- Composição de vídeo de alta fidelidade de cabeças falantes
- Renderização de campo de radiação neural para percepção de área
- Suporta a modelagem separada da cabeça e do tronco
- Sincronização precisa dos lábios
- Suporte à extração de vários recursos de áudio (DeepSpeech/Wav2Vec/HuBERT)
- Suporte para treinamento em vídeo personalizado
- Geração de animação de personagens orientada por áudio
- Controle suave do movimento da cabeça
- Suporte ao movimento de piscar (recurso AU45)
- Função de otimização de ajuste fino do LPIPS
Usando a Ajuda
1. configuração ambiental
Requisitos do ambiente operacional do sistema:
- Sistema operacional Ubuntu 18.04
- PyTorch versão 1.12
- CUDA 11.3
Etapas de instalação:
- Crie um ambiente conda:
conda create -n ernerf python=3.10
conda install pytorch==1.12.1 torchvision==0.13.1 cudatoolkit=11.3 -c pytorch
pip install -r requirements.txt
- Instalar dependências adicionais:
pip install "git+https://github.com/facebookresearch/pytorch3d.git"
pip install tensorflow-gpu==2.8.0
2. preparação de modelos de pré-processamento
É necessário fazer o download e preparar os seguintes arquivos de modelo:
- Modelo de análise de face
- Modelo de estimativa de atitude da cabeça 3DMM
- Modelo facial da Basiléia 2009
3. personalização do processo de treinamento em vídeo
- Requisitos de preparação de vídeo:
- Formato: MP4
- Taxa de quadros: 25FPS
- Resolução: 512x512 recomendada
- Duração: 1 a 5 minutos
- Requer que cada quadro contenha caracteres falantes
- Pré-processamento de dados:
python data_utils/process.py data//.mp4
- Extração de recursos de áudio (um de três):
- Extração de recursos do DeepSpeech:
python data_utils/deepspeech_features/extract_ds_features.py --input data/.wav
- Extração de recursos Wav2Vec:
python data_utils/wav2vec.py --wav data/.wav --save_feats
- Extração de recursos HuBERT (recomendado):
python data_utils/hubert.py --wav data/.wav
4. treinamento de modelos
O treinamento é dividido em duas fases: treinamento da cabeça e treinamento do tronco:
- Treinamento da cabeça:
python main.py data/obama/ --workspace trial_obama/ -O --iters 100000
python main.py data/obama/ --workspace trial_obama/ -O --iters 125000 --finetune_lips --patch_size 32
- Treinamento do tronco:
python main.py data/obama/ --workspace trial_obama_torso/ -O ---torso --head_ckpt .pth --iters 200000
5. teste e inferência de modelos
- Efeitos do modelo de teste:
# Renderizar somente o cabeçalho
python main.py data/obama/ --workspace trial_obama/ -O --test
# Renderizar a cabeça e o tronco
python main.py data/obama/ --workspace trial_obama_torso/ -O --torso --test
- Raciocínio com áudio alvo:
python main.py data/obama/ --workspace trial_obama_torso/ -O --torso --test --test_train --aud
Dica: a adição do parâmetro --smooth_path reduz o jitter da cabeça, mas pode reduzir a precisão da atitude.