Esta es una implementación de código para el proyecto de último año de Licenciatura en Ciencias de la Computación del tercer año de Wish Suharitdamrong en la Universidad de Surrey sobre el tema de la síntesis de labios audiovisuales a través de la representación de puntos de referencia intermedios.
La demostración en línea está disponible en ? AbrazosCara
Hay dos formas de instalar paquetes usando conda o pip
1.Cree un entorno virtual de conda desde environment.yml
2.Utilice pip para instalar paquetes (asegúrese de utilizar python 3.7
o superior, ya que es posible que la versión anterior no admita algunas bibliotecas)
# Crear un entorno virtual desde el archivo .ymlconda env create -f Environment.yml# activar el entorno virtualconda activar fyp
# Use pip para instalar require packagespip install -r require.txt
El conjunto de datos audiovisuales utilizados en este proyecto son LRS2 y LRS3. Los datos de LRS2 se utilizaron tanto para el entrenamiento como para la evaluación del modelo. Los datos de LRS3 solo se utilizaron para la evaluación del modelo.
Conjunto de datos | Página |
---|---|
LRS2 | Enlace |
LRS3 | Enlace |
Descargar modelo Generador de pesas
Modelo | Enlace de descarga |
---|---|
Generador | Enlace |
Generador + Pérdida de sincronización | Enlace |
Generador de atención + SyncLoss | Enlace |
Descargar pesos para el modelo SyncNet basado en Landmark Enlace de descarga
El peso previamente entrenado para el modelo Image2Image Translation se puede descargar desde el repositorio MakeItTalk en la sección Repo Link de modelos previamente entrenados.
├── punto de control # Directorio para el punto de control del modelo│ └── generador # ponga aquí los pesos del modelo del generador│ └── syncnet # ponga aquí los pesos del modelo de Landmark SyncNet│ └── imagen2imagen # ponga los pesos del modelo de traducción de Imagen2Imagen aquí
python run_inference.py --generator_checkpoint <checkpoint_path> --image2image_checkpoint <checkpoint_path> --input_face <image/video_path> --input_audio <audio_source_path>
Utilicé las mismas formas de preprocesamiento de datos que Wav2Lip; puede encontrar más detalles sobre la estructura de carpetas en su repositorio aquí.
python preprocess_data.py --data_root data_root/main --preprocessed_root preprocessed_lrs2_landmark/
# CLI for traning attention generator with pretrain landmark SyncNet discriminator python run_train_generator.py --model_type attnlstm --train_type pretrain --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
# CLI for training pretrain landmark SyncNet discriminator python run_train_syncnet.py --data_root preprocessed_lrs2_landmark/ --checkpoint_dir <folder_to_save_checkpoints>
Este proyecto utilizó datos del conjunto de datos LRS2 y LRS3 para la evaluación cuantitativa; la lista de datos de evaluación se proporciona desde Wav2Lip. La lista de archivos (datos de video y audio utilizados para la evaluación) y los detalles sobre el punto de referencia de Lip Sync están disponibles en su repositorio aquí.
cd evaluation # generate evaluation videos python gen_eval_vdo.py --filelist <path> --data_root <path> --model_type <type_of_model> --result_dir <save_path> --generator_checkpoint <gen_ckpt> --image2image_checkpoint <image2image_checkpoint>
El código base de este proyecto se inspiró en Wav2Lip y MakeItTalk. Me gustaría agradecer al autor de ambos proyectos por hacer que la implementación del código de su increíble trabajo esté disponible en línea.