Schnellstart
Erfahren Sie mehr
Unterstützte Funktionen
Es ist so einfach wie Plug-and-Play mit Nerfstudio!
Nerfstudio bietet eine einfache API, die einen vereinfachten End-to-End-Prozess zum Erstellen, Trainieren und Testen von NeRFs ermöglicht. Die Bibliothek unterstützt eine besser interpretierbare Implementierung von NeRFs durch Modularisierung jeder Komponente. Mit modulareren NeRFs hoffen wir, eine benutzerfreundlichere Erfahrung bei der Erforschung der Technologie zu schaffen.
Dies ist ein beitragsfreundliches Repo mit dem Ziel, eine Community aufzubauen, in der Benutzer einfacher auf den Beiträgen anderer aufbauen können. Nerfstudio wurde ursprünglich als Open-Source-Projekt von Berkeley-Studenten im KAIR-Labor von Berkeley AI Research (BAIR) im Oktober 2022 als Teil eines Forschungsprojekts (Papier) gestartet. Es wird derzeit von Berkeley-Studenten und Community-Mitarbeitern entwickelt.
Wir sind bestrebt, Lernressourcen bereitzustellen, die Ihnen helfen, die Grundlagen von NeRF zu verstehen (wenn Sie gerade erst anfangen) und auf dem Laufenden zu bleiben (wenn Sie ein erfahrener Veteran sind). Als Forscher wissen wir, wie schwierig es ist, sich in diese Technologie der nächsten Generation einzuarbeiten. Deshalb sind wir hier, um Ihnen mit Tutorials, Dokumentation und mehr zu helfen!
Haben Sie Funktionswünsche? Möchten Sie Ihr brandneues NeRF-Modell hinzufügen? Haben Sie einen neuen Datensatz? Wir freuen uns über Beiträge! Bitte zögern Sie nicht, sich bei Fragen über Discord an das Nerfstudio-Team zu wenden.
Haben Sie Feedback? Wir würden uns freuen, wenn Sie unser Nerfstudio-Feedback-Formular ausfüllen, wenn Sie uns mitteilen möchten, wer Sie sind, warum Sie an Nerfstudio interessiert sind oder uns Feedback geben möchten!
Wir hoffen, dass Nerfstudio es Ihnen ermöglicht, schneller zu bauen? gemeinsam lernen? und einen Beitrag zu unserer NeRF-Community leisten?
Zu den Sponsoren dieser Arbeit gehören Luma AI und die BAIR Commons.
Der Schnellstart hilft Ihnen beim Einstieg in das Standard-Vanilla-NeRF, das auf der klassischen Blender-Lego-Szene trainiert wurde. Für komplexere Änderungen (z. B. Ausführen mit Ihren eigenen Daten/Einrichten eines neuen NeRF-Diagramms) lesen Sie bitte unsere Referenzen.
Auf dem System muss eine NVIDIA-Grafikkarte mit CUDA installiert sein. Diese Bibliothek wurde mit Version 11.8 von CUDA getestet. Weitere Informationen zur Installation von CUDA finden Sie hier
Nerfstudio erfordert python >= 3.8
. Wir empfehlen die Verwendung von Conda zur Verwaltung von Abhängigkeiten. Stellen Sie sicher, dass Sie Conda installieren, bevor Sie fortfahren.
conda create --name nerfstudio -y python=3.8 Conda aktiviert Nerfstudio pip install --upgrade pip
Installieren Sie PyTorch mit CUDA (dieses Repo wurde mit CUDA 11.7 und CUDA 11.8 getestet) und tiny-cuda-nn. cuda-toolkit
ist zum Erstellen von tiny-cuda-nn
erforderlich.
Für 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
Weitere Informationen finden Sie unter Abhängigkeiten in der Installationsdokumentation.
Einfache Option:
pip install nerfstudio
ODER wenn Sie das Neueste und Beste wollen:
Git-Klon https://github.com/nerfstudio-project/nerfstudio.gitcd nerfstudio pip install --upgrade pip setuptools pip install -e .
ODER wenn Sie alle Installationsschritte überspringen und direkt mit der Verwendung von nerfstudio beginnen möchten, verwenden Sie das Docker-Image:
Siehe Installation – Docker-Image verwenden .
Im Folgenden wird ein Nerfacto -Modell trainiert, unser empfohlenes Modell für reale Szenen.
# Laden Sie einige Testdaten herunter:ns-download-data nerfstudio --capture-name=poster# Train modelns-train nerfacto --data data/nerfstudio/poster
Wenn alles funktioniert, sollten Sie einen Trainingsfortschritt wie folgt sehen:
Durch Navigieren zum Link am Ende des Terminals wird der Webviewer geladen. Wenn Sie auf einem Remote-Computer arbeiten, müssen Sie den WebSocket-Port weiterleiten (Standard ist 7007).
Es ist möglich, ein vorab trainiertes Modell durch Ausführen zu laden
ns-train nerfacto --data data/nerfstudio/poster --load-dir {outputs/.../nerfstudio_models}
Bei einem vorab trainierten Modellprüfpunkt können Sie den Viewer durch Ausführen starten
ns-viewer --load-config {outputs/.../config.yml}
Sobald Sie über ein NeRF-Modell verfügen, können Sie entweder ein Video rendern oder eine Punktwolke exportieren.
Zuerst müssen wir einen Pfad erstellen, dem die Kamera folgen soll. Dies kann im Viewer unter der Registerkarte „RENDER“ erfolgen. Richten Sie Ihre 3D-Ansicht auf den Ort aus, an dem das Video beginnen soll, und klicken Sie dann auf „KAMERA HINZUFÜGEN“. Dadurch wird der erste Kamera-Keyframe festgelegt. Fahren Sie mit neuen Blickwinkeln fort und fügen Sie zusätzliche Kameras hinzu, um den Kamerapfad zu erstellen. Wir stellen weitere Parameter zur Verfügung, um Ihren Kamerapfad weiter zu verfeinern. Wenn Sie zufrieden sind, drücken Sie „RENDER“, woraufhin ein Modal angezeigt wird, das den zum Rendern des Videos erforderlichen Befehl enthält. Beenden Sie den Trainingsjob (oder erstellen Sie ein neues Terminal, wenn Sie über viel Rechenleistung verfügen) und führen Sie den Befehl aus, um das Video zu generieren.
Es stehen weitere Videoexportoptionen zur Verfügung. Erfahren Sie mehr, indem Sie sie ausführen
ns-render --help
Obwohl NeRF-Modelle nicht für die Generierung von Punktwolken ausgelegt sind, ist dies dennoch möglich. Navigieren Sie im 3D-Viewer zur Registerkarte „EXPORT“ und wählen Sie „POINT CLOUD“. Wenn die Option „Zuschneiden“ ausgewählt ist, wird alles im gelben Quadrat in eine Punktwolke exportiert. Ändern Sie die Einstellungen wie gewünscht und führen Sie dann den Befehl unten im Bedienfeld in Ihrer Befehlszeile aus.
Alternativ können Sie die CLI auch ohne den Viewer verwenden. Erfahren Sie mehr über die Exportoptionen, indem Sie ausführen
ns-export pointcloud --help
Die Verwendung eines vorhandenen Datensatzes ist großartig, aber wahrscheinlich möchten Sie Ihre eigenen Daten verwenden! Wir unterstützen verschiedene Methoden zur Nutzung Ihrer eigenen Daten. Bevor es in Nerfstudio verwendet werden kann, müssen der Standort und die Ausrichtung der Kamera bestimmt und dann mithilfe von ns-process-data
in unser Format konvertiert werden. Hierzu greifen wir auf externe Tools zurück, Anleitungen und Informationen finden Sie in der Dokumentation.
Daten | Aufnahmegerät | Anforderungen | ns-process-data |
---|---|---|---|
Bilder | Beliebig | COLMAP | |
Video | Beliebig | COLMAP | |
360 Daten | Beliebig | COLMAP | |
Polycam | IOS mit LiDAR | Polycam-App | |
Record3D | IOS mit LiDAR | Record3D-App | |
Metaform | Beliebig | Metaform | |
ODM | Beliebig | ODM | |
Arie | Aria-Brille | Projekt Arie | |
Brauch | Beliebig | Kameraposen |
Wir bieten andere Modelle als Nerfacto an. Wenn Sie beispielsweise das ursprüngliche Nerf-Modell trainieren möchten, verwenden Sie den folgenden Befehl
ns-train Vanilla-nerf --data DATA_PATH
Für eine vollständige Liste der enthaltenen Modelle führen Sie ns-train --help
aus.
Jedes Modell enthält viele Parameter, die geändert werden können, zu viele, um sie hier aufzulisten. Verwenden Sie den Befehl --help
, um die vollständige Liste der Konfigurationsoptionen anzuzeigen.
ns-train nerfacto --help
Wir unterstützen vier verschiedene Methoden zur Verfolgung des Trainingsfortschritts: das Viewertensorboard, Weights and Biases und Comet. Sie können angeben, welcher Visualizer verwendet werden soll, indem Sie --vis {viewer, tensorboard, wandb, comet viewer+wandb, viewer+tensorboard, viewer+comet}
an den Trainingsbefehl anhängen. Die gleichzeitige Verwendung des Viewers zusammen mit wandb oder tensorboard kann zu Stotterproblemen während der Auswertungsschritte führen. Der Viewer funktioniert nur für schnelle Methoden (z. B. Nerfacto, Instant-NGP). Für langsamere Methoden wie NeRF verwenden Sie die anderen Logger.
Und das ist alles für den Einstieg in die Grundlagen von Nerfstudio.
Wenn Sie mehr darüber erfahren möchten, wie Sie Ihre eigenen Pipelines erstellen, mit dem Viewer entwickeln, Benchmarks ausführen und mehr, sehen Sie sich bitte einige der folgenden Quicklinks an oder besuchen Sie direkt unsere Dokumentation.
Abschnitt | Beschreibung |
---|---|
Dokumentation | Vollständige API-Dokumentation und Tutorials |
Zuschauer | Startseite für unseren Webviewer |
Pädagogisch | |
Modellbeschreibungen | Beschreibung aller von nerfstudio unterstützten Modelle und Erklärungen der Einzelteile. |
Komponentenbeschreibungen | Interaktive Notizbücher, die wichtige/häufig verwendete Module in verschiedenen Modellen erklären. |
Tutorials | |
Erste Schritte | Eine ausführlichere Anleitung zum Einstieg in Nerfstudio von der Installation bis zum Mitwirken. |
Verwenden des Viewers | Ein kurzes Demovideo zur Navigation im Viewer. |
Verwenden von Record3D | Demovideo zum Ausführen von Nerfstudio ohne COLMAP. |
Für Entwickler | |
Pipelines erstellen | Erfahren Sie, wie Sie durch die Verwendung und/oder Implementierung neuer Module ganz einfach neue neuronale Rendering-Pipelines erstellen können. |
Datensätze erstellen | Haben Sie einen neuen Datensatz? Erfahren Sie, wie Sie es mit Nerfstudio ausführen. |
Mitwirken | Erfahren Sie, wie Sie jetzt mit dem Beitragen beginnen können. |
Zwietracht | Treten Sie unserer Community bei, um mehr zu diskutieren. Wir würden uns freuen, von Ihnen zu hören! |
Folgen Sie uns auf Twitter @nerfstudioteam, um coole Updates und Ankündigungen zu sehen | |
Feedback-Formular | Wir freuen uns über jedes Feedback! Dies ist unsere Chance zu erfahren, wofür Sie alle Nerfstudio verwenden. |
Um Ihnen den Einstieg in NeRFs zu erleichtern, bieten wir die folgenden Unterstützungsstrukturen an.
Wenn Sie nach einer Funktion suchen, die derzeit nicht unterstützt wird, zögern Sie bitte nicht, das Nerfstudio-Team auf Discord zu kontaktieren!
Webbasierter Visualizer, der Ihnen Folgendes ermöglicht:
Visualisieren Sie das Training in Echtzeit und interagieren Sie mit der Szene
Erstellen und rendern Sie Szenen mit benutzerdefinierten Kamerabahnen
Sehen Sie sich verschiedene Ausgabetypen an
Und mehr!
Unterstützung für mehrere Protokollierungsschnittstellen (Tensorboard, Wandb), Code-Profilerstellung und andere integrierte Debugging-Tools
Einfach zu verwendende Benchmarking-Skripte für den Blender-Datensatz
Vollständige Pipeline-Unterstützung (mit Colmap, Polycam oder Record3D) für den Übergang von einem Video auf Ihrem Telefon zu einem vollständigen 3D-Rendering.
Benutzerfreundliches Konfigurationssystem
Entwickelt von Brent Yi
Bibliothek zur Beschleunigung von NeRF-Renderings
Entwickelt von Ruilong Li
Eine schriftliche Beschreibung des Frameworks finden Sie auf arXiv.
Wenn Sie diese Bibliothek nutzen oder die Dokumentation für Ihre Recherche nützlich finden, denken Sie bitte über die Angabe von Folgendem nach:
@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} }