Démarrage rapide
Apprendre encore plus
Fonctionnalités prises en charge
C'est aussi simple que plug and play avec nerfstudio !
Nerfstudio fournit une API simple qui permet un processus simplifié de bout en bout de création, de formation et de test des NeRF. La bibliothèque prend en charge une implémentation plus interprétable des NeRF en modularisant chaque composant. Avec des NeRF plus modulaires, nous espérons créer une expérience plus conviviale dans l’exploration de la technologie.
Il s'agit d'un référentiel convivial dont le but est de créer une communauté où les utilisateurs peuvent plus facilement s'appuyer sur les contributions des uns et des autres. Nerfstudio a été initialement lancé en tant que projet open source par des étudiants de Berkeley dans le laboratoire KAIR de Berkeley AI Research (BAIR) en octobre 2022 dans le cadre d'un projet de recherche (article). Il est actuellement développé par des étudiants de Berkeley et des contributeurs de la communauté.
Nous nous engageons à fournir des ressources d'apprentissage pour vous aider à comprendre les bases (si vous débutez) et à vous tenir au courant (si vous êtes un vétéran chevronné) de tout ce qui concerne NeRF. En tant que chercheurs, nous savons à quel point il est difficile de s’intégrer à cette technologie de nouvelle génération. Nous sommes donc là pour vous aider avec des tutoriels, de la documentation et bien plus encore !
Vous avez des demandes de fonctionnalités ? Vous souhaitez ajouter votre tout nouveau modèle NeRF ? Vous avez un nouvel ensemble de données ? Nous apprécions les contributions ! N'hésitez pas à contacter l'équipe nerfstudio pour toute question via Discord.
Vous avez des commentaires ? Nous serions ravis que vous remplissiez notre formulaire de commentaires Nerfstudio si vous souhaitez nous faire savoir qui vous êtes, pourquoi vous êtes intéressé par Nerfstudio, ou nous faire part de vos commentaires !
Nous espérons que nerfstudio vous permettra de construire plus rapidement ? apprendre ensemble ? et contribuer à notre communauté NeRF ?.
Les sponsors de ce travail incluent Luma AI et BAIR commons.
Le démarrage rapide vous aidera à démarrer avec le NeRF vanille par défaut formé sur la scène classique de Blender Lego. Pour des modifications plus complexes (par exemple, exécuter avec vos propres données/configurer un nouveau graphique NeRF), veuillez vous référer à nos références.
Vous devez disposer d'une carte vidéo NVIDIA avec CUDA installée sur le système. Cette bibliothèque a été testée avec la version 11.8 de CUDA. Vous pouvez trouver plus d'informations sur l'installation de CUDA ici
Nerfstudio nécessite python >= 3.8
. Nous vous recommandons d'utiliser conda pour gérer les dépendances. Assurez-vous d'installer Conda avant de continuer.
conda create --name nerfstudio -y python=3.8 conda active nerfstudio pip install --upgrade pip
Installez PyTorch avec CUDA (ce dépôt a été testé avec CUDA 11.7 et CUDA 11.8) et tiny-cuda-nn. cuda-toolkit
est requis pour construire tiny-cuda-nn
.
Pour CUDA 11.8 :
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118 conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
Voir Dépendances dans la documentation d'installation pour en savoir plus.
Option facile :
pip installer nerfstudio
OU si vous voulez le dernier et le meilleur :
clone git https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio pip install --upgrade outils de configuration pip pip install -e .
OU si vous souhaitez ignorer toutes les étapes d'installation et commencer directement à utiliser nerfstudio, utilisez l'image docker :
Voir Installation - Utiliser l'image Docker .
Ce qui suit formera un modèle nerfacto , notre modèle recommandé pour les scènes du monde réel.
# Téléchargez des données de test : ns-download-data nerfstudio --capture-name=poster# Train modelns-train nerfacto --data data/nerfstudio/poster
Si tout fonctionne, vous devriez voir la progression de la formation comme suit :
Naviguer vers le lien à la fin du terminal chargera la visionneuse Web. Si vous utilisez une machine distante, vous devrez transférer le port Websocket (7007 par défaut).
Il est possible de charger un modèle pré-entraîné en exécutant
ns-train nerfacto --data data/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
Étant donné un point de contrôle de modèle pré-entraîné, vous pouvez démarrer la visionneuse en exécutant
ns-viewer --load-config {outputs/.../config.yml}
Une fois que vous disposez d'un modèle NeRF, vous pouvez soit restituer une vidéo, soit exporter un nuage de points.
Nous devons d’abord créer un chemin que la caméra devra suivre. Cela peut être fait dans la visionneuse sous l'onglet "RENDU". Orientez votre vue 3D vers l'endroit où vous souhaitez que la vidéo démarre, puis appuyez sur "AJOUTER UNE CAMÉRA". Cela définira la première image clé de la caméra. Continuez vers de nouveaux points de vue en ajoutant des caméras supplémentaires pour créer le chemin de la caméra. Nous fournissons d'autres paramètres pour affiner davantage le chemin de votre caméra. Une fois satisfait, appuyez sur "RENDER" qui affichera un modal contenant la commande nécessaire au rendu de la vidéo. Supprimez la tâche de formation (ou créez un nouveau terminal si vous avez beaucoup de calcul) et exécutez la commande pour générer la vidéo.
D'autres options d'exportation vidéo sont disponibles, apprenez-en plus en exécutant
ns-render --aide
Même si les modèles NeRF ne sont pas conçus pour générer des nuages de points, cela reste possible. Accédez à l'onglet « EXPORTER » dans la visionneuse 3D et sélectionnez « NUAGE DE POINTS ». Si l'option de recadrage est sélectionnée, tout ce qui se trouve dans le carré jaune sera exporté dans un nuage de points. Modifiez les paramètres comme vous le souhaitez, puis exécutez la commande en bas du panneau dans votre ligne de commande.
Vous pouvez également utiliser la CLI sans la visionneuse. Découvrez les options d'exportation en exécutant
ns-export pointcloud --help
Utiliser un ensemble de données existant est une bonne chose, mais vous souhaiterez probablement utiliser vos propres données ! Nous prenons en charge diverses méthodes pour utiliser vos propres données. Avant de pouvoir être utilisé dans nerfstudio, l'emplacement et les orientations de la caméra doivent être déterminés puis convertis dans notre format à l'aide ns-process-data
. Nous nous appuyons pour cela sur des outils externes, des instructions et des informations peuvent être trouvées dans la documentation.
Données | Dispositif de capture | Exigences | ns-process-data Vitesse |
---|---|---|---|
Images | N'importe lequel | COLMAP | |
Vidéo | N'importe lequel | COLMAP | |
Données 360 | N'importe lequel | COLMAP | |
Polycam | IOS avec LiDAR | Application Polycam | |
Enregistrer3D | IOS avec LiDAR | Application Record3D | |
Métaforme | N'importe lequel | Métaforme | |
ODM | N'importe lequel | ODM | |
Aria | Lunettes Aria | Projet Aria | |
Coutume | N'importe lequel | Poses de caméra |
Nous proposons d'autres modèles que nerfacto, par exemple si vous souhaitez entraîner le modèle nerf original, utilisez la commande suivante
ns-train vanille-nerf --data DATA_PATH
Pour une liste complète des modèles inclus, exécutez ns-train --help
.
Chaque modèle contient de nombreux paramètres qui peuvent être modifiés, trop nombreux pour être répertoriés ici. Utilisez la commande --help
pour voir la liste complète des options de configuration.
ns-train nerfacto --aide
Nous prenons en charge quatre méthodes différentes pour suivre les progrès de l'entraînement, en utilisant le viewertensorboard, les poids et biais, et Comet. Vous pouvez spécifier le visualiseur à utiliser en ajoutant --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
à la commande d'entraînement. L'utilisation simultanée de la visionneuse avec wandb ou tensorboard peut provoquer des problèmes de bégaiement lors des étapes d'évaluation. La visionneuse ne fonctionne que pour les méthodes rapides (c'est-à-dire nerfacto, instant-ngp), pour les méthodes plus lentes comme NeRF, utilisez les autres enregistreurs.
Et c'est tout pour débuter avec les bases de nerfstudio.
Si vous souhaitez en savoir plus sur la façon de créer vos propres pipelines, de développer avec la visionneuse, d'exécuter des tests de performance, etc., veuillez consulter certains des liens rapides ci-dessous ou visiter directement notre documentation.
Section | Description |
---|---|
Documentation | Documentation complète et tutoriels sur l'API |
Téléspectateur | Page d'accueil de notre visionneuse Web |
Pédagogique | |
Descriptions des modèles | Description de tous les modèles pris en charge par nerfstudio et explications des composants. |
Description des composants | Cahiers interactifs qui expliquent les modules notables/couramment utilisés dans divers modèles. |
Tutoriels | |
Commencer | Un guide plus détaillé sur la façon de démarrer avec nerfstudio, de l'installation à la contribution. |
Utiliser la visionneuse | Une vidéo de démonstration rapide sur la façon de naviguer dans la visionneuse. |
Utiliser Record3D | Vidéo de démonstration sur la façon d'exécuter nerfstudio sans utiliser COLMAP. |
Pour les développeurs | |
Création de pipelines | Apprenez à créer facilement de nouveaux pipelines de rendu neuronal en utilisant et/ou en implémentant de nouveaux modules. |
Création d'ensembles de données | Vous avez un nouvel ensemble de données ? Apprenez à l'exécuter avec nerfstudio. |
Contribuer | Découvrez comment vous pouvez commencer à contribuer dès maintenant. |
Discorde | Rejoignez notre communauté pour en discuter davantage. Nous serions ravis d’avoir de vos nouvelles ! |
Gazouillement | Suivez-nous sur Twitter @nerfstudioteam pour voir des mises à jour et des annonces intéressantes |
Formulaire de commentaires | Nous apprécions tout commentaire ! C'est notre chance de savoir pourquoi vous utilisez Nerfstudio. |
Nous proposons les structures de support suivantes pour vous faciliter la vie lorsque vous débutez avec les NeRF.
Si vous recherchez une fonctionnalité qui n'est actuellement pas prise en charge, n'hésitez pas à contacter l'équipe Nerfstudio sur Discord !
Visualiseur Web qui vous permet de :
Visualisez l'entraînement en temps réel + interagissez avec la scène
Créez et restituez des scènes avec des trajectoires de caméra personnalisées
Afficher différents types de sortie
Et bien plus encore !
Prise en charge de plusieurs interfaces de journalisation (Tensorboard, Wandb), du profilage de code et d'autres outils de débogage intégrés
Scripts d'analyse comparative faciles à utiliser sur l'ensemble de données Blender
Prise en charge complète du pipeline (avec Colmap, Polycam ou Record3D) pour passer d'une vidéo sur votre téléphone à un rendu 3D complet.
Système de configuration facile à utiliser
Développé par Brent Yi
Bibliothèque pour accélérer les rendus NeRF
Développé par Ruilong Li
Vous pouvez trouver une version papier du framework sur arXiv.
Si vous utilisez cette bibliothèque ou trouvez la documentation utile pour votre recherche, pensez à citer :
@inproceedings{nerfstudio, title = {Nerfstudio: A Modular Framework for Neural Radiance Field Development}, author = { Tancik, Matthew and Weber, Ethan and Ng, Evonne and Li, Ruilong and Yi, Brent and Kerr, Justin and Wang, Terrance and Kristoffersen, Alexander and Austin, Jake and Salahi, Kamyar and Ahuja, Abhik and McAllister, David and Kanazawa, Angjoo }, year = 2023, booktitle = {ACM SIGGRAPH 2023 Conference Proceedings}, series = {SIGGRAPH '23} }