Neural Graphics and Inverse Rendering - Cheatsheet
Convolutional Neural Networks und Recurrent Neural Networks
Definition:
CNNs zur Bildverarbeitung; RNNs zur Verarbeitung sequenzieller Daten.
Details:
- CNNs (Convolutional Neural Networks): Nutzen Faltungen für Merkmalextraktion in Bildern.
- Layer: Convolutional Layer, Pooling Layer, Fully Connected Layer.
- Aktivierungsfunktionen: ReLU, Sigmoid, Tanh.
- RNNs (Recurrent Neural Networks): Verarbeiten Sequenzen durch Rückkopplung.
- Ermöglichen Speicher von vorherigen Zuständen.
- Typen: Vanilla RNNs, LSTMs (Long Short-Term Memory), GRUs (Gated Recurrent Units).
- Loss-Funktion für Training: Cross-Entropy, Mean Squared Error.
- Backpropagation Through Time (BPTT) für RNN-Training.
Overfitting vermeiden: Dropout, L2-Regularisierung
Definition:
Techniken zur Vermeidung von Overfitting, um die Generalisierungsfähigkeit von Modellen zu verbessern.
Details:
- Dropout: Verhindert Ko-Adaptationen von Neuronen durch zufälliges Entfernen von Einheiten während des Trainings.
- L2-Regularisierung: Fügt eine Bestrafung für große Gewichte hinzu, um die Modellkomplexität zu kontrollieren. Regularisierungsterm: \[ \frac{\text{loss}}{2} + \frac{\text{lambda}}{2} \times \text{sum}(\text{weights}^2) \]
Raytracing und Rasterisierung
Definition:
Raytracing simuliert den realistischen Lichtweg durch Szenenpixel; Rasterisierung konvertiert 3D-Objekte in 2D-Pixel für schnelle Projektion.
Details:
- Raytracing: Verfolgt Lichtstrahlen, realistische Schatten, Reflexionen, Brechungen.
- Rasterisierung: Projiziert 3D-Objekte auf 2D-Bildschirm, verwendet Z-Puffer für Tiefenwert
- Raytracing: Rechenintensiver, hoher Realismus.
- Rasterisierung: Geeignet für Echtzeit-Rendering, Spiele.
- Formel: Beleuchtung in Raytracing durch \[ L_o(p, \theta_o, \theta_i) = L_e(p, \theta_o) + \frac{1}{\text{PDF}}\times (\int_{\theta_i} f_r(p, \theta_i, \theta_o) \times L_i(p, \theta_i, \theta_o) \times (\theta_i \bullet n)\text{d}\theta_i) \]
Shader-Programmierung: GLSL, HLSL
Definition:
Shader-Programmierung mit GLSL und HLSL
Details:
- GLSL: OpenGL Shading Language
- HLSL: High Level Shading Language (für DirectX)
- GLSL: C-ähnliche Syntax, plattformunabhängig
- HLSL: C-ähnliche Syntax, für Microsoft-Plattformen
- Typen: Vertex Shader, Fragment Shader, Compute Shader etc.
- Zweck: Grafikberechnungen auf der GPU
- In PK-Netzen/NGM für inverse Darstellung und neural Rendering verwendet
Physik-basiertes Rendering: Path Tracing
Definition:
Path Tracing: Ein Monte-Carlo-Algorithmus für physikalisch basiertes Rendering, der realistische Bildsynthese durch Zufallsstrahlenverfolgung ermöglicht.
Details:
- Berechnet globale Beleuchtung durch Simulation von Lichtpfaden
- Probenahme von indirektem Licht und Reflexionen
- Verwendet die Rendering-Gleichung: \[ L_o(x, \theta_o) = L_e(x, \theta_o) + \int_{S^2} f_r(x, \theta_i, \theta_o) L_i(x, \theta_i) (\theta_i \boldsymbol{\text{N}}) d\theta_i \]
- Erfordert viele Samples für Rauschunterdrückung
- Effektiv für realistische Szenen mit komplexen Lichttransporten
- Implementierungen nutzen oft \textit{Importance Sampling} zur Steigerung der Effizienz
Formulierung und Lösung inverser Probleme
Definition:
Inverses Problem: Bestimmung von Eingaben eines Systems, die zu beobachteten Ausgaben führen.
Details:
- Inverse Probleme: Berechnung unbekannter Parameter/Merkmale aus beobachteten Daten.
- Mathematische Formulierung: Umkehrung eines Vorwärtsproblems, bei dem Ausgangs- und Eingabedaten durch lineare/nichtlineare Operatoren verbunden sind.
- Typische Gleichung: Gegeben eine Funktion \( f \), finde \( x \) sodass \( y = f(x) \).
- Lösungsmethoden: Optimierung, Regularisierung, Bayesianische Inferenz.
Integration neuronaler Netze in inverse Rendering-Prozesse
Definition:
Einsatz von neuronalen Netzen zur Optimierung und Beschleunigung von inverse Rendering-Algorithmen.
Details:
- Ziel: Extraktion von 3D-Szenenparametern aus 2D-Bildern.
- Netzwerke lernen Mapping von Bilddaten zu Szenenparametern.
- Verwendung von Convolutional Neural Networks (CNNs) und Generative Adversarial Networks (GANs).
- Vorteile: Reduktion der Rechenzeit, höhere Genauigkeit.
- Beispiel: Nutzung von Differentiable Rendering zum Gradienten-basierten Training.
- Kombination mit klassischen Algorithmen (z.B. ray tracing).