Skip to content

Vorlesung 05 - Monokulare Tiefenrekonstruktion

Datum: 22.04.2026

Ziele

  • Deep Learning Modelle zur monokularen Tiefenrekonstruktion verstehen
  • Time-of-flight Imaging verstehen
  • Was gibt es für 3D Datenstrukturen?
  • Wie funktioniert der ICP Algorithmus?

Drehbuch

Inhalt Dauer in min Unterlagen
Begrüßung und Check-In Lernziele 5 miro
Monokulare Tiefenrekonstruktion mit Deep Learning 25 3DCV-10-MonoDL.pdf
Update Lernziele 5 miro
Time-of-flight imaging 15 3DCV-11-TimeOfFlight.pdf
Update Lernziele 5 miro
3D Datenstrukturen 30 3DCV-12-Volume.pdf (bis Folie 22)

Protokoll

Es gibt eine Aufzeichnung der Vorlesung namens "3DCV-05-Mono.mp4", die in diesem Ordner verfügbar ist.

Hier die von Notion erstellte Zusammenfassung der Vorlesung:

Ankündigungen und Neuigkeiten

  • OpenAI hat GPT-Image 2.0 veröffentlicht, das hochrealistische Bilder generieren kann, die kaum von Screenshots zu unterscheiden sind
  • Die Bildqualität ist sehr beeindruckend, mit korrekter Perspektive und Fluchtpunktberechnung
  • Aufnahme der Vorlesung läuft mit Zoom und Notion-Transkription

Wiederholung: Homogene Koordinaten

  • Homogene Koordinaten unterscheiden zwischen Punkten (letzte Koordinate = 1) und Vektoren (letzte Koordinate = 0)
  • Rechenregeln sind intuitiv: Punkt + Vektor = Punkt, Punkt - Punkt = Vektor, Vektor + Vektor = Vektor
  • Diese Konvention wird in der Computergrafik verwendet, um Punkte und Bewegungen zu unterscheiden

Deep Learning für Tiefenschätzung

  • Deep Learning ermöglicht monokulare Tiefenschätzung aus einzelnen Bildern durch Vorwissen über die Welt
  • Supervised Learning benötigt RGB+Depth Datensätze mit Millionen von Bildern
  • Wichtige Datensätze: NYU (400.000 Bilder), KITTI (Karlsruhe Straßenbilder)
  • Data Augmentation erweitert Datensätze durch Transformationen und synthetische Daten aus Game Engines

Entwicklung der Modelle

  • Erste Ansätze 2014 mit NYU und KITTI Datensätzen zeigten grundsätzliche Machbarkeit
  • MiDaS ermöglichte Zero-Shot Cross-Dataset Transfer, benötigte aber 6 GPU-Monate Training
  • Depth Anything (2024) von ByteDance/TikTok zeigte noch bessere Ergebnisse
  • Depth Anything nutzte 1,5 Millionen gelabelte Bilder plus ungelabelte Daten mit Teacher-Modell
  • Funktioniert sehr gut auch für unrealistische Szenen, KI-generierte Bilder und Comics
  • Bereits Version 3 verfügbar, die aus mehreren Bildern oder Videos 3D-Modelle erstellen kann

Time-of-Flight (ToF) Kameras

Grundprinzip und Messtechnik

  • ToF-Kameras messen die Laufzeit von moduliertem Infrarotlicht zur Tiefenbestimmung
  • Moduliertes Signal (z.B. Sinuswelle mit 20 MHz) wird ausgesendet und die Phasenverschiebung gemessen
  • Phasenverschiebung ist proportional zur Distanz
  • Vier Messpunkte pro Periode ermöglichen Berechnung von Phase, Amplitude und Intensität
  • Integration Time liegt zwischen 50 und 3000 Mikrosekunden

Hardware und Technologie

  • Spezieller Chip kombiniert Pixelarray, Analog-Digital-Converter und Temperaturkompensation
  • Azure Kinect Chip: 5,4 x 9,8 mm Größe
  • Microsoft hat Produktion eingestellt, wird aber noch von Firmen wie SICK für industrielle Anwendungen genutzt

Herausforderungen und Probleme

  • Integrationszeit-Optimierung: Kurze Zeit für nahe Objekte, lange Zeit für ferne Objekte erforderlich
  • Modulationsverzerrung: Schwierig, perfekte Sinuswelle zu erzeugen, führt zu systematischen Fehlern abhängig von der Tiefe
  • Reflexionsunterschiede: Schwarze und weiße Flächen liefern unterschiedliche Messwerte
  • Geringe Auflösung: Flying Pixels an Kanten durch gemittelte Tiefeninformationen innerhalb eines Pixels
  • Multipath-Interferenz: Licht reflektiert über mehrere Wege, nicht nur direkt
  • Azure Kinect nutzt drei Frequenzen zur Fehlerkorrektur

Lösungsansätze

  • Light Guide für Hardware-basierte Signalmessung
  • Mathematische Korrektur durch Messung und Modellierung
  • Kalibrierung über den gesamten Messbereich

Anwendungen

  • Body und Gesture Tracking (Xbox Kinect)
  • Pflegeroboter und medizinische Anwendungen
  • Automotive (Innenraumsensorik)
  • Hand-Tracking im kleineren Bereich
  • Funktioniert besser in Innenräumen als draußen (Sonnenlicht-Interferenz)

3D-Datenstrukturen

Verschiedene Repräsentationsformen

  • Depth Maps/Range Images: Kompakt, aber abhängig vom Viewpoint, benötigt Kameramatrix für 3D-Rekonstruktion
  • Punktwolken: 3D-Punkte mit optionalen Farbwerten, verlieren Nachbarschaftsinformationen
  • Meshes: Verbundene Punkte als Dreiecke, ideal für Rendering mit Beleuchtungsrechnung
  • Voxels: 3D-Pixel für volumetrische Darstellung, gut für Nebel und weiche Übergänge
  • Signed Distance Functions (SDF): Mathematische Funktionen, die Oberfläche bei Wert 0 beschreiben
  • Neural Radiance Fields (NERF): Neuronales Netz als Repräsentation, abhängig von Blickrichtung
  • 3D Gaussian Splatting: 3D-Gaussverteilungen mit Spherical Harmonics, schneller als NERF

ICP-Algorithmus (Iterative Closest Point)

  • Ziel: Registrierung von zwei Punktwolken durch Finden der optimalen rigiden Transformation
  • Drei Punktpaare reichen für eindeutige Lösung (Horn, 1980er)
  • Kernidee: Punkte, die am nächsten beieinander liegen, gehören zusammen
  • Ablauf: Ausgangslage → nächste Punkte finden → Transformation berechnen → iterativ wiederholen
  • Herausforderung: Effiziente Nearest-Neighbor-Suche erfordert 1 Million Distanzmessungen bei 1000x1000 Punkten
  • Lösung: KD-Bäume reduzieren Komplexität auf log(n)
  • Zahlreiche Varianten je nach Optimierungsziel (Geschwindigkeit, Stabilität, Outlier-Toleranz)

Ausblick

  • Professor wird beim nächsten Mal MeshLab-Demo für ICP vorbereiten
  • Nächste Vorlesung: KD-Bäume und Octrees für effiziente räumliche Datenstrukturen
  • Nächster Termin: 29.4.2026

Errata

  • Auf der Folie 11 zu Time-of-Flight-Kameras gab es einen Fehler in der Formel für die Phasenverschiebung. Die korrekte Formel lautet:

\(\text{Phase } \varphi = \arctan\!\left(\frac{S_3 - S_1}{S_2 - S_0}\right)\)

\(\text{Distance } D = \frac{c \varphi}{4\pi\omega}\)

\(\text{Amplitude } A = \frac{\sqrt{(S_3 - S_1)^2 + (S_2 - S_0)^2}}{2}\)

\(\text{Intensity } I = \frac{S_0 + S_1 + S_2 + S_3}{4}\)