R - Merkmalsextraktion in Radiographie und CT Bildern (Teil 1) (Stefan Bosse) [01.2024]

Merkmalsextraktion in Radiographie und CT Bildern (Teil 1)

Daten

In dieser Übung werden CT Bilddaten von einer radialen μCT Messung von Aluminium Gussbauteilen mit prozessbedingten Poreneinschlüssen verwendet. Die Bilder reüräsenieren rekosntruierte Schichtaufnahmen entlang der Längsachse der Platten (Abmessungen ca. 150 x 50 x 5 mm). Die Proben stammen von Fraunhofer IFAM, Bremen (Dirk Lehmhus), die Messdaten von einem Zeiss Xradia μCT Gerät, Universität Siegen, Robert Brandt.

DATA: Variable AluDC_CT_Slice_186 Type: Binary DATA: Variable AluDC_CT_Slice_217 Type: Binary DATA: Variable AluDC_CT_Slice_255 Type: Binary DATA: Variable AluDC_CT_Slice_300 Type: Binary


R Starten

 ▸ 
[]
 ✗ 
 ≡ 


R Set-up

 ▸ 
[]
 ✗ 
 ≡ 

Analyse der Bilder

Aufgabe. Welchen Helligkeitswert sollten Bereich ohne Materie/Material bei CT Schichtaufnahmen besitzen, was ist hier zu beobachten?


Plot eines Bildes

 ▸ 
[]
 ✗ 
 ≡ 

Anstelle des klassischen Image Plots kann mit dem crosshair=TRUE Argument ein anderer Plotter mit einem Analysekreuz und der Angabe der aktuellen Position und relativen Intensität an dieser Stelle erzeugt werden. Achtung: Der realtive Wert 1 bezieht sich bei Autoskalierung auf den dort ermittelten Maximalwert (und 0 auf Minimum)! Besser mit ylim=[0,65535] normiertes Werteintervall setzen.


Analyse eines Bildes

 ▸ 
[]
 ✗ 
 ≡ 

Normalisierung von Intensitätsverteilungen

Intensitätsverteilung von Bildern können auf zwei Arten normalisiert werden:

  1. Globale verschiebung und Skalierung nach dem globalen minimalen und maximalen Intensitätswert ⇒ Offset und Bereichskorrektur
  2. Globale Histogrammnormalisierung
  3. Lokale Intensitätsangleichung, z.B. bei inhomogen beleuchteten Bildern (Mikroskop, rohe Röntgenbilder mit Intensitäsgradienten durch Quelle) ⇒ "Contrast Limited Adaptive Histogram Equalization"

Die Normalisierung der Intensitätswerte kann auch ein Clipping beinhalten, bezogen auf Minimal- und Maximalwert.


Globale Normalisierung der CT Bilder mit Offsetkorrektur und Skalierung

 ▸ 
[]
 ✗ 
 ≡ 

Ist es sinnvoll jedes Bild einzeln mit individuellen Grenzen zu normieren? Was wäre die bessere Methodik? variiere die Grenzen (inputRange von normalize), wie verändert sich das normierte Bild vom Kontrast?


Plot eines normierten Bildes

 ▸ 
[]
 ✗ 
 ≡ 

Aber: Jetzt können wir den Kontrast verbessern, doch kann es immer noch einen örtlich variierenden mittleren Intensitätswert geben (Beleuchtungsgradient).

Aufgabe. Wo finden sich Veränderungen der mittleren Hintergrundhelligkeit in unseren Beispielbildern. Bemerke: Die Merkmale sind die dunklere Flecken im Materialbereich (Poren)?

Profilierung und Homogenisierung


Profilierung eines Bildes

 ▸ 
[]
 ✗ 
 ≡ 


Profilhomogenisierung eines Bildes

 ▸ 
[]
 ✗ 
 ≡ 


Profilhomogenisierung aller Bilder

 ▸ 
[]
 ✗ 
 ≡ 

Globale Histogramnormalisierung

Die Histogrammnormalisierung (Histogrammspreizung) ist eine Methode, die den Kontrast eines Graustufenbildes automatisch zu erhöhen. Ziel der automatischen Kontrastanpassung ist es, die Pixelwerte eines Bilds so zu verändern, dass der gesamte verfügbare Wertebereich abgedeckt wird. Dazu wird das aktuell dunkelste Pixel auf den niedrigsten und das aktuell hellste Pixel auf den höchsten Intensitätswert abgebildet und alle dazwischenliegenden Pixelwerte linear verteilt.

\[ {H}_{{{c}{d}}}{\left({i}\right)}=\frac{{\sum_{{{0}\le{j}<{i}}}{H}{\left({j}\right)}}}{{N}} \]
\[ {I}_{{{e}{q}}}{\left({x},{y}\right)}={H}_{{{c}{d}}}{\left({I}{\left({x},{y}\right)}\right)} \]

Globale Histogramnormalisierung der CT Bilder

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Was passiert mbei der Histogrammnormalisierung im Vergleich zu den vorherigen Normalisierungen? verwende sowohl images als auch images.norm. Wo gibt es Unterschiede? Wie sieht das Histogramm vorher und nachher aus?

Lokaladaptive Histogramnormalisierung

  1. Intensitätsänderung aufgrund zu detektierender Merkmale (z.B. Aufhellung durch Materialporen)
  2. Intensitätsänderung aufgrund ungleichmäßiger "Beleuchtung"

CLAHE (Kontrastbegrenzter adaptiver Histogrammausgleich) ist ein Algorithmus zur Verbesserung des lokalen Kontrasts in Bildern und wird häufig in Anwendungsbereichen wie Unterwasserfotografie, Verkehrskontrolle, Astronomie und medizinischer Bildgebung eingesetzt.


Lokale Histogramnormalisierung der CT Bilder mit dem CLAHE Algorithmus

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Was passiert bei der lokal adaptiven Normalisierung im Vergleich zu den vorherigen Normalisierungen? verwende sowohl images als auch images.norm. Wo gibt es Unterschiede? Wie sieht das Histogramm vorher und nachher aus?

Merkmalsextraktion

Statische Threshold Diskriminierung


Einfache Merkmalsmarkierung mit Intervallthresholding

 ▸ 
[]
 ✗ 
 ≡ 

Bestimmung einer optimalen Schwelle

Folgende Verfahren könnten angewendet werden, i.A. immer unter Verwendung von Histogrammen:

  1. Manuell / Erfahrung
  2. Global
  3. Lokal

In der Bildverarbeitung wird die nach Nobuyuki Otsu benannte Otsu-Methode zur automatischen Bildschwellenwertbildung verwendet. In der einfachsten Form gibt der Algorithmus einen einzelnen Intensitätsschwellenwert zurück, der Pixel in zwei Klassen unterteilt (binarisiert): Vordergrund und Hintergrund. Dieser Schwellenwert wird durch Minimierung der klasseninternen Intensitätsvarianz oder äquivalent durch Maximierung der klasseninternen Varianz bestimmt und entspricht einem global optimalen k-Mittelwert, der im Intensitätshistogramm durchgeführt wurde.

#otsuvisu
Visualisierung von Otsu's Methode (Wikipedia)

#triavisu
Visualisierung der Triangulationsmethode (Zack, 1977)


Bestimmung einer optimalen Threshold mit Otus und Triangulationsmethode

 ▸ 
[]
 ✗ 
 ≡ 


Binarisierung mit Otus und Triangulationschwelle

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Sind diese Methoden hier brauchbar? Wenn nein, wo liegt das Problem?

Cropping

Häufig müssen Bilder auf relevante Inhalte beschnitten werden die die zu detektierenden Merkmale enthalten (Hintergrunddiskriminierung)

Cropping kann manuell oder automatische erfolgen. Automatisches Cropping verwendet verschiedene Bilddtransformationsn um den relevanten Bereichs eines Bildes detektieren zu können. Kantendetektion wird häufig verwendet (neben Intensitätsanalyse). Es können einfache Gradientenfilter oder der Canny Detektor verwendet werden. Die nachfolgende automatische Beschneidung des Bildes nutzt einen einfachen Gradientenfilter mit expliziter Hintergrundausblendung (background).

Das automatische Cropping kann fehlschlagen. Dann gibt nachfolgende autocrop Funktion kein Bild und keine cropbbox zurück. Die latenten Bilder input und output können zur internen Analyse herangezogen werden. Es wird dann in cropbox und cropped (Ergebnis) ein numerischer Wert zurückgegeben!


Automatisches Cropping

 ▸ 
[]
 ✗ 
 ≡ 

Adaptive Threshold Diskriminierung

Die allgemeine Annahme, die allen adaptiven und lokalen Schwellwertverfahren zugrunde liegt, ist, dass kleinere Bereiche eines Bildes eher eine annähernd gleichmäßige Beleuchtung aufweisen.

Die allgemeine Formel zur Berechnung von T lautet also:

\[ {T}=\text{mean}{\left({I}_{{L}}\right)}-{C} \]

wobei der Mittelwert entweder der arithmetische oder der Gaußsche Mittelwert ist, IL der lokale Teilbereich des Bildes I(x,y) mit einer bestimmten Blockgröße ist, und C eine Konstante ist, mit der wir den Schwellwert T fein einstellen können (Kompensation).


AdaThreshold

 ▸ 
[]
 ✗ 
 ≡ 

Frage. Wo liegen die Probleme bei der adaptiven Threshold Diskriminierung? Wie ist die Abhängigkeit von den Parametern adasize (search size) und adacomp (compensation)?

Clustering

  1. Es werden Listen von Pixelkoordinaten [x,y] benötigt. Ausgangspunkt ist ein Binärbild. Mittels as.pixset(img>0,..) werden die Koordinaten aller gesetzten Pixel des binären Thresholdbildes in eine Liste oder matrix eingetragen (pixel set)
  2. Da die Ränder des Objekts und Hintergrund markiert sind, ist ein (adaptiver) Ausschnitt sinnvoll (Rechteckiger Bereich)
  3. Mittels DBSCAN Clustering werden alle Punkte der Punktliste gemäß den Parametern gruppiert: Annahme: Jede Gruppe bildet eine Pore!

Pixel Sets und DBSCAN

 ▸ 
[]
 ✗ 
 ≡ 


Cluster Analyse

 ▸ 
[]
 ✗ 
 ≡ 

Aufgabe. Variiere eps und minPoints und untersuche das Ergebnis auf best mögliche Übereinstimmung der Porengruppierung durch visuelle Inspektion. Mit welchen Parametern ergeben sich gute Ergebnisse, was sind negative Effekte?


Created by the NoteBook Compiler Ver. 1.27.1 (c) Dr. Stefan Bosse (Tue Feb 20 2024 23:50:53 GMT+0100 (Central European Standard Time))