1 Punkte von GN⁺ 2023-11-29 | 1 Kommentare | Auf WhatsApp teilen
  • MeshGPT erzeugt Dreiecks-Meshes als Tokensequenzen und zielt auf die Generierung von Meshes mit scharfen Kanten und kompakter Triangulierung, ähnlich wie von Menschen erstellte Modelle
  • Anders als dichte Iso-Surfacing-Ergebnisse erzeugt es durch das Sampling eines gelernten Geometrie-Vokabulars direkt eine kompaktere Mesh-Struktur
  • Ein Encoder-Decoder auf Basis von Graph Convolution und Vektorquantisierung lernt zunächst ein Einbettungs-Vokabular, das lokale Geometrie und Topologie enthält
  • Ein reiner Decoder-Transformer sagt auf Basis vorheriger Einbettungen den nächsten Index voraus und erzeugt nach dem Training neue Meshes, indem er Sequenzen aus dem Vokabular sampelt
  • In verschiedenen Kategorien wurden eine Steigerung der shape coverage um 9 % und eine Verbesserung des FID-Werts um 30 Punkte gezeigt; außerdem ist der Ansatz für partielle Mesh-Vervollständigung und die Erzeugung von 3D-Assets für Szenen nutzbar

Wie MeshGPT Meshes erzeugt

  • MeshGPT betrachtet Dreiecks-Meshes als Dreieckssequenzen, erzeugt Tokens aus einem gelernten Geometrie-Vokabular und dekodiert diese anschließend in Dreiecksflächen
  • Das Ergebnis zielt auf clean, kohärente und kompakte Meshes ab; scharfe Kanten und hohe Detailtreue sind die zentralen Merkmale
  • Im Vergleich zu bestehenden Baselines erzeugt es kompaktere Meshes und bewahrt dabei scharfe geometrische Details
    • Baselines übersehen teils Details, erzeugen übermäßig triangulierte Meshes oder geben zu stark vereinfachte Formen aus
  • Quantitative Vergleiche über verschiedene Kategorien hinweg zeigen bessere Ergebnisse als aktuelle Methoden zur Mesh-Generierung
    • shape coverage um 9 % erhöht
    • FID-Wert um 30 Punkte verbessert

Trainingspipeline und Einsatzmöglichkeiten

  • Zunächst wird auf einer großen Shape-Sammlung ein Geometrie-Einbettungs-Vokabular für Dreiecks-Meshes gelernt
    • Verwendet wird ein Encoder-Decoder-Netzwerk
    • Es enthält Vektorquantisierung im Bottleneck
    • Durch Graph Convolution kodieren die Einbettungen Informationen über lokale Mesh-Geometrie und Topologie
  • Das gelernte Vokabular ist als Sequenz aufgebaut, und der Decoder kann diese wieder in Dreiecke rekonstruieren
  • Der Transformer übernimmt die Vorhersage von Tokensequenzen des gelernten Vokabulars
    • Er erhält frühere Einbettungen als Eingabe und sagt den Index der nächsten Einbettung voraus
    • Nach abgeschlossenem Training erzeugt er Meshes, indem er Sequenzen direkt aus dem Vokabular sampelt
  • Wenn ein partielles Mesh gegeben ist, lassen sich mehrere mögliche Ergebnisse für die shape completion ableiten
    • Auch während ein Nutzer ein partielles Eingabe-Mesh bearbeitet, können Beispiele für Vervollständigungen gezeigt werden
  • Der Ansatz kann auch zur Erzeugung von 3D-Assets für Szenen verwendet werden; es gibt ein Beispiel, in dem ein Raum mit von MeshGPT erzeugten Assets gefüllt wurde

Materialien und verwandte Arbeiten

1 Kommentare

 
GN⁺ 2023-11-29
Hacker-News-Kommentare
  • So sieht meiner Meinung nach eine wirklich revolutionäre Idee aus. Das Paper steckt voller Details, und wir wissen bereits, dass Transformer skalieren können.
    Ich denke, viele Unternehmen werden diese Idee nutzen, um eine allgemeine 3D-Asset-Generierungspipeline zu trainieren. Die Idee, „zuerst mit Graph-Convolutions ein Vokabular latenter quantisierter Embeddings zu lernen und diese Embeddings lokale Mesh-Geometrie und Topologieinformationen erfassen zu lassen; diese Embeddings zu sequenzieren und den Decoder sie als Dreiecke rekonstruieren zu lassen, um das Mesh effektiv wiederherzustellen“, wirkt im Rückblick so schön und offensichtlich.
    Auch der Teil „als praktischer Ansatz zur Darstellung eines Meshes M für autoregressive Generierung definieren wir die zu generierenden Tokens als Sequenz von Dreiecken“ ist wirklich großartig.

    • Es ist schon cool, aber nach heutigen Maßstäben im Bereich 3D-Rekonstruktion auch ein ziemlich typischer Ansatz. Ich würde dieses Paper nicht als besonders innovativ oder außergewöhnlich bezeichnen.
      Was mich in diesem Bereich wirklich interessiert, ist https://yiconghong.me/LRM/, ein großes 3D-Rekonstruktionsmodell, das aus einem einzelnen Bild ein 3D-Mesh erzeugt und auf Millionen unterschiedlicher 3D-Modelle trainiert wurde.
    • Bemerkenswert ist hier außerdem, dass das Training höchstens etwa 7 Tage insgesamt auf 4 A100 dauert. Wirklich aktuelle Spitzenforschung erfordert nicht immer Cluster in Rechenzentrumsgröße.
    • Kann jemand erklären, was quantisierte Embeddings sind?
    • Man sagt zwar: „Wir wissen, dass Transformer skalieren können“, aber ich frage mich, ob es starke Belege dafür gibt, dass andere Modelle nicht skalieren, oder ob wir einfach mehr Zeit in Transformer gesteckt haben.
      Convolutional ResNets scheinen sowohl in Vision als auch in Sprache zu skalieren: (cv) https://arxiv.org/abs/2301.00808, (cv) https://arxiv.org/abs/2110.00476, (nlp) https://github.com/HazyResearch/safari
      Mehrschicht-Perzeptrons scheinen ebenfalls zu skalieren: (cv) https://arxiv.org/abs/2105.01601, (cv) https://arxiv.org/abs/2105.03404
      Natürlich gibt es auch keinen zwingenden Grund, Attention aufzugeben, aber ich glaube, kaum jemand hat ein MLP- oder Convolution-Modell mit einer Milliarde Parametern auf das Problem geworfen. In Attention, Transformer und deren Skalierung ist ein enormer Aufwand geflossen, mit Tausenden Papers pro Jahr; bei anderen Architekturen sieht man dieses Niveau kaum.
      Einer der Gründe, warum das Paper The ResNet Strikes Back gut ist: Es erinnert daran, sich nicht vom Hype mitreißen zu lassen und dass Fortschritte miteinander kombiniert werden. Seit den ursprünglichen ResNet-Zeiten haben wir viel über Trainingstechniken gelernt; wendet man sie auf ResNets an, steigt die Leistung deutlich und die Lücke schrumpft stark. Zumindest gilt das in dem Vision-Bereich, in dem ich forsche, und in einem Umfeld, in dem man Papers veröffentlichen muss, um zu überleben, sowie mit trendgetriebenen Reviews kann Forschung leicht in eine Richtung gedrängt werden.
    • Ich frage mich, wie sich das von ähnlichen Verfahren unterscheidet, die zuvor auf DNA- und RNA-Sequenzen angewendet wurden.
  • Als Machine-Learning-Engineer, der auch ein bisschen Blender nutzt und hobbymäßig Spiele entwickelt, finde ich das ziemlich beeindruckend, aber anhand der begrenzten Möbelbeispiele ist es noch nicht wirklich praxistauglich.
    Ein erfahrener Modeler könnte so ein Mesh in unter 5 Minuten erstellen, und die Generierung muss weiterhin mit Polygonen geseedet werden.
    Der nächste Schritt dürfte sein, dass ein LLM die Seed-Erzeugung steuert und ein Bildmodell zum autoregressiven Teil der Struktur hinzukommt. Dann könnten wir vielleicht echte Assets für Mobile Games sehen.

    • Kritik an AI-Workflows nach dem Muster „ein erfahrener Modeler könnte so ein Mesh in 5 Minuten erstellen“ finde ich nicht besonders hilfreich. Die meisten sind keine erfahrenen Modeler, kennen auch keine und haben kein Geld, um welche zu engagieren.
      In vielen Fällen ist so ein Tool besser, selbst wenn es länger dauert und schlechtere Qualität liefert als ein Profi, wenn die realistische Alternative gar nichts ist.
    • Klingt gut. Kannst du mir dann Modeler vorstellen, die bei Bedarf on demand arbeiten und in 5-Minuten-Einheiten abrechnen?
      Es wäre wirklich toll, wenn ich nur 1–2 Dollar pro Modell zahlen und es direkt maßgeschneidert in mein Spiel einbauen könnte.
    • Das richtet sich nicht an erfahrene Modeler. Genau wie Stable Diffusion nicht nur für professionelle Maler gedacht ist.
      Der Punkt ist, Nicht-Profis Werkzeuge zu geben und gleichzeitig erfahrene Modeler von Aufgaben wie 10.000 Stuhlvarianten für künftige AAA-Spiele zu befreien, damit sie sich auf interessantere Dinge konzentrieren können. Sie können einzigartige Charaktere oder neue futuristische Modelle erstellen, die nicht in den Trainingsdaten enthalten sind und echte Vorstellungskraft und Expertise erfordern.
    • Mit der hier gezeigten Mesh-Topologie würde das in fast jedem professionellen Workflow als Asset abgelehnt. Ein erfahrener Modeler kann in 5 Minuten ein deutlich hochwertigeres Modell erstellen, das sich viel besser für Texturing und Deformation eignet; ein Speed-Modeler schafft etwas Vergleichbares sogar in einer Minute.
      Prozedurale Systeme wie Blender Geometry Nodes können bereits endlose Varianten solcher Modelle ausgeben. Trotzdem ist das Entwicklungstempo erstaunlich.
    • So wie erfahrene Entwickler ihre Workflows mit LLMs bootstrappen, werden auch erfahrene Modeler solche Tools bald als Teil ihres normalen Workflows nutzen. Gelegenheitsnutzer können damit Dinge tun, die sie vorher nicht konnten, aber richtig glänzen sie, wenn Experten der jeweiligen Wissensdomäne sie einsetzen.
      Ich glaube, je mehr Erfahrung man mit einem konkreten Use Case hat, desto mehr Nutzen zieht man aus einem Machine-Learning-Modell.
      Leider sind genau diese Leute oft am stärksten gegen die Einführung, ohne es überhaupt so weit geübt zu haben, dass es tatsächlich nützlich wird. Ein Teil des Problems ist vermutlich, dass sie es als Zauberstab erwarten. In Wirklichkeit ist es nur ein neues Werkzeug wie PhotoShop, Blender, Microsoft Word oder PowerPoint.
      Die meisten öffnen solche Apps, klicken kurz ziellos herum und verschwinden dann bald wieder, ohne zurückzukommen. Mit „AI“ ist es genauso.
  • Mein gewählter Beruf, 3D-/Filmproduktion, fühlt sich derzeit an, als säße man in einem Schützengraben. Spannend, aber auch beängstigend.

    • Man könnte das auch als automatisches Scaffolding sehen. Allgemeine Modellierungs- und CAD-Tools könnten solche Funktionen einbauen, damit man schneller loslegen kann.
      Ein weiterer großer Vorteil ist die Kombinierbarkeit. Wenn ein Modell eine Tasse und einen Tisch erzeugen kann, weiß es gewissermaßen auch, wie man eine Tasse auf einem Tisch erzeugt.
      Stell dir vor, du könntest komplexe Zahnräder und Maschinenteile passend zu einem Projekt im Handumdrehen erstellen und sie exakt an der gewünschten Position und Rotation platzieren. Das ist der Funktionsweise von GitHub Copilot sehr ähnlich.
    • In dieser Hinsicht wirkt es nicht so, als wären LLMs bei 3D-Animation wesentlich weiter als beim Programmieren. Sie können einzelne Teile ausgeben, die für sich genommen gut aussehen, aber das Puzzle muss ein Mensch zusammensetzen. Und dieses Zusammensetzen bedeutet oft, dass man die meisten Teile neu schreibt oder neu baut.
      Fürs Erste sind wir sicher, aber wir müssen lernen, wie man neue Technologien nutzt.
    • Wenn man die Rolle eines Bidding Producers kennt, kann man sich auch vorstellen, mit welchen Schwierigkeiten sie zu kämpfen haben. Auf der einen Seite sagen Filmemacher: „So etwas soll jetzt auch KI gemacht haben“, und auf der anderen Seite geraten Bidding Producer und Kunden von VFX-/Animationsstudios in Panik, als wäre alles wieder komplett neu.
    • 3D-CGI hat sich auch ohne KI in den letzten 30 Jahren bereits in enormem Tempo weiterentwickelt. Heutige Tools sind qualitativ anders geworden, mit Sculpting, Simulation, automatischem Rigging und mehr.
    • Wie siehst du die Anwendungsfälle dieser Technologie in deinem Bereich? Ich bin neugierig, ob die Qualität hoch wirkt.
  • Was ist die Eingabe? Wird eine Textabfrage wie „chair“ in ein Mesh umgewandelt?
    So wie es aussieht, ist nicht ein einfaches Zusatzfeature, sondern Mesh-Vervollständigung die wichtigste Ein- und Ausgabeform.

    • Ja, das ist schwer zu durchschauen.
      Die Eingabe selbst scheint ein 3D-Mesh zu sein. Daher wirkt es so, als betreibe das Modell „Formvervollständigung“, zum Beispiel indem es aus ein paar Beinen einen Stuhl erzeugt. Oder wenn die Eingabeform vollständiger ist, erzeugt es vielleicht „Varianten“.
      Als Ausgangspunkt sieht es aber trotzdem brauchbar aus. Die Qualität ist niedrig, aber man könnte wohl die Ausgabe anderer Modelle, die Text-zu-Mesh erzeugen, als Eingabe verwenden und mit diesem Modell schärfere und konsistentere Ergebnisse erhalten.
    • So wie man einem sprachbasierten LLM einen Prompt in Sprache gibt, gibt man diesem LLM ein zu vervollständigendes 3D-Mesh als Prompt.
    • Das habe ich mich auch gefragt. In der Grafik sieht es so aus, als sei die Eingabe ein anderes Stuhl-Mesh, was es etwas weniger interessant erscheinen lässt.
  • Es fühlt sich an, als würden all die verbliebenen schwierigen Probleme, bei denen es seit den 90ern kaum Fortschritt gab, darauf warten, auf irgendeine Weise mit Transformern gelöst zu werden. Wirklich eine beeindruckende Zeit.

  • Der nächste Durchbruch wird eine UX sein, mit der man in VR vor solchen Modellen 3D-Szenen erstellt. In Umgebungen, für die es Trainingsdaten gibt, wird man im Grunde permanente und beliebige 3D-Umgebungen erzeugen können.
    Für die Texturgenerierung kann man Diffusionsmodelle verwenden.
    Mark hatte recht und war wirklich viel zu früh dran.

    • Mark?
      Ach, der Mark? lol, verstehe.
      Wäre es nicht besser, jemandem wie Lecun die Anerkennung zu geben? Mark hat sicher nicht deshalb alles auf das Metaverse gesetzt, weil er irgendwie vorhergesehen hätte, dass Deep Learning groß wird. Selbst die Leute, die die frühen Modelle trainiert haben, waren sich nicht sicher, wie gut das funktionieren würde.
  • Selbst wenn das „nur“ Mesh-Autovervollständigung ist, wäre es für 3D-Artists enorm nützlich. Derzeit gibt es eine Lücke zwischen der Art, wie man Charaktere sculptet, und der Art, wie man sie animiert. Normalerweise braucht man den zeitaufwendigen Schritt der Retopologie des Modells.
    Eine Transformer-basierte Retopologie, die ein grobes Mesh nimmt und saubere Topologie ausgibt, wäre eine große Zeitersparnis.
    Eine weitere Anwendung wäre, die Ausgabe von Gaussian Splatting oder Diffusionsmodellen in MeshGPT zu geben. Man könnte direkt aus Text nutzbare Assets mit sauberer Topologie erhalten.

    • Weniger für 3D-Artists; das hier werden zu 99 % Leute nutzen, die noch nie in ihrem Leben von Hand ein Mesh erstellt haben. Leute, die die Notwendigkeit ersetzen wollen, 3D-Artists zu engagieren, etwa Programmierer, die Designer nicht bezahlen wollen oder können, Architekten, die außer CAD nichts gelernt haben, Fiverr-Jobs und dergleichen.
      Ich glaube, hier wird nicht recht verstanden, dass wir uns schrittweise in Richtung Automatisierung der Automatisierung bewegen. Und die Programmierer, die damit ihren Lebensunterhalt verdienen können, werden nur ein sehr kleiner Teil derjenigen sein, die heute davon leben können.
    • Man muss verstehen, dass solche Ansätze sehr empfindlich auf In-Distribution-/Out-of-Distribution-Daten reagieren. Wenn man einfach Nutzerdaten hineinsteckt, wird es vermutlich nicht richtig funktionieren.
    • Tut mir leid, aber saubere Topologie für Charaktere zu erzeugen, wird wohl noch sehr lange unmöglich bleiben.
  • Ich mag dieses Feld. Das Paper enthält eine schöne Website, Beispiele und Videos.
    Das ist deutlich erfrischender als der dichte, auf Abstract, Einleitung und Ergebnisse fokussierte Paper-Stil.

  • Sieht wirklich großartig aus. Für Indie-Game-Entwickler dürfte es enorm hilfreich sein, um einen großen Asset-Pool zu generieren.

    • Wegen solcher Technologien ist Indie-Game-Entwicklung meiner Ansicht nach tot.
      Stattdessen werden große Unternehmen Spiele zum „Mach dein eigenes Spiel“ bauen.
      Indie-Games wirken heutzutage ohnehin schon ziemlich derivativ. Mittelfristig werden große Unternehmen diese Technologie nutzen und Indie-Games abwürgen.
  • Wow, das wird wirklich besser. Wegen der seltsamen Kanten ist noch ein Stück Weg zu gehen, aber an diesem Punkt fühlt es sich nicht mehr wie ein algorithmisches oder komplexes Problem an, sondern wie iterative Verbesserungen.
    Meine Pipeline würde wirklich schneller werden, wenn ich nicht mehr jedes Mesh in eine Bibliothek für prozedurale Generierung stecken müsste, in der unzählige kleine Mesh-Modifikatoren mit Drivern verbunden sind. Stattdessen könnte ich alle Meshes in einen Ordner legen, ein Netzwerk trainieren und dann weitere Dinge im gleichen Stil anfordern. Solange ich nicht kreativer eingreifen will, sehe ich, dass ich keine Retopologie oder andere Handarbeit mehr machen müsste.
    Natürlich ist prozedurale Generierung weiterhin besser, bis wir dieses Niveau vollständig erreichen, aber es ist wirklich spannend, wie schnell sich das hier vollendet. Hoffentlich sprechen wir beim Unreal-Showcase im nächsten Jahr über ein neues Asset-Generator-Feature.

    • Gibt es eine empfehlenswerte Bibliothek für prozedurale Generierung?