Dieses Repository ist die offizielle Implementierung des CVPR 2024 Paper 3D-Gesichtsausdrücke durch Analyse-by-Neural-Synthese.
Die Grinsen rekonstruieren 3D -Gesichter aus monokularen Bildern mit Gesichtsgeometrie, die extreme, asymmetrische und subtile Ausdrücke treu wiederherstellen.
Sie müssen eine funktionierende Version von Pytorch und Pytorch3d installiert haben. Wir bieten eine requirements.txt
-Datei, mit der die erforderlichen Abhängigkeiten für ein Python 3.9 -Setup mit CUDA 11.7 installiert werden können:
conda erstellen -n grinse python = 3,9 PIP Install-Anforderungen.txt# Installieren Sie pytorch3d nowpip install --no-index --no-cache-dir pytorch3d -f https://dl.fbaipublicfiles.com/pytorch3d/packaging/wheels/py39_cu117_pyt201/Dowboad.
Um die erforderlichen Modelle herunterzuladen, laufen Sie dann aus:
Bash Quick_install.sh
Die obige Installation beinhaltet das Herunterladen des Flame -Modells. Dies erfordert eine Registrierung. Wenn Sie kein Konto haben, können Sie sich unter https://flame.is.tue.mpg.de/ registrieren
Dieser Befehl lädt auch das vorbereitete Smirk -Modell herunter, das auch auf Google Drive gefunden werden kann.
Wir bieten zwei Demos. Eine, die verwendet werden kann, um das Modell auf einem einzelnen Bild zu testen,
Python Demo.py -Input_Path Proben/test_image2.png -out_path Ergebnisse/ -Checkpoint PretRained_Models/Smirk_EM1.pt --crop -Crop
und eine, die verwendet werden kann, um das Modell in einem Video zu testen,
Python Demo_Video.py --input_Path -Samples/dafoe.mp4 -out_path Ergebnisse/ -Checkpoint vorabreaed_models/smirk_em1.pt --crop - -render_orig
Smirk wurde in einer Kombination der folgenden Datensätze trainiert: LRS3, Mead, Celeba und FFHQ.
§§Download den LRS3 -Datensatz von hier. Wir sind uns bewusst, dass dieser Datensatz derzeit von der Website entfernt wurde. Es kann durch einen anderen ähnlichen Datensatz, z. B. LRS2, ersetzt werden.
Laden Sie hier den Mead -Datensatz von hier herunter.
Laden Sie hier den Celeba -Datensatz von hier herunter. Sie können direkt die ausgerichteten Bilder img_align_celeba.zip
herunterladen.
Laden Sie hier den Datensatz FFHQ256 herunter.
Nach dem Herunterladen der Datensätze müssen wir die Sehenswürdigkeiten mit MediaPipe und Fan extrahieren. Wir stellen die Skripte für die Vorverarbeitung in datasets/preprocess_scripts
bereit. Beispiel Verwendung:
Python -Datensätze/precess_scripts/apply_mediapipipe_to_dataset.py ---input_dir Path_to_ffhq256/Bilder -Output_dir Path_to_ffhq256/medipipe_landmarks
Und für Fan:
Python -Datensätze/precess_scripts/apply_fan_to_dataset.py ---input_dir path_to_ffhq256/bilder -output_dir path_to_ffhq256/fan_landmarks
Beachten Sie, dass wir die Implementierung in https://github.com/hhj1897/face_alignment zum Erhalt der Fan -Orientierungspunkte verwenden.
Stellen Sie als Nächstes sicher, dass die Konfigurationsdateien in configs
mit den richtigen Pfaden zu den Datensätzen und ihren Sehenswürdigkeiten aktualisieren.
Im Vorabstufe trainieren wir alle 3 Encoder (Pose, Form und Expression) nur unter Verwendung der extrahierten Orientierungspunkte und der Ausgabe von Glimmer.
python train.py configs/config_prain.yaml train.log_path = "logs/presrain"
Nach der Vorabbildung im Kernstadium des Grinsens frieren wir die Form und Posencodierer ein und trainieren den Expressionscodierer mit dem vollständigen Grinsenrahmen (Rekonstruktionspfad und Zykluspfad).
python train.py configs/config_train.yaml resume = logs/pretrain/first_stage_pretraed_encoder.pt train.loss_weights.emotion_loss = 1.0
Wenn Sie diese Arbeit nützlich finden, sollten Sie sich angeben:
@inproceedings{SMIRK:CVPR:2024,title = {3D Facial Expressions through Analysis-by-Neural-Synthesis},author = {Retsinas, George and Filntisis, Panagiotis P., and Danecek, Radek and Abrevaya, Victoria F. and Roussos , Anastasios und Bolkart, Timo und Maragos, Petros}, bootTitle = {Konferenz über Computer Vision und Mustererkennung (CVPR)}, Jahr = {2024}}
Wir erkennen die folgenden Repositorys und Papiere an, die in dieser Arbeit verwendet wurden:
GLIMMER
Emoca
Autolink