20
Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit Java B3.3 HIPR2 Framework B3.4 Praktisches Beispiel und weitere Operationen auf Bildern - thresholding - morphologische Operationen - region labeling Literatur: The Hypermedia Image Processing Reference http://homepages.inf.ed.ac.uk/rbf/HIPR2/ Klaus D. Tönnies: "Grundlagen der Bildverarbeitung" ISBN 3-8273-7155-4 Bildmaterial in dieser Vorlesung aus HIPR2 und Tönnies entnommen! Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 37 HIPR2: The Hypermedia Image Processing Reference Entstanden an der Univ. Edinburgh, KI-Labor (Robotik-Anwendungen!) Autoren: Robert Fisher, Simon Perkins, Ashley Walker, Erik Wolfart Referenz der 50 meistverwendeten Operatoren in der Bildverarbeitung Detaillierte Beschreibung jedes Algorithmus Java demo für jeden Algorithmus Tips und Beispielbilder zu jedem Operator Interaktives Tableau, mit dem man Operatorketten ausprobieren kann. Sammlung von Übungsaufgaben, Lexikon der Begriffe in der Bildverarbeitung, weiterführende Literaturhinweise

B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Embed Size (px)

Citation preview

Page 1: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36

B3. Bilderkennung mit Java

B3.3 HIPR2 FrameworkB3.4 Praktisches Beispiel und weitere Operationen auf Bildern

- thresholding- morphologische Operationen- region labeling

Literatur:The Hypermedia Image Processing Referencehttp://homepages.inf.ed.ac.uk/rbf/HIPR2/Klaus D. Tönnies: "Grundlagen der Bildverarbeitung"ISBN 3-8273-7155-4

Bildmaterial in dieser Vorlesung aus HIPR2 und Tönnies entnommen!

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 37

HIPR2: The Hypermedia Image Processing Reference

• Entstanden an der Univ. Edinburgh, KI-Labor (Robotik-Anwendungen!)– Autoren: Robert Fisher, Simon Perkins, Ashley Walker, Erik Wolfart

• Referenz der 50 meistverwendeten Operatoren in der Bildverarbeitung– Detaillierte Beschreibung jedes Algorithmus– Java demo für jeden Algorithmus– Tips und Beispielbilder zu jedem Operator

• Interaktives Tableau, mit dem man Operatorketten ausprobieren kann.

• Sammlung von Übungsaufgaben, Lexikon der Begriffe in derBildverarbeitung, weiterführende Literaturhinweise

Page 2: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 38

Interaktives Tableau bei HIPR2

• Java 1.2 Applet, im Browser zu starten• Öffnet dann eigene Fenster auf dem Desktop• Lädt Module, Quellbilder etc. per HTTP nach• Spielwiese für Bildverarbeitung!

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 39

Beispiel für eine Problemstellung in derBildverarbeitung: Objekte zählen

• Basis: Graustufenbild, auf dem eineAnzahl von Objekten zu sehen ist

– Hintergrund evtl. gestört– Objekte evtl. berührend– ..nicht überlappend!

• Ziel: Anzahl der sichtbaren Objekte• Vorgehensweise: Verarbeitungskette

aus Operatoren der Bildverarbeitung

• Soll auf verschiedene Eingangsbilderanwendbar sein.

Page 3: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 40

1. Schritt: Bild laden

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 41

Letzter Schritt: Bild anzeigen

Page 4: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 42

Problem: Segmentierung

• Wo im Bild ist ein Objekt, und wo nicht?• Einfachstes Verfahren: Thresholding• Histogrammbasiertes Verfahren

– Definiere Schwellwerte, ab denen aufSchwarz bzw. Weiß umgeschaltet wird

– Ausgabe: Binärbild

• Kritische Parameter: die Schwellwerte

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 43

Thresholding in Java (aus HIPR2)

... //applies two thresholds to a greyscale image //if a pixel is between the threshold values then colour it white //otherwise it should be black

private int [] apply_two_threshold(int low, int high) { int blue = 0; for (int i=0; i<src_1d.length; i++){ blue = src_1d[i] & 0x000000ff; if ((blue<= high) && (blue >= low)) {

dest_1d[i] = 0xffffffff; } else dest_1d[i] = 0xff000000; } return dest_1d; } ...

Page 5: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 44

javax.media.jai.operator.ThresholdDescriptor

// Aus der JAI Dcumentation:

lowVal = (low.length < dstNumBands) ? low[0] : low[b]; highVal = (high.length < dstNumBands) ? high[0] : high[b]; const = (constants.length < dstNumBands) ? constants[0] : constants[b];

if (src[x][y][b] >= lowVal && src[x][y][b] <= highVal) { dst[x][y][b] = const; } else { dst[x][y][b] = src[x][y][b]; }

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 45

2. Schritt: Thresholding

Page 6: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 46

Zwischenschritt: Bild invertieren

• Hier nur deshalb nötig, weil Thresholds für denHintergrund gesetzt waren

• Konvention: weiß = Objekt, schwarz = Hintergrund

• Einfache logische Operation: NOT

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 47

Problem: Objekte verschmolzen

• Immer noch Pixelbrücken zwischen den einzelnen Formen• Nicht durch andere Threshold-werte zu beseitigen!• Lösungsansatz: Morphologische Operatoren auf dem Binärbild

Page 7: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 48

Morphologische Operationen

• Morphologisch: die äußere Gestalt betreffend• morphologische Operationen:

– Operationen auf der Gestalt von Objekten

– setzt die Extraktion einer Gestalt voraus– also: in erster Linie Operation auf Segmenten (d.h., auf Binärbildern)

• Ziel von morphologischen Operationen:– Veränderung der Gestalt, um Störungen nach einer Segmentierung

zu beseitigen– Berechnung von Formmerkmalen– Suche nach bestimmten Formen (also: Analyse)

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 49

Dilatation

Dilatation (Ausdehnung): G S mit Strukturelement S

( ) ( ) ( )kksnm nnmmbnmgkk

++= ,,,

Page 8: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 50

Dilatation

Dilatation wird (wie jede morphologische Operation) füreinen Ankerpunkt ausgeführt.

Dilatation: - verbindet Strukturen

- füllt Löcher

- vergrößert

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 51

Dilatation mit 3x3 Strukturelement

Page 9: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 52

Erosion

Erosion: G S mit

Strukturelement S

( ) ( ) ( ).,,, kksnm nnmmbnmg

kk++=

Erosion: - löst Strukturen auf- entfernt Details- verkleinert

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 53

Erosion mit 3x3 Strukturelement

Page 10: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 54

Strukturelemente

• Ein Strukturelement einer morphologischen Operationentspricht dem Faltungskern bei einer Konvolution.

• Mit einem gezielt geformten Strukturelement können genaudefinierte Formveränderungen erzeugt werden.

Strukturelement

Dilatation

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 55

Morphologische Operatoren in JAI

• javax.media.jai.operator.DilateDescriptor

For a kernel K with a key position (xKey,yKey), the dilation of image I at(x,y) is given by:

max{ I(x-i, y-j) + K(xKey+i, yKey+j): some (i,j) restriction } where the (i,j) restriction means: all possible (i,j) so that both I(x-i,y-j) and K(xKey+i, yKey+j) are defined, that is, these indices are in bounds.

• javax.media.jai.operator.ErodeDescriptor max{ f: f + K(xKey+i, yKey+j) <= I(x+i,y+j): all (i,j)} "all" possible (i,j) means that both I(x+i,y+j) and K(xKey+i, yKey+j) are in bounds. Otherwise, the value is set to 0. "f" represents all possible floats satisfying the restriction.

Page 11: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 56

3. Schritt: Erosion: Hmm...

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 57

3. Schritt: Erosion, aber 5 mal!

Page 12: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 58

4. Schritt: Dilatation

• Schließt entstandene Löcher in Objekten– In diesem Beispiel nicht wirklich nötig ;-)

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 59

Zwischenergebnis: klar getrennte Formen

• Aber: noch wissen wir nicht, wie viele Objekte im Bild enthalten sind.• Lösungsansatz: Region labeling• Verschiedene Verfahren denkbar

– anschaulichstes Verfahren: region labeling + flood fill

– Effizienteres Verfahren: Connected Component Labeling

Page 13: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 60

Region Labeling

• Schwellenwert zerlegt das Bild in Vordergrund undHintergrundsegmente.

• Region Labeling bestimmt Ort und Anzahl allerzusammenhängenden Gebiete im Binärbild b:

region.initialise() // Region der Größe M,N erzeugen und

label=1 // mit Null initialisieren, Startlabel=1

for (i,j) = 0, (M,N) do // Doppelschleife über i und j

if region.labels(i,j) = 0 then // dieser Ort ist noch nicht Teil einer Region

label = label+1 // neues Label vergeben

region.flood_fill(i,j,label) // zusammenhängendes Gebiet um (i,j) mit Label füllen

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 61

Flood Fill

flood_fill(i,j,label) // Variablen zur Auswertung der Zusammenhangsbedingung sind global verfügbar

if f(i,j) erfüllt Zusammenhangsbedingung then

region(i,j) = label // Region an (i,j) mit label // versehen

flood_fill(i-1,j,label) // Nachbarpixel untersuchen

flood_fill(i,j-1,label)

flood_fill(i+1,j,label)

flood_fill(i,j+1,label)

Bsp. für Zusammenhangsbedingung:• hat den gleichen Grauwert wie Saatpunkt

Region labeling + flood fill:- Vollständige Segm.?- Überdeckungsfrei?- Zusammenhängend?

Page 14: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 62

Connected Component Labeling: 1. Schritt

• Bild wird zeilenweise abgescannt– Nachbarpixel links und oberhalb wurden schon angeschaut

• Falls Pixel = 1, dann sind 3 Fälle möglich:– Alle Nachbarpixel 0 => neue Region gefunden, neues Label vergeben!– Ein oder mehrere Nachbarpixel haben das gleiche Label => Pixel

gehört zur selben Region, gleiches Label vergeben!– Nachbarpixel haben verschiedene Label => Pixel verbindet diese

Regionen, ein Label auswählen und Äquivalenz im 2. Schritt!

10

00

10

20

12

22

13

20

20

00

20

20

22

22

23

20 (2=3)

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 63

Connected Component Labeling: 2. Schritt

• Label zu Äquivalenzklassenzusammenfassen

• Zweiter Durchlaufzeilenweise über das Bild

• Alle Label einer Klasse durchden Stellvertreter ersetzen

• Ergebnis: zusammen-hängende Regionen habendas gleiche Label

• Abbildung z.B. aufFarbpalette

Page 15: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 64

Vorletzter Schritt: Connected Component Labeling

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 65

Anwendung auf anderes Ausgangsbild

Page 16: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 66

Andere häufig auftretende Probleme

• Objekte einer bestimmten Farbe finden– Problem: Lichtbedingungen sind variabel

– Lösung: nicht in RGB Raum suchen, sondern im HSL Raum, undnach H filtern

• Formen finden, z.B. Kreise oder gerade Linien– Hough-Transformation:

» Voting(Abstimmungs)-Mechanismus, bei dem jeder Ort inAbhängigkeit der lokalen Information für das Modell stimmt.

» entwickelt für Geraden, erweiterbar für beliebige Formen.

» Praktisches Beispiel: automatische Rote-Augen-Reduktion

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 67

Hough Transformation (HT)

Hough-Transformation:

Suche alle Parameter ( ,d) für Geraden,

die durch einen Punkt (xn,yn) gehen

d( ) = xncos( )+ynsin( )

Der Raum, der durch ( ,d) aufgespannt

wird, heißt Hough-Raum.

Suche von Geraden in einem Binärbild. Geradenrepräsentation: x cos( ) + y sin( ) – d = 0

d

d( )

dxn,yn( )

Punkt (xn,yn)

Page 17: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 68

Berechnung der HT

• Erzeugung eines Kantenbilds durch

Schwellenwertsetzung auf Gradientenlängen.

• Diskretisierung des ( ,d)-Raums (Zerlegung

in Akkumulatoren)

• Für jeden Punkt xn,yn wird eine Kurve im (

,d)-Raum diskretisiert.

• Jeder Akkumulator wird inkrementiert,

sobald eine Kurve durch in verläuft.

• Parameter von Linien im Ortsraum sind

durch ( ,d)-Kombinationen gegeben, deren

Wert (Stimmenanzahl, votes) nach

Ausführung der Transformation am höchsten

sind.

d

d( )

dxn,yn( )

Punkt (xn,yn)

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 69

Hough Transformation

Schwelle auf

Gradientenlänge

d( )

Page 18: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 70

Hough Transformation

d( )

Breite Kanten führen zuflacheren Maxima im Hough-Raum

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 71

Hough Transformationin nicht-binären Bildern

Bei Gewichtung der Stimmanzahl durchdie Kantenstärke lassen sich Kanten vonRauschen unterscheiden.

Page 19: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 72

Hough Transformation für Kreise

• Kreisgleichung für Kreis mit Mittelpunkt (xc, yc) und Radius r:(x-xc)2+(y-yc)2-r2=0.

• Falls der Radius bekannt ist, ist nur der Verschiebevektor(xc, yc) gesucht

– Hough-Raum = Ortsraum

– Um jeden Kantenpunkt wirdein Kreis mit Radius r diskretisiert.

• Beschleunigung: Akkumulatorwird nur in Distanz r in und ent-gegen der Gradientenrichtunginkrementiert.

x

y

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 73

Hough Transformation für Kreise

Akkumulatorzellen mit mehr als 33% dermaximalen Stimmenanzahl.

selektierte Kreise mit r=4.5mm

Page 20: B3. Bilderkennung mit Java - medien.ifi.lmu.de · Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 36 B3. Bilderkennung mit

Ludwig-Maximilians-Universität München - Medieninformatik - SS2007 - Prof. Butz Medientechnik – B3 - 74

Hough Transformation in HIPR2