NeRF

Un **campo de radiación neural** (**NeRF,** siglas en inglés de *Neural Radiance Field*) é un método baseado na aprendizaxe profunda ou *deep-learning* para formar unha representación tridimensional dunha escena a partir de imaxes bidimensionais. O modelo NeRF permite aprender a síntese de novas vistas (*view synthesis*), a xeometría da escena e as propiedades de reflectancia da mesma, facendo posible renderizar vistas fotorrealistas desde puntos de vista novos. 

Introducido por primeira vez en 2020 por Google, desde entón gañou unha atención significativa polas súas potenciais aplicacións en gráficos por ordenador e creación de contidos. Aínda que o concepto foi creado en 2020, un feixe de *paper*s popularizaron o método especialmente desde o 2022. De feito, a revista Time considerou NeRF como unha das mellores invencións dese ano.

## Definición 
miniatura|Rede neural perceptrón multicapa (MLP de 4 capas).
O termo **campo de radiación neural** (introducido por Xie, Yiheng) refírese a unha rede neural que parametriza unha sinal, que pode ser unha escena 3D ou un obxecto. Ademais, sinais do tipo auditivo (audios), imaxes e practicamente calquera outro *input* discreto ou continuo pode ser representado por NeRF.

En física, o concepto de campo involucra o mapeo de cantidades e coordenadas. Campos como o electromagnético ou o gravitatorio adoptan a representación dunha coordenada x xunto á cantidade y, que comunmente é un vector, escalar ou tensor. Os campos de radiación neural de NeRF alimentan a rede neural coas coordenadas da escena a replicar coa meta de producir cantidades de campo e reconstruír o problema cos sucesivos procesos de optimización.

A aplicación máis célebre do método NeRF é a síntese de vistas, é dicir, reconstruír unha contorna 3D a través dun conxunto de datos bidimensionais (usualmente fotografías). Métodos tradicionais como a fotogrametría ou modernos como o splatting gaussiano son outras aproximacións neste campo. NeRF implica tomar mostras de moitos puntos ao longo dos raios da cámara, así que pode apoiarse en técnicas tradicionais de renderizado de volume para producir unha imaxe final.

Cada unha destas representacións ten os seus propios inconvenientes:

* Os *vóxeles* tenden a ser caros de almacenar.
* As mallas poligonais están limitadas a certas superficies.
miniatura|Golfiño representado por unha malla poligonal (*polygon mesh*).A representación proposta por NeRF difire no sentido de que os campos de radiación neural son moito máis lixeiros (fácil almacenamento) e permiten formas e dimensións arbitrarias. Vóxel e mallas poligonais non son diferenciables e continuas, pero os campos neurais si, ademais de ser independentes do dominio (aceptan todo tipo de *input* sempre que se codifique en vectores de entrada).

## Algoritmo 
O algoritmo NeRF representa unha escena como un campo de radiación parametrizado por unha rede neuronal profunda perceptrón multicapa (MLP). A rede predí unha densidade de volume e unha radiación emitida dependente da vista dada a localización espacial (*x, y, z*) e a dirección de visión en ángulos de Euler (*θ, Φ*) da cámara. 

### Campos neurais 
De acordo a *Neural Fields in Visual Computing and Beyond*, os pasos a seguir nunha computación de campos neurais son os seguintes:

# Mostra de coordenadas da escena (datos de entrada recollidos nun vector).
# Execución da rede neural e cálculo de cantidades de campo.
# Reconstrución do dominio do problema.
# Mapeo da reconstrución ao sensor de partida (imaxes 2D RGB, son ou outro tipo de *input*).
# Cálculo do erro entre a reconstrución elaborada por NeRF e a escena orixinal. Sucesivas optimizacións da rede neural.

É conveniente distinguir entre a reconstrución do campo neural e a observación da escena a través dun sensor. 

#### Observación do sensor 
Sexan

* S conxunto de coordenadas observadas.
* x_{s} \in S observación singular do sensor.
* T conxunto de medidas.
* y_s \in T medida singular.

\Omega: S \rightarrow T a transformación de coordenadas observadas en medicións.

#### Reconstrución do campo neural 
Sexan

* X conxunto de coordenadas de entrada.
* x_r \in X coordenada singular.
* Y conxunto de cantidades de campo.
* y_{r} \in Y cantidade de campo.

\Phi: X \rightarrow Y a transformación de coordenadas de entrada en valores de campo da rede.

O mapeo completo entre a observación do sensor e a reconstrución neural resulta en:

F: (X \rightarrow Y) \rightarrow (S \rightarrow T)

De modo que o problema de optimización consiste en minimizar o erro de predición. Matematicamente:

\arg\min_{\theta} \int_{x_r,x_s\in(X,S)} \lVert F(\Phi(x_r) - \Omega(s_s)) \rVert

### Campos de radiación neural 
A arquitectura NeRF céntrase en concreto na síntese de vistas (reconstrución 3D). NeRF enténdese como un caso concreto dos campos neurais descritos no apartado anterior. Na seguinte táboa móstrase a nova terminoloxía asociada a NeRF.

NeRF require de coordenadas en cinco dimensións como entrada, sendo estas a compoñente espacial (*x, y, z*) e a dirección en ángulos de Euler (*θ, Φ*). A rede neural MLP recibe o vector 5D como *input* e devolve a intensidade de cor en RGB xunto á densidade de volume \sigma.

* \sigma describe o efecto do punto na escena global. Pode entenderse como unha "probabilidade" intuitivamente que sinala a radiación do punto (a maior efecto, maior probabilidade de que a cor predita sexa correcta).
* O *output* RGB\sigma é o valor devolto por NeRF que, posteriormente, é suxeito a procesos de renderizado de volume tendo en conta a distancia do raio e, finalmente, a función de perda (coñecida como *rendering loss*) que se optimiza ata conseguir o efecto desexado.

## Optimización 
O algoritmo NeRF é **diferenciable**, o que permite a comparación entre a saída da rede neural (*output*) e as imaxes de orixe (*input*) a través dunha función de perda. É común empregar a regularización L2, é dicir, **ridge**, para tratar a suma de cadrados dos pesos.

L2 = \lambda * \Sigma_{i=1}^n w_i

sendo 

* **Pesos** w_i.
* **Parámetro de penalización** \lambda. Controla a forza de penalización. Valores altos forzan aos pesos a ser máis pequenos, simplificando o modelo.

## Renderizado de volume 
O **renderizado volumétrico** é unha parte fundamental do proceso, é dicir, obter novas imaxes bidimensionais a partir da saída 3D da rede neural. 

Para NeRF é común empregar a técnica de "raio marchante" (*ray marching*) que, a diferenza do "raio trazado" (*ray tracing*) funciona correctamente para superficies suaves e condicións especiais de iluminación (néboas e formas sutís nas que os obxectos non están claramente delimitados).
miniatura|318x318px|Visualización do método de *ray marching* por SDF (función de distancia con signo).
O **raio marchante volumétrico** traza raios co obxectivo de tomar mostras da cor c e densidade \sigma ao longo do mesmo. Finalmente, combínanse todas as mostras na cor do píxel final. É un **proceso iterativo**, de modo que resulta necesario establecer os pasos ou "chanzos" que definen a frecuencia de mostraxe ao longo do raio. Cada iteración avanza en dirección ao obxecto ou superficie, ata que o proceso conclúe cerca do sólido.

Cada punto de mostraxe ten:

* **Localización espacial** (*x, y, z).*
* **Cor** c
* **Densidade volumétrica** \sigma.

As compoñentes necesarias para a expresión do raio son:

# Orixe o (posición)
# Dirección d
# Pasos ou chanzos t.

Así, o raio de luz como función das súas compoñentes tería a seguinte expresión:

r(t) = o + t*d,

e tendo en conta que tanto a densidade \sigma como a cor dependen do propio raio, poderían escribirse así mesmo como \sigma(r(t)) e c(r(t)), respectivamente.

Integrando os raios obtéñense as cores finais de cada píxel.

## Aplicacións 
Os NeRF teñen unha ampla gama de aplicacións, entre as que se encontran:

* **Creación de contidos**. Os NeRF teñen un grande potencial na creación de contido con vistas fotorrealistas. A tecnoloxía democratiza un espazo que antes só era accesible por equipos de artistas VFX con activos caros. Os campos de radiación neuronal permiten crear ambientes 3D atractivos co único requisito de posuír unha cámara. Os NeRF teñen usos potenciais na produción de vídeo, gráficos por ordenador e deseño de produtos.
* **Contido interactivo.** O fotorrealismo dos NeRF posibilita o seu uso inmersivo en realidade virtual ou videoxogos. Os NeRF pódense combinar con técnicas de renderizado clásicas para inserir obxectos sintéticos e crear experiencias virtuais verosímiles.
* miniatura|250x250px|Tomografía 3D computarizada.**Imaxe médica**. Os NeRF foron utilizados para reconstruír tomografías computadorizadas 3D a partir de vistas de raios X escasas ou mesmo únicas. O modelo demostrou representacións de alta fidelidade dos datos de peito e xeonllos. De ser adopto, este método pode salvar aos pacientes de doses excesivas de radiación ionizante, permitindo un diagnóstico máis seguro.

### Robótica e autonomía 
A capacidade dos NeRF para comprender obxectos transparentes e reflexivos fainos útiles para os robots que interactúan en tales ambientes. O uso de NeRF permitiu que un brazo robótico manipulase con precisión unha copa de viño transparente, unha tarefa na que a visión tradicional por ordenador tería dificultades.

Os NeRF tamén poden xerar rostros humanos fotorrealistas ou avatares.

## Notas 
## Véxase tamén 
### Outros artigos 
* Deep learning
* Intelixencia artificial
* Redes neuronais artificiais