B3. Bilderkennung mit Java

Ähnliche Dokumente
Computergrafik 2: Morphologische Operationen

2D Graphik: Modellbasierte und interaktive Segmentierung

Signalverarbeitung g für audiovisuelle Kommunikation

Computergrafik 2: Übung 9. Morphologische Operationen

Graphische Datenverarbeitung und Bildverarbeitung

Übung: Computergrafik 1

Graphische Datenverarbeitung und Bildverarbeitung

Modellbasierte Segmentierung

Kapitel 9 Kombination von Vektor- und Rasterdaten

9. Kombination von Vektor- und Rasterdaten

Computergrafik 2: Übung 7. Hough Transformation

Computergrafik 2: Kanten, Linien, Ecken

Segmentierung. Vorlesung FH-Hagenberg SEM

Morphologische Filter

Digitale Bildverarbeitung (DBV)

Morphologische BV. Morphological Image Processing. M. Thaler, TG208 Bildverarbeitung ZHAW, BV HS17, M. Thaler.

Computergrafik 2: Segmentierung 2

Kapitel 9. Kombination von Vektor- und Rasterdaten. Rasterdaten. 3. Transformationen des Formats. 4. Kombinierte Auswertungen

Detektion von Eckpunkten und einfachen Kurven

Übersicht der Vorlesung

Modul Digitale Bildverarbeitung SS16 Bestandteile der Lehrveranstaltung und Prüfung: Vorlesungen Übungsserien Praktika (ImageJ) bis Mai 2016 Projekt

Computergrafik 2: Segmentierung

Medientechnik. Übung 5 Java Bildbearbeitung - Teil 2

Prüfung Grundlagen der digitalen Bildbearbeitung

Einführung in die medizinische Bildverarbeitung SS 2013

INTELLIGENTE DATENANALYSE IN MATLAB

Morphologische Filter. Vorlesung FH-Hagenberg DSB

Einführung in die medizinische Bildverarbeitung WS 12/13

Grundlagen der Bildverarbeitung Klaus D. Tönnies

Übersicht der Vorlesung

Digitale Bildverarbeitung

4. Segmentierung von Objekten Video - Inhaltsanalyse

Ein auf Eigenwertanalyse basierendes Verfahren zur einfachen und robusten Linienerkennung. -erweiterte Web-Präsentation

6. Übungsblatt Aufgaben mit Lösungen

Lösungsvorschlag zur 5. Übung zu Multimediale Systeme

Grundlagen der Bildverarbeitung

Angewandte Mathematik und Programmierung

Segmentierung. Vorlesung FH-Hagenberg SEM. Digitale Bildverarbeitung in der Medizin. Schwellenwerte

Problem: Keine Integers in JavaCard. ToDo: Rechnen mit Bytes und Shorts

2. Schnitterkennung Videoanalyse

Wasserscheiden-Ansätze zur Bildsegmentierung I

Füllen von Primitiven

Digitale Bildverarbeitung - Rechnerübung 3

Computergrafik 2: Filtern im Frequenzraum

Computergraphik 1 2. Teil: Bildverarbeitung

Morphologie auf Binärbildern

Aufgabe 1.1. Wählen Sie jene Variablendeklarationen mit Initialisierungen aus, die in Java hinsichtlich der Typen korrekt sind:

Computergrafik SS 2016 Oliver Vornberger. Vorlesung vom Kapitel 11: Fraktale

Nützliche Bildverarbeitungs- Verfahren

Praktikum Bildverarbeitung Termin 3

Bildverbesserung (Image Enhancement)

Computergraphik 1 2. Teil: Bildverarbeitung. Fouriertransformation Ende FFT, Bildrestauration mit PSF Transformation, Interpolation

2. Schnitterkennung Video - Inhaltsanalyse

Vorlesung Computergrafik 1 Andreas Butz, Axel Hoppe EINFÜHRUNG, ORGANISATORISCHES

Fourierreihen und Fouriertransformation

Anweisungen zur Ablaufsteuerung

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Übung zur Vorlesung 2D Grafik Wintersemester 05/06. Otmar Hilliges

Algorithm Theory 3 Fast Fourier Transformation Christian Schindelhauer

Digitale Bildverarbeitung Einheit 7 Bildarithmetik

Ziel: Erkennen von Geraden allgemeiner: von einfachen parametrischen Kurven (Kreise, Ellipsen...)

Programmieren in Java

Bildverarbeitung. Bildvorverarbeitung - Fourier-Transformation -

Verarbeitung von Volumenbildern wichtige Werkzeuge

Segmentierung. Inhalt. Segmentierung

Einführung in die medizinische Bildverarbeitung WS 12/13

6. Texterkennung in Videos Videoanalyse

Einführung in die objektorientierte Programmierung mit C++

Tutorium Mathematik II, M Lösungen

Vorkurs Informatik WiSe 16/17

Gliederung. Algorithmen und Datenstrukturen I. Eine wichtige Frage. Algorithmus. Materialien zur Vorlesung. Begriffsbestimmung EUKLID Primzahltest

Morphologische Bildverarbeitung I

Methoden. Gerd Bohlender. Einstieg in die Informatik mit Java, Vorlesung vom

Übung Algorithmen und Datenstrukturen

Digitale Bildverarbeitung Einheit 7 Bildarithmetik

Morphologische Bildoperationen

Bild-Erkennung & -Interpretation

Organisatorisches. drei Gruppen Gruppe 1: 10:10-11:40, Gruppe 2: 11:45-13:15 Gruppe 3: 13:20-14:50

Grundlagen der Bildverarbeitung Klaus D. Tönnies

gegeben: G sei endliche Gruppe, jede Untergruppe von G sei ein Normalteiler zu zeigen: je zwei Elemente teilerfremder Ordnung kommutieren

Morphologische Bildoperationen

Grundlagen von Rasterdaten

Vorkurs Informatik WiSe 17/18

Transkript:

B3. Bilderkennung mit Java B3.3 HIPR 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/hipr/ Klaus D. Tönnies: "Grundlagen der Bildverarbeitung" ISBN 3-873-7155-4 Bildmaterial in dieser Vorlesung aus HIPR und Tönnies entnommen! Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-36 HIPR: 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 5 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 Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-37

Interaktives Tableau bei HIPR Java 1. 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 - SS7 - Prof. Butz Medientechnik B3-38 Beispiel für eine Problemstellung in der Bildverarbeitung: Objekte zählen Basis: Graustufenbild, auf dem eine Anzahl 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 Eingangsbilder anwendbar sein. Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-39

1. Schritt: Bild laden Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-4 Letzter Schritt: Bild anzeigen Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-41

Problem: Segmentierung Wo im Bild ist ein Objekt, und wo nicht? Einfachstes Verfahren: Thresholding Histogrammbasiertes Verfahren Definiere Schwellwerte, ab denen auf Schwarz bzw. Weiß umgeschaltet wird Ausgabe: Binärbild Kritische Parameter: die Schwellwerte Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-4 Thresholding in Java (aus HIPR)... //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 = ; for (int i=; i<src_1d.length; i++){ blue = src_1d[i] & xff; if ((blue<= high) && (blue >= low)) { dest_1d[i] = xffffffff; } else dest_1d[i] = xff; } return dest_1d; }... Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-43

javax.media.jai.operator.thresholddescriptor // Aus der JAI Dcumentation: lowval = (low.length < dstnumbands)? low[] : low[b]; highval = (high.length < dstnumbands)? high[] : high[b]; const = (constants.length < dstnumbands)? constants[] : 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 - SS7 - Prof. Butz Medientechnik B3-44. Schritt: Thresholding Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-45

Zwischenschritt: Bild invertieren Hier nur deshalb nötig, weil Thresholds für den Hintergrund gesetzt waren Konvention: weiß = Objekt, schwarz = Hintergrund Einfache logische Operation: NOT Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-46 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 Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-47

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 - SS7 - Prof. Butz Medientechnik B3-48 Dilatation Dilatation (Ausdehnung): G S mit Strukturelement S g, ( m n) ( ) b( m + m n n ), = mk, nk s k + k Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-49

Dilatation Dilatation wird (wie jede morphologische Operation) für einen Ankerpunkt ausgeführt. Dilatation: - verbindet Strukturen - füllt Löcher - vergrößert Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-5 Dilatation mit 3x3 Strukturelement Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-51

Erosion g ( m n) ( ) b( m + m, n n )., = m, n s k k + k k Erosion: G S mit Strukturelement S Erosion: - löst Strukturen auf - entfernt Details - verkleinert Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-5 Erosion mit 3x3 Strukturelement Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-53

Strukturelemente Ein Strukturelement einer morphologischen Operation entspricht dem Faltungskern bei einer Konvolution. Mit einem gezielt geformten Strukturelement können genau definierte Formveränderungen erzeugt werden. Strukturelement Dilatation Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-54 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. "f" represents all possible floats satisfying the restriction. Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-55

3. Schritt: Erosion: Hmm... Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-56 3. Schritt: Erosion, aber 5 mal! Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-57

4. Schritt: Dilatation Schließt entstandene Löcher in Objekten In diesem Beispiel nicht wirklich nötig ;-) Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-58 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 Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-59

Region Labeling Schwellenwert zerlegt das Bild in Vordergrund und Hintergrundsegmente. Region Labeling bestimmt Ort und Anzahl aller zusammenhä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) =, (M,N) do // Doppelschleife über i und j if region.labels(i,j) = 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 - SS7 - Prof. Butz Medientechnik B3-6 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) Region labeling + flood fill: - Vollständige Segm.? - Überdeckungsfrei? - Zusammenhängend? Bsp. für Zusammenhangsbedingung: hat den gleichen Grauwert wie Saatpunkt Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-61

Connected Component Labeling: 1. Schritt 1 1 1 3 1 (=3) 3 Bild wird zeilenweise abgescannt Nachbarpixel links und oberhalb wurden schon angeschaut Falls Pixel = 1, dann sind 3 Fälle möglich: Alle Nachbarpixel => 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. Schritt! Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-6 Connected Component Labeling:. Schritt Label zu Äquivalenzklassen zusammenfassen Zweiter Durchlauf zeilenweise über das Bild Alle Label einer Klasse durch den Stellvertreter ersetzen Ergebnis: zusammenhängende Regionen haben das gleiche Label Abbildung z.b. auf Farbpalette Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-63

Vorletzter Schritt: Connected Component Labeling Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-64 Anwendung auf anderes Ausgangsbild Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-65

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, und nach H filtern Formen finden, z.b. Kreise oder gerade Linien Hough-Transformation:» Voting(Abstimmungs)-Mechanismus, bei dem jeder Ort in Abhä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 - SS7 - Prof. Butz Medientechnik B3-66 Hough Transformation (HT) Suche von Geraden in einem Binärbild. Geradenrepräsentation: x cos( ) + y sin( ) d = Punkt (x n,y n ) d d( ) Hough-Transformation: Suche alle Parameter (,d) für Geraden, die durch einen Punkt (x n,y n ) gehen d( ) = x n cos( )+y n sin( ) Der Raum, der durch (,d) aufgespannt wird, heißt Hough-Raum. d xn,yn ( ) Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-67

Berechnung der HT Punkt (x n,y n ) d d( ) d xn,yn ( ) Erzeugung eines Kantenbilds durch Schwellenwertsetzung auf Gradientenlängen. Diskretisierung des (,d)-raums (Zerlegung in Akkumulatoren) Für jeden Punkt x n,y n 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. Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-68 Hough Transformation Schwelle auf Gradientenlänge d( ) Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-69

Hough Transformation Breite Kanten führen zu flacheren Maxima im Hough- Raum d( ) Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-7 Hough Transformation in nicht-binären Bildern Bei Gewichtung der Stimmanzahl durch die Kantenstärke lassen sich Kanten von Rauschen unterscheiden. Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-71

Hough Transformation für Kreise Kreisgleichung für Kreis mit Mittelpunkt (x c, y c ) und Radius r: (x-x c ) +(y-y c ) -r =. Falls der Radius bekannt ist, ist nur der Verschiebevektor (x c, y c ) gesucht Hough-Raum = Ortsraum Um jeden Kantenpunkt wird y ein Kreis mit Radius r diskretisiert. Beschleunigung: Akkumulator wird nur in Distanz r in und entgegen der Gradientenrichtung inkrementiert. x Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-7 Hough Transformation für Kreise Akkumulatorzellen mit mehr als 33% der maximalen Stimmenanzahl. selektierte Kreise mit r=4.5mm Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-73

Hough Transformation in HIPR Ludwig-Maximilians-Universität München - Medieninformatik - SS7 - Prof. Butz Medientechnik B3-74