Cómo funcionan Neural Radiance Fields (NeRF) y Instant Neural Graphics Primitives

Los campos de radiación neuronal (NeRF) se convierten lentamente en el próximo tema candente en el mundo del aprendizaje profundo. Desde que se propusieron originalmente en 2020, hay una explosión de papeles como se puede ver en Presentaciones de CVPR para 2022. La revista Time incluyó recientemente una variación de NeRF, denominadas primitivas neuronales de gráficos instantáneos, en su mejores inventos de 2022 lista. Pero, ¿qué son exactamente los NeRF y cuáles son sus aplicaciones?

En este artículo, intentaré desmitificar todas las diferentes terminologías, como campos neuronales, NeRF, primitivas gráficas neuronales, etc. Para darle una vista previa, todas significan lo mismo dependiendo de a quién le pregunte. También presentaré una explicación de cómo funcionan analizando los dos artículos más influyentes.

¿Qué es un campo neural?

El término campo neural fue popularizado por Xie et al. y describe una red neuronal que parametriza una señal. Esta señal suele ser una única escena u objeto 3D, pero no es obligatorio. También podemos usar campos neuronales para representar cualquier tipo de señales (discretas o continuas) como audio o imágenes.

Su uso más popular es en aplicaciones de gráficos por computadora como la síntesis de imágenes y la reconstrucción 3D, que es el tema principal de este artículo.

Tenga en cuenta que los campos neuronales también se han aplicado en otras aplicaciones, como el modelado generativo, el procesamiento de imágenes 2D, la robótica, las imágenes médicas y la parametrización de audio.

En la mayoría de las variaciones de campos neuronales, las redes neuronales totalmente conectadas codifican las propiedades de los objetos o las escenas. En tono rimbombante, una red necesita ser entrenada para codificar (capturar) una sola escena. Tenga en cuenta que, a diferencia del aprendizaje automático estándar, el objetivo es adaptar la red neuronal a una escena en particular. En esencia, los campos neuronales incrustan la escena en los pesos de la red.

¿Por qué usar campos neuronales?

Las escenas 3D normalmente se almacenan mediante cuadrículas de vóxeles o mallas poligonales. Por un lado, los vóxeles suelen ser muy caros de almacenar. Por otro lado, las mallas poligonales solo pueden representar superficies duras y no son adecuadas para aplicaciones como imágenes médicas.


malla voxel


Vóxeles vs mallas poligonales. Fuente: Wikipedia sobre vóxeles, Wikipedia sobre mallas poligonales

Los campos neuronales han ganado una creciente popularidad en las aplicaciones de gráficos por computadora, ya que son representaciones 3D muy eficientes y compactas de objetos o escenas. ¿Por qué? A diferencia de los vóxeles o mallas, son diferenciables y continuos. Otra ventaja es que también pueden tener dimensiones y resoluciones arbitrarias. Además, son independientes del dominio y no dependen de la entrada para cada tarea.

En ese punto, puede preguntarse: ¿de dónde viene el nombre de campos neuronales?

¿Qué significan los campos?

En física, un campo es una cantidad definida para todas las coordenadas espaciales y/o temporales. Se puede representar como un mapeo a partir de una coordenada.

XX

a una cantidad

yy

, normalmente un escalar, un vector o un tensor. Los ejemplos incluyen campos gravitatorios y campos electromagnéticos.

La siguiente pregunta que puede hacer: ¿cuáles son los pasos para «aprender» un campo neuronal?

Pasos para entrenar un campo neural

Siguiendo a Xie et al. el progreso típico de los campos neuronales informáticos se puede formular de la siguiente manera:

  1. Ejemplo de coordenadas de una escena.

  2. Aliméntelos a una red neuronal para producir cantidades de campo.

  3. Muestree las cantidades de campo del dominio de reconstrucción deseado del problema.

  4. Asigne la reconstrucción al dominio del sensor (por ejemplo, imágenes RGB 2D).

  5. Calcule el error de reconstrucción y optimice la red neuronal.


campo neural


Un algoritmo de campo neural típico. Fuente: Xie et al.

Para mayor claridad, usemos algunos términos matemáticos para denotar el proceso. La reconstrucción es un campo neural, denotado como

Φ:XYPhi : X rightarrow Y

que mapea las coordenadas del mundo

XrmiConorteXx_ en X

a las cantidades de campo

yrmiConorteYy_ in Y

. La observación de un sensor también es un campo neuronal.

Ω:STOmega: S rightarrow T

que transforma las coordenadas del sensor

XsminortesSx_ in S

en medidas

tsminortesTt_ in T

. El mapa directo es un mapeo entre los dos campos neuronales.

F:(XY)(ST)F : (X rightarrow Y ) rightarrow (S rightarrow T)

y es diferenciable.

Como resultado, podemos resolver el siguiente problema de optimización para calcular el campo neuronal

ΦFi

.

argramometroinorteΘXrmiConorte,Xsminortes(X,S)F(Φ(XrmiConorte))Ω(Xsminortes)mathrm_ int_ || F( Phi(x_)) – Omega(x_) ||

La siguiente tabla (Xie et al.) ilustra diferentes aplicaciones de campos neuronales junto con los dominios de reconstrucción y sensor.


mapas de avance


Ejemplos de mapas de avance. Fuente: Xie et al.

Analicemos la arquitectura más popular de campos neuronales llamada NeRF que resuelve el problema de la síntesis de vistas.

Campos de radiación neuronal (NeRF) para la síntesis de vistas

La arquitectura de campo neuronal más destacada se llama Neural Radiance Fields o NeRF. Fueron propuestos originalmente para resolver la síntesis de vistas. La síntesis de vista es la tarea en la que genera un objeto o escena 3D a partir de un conjunto de imágenes desde diferentes ángulos (o vistas). Ver síntesis es casi equivalente a 3D reconstrucción.


reconstrucción 3d


Reconstrucción 3D multivista. Fuente: Métodos variacionales convexos para reconstrucción de vista única y multivista de espacio-tiempo

Tenga en cuenta que para comprender completamente los NeRF, uno debe familiarizarse con muchos conceptos de gráficos por computadora, como la representación volumétrica y la proyección de rayos. En esta sección, intentaré explicarlos de la manera más eficiente posible, pero también dejaré algunos recursos adicionales para ampliar su investigación. Si busca un curso estructurado para iniciarse en la infografía, Gráficos por computadora de UC San Diego es el mejor afaik

NeRFs y terminología de campos neuronales lado a lado

Como ya mencioné, los NeRF son un caso especial de campos neuronales. Por esa razón, veamos una comparación lado a lado. No dude en volver a visitar esta tabla una vez que expliquemos los NeRF para establecer la conexión entre ellos y los campos neuronales.

campos neuronales Campos de radiación neuronal (NeRF)
Coordenada mundial XrmiConorteXx_ en X

Localización espacial (X,y,X)(x, y, x)

y dirección de visualización (θ,ϕ)( theta, phi)

Cantidades de campo yrmiConorteYy_ in Y

Color C=(r,gramo,b)c=(r,g,b)

y densidad de volumen σsigma

Campo Φ:XYPhi : X rightarrow Y

MLP
Coordenadas del sensor XsminortesSx_ in S

imágenes 2D
Mediciones tsminortesTt_ in T

Resplandor
Sensor Ω:STOmega: S rightarrow T

Cámara digital
Mapeo directo F:(XY)(ST)F : (X rightarrow Y ) rightarrow (S rightarrow T)

Representación de volumen

La razón por la que decidí presentar primero los campos neuronales y luego los NeRF es para comprender que los campos neuronales son un marco mucho más general

Explicación de los NeRF

NeRF propuestos por Mildenhall et al. . aceptar una única coordenada 5D continua como entrada, que consiste en una ubicación espacial

(X,y,X)(x, y, x)

y dirección de visualización

(θ,ϕ)( theta, phi)

. Este punto particular del objeto/escena se alimenta a un MLP, que genera las intensidades de color correspondientes

C=(r,gramo,b)c=(r,g,b)

y su densidad volumétrica

σsigma

.

La densidad de volumen (probabilidad) indica cuánta radiación (o luminancia) acumula un rayo que pasa a través de

(X,y,z)(x, y, z)

y es una medida del “efecto” que este punto tiene en la escena general. Intuitivamente, la densidad de volumen de probabilidad proporciona la posibilidad de que se tenga en cuenta el valor de color predicho.


nerfs


Campos de Radiación Neural. Fuente: Mildenhall et al.

El poder del campo neural es que puede generar diferentes representaciones para el mismo punto cuando se ve desde diferentes ángulos. Como resultado, puede capturar varios efectos de iluminación, como reflejos y transparencias, lo que lo hace ideal para representar diferentes vistas de la misma escena. Esto lo convierte en una representación mucho mejor en comparación con la cuadrícula o mallas de vóxeles.

NeRF de entrenamiento

El problema con el entrenamiento de estas arquitecturas es que no se conocen la densidad y el color del objetivo. Por lo tanto, necesitamos un método (diferenciable) para mapearlos de nuevo a imágenes 2D. Luego, estas imágenes se comparan con las imágenes reales del terreno, formulando una pérdida de representación frente a la cual podemos optimizar la red.


entrenamiento nerf


Proceso de formación de NeRFs. Fuente: Mildenhall et al.

Como se muestra en la imagen de arriba, representación de volumen se utiliza para mapear la salida del campo neural de nuevo a la imagen 2D. La pérdida L2 estándar se puede calcular utilizando la imagen/píxel de entrada en forma de codificador automático. Tenga en cuenta que la representación de volumen es un proceso muy común en los gráficos por computadora. Veamos en resumen cómo funciona.

Representación de volumen

Cuando tomamos muestras de coordenadas de las imágenes originales, emitimos rayos en cada píxel y tomamos muestras en diferentes intervalos de tiempo, un proceso conocido como marcha de rayos. Cada punto de muestra tiene una ubicación espacial, un color y una densidad de volumen. Estas son las entradas del campo neural.

Un rayo es una función de su origen.

oo

su dirección

dd

y sus muestras en intervalos de tiempo

tt

. Se puede formular como

r(t)=o+tdr


Marcha de rayos volumétricos


Ray Marchando. Fuente: Creando un Ray Marcher Volumétrico por Ryan Brucks

Para mapearlos de nuevo a la imagen, todo lo que tenemos que hacer es integrar estos rayos y adquirir el color de cada uno. píxel

C(r)=tnortetFT(t)σ(r(t))C(r(t),d)dtC(mathbf) =int_^{T


codificación hash multiresolución


Codificación hash multiresolución. Fuente: Müller et al.

Pero, ¿qué ganamos con esta codificación algo complicada?

  1. Al entrenar los parámetros de codificación junto con la red, obtenemos un gran impulso en la calidad del resultado final.

  2. Mediante el uso de múltiples resoluciones, obtenemos un nivel de detalle automático, lo que significa que la red aprende características tanto gruesas como finas.

  3. Al usar hashing para asociar el espacio 3D con vectores de características, el proceso de codificación se vuelve completamente independiente de la tarea.

El siguiente video proporciona una excelente inmersión profunda en el documento para aquellos interesados.

Conclusión

En mi opinión, NeRFs es una de las aplicaciones más emocionantes de las redes neuronales de los últimos años. Ser capaz de renderizar modelos 3D en cuestión de segundos era simplemente inconcebible hace un par de años. No pasará mucho tiempo antes de que veamos estas arquitecturas ingresar a las industrias de juegos y simulación.

Para experimentar con los NeRF, recomiendo visitar el repositorio instant-ngp de Nvidiainstale las dependencias necesarias y juegue creando sus propios modelos.

Si desea ver más artículos de gráficos por computadora, háganoslo saber en nuestro servidor de discordia. Finalmente, si le gustan nuestras publicaciones de blog, siéntase libre de apoyarnos comprando nuestro cursos o libros.

Referencias

Libro Aprendizaje Profundo en Producción 📖

Aprenda a crear, entrenar, implementar, escalar y mantener modelos de aprendizaje profundo. Comprenda la infraestructura de ML y MLOps con ejemplos prácticos.

Aprende más

* Divulgación: tenga en cuenta que algunos de los enlaces anteriores pueden ser enlaces de afiliados y, sin costo adicional para usted, ganaremos una comisión si decide realizar una compra después de hacer clic.



Fuente del artículo

Deja un comentario