Un campo de radiación neuronal ( NeRF ) es un método basado en el aprendizaje profundo para reconstruir una representación tridimensional de una escena a partir de imágenes bidimensionales dispersas. El modelo NeRF permite aprender sobre la síntesis de vistas novedosas, la geometría de la escena y las propiedades de reflectancia de la escena. También se pueden aprender conjuntamente propiedades de escena adicionales, como las poses de la cámara. NeRF permite la representación de vistas fotorrealistas desde puntos de vista novedosos. Introducido por primera vez en 2020, [1] desde entonces ha ganado una atención significativa por sus posibles aplicaciones en gráficos por computadora y creación de contenido. [2]
El algoritmo NeRF representa una escena como un campo radiante parametrizado por una red neuronal profunda (DNN). La red predice una densidad de volumen y una radiancia emitida dependiente de la vista dada la ubicación espacial ( x, y, z ) y la dirección de visión en ángulos de Euler ( θ, Φ ) de la cámara. Al muestrear muchos puntos a lo largo de los rayos de la cámara, las técnicas tradicionales de representación de volumen pueden producir una imagen. [1]
Es necesario volver a entrenar un NeRF para cada escena única. El primer paso es recopilar imágenes de la escena desde diferentes ángulos y su respectiva pose de cámara. Estas imágenes son imágenes 2D estándar y no requieren una cámara o software especializado. Cualquier cámara puede generar conjuntos de datos, siempre que la configuración y el método de captura cumplan con los requisitos de SfM ( Estructura a partir de movimiento ).
Esto requiere el seguimiento de la posición y orientación de la cámara, a menudo mediante alguna combinación de SLAM , GPS o estimación inercial . Los investigadores suelen utilizar datos sintéticos para evaluar NeRF y técnicas relacionadas. Para dichos datos, las imágenes ( representadas mediante métodos tradicionales no aprendidos ) y las respectivas poses de la cámara son reproducibles y están libres de errores. [3]
Para cada punto de vista disperso (imagen y pose de la cámara) proporcionado, los rayos de la cámara avanzan a través de la escena, generando un conjunto de puntos 3D con una dirección de radiación determinada (hacia la cámara). Para estos puntos, la densidad del volumen y la radiancia emitida se predicen utilizando el perceptrón multicapa (MLP). Luego se genera una imagen mediante la representación de volumen clásica. Debido a que este proceso es completamente diferenciable, el error entre la imagen predicha y la imagen original se puede minimizar con un descenso de gradiente en múltiples puntos de vista, lo que anima al MLP a desarrollar un modelo coherente de la escena. [1]
Las primeras versiones de NeRF tardaron en optimizarse y requerían que todas las vistas de entrada se tomaran con la misma cámara en las mismas condiciones de iluminación. Estos funcionaron mejor cuando se limitaron a orbitar alrededor de objetos individuales, como una batería, plantas o juguetes pequeños. [2] Desde el artículo original de 2020, se han realizado muchas mejoras en el algoritmo NeRF, con variaciones para casos de uso especiales.
En 2020, poco después del lanzamiento de NeRF, la incorporación de Fourier Feature Mapping mejoró la velocidad del entrenamiento y la precisión de la imagen. Las redes neuronales profundas luchan por aprender funciones de alta frecuencia en dominios de baja dimensión; un fenómeno conocido como sesgo espectral. Para superar esta deficiencia, los puntos se asignan a un espacio de características de dimensiones superiores antes de introducirlos en el MLP.
¿Dónde está el punto de entrada, son los vectores de frecuencia y son los coeficientes?
Esto permite una rápida convergencia a funciones de alta frecuencia, como píxeles en una imagen detallada. [4]
Una limitación de los NeRF es el requisito de conocer las poses precisas de la cámara para entrenar el modelo. Muchas veces, los métodos de estimación de la pose no son completamente precisos, ni siquiera es posible saber la pose de la cámara. Estas imperfecciones dan como resultado artefactos y una convergencia subóptima. Entonces, se desarrolló un método para optimizar la pose de la cámara junto con la función volumétrica en sí. La técnica, denominada campo de radiación neuronal de ajuste de paquetes (BARF), utiliza un filtro dinámico de paso bajo para pasar del ajuste grueso al fino, minimizando el error al encontrar la transformación geométrica a la imagen deseada. Esto corrige las poses imperfectas de la cámara y mejora enormemente la calidad de los renderizados NeRF. [5]
Los NeRF convencionales luchan por representar detalles en todas las distancias de visualización, lo que produce imágenes borrosas de cerca e imágenes con demasiados alias desde vistas lejanas. En 2021, los investigadores introdujeron una técnica para mejorar la nitidez de los detalles en diferentes escalas de visualización conocida como mip-NeRF (proviene de mipmap ). En lugar de muestrear un solo rayo por píxel, la técnica ajusta una gaussiana al tronco cónico proyectado por la cámara. Esta mejora suaviza eficazmente todas las escalas de visualización. mip-NeRF también reduce el error general de la imagen y converge más rápido a ~ la mitad del tamaño del NeRF basado en rayos. [6]
En 2021, los investigadores aplicaron el metaaprendizaje para asignar pesos iniciales al MLP. Esto acelera rápidamente la convergencia al darle a la red una ventaja en el descenso de gradiente. El metaaprendizaje también permitió al MLP aprender una representación subyacente de ciertos tipos de escenas. Por ejemplo, dado un conjunto de datos de lugares turísticos famosos, un NeRF inicializado podría reconstruir parcialmente una escena dada una imagen. [7]
Los NeRF convencionales son vulnerables a ligeras variaciones en las imágenes de entrada (objetos, iluminación), lo que a menudo genera imágenes fantasma y artefactos. Como resultado, los NeRF tienen dificultades para representar escenas dinámicas, como calles bulliciosas de la ciudad con cambios en la iluminación y objetos dinámicos. En 2021, investigadores de Google [2] desarrollaron un nuevo método para tener en cuenta estas variaciones, denominado NeRF in the Wild (NeRF-W). Este método divide la red neuronal (MLP) en tres modelos separados. El MLP principal se conserva para codificar el resplandor volumétrico estático. Sin embargo, funciona en secuencia con un MLP independiente para la incrustación de apariencia (cambios en la iluminación, propiedades de la cámara) y un MLP para la incrustación transitoria (cambios en los objetos de la escena). Esto permite entrenar al NeRF en diversas colecciones de fotografías, como las tomadas con teléfonos móviles en diferentes momentos del día. [8]
En 2021, los investigadores agregaron más resultados al MLP en el corazón de los NeRF. El resultado ahora incluía: densidad de volumen, normal de la superficie, parámetros del material, distancia a la primera intersección de la superficie (en cualquier dirección) y visibilidad del entorno externo en cualquier dirección. La inclusión de estos nuevos parámetros permite al MLP aprender las propiedades del material, en lugar de valores puros de radiancia. Esto facilita un proceso de renderizado más complejo, calculando iluminación directa y global , luces especulares y sombras. Como resultado, NeRF puede renderizar la escena bajo cualquier condición de iluminación sin necesidad de volver a entrenar. [9]
Aunque los NeRF habían alcanzado altos niveles de fidelidad, su costoso tiempo de cálculo los hacía inútiles para muchas aplicaciones que requerían renderizado en tiempo real, como VR / AR y contenido interactivo. Introducidos en 2021, Plenoctrees ( octrees plenópticos ) permitieron la representación en tiempo real de NeRF previamente entrenados mediante la división de la función de radiación volumétrica en un octree. En lugar de asignar una dirección de radiación a la cámara, la dirección de visualización se toma de la entrada de la red y se predice la radiación esférica para cada región. Esto hace que el renderizado sea 3000 veces más rápido que los NeRF convencionales. [10]
Al igual que Plenoctrees, este método permitió la representación en tiempo real de NeRF previamente entrenados. Para evitar consultar el MLP grande para cada punto, este método convierte los NeRF en Sparse Neural Radiance Grids (SNeRG). Un SNeRG es una cuadrícula de vóxeles dispersa que contiene opacidad y color, con vectores de características aprendidos para codificar información dependiente de la vista. Luego se utiliza un MLP liviano y más eficiente para producir residuos dependientes de la vista para modificar el color y la opacidad. Para permitir esta compresión, se realizaron pequeños cambios en la arquitectura NeRF, como ejecutar el MLP una vez por píxel en lugar de cada punto a lo largo del rayo. Estas mejoras hacen que SNeRG sea extremadamente eficiente, superando a Plenoctrees. [11]
En 2022, investigadores de Nvidia permitieron el entrenamiento de NeRF en tiempo real mediante una técnica conocida como Primitivas de gráficos neuronales instantáneos. Una codificación de entrada innovadora reduce la computación, lo que permite el entrenamiento en tiempo real de un NeRF, una mejora de órdenes de magnitud con respecto a los métodos anteriores. La aceleración se debe al uso de funciones hash espaciales , que tienen tiempos de acceso, y arquitecturas paralelizadas que se ejecutan rápidamente en las GPU modernas . [12]
Plenoxel (elemento de volumen plenóptico) utiliza una representación de vóxel dispersa en lugar de un enfoque volumétrico como se ve en los NeRF. Plenoxel también elimina por completo el MLP y, en lugar de ello, realiza directamente un descenso de gradiente en los coeficientes de vóxel. Plenoxel puede igualar la fidelidad de un NeRF convencional en órdenes de magnitud menos de tiempo de entrenamiento. Publicado en 2022, este método refutó la importancia del MLP y demostró que el canal de renderizado diferenciable es el componente crítico. [13]
La dispersión gaussiana es un método más nuevo que puede superar a NeRF en tiempo de renderizado y fidelidad. En lugar de representar la escena como una función volumétrica, utiliza una nube dispersa de gaussianos 3D . Primero, se genera una nube de puntos (a través de la estructura del movimiento ) y se convierte en gaussianas de covarianza, color y opacidad iniciales. Los gaussianos se optimizan directamente mediante un descenso de gradiente estocástico para que coincida con la imagen de entrada. Esto ahorra cálculo al eliminar el espacio vacío y evitar la necesidad de consultar una red neuronal para cada punto. En su lugar, simplemente "salpica" todos los gaussianos en la pantalla y se superpondrán para producir la imagen deseada. [14]
La fotogrametría tradicional no es neuronal, sino que utiliza ecuaciones geométricas robustas para obtener mediciones en 3D. Los NeRF, a diferencia de los métodos fotogramétricos, no producen inherentemente una geometría 3D dimensionalmente precisa. Si bien sus resultados suelen ser suficientes para extraer geometría precisa (por ejemplo, mediante la marcha del cubo [1] ), el proceso es confuso , como ocurre con la mayoría de los métodos neuronales. Esto limita NeRF a casos en los que se valora la imagen de salida, en lugar de la geometría de la escena sin formato. Sin embargo, los NeRF destacan en situaciones con iluminación desfavorable. Por ejemplo, los métodos fotogramétricos fallan por completo cuando se intenta reconstruir objetos reflectantes o transparentes en una escena, mientras que un NeRF es capaz de inferir la geometría. [15]
Los NeRF tienen una amplia gama de aplicaciones y su popularidad está empezando a crecer a medida que se integran en aplicaciones fáciles de usar. [3]
Los NeRF tienen un enorme potencial en la creación de contenidos, donde las vistas fotorrealistas bajo demanda son extremadamente valiosas. [16] La tecnología democratiza un espacio al que antes solo podían acceder equipos de artistas de efectos visuales con activos costosos. Los campos de radiación neuronal ahora permiten que cualquier persona con una cámara cree entornos 3D atractivos. [3] NeRF se ha combinado con IA generativa , lo que permite a los usuarios sin experiencia en modelado indicar cambios en escenas 3D fotorrealistas. [17] Los NeRF tienen usos potenciales en la producción de videos, gráficos por computadora y diseño de productos.
El fotorrealismo de los NeRF los hace atractivos para aplicaciones donde la inmersión es importante, como la realidad virtual o los videojuegos. Los NeRF se pueden combinar con técnicas de renderizado clásicas para insertar objetos sintéticos y crear experiencias virtuales creíbles. [18]
Los NeRF se han utilizado para reconstruir tomografías computarizadas en 3D a partir de vistas de rayos X escasas o incluso únicas. El modelo demostró representaciones de alta fidelidad de datos de tórax y rodillas. Si se adopta, este método puede salvar a los pacientes de dosis excesivas de radiación ionizante, permitiendo un diagnóstico más seguro. [19]
La capacidad única de los NeRF para comprender objetos transparentes y reflectantes los hace útiles para los robots que interactúan en dichos entornos. El uso de NeRF permitió que un brazo robótico manipulara con precisión una copa de vino transparente; una tarea en la que la visión por computadora tradicional tendría dificultades. [20]
Los NeRF también pueden generar rostros humanos fotorrealistas, lo que los convierte en herramientas valiosas para la interacción persona-computadora. Las caras renderizadas tradicionalmente pueden ser asombrosas , mientras que otros métodos neuronales son demasiado lentos para ejecutarse en tiempo real. [21]