Files
demons_reg/01_Demons_Theorie_Teil_1-5.md
2026-01-10 13:41:08 +00:00

7.2 KiB
Raw Blame History

Dämonenbasierte Bildregistrierung - Grundlagen & Theorie

TEIL 1: Bildregistrierung Grundlagen

Was ist Bildregistrierung?

Problem: Gegeben zwei Bilder - ein festes Bild F und ein bewegtes Bild M - finde eine räumliche Transformation T, die beide Bilder ausrichtet.

Ziel: Minimiere die Ähnlichkeit (normalerweise quadratischer Fehler):

E(T) = ||F(x) - M(T(x))||²

wobei:

  • F(x): Intensität des festen Bildes am Ort x
  • M(T(x)): Intensität des bewegten Bildes am transformierten Ort T(x)
  • x: Pixel-/Voxelposition

Warum Bildregistrierung?

Bildregistrierung ist essentiell in:

  • Medizinische Bildgebung: Ausrichtung von CT/MRT-Aufnahmen über Zeit
  • Bildverarbeitung: Automatische Strukturerkennung
  • Computer Vision: Motion Estimation, Stereo Vision
  • Remote Sensing: Satelliten-Bildanalyse

Die Kerneigenschaften der Demons

Der Demons-Algorithmus basiert auf drei Hauptideen:

  1. Intensitätserhaltung: Die Annahme ist, dass intensitätsähnliche Punkte korrespondierende anatomische Strukturen sind
  2. Optischer Fluss: Die "Kraft" wird aus lokalen Intensitätgradienten berechnet
  3. Iterative Regularisierung: Gausssche Glättung nach jeder Iteration

TEIL 2: Die Demons-Kraft (Demons Force)

Mathematische Formulierung

An jedem Pixel p wird eine Displacement Field u berechnet, die die Deformation antreibt:

         |F(p) - M∘s(p)|²    · (∇M∘s(p))^T
u(p) = ─────────────────────────────────────────
        ||∇M∘s(p)||² + σ_i²/σ_x²

Worauf diese Formel aufbaut:

  • Numerator: Intensitätsdifferenz × Gradient des bewegten Bildes
  • Denominator: Normalisierung durch Gradienten-Magnitude und Rausch

Parameter:

  • σ_i = |F(p) - M∘s(p)| (lokale Rauschschätzung, wird iterativ berechnet)
  • σ_x: Maximale Schrittlänge (kontrolliert ||u(p)|| ≤ σ_x/2), typisch 0.5-2 Pixel

Intuition: Warum funktioniert das?

Die Formel ist clever konstruiert:

  1. Wenn Intensitäten unterschiedlich sind (|F(p) - M∘s(p)| groß):

    • Die Kraft ist stark
    • Der Algorithmus macht große Schritte
  2. Wenn Gradienten klein sind (flache Region):

    • Der Nenner ist klein → Kraft größer
    • Dies macht den Algorithmus in Bereichen mit schwachen Kanten robust
  3. Richtung: Der Gradient ∇M∘s gibt die Bewegungsrichtung vor

    • Die Kraft "schiebt" in die Richtung des stärksten Gradienten

Varianten der Demons-Kraft

Es gibt mehrere Varianten, abhängig von welcher Jacobi-Matrix J_p verwendet wird:

Thirion's Original (bewegtes Bild)

J_p = -∇(M∘s)  (Gauss-Newton Approximation)
u(p) = -[F(p) - M∘s(p)] / (||∇(M∘s)||² + σ²) · ∇(M∘s)^T

Fixed Image Variant (Thirion's Alternative)

J_p = -∇F  (einfacher, aber weniger genau)

Symmetric Forces (ESM - Efficient Second-Order Minimization) - EMPFOHLEN

J_p = -1/2(∇F + ∇(M∘s))  (zweiter Ordnung, schnellere Konvergenz!)
u(p) = [F(p) - M∘s(p)] / (||∇F + ∇(M∘s)||²/4 + σ²) · (∇F + ∇(M∘s))^T

Die symmetrischen Kräfte sind theoretisch und praktisch überlegen!


TEIL 3: Der Komplette Algorithmus

Additive Demons (traditionell, ITK-Standard)

Algorithmus: Additive Demons Iterations

Input:  Fixed image F, Moving image M
Output: Displacement field s (kumulativ)

Initialisiere s = 0 (Identität)

FOR iteration = 1 bis max_iterations:
    
    // Schritt 1: Berechne Demons-Kraft an jedem Pixel
    FOR jedes Pixel p:
        Berechne Intensitätsdifferenz:
            diff = F(p) - (M warped mit s)(p)
        
        Berechne Gradienten:
            grad_F = ∇F(p)
            grad_M = ∇(M∘s)(p)
        
        Berechne update (mit Symmtrischen Kräften):
            u(p) = diff / (||grad_F + grad_M||²/4 + σ²) · (grad_F + grad_M)^T
    
    // Schritt 2: Fluid-ähnliche Regularisierung (optional)
    u ← Gaussian_Kernel(σ_fluid) * u
    // σ_fluid typisch 1 Pixel
    
    // Schritt 3: Akkumuliere die Deformation
    s_new = s + u
    
    // Schritt 4: Diffusions-ähnliche Regularisierung (optional)
    s ← Gaussian_Kernel(σ_diff) * s_new
    // σ_diff typisch 1 Pixel

END FOR

Compositive Demons (theoretisch besser)

Der Unterschied: Verwendung von Komposition statt Addition

Algorithmus: Compositive Demons Iterations

Initialisiere s = Id (Identität)

FOR iteration = 1 bis max_iterations:
    
    // Schritt 1-2: Wie in Additive, aber...
    // Schritt 3: Komposition (nicht Addition!)
    c ← s ∘ (Id + u)  // c = s(x + u(x))
    // Das ist geometrisch sauberer!
    
    s ← c (oder mit Regularisierung geglättet)

END FOR

Diffeomorphic Demons (invertierbar, für spezielle Anwendungen)

Verwendet Lie-Gruppe-Struktur und Exponential-Map:

Algoritmus: Diffeomorphic Demons

Initialisiere s = Id

FOR iteration = 1 bis max_iterations:
    
    // Schritt 1-2: Wie vorher
    u ← ... (Demons-Kraft berechnen)
    u ← Gaussian_Kernel * u
    
    // Schritt 3: EXPONENTIAL-Komposition (Lie-Gruppe)
    c ← s ∘ exp(u)
    // exp(u) wird mit Scaling & Squaring berechnet
    
    // Exponentiale approximieren mit:
    N = ceil(log2(max||u(p)||/0.5))
    v = u / 2^N
    FOR i = 1 bis N:
        v = v ∘ v
    s = v

END FOR

TEIL 4: Implementierungsdetails

Bildinterpolation

Problem: T(p) ist oft nicht auf Gitterpunkten. Lösung: Interpolation

Häufige Methoden:
- Linear interpolation: Schnell, ausreichend für die meisten Fälle
- B-spline: Glatter, aber langsamer
- Nearest neighbor: Schnell, aber grob

Multi-resolution (Pyramiden)

Für große Verformungen:

1. Berechne Bildpyramide: Level 8→4→2→1 (Downsampling)
2. Registriere auf grobster Ebene (schnell, globale Deformation)
3. Verfeinere auf feiner Ebene (lokal, Details)

Konvergenzkriterien

Iterationen abbrechen wenn:
- Max iterations erreicht (typisch 100-500)
- Mittlere Verschiebung < Schwellwert (z.B. 0.1 Pixel)
- MSE-Verbesserung < Schwellwert

TEIL 5: Praktische Tipps

Parameter tuning

σ_fluid (Fluid-Regularisierung):  0.5 - 2.0 Pixel
σ_diff (Diffusions-Regularisierung): 0.5 - 2.0 Pixel
σ_x (Max Schrittlänge): 0.5 - 2.0 Pixel

Standard-Startwerte: σ_fluid = 1, σ_diff = 1, σ_x = 2

Fehlerquellen

  1. Zu starke Regularisierung: Glatt, aber ungenau
  2. Zu schwache Regularisierung: Faltig, potentiell nicht-invertierbar
  3. Falsche Bildinterpolation: Artefakte
  4. Zu große Schritte: Divergenz
  5. Multi-resolution nicht verwendet: Schlechte Konvergenz bei großen Deformationen

Wann Demons verwenden?

GUT für:

  • Monomodale Registrierung (CT-CT, MRT-MRT)
  • Schnelle Verarbeitung notwendig
  • Iterative Anwendungen
  • 2D und 3D

WENIGER GUT für:

  • Multimodale Registrierung (CT-MRT) → verwende Varianten mit anderer Metrik
  • Sehr große Deformationen ohne Multi-resolution
  • Wenn garantierte Invertierbarkeit erforderlich ist → verwende Diffeomorphic Demons

Zusammenfassung: Die Demons-Registrierung ist ein eleganter und effizienter Algorithmus, der auf lokalen Intensitätsgradienten und iterativer Regularisierung basiert. Die symmetrischen Kräfte bieten dabei die beste Balance zwischen Schnelligkeit und Genauigkeit.