KI in der Praxis

NeRFs erstellen mit Nvidia Instant-NGP - No-Code-Anleitung

Maximilian Schreiner

Screenshot Instant-NGP

Nvidias Instant-NGP erzeugt NeRFs in wenigen Sekunden. Ein neuer Release macht das Tool auch für Laien nutzbar.

Neural Radiance Fields (NeRFs) können aus dutzenden Fotos eine 3D-Szene lernen und diese anschließend fotorealistisch rendern. Die Technologie ist ein heißer Kandidat für die nächste zentrale Visualisierungstechnologie und wird von Unternehmen wie Google oder Nvidia stetig weiterentwickelt. Google setzt NeRFs etwa für Immersive View ein.

Mittlerweile ist die Technologie außerhalb der Forschungslabors bei experimentierfreudigen Fotograf:innen und anderen Künstler:innen angekommen. Doch der Zugang ist noch immer voller Hürden, benötigt oft Code-Kenntnisse und starke Rechenleistung.

Nvidias Instant-NGP und Open-Source-Nerfstudio erleichtern Zugang

Werkzeuge wie das Open-Source-Toolkit Nerfstudio versuchen, den Prozess der NeRF-Erstellung zu vereinfachen und bieten Tutorials, Python-Library und Web-Interface. Nerfstudio setzt unter anderem auf eine Implementation von Instant-NGP (Instant Neural Graphics Primitives), ein Framework von Nvidia-Forschenden, das NeRFs in wenigen Sekunden auf einer einzelnen GPU lernen kann.

Nun hat das Instant-NGP-Team eine neue Version veröffentlicht, die nur noch eine Zeile Code für eigene NeRFs benötigt - alles andere läuft über eine simple ausführbare Datei inklusive Interface.

Wer nur das mitgelieferte Beispiel ausprobieren will oder zusätzlich eine kleine Datei herunterlädt, benötigt gar keinen Code. Instant-NGP läuft auf allen Nvidia-Karten ab der GTX-1000-Serie und benötigt auf Windows CUDA 11.5 oder höher.

Instant-NGP: Erste Schritte zum Fuchs-NeRF

Um mit Instant-NGP das mitgelieferte Fuchs-Beispiel zu trainieren, müsst ihr lediglich den für eure Nvidia-Grafikkarte passenden Windows Binary Release von Instant-NGP laden. Startet das Interface über die instant-ngp.exe im heruntergeladenen Ordner. Anschließend könnt ihr unter data/nerf/ den fox-Ordner in das Instant-NGP-Fenster ziehen und das Training startet. Nach wenigen Sekunden sollte ein Fuchskopf an einer Wand sichtbar sein.

Jetzt könnt ihr über die Einstellungen etwa Meshs erzeugen oder über das Kamera-Interface einen Kamera-Pfad planen und anschließend ein Video rendern. Das wird im Instant-NGP-Ordner gespeichert. Wie das geht, zeigt etwa Jonathan Stephens von EveryPoint in seinem kurzen Videotutorial auf Youtube.

So verwandelt ihr ein eigenes Video in ein NeRF

Für ein eigenes NeRF unterstützt Instant-NGP zwei Ansätze: COLMAP zum Erstellen eines Datensatzes aus einer Reihe von Fotos oder einem Video, das ihr aufgenommen habt oder Record3D, um einen Datensatz mit einem iPhone 12 Pro oder neuer (basierend auf ARKit) zu erstellen.

Beide Methoden extrahieren aus Videos Bilder und schätzen für jedes Bild im Trainingsdatensatz die Kameraposition, da diese für das NeRF-Training notwendig ist.

Wer keinerlei Code-Kenntnisse besitzt, kann aus dem InstantNGP-Batch-GitHub von Stephens zwei simple .bat-Dateien herunterladen - eines für Fotos und eines für Videos. Einfach die Dateien in den Instant-NGP-Ordner schieben und ein Video oder einen Ordner Bilder auf die entsprechende .bat-Datei ziehen.

So sollte euer Ordner aussehen, nachdem ihr die .bat-Dateien geladen habt. | Bild: Jonathan Stephens

Bei einem Video müsst ihr noch einen Wert bestimmen, der festlegt, wie viele Bilder pro Sekunde Videomaterial extrahiert werden. Der Wert sollte am Ende zwischen 150 und 300 Bilder für das gesamte Video ergeben. Ein Wert von 2 ergibt etwa 120 Bilder für einen 60-Sekunden-Clip.

Kaktus-NeRF nervt - aber ist ja mein erster Versuch

Sobald der Prozess abgeschlossen ist, öffnet sich das Instant-NGP-Fenster und der Trainingsprozess beginnt automatisch. Nun könnt ihr wie oben beschrieben Trainingsparameter ändern, DLSS anschalten oder ein Video rendern.

Mein erster Versuch ist voller Artefakte, die sich wohl leicht beheben lassen - etwa über einen angepassten aabb_scale-Wert, der beeinflusst, wie weit die NeRF-Implementierung Strahlen verfolgt. Aber dafür dauert der Prozess inklusive Videoaufnahme unter fünf Minuten. Als GPU habe ich eine RTX 3060 Ti eingesetzt.

Wer mehr über NeRFs und andere KI-gestützte Rendering-Methoden lernen möchte, kann sich unseren DEEP MINDS KI-Podcast mit Instant-NGP-Entwickler Thomas Müller anhören.