Implicit Neural Representations (INRs)
Las representaciones neuronales implícitas almacenan una imagen, forma o escena 3D como una red neuronal que asigna valores a coordenadas y puede consultarse a cualquier resolución.
Las representaciones neuronales implícitas (INR) almacenan una señal como una función continua aprendida por una red neuronal, normalmente un perceptrón multicapa (MLP) pequeño, que asigna valores a coordenadas. Una imagen se convierte en una función que transforma la posición de un píxel (x, y) en un color; una forma 3D, en una función que transforma un punto (x, y, z) en su distancia con signo a la superficie; y una escena, en una función que transforma un punto y una dirección de visión en color y densidad. Los pesos de la red constituyen la representación: no hay cuadrícula de píxeles ni vóxeles, así que la señal se puede consultar en cualquier coordenada, la memoria no aumenta con la resolución de salida y sus derivadas se obtienen sin coste adicional mediante diferenciación automática. Las INR también se denominan redes basadas en coordenadas o campos neuronales y sustentan los campos de radiancia neuronales y gran parte de la reconstrucción 3D moderna.
Cómo funcionan las representaciones neuronales implícitas#
Una INR se ajusta a una señal cada vez. El entrenamiento toma muestras de coordenadas, compara la salida de la red con los valores reales en esas coordenadas y actualiza los pesos mediante descenso de gradiente, por lo que el sobreajuste es intencionado: el objetivo es memorizar esta señal. Un MLP sencillo con activaciones ReLU tiene dificultades porque las redes aprenden las frecuencias bajas mucho más rápido que las altas, un efecto que Nasim Rahaman y sus colegas denominaron sesgo espectral en 2019. Si recibe coordenadas sin procesar, la red produce una versión borrosa de la señal. En 2020, dos soluciones hicieron prácticas las INR: transformar las coordenadas mediante senos y cosenos de muchas frecuencias, las características de Fourier de Matthew Tancik y sus colegas y la codificación posicional de NeRF; y sustituir ReLU por una función de activación sinusoidal, como en SIREN, de Vincent Sitzmann y sus colegas.
Este ejemplo de PyTorch ajusta el mismo MLP a una foto dos veces: una con coordenadas sin procesar y otra con características de Fourier:
import torch
from skimage import data, transform
from torch import nn
torch.manual_seed(0)
# The signal: a 128 x 128 grayscale photo, and the (x, y) coordinate of every pixel in [-1, 1]
image = torch.tensor(transform.resize(data.camera(), (128, 128)), dtype=torch.float32).reshape(-1, 1)
grid = torch.linspace(-1, 1, 128)
coords = torch.stack(torch.meshgrid(grid, grid, indexing="ij"), dim=-1).reshape(-1, 2)
# Fourier features: sines and cosines of the coordinates at 128 random frequencies
proj = torch.pi * coords @ (10 * torch.randn(2, 128))
inputs = {"Raw coordinates": coords, "Fourier features": torch.cat([proj.sin(), proj.cos()], dim=-1)}
for name, x in inputs.items():
# The INR: a small MLP from coordinate to gray value, fit to this one image
mlp = nn.Sequential(nn.Linear(x.shape[1], 256), nn.ReLU(), nn.Linear(256, 256), nn.ReLU(), nn.Linear(256, 1))
optimizer = torch.optim.Adam(mlp.parameters(), lr=1e-3)
for _ in range(1000):
loss = (mlp(x) - image).pow(2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
print(f"{name}: PSNR {-10 * torch.log10(loss).item():.1f} dB")Tras 1000 pasos, la red con coordenadas sin procesar alcanza una relación señal-ruido de pico de 22,0 dB y produce una imagen borrosa, mientras que la red con características de Fourier llega a 46,0 dB y genera una copia casi exacta. La escala de frecuencia, 10 en este caso, se ajusta a cada señal: si es demasiado baja, el ajuste sigue siendo borroso; si es demasiado alta, la red memoriza las muestras y produce valores ruidosos entre ellas. El Segment Anything Model de Meta, que se ejecuta en el paquete Ultralytics, codifica las coordenadas de las instrucciones de puntos y recuadros con las mismas características de Fourier gaussianas aleatorias antes de que lleguen al decodificador de máscaras.
Formas, escenas y velocidad#
Las INR para formas 3D aparecieron en 2019, cuando DeepSDF predijo la distancia con signo y Occupancy Networks predijo la probabilidad de estar dentro o fuera para cualquier punto 3D, lo que permitió extraer una malla con cualquier resolución. NeRF llegó en 2020 y asignaba el color y la densidad a la posición y la dirección de visión para la síntesis de vistas novedosas. Los MLP puros son lentos tanto para entrenar como para consultar, así que los diseños híbridos almacenan características aprendidas en una cuadrícula y las decodifican con un MLP diminuto. Instant-NGP, de Thomas Müller y sus colegas de NVIDIA, usa una tabla hash multirresolución de características y ajusta un NeRF en segundos en lugar de horas.
Las INR se diferencian de las representaciones explícitas, como las cuadrículas de píxeles y vóxeles, las mallas y las nubes de puntos, que almacenan los valores directamente y crecen con la resolución; en el caso de los vóxeles, el crecimiento es cúbico. El splatting gaussiano es una alternativa explícita reciente a NeRF que renderiza más rápido al rasterizar millones de gaussianas 3D. Como una INR básica se ajusta a una sola señal, para generalizar entre muchas señales hace falta maquinaria adicional: hiperredes que generan pesos de INR a partir de un código latente, o metaaprendizaje de una inicialización que permite ajustar una señal nueva en unos pocos pasos.
Aplicaciones en el mundo real#
- Imágenes médicas: las INR reconstruyen volúmenes de TC y RM a partir de mediciones escasas o submuestreadas, ya que la función continua rellena los huecos entre las muestras adquiridas con un volumen suave y coherente con los datos.
- Superresolución: las funciones de imagen implícitas locales, como LIIF, predicen un color en cualquier coordenada continua a partir de características cercanas, por lo que un modelo puede ampliar imágenes con factores arbitrarios.
- Creación de contenido 3D: los generadores de texto a 3D e imagen a 3D suelen optimizar o predecir campos neuronales, que luego se convierten en mallas para videojuegos y efectos visuales.
- Compresión: COIN, de Emilien Dupont y sus colegas (2021), almacena una imagen como los pesos cuantizados de un MLP pequeño y supera a JPEG con tasas de bits bajas.










