Übersicht der Vorlesung 1. Einführung 2. Bildverarbeitung 3. Morphologische Operationen 4. Bildsegmentierung 5. Merkmale von Objekten 6. Klassifikation 7. Dreidimensionale Bildinterpretation 8. Bewegungsanalyse aus Bildfolgen 9. PCA (Hauptkomponentenanalyse) 10.ICA (Independent Component Analysis – Unabhängigkeitsanalyse) 6 Klassifikation 6 Klassifikation 6.1 Prinzipielle Vorgehensweise bei der Klassifikation 6.2 Numerische Klassifikation 6.3 Statistische Klassifikation 6.4 Diskriminanzfunktion 6.5 Support Vektor Maschinen 6.6 Syntaktische Klassifikation 6.7 Kontextabhängige Klassifikation 6.8 Boosting Klassifikation • Ziel der Klassifikation (Mustererkennung) ist es, den durch die Segmentierung gefundenen Gebieten (Objekten), Bedeutungen zuzuweisen. • Bedeutungen sind z.B.: – Quadrat, Kreis – Tisch, Stuhl • Bedeutungen müssen bekannt sein (vorgeben oder lernen) • es gibt zahlreiche Klassifikationsverfahren • hier nur Überblick • nicht vollständig (z.B. keine Neuronalen Netze) • auf Lernverfahren wird ebenfalls nicht eingegangen Klassifikation • kontextunabhängig – Klassifikation einzelner Segmente (Objekte) • kontextabhängig – Klassifikation einer Gruppe von Segmenten – zwischen den Segmenten bestehen Relationen (z.B. benachbart) – Gebietsnachbarschaftsgraph 6.1 Prinzipielle Vorgehensweise bei der Klassifikation Prinzipielle Vorgehensweise bei der Klassifikation Segmente, Gebiete, Gebietsnachbarschaftsgraph Merkmalsextraktion Training, bekannte Bedeutungen Klassifikation, Bedeutungszuweisung Bedeutung 6.2 Numerische Klassifikation Numerische Klassifikation Merkmalsvektor eines Objektes: bekannte Klassen (Bedeutungen): r x = (x1, x2 ,K, xn ) ∈Rn K1 , K 2 , K , K N Jede Klasse besteht aus mehreren Mustern. Merkmalsvektor des j – ten Musters in der Klasse Ki: Klassifikation: r c : {x} →{Ki : i =1,K, N} r xij = (x1ij , x2ij ,K, xnij ) i = 1, K, N j = 1,K , N i Beispiel n=2 N =3 N1 = 3 N2 = 5 N3 = 4 Arten der numerischen Klassifikation • lineare Klassifikation • Abstandsklassifikatoren Entscheidungsfunktion Entscheidungsfunktionen: ei : R n → R, i = 1,K, N r ei ( x ) = w0i + w1i x1 + w2i x2 + L + wni xn , wij ∈ R, j = 0, K , n Für jede Klasse benötigen wir eine Entscheidungsfunktion. r ei ( x ) = 0 Hyperebene im Rn Lineare KLassifikation r c( x) = Ki r ei ( x) > 0 r e j ( x) < 0, für alle j = 1,K, N , j ≠ i Beispiel n=2 N =3 hier ist keine Klassifikation möglich r x∈K3 Beispiel n=2 e1 e2 = −e1 N =2 x2 K1 x2 K2 x1 e1 e2 hier ist keine Klassifikation möglich K1 K2 x1 eine trennende Gerade Klassifikation immer möglich Beispiel Problem: x2 K1 Welches ist die beste trennende Gerade? K2 Support Vector Machines (6.5) x1 Bemerkungen r x pq ∈ K p r ⎧> 0 falls p = i ei (xpq) ⎨ ⎩< 0 falls p ≠ i q = 1, K , N p • Die Festlegung der Entscheidungsfunktionen geschieht in einer Lernphase und ist nicht immer möglich. • Anstelle der Hyperebenen können auch kompliziertere Flächen betrachtet werden. Beispiel – nichtlineare Trennung K1 K2 x2 x1 Abstandsklassifikatoren • Hier wird der geometrische Abstand des Objektes zu den vorhandenen Klassen berechnet und das Objekt wird der Klasse mit dem geringsten Abstand zugeordnet. • Arten: – Minimum Distance Klassifikator – Nearest Neighbour Klassifikator Minimum – Distance – Klassifikator Merkmalsvektor des j – ten Musters in der Klasse Ki: r xij = (x1ij , x2ij ,K, xnij ) i = 1, K, N j = 1,K , N i r ⎧N i 2⎫ c( x ) = K m ↔ m = argmin⎨∑ ( xn − f n ) ⎬ i =1,K, N ⎩ n =1 ⎭ r 1 fi = Ni Ni r i i x = ( f , L , f ∑ ij 1 n) j =1 Mittelwertsvektor der Klasse Ki Nearest – Neighbour – Klassifikator r c(x) = Km ∃m'∈{1,K, Nm } mit : n ⎧ ij 2 ⎫ mm' 2 ( xk − xk ) = min ⎨∑ ( xk − xk ) ⎬ ∑ i =1,K, N j =1,K, Ni k =1 ⎩ k =1 ⎭ n Hier berechnet man den Abstand vom Testmuster zu jedem einzelnen Muster aller Klassen und bestimmt das Muster mit dem geringsten Abstand. Das Testmuster wird der zugehörigen Klasse zugeordnet. 6.3 Statistische Klassifikation Wahrscheinlichkeiten r p( x | i) r p (i | x ) pi c pq bedingte Wahrscheinlichkeit, dass ein zur Klasse Ki gehörendes Objekt r den Merkmalsvektor x liefert r x bedingte Wahrscheinlichkeit, dass der Merkmalsvektor zur Klasse Ki gehört Wahrscheinlichkeit des Auftretens eines Objektes der Klasse Ki Kosten für den Fall, dass ein Objekt der Klasse Kp fälschlicherweise der Klasse Kq zugeordnet wird Bayes – Klassifikator r r c ( x ) = K m ↔ m = argmin {d k ( x )} k =1,K, N r N r dk (x) = ∑ckl ⋅ pl ⋅ p(x | l) l =1 Spezialfall c pq r ∑ ckl ⋅ pl ⋅ p( x | l ) = N l =1 ⎧ 0 falls p = q =⎨ ⎩1 falls p ≠ q N r r r ∑ pl ⋅ p( x | l ) = ∑ pl ⋅ p( x | l ) − pk ⋅ p( x | k ) N l =1,l ≠ k l =1 Konstante dies führt zum Maximum – Likelihood – Klassifikator zu maximieren Maximum – Likelihood – Klassifikator r r c ( x ) = K m ↔ m = argmax {p ( x | k ) ⋅ pk } k =1,K, N r r r pk ⋅ p ( x | k ) pk ⋅ p ( x | k ) = N p(k | x ) = r r p( x ) ∑ pi ⋅ p( x | i) Bayes i =1 r r c ( x ) = K m ↔ m = argmax {p ( k | x )} k =1,..., N Problem: r p( x | k ) 6.4 Diskriminanzfunktion Diskriminanzfunktion r x = (x1, x2 ,K, xn ) ∈Rn K1 , K 2 , K , K N r g i ( x ) i = 1, K , N Klassifikation: Beispiele: r m = argmax g k ( x ) r c(x) = Km k r r g i ( x ) = p (i | x ) r r g i ( x ) = p ( x | i ) ⋅ pi n r r rT r g i ( x | wi , wi 0 ) = wi ⋅ x + wi 0 = ∑ wij ⋅ x j + wi 0 lineare Diskriminanz j =1 2 Klassen r r r g ( x ) = g1 ( x ) − g 2 ( x ) r ⎧ K1 c( x ) = ⎨ ⎩K 2 linear: falls r g (x) > 0 sonst r rT r g1 ( x ) = w1 ⋅ x + w10 r rT r g 2 ( x ) = w2 ⋅ x + w20 r rT r rT r r r T r g ( x ) = w1 ⋅ x + w10 − ( w2 ⋅ x + w20 ) = ( w1 − w2 ) ⋅ x + w10 − w20 r rT r g ( x ) = w ⋅ x + w0 2 Klassen r rT r g ( x ) = w ⋅ x + w0 r x2 falls sonst r x r g ( x) > 0 K2 r ⎧ K1 c( x ) = ⎨ ⎩K 2 r g (x) > 0 K1 r= r g ( x) < 0 x1 r g ( x) = 0 r1 r2 g(x ) = g(x ) = 0 r0 = r T r1 r 2 w ⋅ (x − x ) = 0 r g(x) w r g (0) w = w0 w 6.5 Support Vektor Maschinen Problem 2 Klassen: bekannte Muster: { rt t X = x ,r rt x ∈ K1 ⇒ r t = +1 rt t x ∈ K 2 ⇒ r = −1 suchen Hyperebene (Diskriminante): r T rt w ⋅ x + w0 > 0 für r t = 1 r T rt w ⋅ x + w0 < 0 für r t = −1 } rt x = (x1t , x2t ,K, xnt ) t = 1,2, K , N r rT r g ( x ) = w ⋅ x + w0 r T rt r ( w ⋅ x + w0 ) > 0 ∀r t t Optimale Trennebene r T rt r ( w ⋅ x + w0 ) > 0 ∀r t r rT r g ( x ) = w ⋅ x + w0 Abstand von xt zur Hyperebene: t r T rt r T rt w ⋅ x + w0 r t ( w ⋅ x + w0 ) = r r w w Optimale Hyperebene – kleinsten Abstand maximieren: r T rt r ( w ⋅ x + w0 ) ≥ ρ → max r w t r ρ ⋅ w =1 Annahme: r T rt r ( w ⋅ x + w0 ) ≥ 1 t Optimale Trennebene r T rt r ( w ⋅ x + w0 ) ≥ ρ → max r w t r g ( x )=0 r g ( x ) = −1 x2 r g (x) = 1 r ρ ⋅ w =1 K1 1 r w r w → min K2 x1 2 r w r T rt r ( w ⋅ x + w0 ) ≥ 1 t Optimale Trennebene t r T rt r ( w ⋅ x + w0 ) ≥ ρ → max r w r ρ ⋅ w =1 r T rt r ( w ⋅ x + w0 ) ≥ 1 t r w → min 1 r2 min w 2 Optimierungsproblem: Nebenbedingungen: r T rt r ( w ⋅ x + w0 ) ≥ 1 t Lösung α Bestimme: t t t α ⋅ r =0 ∑ t α ≥0 t 1 t s t s rt T r s − ∑∑ α α r r ( x ) ⋅ x + ∑ α t → max 2 t s t r t t rt w = ∑α r x t , s = 1,2, K , N t r T rt α > 0 ↔ r ( w ⋅ x + w0 ) = 1 t t r T rt w0 = r − w ⋅ x t Support Vektoren r g ( x )=0 r g ( x ) = −1 x2 r g (x) = 1 K1 r T rt r ( w ⋅ x + w0 ) = 1 t K2 x1 Klassifikation r rT r g ( x ) = w ⋅ x + w0 r t t rt w = ∑α r x t r ⎧ K1 c( x ) = ⎨ ⎩K 2 falls sonst r T rt w0 = r − w ⋅ x t t = 1,2, K , N r t t rt T r g ( x ) = ∑ α r ( x ) ⋅ x + w0 t Skalarprodukt r g (x) > 0 Nichtlineare Trennung K1 K2 x2 hier keine Trenngerade möglich x1 Kernfunktionen • Problem in einem neuen Raum abbilden • durch nichtlineare Transformation • lineares Modell in diesem neuen Raum benutzen • Das lineare Modell im neuen Raum entspricht einem nichtlinearen Modell im Originalraum. • neuer Raum hat eine höhere Dimension Kernfunktionen r z j = φ j (x ) r r z = φ (x) ∈ Rk r x ∈ Rn r z1 = φ1 ( x ) = 1 k >> n k r rT r r g ( x) = w ⋅φ ( x) = ∑ w j ⋅φ j ( x) Diskriminanzfunktion: j =1 Lösung: r rt t t rt t t w = ∑α r z = ∑α r φ (x ) t t r rT r rt T r rt r t t t t g ( x ) = w ⋅φ ( x ) = ∑α r φ ( x ) ⋅φ ( x ) = ∑α r K ( x , x) t Skalarprodukt t Kernfunktion Beispiel r rT r rt T r rt r t t t t g ( x ) = w ⋅φ ( x ) = ∑α r φ ( x ) ⋅φ ( x ) = ∑α r K ( x , x) t n=2 t k =6 ( r φ ( x ) = 1, 2 x1 , 2 x2 , 2 x1 x2 , x12 , x22 r r rT K ( x , y ) = ( x ⋅ y + 1) 2 ) T r x = ( x1 , x2 ) r r r K ( x , y ) = ( x T ⋅ y + 1) 2 = ( x1 y1 + x2 y2 + 1) 2 r r K ( x , y ) = 1 + 2 x1 y1 + 2 x2 y2 + 2 x1 y1 x2 y2 + x12 y12 + x22 y22 r r r r K ( x , y ) = φ ( x )T ⋅ φ ( y ) r y = ( y1 , y2 ) 6.6 Syntaktische Klassifikation Syntaktische Klassifikation • • Objekte werden durch eine Aneinanderreihung von Objektteilen beschrieben. Art der Objektteile, als auch die Art der Aneinanderreihung kann für die Bedeutung des Objektes relevant sein. Objektteile: Art a Art b Objekte: aabb aabbaba Grammatik G = (VN , VT , R, S ) V endliche Menge von Symbolen (Alphabet) VN nichtterminale Symbole VN ⊆ V VN ∪ VT = V VT terminale Symbole VT ⊆ V VN ∩ VT = ∅ S Startsymbol S ∈ VN V* Menge aller Symbolketten über V L Sprache ε leere Symbolkette L ⊆V* V + = V * \ {ε } Grammatik G = (VN , VT , R, S ) R endliche Menge von Regeln ( ) R ⊆ V + \ VT* × V * r∈R r = (ϕ ,ψ ) r : ϕ →ψ ϕ ≠ε ∃r = (S ,ψ ) ∈ R L(G) sei die Menge aller Symbolketten, die aus S durch Anwendung der Regeln aus R abgeleitet werden können. Beispiel G1 = ({S , T }, {a, b}, R, S ) Regeln: S → aTa T → aT T → Ta T → bT T → Tb T →a T →b a und b entsprechen den beiden Objektarten „Art a“ und „Art b“ Art a Art b Klassifikation – 1 Klassen: K1 , K 2 , K , K N Grammatiken: G1 , G2 , K, GN Klassifikation: c(v) = Km v ∈V * v ∈ L(Gm ) Klassifikation – 2 Klassen: bekannte Bedeutungen: Klassifikation: c(v) = Km = vm K1 , K 2 , K , K N v1 , v2 , K , v N vi ∈ V * v ∈V * m = argmin d L (v, vk ) k =1,K, N Levenshtein – Abstand Levenshtein – Abstand x, y ∈ V * d L ( x, y ) Minimale Anzahl von Operationen, die notwendig ist, um x in y zu überführen. Operationen: α aβ → α bβ Ersetzen α , β ∈V * αaβ → αβ Löschen a, b ∈ V αβ → αaβ Einfügen Anmerkung • Numerische und syntaktische Klassifikation lassen sich kombinieren mit attributierten Grammatiken. • Jedem Objekt v ∈ V wird eine Menge von Attributen zugeordnet. • Jede Regel r ∈ R wird erweitert durch eine Beschreibung, wie bei Anwendung der Regel die Attribute der an der Regel beteiligten Objekte verändert werden. 6.7 Kontextabhängige Klassifikation Kontextabhängige Klassifikation • Ein Objekt wird nicht für sich allein klassifiziert, sondern im Kontext mit einem oder mehreren anderen Objekten. • Klassifikation von Strukturen (Graphen) • Knoten des Graphen sind die Objekte • Kanten beschreiben Relationen zwischen den Objekten, z.B. die Nachbarschaftsrelation (Gebietsnachbarschaftsgraph) Beispiel Kreis liegt auf Rechteck liegt auf liegt auf Quadrat Quadrat liegt neben 2 Verfahren • Relaxation – Die Vielfalt der möglichen Graphen ist groß. – Durch ein iteratives Verfahren wird versucht, die Objekte (Knoten) des Graphen so zu klassifizieren, dass die vorgegebenen Relationen erfüllt werden. – Zu Beginn werden den Objekten mehrere Bedeutungen zugewiesen, die auch mit Wahrscheinlichkeiten versehen werden können. – diskrete Relaxation – kontinuierliche Relaxation • Vergleich von Graphen – Die Graphen der bekannten Objekte sind gegeben und deren Anzahl klein. – Ein zu klassifizierender Graph wird dann einem gegebenen Graphen (Bedeutung) zugeordnet. – Ähnlichkeit von Graphen: minimale Anzahl von Modifikationen (Einfügen, Löschen, von Knoten und Kanten) – Graphmatching 6.7.1 Graphmatching Isomorphie Gegeben seien 2 Graphen G1 = (V1,K1) und G2 = (V2,K2). G1 und G2 heißen isomorph, wenn eine eineindeutige Abbildung f : V1 → V2 existiert mit: ∀v, w∈V1 : (v, w) ∈K1 ⇔ ( f (v), f (w))∈ K2 2 isomorphe Graphen Graphmatching • Folgende Aufgaben sind von Interesse: – Sind G1 und G2 isomorph ? G1 ist zu klassifizieren und G2 ist eine bekannte, gegebene Bedeutung – Finde einem (oder alle) Teilgraphen von G2, die isomorph zu G1 sind. Hier ist der zu klassifizierende Graph G1 nicht vollständig gegeben, z.B. teilweise verdeckt. – Finde isomorphe Teilgraphen von G1 und G2. • Graphmatching ist aber recht schwierig zu behandeln. 6.7.2 Diskrete Relaxation Diskrete Relaxation Segmentierung: ZS = {X1,K, Xm} Gebietsnachbarschaftsgraph: GN = [ZS , RN ] zu klassifizierende Objekte: Xi Klassen (Bedeutungen): B = {K1,K, KN } Bi ⊆ B m Menge der möglichen Bedeutungen für das Objekt Xi B = U Bi i =1 Bij = {(b1 , b2 ) : b1 ∈ Bi , b2 ∈ B j } ⊆ Bi × B j Bedeutungen sind kompatibel auf Grund der Relation ( X i , X j ) ∈ RN Ziel: iteratives Auffinden einer Zuordnung zwischen Objekten und Bedeutungen unter Beachtung der Kanten RN Diskrete Relaxation B = (B , B ,K, B ) (0) Anfangszuordnung: (0) 1 (0) 2 (0) m nach dem r-ten Iterationsschritt: B(r ) = (B1( r ) , B2( r ) ,K, Bm( r ) ) Iteration: (r ) i B ( r +1) i →B Bi( r ) ⊆ Bi i = 1,K ,m Bi( 0 ) ⊆ Bi Iteration Bi(r) ⊆ Bi , i =1,K, m ∃X j mit : ( X i , X j ) ∈ RN und ∃b1 ∈ B (r ) i mit : ∀b2 ∈ B (r ) j gilt (b1, b2 ) ∉ Bij Bi( r +1) = Bi( r ) \ {b1} sonst: Bi(r +1) = Bi(r ) Iterationsende: ∃l mit : Bi(l +1) = Bi(l ) , ∀i = 1,K, m 6.7.3 Kontinuierliche Relaxation Kontinuierliche Relaxation • • Jedem Objekt (Bildpunkt, Knoten eines Gebietsnachbarschaftsgraphen) wird eine Wahrscheinlichkeit für die Zugehörigkeit zu jeder der in Frage kommenden Klassen (Bedeutungen) zugeordnet – Iterationsbeginn Iterationsschritt – Wahrscheinlichkeiten der Nachbarobjekte werden daraufhin überprüft, ob ihre Klassifizierung mit dem betrachteten Objekt Xi kompatibel ist oder nicht – Kompatibel Æ die Wahrscheinlichkeit der aktuellen Klassenzuweisung von Xi wird erhöht – Inkompatibel Æ die Wahrscheinlichkeit der aktuellen Klassenzuweisung von Xi wird verringert Kontinuierliche Relaxation Xi zu klassifizierende Objekte: Klassen (Bedeutungen): i = 1,K, m K1,K, KN Zuordnung benachbarter Objekte: X i → K j und X h → Kl ( X i , X h ) ∈ RN c(i, j, h, l ) ∈[−1,+1] c(i, j, h, l ) = 2 p( X i → K j | X h → Kl ) p( X i → K j ) −1 = 2 positiv - kompatibel p( X i → K j , X h → Kl ) p( X i → K j ) p( X h → Kl ) −1 Iteration Initialisierung: N ∑p j =1 Iteration: ( r +1) ij p = (0) ij Xi → K j = 1 ∀i = 1, K , m (r ) (r ) p ( 1 + q ∑ il il ) l =1 Wahrscheinlichkeiten pij( r +1) mit 0 ≤ pij( r +1) ≤ 1 pij( r ) mit 0 ≤ pij( r ) ≤ 1 pij( r ) (1 + qij( r ) ) N pij( 0) mit 0 ≤ pij( 0) ≤ 1 qij( r ) = m ∏ N (r ) c ( i , j , h , l ) p ∑ hl h =1,( X h , X i )∈RN l =1 Iteration phl(r ) groß c(i, j , h, l ) >> 0 pij(r ) vergrößern phl(r ) groß c(i, j , h, l ) << 0 pij(r ) vermindern phl(r ) klein c(i, j , h, l ) ≈ 0 pij(r ) geringfügig ändern 6.8 Boosting Verstärken Boosting • Algorithmus der Klassifizierung, der mehrere schlechte Klassifikatoren zu einem einzigen guten Klassifikator verschmilzt • 2 Klassen • vorgegeben ist eine Menge von Objekten und eine Menge schwacher Klassifikatoren • gesucht ist ein Klassifikator, der die Objekte möglichst fehlerfrei in zwei Klassen einteilt Schwache Klassifikatoren • sehr einfach aufgebaut • berücksichtigen oft nur ein einziges Merkmal der Objekte • liefern deswegen schlechte Ergebnisse • können aber sehr schnell ausgewertet werden Schwache Klassifikatoren – Beispiel (decision stumps) r f : {x} →{+1,−1} r x = (x1, x2 ,K, xn ) r ⎧+1 falls xj ≥ l f ( x) = ⎨ ⎩−1 falls xj < l Bezeichnungen 2 Klassen: bekannte Muster: { rt t X = x ,r } rt x = (x1t , x2t ,K, xnt ) rt x ∈ K1 ⇒ r t = +1 rt t x ∈ K 2 ⇒ r = −1 Schwache Klassifikatoren: r f1,K, fm : {x} →{+1,−1} t = 1, K , N Gesucht: r F : {x} →{+1,−1} r r⎞ ⎛m F(x) = sgn⎜ ∑wi fi (x) ⎟ ⎝ i=1 ⎠ soll möglichst wenig Fehler machen Lösung r r⎞ ⎛m F(x) = sgn⎜ ∑wi fi (x) ⎟ ⎝ i=1 ⎠ 1 L= N N ∑e r − r t ⋅F ( x t ) → min t =1 wird umso kleiner, je weniger Objekte durch F falsch klassifiziert werden Die Optimierung wird schrittweise über m ausgeführt. Sie kann vorher abgebrochen werden. Schrittweise Optimierung r Fs : {x} →{+1,−1} konstruieren: s = 1, K , m fs wird hinzugenommen Hilfsvariablen: t s ,1 ,K , t s , N t1,1 = t1, 2 = L = t1, N = 1 N bewerten die bekannten Muster (je höher der Wert, desto stärker geht das Muster in den aktuellen Durchgang ein) t s ,i = t s −1,i ⋅ e r r i ws −1 f s −1 ( x i ) η s = 2, K , m ∑t i s ,i =1 Schrittweise Optimierung es = ∑t s ,i ri i: f s ( x ) ≠ r i 1 es < 2 ws > 0 1 es = 2 s = 1, K , m ws = 0 fs klassifiziert genauso gut, als würde er bei jedem Muster eine Münze werfen besser als Raten 1 es > 2 1 ⎛ 1 − es ⎞ ⎟⎟ ws = log⎜⎜ 2 ⎝ es ⎠ ws < 0 klassifiziert falsch herum r r⎞ ⎛ s Fs (x) = sgn⎜ ∑wi fi (x) ⎟ ⎝ i=1 ⎠