Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Trainiere 3D Gaussian Splatting aus deinem eigenen Video
Dieses Tutorial führt Sie durch das Training Ihrer eigenen 3D-Gaußschen Splatting-Punktwolke anhand eines von Ihnen aufgenommenen Videos. Sie senden das Gaussian Splatting-Pipeline-Jobpaket an GitHub .ply Wenn der Job abgeschlossen ist, können Sie das Ergebnis in einem beliebigen Gaussian Splatting-Viewer anzeigen, z. B. SuperSplat
Die Pipeline führt eine einzelne Aufgabe aus, die:
-
Extrahiert Videobilder mit dem FFmpeg-Videoverarbeitungstool.
-
Wird Structure-from-Motion mit COLMAP
und GLOMAP gelöst und speichert das Lochmodell und unverzerrte Bilder. -
Trainiert Gaussian Splatting mit NerF Studio Splatfacto
, Splatfacto in the Wild oder dem Beispiel der gsplat Bibliothek simple_trainer.py und speichert die Ausgabe in der von Ihnen angegebenen Datei. https://docs.gsplat.studio/main/examples/colmap.html .ply
Das folgende Video zeigt den Gaussian Splatting-Pipeline-Workflow in Deadline Cloud.
Ungefähre Zeit: Einige Stunden, einschließlich der Einrichtung der Farm. Je nach Eingangsvideo und den von Ihnen ausgewählten Einstellungen kann der Job selbst in 10 Minuten abgeschlossen sein oder Stunden dauern.
Bei der Ausführung dieses Tutorials fallen Gebühren für die GPU-Worker-Instances an, die den Job verarbeiten. Der Machen Sie sich mit den Kosten Ihrer Ausbildungsjobs vertraut Abschnitt zeigt, wie Sie diese Kosten überprüfen können.
-Übersicht
Gehen Sie folgendermaßen vor, um dieses Tutorial abzuschließen:
-
Sorgen Sie dafür, dass die -Voraussetzungen erfüllt sind.
-
Richten Sie Ihre Farm ein.
-
Nehmen Sie ein Video von einer Person auf.
-
Reichen Sie den
gsplat_pipelineJob ein. -
Überwachen Sie den Job.
-
Laden Sie die Gaussian
.plySplatting-Datei herunter und sehen Sie sie sich an. -
Bereinigen Sie die Ressourcen.
Voraussetzungen
Bevor Sie beginnen, schließen Sie das folgende Setup ab:
-
Erstellen Sie ein AWS Konto
, falls Sie noch keines haben.
Richten Sie Ihre Farm ein
Sie benötigen eine Deadline Cloud-Farm mit einer CUDA-GPU-Flotte, um den Gaussian Splatting-Job auszuführen. Gehen Sie wie folgt vor, um eine einzurichten:
-
Folgen Sie den Anweisungen zur
CloudFormation CUDA-Farm-Beispielvorlage, um eine Deadline Cloud-Farm zu erstellen, die über eine CUDA-GPU-Flotte verfügt und Conda-Pakete erstellen kann. -
Folgen Sie den Anweisungen zum
NeRF Studio-Beispielrezept für ein Conda-Paket, um ein Nerf Studio-Conda-Paket in den Amazon S3-Channel Ihrer CUDA-Farm zu erstellen.
Anmerkung
Wenn Sie nur den Standardtrainer NERFSTUDIO (Splatfacto) benötigen, müssen Sie die CloudFormation CUDA-Farmvorlage nicht bereitstellen oder das benutzerdefinierte Nerf Studio-Conda-Paket erstellen. Die Mindestanforderungen sind eine Deadline Cloud-Farm mit einer GPU-Flotte, eine Warteschlangenumgebung, die in den Conda-Kanälen conda-forge enthalten ist, und die Conda-Pakete. ffmpeg colmap glomap nerfstudio cuda Die Optionen GSPLAT_SIMPLE_TRAINER und NERFSTUDIO_SPLATFACTOW Trainer hängen von Befehlen ab, die nur im maßgeschneiderten Nerf Studio-Conda-Paket verfügbar sind.
Nehmen Sie ein Video von einer Person auf
Sie können eine videofähige Kamera wie Ihr Smartphone verwenden, um ein Video von einem Motiv für Ihr Gaussian Splatting aufzunehmen. Beachten Sie die folgenden Tipps:
-
Verwenden Sie in Ihrer Kamera-App ein weites Sichtfeld, z. B. die Zoomstufe 0,5. Bei einem größeren Sichtfeld stehen mehr Objekte zwischen den Bildpaaren Structure-from-Motion zur Verfügung, die gemeinsam verwendet werden können.
-
Schalten Sie die Videostabilisierung aus. Wenn Sie sie ausschalten, bleibt die gleiche Linsenoptik zwischen allen Frames erhalten, was die Qualität der Auflösungen verbessern kann.
-
Planen Sie Ihre Kamerabewegung je nach Motiv. Um ein Objekt wie eine Bank oder ein Fahrrad aufzunehmen, umkreisen Sie das Objekt einige Male in unterschiedlichen Höhen und Entfernungen. Um das Innere eines Raums aufzunehmen, folgen Sie der Umgebung des Raums, wobei die Kamera nach innen zeigt, und wiederholen Sie den Vorgang auf verschiedenen Kamerahöhen. Überlege dir, wie du alles, was du willst, in dein Gaussian Splatting einbeziehen und wie du alles, was du willst, aus verschiedenen Blickwinkeln aufnehmen kannst, um weniger strukturierte Räume wie das Gelände von außen aufzunehmen.
-
Nehmen Sie das Video in langsamer und gleichmäßiger Bewegung auf.
-
Bewegen Sie die Kamera weiter. Vermeiden Sie es, an einer einzigen Stelle anzuhalten und zu schwenken.
Kopieren Sie das Video, das Sie von Ihrer Kamera aufgenommen haben, auf Ihren Computer, um es an die Farm zu senden.
Senden Sie den Job gsplat_pipeline
Um den Gaussian Splatting-Job einzureichen
-
Wenn Sie keine lokale Kopie des GitHub Deadline-Cloud-Samples-Repositorys haben
, klonen Sie es oder laden Sie es als ZIP herunter: git clone https://github.com/aws-deadline/deadline-cloud-samples.git cd deadline-cloud-samples/job_bundles -
Führen Sie im
job_bundlesVerzeichnis den folgenden Befehl aus:deadline bundle gui-submit gsplat_pipeline -
Wechseln Sie zur Registerkarte „Job-specific Einstellungen“ und wählen Sie Pfade sowohl für die Eingabevideodatei als auch für die Ausgabe-Ply-Datei aus.
-
Wählen Sie „Senden“ oder passen Sie zuerst die Einstellungen an. Wenn das Eingabevideo eine höhere Komplexität hat, müssen Sie möglicherweise den Wert für die ungefähre Anzahl der Bilder erhöhen.
Sie können auch auswählen, welcher Gaussian Splatting Trainer verwendet werden soll, und die CLI-Optionen dafür anpassen. Um beispielsweise den Monte Carlo Markov Chain (MCMC) -Trainer mit der Option „Bilaterales Raster“ zu verwenden und bis zu 2 Millionen Splats zu produzieren, nehmen Sie die folgenden Änderungen vor:
-
Schalte den Gaussian Splatting Trainer von zu um.
NERFSTUDIOGSPLAT_SIMPLE_TRAINER -
Ändern Sie den Text für die GSplat Simple Trainer-Optionen von bis
--strategy.cap-max 1000000, um 2 Millionen Splats--strategy.cap-max 2000000zu erhalten, und von bis, um die bilaterale Grid-Option--no-use-bilateral-grid--use-bilateral-gridzu aktivieren.
Anmerkung
Wenn Sie ein Eingabevideo oder Optionen auswählen, die eine höhere Speicherauslastung erfordern, als die CUDA-Flotte bietet, müssen Sie die Mindesteinstellungen der Flotte aktualisieren. Re-deploy Ihre CloudFormation Vorlage mit aktualisierten Parameterwerten oder bearbeiten Sie die Einstellungen in der Deadline Cloud-Konsole.
Überwachen des Auftrags
Nachdem Sie den Job eingereicht haben, können Sie seinen Status in der Deadline Cloud Monitor-Job-Tabelle überwachen. Je nach Eingabevideo und den von Ihnen ausgewählten Einstellungen kann der Job in 10 Minuten abgeschlossen sein oder Stunden dauern.
Wenn der Job ausgeführt wird, öffnen Sie das Kontextmenü für die Aufgabe und wählen Sie Protokolle anzeigen, um die Protokollansicht zu öffnen. Während die Pipeline ihre Schritte durchläuft, aktualisiert sie die Statusmeldung, die in den Details zur Aufgabenausführung sichtbar ist.
Wenn Sie auf Fehler stoßen, hilft Ihnen die Protokollausgabe in dieser Ansicht dabei, die Ursache zu ermitteln. Zu den häufigsten Ursachen gehören unzureichender Speicherplatz oder das Nichtlösen der Kamerapositionen. Die Pipeline kann bei jedem dieser Schritte ausfallen: FFmpeg-Frame-Extraktion, Structure-from-Motion GLOMAP-Lösung oder Nerf Studio-Training. Um Fehler zu beheben, passen Sie entweder die Flotteninfrastruktur an oder verwenden Sie eine niedrigere Bildauflösung oder Bildanzahl.
Laden Sie die Datei Gaussian Splatting .ply herunter und schauen Sie sie sich an
Um die Ausgabe herunterzuladen und anzusehen
-
Wenn der Job erfolgreich abgeschlossen wurde, öffnen Sie das Kontextmenü für die abgeschlossene Aufgabe in der Aufgabentabelle des Deadline Cloud-Monitors und wählen Sie Ausgabe herunterladen. Je nach Ihren Einstellungen wird entweder der Fortschritt des Downloads angezeigt oder es wird ein CLI-Befehl angezeigt, den Sie zum Herunterladen verwenden können. Deadline Cloud speichert die
.plyDatei an dem Ort, den Sie beim Senden des Jobs ausgewählt haben. -
Um das Ergebnis in Ihrem Browser anzuzeigen, öffnen Sie die SuperSplat
Editor-Website und ziehen Sie die Datei aus dem Dateibrowser Ihres Betriebssystems auf die SuperSplat Seite. -
Aktiviere die Option Show/Hide „Splats“, drehe und bewege dich dann in der Szene, um das Motiv deiner Aufnahme zu finden.
Mit SuperSplat kannst du auch dein Gaussian Splatting bearbeiten. Du kannst zum Beispiel eine Kugel auswählen, die Auswahl umkehren und die außerhalb der Kugel liegenden Splats löschen, um die Szene zuzuschneiden. In der SuperSplat Dokumentation .ply Datei in das Tool Ihrer Wahl importieren.
Machen Sie sich mit den Kosten Ihrer Ausbildungsjobs vertraut
Deadline Cloud Monitor beinhaltet eine Nutzungserkundungsfunktion, die die Kosten der von Ihnen ausgeführten Jobs schätzt und anzeigt, wie viel jede Schulung kostet. Wenn Sie Ihre Tests außerhalb der Spitzenzeiten durchführen möchten, wenn CUDA-capable Instances mit ausreichend niedrigen Unterbrechungsraten verfügbar sind, kostet eine Spot-CUDA-Flotte weniger als eine On-Demand-Flotte. Der Usage Explorer zeigt keine Kosten an, die außerhalb Ihrer Job-Laufzeit liegen, wie z. B. die Zeit der Instance im Leerlauf eines Workers oder die Speicherung in Ihrem Amazon S3-Bucket.
Bereinigen
Um laufende Gebühren zu vermeiden, bereinigen Sie die Ressourcen, die Sie für dieses Tutorial erstellt haben:
So bereinigen Sie die Ressourcen für das Tutorial
-
Wenn Sie die CloudFormation CUDA-Farmvorlage bereitgestellt haben, löschen Sie den CloudFormation Stack aus der CloudFormation Konsole.
-
Wenn Sie eine vorhandene Farm verwendet und speziell für dieses Tutorial eine GPU-Flotte erstellt haben, beenden oder löschen Sie diese Flotte. Wenn Sie eine bereits vorhandene gemeinsame Flotte verwendet haben, lassen Sie sie unverändert.
Nächste Schritte
Sie können das gsplat_pipeline Auftragspaket auseinandernehmen, bearbeiten und neu mischen, um es an Ihre Bedürfnisse anzupassen. Sie können Ihre eigene 3D-Rekonstruktionspipeline anpassen oder denselben Mustern folgen, um verschiedene CUDA-Workloads auf Ihrer Deadline Cloud-CUDA-Farm auszuführen. In der Beispiel-README-Datei
-
Führen Sie den Job überall mit der Open Job Description CLI aus
, z. B. lokal oder auf einer Amazon EC2-Instance, anstatt auf Ihrer Farm. -
Zerlegen Sie die einzelne Aufgabe der Pipeline in mehrere Schritte zum Öffnen der Jobbeschreibung, die durch Abhängigkeiten miteinander verbunden sind. Folgen Sie dabei dem Muster im Beispiel Job Development Progression unter. GitHub
Separate Schritte können auf verschiedenen Flotten ausgeführt werden, z. B. eine CPU-only Flotte für die Frame-Extraktion und eine GPU-Flotte für das Training. -
Teilen Sie die Pipeline in mehrere Jobs mit unterschiedlicher Struktur auf. Zum Beispiel eine Aufgabe, die Structure-from-Motion einmal gelöst werden muss, und eine zweite Aufgabe, um iterativ verschiedene Variationen von Gaussian Splatting-Trainingsparametern auszuprobieren.
Zugehörige Ressourcen
Die folgenden Ressourcen bieten zusätzliche Informationen: