Neural Radiance Fields (NeRF): Studiennotizen
NeRF und Neural Volumetric Rendering – Studiennotizen
Kontext und Ziel
- NeRF steht für Neural Radiance Fields und verbindet Rendering- und Vision-Ansätze durch ein invertiertes Rendering-Framework.
- Eingabe: eine Menge kalibrierter Bilder; Ausgabe: eine 3D-Szenenrepräsentation, die neue Ansichten (novel views) rendern kann.
- Sichtweise: Computer Vision als Inverse Rendering – aus Bildern auf eine 3D-Szene schließen.
- NeRF wird aus Material von Pratul Srinivasan erläutert und in der Vorlesung als eine Form der neuralen Volumenrendering-Representation präsentiert.
Drei zentrale Komponenten (Three Key Components)
- Neural Volumetric 3D Scene Representation
- Eine kontinuierliche 5D-Funktion, abgebildet als MLP, repräsentiert die Szene: $(x, y, z, \theta, \phi) \mapsto (r, g, b, \sigma)$.
- Farbwerte $r,g,b$ und Dichte $\sigma$ hängen vom Ort und der Blickrichtung ab.
- Die 3D-Szene wird als volumetrische Darstellung (Volumetric 3D) modelliert, nicht als Mesh oder Punktwolke.
- Differentiable Volumetric Rendering Function $\Omega$
- Ein differentiabler Rendering-Operator, der aus dem Dichtefeld und den Farbwerten entlang eines Strahls ein RGBA-Bild bildet.
- Kernidee: Rendern durch Summe entlang eines Strahls (Ray) mit Transmissions- und Opacity-Mechanismen.
- Optimization via Analysis-by-Synthesis
- Ziel: Alle Trainingsansichten rekonstruiert zu reproduzieren; Parameter des MLP werden durch Gradientenabstieg optimiert, um die Sams-Rendering-Ergebnisse an die Ground-Truth-Bilder anzupassen.
Formale Grundlage: 3D-Szene als kontinuierliche 5D-Funktion
- Domain und Output
- Eingabe: $(x,y,z,\theta,\phi)$ (Ort + Blickrichtung)
- Ausgabe: $(r,g,b,\sigma)$ (Farbwert an der Position + Dichte)
- Parameterisierung
- Die Szene wird durch ein MLP modelliert, typischerweise mit mehreren Schichten (im Vortrag: 9 Layer, 256 Kanäle).
- Modelldefinition:
Volumetrische Rendering-Grundlagen (NeRF-Rendering)
- Ray-Tracing-Setup
- Kamera: Strahl $\mathbf{r}(t) = \mathbf{o} + t \mathbf{d}$ durch die Szene, wobei $\mathbf{o}$ der Blickpunkt und $\mathbf{d}$ die Richtung ist.
- An jeder Position $t$ entlang des Strahls gibt es eine Punkt-Color $\mathbf{c}(t) = (r,g,b)$ und eine Dichte/Opacity $\alpha(t) = 1 - e^{-\sigma(t) \delta}$, wobei $\delta$ der Sampling-Schritt ist.
- Volumetrische Rendering-Operatoren
- Alpha-Transparenz pro Sample:
- Transmittance bis Sample $i$:
- Farb-Score entlang des Strahls (volumenbasierte Schätzung):
- Alternativ: Gewichte , dann
- Minimierung und Differenzierbarkeit
- Die Farbwahrnehmung entlang vieler Strahlen (Bildpixel) wird simuliert und mit Ground-Truth-Bildern verglichen.
- Die Parametrisierung des MLP ist differentiable, sodass Gradienten durch das Rendering zurück in das Netzwerk fließen.
- Modifikation für Dichte statt direkter Dichte-Angabe
- Häufige Darstellung: , wobei $\deltai$ der Sampling-Abstand ist.
- Diese Form erleichtert die numerische Integration und die Approximation des Integralwerts entlang des Strahls.
Representierung, Encodierung und Architektur
- 5D-Funktion als kontinuierlicher, 3D-Volumen-basierter Repräsentation
- Eingänge: Ort $(x,y,z)$ plus Blickrichtung $(\theta, \phi)$; Ausgabe: Farb- und Dichtewerte.
- NeRF-Architektur
- Ein MLP mit typischer Größe: 9 Schichten, 256 Kanäle pro Layer.
- Input wird oft durch eine Positional Encoding erweitert, um Hochfrequenz-Informationen zu ermöglichen.
- Positional Encoding (hochfrequenzige Abbildung)
- Naive koordinatenbasierte MLPs haben Schwierigkeiten mit hohen Frequenzen; Lösung ist eine Vorverarbeitung der Eingaben mit einer hochfrequenten Abbildung (z. B. Sinus-/Kosinus-Funktionen über verschiedene Frequenzen).
- Beispielhafte Darstellung: Eingabekoordinaten durch eine Verstärkung der Frequenzen, z. B. sin(2x) als einfache Demonstration; in der Praxis eine Reihe von Frequenzen, um feine Details abzudecken.
Erweiterung: View-Dependent Field
- Erweiterung: Zusätzlich zur 3D-Position wird die Blickrichtung in den Input des MLP aufgenommen (3D-Punkt + Richtung), um spiegelnde/ansprechende Oberflächen korrekt darzustellen.
- Vorteile: Realistische Darstellung von Blickwinkel-Abhängigkeiten (z. B. shiny/reflektierende Oberflächen).
Training und Optimierung
- Ziel
- Trainiere das MLP so, dass die volumenthe Rendering-Ansichten mit den gegebenen Ground-Truth-Bildern übereinstimmen.
- Verlustfunktion
- Typischer Verlust: Kommunikationslose L2-Differenz zwischen Ground-Truth und Rendering: , wobei $\theta$ die Netzwerkparameter darstellt.
- Training-Pipeline
- Für jede Trainingsepoche werden Strahlen (Pixelstrahlen) aus allen Ansichten abgetastet.
- Für jeden Strahl Sampling-Positionen $t_i$ berechnet das MLP $(r,g,b,\sigma)$; via volumetrisches Rendering wird ein vorhergesagtes Bild erstellt.
- Gradientenabstieg über alle Strahlen minimiert den Verlust.
- Ergebnisvisualisierung
- Ergebnisse zeigen: überzeugende sichtabhängige Effekte, realistische Geometrie und Occlusion durch volumetrische Dichte.
Was NeRF ist und was es nicht ist
- NeRF = Volume Rendering + Koordinaten-basiertes Netzwerk
- Es ist kein Mesh, keine Punktwolke; es ist eine volumetrische Repräsentation mit kontinuierlichen Voxeln (Volumen).
- Der 3D-Szene wird als eine schöne, dichte Wolke von Farbe und Dichte modelliert, keine expliziten Oberflächen.
Praktische Details & Datenanforderungen
- Kalibrierte Kameras sind nötig: extrinsische (Standpunkt) und intrinsische Parameter (Brennweite, Verzerrung etc.).
- Wie man diese Parameter erhält: Struktur aus Bewegung (Structure from Motion, SfM) bzw. SLAM; übliche Tools wie Colmap (Bezug aus Vorlesung: Schönberger et al. 2016).
- Zusammenhang mit klassischen 3D-Techniken: NeRF baut auf dem Konzept der Plenoptik auf, aber statt expliziter Geometrie generiert es Pixelwerte direkt aus einem volumetrischen Modell.
Plenoptik, Plenoptic Function und Bildbasierte Rendering-Historie
- Plenoptic Function (7D): $P(\theta, \phi, \lambda, t, Vx, Vy, V_z)$ – Zustand aller Dinge, die wir sehen können – Bildet die visuelle Realität ab.
- Vereinfachungen im Verlauf: Fokus auf Blickrichtung plus Position, later auf RGB-Farben und Frames.
- Ziel: Plenoptic Function aus Bilddaten rekonstruieren und Bild-basiertes Rendering bzw. Novel View Synthesis ermöglichen.
- Historischer Kontext: SfM/Multiview Stereo (MVS) liefern solide Kameraparameter, dann NeRF als neuer Ansatz zur Repräsentation und Rendering der Szene.
Beziehung zu Struktur-from-Motion, Photogrammetrie und MVS
- NeRF setzt SfM voraus, um Kameraparameter zu schätzen; daher ist die Problemkategorie ähnlich wie Multi-View Stereo (MVS).
- Aufbauende Konzepte: Kameramodellierung, Extrinsics/Intrinsics, Kalibrierung.
Ergebnisse, Vorteile und Limitationen (Stand ca. 2020)
- Vorteile
- Realistische, view-dependent Rendering-Effekte
- Detaillierte Geometrie inklusive Occlusions
- Limitationen
- Sehr teils langsam im Training und Rendering
- Abhängigkeit von Pose-Genauigkeit der Kameras
- Annahme statischer Szenen und Beleuchtung
- Nicht direkt generalisierbar zwischen verschiedenen Szenen
Probleme, Caveats & Hinweise aus der Vorlesung
- Ein wichtiger Hinweis: Training eines NeRF erfordert kalibrierte Kameras – Extrinsics/Intrinsics müssen bekannt sein.
- Alternative Wege: SfM/SLAM-gestützte Vorverarbeitung, um Kameraparameter zu schätzen, bevor NeRF trainiert wird.
Zusammenfassung der Kernideen
- Repräsentiere die Szene als volumetrischen, farbigen Nebel (fog) – Farb- und Dichtewerte werden durch eine MLP mapping $3D$-Positionen zu $(c,\sigma)$ erzeugt.
- Renderen erfolgt durch Strahlabtastung, volumetrische Integration und Transmittanz
- Farbwert pro Strahl:
- Modelldesign: Koordinatenbasiertes Netzwerk (MLP) mit Positional Encoding, ggf. Ansicht-abhängige Erweiterung durch Eingabe der Blickrichtung
- Training erfolgt mittels Gradientenabstieg, um die Rendering-Ergebnisse der Trainingsansichten zu reproduzieren
- Historischer Kontext: NeRF baut auf Plenoptik, SfM/MVS und Bild-basierter Rendering-Ansätze auf, bietet jedoch eine neue, flexible volumetrische Repräsentation
Wichtige Formeln (Zusammenfassung)
- Strahlgleichung:
- Alpha-Qualität pro Sample:
- Transmittanz bis Sample $i$:
- Endgültige Farbabbildung entlang eines Strahls:
- Netz-Output:
- Inputs inklusive Direction (für view-dependent): $(x,y,z,\theta,\phi)$ bzw. $(x,y,z,\mathbf{v})$
- Positional Encoding (hochfrequente Kodierung) zur Verbesserung der Repräsentation hochfrequenter Details
Praktische Lektion aus der Originalpräsentation
- NeRF encodiert überzeugende View-Dependent-Effekte durch Richtungseinbeziehung.
- Die Geometrie des Scenes wird durch Dichtefeld und Farbfelder dargestellt, nicht durch explizite Oberflächen.
- Die Validierung erfolgt durch Abgleich der rendernden Bilder mit Ground-Truth-Bildern aus mehreren Kamerawinkeln.
Anmerkung zur Terminologie in den Slides
- NeRF: Neural Radiance Fields = Volumetrische Rendering + Koordinaten-basiertes Netzwerk.
- Volumetric Rendering: Rendering-Ansatz, der keinen konkreten Oberflächenprozess benötigt, sondern Integrale durch Volumen durchführt.
Relevante Zitate / Referenzen (aus dem Transkript)
- NeRF: Mildenhall, Srinivasan, Tancik, Barron, Ramamoorthi, Ng – ECCV 2020.
- Kontextuelle Verweise: Structure from Motion, Colmap (Schönberger et al. 2016), Plenoptic Function (A. Efros, L. McMillan).