
Nerfs: una introducción a la tecnología de renderizado de última generación con Neural Radiance Fields
Este artículo es el primero de una serie en la que revisaremos los campos de radiación neuronal, más comúnmente conocidos como NERF, la tecnología de vanguardia utilizada para sintetizar volúmenes 3D. En esta primera entrega, revisaremos el enfoque «clásico» y los resultados de última generación que lo amplían. Intentaremos manejar los conceptos de la forma más intuitiva posible, para que cualquier experto en tecnología, con o sin experiencia en ML, pueda entenderlos.
¿Qué pueden hacer los NerFs?
Los NERF aparecieron por primera vez en 2020 y ya han recorrido un largo camino desde entonces. Después de todo, en el aprendizaje automático, los hallazgos de hace 10 años pueden parecer tecnología antigua. Son como años de perro. Podemos considerar que los NerF son tan revolucionarios en la tecnología de renderizado 3D como lo fueron las GAN para CV en 2016. Bueno, puede que sea un poco exagerado, pero en realidad propusieron una nueva perspectiva para renderizar objetos a partir de imágenes, que se ha convertido en el paradigma básico para estos problemas. [embed] http://cseweb.ucsd.edu/~viscomp/projects/LF/papers/ECCV20/nerf/website_renders/orchid.mp4[/embed] Sitio web de NerF Pero en realidad, antes de entrar en detalles, probablemente deberíamos dar un paso atrás para entender la complejidad de este problema. ¿Por qué es difícil crear una representación volumétrica de un objeto a partir de sus imágenes? Más aún, ¿por qué sería difícil crear una representación volumétrica, teniendo incluso varias imágenes consecutivas del mismo objeto desde puntos de vista ligeramente diferentes? Aquí nos basamos en el argumento típico de la visión artificial para todo: mientras que los humanos pueden ver dos imágenes consecutivas y entender que fueron tomadas con el mismo objeto y al mismo tiempo, para un ordenador, una imagen no es más que píxeles. En primer lugar, el propio ordenador no puede detectar objetos en una imagen. En segundo lugar, aunque pudiera, no puede entender sin contexto que dos imágenes hayan sido tomadas consecutivamente de la otra y, en tercer lugar, no puede deducir que ambas imágenes se refieren al mismo objeto. Sin embargo, si les enseñamos una forma de seguir ciertos pasos para interpretar los datos de manera que puedan trazar un único objeto continuo a partir de imágenes consecutivas, podemos sintetizar volúmenes.
Conceptos básicos de NerFs
Lo primero que debemos saber sobre los NERF es que definen la arquitectura general de una red neuronal para entrenar una sola escena. Para aquellos que tienen más conocimientos sobre el manejo de modelos y la ejecución de inferencias, los NERF (o al menos los nerRF clásicos) no pretenden producir un único modelo genérico que luego podamos ejecutar en cualquier conjunto de imágenes para renderizar lo que queramos. NerFs estableció una arquitectura de entrenamiento que podemos usar para entrenar una sola escena (un conjunto de imágenes que saben para cada una la posición de la cámara) para visualizar una representación 3D de esa escena en particular, este proceso se denomina ver síntesis. [caption id="attachment_1889" align="aligncenter» width="874"]

Fuente de la imagen: NerF: Representando escenas como campos de radiación neuronal para la síntesis visual (artículo) [/subtítulo]
Terminología clave
Antes de profundizar, hay un vocabulario específico al que deberíamos acostumbrarnos cuando hablamos de los NerFs:
- UN escena para nosotros será el objeto o concepto que queremos renderizar (los tambores en la última figura, por ejemplo).
- UN vista será la representación de una «vista» específica de una escena dada la posición de la cámara.
- Renderización o síntesis de imágenes es el proceso de generar una imagen fotorrealista o no fotorrealista a partir de un modelo 2D o 3D mediante un programa de ordenador.
- Posición de la cámara (nivel) se refiere a la altura de la cámara con respecto al suelo, mientras que el ángulo de la cámara se refiere a su ángulo con respecto al suelo.
- Representación de volúmenes es un conjunto de técnicas que permiten crear una proyección 2D de un conjunto de datos 3D muestreado discretamente.
- Ver síntesis es lo opuesto al renderizado de volúmenes: implica crear una vista 3D a partir de una serie de imágenes 2D
Ejemplo del mundo real
Para entender mejor el proceso de renderizado, considere un ejemplo común: ¿alguna vez ha visto una valla publicitaria en un sitio de construcción que ilustre cómo se vería el proyecto final cuando el edificio esté terminado? Esto puede hacerse manualmente con Photoshop, o el arquitecto puede tomar los planos 3D del edificio, especificar el ángulo de visión, la iluminación y otras especificaciones fotográficas y renderizar una imagen a partir del plano 3D. Se trata de una aplicación de renderizado a partir de objetos 3D. Ahora imagine que lo que queremos no es renderizar una imagen de un objeto 3D, sino renderizar un video desde múltiples vistas. En cierto modo, eso es lo que hacen los NerFs: intentar crear un volumen fluido fotograma a fotograma a partir de las imágenes de entrada y pasarlas a un vídeo de salida, un vídeo, porque es la forma más sencilla de apreciar los resultados. »
¿Cómo se debilita? Enfoque clásico
«Los nerRF se introdujeron por primera vez en artículo: NerF: representación de escenas como campos de radiación neuronal para la síntesis visual. Esto es lo que la literatura denomina ahora el enfoque del «NerF clásico», y es lo básico para entender el paradigma de los NerF. Los autores tienen un sitio web donde ponen a disposición el documento, el código y, lo que es una buena noticia para los científicos de datos, los datos son gratuitos y están disponibles para que cualquiera los pueda descargar. Conceptualmente, los NERF aprenden a mapear coordenadas espaciales específicas en un valor rgb. Para ello, los autores proponen un método que sintetiza las vistas de escenas complejas mediante la optimización de una función de escena volumétrica continua subyacente mediante un conjunto de vistas de entrada. Para sintetizar una vista, utilizan coordenadas 5D: espaciales (x, y, z) y de dirección de visualización (θ, φ) que provienen de los datos del ángulo de la cámara asociados a esa vista. Para sintetizar una nueva vista, debe seguir estos tres pasos: a) hacer que los rayos de la cámara recorran la escena para generar un conjunto muestreado de puntos 3D, b) usar esos puntos y sus direcciones de visualización 2D correspondientes como entrada a la red neuronal para producir un conjunto de colores y densidades de salida, y c) usar técnicas clásicas de renderizado de volumen para acumular esos colores y densidades en una imagen 2D. Dado que la representación del volumen es diferenciable de forma natural (d), el descenso de gradiente se utiliza para optimizar el modelo al minimizar el error entre cada imagen observada y las vistas correspondientes renderizadas a partir de la representación, y la única La entrada requerida para optimizar la representación es un conjunto de imágenes con poses de cámara conocidas. Minimizar el error de renderizado en varias vistas alienta al modelo a aprender una representación más coherente de la escena, logrando una alta fidelidad en la representación de vistas novedosas. Podemos visualizar el proceso general en la siguiente figura: [caption id="attachment_1893" align="aligncenter» width="875"]

Fuente de la imagen: NerF: Representando escenas como campos de radiación neuronal para la síntesis visual (artículo) [/caption] Con algunas salvedades de este enfoque, tenemos que entrenar un modelo nuevo para cada nueva escena que queramos renderizar. Por lo general, es necesario tener muchas imágenes con datos de coordenadas y, según los autores, el entrenamiento de un modelo puede llevar hasta dos días en una GPU NVIDIA V100. Recomendamos encarecidamente revisar la presentación del artículo vídeo y esto uno explicando el artículo para comprender mejor el paradigma de los NerF de forma intuitiva.
Expansión del campo NerF
El campo del NerF se está expandiendo rápidamente y existen al menos dos enfoques diferentes para ello:
- El enfoque basado en escenas (el llamado «enfoque clásico»): requiere entrenar un nuevo modelo para cada nueva escena.
- El enfoque basado en modelos: entrenas un modelo usando diferentes escenas y lo usas para renderizar escenas nuevas (generalmente similares).
Aquí revisamos algunas investigaciones de vanguardia que nos parecieron muy interesantes y que resumen las formas actuales en las que analizamos la renderización de escenas con NerFs:
- Neróico (basado en escenas): Una variante de NerF que se puede entrenar con imágenes del mismo objeto en diferentes condiciones, como diferentes fondos, iluminación, cámaras y poses.
La única anotación esperada para cada imagen es una segmentación aproximada del primer plano y una estimación aproximada de los parámetros de la cámara, que se pueden obtener mediante herramientas como COLMAP. Las principales contribuciones del artículo son:
- Una tubería modular novedosa para inferir las propiedades geométricas y de los materiales de objetos capturados en condiciones variables, utilizando únicamente imágenes dispersas, máscaras de primer plano y poses de cámara gruesas como entrada adicional.
- Una nueva arquitectura de varias etapas en la que primero extraen la geometría y refinan los parámetros de entrada de la cámara y, a continuación, deducen las propiedades del material del objeto, que muestran que son resistentes a las entradas sin restricciones.
- Un nuevo método para estimar las normales a partir de los campos de radiación neuronal que les permite estimar mejor las propiedades de los materiales y volver a iluminar los objetos que las técnicas alternativas más estándar.
- Nerf instantáneo (basado en escenas): El artículo presenta un método para reducir el costo computacional del entrenamiento y la evaluación de primitivas de gráficos neuronales utilizando una tabla hash de múltiples resoluciones de vectores de características entrenables, que se optimizan mediante un descenso de gradiente estocástico. Este método permite el uso de una red neuronal más pequeña sin sacrificar la calidad, y la arquitectura es fácil de paralelizar en las GPU modernas. Este método se puede usar para una variedad de tareas, pero en particular, proporciona una mejora significativa con respecto a la versión «clásica de NerF», ya que nos permite renderizar básicamente cualquier escena en hasta cinco minutos de entrenamiento.
- Pixel Nerf (basado en modelos): En este artículo, los autores proponen una arquitectura que utiliza redes neuronales totalmente convolucionales para extraer características de las imágenes y aprender de las escenas vistas durante el entrenamiento.
Como este modelo no requiere una supervisión 3D explícita, la entrada puede ser una o varias imágenes con solo las posturas relativas de la cámara (que, una vez más, se pueden obtener con herramientas como COLMAP en el caso de más de una imagen). No requiere la optimización del tiempo de prueba como el NerF clásico. [caption id="attachment_1899" align="aligncenter» width="875"]

Fuente de la imagen: sitio web PixelNerf (eslabón) [/caption] Un caso de uso interesante que se muestra en el artículo fue el uso de imágenes tomadas de modelos 3D de automóviles con fines de entrenamiento, pero renderizando escenas utilizando solo una imagen de un automóvil real sin el fondo, obteniendo resultados sorprendentes, como se puede ver en los vídeos de sus sitio web. Un problema con este enfoque es que las escenas generadas son de muy baja calidad, en su mayoría de 128 x 128 píxeles.
- Lol Nerf (basado en modelos): En este artículo, los autores combinan dos redes: una red de optimización latente generativa (GLO) y una NerF. Una red GLO es similar a un codificador automático y su propósito es reconstruir un conjunto de datos a partir de códigos latentes, que generalmente tienen una dimensión inferior a la original, lo que requiere que la red generalice aprendiendo la estructura común de los datos. Esta combinación, a diferencia del NerF estándar, permite crear una representación 3D de un objeto con una sola vista.
[caption id="attachment_1902" align="aligncenter» width="876"]

Fuente de la imagen: LolNerf: Learn from One Look (sitio web) [/caption] Para que los NerFs funcionen, se necesita la ubicación exacta de la cámara en relación con el objeto, pero no siempre está disponible. Para ello, los autores utilizan un modelo para generar puntos de referencia (en particular, trabajan con rostros de humanos, perros y gatos) y, con esta información, pueden extraer un conjunto canónico de ubicaciones 3D para los puntos semánticos (puntos de referencia). Otro punto interesante de este artículo es que utilizan dos redes diferentes para el fondo y el primer plano, lo que permite a este último concentrarse en los detalles más sutiles del objeto.
Algunas reflexiones finales
Este ha sido un amplio resumen de los diferentes enfoques de la representación de escenas que han aparecido desde la explosión del tema en la ahora clásica NerF: representación de escenas como campos de radiación neuronal para la síntesis visual papel. A modo de resumen del estado del arte en este campo, podemos decir que ambos enfoques tienen ventajas y desventajas. Para el enfoque basado en escenas, las escenas renderizadas tienen una calidad realmente alta en algunos casos. Pero tener que entrenar un modelo nuevo para cada escena es una limitación enorme y el tiempo de entrenamiento es demasiado largo. Aunque se ha avanzado mucho en esta dirección, todavía lleva mucho tiempo generar una escena para algunos casos de uso. En la próxima versión de esta serie de blogs, abordaremos algunas herramientas que nos ayudarán a renderizar nuestras propias escenas con este enfoque. Para el enfoque basado en modelos, es fantástico que los modelos puedan aprender de escenas vistas anteriormente y generalizarlas a otras nuevas y que, en algunos casos, puedas renderizar una escena con una sola imagen, pero la calidad de las escenas renderizadas generalmente no es muy buena y necesitas muchos datos «etiquetados» de diferentes escenas para obtener buenos resultados. Este es un tema tan candente en estos días que puede esperar que aparezcan muchos enfoques novedosos en los próximos meses. Si queréis adentraros en el mundo de los NerFs, estad atentos a nuestro blog, porque pronto hablaremos de los principales problemas con los que nos hemos encontrado con los datos a la hora de configurar estos modelos, y hablaremos de las mejores herramientas que existen para acompañaros en este viaje.