Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Entraînez-vous au 3D Gaussian Splatting à partir de votre propre vidéo
Ce didacticiel vous explique comment entraîner votre propre nuage de points Gaussien Splatting 3D à partir d'une vidéo que vous capturez. Vous soumettez le bundle de tâches du pipeline Gaussian Splatting GitHub .ply Une fois la tâche terminée, vous pouvez afficher le résultat dans n'importe quel visualiseur Gaussian Splatting, tel que. SuperSplat
Le pipeline exécute une tâche unique qui :
-
Extrait des images vidéo à l'aide de l'outil de traitement vidéo FFmpeg.
-
Résout Structure-from-Motion avec COLMAP
et GLOMAP , en enregistrant le modèle du sténopé et des images non déformées. -
Entraîne Gaussian Splatting avec NerF Studio splatfacto
, Splatfacto in the Wild ou l'exemple de bibliothèque gsplat simple_trainer.py , et enregistre la sortie dans le fichier que vous spécifiez. .ply
La vidéo suivante présente le flux de travail du pipeline Gaussian Splatting sur Deadline Cloud.
Durée estimée : quelques heures, configuration de la ferme comprise. En fonction de la vidéo d'entrée et des paramètres que vous sélectionnez, la tâche elle-même peut se terminer en 10 minutes ou prendre des heures.
L'exécution de ce didacticiel entraîne des frais pour les instances de travail GPU qui traitent la tâche. La Comprenez le coût de vos formations section montre comment examiner ces coûts.
Présentation de
Pour terminer ce didacticiel, procédez comme suit :
-
Respectez les conditions préalables de .
-
Configurez votre ferme.
-
Capturez une vidéo d'un sujet.
-
Soumettez la
gsplat_pipelinetâche. -
Surveillez le travail.
-
Téléchargez et visualisez le fichier Gaussian
.plySplatting. -
nettoyer les ressources.
Conditions préalables
Avant de commencer, effectuez la configuration suivante :
-
Créez un AWS compte
si vous n'en avez pas déjà un.
Configurez votre ferme
Vous avez besoin d'une ferme Deadline Cloud dotée d'un parc de GPU CUDA pour exécuter le job Gaussian Splatting. Pour en configurer un, procédez comme suit :
-
Suivez les instructions de l'exemple de CloudFormation modèle de ferme
CUDA pour créer une ferme Deadline Cloud dotée d'une flotte de GPU CUDA et capable de créer des packages conda. -
Suivez les instructions de recette du package conda d'exemple de
NerF Studio pour créer un package conda de NerF Studio dans le canal Amazon S3 de votre ferme CUDA.
Note
Si vous n'avez besoin que du formateur par défaut NERFSTUDIO (splatfacto), vous n'avez pas besoin de déployer le CloudFormation modèle de ferme CUDA ou de créer le package conda personnalisé de NerF Studio. Les exigences minimales sont une ferme Deadline Cloud avec une flotte de GPU, un environnement de file d'attente conda-forge incluant les canaux conda et les packages conda. ffmpeg colmap glomap nerfstudio cuda Les options GSPLAT_SIMPLE_TRAINER et NERFSTUDIO_SPLATFACTOW trainer dépendent de commandes qui ne sont disponibles que dans le package conda personnalisé de NerF Studio.
Capturez une vidéo d'un sujet
Vous pouvez utiliser un appareil photo compatible vidéo tel que votre smartphone pour capturer une vidéo d'un sujet pour votre Gaussian Splatting. Tenez compte des conseils suivants :
-
Utilisez un large champ de vision, tel que le niveau de zoom 0,5 dans l'application de votre appareil photo. Avec un champ de vision plus large, un plus grand nombre d'objets sont communs entre les paires d'images Structure-from-Motion à utiliser.
-
Désactivez la stabilisation vidéo. Le fait de le désactiver permet de préserver des optiques identiques entre toutes les montures et peut améliorer la qualité des résolutions.
-
Planifiez le mouvement de votre caméra en fonction du sujet. Pour capturer un objet, comme un banc ou un vélo, faites plusieurs fois le tour du sujet à différentes hauteurs et distances. Pour capturer l'intérieur d'une pièce, surveillez l'extérieur de la pièce avec la caméra tournée vers l'intérieur, et répétez l'opération à différentes hauteurs de caméra. Pour capturer des espaces moins structurés tels que le terrain extérieur, réfléchissez à la manière d'inclure tout ce que vous voulez dans votre Gaussian Splatting et de le capturer sous différents angles.
-
Capturez la vidéo au ralenti et en continu.
-
Continuez à déplacer la caméra. Évitez de vous arrêter et de vous déplacer à partir d'un seul endroit.
Copiez la vidéo que vous avez capturée à partir de votre appareil photo sur votre ordinateur pour la soumettre à la ferme.
Soumettre la tâche gsplat_pipeline
Pour soumettre le job Gaussian Splatting
-
Si vous ne possédez pas de copie locale du GitHub dépôt deadline-cloud-samples
, clonez-le ou téléchargez-le au format ZIP : git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles -
À partir du
job_bundlesrépertoire, exécutez la commande suivante :deadline bundle gui-submit gsplat_pipeline -
Passez à l'onglet Job-specific Paramètres et sélectionnez les chemins pour le fichier vidéo d'entrée et le fichier de sortie.
-
Choisissez Soumettre ou personnalisez d'abord les paramètres. Si la vidéo d'entrée est plus complexe, vous devrez peut-être augmenter la valeur approximative du nombre d'images.
Vous pouvez également sélectionner le trainer Gaussian Splatting à utiliser et personnaliser les options de la CLI correspondantes. Par exemple, pour utiliser le simulateur de chaîne de Markov de Monte Carlo (MCMC) avec l'option de grille bilatérale pour produire jusqu'à 2 millions de splats, apportez les modifications suivantes :
-
Passez le Gaussian Splatting Trainer de à.
NERFSTUDIOGSPLAT_SIMPLE_TRAINER -
Modifiez le texte des options GSPlat Simple Trainer de
--strategy.cap-max 1000000--strategy.cap-max 2000000à pour obtenir 2 millions de splats, et de--no-use-bilateral-grid--use-bilateral-gridà pour activer l'option de grille bilatérale.
Note
Si vous sélectionnez une entrée vidéo ou des options qui nécessitent une utilisation de la mémoire supérieure à celle fournie par la flotte CUDA, vous devez mettre à jour les paramètres minimaux de la flotte. Re-deploy votre CloudFormation modèle avec des valeurs de paramètres mises à jour, ou modifiez les paramètres depuis la console Deadline Cloud.
Surveillance de la tâche
Une fois que vous avez soumis la tâche, vous pouvez suivre son statut à partir du tableau des tâches de suivi de Deadline Cloud. En fonction de l'entrée vidéo et des paramètres que vous avez sélectionnés, la tâche peut se terminer en 10 minutes ou prendre des heures.
Lorsque la tâche est en cours d'exécution, ouvrez le menu contextuel de la tâche et choisissez Afficher les journaux pour ouvrir la vue des journaux. Au fur et à mesure que le pipeline suit ses étapes, il met à jour le message d'état visible dans les détails de l'exécution de la tâche.
Si vous rencontrez des erreurs, la sortie du journal dans cette vue vous aide à en déterminer la cause. Les causes courantes incluent le manque de mémoire ou l'incapacité à résoudre les poses de la caméra. Le pipeline peut échouer au cours de l'une de ces étapes : extraction d'images FFmpeg, Structure-from-Motion résolution GLOMAP ou formation NerF Studio. Pour résoudre les erreurs, ajustez l'infrastructure de la flotte ou utilisez une résolution d'image ou un nombre d'images inférieurs.
Téléchargez et visualisez le fichier .ply de Gaussian Splatting
Pour télécharger et afficher la sortie
-
Lorsque la tâche est terminée avec succès, ouvrez le menu contextuel de la tâche terminée dans le tableau Tâches du moniteur Deadline Cloud et choisissez Télécharger la sortie. Selon vos paramètres, il affiche la progression du téléchargement ou présente une commande CLI que vous pouvez utiliser pour télécharger. Deadline Cloud enregistre le
.plyfichier à l'emplacement que vous avez sélectionné lors de la soumission du travail. -
Pour afficher le résultat dans votre navigateur, ouvrez le site Web de l'
SuperSplat éditeur et faites glisser le fichier depuis le navigateur de fichiers de votre système d'exploitation vers la SuperSplat page. -
Activez l'option Show/Hide Splats, puis faites pivoter et déplacez-vous dans la scène pour trouver le sujet de votre capture.
Avec SuperSplat, vous pouvez également modifier votre Gaussian Splatting. Par exemple, vous pouvez sélectionner une sphère, inverser la sélection et supprimer les éclaboussures situées à l'extérieur pour recadrer la scène. La SuperSplat documentation .ply fichier dans l'outil de votre choix.
Comprenez le coût de vos formations
Le moniteur Deadline Cloud inclut une fonctionnalité d'exploration de l'utilisation qui estime le coût des tâches que vous exécutez, en indiquant le coût de chaque formation. Si vous êtes à l'aise pour effectuer vos tests en dehors des heures de pointe, lorsque les CUDA-capable instances sont disponibles avec des taux d'interruption suffisamment faibles, une flotte CUDA ponctuelle coûte moins cher qu'une flotte à la demande. L'explorateur d'utilisation n'affiche pas les coûts en dehors de la durée d'exécution de votre tâche, tels que la durée d'inactivité de l'instance de travail ou le stockage sur votre compartiment Amazon S3.
Nettoyage
Pour éviter des frais récurrents, nettoyez les ressources que vous avez créées pour ce didacticiel :
Pour nettoyer les ressources du didacticiel
-
Si vous avez déployé le CloudFormation modèle de batterie de serveurs CUDA, supprimez la CloudFormation pile de la CloudFormation console.
-
Si vous avez utilisé un parc de serveurs existant et créé un parc de GPU spécialement pour ce didacticiel, arrêtez ou supprimez ce parc. Si vous avez utilisé une flotte partagée préexistante, laissez-la en place.
Étapes suivantes
Vous pouvez séparer, modifier et remixer l'ensemble de gsplat_pipeline tâches en fonction de vos besoins. Vous pouvez personnaliser votre propre pipeline de reconstruction 3D ou suivre les mêmes modèles pour exécuter différentes charges de travail CUDA sur votre ferme CUDA Deadline Cloud. L'exemple de README
-
Exécutez la tâche n'importe où avec l'interface de ligne de commande Open Job Description
, par exemple localement ou sur une instance Amazon EC2, plutôt que sur votre ferme. -
Décomposez la tâche unique du pipeline en plusieurs étapes Open Job Description reliées par des dépendances, en suivant le schéma de l'exemple Job Development Progression sur GitHub
. Des étapes distinctes peuvent être exécutées sur différents parcs, tels qu'un CPU-only parc pour l'extraction des images et un parc de GPU pour la formation. -
Divisez le pipeline en plusieurs tâches avec une structure différente. Par exemple, une tâche à résoudre une Structure-from-Motion fois et une deuxième tâche pour essayer de manière itérative différentes variantes des paramètres d'entraînement au gaussian Splatting.
Ressources connexes
Les ressources suivantes fournissent des informations supplémentaires :