

SDFStudio ist ein einheitliches und modulares Gerüst für die neuronale implizite Oberflächenrekonstruktion, die auf dem fantastischen Nerfstudio -Projekt aufgebaut ist. Wir bieten eine einheitliche Implementierung von drei wichtigen implizite Oberflächenrekonstruktionsmethoden: Unisurf, Volsdf und Neus. SDFSTUDIO unterstützt auch verschiedene Szenenpräsentationen wie MLPs, Tri-Plane und Mehrauflösungen. Feature Grids und mehrere Punkte-Stichprobenstrategien wie oberflächengeführte Stichproben wie in Unisurf und Voxel-Oberfläche geführte Probenahme von NeuralReconw. Es integriert die jüngsten Fortschritte in dem Gebiet weiter, wie beispielsweise die Utillisierung von monokularen Hinweisen (MonosDF), Geometrie-Regularisierung (UNISURF) und Multi-View-Konsistenz (GEO-Neue). Dank der einheitlichen und modularen Implementierung erleichtert SDFStudio es einfach, Ideen von einer Methode auf eine andere zu übertragen. Zum Beispiel wendet Mono-Neue die Idee von monosdf auf Neus an, und Geo-Volsdf wendet die Idee von Geo-Neus auf Volsdf an.
2023.06.16 : Fügen Sie bakedangelo hinzu, das BakedSDF mit numerischen Graden und progressives Training von Neuralangelo kombiniert.
2023.06.16 : Fügen Sie neus-facto-angelo hinzu, das neus-facto mit numerischen Graßen und progressives Training von Neuralangelo kombiniert.
2023.06.16 : Unterstützung Neuralangelo.
2023.03.12 : Unterstützung Bakedsdf.
2022.12.28 : Unterstützung der neuronalen RGB-D-Oberflächenrekonstruktion.
CUDA muss auf dem System installiert werden. Diese Bibliothek wurde mit Version 11.3 getestet. Weitere Informationen zur Installation von CUDA finden Sie hier.
SDFStudio benötigt python >= 3.7 . Wir empfehlen, Conda zu verwenden, um Abhängigkeiten zu verwalten. Stellen Sie sicher, dass Sie Conda vor dem Fortfahren installieren.
conda create --name sdfstudio -y python=3.8
conda activate sdfstudio
python -m pip install --upgrade pipInstallieren Sie Pytorch mit CUDA (dieses Repo wurde mit CUDA 11.3 getestet) und Tiny-Cuda-nn
pip install torch==1.12.1+cu113 torchvision==0.13.1+cu113 -f https://download.pytorch.org/whl/torch_stable.html
pip install git+https://github.com/NVlabs/tiny-cuda-nn/ # subdirectory=bindings/torchgit clone https://github.com/autonomousvision/sdfstudio.git
cd sdfstudio
pip install --upgrade pip setuptools
pip install -e .
# install tab completion
ns-install-cliIm Folgenden trainieren ein Neus-Facto- Modell.
# Download some test data: you might need to install curl if your system don't have that
ns-download-data sdfstudio
# Train model on the dtu dataset scan65
ns-train neus-facto --pipeline.model.sdf-field.inside-outside False --vis viewer --experiment-name neus-facto-dtu65 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
# Or you could also train model on the Replica dataset room0 with monocular priors
ns-train neus-facto --pipeline.model.sdf-field.inside-outside True --pipeline.model.mono-depth-loss-mult 0.1 --pipeline.model.mono-normal-loss-mult 0.05 --vis viewer --experiment-name neus-facto-replica1 sdfstudio-data --data data/sdfstudio-demo-data/replica-room0 --include_mono_prior TrueWenn alles funktioniert, sollten Sie den folgenden Trainingsfortschritt sehen:

Wenn Sie am Ende des Terminals zum Link zum Link geladen werden, wird das WebViewer (entwickelt von Nerfstudio) geladen. Wenn Sie auf einem Remote -Computer ausgeführt werden, müssen Sie den WebSocket -Port weiterleiten (Standardeinstellungen auf 7007). Bei einer RTX3090 -GPU dauert es ~ 15 Minuten für 20.000 Iterationen, aber Sie können nach 2K -Iterationen im WebViewer bereits angemessene Rekonstruktionsergebnisse sehen.

Es ist auch möglich, ein vorgezogenes Modell durch Laufen zu laden
ns-train neus-facto --trainer.load-dir {outputs/neus-facto-dtu65/neus-facto/XXX/sdfstudio_models} sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 Dadurch wird das Training automatisch fortgesetzt. Wenn Sie das Training nicht wieder aufnehmen möchten, fügen Sie add --viewer.start-train False in Ihren Trainingsbefehl. Beachten Sie, dass die Reihenfolge der Befehlsfunktion, der Datenbilder -Unterbefehl nach dem Modellunterkommando eingehen muss.
Sobald Sie ein ausgebildetes Modell haben, können Sie das Netz exportieren und das Netz rendern.
ns-extract-mesh --load-config outputs/neus-facto-dtu65/neus-facto/XXX/config.yml --output-path meshes/neus-facto-dtu65.ply ns-render-mesh --meshfile meshes/neus-facto-dtu65.ply --traj interpolate --output-path renders/neus-facto-dtu65.mp4 sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65
Sie erhalten das folgende Video, wenn alles richtig funktioniert.
Zuerst müssen wir einen Pfad erstellen, dem die Kamera folgen muss. Dies kann im Zuschauer unter der Registerkarte "Render" erfolgen. Orientieren Sie Ihre 3D -Ansicht an den Ort, an dem Sie das Video starten möchten, und drücken Sie dann "Kamera hinzufügen". Dadurch wird der erste Kameraschlüsselrahmen festgelegt. Fahren Sie mit neuen Viewpunkten fort, um zusätzliche Kameras hinzuzufügen, um den Kamerapfad zu erstellen. Wir bieten andere Parameter, um Ihren Kameradweg weiter zu verfeinern. Sobald er zufrieden ist, drücken Sie "Render", das einen Modal anzeigt, der den Befehl enthält, der zum Rendern des Videos erforderlich ist. Töten Sie den Trainingsjob (oder erstellen Sie ein neues Terminal, wenn Sie viel Berechnung haben) und den Befehl zum Generieren des Videos.
So sehen Sie alle ausführenden Videoexportoptionen an:
ns-render --helpWir bieten viele andere Modelle als Neu-Facto, siehe Dokumentation. Wenn Sie beispielsweise das ursprüngliche Neus -Modell trainieren möchten, verwenden Sie den folgenden Befehl:
ns-train neus --pipeline.model.sdf-field.inside-outside False sdfstudio-data --data data/sdfstudio-demo-data/dtu-scan65 Für eine vollständige Liste der eingeschlossenen Modelle laufen ns-train --help . In der Dokumentation finden Sie eine detailliertere Erklärung für jede Methode.
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.
Beachten Sie, dass die Reihenfolge der Parameter wichtig ist! Zum Beispiel können Sie nach dem Parameter --data --machine.num-gpus nicht festlegen
ns-train neus-facto --help
NerfStudio unterstützt drei verschiedene Methoden, um den Trainingsfortschritt mit dem Betrachter, dem Tensorboard sowie den Gewichten und Vorurteilen zu verfolgen. Diese Visualisierungstools können auch in SDFStudio verwendet werden. Sie können angeben, welcher Visualizer durch Anhängen verwendet werden soll --vis {viewer, tensorboard, wandb} zum Trainingsbefehl. Beachten Sie, dass jeweils nur einer verwendet werden kann. Zusätzlich arbeitet der Betrachter nur für Methoden, die schnell sind (dh NeuS-facto und NeuS-acc ), für langsamere Methoden wie NeuS-facto-bigmlp die anderen Holzfäller.
Weitere Informationen zu Datensätzen und Datenformatdokumentation finden Sie unter Verwendung benutzerdefinierter Datensätze.

Wenn Sie diese Bibliothek verwenden oder die Dokumentation finden, die für Ihre Forschung nützlich ist, sollten Sie sich angeben:
@misc { Yu2022SDFStudio ,
author = { Yu, Zehao and Chen, Anpei and Antic, Bozidar and Peng, Songyou and Bhattacharyya, Apratim
and Niemeyer, Michael and Tang, Siyu and Sattler, Torsten and Geiger, Andreas } ,
title = { SDFStudio: A Unified Framework for Surface Reconstruction } ,
year = { 2022 } ,
url = { https://github.com/autonomousvision/sdfstudio } ,
}