Masterarbeit Erkennung und Klassifikation von ungeschützten Verkehrsteilnehmern unter Einsatz von FPGAs

Größe: px
Ab Seite anzeigen:

Download "Masterarbeit Erkennung und Klassifikation von ungeschützten Verkehrsteilnehmern unter Einsatz von FPGAs"

Transkript

1 Masterarbeit Erkennung und Klassifikation von ungeschützten Verkehrsteilnehmern unter Einsatz von FPGAs Frerk Saxen

2

3 Hochschule Aschaffenburg Würzburger Straße Aschaffenburg Prüfer: Prof. Dr.-Ing Konrad Doll Prof. Dr. Ulrich Brunsmann Ehrenwörtliche Erklärung Hiermit erkläre ich, dass die vorliegende Masterarbeit zum Thema Erkennung und Klassifikation von ungeschützten Verkehrsteilnehmern unter Einsatz von FPGAs, ohne fremde Hilfe und ohne Benutzung anderer als der angegebenen Quellen angefertigt wurde. Alle, wörtlich oder sinngemäß übernommenen Inhalte sind als solche gekennzeichnet. Aschaffenburg, den Frerk Saxen 3

4 4 Frerk Saxen

5 Inhaltsverzeichnis Abkürzungsverzeichnis Einleitung Motivation Aufgabenstellung Theoretische Grundlagen Histograms of Oriented Gradients Gradient Betrag und Winkel Gaußsche Gewichtung der Beträge Histogrammberechnung durch trilineare Interpolation Blocknormierung Support Vector Machine Hard-Margin SVM Soft-Margin SVM Kernel SVM Hard Examples Stand der Technik Keine räumliche Beziehung der Merkmale Enge räumliche Beziehung der Merkmale Flexible räumliche Beziehung der Merkmale Klassifikation Systembeschreibung Vereinfachen der RBF Support Vektor Reduktion RANSAC-SVM RANSAC-SV SortedVotes SVM-Implementierung Speicherung der Block-Deskriptoren Reduktion des Speicherbedarfs Hardwarearchitektur der linearen SVM Addition der Teil-Skalarprodukte mit Hilfe der CPU Ergebnisse Hard Examples Support Vektor Reduktion Ergebnisse mit der INRIA Datenbank Frerk Saxen 5

6 Ergebnisse mit der MNIST Datenbank Genauigkeitsanalyse der Hardwareimplementierung von HOG und SVM Betragsberechnung Histogrammberechnung Normierung HOG Insgesamt SVM Ressourcenübersicht und Berechnungszeit der FPGA-Implementierung Klassifikationsergebnisse Vergleich mit der originalen HOG-Implementierung Unterschiede der FPGA-Implementierung zu der äquivalenten MATLAB- Implementierung Zusammenfassung und Ausblick 57 A. Auflistung der erstellten Module 59 Literaturverzeichnis 61 6 Frerk Saxen

7 Abkürzungsverzeichnis BoW BRAM cohog CPU CSS Bag of Words (Wahrscheinlichkeitsmodell zur Objektklassifizierung) Block Random Access Memory (RAM) (schneller, interner Speicher des Field Programmable Gate Arrays (FPGAs)) Co-occurrence Histograms of Oriented Gradients (HOG) (Weiterentwicklung des HOG-Algorithmus) Central Processing Unit (Hauptprozessor im Computer) Color Self Similarity (Farbmerkmal zur Verbesserung des HOG-Algorithmus) DDR2-SDRAM Double Data Rate Synchronous Dynamic RAM (SDRAM) (Weiterentwicklung von SDRAM, wobei die fallende sowie die steigende Taktflanke verwendet wird) DET FIFO FPGA FPPW FSM GPU Detection Error Tradeoff (Evaluationskriterium für Klassifikatoren) First In First Out (Speicherverfahren, bei dem zuerstgespeicherte Daten auch zuerst ausgelesen werden) Field Programmable Gate Array (Integrierter Schaltkreis mit frei programmierbaren Logik-Gattern) False Positive Per Window (Evaluationskriterium von Detection Error Tradeoff (DET)-Kurven) Finite State Machine (Zustandsautomat) Graphics Processing Unit (Prozessoreinheit auf Grafikkarten) HD High Definition (Bilder oder Videos mit einer Auflösung von ) HOF HOG ISM KKT LBP PCIe Histograms Of Flow and Appearance (Video-basiertes Merkmal zur Personenerkennung [Dalal u. a. 2006]) Histograms of Oriented Gradients (Algorithmus zu Fußgängererkennung [Dalal 2006]) Implicit Shape Model (Wahrscheinlichkeitsmodell zur Objektsegmentierung) Karush-Kuhn-Tucker (Bedingungen zur Lösung des Lagrange-Ansatzes [Karush 1939; Kuhn und Tucker 1951]) Local Binary Pattern (Merkmal zur besseren Identifikation von Verdeckungen) Peripheral Component Interconnect Express (Bus-Standard für PCs zur Verbindung von Peripheriegeräten mit dem Chipsatz des Prozessors) Frerk Saxen 7

8 Inhaltsverzeichnis RAM RANSAC RBF ROM RPC SDRAM SVM SVN VHDL Random Access Memory (Speicher, der insbesondere bei Computern als Arbeitsspeicher verwendet wird) Random Sample Consensus (Algorithmus zur Schätzung eines Modells [Fischler und Bolles 1981]) Radiale Basis Funktion (Kernelfunktion der Support Vector Machine (SVM)) Read Only Memory (Speicher, aus dem nur gelesen werden kann) Recall Precision Curve (Kurve zur Beurteilung von Klassifikatoren) Synchronous Dynamic RAM (Weiterentwicklung dynamischer RAM-Bausteine) Support Vector Machine (Klassifikations- und Regressionsalgorithmus [Boser u. a. 1992]) Subversion (Software zur Versionierung von Dateien und Verzeichnissen) Very High Speed Integrated Circuit Hardware Description Language (Hardwarebeschreibungsspache zum Modellieren komplexer digitaler Systeme) 8 Frerk Saxen

9 1Kapitel 1. Einleitung 1.1. Motivation Fußgänger bedürfen bei der Verkehrssicherheit besonderer Aufmerksamkeit, da sie als ungeschützte Verkehrsteilnehmer bei Unfällen besonders hohen Schäden ausgesetzt sind. Im Jahr 2008 verunglückten Fußgänger im Straßenverkehr (8 % aller registrierten Verunglückten), dabei starben 653 (15 % aller Verkehrstoten) [Vorndran 2009]. Fußgängererkennungssysteme werden entwickelt, um mögliche Kollisionen frühzeitig zu erkennen und darauf zu reagieren. So können die Unfallzahlen reduziert werden. Besonders bewährt bei der Fußgängererkennung hat sich die Methode Histograms of Oriented Gradients [Dalal und Triggs 2005a]. Dieser Algorithmus erkennt Bilder von Fußgängern. Er ist jedoch sehr rechenaufwändig und derzeit mit modernen Mikroprozessoren nicht echtzeitfähig zu implementieren. Um der Echtzeitfähigkeit gerecht zu werden, kann man FPGAs verwenden Aufgabenstellung Ziel dieser Arbeit ist es, ein echtzeitfähiges System zur Fußgängererkennung auf einem FPGA zu implementieren. Einen Teil der HOG-Implementierung in Very High Speed Integrated Circuit Hardware Description Language (VHDL) existiert bereits, er wurde im Rahmen einer Bachelorarbeit erstellt [Saxen 2010]. Frerk Saxen 9

10 10 Frerk Saxen

11 2Kapitel 2. Theoretische Grundlagen 2.1. Histograms of Oriented Gradients HOG ist ein effektiver Algorithmus zur Fußgängererkennung. Er wurde von Dalal und Triggs [2005a] vorgestellt, wobei er eine ausführliche Parameterevaluation seines Algorithmus beschrieb. Dieser Algorithmus wird hier kurz beschrieben, wobei logischerweise lediglich der performanteste Parametersatz erklärt wird. Der HOG-Algorithmus gehört zu den globalen Deskriptoren. Globale Deskriptoren berechnen einen Merkmalsvektor 1 für ein Objekt. Das heißt, dass für die Berechnung des HOG-Deskriptors lediglich ein Bildausschnitt, das sogenannte Klassifikationsfenster betrachtet werden kann (in diesem Fall Pixel) und nicht in einem Schritt das ganze Bild berechnet wird. Um trotzdem das ganze Bild abzudecken, werden Bildausschnitte (Klassifikationsfenster) an jeder möglichen Bildposition vorgenommen, was verständlicherweise zu einem sehr hohen Rechenaufwand führt. Dieser wird noch verstärkt durch die Tatsache, dass nicht jede Person in das Klassifikationsfenster passt, schließlich sind Personen auf Bildern nicht immer gleich groß 2. Da man in der Regel nicht weiß, wie groß die zu erkennenden Personen sind, wird das Bild mehrmals skaliert. Für jede Skalierungsstufe werden dann die Klassifikationsfenster berechnet. Die Anzahl der Klassifikationsfenster steigt dadurch natürlich weiter. Bild 2.1 zeigt die Aufteilung des Klassifikationsfensters. Zur Berechnung des HOG-Deskriptors wird das Klassifikationsfenster in 7 15 sich überlappende Blöcke unterteilt. Für die Berechnung bedeutet das, dass aus dem Bildausschnitt (64 128) jeweils Pixel ausgeschnitten werden und dafür ein sogenannter Block-Deskriptor berechnet wird. Da sich die Blöcke jeweils überlappen, ensteht der nächste Block-Deskriptor 8 Pixel weiter. Der komplette HOG- Deskriptor wird letztendlich durch Aneinanderreihung der Block-Deskriptoren erzeugt. Die Berechnung der Block-Deskriptoren ist in den folgenden 5 Abschnitten erklärt Gradient Die Berechnung des Gradienten in horizontaler (X) und in vertikaler (Y) Richtung ist der erste Schritt. Zur Berechnung des Gradienten G x und G y ist die Filtermatrix M x und M y mit dem 1 Merkmalsvektor und Deskriptor sind equivalente Bezeichnungen. 2 Personen erscheinen im Bild kleiner als andere, die vom Objektiv der Kamera weiter entfernt sind. Frerk Saxen 11

12 Kapitel 2. Theoretische Grundlagen Block 16 Pixel Klassifikationsfenster 7 Blöcke 64 Pixel Block Block 16 Pixel 3D Histogramm 15 Blöcke 128 Pixel H1,1 H1,2 H2,1 H2, Bins Bild 2.1.: Aufteilung des Klassifikationsfensters Eingangsbild I zu falten. Unter Eingangsbild I sind natürlich die Bild-Pixel des jeweiligen Blocks (16 16 Pixel) gemeint. G x = M x I (2.1) M x = (2.2) G y = M y I (2.3) M y = (2.4) Da das Eingangsbild aus drei Kanälen (Rot, Grün und Blau) besteht, ist natürlich die Berechnung der Gradienten für jeden Kanal notwendig Betrag und Winkel Der Betrag G und der Winkel φ berechnet sich aus den Gradienten G x und G y, wobei der Winkel φ nur Winkel zwischen 0 und 180 zulässt. Der Betrag und der Winkel werden für jeden Kanal (Rot, Grün und Blau) berechnet. Anschließend werden die drei Kanäle zusammengefasst, 12 Frerk Saxen

13 2.1. Histograms of Oriented Gradients indem der Kanal ausgewählt wird, dessen Betragswert am größten ist. G = G 2 x + G 2 y (2.5) tan φ = { Gy G x, wenn G y > 0, Gy G x, sonst. (2.6) Gaußsche Gewichtung der Beträge Um Randeffekte zu vermeiden, werden die Beträge noch einmal mit einem Gaußfilter (σ = 8) gefaltet. G G g (2.7) g = 1 ( 2πσ 2 exp x2 + y 2 ) 2σ 2 (2.8) Histogrammberechnung durch trilineare Interpolation Aus den Winkeln und den Beträgen wird nun ein dreidimensionales Histogramm erzeugt, wie Bild 2.1 zeigt. Es besteht aus = 36 Elementen. Zunächst werden die berechneten Winkel in 9 Winkelbereiche (sogenannte Bins) aufgeteilt ( Bins = 20 Bin ). Um Aliasing-Effekte zu vermeiden, werden die Winkelbereiche linear interpoliert und mit den zugehörigen Betragswerten gewichtet. Das heißt, dass der Betrag mit einem Winkel von beispielsweise 25 noch zu 25% zu Bin 1 zählt und zu 75% zu Bin 2. Auch zwischen Bin 9 und Bin 1 wird linear interpoliert. Für den Betrag G, mit dem Winkel Φ = φ 9 und den zwei Mittelpunkten der begrenzenden Winkelbereiche b 1 und b 2 (wobei b 1 < Φ < b 2 ), werden die Gewichte B(b 1 ) und B(b 2 ) folgendermaßen berechnet: ( B(b 1 ) = G 1 Φ b ) 1 1 ( ) Φ b1 B(b 2 ) = G 1 (2.9) (2.10) Die lineare Interpolation setzt sich auch bei der räumlichen Position im Histogramm fort, was insgesamt trilineare Interpolation heißt. Wurde zunächst für jedes Element die Bininterpolation durchgeführt (für alle Pixel), wird nun für jedes Pixel die Histogrammzugehörigkeit berechnet. Pixel, die in der oberen linken Ecke liegen, werden zu 100% zu H 1,1 gezählt, wobei Pixel, die in der Mitte liegen, nur zu einem kleineren Teil zu H 1,1 zählen. Anders gesagt, hat jedes berechnete Winkel-Betrags-Paar Einfluss auf 8 Histogrammelemente. Für jedes Element an der Position x, y mit dem Winkel Φ = φ 9 und den Betrag G, wird das Histogrammelement wie folgt berechnet, wobei x 1, x 2, y 1 und y 2 die Mittelpunke der begrenzenden Histogrammpositionen Frerk Saxen 13

14 Kapitel 2. Theoretische Grundlagen sind (b 1 und b 2 sind wie oben die begrenzenden Winkelbereiche): ( H(x 1, y 1, b 1 ) H(x 1, y 1, b 1 ) + G 1 x x ) ( 1 1 y y ) ( 1 1 Φ b ) ( H(x 1, y 1, b 2 ) H(x 1, y 1, b 2 ) + G 1 x x ) ( 1 1 y y ) ( ) 1 Φ b ( H(x 1, y 2, b 1 ) H(x 1, y 2, b 1 ) + G 1 x x ) ( ) ( 1 y y1 1 Φ b ) ( H(x 1, y 2, b 2 ) H(x 1, y 2, b 2 ) + G 1 x x ) ( ) ( ) 1 y y1 Φ b ( ) ( x x1 H(x 2, y 1, b 1 ) H(x 2, y 1, b 1 ) + G 1 y y ) ( 1 1 Φ b ) ( ) ( x x1 H(x 2, y 1, b 2 ) H(x 2, y 1, b 2 ) + G 1 y y ) ( ) 1 Φ b ( ) ( ) ( x x1 y y1 H(x 2, y 2, b 1 ) H(x 2, y 2, b 1 ) + G 1 Φ b ) ( ) ( ) ( ) x x1 y y1 Φ b1 H(x 2, y 2, b 2 ) H(x 2, y 2, b 2 ) + G (2.11) (2.12) (2.13) (2.14) (2.15) (2.16) (2.17) (2.18) Blocknormierung Nun wird das Histogramm normiert, indem jedes Element durch die euklidische Norm des Histogramms dividiert wird. v = H H ɛ2 (2.19) Um den HOG-Deskriptor zu erzeugen, werden lediglich alle normierten Block-Deskriptoren v des Klassifikationsfensters konkateniert Support Vector Machine Die SVM ist ein binärer Klassifikator und gehört zu den überwachten Lernverfahren [Bishop 2006]. Binäre Klassifikatoren trennen lediglich zwei Klassen voneinander. Es gibt auch sogenannte Multiclass SVMs. Diese können eine Reihe von Klassen voneinander trennen, setzen sich jedoch aus mehreren binären SVMs zusammen [Vapnik 1998]. Überwachte Lernverfahren bilden anhand von Trainingsdaten Trennungsfunktionen, um so bei unbekannten Daten Hypothesen zu bilden. Um überwachte Lernverfahren zu evaluieren, sind demnach Testdaten notwendig. Im einfachsten Fall sind die zu trennenden Daten linear trennbar (siehe Bild 2.2). In vielen realen Fällen ist eine lineare Trennenung jedoch nicht ausreichend. Um nichtlineare Trennfunktionen zu ermöglichen, werden bei einer SVM sogenannte Kernelfunktionen verwendet [Vapnik 1995]. Abschnitt erklärt zunächst die Funktion einer Hard-Margin SVM. Die Soft-Margin SVM ist in Abschnitt beschrieben. Abschnitt erläutert nichtlineare SVMs. 14 Frerk Saxen

15 2.2. Support Vector Machine Bild 2.2.: Diskriminanzfunktion. Links: linear trennbar; rechts: nicht linear trennbar Hard-Margin SVM Die Hard-Margin SVM trennt zwei linear trennbare Klassen, sodass die Trennspanne (Margin) möglichst breit wird (siehe Bild 2.3). Dabei wird ein lineares Modell zur Klassifikation verwen- Bild 2.3.: Trennspanne einer linearen SVM (Quelle: [Cyc 2008]) det, wobei f(x) die Trennungsfunktion, x den Merkmalsvektor, w den Gewichtsvektor und b den Offset (Bias) bezeichnen. f(x) = w T x + b (2.20) Aus dem Trainingsdatensatz mit N Merkmalsvektoren x 1,..., x N und den entsprechenden Klassenzugehörigkeiten (Label) y 1,..., y N, wobei y n { 1; +1}, wird die Trennnungsebene Frerk Saxen 15

16 Kapitel 2. Theoretische Grundlagen bestimmt, sodass f(x n ) > 0 für alle y n = +1 und f(x n ) < 0 für alle y n = 1 gilt. Für alle Trainingsdaten gilt: y n f(x n ) > 0 (2.21) ( y n w T x n + b ) > 0 (2.22) Dieser Forderung kommen, sofern der Datensatz linear trennbar ist, unendlich viele Trennungsfunktionen nach. Die optimale Trennungsebene liegt jedoch dort, wo die Trennspanne (Margin) maximal wird [Tong und Koller 2000]. Begrenzt durch die Merkmalsvektoren der Klassen, liegt die Trennungsebene somit in der Mitte der begrenzenden Vektoren. Der Abstand zu diesen Vektoren beträgt f(x n )/ w. Somit ist der Abstand d eines Merkmalsvektors zu der Trennungsebene: d = y n f(x n ) w ( d = y n w T x n + b ) w (2.23) (2.24) Die Trennspanne, gegeben durch die Senkrechte des nächsten Punktes x n, sollte also maximal werden. Demnach ist die größte Trennspanne mit der Lösung des Optimierungsproblems gegeben: { 1 [ ( b)] } arg max w,b w min y n w T x n + (2.25) n Der konstante Faktor 1/ w ist unabhängig von n und darf deswegen vor den inneren Optimierungsschritt gezogen werden. Die Lösung dieses Optimierungsproblems ist sehr komplex und wird daher in ein äquivalentes Problem konvertiert [Bishop 2006]: Bisher gilt für alle Trainingsdaten y n f(x n ) = w d. Nun werden der Gewichtsvektor w und der Offset b skaliert (w = κ w und b = κ b). Die Trennungsfunktion ändert sich somit zu: Die Distanz zu einem beliebigen Merkmalsvektor x n bleibt: f(x) = w T x + b (2.26) d = y n f(x n ) (2.27) w ( d = y n w T x n + b ) (2.28) w ( ) d = y n 1 κ wt x n + 1 κ b 1 κ w (2.29) ( ) d = y n 1 κ w T x n + b ( d = y n w T x n + b w d = y n f(x n ) w 1 κ w (2.30) ) (2.31) (2.32) 16 Frerk Saxen

17 2.2. Support Vector Machine κ kann nun so gewählt werden, dass für die begrenzenden Vektoren κ w d = 1 gilt. Gleichung 2.22 ändert sich somit zu: ( ) y n w T x n + b 1 (2.33) Diese Gleichung wird kanonische Darstellung der Hyperebene genannt. Das Optimierungsproblem fordert, 1/ w zu maximieren. Äquivalent kann auch 1 2 w 2 minimiert werden. Der konstante Faktor 1 2 ändert, genauso wie das weglassen von κ, das Minimierungsproblem nicht, es dient lediglich zur späteren Vereinfachung. Auch w 2 lässt sich leichter optimieren als w. Mit Hilfe von Lagrange-Multiplikatoren (α = (α 1,..., α N ) T, α n 0) lässt sich das Optimierungsproblem folgendermaßen beschreiben: L(w, b, α) = 1 2 w 2 N n=1 ( ) } α n {y n w T x n + b 1 (2.34) Die Lösungen des Optimierungsproblems sind durch die Ableitungen der Lagrange-Funktion nach den Optimierungsparametern gegeben: δl N δb = 0 n=1 δl N δw = 0 n=1 α n y n = 0 (2.35) α n y n x n = w (2.36) Laut der Karush-Kuhn-Tucker (KKT) Bedingung [Karush 1939; Kuhn und Tucker 1951] muss folgende Gleichung gelten: { ( ) } α n y n w T x n + b 1 = 0 (2.37) Diese Gleichung wird nur dann 0, wenn α n = 0 oder y n f(x n ) = 1. Jedoch gilt, dass y n f(x n ) nur dann 1 ist, wenn der Merkmalsvektor die Trennungsebene begrenzt. Da bei allen anderen Vektoren die Bedingung α n = 0 erfüllt sein muss, werden sie bei der späteren Klassifikation nicht berücksichtigt. Die Trennungsebene wird somit nur duch die begrenzenden Merkmalsvektoren gebildet, sie heißen deshalb Support Vektoren. Für sie gilt: α n > 0 (2.38) Aus Gleichung (2.34) können w und b Schritt für Schritt eliminiert werden. N Mit w = α n y n x n folgt (2.39) n=1 L(α) = 1 N N N 2 w 2 α n y n α m y m xm T x n + α n n=1 m=1 n=1 (2.40) L(α) = 1 N N ( ) N 2 w 2 α n α m y n y m xm T x n + α n n=1 m=1 n=1 (2.41) Mit 1 2 w 2 = 1 2 wt w folgt (2.42) 1 2 wt w = 1 2 L(α) = N N n=1 m=1 N n=1 α n 1 2 α n α m y n y m ( x T m x n ) N N n=1 m=1 α n α m y n y m ( x T m x n ) (2.43) (2.44) Frerk Saxen 17

18 Kapitel 2. Theoretische Grundlagen Gleichung (2.44) ist das sogenannte Wolfe dual. Mit ihr kann, unter Berücksichtigung folgender Bedingungen, das Optimierungsproblem gelöst werden. N n,m=1 α n 0 (2.45) α n y n = 0 (2.46) Der Term xm x T n macht eine quadratische Optimierung notwendig. Techniken zur Lösung dieses Problems bietet die quadratische Programmierung und ist in [Bishop 2006] und [Schölkopf u. a. 1999] beschrieben. Sind die Lagrange-Multiplikatoren berechnet, können Gewichtsvektor w und Offset b ermittelt werden. Da für alle Support Vektoren y n f(x n ) = 1 gilt, kann b berechnet werden: y n ( ) α m y m xn T x m + b = 1 (2.47) m S S bezeichnet die Indizes der Support Vektoren. Eine numerisch stabile Lösung dieser Gleichung lässt sich ermitteln, indem zunächst mit y n multipliziert wird (unter Berücksichtigung, dass y 2 n = 1 ist). Anschließend wird über alle N S Support Vektoren gemittelt. b = 1 y n α m y m N S m S n S Der Gewichtsvektor bestimmt sich aus Gleichung (2.36): ) (x n T x m (2.48) N w = α m y m x m (2.49) m=1 Unbekannte Merkmalsvektoren lassen sich klassifizieren, indem die Signumfunktion der Gleichung (2.26) berechnet wird. ( ) sgn (f(x)) = sgn w T x + b (2.50) Soft-Margin SVM Die Hard-Margin SVM trennt linear separierbare Trainingsdaten, sodass eine vollständige Trennung der Daten entsteht. In vielen realen Fällen ist es nicht möglich den Merkmalsraum linear zu trennen. Die Hard-Margin SVM führt in diesen Fällen zu schlechten Ergebnissen [Cristianini und Shawe-Taylor 2000]. Um dennoch eine optimale lineare Trennung zu gewährleisten, werden Schlupfvariablen ξ n eingeführt [Bennett und Mangasarian 1992]. ξ n 0 (2.51) Die Schlupfvariablen erlauben den Merkmalsvektoren sich auch auf der falschen Seite der Trennebene aufzuhalten. Je weiter sie sich jedoch von der Grenze der Trennspanne entfernen, desto stärker fallen sie bei der Optimierung ins Gewicht. Sie sind so definiert, dass für alle Merkmalsvektoren, die sich auf der richtigen Seite der Trennspanne (oder auf der Grenze der 18 Frerk Saxen

19 2.2. Support Vector Machine Trennspanne) befinden, ξ n = 0 gilt. Für alle anderen Merkmale betragen die Schlupfvariablen ξ n = y n f(x n ). Somit haben Vektoren, die auf der Trennungsebene liegen, ξ n = 1. Außerdem werden Vektoren, für die ξ n > 1 gilt, falsch klassifiziert. Die Klassifikationsbedingungen ändern sich damit wie folgt: y n f(x n ) 1 ξ n (2.52) Somit werden alle Merkmalsvektoren, für die ξ n = 0 gilt, richtig klassifiziert. Vektoren, für die 0 < ξ n 1 gilt, liegen innerhalb der Trennspanne und werden noch richtig klassifiziert. Aber Vektoren, für die ξ n > 1 gilt, werden falsch klassifiziert. Die weitere Vorgehensweise ist analog zur Hard-Margin SVM. Das Minimierungsproblem ist lediglich zu erweitern: N C ξ n w 2 (2.53) n=1 Das Fehlergewicht C > 0 ist ein Maß für den Kompromiss zwischen maximaler Trennspanne und minimal zugelassenem Klassifikationsfehler [Schreiter 2010]. Da alle falsch klassifizierten Vektoren ξ n > 1 erfüllen, beträgt die maximale Anzahl falsch klassifizierter Vektoren: N ξ n (2.54) n=1 Der Speziallfall C liefert eine Hard-Margin SVM. Je kleiner C gewählt wird, desto breiter wird die resultierende Trennspanne und desto mehr Merkmalsvektoren werden zu Support Vektoren. Das Minimierungsproblem aus Gleichung (2.53), mit der Bedingung aus Gleichung (2.52) und Gleichung (2.51), führt zum Lagrange-Ansatz: L(w, b, ξ, α, µ) = 1 N N N 2 w 2 + C ξ n α n {y n f(x n ) 1 + ξ n } µ n ξ n (2.55) n=1 n=1 n=1 Dabei sind µ n 0 und α n 0 Lagrange-Multiplikatoren. Die korrespondierenden KKT Bedingungen sind: α n 0 (2.56) y n f(x n ) 1 + ξ n 0 (2.57) α n (y n f(x n ) 1 + ξ n ) = 0 (2.58) µ n 0 (2.59) ξ n 0 (2.60) µ n ξ n = 0 (2.61) Die Lösung des Lagrange-Ansatzes entsteht durch die Ableitung der Optimierungsparameter w, b und ξ n : δl N δw = 0 n=1 δl N δb = 0 n=1 α n y n x n = w (2.62) α n y n = 0 (2.63) δl δξ n = 0 C µ n = α n (2.64) Frerk Saxen 19

20 Kapitel 2. Theoretische Grundlagen Mit diesen Ergebnissen können w, b, ξ n und µ n elimeniert werden: N L(α) = α n 1 N N ( ) α n α m y n y m xm T x n 2 n=1 n=1 m=1 (2.65) Gleichung (2.65) ist identisch zu Gleichung (2.44), es handelt sich um das Wolfe dual. Lediglich die Bedingungen haben sich etwas geändert. Um sich diese bewusst zu machen, sind die Bedingungen α n 0 und µ n 0 wichtig. Mit Gleichung (2.64) folgt α n C. Es gilt also Gleichung (2.65) zu minimieren, unter den Bedingungen: 0 α n C (2.66) N α n y n = 0 (2.67) n=1 Mit Hilfe der quadratischen Programmierung lässt sich auch dieses Optimierungsproblem lösen. Gleichung (2.62) zeigt, dass für die Berechnung des Gewichtsvektors nur ein Teil der Trainingsdaten verwendet werden. Nämlich nur die Vektoren, für die α n > 0 gilt. Diese Vektoren sind Support Vektoren, liegen jedoch nicht mehr zwingend auf der Grenze der Trennspanne. Für sie gilt, unter Berücksichtigung von Gleichung (2.58): y n f(x n ) = 1 ξ n (2.68) Für alle Support Vektoren, für die α n < C gilt, resultiert ξ n = 0, da α n = C µ n und µ n ξ n = 0 gilt. Das heißt, sie liegen an der Grenze der Trennspanne. Alle anderen Support Vektoren, für die α n = C gilt, können innerhalb der Trennspanne liegen und richtig klassifiziert (ξ n 1) oder falsch klassifiziert werden (ξ n > 1). Der Parameter b lässt sich äquivalent zur Hard-Margin SVM berechnen. Der einzige Unterschied besteht darin, dass lediglich diejenigen Support Vektoren verwendet werden, für die 0 < α n < C gilt. y n ( ) α m y m xn T x m + b = 1 (2.69) m S Die numerisch stabile Lösung entsteht wieder durch Mittelwertbildung: b = 1 y n ) α m y m (xn T x m (2.70) N M m S n M M bezeichnet die Indizes der Support Vektoren, für die 0 < α n < C gilt. Die Berechnung des Gewichtsvektors und die Klassifikation unbekannter Merkmalsvektoren bleiben gleich: N w = α m y m x m (2.71) m=1 ( ) sgn (f(x)) = sgn w T x + b (2.72) Kernel SVM Auch bei der Kernel SVM wird die Ausgangsgleichung zur Klassifikation verwendet (Gleichung (2.26)). f(x) = w T x + b (2.73) 20 Frerk Saxen

21 2.2. Support Vector Machine Der Gewichtsvektor w wird jedoch substituiert durch Gleichung (2.71). f(x n ) = b + N m=1 ) α m y m (x m T x n (2.74) Da in vielen realen Fällen keine lineare Trennbarkeit der Trainingsdaten erzielt werden kann, stößt auch die Soft-Margin SVM an ihre Grenzen. Es gibt jedoch eine Möglichkeit lineare Trennbarkeit zu erzwingen. Dies ist möglich, indem die Merkmalsvektoren (K Dimensionen) mit Hilfe der Funktion φ in einen höherdimensionalen Raum (L Dimensionen) überführt werden [Burges 1998]. Gleichung (2.74) ändert sich mit φ zu: φ : R K R L, x φ(x) (2.75) f(x n ) = b + N m=1 ( ) α m y m φ(x m ) T φ(x n ) (2.76) Zum Beispiel kann die Funktion φ einen Merkmalsvektor mit 2 Dimesionen in einen Merkmalsvektor mit 3 Dimensionen projizieren. φ : R 2 R 3 (2.77) Die Projektion in den höherdimensionalen Raum muss natürlich nichtlinear sein [Baudat und Anouar 2001]. (x 1, x 2 ) (ˆx 1, ˆx 2, ˆx 3 ) := ( x 2 1, ) 2 x 1 x 2, x 2 2 (2.78) Die Hoffnung ist, dass im höherdimensionalen Raum die Merkmalsvektoren linear trennbar sind. Die Aufgabe besteht also darin, eine geignete Projektionsregel zu finden, um damit Schritt für Schritt neue Dimensionen hinzuzufügen. In jedem Schritt ist zu überprüfen, ob eine lineare Trennbarkeit gegeben ist. Ein solches Verfahren ist leider unglaublich rechenaufwändig, da häufig sehr viele Dimensionen notwendig sind und in jedem Schritt die Optimierung nach Gleichung (2.65) durchzuführen ist. Die Kernel SVM bedient sich deshalb des Kernel-Tricks [Smola u. a. 2000], indem die Kernelfunktion K definiert wird: K(x m, x n ) = φ(x m ) T φ(x n ) (2.79) Die Berechnung des Skalarprodukts φ(x m ) T φ(x n ) wird durch eine Kernelfunktion ersetzt. Die Kernelfunktion verhindert die Projektion in den höherdimensionalen Raum, bietet dennoch die gleichen Vorteile. Sie ersetzt die Berechnung des Skalarproduks (im höherdimensionalen Raum R L ) durch eine Funktion (im niedrigdimensionalen Raum R K ). Die Merkmalsvektoren lassen sich nun trennen, da es keine lineare Trennebene mehr gibt. Das Optimierungsproblem in Gleichung (2.65) muss natürlich angepasst werden, die Bedingungen 0 α n C und Nn=1 α n y n = 0 bleiben gleich. N L(α) = α n 1 2 n=1 N N α n α m y n y m K(x m, x n ) (2.80) n=1 m=1 Frerk Saxen 21

22 Kapitel 2. Theoretische Grundlagen Einen Nachteil haben die Kernelfunktionen trotzdem. Der Gewichtsvektor w lässt sich nicht mehr berechnen, sodass die Klassifikation unbekannter Merkmale rechenaufwändiger wird, schließlich sind die Lagrange-Multiplikatoren und die Support Vektoren dafür notwendig: ( ) N sgn (f(x n )) = sgn b + α m y m K(x m, x n ) (2.81) m=1 Für die verschiedenen Anwendungsgebiete gibt es verschiedene Kernelfunktionen. Im Bereich der Fußgängererkennung sind häufig verwendete Kernelfunktionen: ( ) ) d Polynomial: K(x m, x n ) = s (x m T x n + c ( ) ) Sigmoid: K(x m, x n ) = tanh s (xm T x n + c Radiale Basis Funktion (RBF): K(x m, x n ) = e γ xm xn 2 Intersection: K(x m, x n ) = K i=1 min (x m,i, x n,i ) Die Optimierungsparameter, darunter fällt auch C bei der Soft-Margin SVM, werden in der Regel systematisch bestimmt, indem eine Vielzahl von SVMs unter Variation der Parameter trainiert werden. Die SVM mit dem besten Ergebnis führt so zum besten Parametersatz Hard Examples Die Güte der Klassifikation hängt wesentlich von den Trainingsdaten ab. So liegt es nahe, die Trainingsdaten zu erweitern, um so die Klassifikationsergebnisse zu verbessern. Bereits in [Dalal 2006] ist die Methode Hard Examples beschrieben. Häufig wird auch der Begriff Bootstrapping dafür verwendet [Walk u. a. 2010], er ist jedoch im Bereich Mustererkennung mehrdeutig [Clémencon u. a. 2009]. Die Hard examples Methode lässt sich bei überwachten Lernverfahren einsetzen, also auch bei SVMs mit Hinblick auf Fußgängererkennung. Es besteht aus zwei Schritten. 1. Zunächst wird mit den Trainingsdaten eine SVM trainiert. Die Trainingsdaten bestehen aus Positiv- und Negativbeispielen. Die Anzahl der Negativbeispiele lässt sich sehr einfach inkrementieren, indem beliebige Bilder gewählt werden, die keine Personen beinhalten. Leider steigt die Zeit zum Trainieren der SVM mit der Anzahl der Trainingsdaten, deshalb werden zum Trainieren nur ca. fünfmal mehr Negativ- als Positivbeispiele verwendet. 2. Anschließend werden mit dieser trainierten SVM alle übrigen Negativbeispiele klassifiziert. Dabei werden diejenigen Beispiele gespeichert, die fälschlich positiv klassifiziert wurden. Diese Beispiele werden nun zum Trainingsdatensatz hinzugefügt und die SVM neu trainiert. Das Verfahren heißt Hard Examples, da nur schwierig zu klassifizierende Beispiele zum Trainingsdatensatz hinzugefügt werden. Mit diesem Verfahren kann die Fehlklassifikation ( missrate ) deutlich reduziert werden [Walk u. a. 2010]. Natürlich kann dieses Verfahren auch mehrmals (iterativ) angewendet werden, jedoch verbessert sich die Fehlklassifikation nicht mehr signifikant. Bei SVMs tritt noch ein Nebeneffekt auf. Durch die vielen schwierigen Beispiele die hinzugefügt werden, steigt in der Regel die Anzahl der Support Vektoren. 22 Frerk Saxen

23 3Kapitel 3. Stand der Technik Ein Teilgebiet der Bildverarbeitung ist die Objekterkennung. Auch wenn ungeschützte Verkehrsteilnehmer, also Fußgänger, Fahrradfahrer, usw. aus moralischen Gesichtspunkten keine Objekte sind, können sie durch Modellbildung mit Objekterkennungsmethoden erkannt und klassifiziert werden. Die Motive zur Personenerkennung reichen von Vehrkehrssicherheitssystemen [Ess u. a. 2008; Gavrila und Munder 2007] über Personenüberwachung [Torresan u. a. 2004; Kanade u. a. 1998; Haritaoglu u. a. 1998] hin zur Detektion von Internetseiten mit pornographischen Inhalten [Forsyth und Fleck 1996; Fleck u. a. 1996; Forsyth und Fleck 1999]. Genauso pluralistisch wie die Motive zur Erkennung von Personen sind die verschiedenen Algorithmen. Schiele [2010] kategorisiert Objekterkennungsmethoden nach der räumlichen Beziehung der Merkmale in drei Klassen (Keine räumliche Beziehung, feste räumliche Beziehung und flexible räumliche Beziehung). Merkmale, wie in Bild 3.1 Gesichtsmerkmale, stehen häufig in einer räumlichen Beziehung zueinander. Zum Beispiel ist bei Gesichtern die räumliche Anordnung von Mund, Nase und Augen stets gleich. Jedoch haben Hände zueinander keine festen räumlichen Beziehungen, schließlich können die Hände sich scheinbar unabhängig voneinander bewegen. Trotzdem sind auch sie nicht völlig unabhängig, denn die Anthropometrie erlaubt nur einen begrenzten Bewegungsspielraum. (a) Merkmale eines Gesichts (b) Das BoW-Modell Bild 3.1.: Die Merkmale eines Gesichts und das BoW-Modell (Quelle: [Fei-Fei u. a. 2005]) Frerk Saxen 23

24 Kapitel 3. Stand der Technik (a) Keine räumliche Beziehung der Merkmale (b) Enge räumliche Beziehung der Merkmale (c) Flexible räumliche Beziehung der Merkmale Bild 3.2.: Drei Kategorien von Objekterkennungsmethoden (Quelle: [Schiele 2010]) 3.1. Keine räumliche Beziehung der Merkmale Zur ersten Kategorie von Objekterkennungsmethoden gehören Algorithmen ohne räumliche Beziehung (siehe Bild 3.2a), auch bekannt unter dem Namen Bag of Words (BoW). Sie basieren auf der Häufigkeitsverteilung von Merkmalen (siehe Bild 3.1b), unabhängig von der Position der gefundenen Merkmale. Besonders erfolgreich funktioniert dies bei der Textkategorisierung [Joachims 1998; McCallum und Nigam 1998], wobei in Texten lediglich nach bestimmten Wörtern gesucht wird und die Häufigkeit dieser Wörter berechnet wird, unabhängig von ihrer Position im Text. Nach welchen Wörtern gesucht wird, hängt von den Kategorien ab. Die zu suchenden Wörter bilden das Wörterbuch. Bei Bildern werden Bildausschnitte gewählt und mit Musterbeispielen verglichen, die aufgrund der Historie Wörterbucheinträge heißen. Typischerweise werden äquidistante Bildausschnitte gewählt [Swain und Ballard 1991; Schiele und Crowley 2000] oder Bildausschnitte an interessanten Punkten [Lowe 2004]. Da mit dem BoW-Ansatz viele unterschiedliche Kategorien unterschieden werde können, ist es möglich, den Kontext der Szene zu analysieren (z.b. im Straßenverkehr [Ess u. a. 2009]). Schließlich legt das menschliche visuelle System sehr viel Wert auf kontextbasierte Informationen [Torralba 2003], wie Bild 3.3 zeigt. (a) Auto? (b) Fußgänger? Bild 3.3.: Auto oder Fußgänger? Die Bildpixel des Objekts unterscheiden sich in beiden Bilder nur darin, dass sie um 90 gedreht sind. (Quelle: [Torralba 2003]) 24 Frerk Saxen

25 3.2. Enge räumliche Beziehung der Merkmale 3.2. Enge räumliche Beziehung der Merkmale Globale Deskriptoren (HOG, Co-occurrence HOG (cohog), Histograms Of Flow and Appearance (HOF), Color Self Similarity (CSS), Local Binary Pattern (LBP)), wobei bei der Personenerkennung HOG [Dalal und Triggs 2005a] wohl zu den bekantesten zählt, weisen in der Regel sehr enge räumliche Beziehungen der Merkmale auf [Schiele 2010]. Um die Detektion zu verbessern, werden häufitg Kombinationen aus verschiedenen Deskriptoren verwendet [Walk u. a. 2010; Dollár u. a. 2009b; Wang u. a. 2009]. Auch Merkmale, die einzeln keine guten Klassifikationsergebnisse liefern, können in Kombination zu guten Ergebnissen führen [Dollár u. a. 2009a; Schwartz u. a. 2009; Wojek u. a. 2009]. Daneben gibt es Weiterentwicklungen von bestehenden Deskriptoren, je nachdem, um die Klassifikationsgüte und/oder die Klassifikationsgeschwindigkeit zu erhöhen [Watanabe u. a. 2009; Hiomoto und Miyamoto 2009]. So gibt es zu einigen Algorithmen schnelle Implementierungen, sowohl auf Graphics Processing Units (GPUs) [Lillywhite u. a. 2009; Bilgic u. a. 2010; Dalley 2009; Prisacariu und Reid 2009] als auch auf FPGAs [Kadota u. a. 2009; Hiromoto und Miyamoto 2009; Saxen 2010]. Außerdem gibt es Systeme, die GPUs und FPGAs verwenden [Bauer u. a. 2010] Flexible räumliche Beziehung der Merkmale In der dritten Kategorie sind die Merkmale in einer flexiblen räumlichen Beziehung (siehe Bild 3.2c). Dazu gehört z.b. das Implicit Shape Model (ISM)-Modell [Leibe u. a. 2004]. Der ISM-Algorithmus basiert auf der generalisierten Hough-Transformation [Hough 1962] und wird zur Segmentierung verwendet. Die Merkmale stehen in flexibler räumlichen Beziehung zueinander (siehe Bild 3.2). Der Algorithmus liefert bemerkenswerte Ergebnisse bei der Personenerkennung, ist zwar nicht besonders rechenintensiv, benötigt jedoch sehr viel Speicher [Leibe u. a. 2004] Klassifikation Zur Klassifikation gibt es eine Vielzahl an verschiedenen Algorithmen [Caruana und Niculescu- Mizil 2006; King u. a. 1995; Lecun u. a. 1995; Boser u. a. 1992; Geman und Bienenstock 1992; Breiman 1996; 2001]. Zur Personenerkennung haben sich nur wenige etabliert [Dollár u. a. 2009b; Walk u. a. 2010]. In Verbindung mit dem HOG-Algorithmus wird in der Regel eine Support Vector Machine verwendet [Schiele u. a. 2009]. Eine lineare SVM ist in der Berechnung schneller als eine nichtlineare SVM. Die Klassifikationsergebnisse sind jedoch schlechter [Dalal und Triggs 2005a]. Echtzeitfähige Implementierungen verwenden häufig lineare SVMs [Hiromoto und Miyamoto 2009], in manchen Fällen auch mehrere lineare SVMs in einer Kaskade [Ding u. a. 2009]. Dennoch gibt es schnelle Implementierungen von nichtlinearen SVMs [Berberich 2010; Irick u. a. 2008; Heim 2011]. Mit der Anzahl der Support Vektoren steigt die Komplexität der Klassifikation (siehe Abschnitt 2.2.3). Um schnelle Implementierungen nichtlinearer SVMs dennoch umsetzen zu können, gibt es verschiedene Ansätze. Es können durch Approximation der Trennungsfunktion Frerk Saxen 25

26 Kapitel 3. Stand der Technik Hilfsvektoren berechnet werden. Diese sind in der Anzahl geringer als die Support Vektoren und beschleunigen die Klassifikation um bis zu zehnmal [Burges 1996]. Eine Erweiterung des gleichen Ansatzes verspricht eine zwanzigfache Beschleunigung [Schölkopf und Smola 2002]. Jedoch hängt diese insbesondere von der Generalisierungsmöglichkeit der Trennungsfunktion sowie von der Wahl der Kernelfunktion ab. Für die RBF sind keine Werte bekannt. Eine Implementierung ist sehr komplex, die Berechnung ist sehr aufwändig und insbesondere abhängig von der Dimension des Merkmalsvektors. Ein wesentlich einfacherer Ansatz, ohne Approximation der Trennungsfunktion, eliminiert linear abhängige Support Vektoren und passt die Lagrange Multiplikatoren anschließend an [Downs u. a. 2001]. Gute Ergebnisse werden lediglich bei der linearen SVM erzielt (Reduktion der Support Vektoren zwischen 60% 90%), wodurch jedoch kein Geschwindigkeitsvorteil bei der Klassifikation entsteht. Für polynomische Kernel werden nur in wenigen Fällen gute Ergebnisse erzielt (0% 60%) und für die RBF werden kaum Support Vektoren verringert (0% 5%). Ein weiterer Ansatz eliminiert ausgewählte Support Vektoren und approximiert anschließend die Trennungsfunktion [Zhan und Shen 2005]. Zwar werden sehr gute Ergebnisse erzielt (von 2748 auf 825 Support Vektoren), die verschiedenen Kernelfunktionen werden jedoch nicht erwähnt. Eine Erweiterung des Approximationsansatzes ersetzt zwei benachbarte Support Vektoren durch einen Neuen [Nguyen und Ho 2005]. Dabei sind nicht mehr so viele Iterationen notwendig, die Implementierung des Algorithmus bleibt dennoch komplex. Die Ergebnisse dieser Methode sind vielversprechend. Mit der RBF können über 90 % der Support Vektoren eliminiert werden (von 5041 auf 246 Support Vektoren). Ein besonders interessanter Ansatz trainiert die SVM nicht mit dem kompletten Trainingsdatensatz, sondern wählt aus diesem rein zufällig eine bestimmte Menge aus und trainiert damit die SVM [Nishida und Kurita 2008]. Mit Hilfe des Random Sample Consensus (RANSAC) Algorithmus werden solange neue SVMs trainiert, bis der Testdatensatz hinreichend gut klassifiziert wird. RANSAC-SVM ist nicht besonders komplex und liefert für künstliche Trainings- und Testdatensätze bemerkenswerte Ergebnisse (RBF: von 1791 auf 135 Support Vektoren). Eine weitere, effektive Methode ist in [Liang 2010] beschrieben. Zunächst werden Support Vektoren geclustert und eine orthogonale Projektion durchgeführt, um so Support Vektoren zu finden, die durch andere Vektoren approximiert werden können. Im zweiten Schritt werden unnötige Support Vektoren eliminiert (Vektoren, dessen Distanz der orthogonalen Projektion zu den Clustern unterhalb eines Schwellwerts liegen). Der Algorithmus ist aufwändig, liefert jedoch sehr gute Ergebnisse (RBF: von 321 auf 91 Support Vektoren). 26 Frerk Saxen

27 4Kapitel 4. Systembeschreibung Eine echtzeitfähige Implementierung einer nichtlinearen SVM auf einem FPGA zur Klassifikation des HOG-Deskriptors für hochauflösende Eingangsbilder ist aufgrund der komplexen Berechnung und der vielen Support Vektoren sehr schwierig umzusetzen. Um die Komplexität der Berechnung zu reduzieren, ist in Abschnitt 4.1 ein Ansatz zur Vereinfachung der nicht linearen SVM (mit RBF als Kernelfunktion) erklärt. Zwar lassen sich dadurch ein paar Berechnungen sparen, dennoch bleibt die hohe Komplexität der nicht linearen SVM, die vor allem von der Anzahl der Support Vektoren abhängt. Abschnitt 4.2 beschreibt Algorithmen zur Reduktion der Support Vektoren. Trotz der mathematischen Vereinfachung der RBF und der Support Vektor Reduktion bleibt die nicht lineare SVM zu komplex für die echtzeitfähige Implementierung für hochauflösende Eingangsbilder. Hingegen lässt sich die lineare SVM echtzeitfähig implementieren (siehe Abschnitt 4.3), wobei ein Teil der Berechnung von der Central Processing Unit (CPU) übernommen wird Vereinfachen der RBF Die RBF liefert bei der Klassifikation von Fußgängern erheblich bessere Ergebnisse als die lineare SVM [Dalal und Triggs 2005a]. Die RBF ist jedoch wesentlich rechenaufwändiger. Setzt man die RBF in Gleichung (2.81) ein, erhält man (ohne die Signumfunktion): N f(x n ) = b + α m y m e γ xm xn 2 (4.1) m=1 Werden zum Trainieren der SVM sehr viele Trainingsdaten verwendet, ist die Anzahl der Support Vektoren in der Regel sehr hoch (natürlich hängt die Anzahl auch von den Trainingsparametern ab). Die meiste Rechenzeit fällt bei der Summierung über alle Support Vektoren an, ein Ansatz zur Reduktion ist in Abschnitt 4.2 beschrieben. Dennoch sind die Merkmalsvektoren hochdimensional, womit auch einfache Vektorsubtraktionen (x m x n ) zeitintensiv sind. Außerdem ist die Berechnung der natürlichen Exponentialfunktion notwendig, was auch auf FPGAs aufwändig ist. Die Vereinfachung der RBF hat zum Ziel, einen auf FPGAs umsetzbaren Algorithmus zu schaffen. Sie dient damit als Basis für zukünftige Implementierungen. Frerk Saxen 27

28 Kapitel 4. Systembeschreibung Das Ausmultiplizieren von x m x n 2 führt zu: N f(x n ) = b + α m y m e γ xt m xm e 2γ xt m xn e γ xt n x n (4.2) m=1 Der letzte Term e γ xt n x n ist von m unabhängig und wird vor die Summe gezogen. Der Lagrange-Multiplikator α m wird mit e γ xt m x m zu einer Konstante k m zusammengefasst, da das Skalarprodukt der Support Vektoren xm T x m konstant ist und vor der Klassifikation berechnet werden kann. Mit der Rechenregel a b c = Mit k m = α m e γ xt m xm folgt (4.3) N f(x n ) = b + e γ xt n xn y m k m e 2γ xt m xn (4.4) m=1 ( a b) c wird γ ausgeklammert. N f(x n ) = b + (e γ ) xt n xn y m k m (e γ ) 2 xt m xn (4.5) m=1 Der Term e γ kann nun durch a r ersetzt werden, wobei r = log a (e γ ). Außerdem kann die positive Konstante k m durch a ψm ersetzt werden, mit ψ m = log a (k m ). Somit steht eine beliebige positive Basis a zur Verfügung. Mit a ψm = k m und a r = e γ folgt (4.6) N f(x n ) = b + a r xt n xn y m a ψm a 2 r xt m xn (4.7) Der Merkmalsvektor x n setzt sich aus normieten Zellhistogrammen zusammen (sofern der HOG- Algorithmus verwendet wird). Die Zellhistogramme werden in Blöcken normiert, wobei es verschiedene Normierungsverfahren gibt. Wird die L2-Normierung verwendet, lässt sich das Skalarprodukt xn T x n vereinfachen. Bei der L2-Normierung werden alle Blöcke einzeln normiert und anschließend zum Deskriptor x n konkateniert. Für jeden Block o berechnet sich die Normierung der Zellhistogramme v folgendermaßen: v o = (4.8) v ɛ m=1 Da x n aus einfacher Konkatination der normierten Vektoren o entsteht, führt das Skalarprodukt x T n x n für jeden einzelnen Block zu: o T o = o T o = v v T v (4.9) 2 2 v + ɛ ɛ vt v v ɛ (4.10) o T v 2 2 o = v 2 2 o T o = ɛ v 2 2 ( 1 + ɛ v 2 2 ) (4.11) (4.12) 28 Frerk Saxen

29 4.1. Vereinfachen der RBF Die Konstante ɛ ist gegenüber v 2 2 sehr klein, sodass die Approximation o T o 1 (4.13) getroffen wird. Somit beträgt das Skalarprodukt x T n x n = B, wobei B die Anzahl der Blöcke im Deskriptor bezeichnet. Für andere Normierungsverfahren (L1, L1-Sqrt) gilt diese Rechnung jedoch nicht. Da die L2-Normierung für den HOG-Algorithmus gute Ergebnisse liefert [Dalal und Triggs 2005a], kann Gleichung (4.7) vereinfacht werden: N f(x n ) = b + a r B y m a ψm+2 r xt m xn (4.14) m=1 Mit ˆx m T = 2 r xm T folgt (4.15) N f(x n ) = b + a r B y m a ψm+ˆxt m xn (4.16) m=1 Der Offset b lässt sich zur Vereinfachung als Potenz b = y 0 a β darstellen, wobei y 0 { 1; +1} das Vorzeichen bestimmt und durch Berechnung von y 0 = sgn (b) ermittelt wird. Das Vorzeichen y 0 ist notwendig, da a β immer positiv ist, der Offset b jedoch auch negativ sein kann. N f(x n ) = y 0 a β + a r B y m a ψm+ˆxt m xn (4.17) m=1 Zur Klassifikation wird die Signumfunktion verwendet, die auch bei der Vereinfachung der RBF weiterhilft. F (x n ) = sgn (f(x n )) (4.18) ( ) N F (x n ) = sgn y 0 a β + a r B y m a ψm+ˆxt m x n (4.19) F (x n ) = sgn F (x n ) = sgn (a r B ( (a r B ( y 0 m=1 a β N a r B + y 0 a β+r B + )) y m a ψm+ˆxt m xn m=1 )) N y m a ψm+ˆxt m x n Da a r B positiv ist, kann der Term aus der Signumfunktion eliminiert werden: ( ) N F (x n ) = sgn y 0 a β+r B + y m a ψm+ˆxt m x n m=1 m=1 (4.20) (4.21) (4.22) Mit Θ = β + r B folgt (4.23) ( ) N F (x n ) = sgn y 0 a Θ + y m a ψm+ˆxt m xn (4.24) m=1 Leicht umgeformt, stellt folgende Bedingung das Klassifikationsproblem dar, wobei P S die Indizes der Support Vektoren bezeichnet, für die y p = 1 gilt und V S die Indizes bezeichnet, für die y v = 1 gilt. S bezeichnet die Indizes aller Support Vektoren. y 0 a Θ + a ψp+ˆxt p xn > a ψv+ˆxt v xn (4.25) p P v V Frerk Saxen 29

30 Kapitel 4. Systembeschreibung Die Vereinfachung der RBF in Gleichung (4.25) beinhaltet zwei Vorteile. Insgesamt ist die Berechnung der Differenz zwischen jedem Support Vektor x m und dem Merkmalsvektor x n nicht mehr notwendig, außerdem lässt sich die natürliche Exponentialfunktion durch eine beliebige positive Basis a ersetzen. Die Basis a kann nun so verwendet werden, dass eine einfache Implementierung möglich ist. Denkbar wäre z.b. die Basis a = 2, da hiermit das Potenzieren mit ganzen Zahlen für digitale Systeme sehr einfach wird. Jedoch ist nicht unbedingt davon auszugehen, dass ganze Zahlen im Exponenten stehen, sodass möglicherweise andere Basen einen größeren Vorteil versprechen Support Vektor Reduktion Die Rechenzeit einer nichtlinearen SVM is direkt proportional zu der Anzahl der Support Vektoren (siehe Gleichung (2.81)). Außerdem steigt die Gefahr der Überanpassung mit der Anzahl der Support Vektoren. Damit ist eine zu stark an die Trainingsdaten angepasste Trennebene gemeint (siehe Bild 4.1). Zwar werden die Trainingsdaten korrekt separiert, die spätere Anwendung verschlechtert sich jedoch. Mit einer großen Anzahl von Support Vektoren erhöht sich die Gefahr der Überanpassung [Burges 1996; Burges und Schölkopf 1997; Vapnik 1995; Osuna und Girosi 1999; Cristianini und Shawe-Taylor 2000; Zeng und wen Chen 2005]. Bild 4.1.: Beispiel einer Überanpassung. Im Gegensatz zum linken Bild separiert die stark gekrümmte Trennebene im rechten Bild die Trainingsdaten vollständig. Bei späterer Anwendung verschlechtert sich die Klassifikationsrate jedoch erheblich. Die Verringerung der Support Vektoren geht jedoch in der Regel auch mit einem Verlust in der Klassifikationsgüte einher. Lineare SVMs benötigen zur Klassifikation einen Gewichtsvektor (siehe Gleichung (2.71)), was bei nichtlinearen SVMs von der Berechnungskomplexität einem Support Vektor entspricht. Reduziert man die Support Vektoren so stark, dass das resultierende Klassifikationsergebnis schlechter ist als das lineare Klassifikationsergebnis, kann man genauso gut die lineare Klassifikation verwenden. Somit stellen lineare Klassifikationsergebnisse eine Grenze für die Reduktion der Support Vektoren dar. Nicht nur die Rechenzeit verkürzt sich und die Gefahr der Überanpassung wird reduziert, auch der benötigte Speicherplatz verringert sich. Das mag auf PCs kaum eine Rolle spielen, ist auf FPGAs jedoch ein wichtiger Faktor. 30 Frerk Saxen

31 4.2. Support Vektor Reduktion Abschnitt beschreibt den RANSAC-SVM Algorithmus von Nishida und Kurita [2008]. Abschnitt erklärt den RANSAC-SV Algorithmus, eine Modifikation des RANSAC-SVM Algorithmus. Abschnitt erläutert SortedVotes, einen neuen und effektiven Algorithmus zur Reduktion von Support Vektoren. In Abschnitt 5.2 sind die Ergebnisse dargestellt. Die Reduktionsrate ergibt sich aus dem Verhältnis der Anzahl von Support Vektoren vor und nach der Reduktion. Zur Evaluation der SVM dient die Klassifikationsrate C r. C r = T P + T N N mit T P = Anzahl richtig erkannter Positivbeispiele mit T N = Anzahl richtig erkannter Negativbeispiele mit N = Anzahl Beispiele (4.26) RANSAC-SVM Der RANSAC-SVM Algorithmus von Nishida und Kurita [2008] verwendet zur Reduktion der Support Vektoren den Trainingsdatensatz X, welcher aus Merkmalsvektoren x m und Klassenzugehörigkeiten y m besteht (siehe Abschnitt 2.2). X = {(x m, y m ) x m R P, y m { 1, 1}, m = 1... N} (4.27) L Untermengen des Datensatzes X werden erzeugt X l l = 1, 2,..., L, in dem zufällige Merkmalsvektoren (mit positiver wie negativer Klassenzugehörigkeit) ausgewählt werden. Je kleiner die gewählte Untermenge X l, desto größer die Reduktionsrate. Jede Untermenge X l wird verwendet, um eine Kernel-SVM zu trainieren. Dabei werden die optimalen SVM-Parameter (z.b. C und γ) gesucht. Für jede Untermenge X l existiert eine SVM mit optimalen Parametern. Diese SVMs werden evaluiert anhand des kompletten Trainingsdatensatzes X. Anschließend werden die Untermengen anhand der Klassifikationsraten sortiert. Aus zwei zufällig gewählten Untermengen (z.b. X 3 und X 8 ), wobei die Klassifikationraten der Auswahlwahrscheinlichkeiten entsprechen, werden zwei neue Untermengen gebildet (Xˆ3 und Xˆ8 ). Dies passiert, indem zufällig Elemente aus den zwei Untermengen ausgewählt werden (Xˆ3 X 3 X 8, Xˆ8 X 3 X 8, Xˆ3 Xˆ8 = ). Dabei werden solange neue Untermengen gebildet, bis keine alten Untermengen mehr existieren. Die neuen Untermengen bilden die Basis für die nächste Iteration. Mit jeder Untermenge wird wieder eine SVM trainiert (bei Variation der Parameter), wobei wieder neue Untermengen erzeugt werden. Die SVM mit der größten Klassifikationsrate bildet den endgültigen Klassifikator. Aus der Anzahl der Support Vektoren des endgültigen Klassifikators ergibt sich die Reduktionsrate RANSAC-SV Da die Anzahl der Iterationen des RANSAC-SVM Algorithmus aus [Nishida und Kurita 2008] deterministisch und völlig unabhängig von den Klassifikationsergebnissen sind, kann man nicht davon sprechen, dass der RANSAC Algorithmus verwendet wird, wie er von Fischler und Bolles [1981] beschrieben ist. Der RANSAC-SV Algorithmus verwendet hingegen den RANSAC Frerk Saxen 31

32 Kapitel 4. Systembeschreibung Algorithmus und wendet ihn, anstatt auf das komplette Trainingsdatensatz, auf die Support Vektoren an (siehe Bild 4.2). Dadurch verringert sich die Berechnungszeit, ohne dass sich die Klassifikationsergebnisse verschlechtern. Bild 4.2.: Das linke Bild illustriert das Ergebnis einer SVM nach dem Training mit dem kompletten Trainingsdatensatz. Support Vektoren sind weiß umrandet. Trainiert man nun eine neue SVM nur mit den Support Vektoren, erhält man, wie im mittleren Bild zu sehen, die gleiche Trennungsebene. das rechte Bild zeigt, dass viele Support Vektoren unnötig sind und somit eliminiert werden können, ohne dass sich die Trennungsebene stark verändert. Zunächst wird eine Kernel-SVM T 0 anhand des Trainingsdatensatzes X trainiert, wobei die optimalen SVM Parameter (z.b. C und γ) gesucht werden. Aus der SVM mit den optimalen Parametern werden die Support Vektoren ausgewählt. Sie bilden die Untermenge S X. In Abhängigkeit der gewünschten Reduktionsrate werden M Support Vektoren aus S zufällig ausgewählt, um eine Kernel-SVM T 1 zu trainieren. Dabei werden die optimalen Parameter der SVM T 0 verwendet. Die SVM T 1 wird nun anhand der Support Vektoren S validiert. Das zufällige Auswählen von M Support Vektoren aus S und anschließendes Trainieren wird solange wiederholt, bis eine SVM der geforderten Klassifikationsrate genügt (RANSAC-Theorie [Fischler und Bolles 1981]). Die einzelnen Schritte sind im Folgenden noch einmal kurz erklärt. Trainiere eine Kernel-SVM anhand des Trainingsdatensatzes X und suche die optimalen SVM Parameter. Um die SVM Parameter möglichst schnell zu finden, kann eine representative Untermenge des Trainingsdatensatzes X verwendet werden. Trainiere eine Kernel-SVM T 0 anhand des Trainingsdatensatzes X mit den optimalen SVM Parametern. Die Support Vektoren und die Klassenzugehörigkeiten bilden die Untermenge S X. Wähle eine gewünschte Anzahl M von Support Vektoren. Je geringer M, desto größter die Reduktionsrate. Gebe einen initialen Wert für die Anzahl der Iterationen I vor. Setzte i = 0. Solange i < I 1. Wähle zufällig M Merkmalsvektoren und korrespondierende Klassenzugehörigkeiten aus der Menge S aus und trainiere eine Kernel-SVM T 1 (unter Verwendung der optimalen Parametern von T 0 ). 32 Frerk Saxen

33 4.2. Support Vektor Reduktion 2. Evaluiere die Kernel-SVM anhand der Menge S und berechne die Klassifikationsrate. 3. Justiere die Anzahl der Iterationen I in Abhängigkeit der Klassifikationsrate (RANSAC- Theorie). 4. i = i + 1 Verwende die SVM mit der größten Klassifikationsrate. Das Verhältnis zwischen der Anzahl der Support Vektoren dieser SVM und der von T 0 ergibt die Reduktionsrate SortedVotes Ähnlich zum RANSAC-SV Algorithmus wird zunächst eine Kernel-SVM T 0 trainiert, wobei die optimalen Parameter gesucht werden. Die N S Support Vektoren dieser SVM bilden die Menge S, welche eine Untermenge des Trainingsdatensatzes X entspricht. Die Anordnung der Support Vektoren in S ist beliebig. Im ersten Schritt werden die ersten M Elemente aus S ausgewählt, um eine kernel-svm zu trainieren (mit den Parametern von T 0 ). M ist umgekehrt proportional zur gewünschten Reduktionsrate. Die SVM T 1 wird anhand der Menge S evaluiert. Die ausgewählten Elemente (die ersten M Elemente aus S) werden mit der Klassifikationsrate gewichtet (engl. voted). Anschließend werden die nächsten M Elemente (Schrittweite = M) ausgewählt, um die nächste Kernel-SVM T 2 zu trainieren und anhand der Klassifikationsrate zu gewichten. Je größer das Gewicht, desto wichtiger sind die ausgewählten Elemente für die Trennungsebene. Wenn das Ende der Menge S erreicht ist, wird sie anhand der Gewichte sortiert, sodass wichtige Elemente aufsteigen. Die nachfolgenden Schritte sind sehr ähnlich zum ersten. Lediglich die Schrittweise ändert sich. Im zweiten Schritt wird eine Schrittweite von M 2 verwendet, im dritten M 3 usw. Je mehr Schritte verwendet werden, desto besser werden die Klassifikationsraten und desto größer wird die Berechnungszeit. Mit fünf Schritten werden gute Klassifikationsraten erzielt, bei akzeptabler Berechnungszeit. Die einzelnen Schritte sind im Folgenden noch einmal kurz erklärt. Trainiere eine Kernel-SVM anhand des Trainingsdatensatzes X und suche die optimalen SVM Parameter. Um die SVM Parameter möglichst schnell zu finden, kann eine representative Untermenge des Trainingsdatensatzes X verwendet werden. Trainiere eine Kernel-SVM T 0 anhand des Trainingsdatensatzes X mit den optimalen SVM Parametern. Die Support Vektoren und die Klassenzugehörigkeiten bilden die Untermenge S X. Wähle eine gewünschte Anzahl M von Support Vektoren. Je geringer M, desto größter die Reduktionsrate. Initialisiere Gewichte v mit 0. Für l = 1 bis 5 Sortiere S gemäß Vektor v. Für P = 1 bis N S M mit Schrittweite M l 1. Wähle M Elemente aus S (von P bis P +M) aus und trainiere eine Kernel-SVM T (mit den Parametern aus T 0 ). Frerk Saxen 33

34 Kapitel 4. Systembeschreibung 2. Evaluiere T anhand S, indem die Klassifikationsrate berechnet wird. 3. Gewichte alle ausgewählten Elemente mit der Klassifikationsrate und speicher diese Gewichte in v. Verwende die SVM mit der größten Klassifikationsrate. Das Verhältnis zwischen der Anzahl der Support Vektoren dieser SVM und der von T 0 ergibt die Reduktionsrate SVM-Implementierung Die HOG-Implementierung von Saxen [2010] berechnet die Deskriptoren für Eingangsbilder beliebiger Größe. Um die Klassifikation durchzuführen, muss nun jeder Deskriptor x mit dem Gewichtsvektor w skalar multipliziert werden w T x (siehe Abschnitt 2.2). Nun liegen die HOG- Deskriptoren nicht einfach im Speicher hintereinander, sondern sind noch sehr verteilt. Wie in Abschnitt 2.1 erklärt, besteht der HOG-Deskriptor aus 105 Block-Deskriptoren (auch normierte Zellhistogramme genannt). Abschnitt erklärt, wie die Block-Deskriptoren im Speicher (Block RAM (BRAM)) des FPGAs liegen. Nun sind für die Klassifikation nicht alle HOG- Deskriptoren unbedingt notwendig, in der Praxis reicht es in der Regel, nur jeden achten HOG- Deskriptor zu klassifizieren. Das bedeutet, dass nur für jedes achte Klassifikationsfenster (siehe Abschnitt 2.1) der HOG-Deskriptor berechnet wird. Das gilt nicht nur in horizontaler, sondern auch in vertikaler Richtung, sodass insgesamt die Anzahl der HOG-Deskriptoren um den Faktor 64 sinkt. Das wirkt sich natürlich auch auf die Block-Deskriptoren aus, die den HOG-Deskriptor bilden. Die Speicherplatzreduktion ist in Abschnitt beschrieben. Dadurch ließe sich nun der HOG-Deskriptor erzeugen, um die Klassifikation durchzuführen. Dennoch bliebe der benötigte Speicher enorm hoch. Das Skalarprodukt w T x besteht bekanntlich aus einer elementweisen Multiplikation w x und der anschließenden Summation w x. Die Elementweise Multiplikation ist auf dem FPGA unkompliziert, lediglich die Summation ist (da der HOG-Deskriptor x nicht hintereinander liegt) problematisch. Aus diesem Grund wird die Multiplikation auf dem FPGA vorgenommen (siehe Abschnitt 4.3.3) und die Addition der CPU überlassen (siehe Abschnitt 4.3.4) Speicherung der Block-Deskriptoren Bild 4.3 zeigt, wie die Block-Deskriptoren im Speicher liegen. Wichtig ist, dass in jedem Takt neue Block-Deskriptoren generiert und in den Speicher geschrieben werden. Jeder Block-Deskriptor bestehen aus 36 Elementen. Um den HOG-Deskriptor für ein Detektionsfenster zu generieren, werden jedoch nicht nur benachtbarte Elemente benötigt, sondern jeweils jedes achte Element in horizontaler und vertikaler Richtung (siehe Bild 4.4). Genau genommen werden 7 Elemente in horizontaler und 15 Elemente in vertikaler Richtung benötigt, um den = 3780 dimensionalen HOG-Deskriptor pro Detektionsfenster zu erzeugen. Es müssten also 8 15 = 120 Zeilen gespeichert werden. Über 120 Zeilen sind in jedem Takt 36 Elemente á 10 Bit 1 zu speichern. Allein bei einem Bild sind das Bit 120 = kb. Der BRAM mit Kb wäre dafür nicht ausreichend [Xilinx 2009]. Der Double Data Rate SDRAM (DDR2-SDRAM) wäre zwar groß genug, 1 Jedes Element des Block-Deskriptors benötigt 10 Bit (siehe Abschnitt 5.3) 34 Frerk Saxen

35 4.3. SVM-Implementierung Bild 4.3.: Darstellung der Block-Deskriptoren im Speicher. Die 8 8 Zellen sind farbig dargestellt. Die Histogramme von vier Zellen werden konkateniert, normiert und abgespeichert. Sie bilden den Block-Deskriptor. Im nächsten Takt werden die um 1 Pixel verschobenen Zellhistogramme konkateniert, normiert und abgespeichert. da jedoch in jedem Takt Bit = 360 Bit abgespeichert werden müssen, wäre die Bandbreite völlig ausgereizt [Schmitt 2010]. Die Daten ließen sich zwar noch in den DDR2-SDRAM schreiben, zum Lesen wäre jedoch nicht mehr genügend Übertragungsbandbreite verfügbar. Schließlich müssen die Deskriptoren noch klassifiziert werden Reduktion des Speicherbedarfs Der Speicherbedarf ist auch in anderen Implementierungen problematisch [Dalley 2009; Prisacariu und Reid 2009; Weimer 2010], wobei dort Grafikkarten und nicht FPGAs zur Berechnung des HOG-Algorithmus Verwendung finden. In [Dalal und Triggs 2005a; Wojek u. a. 2008] wird vorgeschlagen, jedes achte Detektionsfenster zu verwenden (in horizontaler wie auch vertikaler Richtung), wodurch eine 64-fache Datenreduktion erzielt wird. Mit dieser Praxis lassen sich auch die Daten im FPGA reduzieren. So wären nicht mehr 120 Zeilen nötig, um das Detektionsfenster zu speichern, sondern 15. Das ergibt einen Speicherbedarf von Bit 15 = 528 Kb Bit und eine Übertragungsbandbreite von 8 8 = 5, 63 Bit, die durchschnittlich in jedem Takt übertragen werden müssen. Für ein Bild ist beides sowohl mit BRAM als auch mit DDR2-SDRAM realisierbar. Auch bei HD-Bildern ( ) ist die Verwendung von BRAM und DDR2-SDRAM möglich. Die rot schraffierte Fläche in Bild 4.4 kennzeichnet die Speicherplatzreduktion. Dass nur jedes achte Detektionsfenster klassifiziert wird, verschlechtert nicht unbedingt die Klassifikationsrate. Schließlich detektiert der HOG-Algorithmus an mehreren Positionen, die mit Hilfe von weiteren Algorithmen (z.b. Non-Maximum Suppression [Neubeck und Gool 2006]) fusioniert werden müssen. Frerk Saxen 35

36 Kapitel 4. Systembeschreibung Bild 4.4.: Darstellung der Speicherplatzreduktion und der Block-Deskriptoren. Die 8 8 Zellen sind farbig dargestellt. Die Histogramme von vier Zellen werden konkateniert, normiert und abgespeichert. Acht Takte später werden die um 8 Pixel verschobenen Zellhistogramme konkateniert, normiert und abgespeichert. In den folgenden 7 Zeilen werden keine Block-Deskriptoren benötigt. Die rot schraffierte Fläche kennzeichnet die Speicherplatzreduktion. 36 Frerk Saxen

37 4.3. SVM-Implementierung Hardwarearchitektur der linearen SVM Wie bereits einleitend beschrieben, besteht das Skalarprodukt w T x aus der elementweisen Multiplikation und der anschließenden Summation. Nun ist in jeder Speicherzelle, wie in Abschnitt beschrieben, ein Block-Deskriptor (bestehend aus 36 Werten). Um den HOG-Deskriptor zu erzeugen müsste man nun 7 Spalten und 15 Zeilen speichern (mit = 3780 Elementen). Bei der anschließenden Skalarmultiplikation würde zunächst das erste Element des Gewichtsvektors w mit dem ersten Element des HOG-Deskriptors x multipliziert. Anschließend das zweite Element des Gewichtsvektors mit dem zweiten Element des HOG-Deskriptors usw. Am Ende wäre eine Summe über alle 3780 Elemente notwendig. Das wäre sehr aufwändig und vor allem Speicherintensiv, schließlich müsste diese Berechnung für jedes Klassifikationsfenster durchgeführt werden. v Bild 4.5.: Verwendung der Block-Deskriptoren für verschiedene Detektionsfenster. Da Detektionsfenster überlappen, wird jeder Block-Deskriptor 15 7 = 105 mal zur Klassifikation herangezogen. Bild 4.5 zeigt, dass jeder Block-Deskriptor zur Klassifikation mehrfach herangezogen wird (genau 7 15 = 105 Mal), je nachdem wo sich das Klassifikationsfenster befindet. Für das orange Frerk Saxen 37

38 Kapitel 4. Systembeschreibung Klassifikationsfenster in Bild 4.5 wird der Block-Deskriptor v mit den ersten 36 Elementen des Gewichtsvektors w skalar multipliziert ( v w ). Für das grüne Klassifikationsfenster wird v mit den letzten 36 Elementen des Gewichtsvektors w skalar multipliziert ( v w ). Da man weiß, dass jeder Block-Deskriptor 105 Mal verwendet wird, kann man diese Teil- Skalarprodukte bereits durchführen, sobald der erste Block-Deskriptor berechnet wurde. Im Anschluss ist also nur noch die letzte Summation von 105 Teil-Skalarprodukten notwendig. Diese Summation wird von der CPU übernommen. Bild 4.6 zeigt, wie die Teilskalarprodukte nach der Übertragung via Peripheral Component Interconnect Express (PCIe) im RAM des PCs liegen. Dieses Ausgangsbild ist 105 Mal breiter als die verwendeten Block-Deskriptoren. Da nur jeder 8 Block-Deskriptor in horizontaler und vertikaler berechnet wird, ist das Ausgangsbild insgesamt Mal breiter und 8 Mal niedriger als das ursprüngliche Eingangsbild. V1,1 V1,2 V1,3 V1,4 V2,1 V2,2 V2,3 V2,4 V3,1 V3,2 V3,3 V3,4 V4,1 V4,2 V4,3 V4,4 V1,1*w1..36 V1,1*w V1,1*w V1,2*w V1,2*w V1,3*w V1,3*w V2,1*w V2,1*w V2,2*w V2,2*w V2,3*w V2,3*w V3,1*w V3,1*w V3,2*w V3,2*w V3,3*w V3,3*w V4,1*w V4,1*w V4,2*w V4,2*w V4,3*w V4,3*w Bild 4.6.: Berechnung der Teil-Skalarprodukte auf dem FPGA. Das obere Bild zeigt ein paar Block- Deskriptoren. Das untere Bild zeigt, wie die berechneten Teil-Skalarprodukte im Speicher liegen. Es ist 105 Mal breiter als die verwendeten Block-Deskriptoren. Bild 4.7 zeigt die Hardwarearchitektur der SVM. Um echtzeitfähig zu bleiben, muss (wie in Abschnitt beschrieben) alle 64 Takte ein neuer Block-Deskriptor verarbeitet werden. Die SVM-Architektur benötigt jedoch 105 Takte und arbeitet deswegen mit einer höheren Frequenz (mind = 1, 65 Mal höher). Nach der Berechnung der Teil-Skalarprodukte werden die Daten via PCIe vom FPGA zum PC übertragen. Die Teilskalarprodukte liegen dann im RAM des PCs Addition der Teil-Skalarprodukte mit Hilfe der CPU Um die Klassifikation abzuschließen, werden pro Klassifikationsfenster 105 Teil-Skalarprodukte zusammenaddiert. Für das obere linke Klassifikationsfenster (siehe Bild 4.6) wird folgende Summe gebildet: (v 1,1 w ) + (v 1,2 w ) (v 1,7 w ) + (v 2,1 w ) (v 15,7 w ) (4.28) 38 Frerk Saxen

39 4.3. SVM-Implementierung Eingangsbild I HOG Block-Deskriptor v Gewichtsvektor (ROM) FIFO Gewichtsvektorele ment Block-Deskriptor v Block-Deskriptor- Element v1 & Gewichtsvektorel ement FSM Block-Deskriptor- Element v36 & Gewichtsvektorel ement * (1)... (2..35) * (36) Block-Deskriptor- Element v1 * Gewichtsvektorel ement Addiererbaum Block-Deskriptor- Element v36 * Gewichtsvektorel ement Teil-Skalarprodukt Bild 4.7.: Hardwarearchitektur der SVM. Die Block-Deskriptoren werden zunächst in einer FIFO gespeichert. Eine FSM ließt einen Block-Deskriptor aus und jeweils 36 Elemente des Gewichtsvektors aus dem ROM und multipliziert mit 36 parallelen Multiplikatoren die Gewichtsvektorelemente mit dem Block-Deskriptor. Anschließend werden die Multiplikationsergebnisse aufsummiert. In den nächsten 104 Takten werden immer wieder die nächsten 36 Elemente des Gewichtsvektors ausgelesen, der Block-Deskriptor bleibt jedoch konstant. Erst nachdem alle 3780 Elemente des Gewichtsvektors verarbeitet wurden (nach 105 Takten) wird der nächste Block-Deskriptor aus der FIFO ausgelesen. Frerk Saxen 39

40 Kapitel 4. Systembeschreibung = Addi- Bei einem hochauflösendem Eingangsbild werden 1920 tionen von der CPU durchgeführt Frerk Saxen

41 5Kapitel 5. Ergebnisse Klassifikationsergebnisse können mit Hilfe der Hard Examples Methode verbessert werden. Abschnitt 5.1 zeigt die Ergebnisse für die INRIA-Datenbank. Die drei vorgestellten Algorithmen aus Abschnitt 4.2, zur Reduktion der Support Vektoren, werden in Abschnitt 5.2 evaluiert. Abschnitt 5.3 beschreibt, wieviele Bits für welche Berechnungsschritte bei der HOG- und SVM- Implementierung in VHDL notwendig sind. In Abschnitt 5.4 werden die benötigten Ressourcen sowie die Latenzzeiten der Hardwareimplementierung aufgezeigt. Abschnitt 5.5 zeigt die Klassifikationsergebnisse der FPGA-Implementierung Hard Examples Mit der Hard Examples Methode (siehe Abschnitt 2.2.4) lassen sich die Klassifikationsergebnisse verbessern. Bild 5.1 zeigt die Recall Precision Curves (RPCs) für eine SVM mit RBF, die jedoch nur mit einem Teil der INRIA-Datenbank [Dalal und Triggs 2005b] trainiert wurde. Bild 5.2 zeigt die RPCs für eine SVM mit RBF, die mit der kompletten INRIA-Datenbank trainiert wurde Support Vektor Reduktion Der RANSAC-SVM, RANSAC-SV und SortedVotes Algorithmus wird mit zwei Datenbanken evaluiert, der INRIA Datenbank zur Personenerkennung [Dalal und Triggs 2005b] und der MNIST Datenbank zur Zeichenerkennung [LeCun und Cortes]. Die SVMs werden mit der SVM light trainiert [Joachims 1999]. Frerk Saxen 41

42 Kapitel 5. Ergebnisse (a) Trainierte SVM - RPC Fläche: (b) Hard Examples - RPC Fläche: Bild 5.1.: RPCs für eine SVM mit RBF für einen Teil der INRIA-Datenbank precision (a) Trainierte SVM - RPC Fläche: (b) Hard Examples - RPC Fläche: Bild 5.2.: RPCs für eine SVM mit RBF für die komplette INRIA-Datenbank 42 Frerk Saxen

43 5.2. Support Vektor Reduktion Ergebnisse mit der INRIA Datenbank Die INRIA Datenbank, vorgestellt von Dalal und Triggs [2005a], ist eine zur Fußgängererkennung erstellte Datenbank und besteht aus Trainings- und 5656 Testbildern. Zur Merkmalsberechnung wird der HOG-Algorithmus verwendet, wobei die von Dalal und Triggs [2005a] vorgeschlagene Parametrierung eingesetzt wird. Die lineare SVM in 5.3 ist mit C = 0, trainiert und begrenzt die Klassifkationsrate zur Reduktion von Kernel-SVMs bei 98, 57 %. Es ist lediglich 0, 62 % schlechter als die originale RBF Kernel-SVM (C = 256 und γ = 0, ), mit einer Klassifikationsrate von 99, 19 % (2311 Support Vektoren). Der SortedVotes Algorithmus, der RANSAC-SV Algorithmus und der RANSAC-SVM Algorithmus erreichen die Klassifikationsrate der linearen SVM bei 394, 475 und 765 Support Vektoren. Damit sind die maximalen Reduktionsraten auf 83, 0 %, 79, 5 % und 66, 9 % festgelegt. Liang [2010] untersuchte zehn verschiedene Datenbanken und konnte durchschnittlich 45 % der Support Vektoren reduzieren, wodurch im Mittel ein Verlust in der Klassifikationsrate von 1.8 % entstand. Für die INRIA Datenbank wäre ein Verlust ab 0.62 % in der Klassifikationsrate nicht mehr tolerabel, schließlich ist ab dort die Verwendung der linearen SVM sinnvoller. Die Reduktion von Support Vektoren sollten daher lineare Klassifikationsergebnisse in Betracht gezogen werden. Die originale Kernel-SVM hat 2311 Support Vektoren. Ohne Verlust in der Klassifikationsrate zu erleiden, können für den RANSAC-SV und SortedVotes Algorithmus 7, 5 % bzw. 3, 9 % der Support Vektoren reduziert werden (2137 bzw Support Vektoren). Der RANSAC-SVM Algorithmus erreicht keine Reduktion der Support Vektoren ohne Verlust in der Klassifikationsrate Classification rate Classification rate RANSAC SVM RANSAC SV SortedVotes Lower bound Nr of SVs 0.96 RANSAC SVM RANSAC SV SortedVotes Lower bound Nr of SVs (a) INRIA-Datenbank (b) MNIST-Datenbank Bild 5.3.: Klassifikationsrate in Abhängigkeit von der Anzahl der Support Vektoren. (a) INRIA- Datenbank: Mit dem Trainingsdatensatz entstehen 2311 Support Vektoren bei einer Klassifikationsrate von 99, 19 %. Sie dient als Basis für die drei Reduktionsmethoden. (b) MNIST- Datenbank: Mit dem Trainingsdatensatz, geändert auf Zeichen drei und nicht Zeichen drei, entstehen 4649 Support Vektoren bei einer Klassifikationsrate von 99, 75 %. Frerk Saxen 43

44 Kapitel 5. Ergebnisse Ergebnisse mit der MNIST Datenbank Die MNIST Datenbank besteht aus handgeschriebenen Zahlen zwischen null und neun. Der Trainingsdatensatz beinhaltet Beispielbilder, der Testdatensatz Um nicht zehn verschiedene SVMs erzeugen zu müssen, wird aus dem Trainings- und Testdatensatz ein Zwei- Klassen-Problem generiert, wobei die Klasse drei und nicht drei erzeugt wird. Um den Deskriptor zu erzeugen, werden die Pixel im Bild zwischen [ 1, 1] skaliert und anschließend zu einem = 784 dimensionalen Vektor konkateniert. Die lineare SVM (siehe Bild 5.3) wird mit C = 6, trainiert und begrenzt die Klassifikationsrate zu 96, 14 % für die Reduktion von Support Vektoren. Die RBF Kernel-SVM (C = und γ = Müller) ist 3, 61 % besser als die lineare SVM und erreicht eine Klassifikationsrate von 99, 75 %. Der SortedVotes Algorithmus, der RANSAC-SV Algorithmus und der RANSAC-SVM Algorithmus erreichen die Klassifikationsrate der linearen SVM bei 97, 193 und 180 Support Vektoren und kennzeichnen damit maximal sinnvolle Reduktionsraten (97, 9 %, 95, 8 % und 96, 1 %). Die originale Kernel-SVM hat 4649 Support Vektoren. Ohne Verluste in der Klassifikation zu erleiden, können mit dem SortedVotes und dem RANSAC-SV 64, 9 % bzw. 9, 6 % der Support Vektoren reduziert werden (1631 bzw Support Vektoren). Auch hier erreicht der RANSAC- SVM Algorithmus die Klassifikationsrate der originalen SVM nie Genauigkeitsanalyse der Hardwareimplementierung von HOG und SVM Der HOG-Algorithmus und die SVM bestehen aus verschiedenen Berechnungsschritten. Die Genauigkeit der einzelnen Schritte beeinflusst die Klassifikation. Auf dem PC spielen diese Einflüsse häufig nur eine geringe Rolle, da in der Regel mit 64-Bit-Gleitkommazahlen gerechnet wird und Operationen (wie z.b. Divisionen) hinreichend genau sind [Wikipedia 2011]. Auf einem FPGA ist dies nicht der Fall. Jedes einzelne Bit wird in einem Register gespeichert. Je mehr Register für eine Operation verwendet werden, desto mehr Ressourcen werden benötigt. Das gilt natürlich auf für Operationen, wie z.b. Multiplikationen und Divisionen. Je komplexer die Operation, desto mehr Ressourcen werden benötigt. Für die Implementierung des HOG-Algorithmus und der SVM in VHDL sind die notwendigen Bits für die einzelnen Berechnungsschritte bedeutend. In den folgenden Abschnitten sind theoretische und praktische Genauigkeitsanalysen erklärt. Für die Genauigkeitsanalyse werden Eingangsbilder mit 8 Bit pro Pixel angenommen. Details des HOG-Algorithmus und der bereits bestehenden HOG-Implementierung sind in [Saxen 2010] erklärt. Der Ansatz der SVM-Implementierung ist in erklärt. Die Abschnitte beschreiben nicht die notwendigen Bits jedes Registers, sondern legen das Augenmerk auf wichtige Register, schließlich müssen häufig Werte über mehrere Zeilen gespeichert werden, was besonders viele Ressourcen benötigt. Um die Genauigkeitsanalyse durchzuführen, dient eine vergleichbare HOG- und SVM-Implementierung in Matlab. Zur Evaluation wird der Testdatensatz der INRIA Datenbank verwendet. Eine lineare SVM mit C = 0, dient für die Genauigkeitsanalyse als Referenz 44 Frerk Saxen

45 5.3. Genauigkeitsanalyse der Hardwareimplementierung von HOG und SVM und erzielt eine Klassifikationsrate von 98, 7977 %. Der Parameter C bleibt während der Genauigkeitsanalyse konstant. Zu beachten ist, dass die RBF Kernel-SVM für die INRIA Datenbank lediglich 0, 62 % besser ist in der Klassifikationsrate als die lineare SVM (siehe Abschnitt 5.2.1) Betragsberechnung Der Betrag bildet sich aus der Summe der quadrierten Gradienten (siehe Gleichung (5.1)). I 2 x + I 2 y (5.1) Die Gradienten I x und I y entstehen, indem das Eingangsbild I mit dem Ableitungsvektor [ ] [ T und mit dem Ableitungsvektor 1 0 1] gefaltet werden. Dabei können Werte zwischen 2 8 und +2 8 entstehen. Werden diese quadriert, entstehen Werte zwischen 0 und Werden die quadrierten Gradienten aufsummiert, ergeben sich Werte zwischen 0 und = 362, 04. Allein für den Wertebereich wären log 2 ( ) = 9 Bits notwendig. Um die Nachkommastellen abzubilden, wären weitere Bits notwendig. Der Versuch zeigt, dass Werte zwischen 0 und 360, 62 entstehen. Werden 9 Bits verwendet, ergeben sich trotz Abschneiden der Nachkommastellen keine schlechteren Klassifikationsergebnisse. Tabelle 5.1 zeigt den Einfluss der Quantisierung. Werden nur die oberen 8 Bits zur weiteren Berechnung herangezogen, bleibt die Klassifikationsrate konstant. Bei den oberen 7 Bits verschlechtert sie sich nur sehr leicht. Tabelle 5.1.: Einfluss der Betragsquantisierung für 9 bis 2 Bits. Die erste Spalte zeigt die Rechenoperation. Die zweite, die dadurch resultierenden Bits. Die dritte Spalte zeigt die Veränderung der Klassifikationsrate Rechenoperation Betragsbits Veränderung der Klassifikationsrate Ix 2 + Iy 2 9 Bit ±0 % 2 1 Ix 2 + Iy 2 8 Bit ±0 % 2 2 Ix 2 + Iy 2 7 Bit 0, 0176 % 2 3 Ix 2 + Iy 2 6 Bit 0, 0884 % 2 4 Ix 2 + Iy 2 5 Bit 0, 12 % 2 5 Ix 2 + Iy 2 4 Bit 0, 42 % 2 6 Ix 2 + Iy 2 3 Bit 2, 03 % 2 7 Ix 2 + Iy 2 2 Bit 9, 64 % Histogrammberechnung Das Histogramm berechnet sich aus der Faltung von neun verschiedenen Betragsbilden mit einer quadratischen 8 8 Einser-Matrix. Das entspricht einer einfachen Aufsummierung von 64 Werten. Dabei können theoretisch 6 Überläufe entstehen, sodass man 6 weitere Bits für Frerk Saxen 45

46 Kapitel 5. Ergebnisse die Histogrammbildung reservieren müsste. Bei 9 verwendeten Betragsbits würden also 15 Bits zum Speichern der Histogrammwerte benötigt. Praktisch sind jedoch wesentlich weniger Bits notwendig. Werden 9 Bits für die Betragsrechnung verwendet, beträgt der maximal ermittelte Histogrammwert 9762, was 14 Bit entspricht. Da die meisten Histogrammwerte wesentlich kleiner sind, können auch die unteren 11 Bit verwendet werden, wobei ein Überlauf bei größeren Werten explizit in Kauf genommen wird. Tabelle 5.2 zeigt den Einfluss der Quantisierung für 11, 10 und 9 Bits, wobei darauf hingewiesen sei, dass sich bei 11 Bits die Klassifikationsrate sogar verbessert, wenn auch nur leicht. Für das Speichern von Histogrammwerten werden also nur zwei weitere Bits als bei der Betragsbildung benötigt. HistogrammBits = BetragBits + 2 (5.2) Tabelle 5.2.: Einfluss der Histogrammquantisierung Bei 9 Betragsbit für 11, 10 und 9 Histogrammbits. Die erste Spalte zeigt die Anzahl der verwendeten Bits, wobei jeweils die unteren Bits verwendet werden. Die zweite Spalte zeigt die Veränderung der Klassifikationsrate Histogrammbits Veränderung der Klassifikationsrate 11 Bit +0, 0177 % 10 Bit 0, 11 % 9 Bit 0, 44 % Normierung Die Normierung besteht darin, einen 36 Element breiten Vektor durch seine euklidische Norm zu teilen (siehe Gleichung (5.3)). Die Konstante ɛ beträgt in allen Versuchen 5. v v ɛ + (5.3) 36 i=1 v(i)2 Jedes Element des Vektors v ist ein Histogrammwert. Werden 9 Betragsbits verwendet, resultieren daraus 11 Histogrammbits. Durch das Quadrieren (v(i) 2 ) werden 22 Bits benötigt, durch das Aufsummieren weitere 6 Bits, also 28 Bits. Wegen der Wurzel halbiert sich die Zahl zu 14 Bits. Für den Nenner werden demnach 14 Bits benötigt. Durch die Division entstehen zum einen sehr kleine, aber auch sehr große Werte. Da ɛ existiert, können nicht unendlich kleine und unendlich große Werte entstehen, dennoch liegt der theoretische Wertebereich zwischen 2 14 und Es wären also mindestens 25 Bits notwendig. Der maximale Wert des Nenners erreicht im Versuch 7027, 2, wofür 13 Bit notwendig wären. Das sind zwei mehr als die verwendeten Histogrammbits. Verwendet man jedoch nur die unteren 12 Bits, ändert sich die Klassifikationsrate um 1, 79 %. Für den Nenner sind demnach zwei Bits mehr als Histogrammbits notwendig. N ormierungn ennerbits = HistogrammBits + 2 (5.4) Bei der Division entstehen sehr kleine, sowie sehr große Zahlen. Der Wertebereich liegt zwischen Bit und Bit. Um den kompletten Wertebereich abzudecken, wären 46 Frerk Saxen

47 5.3. Genauigkeitsanalyse der Hardwareimplementierung von HOG und SVM = 23 Bits notwendig. Da jedoch 99, 9 % der Werte zwischen 0 und 1 liegen, reicht es, zunächst mit 2 12 zu multiplizieren und anschließend die unteren 12 Bits zu verwenden. Tabelle 5.3 zeigt, dass die Klassifikationsrate dadurch nicht beeinflusst wird. Im Versuch wurde jeweils mit 2 12 multipliziert und anschließend die unteren 10, 12, 18 und 23 Bits verwendet. Die positive Veränderung der Klassifikationsrate um 0, 0177 % bei 12, 18 und 23 wird bereits bei der Histogrammquantisierung erreicht (siehe Tabelle 5.2). Die Anzahl der verwendeten Bits für die Normierung beträgt also ein Bit mehr als die Anzahl der verwendeten Bits für das Histogramm. Aus der Normierung werden die Diskriptoren generiert, wordurch sich die Anzahl der Bits natürlich nicht ändert. DeskriptorBits = HistogrammBits + 1 (5.5) Tabelle 5.3.: Quantisierungseinfluss der Normierung auf die Klassifikationsrate bei 9 Betragsbits und 11 Histogrammbits. Für alle vier Versuche wird zunächst mit 2 12 multipliziert und anschließend die unteren 10, 12, 18 und 23 Deskriptorbits verwendet. Deskriptorbits Veränderung der Klassifikationsrate 10 Bit 0, 32 % 12 Bit +0, 0177 % 18 Bit +0, 0177 % 23 Bit +0, 0177 % HOG Insgesamt In den vorhergehenden Abschnitten ist der Einfluss der einzelnen Rechenschritte auf die Genauigkeit dargestellt. Da die Anzahl der Deskriptorbits von den Histogrammbits abhängig sind und diese wiederum von den Betragsbits abhängen, ist der Einfluss verschiedener Betragsbits mit den resultierenden Histogramm- und Deskriptorbits interessant. Tabelle 5.4 zeigt den Einfluss verschiedener Betragsbits auf die Klassifikation. Selbst bei 7 Bit ist die Veränderung noch sehr gering. Jedoch bei 6 Bit ist eine deutliche Verschlechterung messbar. Tabelle 5.4.: Quantisierungseinfluss auf den HOG-Algorithmus. Betragsbits Histogrammbits Deskriptorbits Veränderung der Klassifikationsrate 9 Bit 11 Bit 12 Bit +0, 0177 % 8 Bit 10 Bit 11 Bit 0, 0176 % 7 Bit 9 Bit 10 Bit 0, 0353 % 6 Bit 8 Bit 9 Bit 0, 16 % SVM Der Gewichtsvektor w der SVM ist für die Klassifikation notwendig und muss auf dem FPGA gespeichert werden. Er berechnet sich aus den Klassenzugehörigkeiten, Lagrange-Multiplikatoren Frerk Saxen 47

48 Kapitel 5. Ergebnisse und den Support Vektoren. N w = α m y m x m (5.6) m=1 ( ) sgn (f(x)) = sgn w T x + b (5.7) Je weniger Bits für das Speichern des vorzeichenbehafteten Gewichtsvektors notwendig sind, desto besser. Für die HOG-Implementierung mit 7 Betragsbits ergibt sich für den Gewichtsvektor einen Durchschnittswert von % der Werte liegen dabei zwischen 314, 53 und 313, 34. Dafür wären 9 Bits plus Vorzeichenbit notwendig (sofern abgerundet werden darf). Es genügen sogar nur 4 Bits plus Vorzeichenbit, wie Tabelle 5.5 zeigt. Die Veränderung der Klassifikationsrate um 0, 0353 % ist auf den Quantisierungseinfluss auf den HOG-Algorithmus zurückzuführen (siehe Tabelle 5.4). Besonders erstaunlich ist, dass eine Reduktion durchaus zu besseren Klassifikationsraten führen kann. Tabelle 5.5.: Veränderung der Klassifikationsrate bei Quantisierung des Gewichtsvektors. Es werden 7 Betragsbits verwendet, wodurch sich 10 Deskriptorbits ergeben. In allen Versuchen werden die oberen 9, 7, 5, 4 und 3 Gewichtsvektorbits verwendet. Gewichtsvektorbits (ohne Vorzeichenbit) Veränderung der Klassifikationsrate 9 Bit 0, 0353 % 7 Bit 0, 0353 % 5 Bit 0, 0176 % 4 Bit ±0 % 3 Bit 0, 32 % Für den Ansatz in Abschnitt ist eine partielle Summe notwendig. 36 i=1 x(i) w(i) (5.8) Der Deskriptor x benötigt 10 Bits, der Gewichtsvektor w 4 Bits + Vorzeichenbit. Nach der Multiplikation werden demnach 14 Bit plus Vorzeichenbit benötigt. Da durch die Summe 6 Überläufe entstehen können, wären also 20 Bits plus Vorzeichenbit notwendig. Der Versuch zeigt, dass lediglich die unteren 15 Bits plus Vorzeichenbit notwendig sind, ohne Verluste in der Klassifikation zu erleiden. Tabelle 5.6.: Veränderung der Klassifikationsrate bei Quantisierung der partiellen Summe. In allen Versuchen werden die unteren 15, 14 und 13 Bits verwendet. Bit-Anzahl (ohne Vorzeichenbit) Veränderung der Klassifikationsrate 15 Bit ±0 % 14 Bit 0, 0884 % 13 Bit 0, 27 % 48 Frerk Saxen

49 5.4. Ressourcenübersicht und Berechnungszeit der FPGA-Implementierung 5.4. Ressourcenübersicht und Berechnungszeit der FPGA- Implementierung Tabelle 5.7 zeigt den Ressourcenverbrauch der HOG-Implementierung zur Berechnung der HOG-Deskriptoren für High Definition (HD)-Videos. Für die komplexe Berechnung werden ca. 11% der verfügbaren Ressourcen benötigt. Sollten in Zukunft mehrere Skalierungsstufen klassifiziert werden, müsste die HOG- und SVM- Implementierung mehrmals instanziiert werden. Dafür sind auch noch genügend Ressourcen vorhanden. Tabelle 5.7.: Ressourcenverbrauch der HOG-Implementierung für einen Xilinx Virtex 5 FPGA (xc5vfx200t) Resourcentyp Verfügbar Verwendet Slice Register (11 %) Slice LUTs (7 %) BRAM (36 Kb) (11 %) DSPs (25 18) (11 %) Tabelle 5.8 stellt den Ressourcenverbrauch der SVM-Implementierung dar. Da lediglich, wie in Abschnitt 4.3 beschrieben, 36 parallele Multiplikationen durchgeführt werden sowie ein paar Additionen, werden kaum Ressourcen benötigt. Tabelle 5.8.: Ressourcenverbrauch der SVM-Implementierung für einen Xilinx Virtex 5 FPGA (xc5vfx200t) Resourcentyp Verfügbar Verwendet Slice Register (0 %) Slice LUTs (0 %) BRAM (36 Kb) (0 %) DSPs (25 18) (9 %) Der Ressourcenverbrauch der kompletten Implementierung ist in Tabelle 5.9 dargestellt. Das Groß der zusätzlichen Ressourcen wird vom PCIe-Core benötigt, der die SVM-Ergebnisse via PCIe zum PC überträgt. Tabelle 5.9.: Ressourcenverbrauch der HOG- und SVM-Implementierung mit PCIe-Core für einen Xilinx Virtex 5 FPGA (xc5vfx200t) Resourcentyp Verfügbar Verwendet Slice Register (18 %) Slice LUTs (16 %) BRAM (36 Kb) (16 %) DSPs (25 18) (21 %) Die Latenzzeiten der HOG- und SVM-Implementierung sind in Tabelle 5.10 angegeben. Die Latenzzeit gibt an, nach welcher Zeit die Berechnung des ersten Datums des Eingangsbildes am Ausgang erscheint (siehe Bild 5.4). Für die HOG-Implementierung z.b. ist es die Zeit, bis der erste Block-Deskriptor erzeugt wurde. Frerk Saxen 49

50 Kapitel 5. Ergebnisse Zeit t Eingang Ausgang Latenzzeit t LZ Bild 5.4.: Latenzzeit Da die Berechnungen (HOG und SVM) in Pipeline-Strukturen durchgeführt werden, hängt die Framerate vom Pixeltakt ab. Jedoch begrenzt auch der PCIe-Core die Framerate, da er die SVM-Ergebnisse zum PC senden muss, was wiederum Zeit benötigt. Bei einem HD-Video und einem Pixeltakt von 133 MHz können 66, 58 Bilder pro Sekunde via PCIe übertragen und von der CPU fertig klassifiziert werden. Dabei wird auch das Eingangsbild via PCIe zum FPGA übertragen, da keine vorhandene Bildquelle diese Anzahl an Bilder pro Sekunde liefert. Eine anderen Bildquelle würde den PCIe-Bus natürlich entlasten, wodurch eine noch höhere Framerate möglich wäre. Tabelle 5.10.: Latenzzeiten für HD-Bilder bei einem Pixeltakt von 133 Mhz Implementierung Latenzzeit t LZ HOG 65, 321 µs SVM 0, 031 µs Gesamt 65, 353 µs 5.5. Klassifikationsergebnisse Um die FPGA-Implementierung des HOG- und SVM-Algorithmus zu evaluieren, existiert eine äquivalente MATLAB-Implementierung der Algorithmen. Die Ergebnisse des HOG-Algorithmus sind identisch, lediglich die SVM-Implementierung liefert noch leicht abweichende Ergebnisse. Abschnitt vergleicht die äquivalente MATLAB-Implementierung mit der originalen IN- RIA HOG-Implementierung von Dalal und Triggs [2005a]. Abschnitt zeigt die Unterschiede der FPGA-Implementierung mit der äquivalenten MATLAB-Implementierung anhand von Beispielbildern. Anschließend werden in Bild 5.7 ein paar Klassifikationsbeispiele von HD-Bildern ( ) gezeigt Vergleich mit der originalen HOG-Implementierung Die FPGA-Implementierung des HOG-Algorithmus weicht vom originalen HOG-Algorithmus ab (siehe Abschnitt 2.1, [Saxen 2010] und [Dalal und Triggs 2005a]). Bild 5.5 zeigt die DET- Kurve der äquivalenten MATLAB-Implementierung und der originalen HOG-Implementierung, 50 Frerk Saxen

51 5.5. Klassifikationsergebnisse wobei diese anhand [Dalal und Triggs 2005a] und [Dalal 2006] in MATLAB implementiert wurde. Bei niedrigen False Positive Per Windows (FPPWs) sind die Klassifikationsergebnisse der FPGA-Implementierung schlechter als die originale HOG-Implementierung. Ab einem FPPW von 10 4 liefern sie vergleichbare Ergebnisse. 0.5 DET (detection error tradeoff) 0.2 miss rate Orignal HOG (reimplemented) FPGA HOG (our) FPPW Bild 5.5.: DET-Kurve der äquivalenten MATLAB-Implementierung (FPGA HOG) und der originalen HOG-Implementierung von Dalal und Triggs [2005a] Unterschiede der FPGA-Implementierung zu der äquivalenten MATLAB- Implementierung Die HOG-Implementierung auf dem FPGA erzeugt für das gleiche Eingangsbild die identischen Deskriptoren, wie die äquivalente MATLAB-Implementierung des HOG-Algorithmus. Bei der SVM sind die Werte leider nicht ganz identisch, was sich auch auf die Klassifikationsergebnisse auswirkt. Frerk Saxen 51

52 Kapitel 5. Ergebnisse (a) FPGA (Bias ) (b) MATLAB (Bias ) (c) FPGA (Bias ) (d) MATLAB (Bias ) 52 Frerk Saxen

53 5.5. Klassifikationsergebnisse (e) FPGA (Bias ) (f) MATLAB (Bias ) (g) FPGA (Bias ) (h) MATLAB (Bias ) Bild 5.6.: FPGA und MATLAB Ergebnisse für verschiedene Beispielbilder aus der INRIA-Datenbank [Dalal und Triggs 2005a]. Die meisten Klassifikationsfenster sind an der exakt gleichen Position, wenige an einer leicht verschobenen und manche nicht bzw. an einer ganz anderen Stelle vorhanden. Auch ist zu beachten, dass der Bias (Parameter bei der Klassifikation) sich zwischen FPGA- und MATLAB-Implementierung unterscheidet. Um die Klassifikation vergleichen zu können, werden die MATLAB-Bilder mit einem schwarzen Rand von 7 Pixel versehen. Das ist auf die FPGA-Implementierung des HOG-Algorithmus zurückzuführen, welcher in verschiedenen Modulen durch sogenanntes LinePadding automatisch einen 7 Pixel breiten Rand hinzufügt. Frerk Saxen 53

54 Kapitel 5. Ergebnisse (a) (b) 54 Frerk Saxen

Support Vector Machines (SVM)

Support Vector Machines (SVM) Universität Ulm 12. Juni 2007 Inhalt 1 2 3 Grundlegende Idee Der Kern-Trick 4 5 Multi-Klassen-Einteilung Vor- und Nachteile der SVM 1 2 3 Grundlegende Idee Der Kern-Trick 4 5 Multi-Klassen-Einteilung Vor-

Mehr

Optimal-trennende Hyperebenen und die Support Vector Machine. Volker Tresp

Optimal-trennende Hyperebenen und die Support Vector Machine. Volker Tresp Optimal-trennende Hyperebenen und die Support Vector Machine Volker Tresp 1 (Vapnik s) Optimal-trennende Hyperebenen (Optimal Separating Hyperplanes) Wir betrachten wieder einen linearen Klassifikator

Mehr

Mustererkennung. Support Vector Machines. R. Neubecker, WS 2018 / Support Vector Machines

Mustererkennung. Support Vector Machines. R. Neubecker, WS 2018 / Support Vector Machines Mustererkennung R. Neubecker, WS 018 / 019 (SVM) kommen aus der statistischen Lerntheorie gehören zu den optimalen Klassifikatoren = SVMs minimieren nicht nur den Trainingsfehler, sondern auch den (voraussichtlichen)

Mehr

Vorlesung Maschinelles Lernen

Vorlesung Maschinelles Lernen Vorlesung Maschinelles Lernen Stützvektormethode Katharina Morik LS 8 Informatik 8.11.2011 1 von 38 Gliederung 1 2 Lagrange-Optimierung 2 von 38 Übersicht über die Stützvektormethode (SVM) Eigenschaften

Mehr

Support Vector Machines, Kernels

Support Vector Machines, Kernels Support Vector Machines, Kernels Katja Kunze 13.01.04 19.03.2004 1 Inhalt: Grundlagen/Allgemeines Lineare Trennung/Separation - Maximum Margin Hyperplane - Soft Margin SVM Kernels Praktische Anwendungen

Mehr

Lineare Klassifikatoren. Volker Tresp

Lineare Klassifikatoren. Volker Tresp Lineare Klassifikatoren Volker Tresp 1 Einführung Lineare Klassifikatoren trennen Klassen durch eine lineare Hyperebene (genauer: affine Menge) In hochdimensionalen Problemen trennt schon eine lineare

Mehr

Neuronale Netze. Prof. Dr. Rudolf Kruse

Neuronale Netze. Prof. Dr. Rudolf Kruse Neuronale Netze Prof. Dr. Rudolf Kruse Computational Intelligence Institut für Intelligente Kooperierende Systeme Fakultät für Informatik rudolf.kruse@ovgu.de Rudolf Kruse Neuronale Netze 1 Überwachtes

Mehr

Ridge Regression und Kernalized Support Vector Machines : Einführung und Vergleich an einem Anwendungsbeispiel

Ridge Regression und Kernalized Support Vector Machines : Einführung und Vergleich an einem Anwendungsbeispiel Ridge Regression und Kernalized Support Vector Machines : Einführung und Vergleich an einem Anwendungsbeispiel Dr. Dominik Grimm Probelehrveranstaltung Fakultät für Informatik und Mathematik Hochschule

Mehr

Vorlesung Wissensentdeckung

Vorlesung Wissensentdeckung Vorlesung Wissensentdeckung Stützvektormethode Katharina Morik, Uwe Ligges 10.6.2010 1 von 40 Gliederung 1 Hinführungen zur SVM 2 Maximum Margin Methode Lagrange-Optimierung 3 Weich trennende SVM 2 von

Mehr

Vorlesung Maschinelles Lernen

Vorlesung Maschinelles Lernen Vorlesung Maschinelles Lernen Stützvektormethode Katharina Morik LS 8 Informatik Technische Universität Dortmund 12.11.2013 1 von 39 Gliederung 1 Hinführungen zur SVM 2 Maximum Margin Methode Lagrange-Optimierung

Mehr

Vorlesung Wissensentdeckung

Vorlesung Wissensentdeckung Gliederung Vorlesung Wissensentdeckung Stützvektormethode 1 Hinführungen zur SVM Katharina Morik, Claus Weihs 26.5.2009 2 Maximum Margin Methode Lagrange-Optimierung 3 Weich trennende SVM 1 von 40 2 von

Mehr

Funktionslernen. 5. Klassifikation. 5.6 Support Vector Maschines (SVM) Reale Beispiele. Beispiel: Funktionenlernen

Funktionslernen. 5. Klassifikation. 5.6 Support Vector Maschines (SVM) Reale Beispiele. Beispiel: Funktionenlernen 5. Klassifikation 5.6 Support Vector Maschines (SVM) übernommen von Stefan Rüping, Katharina Morik, Universität Dortmund Vorlesung Maschinelles Lernen und Data Mining, WS 2002/03 und Katharina Morik, Claus

Mehr

Einführung in Support Vector Machines (SVMs)

Einführung in Support Vector Machines (SVMs) Einführung in (SVM) Januar 31, 2011 Einführung in (SVMs) Table of contents Motivation Einführung in (SVMs) Outline Motivation Vektorrepräsentation Klassifikation Motivation Einführung in (SVMs) Vektorrepräsentation

Mehr

Linear nichtseparable Probleme

Linear nichtseparable Probleme Linear nichtseparable Probleme Mustererkennung und Klassifikation, Vorlesung No. 10 1 M. O. Franz 20.12.2007 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht

Mehr

Support Vector Machines (SVM)

Support Vector Machines (SVM) Seminar Statistische Lerntheorie und ihre Anwendungen Support Vector Machines (SVM) Jasmin Fischer 12. Juni 2007 Inhaltsverzeichnis Seite 1 Inhaltsverzeichnis 1 Grundlagen 2 2 Lineare Trennung 3 2.1 Aufstellung

Mehr

Nichtlineare Klassifikatoren

Nichtlineare Klassifikatoren Nichtlineare Klassifikatoren Mustererkennung und Klassifikation, Vorlesung No. 11 1 M. O. Franz 12.01.2008 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht

Mehr

Vorlesung Wissensentdeckung

Vorlesung Wissensentdeckung Vorlesung Wissensentdeckung Stützvektormethode Katharina Morik, Uwe Ligges 23.5.2013 1 von 48 Gliederung 1 Geometrie linearer Modelle: Hyperebenen Einführung von Schölkopf/Smola 2 Lagrange-Optimierung

Mehr

Wissensentdeckung in Datenbanken

Wissensentdeckung in Datenbanken Wissensentdeckung in Datenbanken Support Vector Machine Nico Piatkowski und Uwe Ligges 30.05.2017 1 von 14 Überblick Was bisher geschah... Modellklassen Verlustfunktionen Numerische Optimierung Regularisierung

Mehr

Mustererkennung. Übersicht. Unüberwachtes Lernen. (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren Gaussian-Mixture Modelle

Mustererkennung. Übersicht. Unüberwachtes Lernen. (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren Gaussian-Mixture Modelle Mustererkennung Unüberwachtes Lernen R. Neubecker, WS 01 / 01 Übersicht (Un-) Überwachtes Lernen Clustering im Allgemeinen k-means-verfahren 1 Lernen Überwachtes Lernen Zum Training des Klassifikators

Mehr

Pareto optimale lineare Klassifikation

Pareto optimale lineare Klassifikation Seminar aus Maschinellem Lernen Pareto optimale lineare Klassifikation Vesselina Poulkova Betreuer: Eneldo Loza Mencía Gliederung 1. Einleitung 2. Pareto optimale lineare Klassifizierer 3. Generelle Voraussetzung

Mehr

Überwachtes Lernen / Support Vector Machines. Rudolf Kruse Neuronale Netze 246

Überwachtes Lernen / Support Vector Machines. Rudolf Kruse Neuronale Netze 246 Überwachtes Lernen / Support Vector Machines Rudolf Kruse Neuronale Netze 246 Überwachtes Lernen, Diagnosesystem für Krankheiten Trainingsdaten: Expressionsprofile von Patienten mit bekannter Diagnose

Mehr

Vergleich von SVM und Regel- und Entscheidungsbaum-Lernern

Vergleich von SVM und Regel- und Entscheidungsbaum-Lernern Vergleich von SVM und Regel- und Entscheidungsbaum-Lernern Chahine Abid Bachelor Arbeit Betreuer: Prof. Johannes Fürnkranz Frederik Janssen 28. November 2013 Fachbereich Informatik Fachgebiet Knowledge

Mehr

5. Klassifikation. 5.6 Support Vector Maschines (SVM)

5. Klassifikation. 5.6 Support Vector Maschines (SVM) 5. Klassifikation 5.6 Support Vector Maschines (SVM) übernommen von Stefan Rüping, Katharina Morik, Universität Dortmund Vorlesung Maschinelles Lernen und Data Mining, WS 2002/03 und Katharina Morik, Claus

Mehr

Kamerabasierte Erkennung von Fußgängern in urbanen Verkehrsszenen

Kamerabasierte Erkennung von Fußgängern in urbanen Verkehrsszenen Kamerabasierte Erkennung von Fußgängern in urbanen Verkehrsszenen Vortragender: Studiengang: Betreuer: Yeyi Qiu Fahrzeugtechnik Prof. Dr. rer. nat. Toralf Trautmann M. Sc. Patrick Richter Seite 01 von

Mehr

Projektdokumentation Gesichtserkennung per Eigengesichtsanalyse

Projektdokumentation Gesichtserkennung per Eigengesichtsanalyse Hochschule RheinMain Master Informatik Digitale Bildanalyse bei Prof. Dr. U. Schwanecke Projektdokumentation Gesichtserkennung per Eigengesichtsanalyse von Florian Feuerstein (florian feuerstein@web.de)

Mehr

Hauptseminar Machine Learning: Support Vector Machines, Kernels. Katja Kunze

Hauptseminar Machine Learning: Support Vector Machines, Kernels. Katja Kunze Hauptseminar Machine Learning: Support Vector Machines, Kernels Katja Kunze 13.01.2004 Inhaltsverzeichnis 1 Einführung 2 1.1 Grundlagen............................ 2 2 Lineare Seperation 5 2.1 Maximum

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

Maschinelles Lernen Vorlesung

Maschinelles Lernen Vorlesung Maschinelles Lernen Vorlesung SVM Kernfunktionen, Regularisierung Katharina Morik 15.11.2011 1 von 39 Gliederung 1 Weich trennende SVM 2 Kernfunktionen 3 Bias und Varianz bei SVM 2 von 39 SVM mit Ausnahmen

Mehr

Unüberwachtes Lernen

Unüberwachtes Lernen Unüberwachtes Lernen Mustererkennung und Klassifikation, Vorlesung No. 12 M. O. Franz 17.01.2008 Übersicht 1 Hauptkomponentenanalyse 2 Nichtlineare Hauptkomponentenanalyse 3 K-Means-Clustering Übersicht

Mehr

Lineare Klassifikationsmethoden

Lineare Klassifikationsmethoden Verena Krieg Fakultät für Mathematik und Wirtschaftswissenschaften 08. Mai 2007 Inhaltsverzeichnis 1. Einführung 2. Lineare Regression 3. Lineare Diskriminanzanalyse 4. Logistische Regression 4.1 Berechnung

Mehr

Mathematische Werkzeuge R. Neubecker, WS 2016 / 2017

Mathematische Werkzeuge R. Neubecker, WS 2016 / 2017 Mustererkennung Mathematische Werkzeuge R. Neubecker, WS 2016 / 2017 Optimierung: Lagrange-Funktionen, Karush-Kuhn-Tucker-Bedingungen Optimierungsprobleme Optimierung Suche nach dem Maximum oder Minimum

Mehr

Parallele Algorithmen in der Bildverarbeitung

Parallele Algorithmen in der Bildverarbeitung Seminar über Algorithmen - SoSe 2009 Parallele Algorithmen in der Bildverarbeitung von Christopher Keiner 1 Allgemeines 1.1 Einleitung Parallele Algorithmen gewinnen immer stärker an Bedeutung. Es existieren

Mehr

Vorlesung Digitale Bildverarbeitung Sommersemester 2013

Vorlesung Digitale Bildverarbeitung Sommersemester 2013 Vorlesung Digitale Bildverarbeitung Sommersemester 2013 Sebastian Houben (Marc Schlipsing) Institut für Neuroinformatik Inhalt Crash-Course in Machine Learning Klassifikationsverfahren Grundsätzliches

Mehr

One-class Support Vector Machines

One-class Support Vector Machines One-class Support Vector Machines Seminar Wissensbasierte Systeme Dietrich Derksen 3. Januar 204 Motivation One-class Support Vector Machines: Detektion von Ausreißern (Systemfehlererkennung) Klassifikation

Mehr

Vorlesung Digitale Bildverarbeitung Sommersemester 2013

Vorlesung Digitale Bildverarbeitung Sommersemester 2013 Vorlesung Digitale Bildverarbeitung Sommersemester 2013 Sebastian Houben Institut für Neuroinformatik Sliding-Window Idee: Trainiere einen binären Klassifikator mit zwei Klassen von Bildausschnitten: dem

Mehr

VF-2: 2. Es seien x = 1 3 und y = π Bei der Berechnung von sin(x) sin(y) in M(10, 12, 99, 99) tritt. Auslöschung auf.

VF-2: 2. Es seien x = 1 3 und y = π Bei der Berechnung von sin(x) sin(y) in M(10, 12, 99, 99) tritt. Auslöschung auf. IGPM RWTH Aachen Verständnisfragen-Teil NumaMB H11 (24 Punkte) Es gibt zu jeder der 12 Aufgaben vier Teilaufgaben. Diese sind mit wahr bzw. falsch zu kennzeichnen (hinschreiben). Es müssen mindestens zwei

Mehr

1 Einleitung Definitionen, Begriffe Grundsätzliche Vorgehensweise... 3

1 Einleitung Definitionen, Begriffe Grundsätzliche Vorgehensweise... 3 Inhaltsverzeichnis 1 Einleitung 1 1.1 Definitionen, Begriffe........................... 1 1.2 Grundsätzliche Vorgehensweise.................... 3 2 Intuitive Klassifikation 6 2.1 Abstandsmessung zur Klassifikation..................

Mehr

5. Objekterkennung in Bildern und Videos Videoanalyse

5. Objekterkennung in Bildern und Videos Videoanalyse 5. Objekterkennung in Bildern und Videos Videoanalyse Stephan Kopf 1 Übersicht Motivation Anforderungen an Objekterkennungsalgorithmen Objekterkennung mittels Konturen Helligkeiten Farben Formen Objekterkennung

Mehr

Klassifikation und Ähnlichkeitssuche

Klassifikation und Ähnlichkeitssuche Klassifikation und Ähnlichkeitssuche Vorlesung XIII Allgemeines Ziel Rationale Zusammenfassung von Molekülen in Gruppen auf der Basis bestimmter Eigenschaften Auswahl von repräsentativen Molekülen Strukturell

Mehr

Distributed Algorithms. Image and Video Processing

Distributed Algorithms. Image and Video Processing Chapter 6 Optical Character Recognition Distributed Algorithms for Übersicht Motivation Texterkennung in Bildern und Videos 1. Erkennung von Textregionen/Textzeilen 2. Segmentierung einzelner Buchstaben

Mehr

6. Texterkennung in Videos Videoanalyse

6. Texterkennung in Videos Videoanalyse 6. Texterkennung in Videos Videoanalyse Dr. Stephan Kopf 1 Übersicht Motivation Texterkennung in Videos 1. Erkennung von Textregionen/Textzeilen 2. Segmentierung einzelner Buchstaben 3. Auswahl der Buchstabenpixel

Mehr

Machine Learning. ML Kapitel 7: Support Vector Machines. Prof. Dr. Johannes Maucher. Version November HdM CSM

Machine Learning. ML Kapitel 7: Support Vector Machines. Prof. Dr. Johannes Maucher. Version November HdM CSM Machine Learning Kapitel 7: Support Vector Machines HdM CSM Version 1.5 16. November 2017 Document History Version Date Changes Nr. 1.0 18.06.2009 1.1 14.06.2010 Eigene Beispiele hinzugefügt 1.2 16.05.2011

Mehr

Mathematische Werkzeuge R. Neubecker, WS 2018 / 2019 Optimierung Lagrange-Funktionen, Karush-Kuhn-Tucker-Bedingungen

Mathematische Werkzeuge R. Neubecker, WS 2018 / 2019 Optimierung Lagrange-Funktionen, Karush-Kuhn-Tucker-Bedingungen Mustererkennung Mathematische Werkzeuge R. Neubecker, WS 018 / 019 Optimierung Lagrange-Funktionen, Karush-Kuhn-Tucker-Bedingungen 1 Optimierung Optimierungsprobleme Suche nach dem Maximum oder Minimum

Mehr

Lineare Klassifikatoren

Lineare Klassifikatoren Lineare Klassifikatoren Mustererkennung und Klassifikation, Vorlesung No. 8 1 M. O. Franz 06.12.2007 1 falls nicht anders vermerkt, sind die Abbildungen entnommen aus Duda et al., 2001. Übersicht 1 Nächste-Nachbarn-

Mehr

9.5 Entscheidungsbäume

9.5 Entscheidungsbäume 9.5. ENTSCHEIDUNGSBÄUME 149 9.5 Entscheidungsbäume Wir betrachten wieder einen Datensatz von Ereignissen mit jeweils m Merkmalen, zusammengefasst in x, die zwei verschiedenen Klassen angehören, zum Beispiel

Mehr

Technische Universität

Technische Universität Technische Universität München Fakultät für Informatik Forschungs- und Lehreinheit Informatik IX Support Vector Machines Hauptseminar Robert Rackl Betreuer: Abgabetermin: 8. Juli.2004 Dipl.-Inform. Simone

Mehr

6 Extremwerte mit Nebenbedingungen: Die Lagrange-Multiplikatoren-Methode

6 Extremwerte mit Nebenbedingungen: Die Lagrange-Multiplikatoren-Methode 6 Extremwerte mit Nebenbedingungen: Die Lagrange-Multiplikatoren-Methode In diesem Kapitel orientieren wir uns stark an den Büchern: 1. Knut Sydsæter, Peter Hammond, Mathematik für Wirtschaftswissenschaftler,

Mehr

Efficient Learning of Label Ranking by Soft Projections onto Polyhedra

Efficient Learning of Label Ranking by Soft Projections onto Polyhedra Efficient Learning of Label Ranking by Soft Projections onto Polyhedra Technische Universität Darmstadt 18. Januar 2008 Szenario Notation duales Problem Weitere Schritte Voraussetzungen Tests Szenario

Mehr

3. Analyse der Kamerabewegung Video - Inhaltsanalyse

3. Analyse der Kamerabewegung Video - Inhaltsanalyse 3. Analyse der Kamerabewegung Video - Inhaltsanalyse Stephan Kopf Bewegungen in Videos Objektbewegungen (object motion) Kameraoperationen bzw. Kamerabewegungen (camera motion) Semantische Informationen

Mehr

Reinforcement Learning

Reinforcement Learning Reinforcement Learning 1. Allgemein Reinforcement Learning 2. Neuronales Netz als Bewertungsfunktion 3. Neuronales Netz als Reinforcement Learning Nils-Olaf Bösch 1 Allgemein Reinforcement Learning Unterschied

Mehr

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen

Universität Trier. Fachbereich IV. Wintersemester 2004/2005. Wavelets made easy. Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Universität Trier Fachbereich IV Wintersemester 2004/2005 Wavelets made easy Kapitel 2 Mehrdimensionale Wavelets und Anwendungen Thomas Queckbörner 16.11.2004 Übersicht des Kapitels: 1. Einführung 2. Zweidimensionale

Mehr

KAPITEL 3. Konvexe Funktionen

KAPITEL 3. Konvexe Funktionen KAPITEL 3 Konvexe Funktionen Sei F R n ein Definitionsbereich und f : F R eine Funktion. Unter dem Epigraphen von f versteht man die Menge epif = {(x, z) R n+1 x F, z R, z f(x)}. Man nennt f konvex, wenn

Mehr

2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung

2.3 Logikoptimierung. Überblick digitale Synthese. Logikoptimierung 2.3 Logikoptimierung Logikoptimierung Überblick digitale Synthese Logikoptimierung Begriffe Mehrstufige Logik Zweistufige Logik:..Exakte Verfahen..Heuristische Verfahren..Expansion/ Reduktion..Streichen

Mehr

Textmining Klassifikation von Texten Teil 2: Im Vektorraummodell

Textmining Klassifikation von Texten Teil 2: Im Vektorraummodell Textmining Klassifikation von Texten Teil 2: Im Vektorraummodell Dept. Informatik 8 (Künstliche Intelligenz) Friedrich-Alexander-Universität Erlangen-Nürnberg (Informatik 8) Klassifikation von Texten Teil

Mehr

How To Create A Panorama Image From A Photoelectric Image From An Image From The Camera (I)

How To Create A Panorama Image From A Photoelectric Image From An Image From The Camera (I) Chapter 3 Image Registration Distributed Algorithms for Einführung (I) Definition: Image Registration Gegeben: 2 Bilder der gleichen Szene aber aufgenommen aus unterschiedlichen Perspektiven Gesucht: Transformation,

Mehr

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall:

. Die obige Beschreibung der Laufzeit für ein bestimmtes k können wir also erweitern und erhalten die folgende Gleichung für den mittleren Fall: Laufzeit von Quicksort im Mittel. Wir wollen die erwartete Effizienz von Quicksort ermitteln. Wir nehmen an, die Wahrscheinlichkeit, dass das gewählte Pivot-Element a j das k-t kleinste Element der Folge

Mehr

Seminar: Multi-Core Architectures and Programming. Viola-Jones Gesichtsdetektor

Seminar: Multi-Core Architectures and Programming. Viola-Jones Gesichtsdetektor Seminar: Multi-Core Architectures and Programming Viola-Jones Gesichtsdetektor Hardware-Software-Co-Design Universität Erlangen-Nürnberg 1 Übersicht Einleitung Viola-Jones Gesichtsdetektor Aufbau Blockmerkmale

Mehr

NICHTRESTRINGIERTE OPTIMIERUNG

NICHTRESTRINGIERTE OPTIMIERUNG 3 NICHTRESTRINGIERTE OPTIMIERUNG Die Aufgabe, mit der wir uns im Folgen beschäftigen werden, ist die Lösung von Minimierungsproblemen der Form minimiere f(x) in R n, (3.1) wobei f : R n R eine gegebene

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Ingenieure II, SS 9 Dienstag $Id: jordantex,v 8 9// 4:48:9 hk Exp $ $Id: quadrattex,v 9// 4:49: hk Exp $ Eigenwerte und die Jordansche Normalform Matrixgleichungen und Matrixfunktionen Eine

Mehr

Substitutionsverfahren vs. Lagrange-Methode

Substitutionsverfahren vs. Lagrange-Methode Substitutionsverfahren vs. Lagrange-Methode 1 Motivation Substitutionsverfahren und Lagrange-Methode sind Verfahren, die es ermöglichen, Optimierungen unter Nebenbedingungen durchzuführen. Die folgende

Mehr

Lineare Regression. Volker Tresp

Lineare Regression. Volker Tresp Lineare Regression Volker Tresp 1 Die Lernmaschine: Das lineare Modell / ADALINE Wie beim Perzeptron wird zunächst die Aktivierungsfunktion gewichtete Summe der Eingangsgrößen x i berechnet zu h i = M

Mehr

Terme und Gleichungen

Terme und Gleichungen Terme und Gleichungen Rainer Hauser November 00 Terme. Rekursive Definition der Terme Welche Objekte Terme genannt werden, wird rekursiv definiert. Die rekursive Definition legt zuerst als Basis fest,

Mehr

Klassifikation linear separierbarer Probleme

Klassifikation linear separierbarer Probleme Klassifikation linear separierbarer Probleme Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg (Lehrstuhl Informatik 8) Klassifikation linear

Mehr

Thema: Support Vector Machines Johannes Lächele

Thema: Support Vector Machines Johannes Lächele Proseminar: Machine Learning 26. Juli 2006 Johannes Lächele Zusammenfassung: In dieser Seminararbeit wird das Basiswissen für das Verständnis von Support Vector Machines oder SVM vermittelt. Nach einer

Mehr

Inhaltsverzeichnis. Innere-Punkte-Verfahren 3. Inhaltsverzeichnis 1

Inhaltsverzeichnis. Innere-Punkte-Verfahren 3. Inhaltsverzeichnis 1 Inhaltsverzeichnis 1 Inhaltsverzeichnis Innere-Punkte-Verfahren 3 1 Theoretische Grundlagen 3 1.1 Die KKT-Bedingungen........................... 3 1.2 Der zentrale Pfad.............................. 4

Mehr

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20

Computational Intelligence 1 / 20. Computational Intelligence Künstliche Neuronale Netze Perzeptron 3 / 20 Gliederung / Künstliche Neuronale Netze Perzeptron Einschränkungen Netze von Perzeptonen Perzeptron-Lernen Perzeptron Künstliche Neuronale Netze Perzeptron 3 / Der Psychologe und Informatiker Frank Rosenblatt

Mehr

Thema 3: Radiale Basisfunktionen und RBF- Netze

Thema 3: Radiale Basisfunktionen und RBF- Netze Proseminar: Machine Learning 10 Juli 2006 Thema 3: Radiale Basisfunktionen und RBF- Netze Barbara Rakitsch Zusammenfassung: Aufgabe dieses Vortrags war es, die Grundlagen der RBF-Netze darzustellen 1 Einführung

Mehr

3 Optimierung mehrdimensionaler Funktionen f : R n R

3 Optimierung mehrdimensionaler Funktionen f : R n R 3 Optimierung mehrdimensionaler Funktionen f : R n R 31 Optimierung ohne Nebenbedingungen Optimierung heißt eigentlich: Wir suchen ein x R n so, dass f(x ) f(x) für alle x R n (dann heißt x globales Minimum)

Mehr

Reranking. Parse Reranking. Helmut Schmid. Institut für maschinelle Sprachverarbeitung Universität Stuttgart

Reranking. Parse Reranking. Helmut Schmid. Institut für maschinelle Sprachverarbeitung Universität Stuttgart Institut für maschinelle Sprachverarbeitung Universität Stuttgart schmid@ims.uni-stuttgart.de Die Folien basieren teilweise auf Folien von Mark Johnson. Koordinationen Problem: PCFGs können nicht alle

Mehr

Principal Component Analysis (PCA)

Principal Component Analysis (PCA) Principal Component Analysis (PCA) Motivation: Klassifikation mit der PCA Berechnung der Hauptkomponenten Theoretische Hintergründe Anwendungsbeispiel: Klassifikation von Gesichtern Weiterführende Bemerkungen

Mehr

1 Fraktale Eigenschaften der Koch-Kurve

1 Fraktale Eigenschaften der Koch-Kurve Anhang Inhaltsverzeichnis Fraktale Eigenschaften der Koch-Kurve iii. Einführung.................................. iii.2 Defintion.................................... iii.3 Gesamtlänge der Koch-Kurve........................

Mehr

Entscheidungsbäume aus großen Datenbanken: SLIQ

Entscheidungsbäume aus großen Datenbanken: SLIQ Entscheidungsbäume aus großen Datenbanken: SLIQ C4.5 iteriert häufig über die Trainingsmenge Wie häufig? Wenn die Trainingsmenge nicht in den Hauptspeicher passt, wird das Swapping unpraktikabel! SLIQ:

Mehr

1 Einleitung. 2 Clustering

1 Einleitung. 2 Clustering Lernende Vektorquantisierung (LVQ) und K-Means-Clustering David Bouchain Proseminar Neuronale Netze Kurs-Nr.: CS4400 ISI WS 2004/05 david@bouchain.de 1 Einleitung Im Folgenden soll zum einen ein Überblick

Mehr

[A] = c(a) in den Einheiten mol/l (1) Eine tiefgestellte Null wie bei [A] 0 zeigt an, dass es sich um eine Anfangskonzentration

[A] = c(a) in den Einheiten mol/l (1) Eine tiefgestellte Null wie bei [A] 0 zeigt an, dass es sich um eine Anfangskonzentration 1 Ableitung des Massenwirkungsgesetzes Mit dem Umfüllexperiment haben wir herausgefunden, dass die Stoffmengen oder die Stoffmengenkonzentrationen im Gleichgewicht auf einen Grenzwert zulaufen. Außerdem

Mehr

Electronic Design Automation (EDA) Logikoptimierung

Electronic Design Automation (EDA) Logikoptimierung Electronic Design Automation (EDA) Logikoptimierung Überblick digitale Synthese Logikoptimierung Begriffe Mehrstufige Logik Zweistufige Logik: Exakte Verfahren... Heuristische Verfahren... Expansion/Reduktion...

Mehr

Klassifikation von Daten Einleitung

Klassifikation von Daten Einleitung Klassifikation von Daten Einleitung Lehrstuhl für Künstliche Intelligenz Institut für Informatik Friedrich-Alexander-Universität Erlangen-Nürnberg (Lehrstuhl Informatik 8) Klassifikation von Daten Einleitung

Mehr

Projektgruppe. Clustering und Fingerprinting zur Erkennung von Ähnlichkeiten

Projektgruppe. Clustering und Fingerprinting zur Erkennung von Ähnlichkeiten Projektgruppe Jennifer Post Clustering und Fingerprinting zur Erkennung von Ähnlichkeiten 2. Juni 2010 Motivation Immer mehr Internet-Seiten Immer mehr digitale Texte Viele Inhalte ähnlich oder gleich

Mehr

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007

FPGA Systementwurf. Rosbeh Etemadi. Paderborn University. 29. Mai 2007 Paderborn Center for Parallel l Computing Paderborn University 29. Mai 2007 Übersicht 1. FPGAs 2. Entwicklungssprache VHDL 3. Matlab/Simulink 4. Entwicklungssprache Handel-C 5. Fazit Übersicht FPGAs 1.

Mehr

HM I Tutorien 6 und 7

HM I Tutorien 6 und 7 HM I Tutorien 6 und 7 Lucas Kunz. Dezember 207 und 8. Dezember 207 Inhaltsverzeichnis Vorwort 2 2 Theorie 2 2. Definition einer Reihe.............................. 2 2.2 Absolute Konvergenz..............................

Mehr

Neuronale Netze. Christian Böhm.

Neuronale Netze. Christian Böhm. Ludwig Maximilians Universität München Institut für Informatik Forschungsgruppe Data Mining in der Medizin Neuronale Netze Christian Böhm http://dmm.dbs.ifi.lmu.de/dbs 1 Lehrbuch zur Vorlesung Lehrbuch

Mehr

Dieses Skript ist urheberrechtlich geschützt. Ich behalte mir alle Rechte vor. Eine Vervielfältigung ist nicht gestattet und strafbar.

Dieses Skript ist urheberrechtlich geschützt. Ich behalte mir alle Rechte vor. Eine Vervielfältigung ist nicht gestattet und strafbar. Dieses Skript ist urheberrechtlich geschützt. Ich behalte mir alle Rechte vor. Eine Vervielfältigung ist nicht gestattet und strafbar. 1 2 Hinweise zum Skript Grundlagen der Wirtschaftsmathematik und Statistik

Mehr

Abitur Mathematik Baden-Württemberg 2012

Abitur Mathematik Baden-Württemberg 2012 Abitur Mathematik: Baden-Württemberg 2012 Im sind keine Hilfsmittel zugelassen. Aufgabe 1 1. SCHRITT: STRUKTUR DER FUNKTION BESCHREIBEN Der Funktionsterm von f ist die Verkettung der Potenzfunktion g(x)

Mehr

Ebenengleichungen und Umformungen

Ebenengleichungen und Umformungen Ebenengleichungen und Umformungen. Januar 7 Ebenendarstellungen. Parameterdarstellung Die Parameterdarstellung einer Ebene ist gegeben durch einen Stützvektor r, der einen Punkt auf der Ebene angibt und

Mehr

Übungsaufgaben zur Vektorrechnung

Übungsaufgaben zur Vektorrechnung Übungsaufgaben zur Vektorrechnung Wolfgang Kippels. Oktober 8 Inhaltsverzeichnis Vorwort Einleitung Einfache Aufgaben. Aufgabe..................................... Aufgabe a................................

Mehr

Wissensentdeckung in Datenbanken

Wissensentdeckung in Datenbanken Wissensentdeckung in Datenbanken Deep Learning (II) Nico Piatkowski und Uwe Ligges Informatik Künstliche Intelligenz 25.07.2017 1 von 14 Überblick Faltungsnetze Dropout Autoencoder Generative Adversarial

Mehr

Proseminar "Aufgabenstellungen der Bildanalyse und Mustererkennung"

Proseminar Aufgabenstellungen der Bildanalyse und Mustererkennung Fakultät Informatik, Institut für künstliche Intelligenz, Intelligent Systems Proseminar "Aufgabenstellungen der Bildanalyse und Mustererkennung" Lokale Merkmalsdeskriptoren Jens Stormberg - Dresden, 19.06.2009

Mehr

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1):

Polynominterpolation. Allgemeines Problem: Beispiel 1 (Teil 1): . Großübung Polynominterpolation Allgemeines Problem: Aufgrund gegebener Messwerte (Paare aus Werten i und Funktionswerten f( i )) soll ein Funktionsverlauf rekonstruiert bzw. zumeist angenähert werden.

Mehr

Algorithmen und Datenstrukturen (für ET/IT)

Algorithmen und Datenstrukturen (für ET/IT) Algorithmen und Datenstrukturen (für ET/IT) Sommersemester 2015 Dr. Tobias Lasser Computer Aided Medical Procedures Technische Universität München Programm heute 7 Fortgeschrittene Datenstrukturen 8 Such-Algorithmen

Mehr

Klassifikation durch direkten Vergleich (Matching)

Klassifikation durch direkten Vergleich (Matching) Klassifikation durch direkten Vergleich (Matching) Eine triviale Lösung für die Klassifikation ergibt sich durch direkten Vergleich des unbekannten Musters in allen Erscheinungsformen der Äquivalenzklasse

Mehr

Softwareprojektpraktikum Maschinelle Übersetzung

Softwareprojektpraktikum Maschinelle Übersetzung Softwareprojektpraktikum Maschinelle Übersetzung Jan-Thorsten Peter, Andreas Guta, Jan Rosendahl max.bleu@i6.informatik.rwth-aachen.de Vorbesprechung 5. Aufgabe 22. Juni 2017 Human Language Technology

Mehr

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder

Morphing. von Tim Sternberg. Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder von Tim Sternberg Im Rahmen des Seminars Manipulation und Verarbeitung digitaler Bilder Einleitung Mit Morphing wird der fließende Übergang eines Bildes in ein anderes bezeichnet. Zwei digitale Bilder

Mehr

Klausur Numerische Mathematik (für Elektrotechniker), 24. Februar 2016

Klausur Numerische Mathematik (für Elektrotechniker), 24. Februar 2016 Verständnisfragen-Teil ( Punkte) Jeder der Verständnisfragenblöcke besteht aus Verständnisfragen. Werden alle Fragen in einem Verständnisfragenblock richtig beantwortet, so gibt es für diesen Block Punkte.

Mehr

Überblick. Einführung in die automatische Mustererkennung Grundlagen der Wahrscheinlichkeitsrechnung

Überblick. Einführung in die automatische Mustererkennung Grundlagen der Wahrscheinlichkeitsrechnung Grundlagen Überblick Einführung in die automatische Mustererkennung Grundlagen der Wahrscheinlichkeitsrechnung Klassifikation bei bekannter Wahrscheinlichkeitsverteilung Entscheidungstheorie Bayes-Klassifikator

Mehr

Algebra und Zahlentheorie WS 13/14

Algebra und Zahlentheorie WS 13/14 Algebra und Zahlentheorie WS 13/14 FU Berlin David Müßig http://page.mi.fu-berlin.de/def/auz14/ muessig@mi.fu-berlin.de 21.01.2014 1 Hintergrund: Basen & Vektorräume 1.1 Grundlegende Begriffe Da einige

Mehr

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität

Datenstrukturen und Algorithmen. Christian Sohler FG Algorithmen & Komplexität Datenstrukturen und Algorithmen Christian Sohler FG Algorithmen & Komplexität 1 Clustering: Partitioniere Objektmenge in Gruppen(Cluster), so dass sich Objekte in einer Gruppe ähnlich sind und Objekte

Mehr