Implicit Neural Representations (INRs)
Implizite neuronale Repräsentationen speichern ein Bild, eine Form oder eine 3D-Szene als neuronales Netz, das Koordinaten auf Werte abbildet und sich mit beliebiger Auflösung abfragen lässt.
Implizite neuronale Repräsentationen (INRs) speichern ein Signal als kontinuierliche Funktion, die von einem neuronalen Netzwerk gelernt wird, üblicherweise einem kleinen mehrschichtigen Perzeptron (MLP), das Koordinaten auf Werte abbildet. Ein Bild wird zu einer Funktion, die eine Pixelposition (x, y) auf eine Farbe abbildet, eine 3D-Form zu einer Funktion, die einen Punkt (x, y, z) auf seinen vorzeichenbehafteten Abstand zur Oberfläche abbildet, und eine Szene zu einer Funktion, die einen Punkt und eine Blickrichtung auf Farbe und Dichte abbildet. Die Gewichte des Netzwerks bilden die Repräsentation: Es gibt kein Pixel- oder Voxelraster. Daher lässt sich das Signal an beliebigen Koordinaten abfragen, sein Speicherbedarf wächst nicht mit der Ausgabeauflösung und seine Ableitungen sind durch automatische Differentiation direkt verfügbar. INRs werden auch koordinatenbasierte Netzwerke oder neuronale Felder genannt und bilden die Grundlage für neuronale Strahlungsfelder sowie einen großen Teil der modernen 3D-Rekonstruktion.
So funktionieren implizite neuronale Repräsentationen#
Eine INR wird jeweils an ein einzelnes Signal angepasst. Beim Training werden Koordinaten abgetastet, die Netzwerkausgabe an diesen Koordinaten mit den tatsächlichen Werten verglichen und die Gewichte per Gradientenabstieg aktualisiert. Die Anpassung ist also absichtliches Overfitting: Ziel ist es, dieses Signal auswendig zu lernen. Ein einfaches MLP mit ReLU-Aktivierungen hat damit Schwierigkeiten, da Netzwerke niedrige Frequenzen viel schneller als hohe lernen. Nasim Rahaman und Kollegen bezeichneten diesen Effekt 2019 als spektrale Verzerrung. Werden rohe Koordinaten eingespeist, erzeugt das Netzwerk eine verschwommene Version des Signals. Zwei Ansätze machten INRs 2020 praktikabel: die Koordinaten mit Sinus und Kosinus bei vielen Frequenzen abzubilden, wie bei den Fourier-Merkmalen von Matthew Tancik und Kollegen und der Positionskodierung von NeRF, sowie ReLU durch eine Sinus-Aktivierungsfunktion zu ersetzen, wie bei SIREN von Vincent Sitzmann und Kollegen.
Dieses PyTorch-Beispiel passt dasselbe MLP zweimal an ein Foto an: einmal mit rohen Koordinaten und einmal mit Fourier-Merkmalen:
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")Nach 1.000 Schritten erreicht das Netzwerk mit rohen Koordinaten ein Spitzen-Signal-Rausch-Verhältnis von 22,0 dB und erzeugt ein verschwommenes Bild. Das Netzwerk mit Fourier-Merkmalen erreicht 46,0 dB und erzeugt nahezu eine exakte Kopie. Die Frequenzskala, hier 10, wird für jedes Signal angepasst: Ist sie zu niedrig, bleibt die Anpassung unscharf; ist sie zu hoch, lernt das Netzwerk die Abtastwerte auswendig und erzeugt dazwischen verrauschte Werte. Metas Segment Anything Model, das im Ultralytics-Paket enthalten ist, codiert die Koordinaten von Punkt- und Box-Prompts mit denselben zufälligen Gaußschen Fourier-Merkmalen, bevor sie den Maskendecoder erreichen.
Formen, Szenen und Geschwindigkeit#
INRs für 3D-Formen kamen 2019 auf: DeepSDF sagte den vorzeichenbehafteten Abstand voraus, während Occupancy Networks die Wahrscheinlichkeit vorhersagten, dass ein beliebiger 3D-Punkt innen oder außen liegt. Dadurch ließ sich bei beliebiger Auflösung ein Netz extrahieren. 2020 folgte NeRF, das Position und Blickrichtung auf Farbe und Dichte für die Synthese neuer Ansichten abbildet. Reine MLPs lassen sich langsam trainieren und abfragen. Hybride Entwürfe speichern daher gelernte Merkmale in einem Raster und decodieren sie mit einem winzigen MLP. Instant-NGP von Thomas Müller und Kollegen bei NVIDIA verwendet eine Hash-Tabelle mit Merkmalen in mehreren Auflösungen und passt ein NeRF in Sekunden statt Stunden an.
INRs unterscheiden sich von expliziten Repräsentationen wie Pixelrastern, Voxels, Netzen und Punktwolken, die Werte direkt speichern und mit der Auflösung wachsen – bei Voxeln kubisch. Gaussian Splatting ist eine neuere explizite Alternative zu NeRF, die durch das Rasterisieren von Millionen 3D-Gauß-Verteilungen schneller rendert. Da eine einfache INR an ein einzelnes Signal angepasst wird, erfordert die Verallgemeinerung über viele Signale zusätzliche Verfahren: Hypernetzwerke, die INR-Gewichte aus einem latenten Code erzeugen, oder Meta-Learning einer Initialisierung, mit der sich ein neues Signal in wenigen Schritten anpassen lässt.
Anwendungen in der Praxis#
- Medizinische Bildgebung: INRs rekonstruieren CT- und MRT-Volumen aus spärlichen oder unterabgetasteten Messungen. Die kontinuierliche Funktion füllt Lücken zwischen den erfassten Messwerten mit einem glatten, datenkonsistenten Volumen.
- Superauflösung: Lokale implizite Bildfunktionen wie LIIF sagen anhand benachbarter Merkmale eine Farbe an jeder kontinuierlichen Koordinate voraus. So kann ein Modell Bilder mit beliebigen Faktoren hochskalieren.
- Erstellung von 3D-Inhalten: Text-zu-3D- und Bild-zu-3D-Generatoren optimieren oder prognostizieren häufig neuronale Felder, die anschließend für Spiele und visuelle Effekte in Netze umgewandelt werden.
- Komprimierung: COIN von Emilien Dupont und Kollegen speichert ein Bild als quantisierte Gewichte eines kleinen MLP und übertrifft JPEG bei niedrigen Bitraten.










