Bildaufnahme – Bildentstehung Bildverarbeitung
Transcription
Bildaufnahme – Bildentstehung Bildverarbeitung
Bildaufnahme – Bildentstehung Bildverarbeitung • • • • Vorverarbeitung Segmentierung Merkmalsextraktion Klassifikation 11.02.15 Bildverarbeitung ©Reulke15 1 Bildverarbeitungsoperatoren 11.02.15 Bildverarbeitung ©Reulke15 2 Segmentierung • Nachbilden des Bilderkennens des Menschen • Algorithmen für die automatische Bearbeitung von digitalen Bilddaten Ziele: • Abstrakte (komprimierte) Beschreibung von Bildinhalten / -information • Quantitative / qualitative Aussagen über die Bildinhalte • Erkennung von interessanten Objekten in digitalen Bildern • Einordnung von Objekten in Kategorien oder Klassen • Ableitung von (quantitativen & qualitativen) Merkmalen für diese Objekte 11.02.15 Bildverarbeitung ©Reulke15 3 Segmentierung • Bildsegmentierung ist die sinnvolle Zuordnung von Bildpunkten oder Pixeln zu Objekten oder auch die Zusammenfassung von Pixeln zu sinnvollen Objekten • Nutzen folgende Bildeigenschaften: – Grauwert – Farbe – Textur – (Geometrie) • Nutzen folgende Kriterien: – Homogenitäten - Bereichsbasierte Segmentierung – Diskontinuitäten - Kantenbasierte Segmentierung • Qualitätskontrolle für die Bildsegmentierung ist die menschliche Wahrnehmung (Erfahrung, Wissen oder Erwartung) • Informationen, die im Bild z.T. explizit nicht vorhanden sind, werden zur „Segmentierung“ herangezogen (Kontext) und beeinflussen das Ergebnis 11.02.15 Bildverarbeitung ©Reulke15 4 Segmentierung Herangehen: • Suchen in den Bildern nach interessierenden Strukturen (Objekte) vor dem Hintergrund uninteressanter Strukturen (Hintergrund) • Trennung der zu untersuchenden Objekte von den „übrigen“ Bildstrukturen • Zerlegung von „Makro-“ -objekten in Objekte, Zusammenfassen von Teilobjekten zu Objekte • (Trennung von sich berührenden Objekten) 11.02.15 Bildverarbeitung ©Reulke15 5 Segmentierung • Definition (nach Pavlidis, 1977): Bildsegmentierung ist die Einteilung des Definitionsbereichs R:{x,y} einer diskreten Grauwertfunktion G(x,y) der Ortskoordinaten x,y in n disjunkte Regionen Ri (i=1,…,n) nach einem festgelegten Einheitlichkeitskriterium E, so dass gilt: • 1.) n UR i =1 i =R • 2.) jede Region Ri ist räumlich zusammenhängend • 3.) E( Ri) ist erfüllt in jeder Region Ri ( ) • 4.) E Ri ∪ R j ist für kein Paar benachbarter Regionen Ri und R j erfüllt 11.02.15 Bildverarbeitung ©Reulke15 6 Bildverarbeitung und Objekt-Detektion • Hintergrund (als Funktion der Zeit) • Aktuelles Bild vom Hintergrund abziehen, Binarisieren, morhologische Bildverarbeitung, Labeling, Objekteigenschaften ableiten 11.02.15 Bildverarbeitung ©Reulke15 7 Segmentierung - Klassifizierung Alternatives Herangehen: • Statt Lage der Bildpunkte im Ortsbereich der (x,y)Koordinaten, wird die Lage der Bildpunkte im Merkmalsraum betrachtet • "Merkmalsraum" - ein Bild (eine Szene) wird als eine Menge S von Merkmalsvektoren aufgefasst • Treten in S identische Merkmalsvektoren auf, so bedeuten sie dasselbe Element der Menge • Durch die Vorgabe von Einheitlichkeitsprädikaten Pi, i = 0,…, t-1 werden Merkmalsvektoren mit ähnlichen Eigenschaften zu Teilmengen (Klassen) zusammengefasst 11.02.15 Bildverarbeitung ©Reulke15 8 Segmentierung - Klassifizierung • Beispiel: – Extrahieren von Waldfeatures aus einem Color-Infrarotbild Originalbild 11.02.15 Extrahierte Bäume, Straße, … Bildverarbeitung ©Reulke15 9 Klassifikation Merkmale • Jeder Bildpunkt stellt einen Punkt in einem N-dimensionalen Merkmalsraum dar • Die Abbildung zeigt einen Merkmalsraum RGB-Bildes, bei dem die Rot- und Blau-Intensität als Objektmerkmale extrahiert wurden. • Der Hintergrund ist dunkel, es sind zwei Objekttypen mit unterschiedlicher Farbtönung vorhanden. 11.02.15 Bildverarbeitung ©Reulke15 10 Klassifikation Cluster / Objektklassen Die Merkmalsvektoren der Hintergrundpixel konzentrieren sich im Bereich [1] Die Punktwolken werden als Cluster bezeichnet 11.02.15 Die Merkmalsvektoren für die beiden Objekttypen liegen in den Punktwolken [2] und [3] Bildverarbeitung ©Reulke15 11 Segmentierung Einheitlichkeitsmaße • Grauwerte einer Region Ri liegen innerhalb eines bestimmten Intervalls [Imin, Imax] • Maximale Grauwertunterschiede sind kleiner als ein D • Analog für Farb- und Texturunterschiede (Wenn 3 oder 4 dim. Daten) • (in Kombination mit) Tiefen- oder Geschwindigkeitsinformationen 11.02.15 Bildverarbeitung ©Reulke15 12 Segmentierung Abstandsmaße • gA,B ist ein Grauwert des Vektors A, B (Merkmalsvektor in einem Punkt) MinT ≤ ‚1-norm‘:Betragssumme ‚2-norm‘: Euklidischer Abstand • Reference HDevelop p. 715 / 716 MinT ≤ ∑ (g MinT ≤ 3 ∑ (g MinT ≤ 4 ∑ (g MinT ≤ n ‚3-norm‘: p-Norm mit p=3 ‚4-norm‘: p-Norm mit p=4 ‚n-norm‘: Minowsky-Distanz ‚max-diff‘: Supremumsdistanz ‚min-norm‘: Infimumsdistanz ‚varianz‘: Varianz der Grauwertdifferenzen ‚dot-produckt‘: 1 ∑ g A − g B ≤ MaxT n ∑ (g − gB ) 2 A n − gB ) ≤ MaxT 3 A n − gB ) ≤ MaxT 4 A n − gB ) ≤ MaxT n A n ≤ MaxT MinT ≤ max{g A − g B }≤ MaxT MinT ≤ min{g A − g B }≤ MaxT MinT ≤ Var(g A − g B ) ≤ MaxT MinT ≤ 11.02.15 Bildverarbeitung ©Reulke15 1 n (g A g B ) ≤ MaxT 13 Segmentierung Bereichsbasierte Segmentierung • Punktbasierte Schwellwertverfahren: Klassifikation auf Ebene einzelner Pixel • Bereichswachstumsverfahren: Klassifikation unter Einbezug der Nachbarschaft • Homogenitätskriterium – Einheitlichkeitskriterium (Intensitätswert, Farbe, Textur ...) Kantenbasierte Segmentierung • Diskontinuitätskriterium Hybride Verfahren (Kombination von kanten- und bereichsbasierten Verfahren) 11.02.15 Bildverarbeitung ©Reulke15 14 Segmentierung Probleme: • Hintergrund • Arbeiten auf Binärbildern – morphologische Bildverarbeitung • Datenstrukturen 11.02.15 Bildverarbeitung ©Reulke15 15 Bereichsbasierte Segmentierung Schwellwertverfahren • Einfache Schwellwertverfahren • Helle Objekte auf dunklem Hintergrund oder umgekehrt • Zusammenhang zwischen Eingangssignal (Bild) f(x,y) und Ausgangssignal (segmentiertes Bild) g(x,y): ⎧⎪ I1 ∀ 0 ≤ f ( x, y ) < S g ( x, y ) = ⎨ ⎪⎩ I 2 ∀ S ≤ f ( x, y ) < f max • S … Schwelle • fmax … maximaler Wert von f • I1, I2 … beliebige Zahlenwerte, ideal: 0 / 1 (binarisieren) 11.02.15 Bildverarbeitung ©Reulke15 16 Bereichsbasierte Segmentierung Schwellwertverfahren • Einfaches lokales punktorientiertes Schwellwertverfahren • Ideal: Bimodales Histogramm • Schwellwerte zwischen den Maxima 11.02.15 Bildverarbeitung ©Reulke15 17 Bereichsbasierte Segmentierung Schwellwertverfahren • auto threshold segmentiert ein einkanaliges Bild mittels mehrfachem Thresholding. • Relative Histogramm über den Grauwerten wird ermittelt • Im Histogramm werden relevante Minima gesucht • Schwellen für das Thresholding • Für jedes Grauwertintervall wird eine Region erzeugt • Die Anzahl der Regionen ist die Anzahl der Minima + 1 • Um so größer der Wert von Sigma ist, um so weniger Regionen werden extrahiert • Das Verfahren ist dann einsetzbar, wenn die gesuchten Regionen einheitliche Grauwerte ausweisen (homogene Regionen) 11.02.15 Bildverarbeitung ©Reulke15 18 Bereichsbasierte Segmentierung Schwellwertverfahren Nachteile • Voraussetzung für das finden einer Schwelle: Objekte müssen im Vergleich zum Hintergrund unterschiedliche Intensitäten haben, deren Grauwertbereiche sich nicht oder nur geringfügig überlappen • Oft findet man keine zusammenhängende Bereiche, da gesuchtes Objekt selber unterschiedliche Intensitäten aufweist • Hintergrundschätzung 11.02.15 Bildverarbeitung ©Reulke15 19 Bereichsbasierte Segmentierung Schwellwertverfahren (HALCON) • auto_threshold - Segmentierung mit Schwellen aus dem Histogramm • bin_threshold - Schwellenwertsegmentierung eines schwarz/weißen Bildes • dyn threshold - Segmentierung mit lokaler Schwelle • fast threshold - Schnelle Selektion aller Grauwerte innerhalb eines Intervalls • histo_to_thresh - Berechnung von Grauwertschwellen aus einem Histogramm • Threshold - Selektion aller Grauwerte innerhalb eines Intervalls • threshold_sub_pix - Subpixel-genaue Extraktion von GrauwertHöhenlinien in einem Bild 11.02.15 Bildverarbeitung ©Reulke15 20 Bereichsbasierte Segmentierung Schwellwertverfahren (Hintergrund) • Dynamischer Schwellwert • gesuchtes Objekt hat homogenen Grauwert, der sich in der lokalen Umgebung des Objektes vom Hintergrund unterscheidet. • Helligkeit des Hintergrundes muss lokal im Bild geschätzt werden – Schätzung des Hintergrundes durch starke Glättung (Faustregel: Glättungsmaske doppelt so groß wie gesuchtes Objekt) – Betrachtung der Differenz pro Pixel zwischen originalem und geglättetem Bild – Segmentierung anhand der Differenzen 11.02.15 Bildverarbeitung ©Reulke15 21 Bereichsbasierte Segmentierung Schwellwertverfahren (Hintergrund) • Problem bei Schwellwertoperationen: Schwellwert kann selten korrekt eingestellt werden. • Übersegmentierung, wenn Schwellwert zu großzügig, Untersegmentierung, wenn Schwellwert zu konservativ • Vorsegmentierung in „sicheren Vordergrund“ (s1) und „sicheren Hintergrund“ (s2) – unsichere Grauwerte müssen an sicheren Grauwert angrenzen – ausgehend von einem sicheren Grauwert werden iterativ unsicheren Grauwerte verfolgt 11.02.15 Bildverarbeitung ©Reulke15 22 Bereichsbasierte Segmentierung Schwellwertverfahren (Hintergrund) • Morphologische Ansätze 11.02.15 Bildverarbeitung ©Reulke15 23 Bereichsbasierte Segmentierung Schwellwertverfahren (Hintergrund) • Hintergrundmodellierung durch Gaußverteilungen – Einzelne Verteilungen – Kombination von Verteilungen • Beispiel: Verkehrsbeobachtung – Änderung von Wetter und Umweltbegingungen – Bewegung von Bäumen, Sträuchern,… – Z.T. längere Stillstandszeiten der Fahrzeuge • Multi-Gaußverteilung – Grauwertverteilung eines jeden Pixels durch gewichtete Summen von Gaußverteilungen – Die am stärksten gewichtete Verteilung ist Hintergrund 11.02.15 Bildverarbeitung ©Reulke15 24 Bereichsbasierte Segmentierung Bereichswachstumsverfahren • Zuordnung benachbarter Bildpunkte mit gleichen oder ähnlichen Eigenschaften 11.02.15 Bildverarbeitung ©Reulke15 25 Bereichsbasierte Segmentierung Bereichswachstumsverfahren • Zuordnung benachbarter Bildpunkte mit gleichen oder ähnlichen Eigenschaften • Button up – Verfahren – Iteratives Verfahren mit einem Startpunkt pro Bereich • Problem – Startpunkte • Startpunkte sollen im Inneren der Regionen und nicht auf den Kanten liegen (Analyse von Intensitätsgradienten) 11.02.15 Bildverarbeitung ©Reulke15 26 Bereichsbasierte Segmentierung Bereichswachstumsverfahren • expand_gray - Füllt „Lücken“ zwischen Regionen (abhängig vom Grau- oder Farbwert) auf oder trennt überlappende Regionen • expand_gray_ref - Füllt „Lücken“ zwischen Regionen (abhängig vom Grau- oder Farbwert) auf oder trennt überlappende Regionen • expand_line - Expandieren ausgehend von einer Linie • regiongrowing - Segmentierung mit Hilfe von Flächenwachstum • regiongrowing_mean - Flächenwachstum mit Mittelwertbildung • regiongrowing_n - Flächenwachstumverfahren für mehrkanalige Bilder 11.02.15 Bildverarbeitung ©Reulke15 27 Bereichsbasierte Segmentierung Bereichswachstumsverfahren • regiongrowing n ( MultiChannelImage : Regions : Metric, MinTolerance, MaxTolerance, MinSize : ) • Die n Kanäle liefern in jedem Bildpunkt einen ndimensionalen Merkmalsvektor. Benachbarte Punkte werden zu einer Ausgaberegion zusammengefasst, wenn die Differenz ihrer Merkmalsvektoren bezüglich der vorgegebenen Metrik im Intervall [MinTolerance, MaxTolerance] liegen. • Untersucht werden direkte Nachbarn in der 4-er Nachbarschaft. Dabei stehen eine Reihe von Metriken zur Verfügung. 11.02.15 Bildverarbeitung ©Reulke15 28 Bereichsbasierte Segmentierung Bereichswachstumsverfahren • • • • • • • • • • Metriken ’1-norm’: Betragssumme ’2-norm’: Euklidischer Abstand ’3-norm’: p - Norm mit p = 3 ’4-norm’: p - Norm mit p = 4 ’n-norm’: Minkowsky-Distanz ’max-diff’: Supremumsdistanz ’min-diff’: Infimumsdistanz ’variance’: Varianz der Grauwertdifferenzen …. (Siehe Seite 715 ff) 11.02.15 Bildverarbeitung ©Reulke15 29 Bereichsbasierte Segmentierung Region Split & Merge • Gegenteil von region growing, top-down Ansatz • Definieren eines Homogenitätskriteriums (bezogen auf GW, Farbe & Textur) • Beispiel: GW-Variance als Homogenitätskriterium • Zerlegen des Bildes in gleich große Regionen • Bestimmen der Größe für Homogenitätskriterium für jede Region • Wenn Homogenitätskriterium erfüllt, dann „merge“ mit Nachbarregionen • Falls nicht, dann „split“, also Region weiter zerlegen 11.02.15 Bildverarbeitung ©Reulke15 30 Bereichsbasierte Segmentierung Region Split & Merge 11.02.15 Bildverarbeitung ©Reulke15 31 Segmentierung Weiterverarbeitung • Auffüllen von Lücken – gen_empty_region - Create an empty region – expand_gray - Fill gaps between regions (depending on gray value or color) or split overlapping regions • Objektvereinigung und Trennung 11.02.15 Bildverarbeitung ©Reulke15 32 Segmentierungshierarchie • mehrere Segmentierungsebenen können erzeugt werden • neue Ebenen entstehen durch Zusammenfassen kleinerer Segmente oder durch Zerlegen größerer Segmente • die Grenzen der Segmente werden dabei immer erhalten 11.02.15 Bildverarbeitung ©Reulke15 33 Segmentierung Halcon • http://www.halcon.de/download/documentation/ reference-6.0/cpp/toc_segmentation.html 11.02.15 Bildverarbeitung ©Reulke15 34 Segmentierung • Magic Wand, Snakes or Intelligent Scissors • GrabCut by Rother, Kolmogorov and Blake [1], [2], based on Boykov and Jolly’s GraphCut [3] • GraphCut is an energy minimization baes segmentation technique • The energy function consists of two parts: grey-level histograms give a global distinction between object and background pixels • The (optional) smoothing term depends on the image gradient • It is used to make the segmentation boundary fall more likely on edges • From this two properties of every pixel - the probability belonging to the object or the background, and how likely it is part of an edge - a S/T-graph is build • The two terminals S and T represent the object respectively the background and the subsequent standard minimumcut/maximumflow algorithm is used to calculate the segmentation border. 11.02.15 Bildverarbeitung ©Reulke15 35 Segmentierung • • • • • • • • While GraphCut is still based on gray-level images, GrabCut augment its usability for color images The gray-level histgroms are replaced by Gaussian Mixture Models (GMM) in color space Two Models with five components each are used for background/object probalities C. Rother, V. Kolmogorov, and A. Blake, “Grabcut - interactive foreground extraction using iterated graph cuts,” Proc. ACM Siggraph, 2004 A. Blake, C. Rother, M. Brown, P. Perez, and P. Torr, “Interactive image segmentation using an adaptive gmmrf model,” in Proc. European Conf. Computer Vision, 2004. Y. Boykov and M.-P. Jolly, “Interactive graph cuts for optimal boundary & region segmentation of objects in n-d images,” 2001, Vol. I, pp. 105-112. V Kolmogorov, “Maxflow implementation,” http://www.cs.cornell.edu/People/vnk/software.html 11.02.15 Bildverarbeitung ©Reulke15 36 Topographische Methoden • • • • Algorithmen sehen Grauwertbild als topographische Oberfläche Beispiel: Watershed (Wasserscheide) Man flutet die Oberfläche ausgehend von Minima Dann wird Wasserspiegel angehoben, bis sich Objekte vor dem Hintergrund herausheben; damit ist deren Rand gefunden • Essentiell: Wahl des Grenzwertes für Verschmelzung 11.02.15 Bildverarbeitung ©Reulke15 37 Kantenbasierte Segmentierung • Grauwert, Farbe & Textur, (geometrische Eigenschaften) • Kanten - Diskontinuitäten an den Grenzen benachbarter Regionen • Pixelorientiert • 2 Schritte – Detektion von Kanten (-punkten) – Kombinieren von Kanten („Chaining“) • Detektion von Kanten durch diskrete Ableitungen • Ziel: Aus Kantenbild zusammenhängende Regionen ableiten 11.02.15 Bildverarbeitung ©Reulke15 38 Kantenbasierte Segmentierung • Untersuche jedes Pixel im Bild und seine Umgebung, ob es auf Kante liegt (edge point) • Daraus kann ein edge image (edge map) Bild erzeugt werden, welches die Stärke angibt, mit welcher Pixel im Bild Teil einer Kante sind • Führt man Grenzwertbildung auf edge map durch, so erhält man ein binäres Kantenbild • Man kann statt der Stärke einer Kante auch die Richtung darstellen (directional edge map) • Problem: Punkte zu Kanten verbinden 11.02.15 Bildverarbeitung ©Reulke15 39 Kantenbasierte Segmentierung • Detektion von Kanten durch diskrete Ableitungen 11.02.15 Bildverarbeitung ©Reulke15 40 Kantenbasierte Segmentierung • Kantenpunktdetektion – Gradientenoperatoren – 1te und 2te Ableitung (Sobel, Prewitt, Laplace, LoG,...) • Konturverfolgung/-verkettung/-rekonstruktion/beschreibung/-approximation – Konturverkettung mittels Hough-Transformation – Konturbeschreibung mittels Kettencode – Konturapproximation 11.02.15 Bildverarbeitung ©Reulke15 41 Kantenbasierte Segmentierung • Kantenpunktdetektion – diskrete Ableitung – Differenzengleichung - Grauwertdifferenzen zu Nachbarpunkten – 1D ∂I ( x) ΔI ( x) I ( x ) − I ( x − Δx ) ≈ Δ x I ( x) = = ∂x Δx Δx sei Δx = 1 ⇒ ⇒ ⇒ 11.02.15 Δ x I ( x) = I ( x ) − I ( x − 1) ( Rückwärtsgradient ) Δ x I ( x) = I ( x + 1) − I ( x ) (Vorwärtsgradient ) I ( x + 1) − I ( x − 1) Δ x I ( x) = (Gradient ) 2 Bildverarbeitung ©Reulke15 42 Kantenbasierte Segmentierung – Filterfunktion ΔxI j = 0 ∑C I k =−1 k C = [ −1, 1] j +k 1 1 Δ x I j = ∑ Ck I j + k 2 k =−1 – 2D-Faltung C= ( Rückwärtsgradient ) 1 [−1, 0,1] 2 (Gradient ) • Prewitt-Operator zur Verstärkung senkrechter Kanten • Prewitt-Operator zur Verstärkung waagerechter Kanten – Sobelfilter - Binomialfilter 11.02.15 Bildverarbeitung ©Reulke15 ⎡ −1 0 1⎤ ⎢ −1 0 1⎥ ⎢ ⎥ ⎢⎣ −1 0 1⎥⎦ ⎡ −1 −1 −1⎤ ⎢0 0 0⎥ ⎢ ⎥ ⎢⎣ 1 1 1 ⎥⎦ 43 Kantenbasierte Segmentierung • Amplitude und Richtung • Kantenamplitude – Betrag der Ableitung – Näherung • Richtung G1 = I x2 + I y2 G2 = I x2 + I y2 ⎡ Ix ⎤ R = tan ⎢ ⎥ ⎢⎣ I y ⎥⎦ −1 • Kompass-Maske (Kirsch), 8 Richtungen • Ableitung in beliebiger Richtung Δθ I ( x, y ) = Δ x I ( x, y ) ⋅ cos θ + Δ y I ( x, y ) ⋅ sin θ 11.02.15 Bildverarbeitung ©Reulke15 44 Kantenbasierte Segmentierung Roberts Kantendetektor Roberts Kantendetektor • Basiert auf Berechnung der ersten Ableitung • Keine Information über Richtung der Kante • Einfachster aller Kantendetektoren, arbeitet sehr effizient, jedoch sehr anfällig für Rauschen • Reagiert auf Steigung in xy und x(-y) Richtung I R ( x, y ) = I ( x + 1, y + 1) − I ( x, y ) + I ( x + 1, y ) − I ( x, y + 1) 11.02.15 Bildverarbeitung ©Reulke15 45 Kantenbasierte Segmentierung Sobel Kantendetektor Sobel Kantendetektor • Sucht Kanten in horizontale und vertikale Richtung • Liefert an jeder Stelle im Bild Werte für horizontale und vertikale Richtung • Daraus kann Stärke und Richtung der Kante an dieser Stelle im Bild direkt ermittelt werden 11.02.15 Bildverarbeitung ©Reulke15 46 Kantenbasierte Segmentierung Kompass-Gradienten-Operator • Kombination von verschiedenen Gradientenbildern • Erzeugt mit unterschiedlichen Varianten von Faltungskernen für die verschiedenen Richtungen 11.02.15 Bildverarbeitung ©Reulke15 47 Kantenbasierte Segmentierung Kirsch Kantendetektor The Kirsch edge detection masks are called compass masks because they are defined by talking a single mask and rotating it to the eight mafor compass orientations: North, Northwest, West, Southwest, South, Southeast, East and Northeast. The masks are defined as follows: k0 k1 k2 k3 ⎡− 3 − 3 − 3⎤ ⎢− 3 0 ⎥ 5 ⎢ ⎥ ⎢⎣− 3 − 3 5 ⎥⎦ 5⎤ ⎡− 3 5 ⎢− 3 0 ⎥ 5 ⎢ ⎥ ⎢⎣− 3 − 3 − 3⎥⎦ 5 5⎤ ⎡5 ⎢− 3 0 − 3⎥ ⎢ ⎥ ⎢⎣− 3 − 3 − 3⎥⎦ 5 − 3⎤ ⎡5 ⎢5 ⎥ 0 − 3 ⎢ ⎥ ⎢⎣− 3 − 3 − 3⎥⎦ ⎡5 − 3 − 3⎤ ⎢5 0 − 3⎥ ⎢ ⎥ ⎢⎣5 − 3 − 3⎥⎦ k4 ⎡− 3 − 3 − 3⎤ ⎢5 ⎥ 0 − 3 ⎢ ⎥ ⎢⎣ 5 5 − 3⎥⎦ k5 ⎡− 3 − 3 − 3⎤ ⎢− 3 0 − 3⎥ ⎢ ⎥ ⎢⎣ 5 5 5 ⎥⎦ k6 ⎡− 3 − 3 − 3⎤ ⎢− 3 0 ⎥ 5 ⎢ ⎥ ⎢⎣− 3 5 5 ⎥⎦ k7 The edge magnitude is defined as the maximum value found by the convolution of each of the masks with the image. The edge direction is defined by the mask that produces the maximum magnitude. 11.02.15 Bildverarbeitung ©Reulke15 48 Kantenbasierte Segmentierung Laplace Kantendetektor • Bestimmung der lokal maximalen Grauwertänderungen durch 2. Ableitung (Zweite Ableitung hat an Kante einen Nulldurchgang) • Laplace Filter: rotations-invariante Masken mit -1 oder 0 Werten am Rand und positivem Zentral-Wert • bei einem nach Laplace gefilterten Bild bilden die Nulldurchgänge verbundene Kanten von Objekten • funktioniert sehr gut bei nicht verrauschten Bildern 11.02.15 Bildverarbeitung ©Reulke15 49 Kantenbasierte Segmentierung Laplace Kantendetektor Bestimmung der lokal maximalen Grauwertänderungen durch 2. Ableitung: mit ∂ 2 f (x, y ) ∂ 2 f (x, y ) Δf (x, y ) = + 2 ∂x ∂y 2 ∂ 2 f (x, y ) = f (x + 1, y ) + f (x − 1, y ) − 2 f (x, y ) 2 ∂x ∂ 2 f (x, y ) = f (x, y + 1) + f (x, y − 1) − 2 f (x, y ) 2 ∂y und damit Δf (x, y ) = f (x + 1, y ) + f (x −1, y ) + f (x, y + 1) + f (x, y −1) + 4 f (x, y ) 11.02.15 Bildverarbeitung ©Reulke15 50 Laplacian of Gaussian Filter • Glätten vor Anwendung des Laplace Filters bringt Nutzen; ein Weg dazu: Glättung nach Gauß • Kann in einen Schritt kombiniert werden: LOG Filter • Bandpass-Filter, die Rauschen und glatte Bereiche ausfiltern; also robuste Kanten als Ergebnis liefern • Realisierung: separable Filter; Näherung durch DOG 11.02.15 Bildverarbeitung ©Reulke15 51 Kantenbasierte Segmentierung Frei-Chen Kantendetektor • 9 Masken bilden eine orthonormale Basis für den Raum aller 3 x 3 Bilder; f1-f4 detektieren Kanten, f5-f8 betonen Linien und f9 ebene Flächen • Gibt Aussagen über Struktur des Bildes 11.02.15 Bildverarbeitung ©Reulke15 52 Kantenbasierte Segmentierung • Kantenfilter • edges_image, edges_color – (Farb-) Kantendetektion mit Canny-, Deriche- oder Shen-Filtern. • frei_amp, kirsch-amp, prewitt_amp, robinson_amp, sobel_amp, laplace, roberts - Kantendetektion (Amplitude) mit dem Frei-Chen; Kirsch, Prewit, Robinson, Sobel, Laplace, Roberts-Operator • highpass_image - Verstärkung hochfrequenter Bildanteile 11.02.15 Bildverarbeitung ©Reulke15 53 Kantenbasierte Segmentierung • Kantenfilter • edges_image, edges_color – (Farb-) Kantendetektion mit Canny-, Deriche- oder Shen-Filtern. • • • • • • • • • C. Steger: “Subpixel-Precise Extraction of Lines and Edges”; International Archives of Photogrammetry and Remote Sensing, vol. XXXIII, part B3; pp. 141-156; 2000. C. Steger: “Unbiased Extraction of Curvilinear Structures from2D and 3D Images”;Herbert Utz Verlag,M¨unchen; 1998. S. Di Zenzo: “A Note on the Gradient of a Multi-Image”; Computer Vision, Graphics, and Image Processing, vol. 33; pp. 116-125; 1986. Aldo Cumani: “Edge Detection in Multispectral Images”; Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, vol. 53, no. 1; pp. 40-51; 1991. J.Canny: “Finding Edges and Lines in Images”; Report, AI-TR-720;M.I.T. Artificial Intelligence Lab., Cambridge; 1983. J.Canny: “A Computational Approach to Edge Detection”; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-8, vol. 6; pp. 679-698; 1986. R.Deriche: “Using Canny’s Criteria to Derive a Recursively Implemented Optimal Edge Detector”; International Journal of Computer Vision; vol. 1, no. 2; pp. 167-187; 1987. R.Deriche: “Fast Algorithms for Low-Level Vision”; IEEE Transactions on Pattern Analysis and Machine Intelligence; PAMI-12, no. 1; pp. 78-87; 1990. J. Shen, S. Castan: “An Optimal Linear Operator for Step Edge Detection”; Computer Vision, Graphics, and Image Processing: Graphical Models and Image Processing, vol. 54, no. 2; pp. 112-133; 1992. 11.02.15 Bildverarbeitung ©Reulke15 54 Kantenbasierte Segmentierung Kontur & Kantenpunkt • Kantenpunkt: einzelnes, punktgroßes Kantenstück – Mögliche Kontur besteht nur aus „Lücken“, da Kantenpunkte nicht logisch zusammengehörig • Zusammenhängende Kantenstücke (Kantenpunkte) – Lücken können auftreten, einzelne Kantenpunkte einzelner Kantenstücke gehören logisch zusammen • Geschlossene Kontur – Keine Lücken, keine einzelne Kantenstücke, ganze Objektkontur gehört logisch zusammen 11.02.15 Bildverarbeitung ©Reulke15 55 Kantenbasierte Segmentierung Kantenverfolgung • Zusammenhängende Kantenstücke (Kantenpunkte) – Lücken können auftreten, einzelne Kantenpunkte einzelner Kantenstücke gehören logisch zusammen • Geschlossene Kontur – Keine Lücken, keine einzelne Kantenstücke, ganze Objektkontur gehört logisch zusammen • Ansatz für das Schließen von Lücken etc. – Suche in kleiner (z.B. 5 x 5) Nachbarschaft – Heuristische Suche mit entsprechendem Gütemaß – Anpassen einer Kurve gegebener Struktur (linear, kubisch etc.); • macht besonders dann Sinn, wenn nur relativ wenige Punkte der Kante bekannt sind 11.02.15 Bildverarbeitung ©Reulke15 56 Kantenbasierte Segmentierung Kantenverfolgung Boundary Tracking Algorithmen • Gegeben: Gradienten-Bild, Startpunkt: Maximum • Iteration: betrachte 3 x 3 Fenster • Auswahl: – Maximum, falls dieses unter den 3 Kandidaten eindeutig ist – Diagonaler Nachfolger, falls dieser zumindest gleichwertig – Beliebig, falls diese gleichwertig sind • Problem: Rauschen; daher Glätten als Vorverarbeitung 11.02.15 Bildverarbeitung ©Reulke15 57 Kantenbasierte Segmentierung Iterative Endpoint Fit (IEPF) • Gegeben: Punkte 11.02.15 Bildverarbeitung ©Reulke15 58 Kantenbasierte Segmentierung Hough Transformation • Quantisiere den (q,r) Raum (Tradeoff: Zeit - Präzision) • Übertrage jeden (r,c) Punkt in alle dafür möglichen (q,r) Punkte; erhöhe im (q,r) Raum an entsprechender Stelle die Trefferzahl • Geraden im Bild werden abschließend dort gefunden, wo die (q,r) Trefferzahl einen Schwellwert übersteigt 11.02.15 Bildverarbeitung ©Reulke15 59 Kantenbasierte Segmentierung Hough Transformation • Transformiere alle Punkte im Bild in den Raum aller durch sie verlaufenden Linien • Ein Punkt im Bild ergibt dort eine Kurve • Eine Linie im Bild ergibt dort einen Punkt • Suche nach Schnittpunkten 11.02.15 Bildverarbeitung ©Reulke15 60 Kantenbasierte Segmentierung Approximation von Konturen Interpolierende Kurven • Polynome (n-ten Grades) • Kubische Splines • Bezier-Kurven 11.02.15 Bildverarbeitung ©Reulke15 61 Kantenbasierte Segmentierung Kantenverfolgung • Nach Binarisierung Extraktion der weißen Pixel zu zusammenhängenden Konturen • „Ketten-Code“: Verkettung von Richtungsvektoren aus einem Alphabet 11.02.15 Bildverarbeitung ©Reulke15 62 Weiterverarbeitung Rangordnungsoperatoren 11.02.15 Bildverarbeitung ©Reulke15 63 Binarisierung – Morphologische Bildverarbeitung Dilation • Liegt der Ursprung des Struktur-Elements über einer Null im Bild, so erfährt dieses Pixel keine Änderung • Ursprung über einer Eins: alle Pixel unter gesetzten Stellen im Struktur-Element werden auch gesetzt • Objekte wachsen; Lücken werden gefüllt 11.02.15 Bildverarbeitung ©Reulke15 64 Binarisierung – Morphologische Bildverarbeitung Erosion • Liegt der Ursprung des Struktur-Elements über einer Null im Bild, so erfährt dieses Pixel keine Änderung • Ursprung über einer Eins: ist eine gesetzte Stelle im Struktur-Element im Bild nicht gesetzt, Löschen!! • Objekte schrumpfen; nur „Skelett“ bleibt erhalten 11.02.15 Bildverarbeitung ©Reulke15 65 Binarisierung – Morphologische Bildverarbeitung • Strukturelemente 11.02.15 Bildverarbeitung ©Reulke15 66 Binarisierung – Morphologische Bildverarbeitung • Opening: Erosion, gefolgt von Dilation; glättet Objektgrenzen ohne deren Fläche zu verändern • Closing: Dilation, gefolgt von Erosion; füllt kleinere Löcher und verbindet geteilte Objekte • Shrinking: Erosion, wobei Objekte mit lediglich einem Pixel erhalten bleiben; erhält Objektzahl • Thinning: bedingte Erosion, die Pixel nicht löscht, wenn Verbindungen getrennt würden • Skeletonization, Pruning, Thickening, ........ 11.02.15 Bildverarbeitung ©Reulke15 67 Datenstrukturen • Object membership map: gleiche Größe wie Originalbild; an jeder Stelle wir Nummer des Objektes abgelegt, zu dem das Pixel gehört • Boundary chain code: jede Begrenzung ist geschlossene Kurve; es genügt also, einen Startpunkt und von diesem ausgehend die Richtung des Nachfolgers (0..7) zu speichern • Line segment encoding: gibt zu jedem Objekt den Grauwert und die Ausdehnung in jeder Bildzeile an; Objektvermessung sehr einfach! 11.02.15 Bildverarbeitung ©Reulke15 68 Content-based Based Image Image Analysis • Automatische Aufbereitung von Bildern zur inhaltlichen Analyse CBIA nach Metzler/Thies: • Unabhängig von Position • Unabhängig von Größe/Auflösung (scalespace) • Objektsegmentierung im scale-space • Automatische Eigenschaftsbeschreibung der Segmente • Suche von Eigenschaften durch Formeln oder Muster 11.02.15 Bildverarbeitung ©Reulke15 69 Klassifikation Merkmale • Regionen eines segmentierten Bildes haben noch keine Bedeutung • Erste symbolische Beschreibung wird i.d.R. gewonnen durch • ! Bestimmung von Merkmalswerten • ! Klassifikation mit Hilfe der Merkmale • ! Auswertung der Nachbarschaftsbeziehungen Typische Merkmale • Grauwert (Mittelwert, Standardabweichung) • Farbe (r,g,b, nir, tir) und Farbanteile (Mittelwert, Standardabweichung) • Grauwert-Gradient, lokale Kontraste • Texturmerkmale 11.02.15 Bildverarbeitung ©Reulke15 70 Klassifikation Merkmale Geometrische Bildmerkmale • Größe (Fläche, Umfang, Länge, Breite,...) • Form (Rundheit, Länglichkeit) • Momente • Fourierdeskriptoren Topologische Bildmerkmale • Lage eines Objektes zu anderen Objekten 11.02.15 Bildverarbeitung ©Reulke15 71 Klassifikation Merkmale • http://www.halcon.de/download/documentation/ reference-6.0/cpp/toc_regions_features.html 11.02.15 Bildverarbeitung ©Reulke15 72 Klassifikation Merkmale Einfache segmentbeschreibende Parameter • Flächeninhalt – Summe der Pixel, die zu einem Segment gehören • Umfang – Bestimmung der Länge des Randes eines Segments • Kompaktheit – V = Umfang2 / Fläche 11.02.15 Bildverarbeitung ©Reulke15 73 Klassifikation Merkmale Einfache segmentbeschreibende Parameter • Flächenschwerpunkt – Schwerpunkt (xcp,ycp) eines „Systems materieller Punkte“ Mj(xj, yj) mit der Masse mj ergibt sich als – – Þ - - Punkte (xij, yij) sind Pixel, die zum Segment i gehören Masse der Bildpunkte ist 1 Nenner der Formel = Flächeninhalt des Segments Kreis: U = 2pr, F = r2p, K = 4p (=12.57) Quadrat: U = 4a, F = a2, K = 16 • Kompakteste Form ist der Kreis! 11.02.15 Bildverarbeitung ©Reulke15 74 Klassifikation Merkmale • Orientierung eines Segments – Dient zur Lagebestimmung von Segmenten – Bei deutlichen länglichen Segmenten lässt sich eine Hauptrichtung ermitteln • Chain-Codierung – Beschreibt die Kontur eines Segmentes – Prinzip: Wandere ausgehend von einem Startpunkt auf der Kontur im Uhrzeigersinn entlang der Kontur • Momente – Dienen der translations-, rotations- und skalierungsinvarianten Beschreibung von Segmenten • Euler‘sche Charakteristik – Unterscheidung von Segmenten aufgrund Anzahl der „Löcher“ 11.02.15 Bildverarbeitung ©Reulke15 75 Klassifikation Merkmale 11.02.15 Bildverarbeitung ©Reulke15 76 Textur • Textur, Definitionen • Texturwahrnehmung • Texturmodelle 11.02.15 Bildverarbeitung ©Reulke15 77 What is a Texture? • An optical pattern… • …with a large number of elements • (spatial variations in intensity or wave length) • ...each to some degree visible, and, • on the whole, densely and evenly arrayed over the field of view. (Picket, 1970) 11.02.15 Bildverarbeitung ©Reulke15 78 What can we use textures for? • Visualization, Computer Graphics – Enhance realism in Scientific Visualization, Games, Virtual Worlds, Simulation, Training, Architecture etc. • Computer/Machine Vision – Find and classify objects from texture information – Understanding what is seen – Find defects in work pieces – Interpret satellite images – Textures vary between scene content – Depth/3D perception 11.02.15 Bildverarbeitung ©Reulke15 79 Analysis of Textures: Overview • Statistical Analysis – – – – First-Order Statistics Second-Order Statistics Higher-Order Statistics Local Geometric Features • Structural Analysis – Extraction of edges, regions, elements – Shape Analysis – Placement Rules 11.02.15 Bildverarbeitung ©Reulke15 80 Statistical Analysis - Overview • First-Order Statistics – Histogram Statistics • Second-Order Statistics – Co-Occurence Matrix – Difference Statistics – Fourier Power Spectrum – Autoregression Model 11.02.15 • Higher-Order Statistics – Run Length • Local Geometric Features – – – Bildverarbeitung ©Reulke15– Edge Peak and Valley Spot/Blob Primal Sketch 81 Structural Analysis - Overview • Extraction of edges, regions, elements • Shape Analysis • Placement Rules – Tesselations – Hierarchical Textures 11.02.15 Bildverarbeitung ©Reulke15 82 Statistical Analysis - First-Order Statistics - Histogram Statistics h(i) = • Histograms • Mean A n ∑ ih(i) i =1 • Standard Deviation histogram n ∑ (i − µ ) h(i) i =1 • Third Moment (Skew) • Entropy φ (i) 2 n ∑ (i − µ ) h(i) 3 texture k H (k ) = ∑ h(i ) i =1 n i =1 − ∑ h(i ) log h(i ) cumulative histogram i =1 • Kormogorv-Smirnov Test max H 1 (k ) − H 2 (k ) or k 11.02.15 Bildverarbeitung ©Reulke15 ∑ H (k ) − H 1 2 (k ) k 83 Statistical Analysis - Second-Order Statistics - Co-Occurrence Matrix • Pairs of gray values separated by δ = (r,θ) • Generate matrix of frequency of occcurrence for particular r and θ (e.g. r = 1 and θ = 0°, 45°, 90°, 135°) • Compute properties of matrices: n Angular Second Moment n −1 Contrast 2 n i =1 j =1 n i =1 j =1 i− j =k ∑∑ i ⋅ jPδ (i, j ) − µ µ i =1 j =1 11.02.15 2 P ( i , j ) ∑∑ δ ∑ k ∑ ∑ Pδ (i, j ) k =0 n n Correlation n x y σ Bildverarbeitung xσ y ©Reulke15 texture θ = 45°, r = 8 84 Statistical Analysis - Second-Order Statistics - Difference Statistics • Difference Statistics are a subset of co-occurence matrices • Probability of gray-level difference k separated by δ = (r,θ) • Similar properties: n −1 ∑ Pδ (k ) k =0 2 Angular second moment 11.02.15 n −1 ∑k k =0 Pδ (k ) = n −1 2 Pδ (k ) Contrast − ∑ Pδ (k ) log Pδ (k ) k =0 Entropy Bildverarbeitung ©Reulke15 n n ∑ ∑ Pδ (i, j ) i =1 j =1 i − j =k n −1 ∑ k Pδ (k ) k =0 Mean 85 Statistical Analysis - Second-Order Statistics - Power Spectrum • Fourier transform I −1 J −1 F (u, v) = ∑∑ f ( x, y ) e − 2π i ( ux vy + ) I J x =0 y =0 • Power spectrum P(u, v) = F (u, v) 2 • Bajcsy (1973) used polar coordinates Lenna image and fourier spectrum – peaks show dominant texture sizes or tesselation directivity – ring and wedge filtering π P ( r ) = 2∑ P ( r , θ ) θ =0 n/2 P(θ ) = ∑ P(r , θ ) r =0 11.02.15 Bildverarbeitung ©Reulke15 Ring filter (a) Wedge filter (b) 86 Statistical Analysis - Second-Order Statistics - Autoregression Model • f(x,y) is the gray level at point (x,y) • linear combination of neighborhood gray levels • with white noise w(x,y) added f ( x, y ) = • Determine best values for matrix by calculation of an error function a M N ∑ ∑ p =− M q =− N ( p ,q ) ≠ ( 0, 0) a pq f ( x − p, y − q) + w( x, y ) pq • Resulting matrix classifies the texture 11.02.15 Bildverarbeitung ©Reulke15 (x,y) 87 Statistical Analysis – Higher Order Statistics • Run-length statistics – Run-length matrix Holds the frequency that j points with gray level i continue in the direction θ. – Properties • • • • Short/Long runs emphasis Gray Level Nonuniformity Run-length Nununiformity Run Percentage – Is used in compression algorithms for code table generation 11.02.15 Bildverarbeitung ©Reulke15 88 Statistical Analysis – Local Geometric Features • Local Geometric Features – Edges First order statistics of the distribution of edge elements allow generation of properties like coarseness, contrast, randomness and directivity – Peak and Valley Horizontal and vertical scans of the image to detect local intensity extrema. Their number and size characterize the texture. 11.02.15 – Spot/Blob By using a special spot/ blob detector, one can determine the average spot size in a texture, which correlates with the coarseness. Davis et al. (1979) used regularity properties of spots while analyzing aerial photographs. – Primal Sketch Marr (1976) proposed a technique of correlating an image with various primitive masks (edges, bars etc.) and thereby synthesizing a sketch similar to the image. Bildverarbeitung ©Reulke15 89 Structural Analysis - Overview • Extraction of Texture Elements – Segmenation – Shape Analysis • Placement Rules – Tesselations – Voronoi diagrams – Hierarchical Textures 11.02.15 Bildverarbeitung ©Reulke15 90 Structural Analysis – Texture Elements - Extraction of Texture Elements • Texture Elements: uniform intensity region of simple shape • Extraction: – Image Segmentation – Medial-axes (thinning and distance transformation) – Segment axes to simple subaxes – Expand each subaxis • Result: Atomic texture elements Bildverarbeitung ©Reulke15 11.02.15 91 Structural Analysis – Placement Rules - Tessellations • Regular Tessellation: A tessellation in which each shape is a regular polygon and all the shapes are congruent • Semiregular Tessellation: Only regular polygons and the arrangement of polygons at every vertex point is the same • 3 Regular Tessellations – {6,6,6} {3,3,3,3,3,3} {4,4,4,4} • 8 Semiregular Tessellations – {3,12,12} {4,6,12} {4,8,8} {3,6,3,6} {3,4,6,4} {3,3,3,3,6} {3,3,3,4,4} {3,3,4,3,4} • Zucker (1976) describes a synthesis/classification approach using tessellations 11.02.15 Bildverarbeitung ©Reulke15 92 Structural Analysis – Placement Rules - Voronoi diagrams • Voronoi diagram: borders between the locii of all points in the plane closer to their generating point than to any other. • Delaunay triangulation: connecting neighboring points in the diagram. • Graphs can be used to find clusters in positions of texture elements and derivation of placement rules 11.02.15 Bildverarbeitung ©Reulke15 93 Structural Analysis – Hierarchical Textures • Textures can superpose each other even on hierarchical levels • Texture elements and placement rules for all levels have to be found Plain Texture • Search for larger texture levels has to be continued until the toplevel in the hierarchy is reached Hierarchical Texture 11.02.15 Bildverarbeitung ©Reulke15 94 ”Fuzzyfying” the Image • In the first step of ”fuzzyfying” an image, it is converted from an array of gray values to an array of ”membership”. • Fuzzification of the bark texture images by using Zadeh’s S-Function x ≤ a, ⎧ 0 ⎪ 2 x − a ⎛ ⎞ ⎪2 a < x ≤ b, ⎪⎪ ⎝⎜ c − a ⎠⎟ µ ( x) = ⎨ 2 x − a ⎛ ⎞ ⎪ 1 − 2 ⎜ ⎟ b < x ≤ c, ⎪ ⎝ c−a ⎠ ⎪ x > c. ⎪⎩ 1 L. A. Zadeh. Fuzzy sets as a basis for a theory of possibility. Fuzzy Sets and Systems, 1:3,1978. 11.02.15 Bildverarbeitung ©Reulke15 95 ”Fuzzyfying” and Fuzzy Measures • Zadeh’s S-Function works as an nonlinear response function • The parameters a, b, c reflects the a priory knowledge about the image • Special radiometric parts of the image can be intensified or suppressed • Mapping of a [0,1] range smears also differences between 8 bit and e.g. 12 bit images and makes results comparable • Use the following fuzzy measures: – – – – 11.02.15 Area, perimeter, compactness (logarithmic) entropy Bildverarbeitung ©Reulke15 96 Fuzzy Measures (Area) a ( X ) = ∑∑ µmn = ∑ µ (l ) ⋅ h (l ) m n l • ”Brightness membership” can be found in the image, simply sums up all membership values • An image half black, half of it white can not be distinguished from an all gray alternative by only using the area-parameter • It’s value can grow arbitrarily for larger images Pal S.K. Kundu, M.K. Automatic selection of object enhancement operator with quantitative justification based on fuzzy set theoretic measures. Pattern Recognition Letters, 11:811–829, 1990. 11.02.15 Bildverarbeitung ©Reulke15 97 Fuzzy Measures (Perimeter) p ( X ) = ∑∑ µmn − µm,n+1 + ∑∑ µmn − µm+1,n m n m n • The perimeter is the sum-up of all absolute membership changes between neighbors in 4-neighborhoods • It is a measure for the rate of change between neighboring memberships, therefore a measure of ”contrast” in the image • Like the area parameter, the perimeter’s limit is given only by the size of the image • Remarkably, images of only one constant brightness, regardless of value, would always yield a 0 perimeter. 11.02.15 Bildverarbeitung ©Reulke15 98 Fuzzy Measures (compactness) a(X ) comp ( X ) = 2 p (X ) • The compactness, aggregating area and perimeter • Is a measure that doesn’t change for smaller or bigger images • (While the area and perimeter of a texture grow boundless for larger images, the compactness just wouldn’t change) 11.02.15 Bildverarbeitung ©Reulke15 99 Fuzzy Measures (Entropy) H (X ) = 1 Te ( l ) ⋅ h (l ) ∑ MN ln 2 l Te (l ) = −µ (l ) ⋅ ln µ (l ) − (1 − µ (l )) ⋅ ln (1 − µ (l )) • Entropy - sum of all vagueness values in the image, normalized to the size of the image and the maximum of Te • The more the memberships are displaced from the 0 and 1 margins, the more their vagueness increase. • It serves as a measure for the overall uncertainty found in the image 11.02.15 Bildverarbeitung ©Reulke15 100 Fuzzy Measures (Entropy) • The function Te(l) assigns a vagueness value according to its distance to the ”certain” bounds 0 and 1. • Membership in the middle of the interval [0, 1] yield the highest vagueness value Te (l ) = −µ (l ) ⋅ ln µ (l ) − (1 − µ (l )) ⋅ ln (1 − µ (l )) 11.02.15 Bildverarbeitung ©Reulke15 101 Results • For analysis, 6 different trees and 12 texture samples per each tree (400x400 pixels size) have been chosen Computed texture parameters – similar for equal tree types – different for varying tree types 11.02.15 Bildverarbeitung ©Reulke15 102 Results (Entropy) • Entropy values calculated for all texture categories 11.02.15 Bildverarbeitung ©Reulke15 103 Results (Compactness) • Compactness values calculated for all texture categories 11.02.15 Bildverarbeitung ©Reulke15 104 Results (Entropy / Compactness) 11.02.15 Bildverarbeitung ©Reulke15 105 Bilder – Objekte – Punkte • Verbindung von zwei oder mehreren Bildern • Temporäre Veränderungen 11.02.15 Bildverarbeitung ©Reulke15 106 Korrelation - Punkte & Strukturen • Punkte (an denen sich das Bildsignal zweidimensional ändert) • Kreuzungspunkte - Änderung an den Schnittpunkte von Grauwertkanten • Flächenpunkte - Stellen, deren Farbe oder Helligkeit sich von ihrer Umgebung unterscheidet • I ist das Eingabe- und R das Ergebnisbild der Filterung • Zur Glättung (W) z.B. gauss_image, zur Berechnung der Ableitung (∇) z.B. sobel_amp • Förstner, Harris, Sojka 11.02.15 Bildverarbeitung ©Reulke15 107 Korrelation - Punkte & Strukturen • points_foerstner extrahiert signifikante Punkte Punkextraktion 1. Extrahieren der Punktregionen (inhomogene Regionen mit hoher n Isotropie) ⎛ n • Ix,c und Iy,c - ersten Ableitungen der Bildkanäle • S - Glättung 2 I ⎜ ∑ x ,c c =1 M = S ⋅⎜ n ⎜ ⎜ ∑ I x ,c I y ,c ⎝ c =1 ⎞ I I ∑ x ,c y ,c ⎟ c =1 ⎟ n ⎟ 2 I y ,c ⎟ ∑ c =1 ⎠ – Inhomogenität = Spur(M) – Isotropie = 4 ·DetM / (SpurM)2 (Isotropie der Textur im Bild.) 2. Optimierung (geben für jeden Bildpunkt durchschnittlichen Abstände zu den Kanten- (Kreuzungspunkte) bzw. Gradientenrichtungen (Flächenpunkte) innerhalb eines Beobachtungsfensters um den Punkt wieder. 11.02.15 Bildverarbeitung ©Reulke15 108 Maske Korrelation • Anwendung Korrelationskoeffizient Funktion Grauwert Korrelation 250 200 150 100 50 0 0 20 40 60 80 100 Position 100 . 0 . -100 0 20 40 60 Position 80 100 – Bestimmung der Ähnlichkeit von 2 Signalen – Bildzuordnung • Parallaxenmesung, Messung von Rahmenmarken 11.02.15 Bildverarbeitung ©Reulke15 109 Korrelation Beispiel Halcon: optical_flow_match.dev 11.02.15 Bildverarbeitung ©Reulke15 110 Anwendung Korrelation: Automatische Bildzuordnung Eingabebild Rahmenmarke Da s Bil d Eingabebild Maske (Ausschnitt) 11.02.15 Maske (Muster) Ergebnisbildr Maximum • Zuordnung von Bildausschnitten – Stereobildzuordnung – Messung von Rahmenmarken Bildverarbeitung ©Reulke15 Ergebnisbild 111 Korrelation Beispiel HALCON Beispiel Halcon: disparity.dev 11.02.15 Bildverarbeitung ©Reulke15 112 Korrelation Beispiel HALCON 11.02.15 Beispiel Halcon: disparity.dev Bildverarbeitung ©Reulke15 113 Globale Operatoren • Fouriertransformation • Wavelet • … 11.02.15 Bildverarbeitung ©Reulke15 114 Transformationen • • • FFT – Fast Fourier Transformation DCT – Diskrete Cosinus Transformation Wavelets Daten sollen umgewandelt (transformiert) werden, so dass 1. Eine Bearbeitung weniger aufwendig ist, 2. Eine eindeutige Wiederherstellung durch Rücktransformation möglich ist 11.02.15 Bildverarbeitung ©Reulke15 115 Transformationen • Transformation und Rücktransformation sind aufwendig Aber: • Berechnungen im transformierten Raum sind wesentlich einfacher Beispiel: Lösen der Gleichung X=Y / Z ohne Taschenrechner X=Y/Z Transformation log(X) = log (Y) – log (Z) Hoher Aufwand Geringer Aufwand Durch Division Durch Subtraktion Lösung 11.02.15 Rücktransformation Bildverarbeitung ©Reulke15 Lösung 116 Fouriertransformation 1822 Jean-Baptiste-Joseph Fourier: „Die analytische Theorie der Wärme“ • Darstellung von Funktionen durch die Summe von Sinusund Kosinusfunktionen ⎛ ⎜ ⎜ ⎜ ⎜⎜ ⎝ f0 ⎞ ⎛ ⎞ ⎛ x0 ⎞ ⎟ ⎟ ⎜ ⎟ ⎜ f1 ⎟ 1 ⎜ ⎟ ⎜ x1 ⎟ = Fouriermatrix ⎟ * ⎜ ⎟ ⎜ ! ! ⎟ n ⎟⎟ ⎟⎟ ⎜⎜ ⎟⎟ ⎜⎜ f n−1 ⎠ ⎝ ⎠ ⎝ xn−1 ⎠ Normierung 11.02.15 Bildverarbeitung ©Reulke15 117 Fouriertransformation Fouriertransformation Bearbeitung Inverse Fouriertransformation 11.02.15 Bildverarbeitung ©Reulke15 118 Diskrete Fouriertransformation • Signale können als Überlagerung (Summe) periodischer Funktionen mit – Frequenzen n und mit – Amplituden F dargestellt werden. ⎛ 2πν f ( x) = ∑ f%(ν ) cos ⎜ ⎝ N u =0 N −1 Cosinus Funktionen Sinus Funktionen ⎞ ⎛ 2πν x ⎟ + i ⋅ f%(ν ) sin ⎜ ⎠ ⎝ N ⎞ x⎟ ⎠ • Diese Koeffizienten geben an, mit welcher Intensität die entsprechende Frequenz der Funktionen bewertet wird. 11.02.15 Bildverarbeitung ©Reulke15 119 Diskrete Fouriertransformation • Rechteckschwingungen • Dreieckschwingungen 11.02.15 Bildverarbeitung ©Reulke15 120 Diskrete Fouriertransformation 11.02.15 Bildverarbeitung ©Reulke15 121 Fast Fouriertransformation Idee: • Einzelne Berechnungen der Matrix-Vektor-Multiplikation in bestimmter Reihenfolge ausführen und schon berechnete Zwischenwerte benutzen • n muss dafür eine 2er-Potenz sein 11.02.15 Bildverarbeitung ©Reulke15 122 Fouriertransformation - Filter • Tiefpassfilter mit H ( x, y ) = 1 2πσ e 2 − x2 + y 2 2σ 2 • Faltung - Führe anstelle der Faltung im Ortsraum eine Multiplikation im Frequenzraum durch H ( x, y) = e 11.02.15 −2π 2σ 2ν 2 Bildverarbeitung ©Reulke15 123 Diskrete Cosinus Transformation • DCT wird bei JPEG und MPEG benutzt • Bei JPEG wird die DCT auf 8*8=64 Pixel angewandt 11.02.15 Bildverarbeitung ©Reulke15 124 DCT - Idee • Gerade Funktion, d.h. f(x) = f(-x) • Fouriertransformation anwenden: • Dabei wird der imaginäre Anteil 0 11.02.15 Bildverarbeitung ©Reulke15 125 Wavelets • Funktionen können auch durch die Summe von anderen Funktionen (Basisfunktionen) dargestellt werden. • Die Transformation geht schrittweise voran • Wavelets werden z.B. bei JPEG2000 benutzt 11.02.15 Bildverarbeitung ©Reulke15 126 Wavelets • Als Basisfunktion kann jede orthogonale Funktion genommen werden, für die gilt: ∞ ∫ h(t )dt = 0 −∞ • Daher auch die Bezeichnung Wavelet engl. Wave = Welle 11.02.15 Bildverarbeitung ©Reulke15 127 Haar-Wavelet 11.02.15 Bildverarbeitung ©Reulke15 128 Weitere Wavelet - Beispiele Daubechies 6 11.02.15 Daubechies 8 Bildverarbeitung ©Reulke15 129 Grundprinzip Berechnung des Mittelwertes und der Differenz - Tiefpass und Hochpassanteile werden gespeichert. - Der Tiefpassanteil wird weiter analysiert. - durch immer kleiner werdender Hochpassanteile und einen einzigen Tiefpassanteil gekennzeichnet 11.02.15 Bildverarbeitung ©Reulke15 130 Beispiel 11.02.15 13 13 5 13 11 19 5 5 9 13 17 21 0 0 -2 -2 9 15 4 -4 0 0 -2 -2 12 -3 4 -4 0 0 -2 -2 Bildverarbeitung ©Reulke15 131 Grundprinzip Grafik 1 11.02.15 Bildverarbeitung ©Reulke15 132 Grundprinzip Grafik 2 11.02.15 Bildverarbeitung ©Reulke15 133 Quellen & weiterführende Literatur • Elbert Oran Brigham (1995) Schnelle Fourier Transformation • Josef Hoffmann (1991) Bildkompression mit DCT und anderen Transformationen • Daubechies I. (1992) Ten Lectures on Wavelets 11.02.15 Bildverarbeitung ©Reulke15 134