SPARK : Capture de visage monoculaire personnalisée en temps réel et auto-supervisée
Kelian Baert · Shrisha Bharadwaj · Fabien Castan · Benoit Maujean · Marc Christie · Victoria Fernandez Abrevaya · Adnane Boukhayma
Technicolor | Institut Max Planck | INRIA Rennes
Articles de la conférence SIGGRAPH Asia 2024
Citation
Si vous trouvez notre code ou article utile, veuillez citer comme suit :
@inproceedings{baert2024spark,
title = {{SPARK}: Self-supervised Personalized Real-time Monocular Face Capture},
author = {Baert, Kelian and Bharadwaj, Shrisha and Castan, Fabien and Maujean, Benoit and Christie, Marc and Abrevaya, Victoria and Boukhayma, Adnane},
year = {2024},
month = dec,
booktitle = {SIGGRAPH Asia 2024 Conference Proceedings},
articleno = {113},
doi = {10.1145/3680528.3687704},
isbn = {979-8-4007-1131-2/24/12},
publisher = {Association for Computing Machinery},
address = {New York, NY, USA},
numpages = {12},
url = {https://kelianb.github.io/SPARK/},
}
Installation
Détails
- Créez l'environnement en utilisant setup.sh.
- Exécutez TrackerAdaptation/setup_submodules.sh. Cela peut prendre quelques minutes.
- Liez FLAME de MultiFLARE à EMOCA :
ln TrackerAdaptation/submodules/EMOCA/assets/FLAME/geometry/generic_model.pkl MultiFLARE/assets/flame/flame2020.pkl - Ceci équivaut à télécharger FLAME (version 2020), à le décompresser et à copier
generic_model.pkldans./MultiFLARE/assets/flame/flame2020.pkl. - Obtenez le modèle de texture Basel Face Model adapté à FLAME. Malheureusement, nous ne sommes pas autorisés à distribuer cet espace de texture car la licence ne le permet pas. Veuillez donc utiliser l’outil de ce répertoire pour convertir l’espace de texture vers FLAME. Placez le fichier de modèle de texture résultant dans
TrackerAdaptation/submodules/EMOCA/assets/FLAME/texture/FLAME_albedo_from_BFM.npz.
Jeu de données
Veuillez vous référer au dépôt MonoFaceCompute pour prétraiter vos propres données.
Utilisation
SPARK est une approche en deux étapes. D’abord, exécutez MultiFLARE pour reconstruire un avatar facial 3D à partir de plusieurs vidéos. Ensuite, utilisez TrackerAdaptation pour adapter un tracker facial 3D existant à votre avatar pour un suivi en temps réel via l’apprentissage par transfert.
Détails
1. MultiFLARE
cd MultiFLARE
python train.py --config configs/example.txtExport neutral mesh
python export_mesh.py --config configs/example.txt --resume 3000 --out_dir /tmp/example_mesh --tex_type albedo
Nous conseillons de commencer à partir du fichier de configuration exemple fourni et de modifier input_dir, train_dir et output_dir. Pour une liste complète de tous les paramètres, veuillez consulter arguments.py ou la sortie de python train.py --help. Les paramètres peuvent être passés soit dans le fichier de configuration, soit en arguments de ligne de commande.2. AdaptationSuivi
cd TrackerAdaptation
DECA encoder + MultiFLARE decoder
python train.py --config configs/example_deca.txt
EMOCA encoder + MultiFLARE decoder
python train.py --config configs/example_emoca.txt
SMIRK encoder + MultiFLARE decoder (recommended!)
python train.py --config configs/example_smirk.txt
EMOCA encoder + EMOCA decoder (baseline)
python train.py --config configs/example_emoca_baseline.txtQuantitative eval
python evaluate.py --config configs/example_smirk.txt --tracker_resume 3000 --frame_interval 5 --num_frames 64Visualization videos
python make_comparison_video.py --config configs/example_smirk.txt --tracker_resume 3000 --test_dirs 5 6 --n_frames 1000 --smooth_crops --framerate 24
python make_overlay_video.py --config configs/example_smirk.txt --tracker_resume 3000 --test_dirs 2 --out test_beard --texture /path/to/texture.png --n_frames 1000 --smooth_crops --framerate 24Informations sur la licence
Le code dans ce dépôt est soumis à plusieurs licences.
- Code original (Technicolor Group & INRIA Rennes)
- Tout le code dans ce dépôt, sauf indication contraire, est sous licence CC BY-NC-SA.
- Code tiers (Institut Max Planck pour les systèmes intelligents)
- Emplacement :
./MultiFLARE/flame,./MultiFLARE/flare,./TrackerAdaptation/submodules - Ces répertoires contiennent du code de l’Institut Max Planck, avec quelques modifications. Veuillez lire attentivement la Licence MPI et noter que celle-ci est uniquement disponible pour des fins de recherche scientifique non commerciale.