1 puntos por GN⁺ 2023-11-29 | 1 comentarios | Compartir por WhatsApp
  • MeshGPT genera mallas triangulares como secuencias de tokens, con el objetivo de producir mallas con aristas definidas y una triangulación compacta, similares a modelos creados por humanos
  • A diferencia de los resultados densos de iso-surfacing, muestrea un vocabulario geométrico aprendido para crear directamente una estructura de malla más compacta
  • Un codificador-decodificador basado en convoluciones de grafos y cuantización vectorial aprende primero un vocabulario de embeddings que contiene geometría local y topología
  • El Transformer solo decodificador predice el siguiente índice a partir de los embeddings previos y, tras el entrenamiento, genera nuevas mallas muestreando secuencias desde el vocabulario
  • En diversas categorías mostró un aumento del 9% en shape coverage y una mejora de 30 puntos en la puntuación FID; también puede usarse para completar mallas parciales y generar assets 3D para escenas

Cómo MeshGPT genera mallas

  • MeshGPT considera una malla triangular como una secuencia de triángulos, genera tokens desde un vocabulario geométrico aprendido y luego los decodifica en caras triangulares
  • Los resultados apuntan a mallas clean, coherent y compact; las sharp edges y la alta fidelidad son características clave
  • En comparación con baselines existentes, genera mallas más compactas sin perder detalles geométricos definidos
    • Los baselines a veces pierden detalles, producen mallas con triangulación excesiva o entregan formas demasiado simples
  • En comparaciones cuantitativas con diversas categorías, muestra mejores resultados que los métodos más recientes de generación de mallas
    • Aumento del 9% en shape coverage
    • Mejora de 30 puntos en la puntuación FID

Pipeline de entrenamiento y usos

  • Primero aprende un vocabulario de embeddings geométricos para mallas triangulares a partir de una gran colección de shapes
    • Usa una red codificador-decodificador
    • Incluye cuantización vectorial en el cuello de botella
    • Mediante convoluciones de grafos, hace que los embeddings contengan información de geometría local y topología de la malla
  • El vocabulario aprendido se organiza como secuencias, y el decodificador puede reconstruirlas de nuevo como triángulos
  • El Transformer se encarga de la predicción de secuencias de tokens del vocabulario aprendido
    • Recibe como entrada los embeddings anteriores y predice el índice del siguiente embedding
    • Una vez entrenado, genera mallas muestreando directamente secuencias desde el vocabulario
  • Dada una malla parcial, puede inferir varios resultados posibles de shape completion
    • También puede mostrar ejemplos de completion mientras el usuario edita un partial input mesh
  • Puede usarse para la generación de assets 3D para escenas, y hay un ejemplo de una habitación poblada con assets creados con MeshGPT

Materiales y trabajos relacionados

1 comentarios

 
GN⁺ 2023-11-29
Opiniones en Hacker News
  • Creo que así se ve una idea realmente revolucionaria. El paper tiene muchísimos detalles, y ya sabemos que los transformers pueden escalar.
    Me parece que muchas empresas van a usar esta idea para entrenar un pipeline general de generación de assets 3D. La idea de “primero usar convoluciones sobre grafos para aprender un vocabulario de embeddings cuantizados latentes, y hacer que esos embeddings conozcan la geometría local de la malla y la información topológica. Luego ordenar esos embeddings y hacer que el decodificador los reconstruya como triángulos para reconstruir la malla de forma efectiva” se ve, en retrospectiva, demasiado hermosa y obvia.
    También es genial la parte de “como enfoque práctico para representar una malla M para generación autorregresiva, definimos los tokens a generar como una secuencia de triángulos”.

    • Está bueno, pero según los estándares actuales del área de reconstrucción 3D, también es una línea bastante común. No diría que este paper sea particularmente innovador o excepcional.
      Lo que realmente me atrae en este campo es https://yiconghong.me/LRM/, un gran modelo de reconstrucción 3D que crea una malla 3D a partir de una sola imagen y fue entrenado con millones de modelos 3D diversos.
    • Otro punto a destacar aquí es que el entrenamiento, como mucho, toma unos 7 días en total con 4 A100. No todo trabajo de punta requiere un clúster de nivel datacenter.
    • ¿Alguien puede explicar qué son los embeddings cuantizados?
    • Se dice que “sabemos que los transformers pueden escalar”, pero me pregunto si hay evidencia fuerte de que otros modelos no escalan, o si simplemente les hemos dedicado más tiempo a los transformers.
      Las ResNet convolucionales también parecen escalar en visión y lenguaje: (cv) https://arxiv.org/abs/2301.00808, (cv) https://arxiv.org/abs/2110.00476, (nlp) https://github.com/HazyResearch/safari
      Los perceptrones multicapa también parecen escalar: (cv) https://arxiv.org/abs/2105.01601, (cv) https://arxiv.org/abs/2105.03404
      Claro que tampoco hay una razón fuerte para abandonar la atención, pero creo que casi nadie ha intentado lanzar al problema un perceptrón multicapa o un modelo convolucional de escala de mil millones de parámetros. Cada año se invierte un esfuerzo enorme en atención, transformers y su escalado, al punto de que salen miles de papers, y es difícil ver ese nivel en otras arquitecturas.
      Una de las razones por las que el paper The ResNet Strikes Back es bueno es porque nos recuerda que no hay que dejarse arrastrar por el hype, y que los avances se combinan entre sí. Desde la época de las ResNet originales aprendimos muchas técnicas de entrenamiento, y si se las aplicas a ResNet el rendimiento mejora mucho y la brecha se reduce bastante. Al menos así es en el área de visión en la que investigo, y en un entorno donde hay que publicar papers para sobrevivir, con revisiones guiadas por modas, es fácil que la investigación se concentre en una sola dirección.
    • Me pregunto en qué se diferencia esto de técnicas similares que se aplicaron antes a secuencias de DNA y RNA.
  • Como ingeniero de machine learning que también usa un poco Blender y hace desarrollo de juegos como hobby, me parece bastante impresionante, pero viendo solo los ejemplos limitados de muebles, todavía no está en un nivel práctico.
    Un modelador con experiencia podría hacer una malla así en menos de 5 minutos, y la generación todavía tiene que sembrarse con polígonos.
    Creo que el siguiente paso sería que un LLM controle la generación de la semilla y sumar un modelo de imagen a la parte autorregresiva de la estructura. Entonces quizás sí veamos verdaderos assets para juegos móviles.

    • No creo que críticas del flujo de trabajo con IA del tipo “un modelador con experiencia podría hacer una malla así en 5 minutos” sean muy útiles. La mayoría no somos modeladores con experiencia, no conocemos a alguien así y tampoco tenemos dinero para contratarlo.
      En muchos casos, aunque tarde más que un experto y la calidad sea peor, si la alternativa realista es no tener nada, una herramienta así es mejor.
    • Bien. Entonces, ¿puedes presentarme modeladores que trabajen on demand cuando los necesite y cobren por bloques de 5 minutos?
      Sería genial poder pagar solo 1 o 2 dólares por modelo y tenerlo personalizado para mi juego, listo para insertar.
    • Esto no se trata de modeladores con experiencia. Es igual que Stable Diffusion no es solo para pintores profesionales.
      La clave es darles herramientas a los no expertos y, al mismo tiempo, liberar a los modeladores con experiencia de tareas como hacer 10.000 variaciones de sillas para el próximo juego AAA, para que puedan enfocarse en cosas más interesantes. Ellos pueden crear personajes únicos o nuevos modelos futuristas que no existen en los datos de entrenamiento y que requieren verdadera imaginación y expertise.
    • Con la topología de malla que se ve aquí, el asset sería rechazado en casi cualquier trabajo profesional. Un modelador con experiencia puede crear en menos de 5 minutos un modelo de mucha mayor calidad, mucho más adecuado para texturizado y deformación; y un speed modeler podría hacer algo similar incluso en 1 minuto.
      Los sistemas procedurales como Blender Geometry Nodes ya pueden generar infinitas variaciones de modelos así. Aun así, el ritmo de avance es sorprendente.
    • Así como un desarrollador con experiencia usa un LLM para arrancar su flujo de trabajo, los modeladores con experiencia pronto usarán estas herramientas como parte de su flujo de trabajo diario. Los usuarios casuales también podrán hacer cosas que antes no podían, pero cuando las usa un experto en ese dominio de conocimiento, ahí es donde realmente brillan.
      Creo que cuanta más experiencia tengas en un caso de uso específico, más utilidad podrás sacarle a un modelo de machine learning.
      Lamentablemente, muchas veces esas mismas personas son las que más se resisten a adoptarlos, sin siquiera practicar lo suficiente como para llegar a un nivel donde les resulten útiles de verdad. Probablemente parte del problema sea que esperan que esto sea una varita mágica. En realidad, no es más que una nueva herramienta como PhotoShop, Blender, Microsoft Word o PowerPoint.
      La mayoría abre esas apps, hace clics sin mucho sentido por un rato, y pronto se va para no volver. Con la “IA” pasa lo mismo.
  • La profesión que elegí, producción 3D/cine, últimamente se siente como estar en una trinchera de combate. Es interesante y también da miedo.

    • También se puede ver como andamiaje automático. Las herramientas comunes de modelado y CAD podrían incluir este tipo de funciones para poder arrancar más rápido.
      Otra gran ventaja es la posibilidad de composición. Si el modelo puede generar una taza y una mesa, en cierto modo sabe generar una taza sobre una mesa.
      Imagínate poder crear en un abrir y cerrar de ojos engranajes y piezas mecánicas complejas adecuadas para tu proyecto, y colocarlas con precisión en la posición y rotación que quieras. Es muy parecido a cómo funciona GitHub Copilot.
    • En ese sentido, no parece que los LLM estén mucho más adelantados en animación 3D que en programación. Pueden escupir piezas que, vistas por separado, se ven bien, pero el rompecabezas lo tiene que armar una persona. Y armar ese rompecabezas muchas veces significa reescribir o rehacer la mayoría de las piezas.
      Por ahora estamos a salvo, pero hay que aprender a aprovechar la tecnología nueva.
    • Si conoces el rol de bidding producer, también podrás imaginar las dificultades que están viviendo. Por un lado, los cineastas dicen “escuché que ahora la IA también hizo esto”, y por el otro los bidding producers y los clientes de estudios de VFX/animación andan corriendo como si todo volviera a ser nuevo.
    • El CGI 3D, incluso sin IA, ya avanzó a una velocidad enorme durante los últimos 30 años. Las herramientas actuales son cualitativamente distintas: escultura, simulación, autorigging, etc.
    • ¿Cómo ves los casos de uso de esta tecnología en tu área? Me da curiosidad si la calidad te parece alta.
  • ¿Cuál es la entrada? ¿Convierte una consulta de texto como “chair” en una malla?
    Por lo que veo, parece que la forma principal de entrada y salida no es una simple función adicional, sino completar mallas.

    • Sí, es difícil de entender.
      Parece que la entrada en sí es una malla 3D. Así que el modelo parece hacer “completado de formas”. Por ejemplo, generar una silla viendo solo algunas patas. O, cuando la forma de entrada está más completa, quizá genere “variaciones”.
      Aun así, parece un buen punto de partida. Podrías tomar como entrada la salida de otros modelos de texto-a-malla, aunque sea de baja calidad, y usar este modelo para obtener resultados más nítidos y coherentes.
    • Igual que a un LLM solo de lenguaje le das un prompt en lenguaje, a este LLM le das como prompt una malla 3D para que la complete.
    • Yo también me preguntaba eso. Al ver el diagrama, parece que la entrada es otra malla de silla, así que se siente un poco menos interesante.
  • Se siente como si todos los problemas difíciles que quedaban y que no habían avanzado mucho desde los 90 estuvieran esperando su turno para resolverse de alguna manera con transformers. Es una época realmente impresionante.

  • El próximo avance será una UX para crear escenas 3D en VR frente a modelos como estos. Si hay datos de entrenamiento para un entorno, será posible generar entornos 3D prácticamente persistentes y arbitrarios.
    Para generar texturas se pueden usar modelos de difusión.
    Mark tenía razón, solo se movió demasiado pronto.

    • ¿Mark?
      Ah, ¿ese Mark? jajaja, entiendo.
      ¿No sería mejor darle el crédito a alguien como Lecun? Definitivamente, que Mark apostara todo al metaverso no fue porque somehow predijera que el deep learning iba a despegar. Ni siquiera quienes entrenaron los primeros modelos tenían certeza de qué tan bien iban a funcionar.
  • Aunque esto sea “solo” autocompletado de mallas, para artistas 3D es enormemente útil. Ahora hay una desconexión entre la forma en que se esculpe un personaje y la forma en que se anima. Normalmente hace falta un paso muy tardado de retopologizar el modelo.
    Una retopología basada en transformers que reciba una malla burda y devuelva una topología limpia ahorraría muchísimo tiempo.
    Otra aplicación sería meter en MeshGPT la salida de Gaussian splatting o de modelos de difusión. Podrías obtener desde texto assets utilizables con topología limpia.

    • Más que para artistas 3D, esto lo usará en un 99% gente que jamás en su vida ha hecho una malla a mano. Personas que quieren reemplazar la necesidad de contratar artistas 3D: por ejemplo, programadores que no quieren o no pueden pagarle a un diseñador, arquitectos que nunca aprendieron nada fuera de CAD, trabajos tipo Fiverr.
      Creo que aquí no se percibe bien que estamos avanzando poco a poco hacia automatizar la propia automatización. Y los programadores que podrán ganarse la vida con eso serán una fracción muy pequeña de quienes hoy pueden ganársela.
    • Hay que entender que este tipo de enfoques es muy sensible a los datos dentro/fuera de distribución. Si simplemente le enchufas datos de usuario, probablemente no funcione bien.
    • Lo siento, pero generar topología limpia para personajes me parece que seguirá siendo imposible durante muchísimo tiempo.
  • Me gusta este campo. El paper incluye un sitio web atractivo, ejemplos y videos.
    Es mucho más fresco que el estilo de papers centrados en un abstract denso, introducción y resultados.

  • Se ve realmente genial. Parece que ayudaría muchísimo a desarrolladores indie de juegos a generar grandes pools de assets.

    • Creo que por tecnologías como esta, el desarrollo indie de juegos está muerto.
      En su lugar, las grandes empresas harán juegos de “crea tu propio juego”.
      Los juegos indie de hoy ya se sienten bastante derivados. A mediano plazo, creo que las grandes empresas usarán esta tecnología y matarán a los juegos indie.
  • Vaya, está mejorando muchísimo. Todavía falta camino por esos bordes raros, pero a estas alturas se siente menos como un problema algorítmico o complejo y más como mejoras iterativas.
    Mi pipeline se aceleraría muchísimo si ya no tuviera que meter todas las mallas en una biblioteca de generación procedural con montones de pequeños modificadores de malla conectados a drivers. En vez de eso, meto todas las mallas en una carpeta, entreno la red y luego le pido otras cosas del mismo estilo. Se ve que no tendría que hacer retopología ni otros trabajos manuales, salvo que quiera intervenir de forma más creativa.
    Claro, hasta llegar completamente a ese nivel, la generación procedural sigue siendo mejor, pero me entusiasma mucho que esto se esté completando tan rápido. Ojalá para el showcase de Unreal del próximo año estén hablando de una nueva función de Asset Generator.

    • ¿Hay alguna biblioteca de generación procedural que recomiendes?