GenXD : cadre open source pour la génération de vidéos de scènes 3D et 4D arbitraires
Introduction générale
GenXD est un projet open source développé par l'Université nationale de Singapour (NUS) et l'équipe de Microsoft. Il se concentre sur la génération de scènes 3D et 4D arbitraires, résolvant les défis de la génération 3D et 4D dans le monde réel en raison de l'insuffisance des données et de la complexité de la conception des modèles. Le projet construit un cadre de génération flexible en analysant les mouvements des caméras et des objets et en les combinant avec des données réelles à grande échelle. genXD fournit le premier ensemble de données 4D open source, CamVid-30K, qui contient des informations sur la pose et le mouvement des caméras à partir de plus de 30 000 vidéos. Les utilisateurs peuvent l'utiliser pour générer des vidéos ou des vues 3D cohérentes qui correspondent à la trajectoire de la caméra. Le projet a été accepté par l'ICLR 2025 en janvier 2025 et est largement suivi sur GitHub par les chercheurs et les développeurs.

Liste des fonctions
- Générer des scènes 3D arbitraires et prendre en charge la sortie de vues 3D cohérentes à partir de points de vue multiples.
- Générer des scènes de mouvement 4D pour créer des vidéos qui évoluent dans le temps.
- Décomposer les mouvements de la caméra et de l'objet pour assurer un flux naturel du contenu généré.
- Le jeu de données CamVid-30K est disponible pour les études de missions dynamiques en 3D et 4D.
- Prise en charge de plusieurs entrées conditionnelles (par exemple, des images ou un petit nombre de vues) pour ajuster de manière flexible les résultats générés.
- Convertir les vues 3D en ressources numériques modifiables.
- Module temporel multi-vues intégré pour optimiser la fusion des données 3D et 4D.
Utiliser l'aide
GenXD est un cadre de recherche open source, les utilisateurs doivent créer l'environnement localement pour l'utiliser. Ce qui suit est un guide d'installation et d'utilisation détaillé pour aider les utilisateurs à démarrer rapidement.
Processus d'installation
GenXD nécessite un environnement de programmation et convient aux utilisateurs ayant quelques connaissances techniques. Les étapes de l'installation sont les suivantes :
- Préparer l'environnement de base
- Assurez-vous que Python 3.10 ou une version ultérieure est installé sur votre ordinateur.
- Installez Git pour télécharger le code. Exécutez-le dans le terminal :
git clone https://github.com/HeliosZhao/GenXD.git
- Accédez au catalogue de projets :
cd GenXD
- Installation des dépendances de base
- Installez PyTorch (version 2.1.2 recommandée avec prise en charge de CUDA). Exécutez-le :
pip install torch==2.1.2 torchvision==0.16.2 torchaudio==2.1.2 --index-url https://download.pytorch.org/whl/cu118
- Installez les autres dépendances (par exemple diffuseurs 0.30.3). Exécuter :
pip install -r requirements.txt
- au cas où
requirements.txt
Non fournie, se référer aux instructions officielles pour installer NumPy, OpenCV et d'autres bibliothèques.
- Installez PyTorch (version 2.1.2 recommandée avec prise en charge de CUDA). Exécutez-le :
- Télécharger le modèle pré-entraîné
- Téléchargez le modèle de Hugging Face :
pip install -U "huggingface_hub[cli]" huggingface-cli download Yuyang-z/genxd --local-dir ./genxd-model
- Placer les fichiers du modèle dans le répertoire du projet sous le nom de
genxd-model
Dossier.
- Téléchargez le modèle de Hugging Face :
- Télécharger la base de données
- L'ensemble de données CamVid-30K peut être téléchargé sur le site Hugging Face :
- Le sous-ensemble VIPSeg et le sous-ensemble OpenVid sont disponibles à l'adresse https://huggingface.co/datasets/Yuyang-z/CamVid-30K.
- Le sous-ensemble WebVid-10M n'est pas disponible en raison d'une limitation, vous devez l'obtenir par vous-même.
- Télécharger et dézipper sur
data/camvid-30k
Dossier.
- L'ensemble de données CamVid-30K peut être téléchargé sur le site Hugging Face :
- Vérification de l'environnement
- Assurez-vous que vous disposez d'un GPU NVIDIA :
python -c "import torch; print(torch.cuda.is_available())"
exportations
True
Indique un environnement normal.
- Assurez-vous que vous disposez d'un GPU NVIDIA :
Utilisation des fonctions principales
GenXD prend en charge un grand nombre de tâches de génération, et voici comment procéder.
1. personnaliser les images pour générer des scènes en 3D
- Se préparer à entrer: Placez une image (au format PNG ou JPG) dans le fichier
example-images
Dossier. - Réglage du mode de l'appareil photo: Soutien
forward
(en avant) etorbit
(Surround) deux modes. - Exécuter la commande: :
DATA_ROOT="example-images"
OUTPUT_DIR="outputs/example-images"
accelerate launch --main_process_port 1223 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="$OUTPUT_DIR"
+evaluator.data_name="static_cam_single"
+evaluator.data_root="$DATA_ROOT"
+evaluator.camera_info.mode="forward"
+evaluator.camera_info.elevation=0.
+evaluator.camera_info.azimuth_range=[-30,30]
+evaluator.focal=1.0938
+evaluator.camera_info.radius=2.0
- Vue des résultatsLa vue 3D multi-vues générée est sauvegardée dans le fichier
outputs/example-images
La première consiste à ouvrir le fichier avec un outil tel que Blender.
2. génération de scènes 3D sans échantillonnage
- Préparer les données: Téléchargez le jeu de données ReconFusion (https://huggingface.co/datasets/Yuyang-z/reconfusion-torch) et décompressez-le dans le fichier
data/reconfusion-torch/re10k
. - Étape 1 : Générer les pistes de la caméra: :
python tools/pose_traj_generate.py -d data/reconfusion-torch/re10k -o outputs/pose_dataset --save_data_pose -sx 0.2 0.4 -0.2 -0.4 -sz 0.2 0.4 -0.2 -0.4 -n 18
- Étape 2 : Générer des vues: :
accelerate launch --main_process_port 1224 inference.py
diffusion.pretrain_unet="./genxd-model"
diffusion.output_dir="outputs/re10k-group"
+evaluator.data_name="reconfgroup"
+evaluator.data_root="data/reconfusion-torch/re10k"
+evaluator.pose_dir="outputs/pose_dataset/re10k"
+evaluator.num_context_views=3
+evaluator.n_views=3
+evaluator.save_target_only=True
+evaluator.pad_to_square=True
- Vue des résultatsLa vue 3D générée est affichée dans l'écran
outputs/re10k-group
.
3. génération de scènes dynamiques 4D
- Préparer les données: Utilisez la vidéo dans l'ensemble de données CamVid-30K et mettez-la dans le fichier
data/camvid-30k
. - Exécuter la commandeVous devez ajuster les paramètres en fonction de la tâche spécifique, référez-vous à la mise à jour de GitHub pour des exemples de commandes.
- Vue des résultatsLa vidéo générée est enregistrée dans le répertoire de sortie spécifié.
Fonction en vedette Fonctionnement
Décomposition du mouvement de la caméra et de l'objet
- GenXD utilise un module temporel multi-vues pour séparer le mouvement de la caméra de celui de l'objet.
- exemple de fonctionnement: :
python motion_decompose.py --input data/camvid-30k/sample_video --output outputs/motion_data
- utiliserLes données de mouvement générées peuvent être utilisées pour ajuster la scène 4D.
Utilisation du jeu de données CamVid-30K
- structure des donnéesIl contient des images et des fichiers COLMAP (par ex.
cameras.bin
). - Données de chargement: Mettre en
data/camvid-30k
Exécutez le script de test :
python test_dataset.py --dataset data/camvid-30k
mise en garde
- La mémoire du GPU doit être de 16 Go ou plus, et la génération de tâches 4D prend beaucoup de temps.
- Consultez la dernière mise à jour du code pour la version officielle du 26 mars 2025 du modèle pré-entraîné.
- Pour toute question, veuillez contacter .
scénario d'application
- expérience de recherche
- Les chercheurs ont utilisé GenXD pour tester les algorithmes de génération 3D et 4D et valider les nouveaux modèles.
- Création de contenu virtuel
- Les créateurs génèrent des scènes dynamiques qui peuvent être utilisées dans des projets d'animation ou de réalité virtuelle.
- Éducation et formation
- Les étudiants apprennent la vision par ordinateur et les techniques génératives en utilisant l'ensemble de données CamVid-30K.
QA
- GenXD est-il gratuit ?
- Oui, il s'agit d'un projet open source sous licence Apache-2.0.
- Ai-je besoin d'une connexion internet pour l'utiliser ?
- Non requis, installé et prêt à fonctionner localement.
- Les résultats générés sont-ils réels ?
- Le modèle n'est pas totalement réaliste, il n'atteint pas un sens parfait du réalisme et n'est destiné qu'à un usage de recherche.
© déclaration de droits d'auteur
L'article est protégé par le droit d'auteur et ne doit pas être reproduit sans autorisation.
Articles connexes
Pas de commentaires...