Stable Dreamfusion

Von Aron Petau2 Minuten gelesen

Stable Dreamfusion

Quellen

Ich habe eine populäre Implementierung geforkt, die den Google-DreamFusion-Algorithmus nachgebaut hat. Der Original-Algorithmus ist nicht öffentlich zugänglich und closed-source. Du findest meine geforkte Implementierung in meinem GitHub-Repository. Diese Version basiert auf Stable Diffusion als Grundprozess, was bedeutet, dass die Ergebnisse möglicherweise nicht an die Qualität von Google heranreichen. Die ursprüngliche DreamFusion-Publikation und Implementierung bietet weitere Details zur Technik.

Gradio

Ich habe den Code geforkt, um meine eigene Gradio-Schnittstelle für den Algorithmus zu implementieren. Gradio ist ein hervorragendes Werkzeug für die schnelle Entwicklung von Benutzeroberflächen für Machine-Learning-Modelle. Endnutzer müssen nicht programmieren - sie können einfach ihren Wunsch äußern, und das System generiert ein 3D-Modell (OBJ-Datei), das direkt mit einem Rigging versehen werden kann.

Mixamo

Ich habe Mixamo für das Rigging des Modells verwendet. Es ist ein leistungsstarkes Werkzeug für Rigging und Animation von Modellen, aber seine größte Stärke ist die Einfachheit. Solange man ein Modell mit einer einigermaßen humanoiden Form in T-Pose hat, kann man es in Sekunden mit einem Rigging versehen. Genau das habe ich hier gemacht.

Unity

Ich habe Unity verwendet, um das Modell für das Magic Leap 1 Headset zu rendern. Dies ermöglichte mir, eine interaktive und immersive Umgebung mit den generierten Modellen zu schaffen.

Die Vision war, eine KI-Wunschkammer zu bauen: Du setzt die AR-Brille auf, äußerst deine Wünsche, und der Algorithmus präsentiert dir ein fast reales Objekt in erweiterter Realität.

Da wir keinen Zugang zu Googles proprietärem Quellcode haben und die Einschränkungen unserer Studio-Computer (die zwar leistungsstark, aber nicht optimal für maschinelles Lernen ausgelegt sind), sind die Ergebnisse nicht so ausgereift wie erhofft. Trotzdem sind die Resultate faszinierend, und ich bin mit dem Ergebnis zufrieden. Die Generierung eines einzelnen Objekts in der Umgebung dauert etwa 20 Minuten. Der Algorithmus kann recht launisch sein - oft hat er Schwierigkeiten, zusammenhängende Objekte zu generieren, aber wenn er erfolgreich ist, sind die Ergebnisse durchaus beeindruckend.