Effizientes Training ansichtsbasierter Gesichtsdetektoren. Viktor Peters

Größe: px
Ab Seite anzeigen:

Download "Effizientes Training ansichtsbasierter Gesichtsdetektoren. Viktor Peters"

Transkript

1 Effizientes Training ansichtsbasierter Gesichtsdetektoren Viktor Peters

2

3 Effizientes Training ansichtsbasierter Gesichtsdetektoren Diplomarbeit im Fach Naturwissenschaftliche Informatik AG Angewandte Informatik Technische Fakultät Universität Bielefeld vorgelegt von Viktor Peters Betreuer: Prof. Dr.-Ing. Gernot A. Fink Dipl. Inform. Marc Hanheide 11. Januar 2006

4

5 Erklärung Ich erkläre hiermit, dass ich die vorliegende Arbeit mit dem Titel Effizientes Training ansichtsbasierter Gesichtsdetektoren selbständig verfasst, sinngemäße sowie wörtliche Zitate kenntlich gemacht und keine anderen als die angegebenen Quellen und Hilfsmittel verwendet habe. Bielefeld, den 11. Januar 2006 Viktor Peters

6

7 Inhaltsverzeichnis 1 Einleitung Zielsetzung Gliederung Gesichtsdetektionsverfahren Wissensbasierte Methoden Merkmalsbasierte Methoden Farbmerkmale Kantenmerkmale Templatebasierte Verfahren Ansichtsbasierte Verfahren Eigenfaces Neuronale Netze Suchstrategie Zusammenfassung Viola-Jones Gesichtsdetektor Aufbau des Detektors Merkmale und ihre Berechnung Blockmerkmale Integralbild Bildnormalisierung Auswahl der relevanten Merkmale Anzahl der Merkmale im Suchfenster Einführung in Boosting Discrete AdaBoost Vom Blockmerkmal zum Weak-Klassifikator Kaskaden-Detektor Abtastung des Gesamtbildes Erweiterungen des Viola-Jones Detektors AdaBoost Variationen Asymmetric AdaBoost Gentle AdaBoost Beschleunigung der Merkmalsauswahl Merkmalsreduktion Erweiterte Merkmale Verbesserung der Weak-Klassifikatoren Chain-Kaskade Zusammenfassung i

8 ii Inhaltsverzeichnis 5 Konzeption und Umsetzung Kaskadenstruktur Trainingsalgorithmus Merkmale und Klassifikatoren Verwendete Merkmale Weak-Klassifikator Schnelle Merkmalsauswahl Varianzfilter Umsetzung Training Detektor Evaluierung Trainingsstichproben Basisfenstergröße und Gesichtsbeispiele Festlegung der Trainingsparameter Reduktion der Merkmalsmenge Kombination zu neuen Merkmalen Optimierung durch Gradientenabstieg Asymmetrische Gewichtung Training des Kaskadendetektors Ergebnisse Aufbau des Kaskadendetektors Leistungsfähigkeit Zusammenfassung 83 A Beispieltrainingslauf 87 Abbildungsverzeichnis 89 Tabellenverzeichnis 91 Algorithmenverzeichnis 93 Literaturverzeichnis 95

9 Kapitel 1 Einleitung Betrachtet man ein unbekanntes Bild, dann macht es uns als Menschen keine Mühe zu erkennen, ob darauf überhaupt ein oder sogar mehrere Gesichter erkennbar sind. Im Bruchteil einer Sekunde können die entsprechenden Regionen lokalisiert und analysiert werden. So können wir beim Betrachten eines Gesichtes sagen, ob wir die Person kennen, welches Geschlecht oder Hautfarbe sie hat und anhand der Mimik vermuten, ob die entsprechende Person sich gerade freut, ärgert oder einfach nur überrascht ist. Dieser Vorgang der visuellen Wahrnehmung ist für uns selbstverständlich, da wir ihn kontinuierlich im alltäglichen Leben anwenden und er ein wichtiger Bestandteil unserer zwischenmenschlichen Kommunikation ist. Deshalb ist es nicht verwunderlich, dass wir versuchen solche für uns grundlegenden Fähigkeiten auch auf Maschinen zu übertragen, um zum Beispiel die Interaktion zwischen Mensch und Computer zu vereinfachen oder um uns selbst zu entlasten, indem bestimmte Bildverarbeitungsprozesse automatisiert werden. Solche Verfahren sind unter dem Begriff Gesichtserkennung in der computergestützten Bildverarbeitung zusammengefasst und bilden ein breites Spektrum an Einsatzgebieten. So wird in letzter Zeit in den Medien intensiv über biometrische Verfahren berichtet, zu denen unter anderem die Gesichtsauthentifikation und -identifikation gehören. Beide Verfahren zielen darauf ab, aus einem gegebenen Bildausschnitt die Identität der Person anhand des abgebildeten Gesichts festzustellen. Auf den vor kurzer Zeit eingeführten biometrischen Reiseausweisen wird zum Beispiel neben einem herkömmlichen Lichtbild zusätzlich das Gesicht des Inhabers digital auf einem Chip gespeichert, um das Personal beim Verifikationsprozess zu unterstützen oder diese Aufgabe in Zukunft eventuell vollständig automatisch vorzunehmen. Die Gesichtsauthentifikation vergleicht dabei die Gesichtsmerkmale aus den aktuellen Kameraaufnahmen mit den Referenzdaten aus dem Ausweischip und trifft danach eine Aussage, inwieweit diese übereinstimmen. Im Gegensatz dazu ist die Aufgabenstellung der Gesichtsidentifikation komplexer, da hierbei festzustellen gilt, ob ein Gesicht und somit die Identität der Person dem System überhaupt bekannt ist. Dazu werden die aktuellen Merkmale mit einer Vielzahl bereits erfasster Referenzdaten verglichen und auf ihre Übereinstimmung untersucht. Anwendung findet diese Form der Überprüfung überwiegend in Systemen mit überschaubaren Personenkreisen, wie zum Beispiel bei Zutritts- und Zugriffsberechtigungen zu Gebäuden und Computerdiensten. Oft geschieht so eine elektronische Überprüfung, ohne dass es der Person bewusst ist. So werden insbesondere nach dem Terroranschlag auf das World Trade Center an großen Flughäfen und Bahnhöfen immer häufiger Überwachungssysteme eingesetzt, die direkt auf Fahndungsdatenbanken zugreifen und so Hilfestellung beim Aufspüren von Flüchtigen und Kriminellen leisten. Eine weniger sicherheitsrelevante Bedeutung hat die Gesichtsidentifikation zum Beispiel bei Service-Robotern, die mit Menschen in Kontakt stehen. Als ein Teil der Mensch-Computer- 1

10 2 Kapitel 1 Einleitung Interaktion soll sie dabei die Kommunikation zwischen Maschine und ihrem Benutzer unterstützen. Hierbei spielt unter anderem auch die Gesichtsausdrucksanalyse eine wichtige Rolle, da sie ermöglicht, die nonverbalen Signale des Menschen zu deuten und somit entsprechend darauf zu reagieren. In allen genannten Beispielen bildet die Gesichtsdetektion jedoch die Vorstufe des Prozesses. Denn zuerst muss die Position und Ausdehnung des Gesichts bzw. aller Gesichter im Bild bestimmt werden, um eine Weiterverarbeitung zu ermöglichen. Eine zuverlässige und schnelle Gesichtsdetektion bildet somit einen wichtigen Grundpfeiler für viele weitere Anwendungen. Im Laufe der Zeit sind viele unterschiedliche Systeme zur automatischen Gesichtsdetektion entstanden, die auf verschiedenen Wegen dasselbe Ziel verfolgen [Yan02]. Und obwohl in letzter Zeit daran intensiv geforscht wird, gilt diese Aufgabe immer noch nicht als vollständig gelöst. Das Problem dafür liegt in vielen Faktoren, die einerseits von den physiologischen Eigenschaften des menschlichen Gesichts und andererseits von technischen Möglichkeiten abhängen. Obwohl das Gesicht sehr variabel ist schließlich unterscheidet es uns von etwa 6.5 Milliarden Menschen besitzt es globale Attribute wie die Form, Augen, Nase und Mund, mit denen es uns möglich ist, es eindeutig als solches zu identifizieren. Das menschliche Gehirn kann diese Merkmale selbst bei schwierigsten Gegebenheiten wiedererkennen und zuordnen. Selbst wenn nur einige dieser Informationen zur Verfügung stehen, kann es die fehlenden Informationen aufgrund der Fähigkeit des abstrakten Denkens rekonstruieren und zu einem Gesamtbild vervollständigen [Bru86]. Jedoch reichen diese Erkenntnisse nicht aus, um die menschlichen Fähigkeiten auf die computergestützte Verarbeitung zu übertragen. Somit wird die Aufgabe der Gesichtsdetektion, die Segmentierung des Gesichts vom Bildhintergrund, mit einigen Problemen konfrontiert. So bildet neben der individuellen Erscheinungsform jedes Gesichts der Gesichtsausdruck einen zusätzlichen Variationsfaktor. Ein Gesicht ein und derselben Person kann beispielsweise zwischen Lachen und einer grimmigen Mimik stark variieren. Aber auch andere individuelle Eigenschaften wie Frisuren, Makeup, Bärte oder Brillen, verändern das Aussehen darüber hinaus. Andere Herausforderungen sind eher technischer Natur. Ein solches Problem ist beispielsweise die Stellung des Kopfes. Schaut die Person nicht direkt in die Kamera, ändern sich die Lage der globalen Gesichtsmerkmale, wie Augen, Nase und Mund, in der zweidimensionalen Abbildung. Wird das Gesicht zu weit von der Kamera abgewendet, können hierbei Teile des Gesichts verdeckt werden und einige Merkmale somit komplett verschwinden. Verdeckung kann jedoch auch durch im Sichtfeld stehende Gegenstände oder andere Personen aus einer Gruppe verursacht werden. Des weiteren können durch ungünstige Beleuchtung Gesichter als zu dunkel oder zu hell erscheinen und wichtige Details damit verschwinden, weil die Helligkeitsabstufungen von den Kamerasensoren nicht mehr aufgelöst werden können. Scheint das Licht außerdem nur von einer Seite, entsteht durch die plastische Form eine ungleichmäßige Ausleuchtung der beiden Gesichtshälften. Einige dieser Problemstellungen können in bestimmten Situationen vermieden werden, indem zum Beispiel wie bei der automatischen Passkontrolle eine kontrollierte Umgebung geschaffen wird und die Person bei gleichmäßiger Ausleuchtung für einen kurzen Zeitpunkt in Richtung

11 1.1 Zielsetzung 3 Kamera schauen muss. Schwieriger wird die Herausforderung bei Überwachungssystemen und mobilen Robotern, da hier eine solche Umgebung nicht geschaffen werden kann. Idealerweise sollte die Leistungsfähigkeit eines Gesichtdetektionssystems durch diese Schwierigkeiten nicht beeinflusst werden. Obwohl so einem System viel weniger Informationen als einem Menschen zur Verfügung stehen, sollte es in der Lage sein, menschliche Gesichter unterschiedlichen Alters, Geschlechts, Bartwuchses, Nasenform oder anderen Merkmalen in einem Bild zu erkennen. Natürlich können nicht alle Bedingungen erfüllt und alle Herausforderungen vollständig gelöst werden. Deshalb sind verschiedene Techniken entstanden, die auf unterschiedlichen Wegen versuchen, das Ziel zu erreichen. 1.1 Zielsetzung Eines der erfolgreichsten dieser Verfahren ist der von Viola und Jones entwickelte Frontalgesichtsdetektor, der durch Einsatz von einfachen blockbasierten Merkmalen und einer Kaskadenstruktur eine schnelle und robuste Erkennung von Gesichtern in Graustufenbildern ermöglicht [Vio01b]. Aufgrund seiner einfachen Struktur erlangte er seit der Veröffentlichung immer mehr an Popularität und ist deshalb von vielen an ihre Bedürfnisse angepasst oder erweitert worden. Dabei wird zum einen versucht, die Detektionsleistung weiter zu steigern und zum anderen das zeitaufwändige Training, das unter Umständen mehrere Wochen dauern kann, zu verkürzen. Ziel dieser Arbeit soll sein, einige dieser viel versprechenden Weiterentwicklungen wieder aufzugreifen, sie gemeinsam in einem System zu vereinen und gegebenenfalls zu erweitern. Im Vordergrund steht dabei der Gedanke, die Trainingsdauer für einen vollständigen Frontalgesichtsdetektor stark zu reduzieren, ohne große Einbrüche in der Detektionsleistung zu bewirken. Im Anschluss soll durch eine Evaluierung des entstandenen Gesamtsystems die erreichte Effizienz überprüft werden. 1.2 Gliederung Das folgende Kapitel soll in erster Linie einen Überblick zu dem Thema Gesichtsdetektion schaffen, indem einige unterschiedliche Herangehensweisen an diese schwierige Aufgabe vorgestellt werden. Im darauf folgendem Kapitel 3 werden die Grundlagen und Eigenschaften des Viola-Jones Detektionssystem ausführlich besprochen. Einige darauf aufbauende Erweiterungen und Verbesserungen werden in Kapitel 4 betrachtet. Kapitel 5 erläutert ausgehend von vorangegangenen Überlegungen die Konzeption und Umsetzung des daraus entstandenen Detektionssystems, das im anschließenden Kapitel 6 einer Evaluierung unterzogen wird. Kapitel 7 bildet mit der Zusammenfassung den Abschluss dieser Arbeit.

12

13 Kapitel 2 Gesichtsdetektionsverfahren Gesichtsdetektion ist eine spezielle Form der Objektdetektion und entspricht einem Zwei- Klassenproblem, bei dem das Objekt bzw. das Gesicht vom Hintergrund segmentiert werden muss. Die Aufgabe besteht darin, ein oder mehrere Gesichter in einer digitalisierten Bildquelle mit Hilfe heuristischer Verfahren zu lokalisieren und anschließend die Positionen und Ausdehnungen aller gefundenen Gesichtsregionen zurückzuliefern. Die Bildquelle kann dabei eine Videosequenz oder ein statisches Bild sein, wobei in beiden Fällen weiter zwischen Bildmaterial in Farbe oder Graustufen unterschieden werden muss. Gegenüber statischen Bildern haben Videosequenzen den Vorteil, dass dort dynamische Informationen aus der dargestellten Szene gewonnen werden können. So kann man zum Beispiel durch eine einfache Technik feststellen, wo Veränderungen in der Sequenz stattgefunden haben. Dafür werden Differenzbilder aus zwei aufeinander folgenden Bildern gebildet. Bei homogenen Flächen, die sich kaum verändert haben, liegt die Differenz dabei nahe bei Null. Grosse Differenzwerte deuten auf starke Wechsel in der Szene. Ist die Kamera fest positioniert, so dass immer derselbe Hintergrund zu sehen ist, weisen solche Regionen auf Bewegung hin, die zum Beispiel von einer Person stammen könnten. Dadurch kann man den Suchbereich im Bild teilweise stark einschränken und den größten Teil des Hintergrundes damit von vornherein ausschließen. Eine andere bekannte Technik, die ebenfalls Videosequenzen voraussetzt, ist das Verfolgen eines Objektes im Bild über die Zeit. Dieses als Tracking bekannte Verfahren bestimmt dabei aus vorangegangenen Positionen die Trajektorie des Objekts. Ist die aktuelle Bewegungsbahn bekannt, lässt sich somit der vermutliche Aufenthalt des verfolgten Objekts im nächsten Bild schätzen. Videosequenzen sind jedoch aufgrund ihres enormen Datenaufkommens, schwer zu handhaben. Oft stehen sie erst gar nicht zur Verfügung. Auch in Problemfällen muss man dann auf Techniken zur Gesichtsdetektion auf statischen Bildern zurückgreifen. So kann sich zum Beispiel bei dem Verfahren zur Differenzbildbestimmung der komplette Hintergrund ändern, etwa durch plötzliche Kameraschwenks oder durch Einblendung anderen Videomaterials im Hintergrund. Beim Tracking werden Informationen zur Ausgangsposition des verfolgten Objekts benötigt. Außerdem ist auch ein Video nur eine Hintereinanderreihung von Einzelbildern, so dass die Gesichtsdetektion auf statischen Bildern den kleinsten gemeinsamen Nenner bildet. Um ein erfolgreiches Gesichtsdetektionssystem zu gestalten, muss man sich im Vorfeld mit einigen Fragen befassen. Als erstes muss bedacht werden, wie ein typisches Gesicht repräsentiert werden kann, um daraus ein Modell herleiten zu können. Daraus folgen die Fragen, welche Merkmale dafür berechnet werden müssen und ob für diese irgendeine Art von Vorverarbeitung, wie zum Beispiel Histogramm-Gleichverteilung, gebraucht wird. Falls das Gesichtsmodell gelernt werden muss, welcher Lernalgorithmus eignet sich dann am besten dafür? 5

14 6 Kapitel 2 Gesichtsdetektionsverfahren Bildausschnitt Eingabebild Gesichtskandidaten Konturtest Merkmalssuche Gesicht keine gefunden nicht bestanden nicht bestanden Abbildung 2.1: Blockdiagramm eines hierarchischen wissensbasierten Gesichtsdetektionssystems. Jede Stufe reicht mögliche Gesichtskandidaten an die nächste, während jeweils große Teile des Bildhintergrundes verworfen werden. Welche Suchstrategie kann man verwenden und kann diese auch Gesichter unterschiedlicher Größe finden? Unter Umständen sind vielleicht Nachbearbeitungsschritte notwendig, die sich zum Beispiel mit Überlappungen von mehreren Treffern befassen. Außerdem sind Fragen nach der Präzision und Geschwindigkeit, mit denen das System die erforderliche Aufgabe erledigen kann, interessant. Generell kann man die vorhandenen Techniken in vier Kategorien einordnen: wissens-, merkmals-, template- und ansichtsbasiert [Yan02]. Die Grenzen sind dabei jedoch fließend, da sich manche dieser Techniken in einigen Bereichen überlappen und in vielen Detektionssystemen verschachtelt oder ergänzend genutzt werden. 2.1 Wissensbasierte Methoden Bei den wissensbasierten Methoden wird grundlegendes menschliches Wissen über den generellen Aufbau und typische Aussehen des Gesichts in Regeln definiert. Für Frontalansichten können zum Beispiel Regeln über relative Abstände und Positionen von Merkmalen wie Augen, Mund und Nase zueinander und die Form des Kopfes beschrieben werden. Für die Lokalisation von Gesichtern werden dabei zuerst mögliche Kandidaten im Bild ermittelt, die anschließend eingehender auf Übereinstimmung untersucht werden. Daher spricht man bei den wissensbasierten Methoden auch von so genannten Top-Down-Verfahren. Ein nicht ganz leicht zu lösendes Problem ist die Umsetzung von menschlichen Wissen in Regeln. Bei der Formulierung müssen meistens Kompromisse geschlossen werden, die unter Umständen zu unerwünschten Ergebnissen führen. Beschreibt das Regelwerk das Aussehen zu exakt, besteht eine hohe Wahrscheinlichkeit, dass viele Gesichter aufgrund kleiner Abweichungen nicht alle Regeln passieren können und verworfen werden. Bei zu allgemeinen Regel läuft man Gefahr, dass ein grosser Teil des Hintergrunds fälschlicherweise als Gesicht eingestuft wird. Ein charakteristisches Beispiel für ein wissensbasiertes System ist das von Yang und Huang entwickelte Verfahren [Yan94]. Das System ist hierarchisch aufgebaut und besteht aus drei Stufen. Ein Bildausschnitt wird von einer Stufe zur nächsten nur dann gereicht, falls er alle Regeln in dieser Stufe erfüllt und somit als mögliches Gesicht in Frage kommt. Im umgekehrten Fall, bei Ablehnung des Bildausschnitts als Gesicht, wird dieser verworfen, so dass die restlichen Regeln nicht mehr durchlaufen werden müssen (s. Abbildung 2.1). Die erste Stufe beschäftigt sich mit der groben Selektierung von möglichen Gesichtskandidaten. Dafür wird die Auflösung des Originalbilds durch Subsampling und Mittelwertbildung schrittweise verkleinert (s. Abbildung 2.2). Auf dem Bild mit der gröbsten Auflösung werden dann eine Reihe von Regeln durchlaufen, die sich aus Abbildung 2.2(d) ableiten. Dabei wird

15 2.2 Merkmalsbasierte Methoden 7 (a) (b) (c) (d) Abbildung 2.2: Stufenweise Generierung von gröberen Bildauflösungen, indem benachbarte Pixelblöcke zu immer größeren n n Blöcke durch Mittelwertbildung zusammengefasst werden, und ein typisches Gesicht zur Regelgewinnung (a) das Ausgangsbild, n = 1 (b) n = 8 (c) n = 16 (d) Regeln basieren auf typischen Helligkeitsverteilungen im Gesicht [Yan02] der zu untersuchende Bildausschnitt in Zellen aufgeteilt. Man geht davon aus, dass bei einer typischen Frontalansicht eines Gesichts, die Zellen im Zentrum nahezu gleiche Helligkeit aufweisen. Auch ein Bereich, der dieses Zentrum umgibt, sollte diese Eigenschaften besitzen. Es muss jedoch ein deutlicher Helligkeitsunterschied zwischen diesen beiden Regionen bestehen, damit dieser Bildbereich als mögliches Gesicht an die zweite Stufe weitergegeben wird. In der zweiten Stufe wird mehr ins Detail gegangen. Nach einer Kontraststeigerung mittels einer Histogramm-Gleichverteilung wird auf dem Fensterbereich aus der ersten Stufe eine Kantendetektion durchgeführt. Durch Regeln, die die Positionen und Verhältnisse der gefundenen Kanten zueinander analysieren, wird festgelegt, welche Bildbereiche geeignet erscheinen und zur weiteren Verarbeitung an die dritte Stufe weitergegeben werden können. Die letzten Stufe besitzt dann Regeln, die die markanten Merkmale des Gesichts, wie Augen und Mund, suchen und anschließend aufgrund dieser Informationen den Bildausschnitt als Gesicht verifizieren oder als Hintergrund verwerfen. Dieser Regelsatz ist natürlich viel komplizierter und in der Rechenleistung aufwändiger als in den vorangegangenen beiden Stufen. Hier wird die typische Vorgehensweise der wissensbasierten Methoden, vom Groben zum Feinen, deutlich. 2.2 Merkmalsbasierte Methoden Der Mensch hat selbst unter erschwerten Bedingungen, die durch ungünstige Betrachtungswinkel, Raumbeleuchtung oder Verdeckung verursacht werden, keine Mühe, ein Gesicht zu erkennen. Obwohl in diesen Situationen nicht alle Informationen verfügbar sind, ist er in der Lage, aus den vorhandenen Merkmalen ein Gesicht wahrzunehmen. Solche Merkmale sind zum Beispiel die Augen oder der Mund, die immer in irgendeiner Form im Gesicht zu sehen sind. Deshalb gehen die merkmalsbasierten Methoden im Gegensatz zu den wissensbasierten den umgekehrten Weg, und suchen zuerst einzelne Gesichtsmerkmale, die anschließend zu Gesichtskandidaten gruppiert und zum Schluss verifiziert werden. In Anlehnung zur Namensgebung der Top-Down-Verfahren wird dieses Vorgehen häufig auch als Bottom-Up-Verfahren bezeichnet, was auch den charakteristischen Ablauf widerspiegelt. Merkmale des Gesichts lassen sich durch viele unterschiedliche Techniken bestimmen. Jede hat abhängig von ihrem Einsatzgebiet Vor- und Nachteile, weshalb sie oft auch in Kombination genutzt werden. Eine Möglichkeit, Merkmale zu gewinnen, besteht darin, nach bestimmten Textureigenschaften im Bild für Haut, Haare oder anderen markanten Strukturen zu suchen

16 8 Kapitel 2 Gesichtsdetektionsverfahren chromaticity g=g/(r+g+b) chromaticity r=r/(r+g+b) (a) skin locus (b) Ausgangsbild (c) Klassifikationsergebnis Abbildung 2.3: Beispiele einer Hautfarbensegmentierung. (a) der skin locus definiert den Hautfarbenbereich im rg-farbraum (b) das Ausgangsbild mit den vom Tracker bestimmten Regionen (c) die resultierende Wahrscheinlichkeitsverteilung für Hautfarbe [Fri02] [Aug93, Dai96]. Die Texturanalyse ist jedoch häufig nicht trivial und zieht meist einen hohen Berechnungsaufwand nach sich. Deshalb werden überwiegend Kanten- und Farbmerkmale verwendet, da sie sich leicht bestimmen lassen und dafür viele bekannte Algorithmen existieren Farbmerkmale Ein populäres Verfahren ist die Verwendung von Hautfarbe als Merkmal. Es basiert auf der Tatsache, dass die Hauttöne, selbst bei Menschen unterschiedlicher Abstammung, in ihrer Chrominanz-Eigenschaft sehr ähnlich sind. Unter Ausnutzung dieser Ähnlichkeit können damit einfache Hautfarben-Segmentierungsverfahren gestaltet werden. Da Hautfarbe ein robustes Merkmal gegenüber geometrischen Variationen des Gesichts ist, wird es häufig als eine der ersten Stufen in Detektionssystemen eingesetzt [Cha94, Cro97, Fri02]. Um Hautfarbe als Merkmal benutzen zu können, muss für jedes Pixel im Bild bestimmt werden, ob es Ähnlichkeit mit Hautfarbe hat oder eher zum Hintergrund gehört. Für dieses Segmentierungsproblem muss man sich zuerst mit zwei Fragen beschäftigen. Als erstes muss ein geeigneter Farbraum gewählt werden und als zweites muss man sich überlegen, wie die Hautfarbe in diesem Farbraum modelliert werden kann. Zu den am meisten eingesetzten Farbräumen zur Hautfarbenklassifikation gehören das klassische RGB oder YUV aber auch HSI oder das normalisierte RGB. Da Konvertierungen in andere Modelle teilweise kostspielige Berechnungen nach sich ziehen und somit unnötigerweise Rechenleistung verbrauchen, hängt die Wahl dabei häufig vom Farbraum des bereits verwendeten Bildmaterials ab. Als nächstes muss für den gewählten Farbraum ein Modell der Hautfarbe erstellt werden, welches abschätzt, wie gut die jeweilige Pixelfarbe in dieses Profil passt. In der Literatur werden hierfür viele Verfahren vorgeschlagen, die von einfachen, regelbasierten Schwellwert- Vergleichen, über komplexere statistische Methoden zu adaptiven Techniken reichen. Vezhnevets et al. bieten in [Vez03] einen ausführlichen Überblick zu dem Thema. Ein adaptives Verfahren wird von Fritsch et al. in [Fri02] beschrieben. Die adaptive Anpassung des Farbmodells ist in diesem Fall notwendig, da die Erkennung von einem mobilen Roboter,

17 2.2 Merkmalsbasierte Methoden 9 BIRON 1, durchgeführt wird. Da er seine Position wechseln kann und eine aktive Kamera besitzt, ändern sich häufig die Lichtverhältnisse im Bild. In einer typischen Büroumgebung fällt zum Beispiel das Sonnenlicht nur auf einer Seite des Raums durch die Fenster. Stand die vom Roboter verfolgte Person zuerst im vollen Sonnenlicht und wechselt danach an eine schattige Stelle, wirken die Hauttöne dann dunkler. Um den Einfluss der Helligkeit auf die Hautfarbe einzuschränken, wird deshalb der normalisierte RGB-Farbraum verwendet. Im Gegensatz zum RGB-Farbraum werden dabei die RGB-Werte auf ihre chromatischen Beiträge normalisiert, und der Helligkeitsanteil entfernt: r = R R + G + B g = G R + G + B Weil die Summe der drei Werte bekannt ist (r + g + b = 1), stellt der Blaunteil damit eine redundante Information dar und ist überflüssig. Ein willkommener Vorteil ist, dass dadurch eine Dimensionsreduktion von einem dreidimensionalen in einen zweidimensionalen Raum stattfindet. Neben der Erkenntnis, dass die komplette Hautfarbenverteilung in diesem rg-farbraum einen halbmondförmigen Bereich abdeckt, der durch zwei quadratische Funktionen approximiert werden kann und skin locus genannt wird (s. Abbildung 2.3(a)), benutzen die Autoren für jedes mit Kalman-Tracking verfolgte Gesicht eine eigene Gaussverteilung. Dies stellt sicher, dass die einzelnen Gesichter von Gegenständen wie Möbel, die eine hautähnliche Färbung besitzen und somit ebenfalls in den skin locus fallen, unterschieden werden können. Durch das Gaussverteilungsmodell wird festgelegt, wie groß die Wahrscheinlichkeit für ein Pixel ist, dass es zu dem entsprechenden Gesicht gehört. Ausgehend von den verfolgten Gesichtspositionen wird für jedes Pixel in diesen Regionen diese Wahrscheinlichkeit bestimmt. Damit ergeben sich zusammenhängende Bereiche mit großen Wahrscheinlichkeitswerten in den Zentren der Gesichter (vgl. Abbildung 2.3(c)). Die Bereiche werden anschließend mit Hilfe des so genannten Eigenfaces-Verfahrens einer Gesichtsdetektion unterzogen. Wird ein Gesicht gefunden, dann werden alle Pixel, die sich innerhalb eines elliptischen Bereichs um das Gesicht befinden und dessen Farbwerte im skin locus liegen, zur Adaption der jeweiligen Gaussverteilung herangezogen Kantenmerkmale Oft stehen keine Farbinformationen zur Verfügung oder die Verarbeitung der beiden zusätzlichen Farbkanäle nimmt zu viele Systemressourcen in Anspruch. Allein an der Helligkeit der Pixel kann ein Merkmal jedoch nicht zuverlässig vom Hintergrund unterschieden werden. Deshalb muss man auf andere Möglichkeiten ausweichen, die auch auf Grauwertbildern anwendbar sind. Augen, Mund, Nase und andere Gesichtseigenschaften lassen sich durch Intensitätsänderungen entlang ihrer Form erkennen. Diese Gradienten können mit gängigen Methoden aus der Bildverarbeitung, wie zum Beispiel dem Sobel-Filter, relativ einfach aus dem Bild gewonnen werden. In einem anschließenden Schritt werden diese dann zu Kanten zusammengefasst und durch Regeln oder statistische Modelle, die die Ausrichtung, Kantendicke und Verhältnisse zu anderen Kanten analysieren, auf mögliche Gesichtsmerkmale untersucht. 1 Bielefeld Robot Companion: BIRON/

18 10 Kapitel 2 Gesichtsdetektionsverfahren Face TopPFG BottomPFG LeftPFG RightPFG Hpair1 Hpair2 Vpair1 Vpair2 Vpair3 Abbildung 2.4: Gesichtsmodell eines merkmalbasierten Detektors. Die Teilmodelle setzen sich aus noch feineren Modelle zusammen. [Yow96] Ein solches Verfahren wird von Yow and Cipolla in [Yow96] vorgestellt. Die Basis dafür bildet ein Gesichtsmodell, das aus sechs Merkmalen besteht (Augenbrauen, Augen, Nase und Mund). Da einige Merkmale entweder verdeckt oder durch die Kopfstellung nicht zu sehen sein können, wird das Modell in vier weitere mögliche Modelle aufgeteilt, bei denen jeweils einige dieser Merkmale fehlen, und sie deshalb als Partial-Face-Groups bezeichnet werden. Diese Modelle setzen sich wiederum aus noch feineren Untermodellen zusammen, die jeweils aus zwei horizontalen oder vertikalen Merkmalen bestehen (vgl. Abbildung 2.4). Wie auch in den meisten anderen Verfahren ist hier der Detektionsvorgang hierarchisch aufgebaut. Auf der untersten Ebene kommt ein Laplacefilter zum Einsatz, der für das Eingabebild eine Gradientenrepräsentation liefert. Ausgehend davon, dass Merkmale wie Augenbrauen oder Mund relativ dunkel gegenüber der hellen Gesichtshaut erscheinen, werden Stellen mit besonders starken Intensitätsänderungen gesucht. Im zweiten Schritt werden diese Stellen näher betrachtet, indem in einem Umkreis eine Kantendetektion vorgenommen wird. Ähnliche Kanten werden dabei zusammengefasst. Werden zwei parallele Kanten gefunden, wird geprüft, ob an ihnen jeweils gegensätzliche Helligkeitsübergänge stattfinden. Hier wird ausgenutzt, dass bei einem Merkmal auf der einen Seite ein Übergang von Hell nach Dunkel stattfindet, und auf der gegenüberliegenden Seite genau das Gegenteil passiert. Ist so eine Stelle gefunden, wird die Ausdehnung des Merkmalskandidaten durch ein Rechteck, das durch die Eckpunkte der Linien beschränkt ist, approximiert (s. Abbildung 2.5). Im nächsten Verarbeitungsschritt werden die irrelevanten Merkmalskandidaten verworfen. Dafür werden Informationen wie die Dicke der Linien, ihre Intensitätsvarianz und Ausrichtung für die in Frage kommenden Regionen in einem Vektor zusammengefasst. Dieser wird anschließend durch Bildung der Mahalanobis-Distanz mit einem der sechs trainierten Modellvektoren Detected interest point Edge detection and linking Detected feature and feature region Abbildung 2.5: Ausgehend von einer gefundenen Kandidatenposition für ein Merkmal wird in der Region eine Kandendetektion durchgeführt. Besitzen zwei parallele Kanten gegenteilige Helligkeitsübergänge, werden sie zu einem möglichen Gesichtsmerkmal gruppiert. [Yow96]

19 2.3 Templatebasierte Verfahren 11 für die Gesichtsmerkmale verglichen. Damit diese Region als Merkmal akzeptiert wird, muss die Differenz einen festgelegten Schwellwert unterschreiten. Durch Regeln über die Zusammengehörigkeit von Gesichtsmerkmalen werden dann die noch verbliebenen Merkmalskandidaten zu vertikal oder horizontal ausgerichteten Paaren gruppiert. Diese werden wiederum zu Teilgesichtsmodellen und anschließend zu kompletten Gesichtskandidaten zusammengefasst, die zum Schluss durch ein Bayes-Netzwerk geprüft werden. Dadurch wird es möglich, Gesichter beliebiger Drehung und Skalierung im Bild zu finden. 2.3 Templatebasierte Verfahren Templates sind von Hand bestimmte Vorlagen. Im einfachsten Fall handelt es sich dabei um einen Bildvorlage (Textur), auf dem das zu identifizierende Objekt, wie zum Beispiel ein Durchschnittsgesicht, abgebildet ist. Diese Vorlage wird dann mit Hilfe von Ähnlichkeitsmassen auf ihre Korrelation mit dem zu prüfenden Ausschnitten aus dem Eingabebild verglichen. Bei einer Ähnlichkeit zwischen Vorlage und Bildausschnitt sollte dabei der Korrelationsfehler entsprechend klein ausfallen. Ein sehr einfacher Vergleich wäre zum Beispiel die Bildung des mittleren quadratischen Fehlers zwischen allen Pixel in der Vorlage und Bildausschnitt. Obwohl diese Methode unkompliziert und leicht zu implementieren ist, ist sie mit einigen Problemen verbunden. Zunächst muss ein geeignetes Fehlermaß gewählt werden. Die einfache Form des mittleren quadratischen Fehlers über alle Pixel hat den Nachteil, dass bereits bei kleinen, konstanten Helligkeitsunterschieden zwischen Template und Vergleichsbild aber bei ansonsten völlig identischen Inhalten ein Fehler entsteht. Dieses lässt sich zwar durch einen voran geschalteten Prozess, der die Helligkeitsverteilungen normiert, umgehen, erfasst jedoch nicht andere Faktoren wie Kamerarauschen oder inhomogene Beleuchtungsverhältnisse, die weitere Vorverarbeitungsschritte erfordern. Neben diesen sensorischen Einschränkungen, besteht das Problem, dass die wenigsten Personen einem Durchschnittsgesicht tatsächlich ähnlich sehen. Zudem wirken sich variierende Gesichtsausdrücke zusätzlich negativ auf den Vergleich aus. Aus diesem Grund setzen viele templatebasierte Verfahren eine Ebene tiefer an und verwenden feinere Modelle zur Gesichtsdetektion. Dabei wird das komplette Modell in kleinere Strukturen aufgeteilt, wodurch globale Veränderungen besser kompensiert werden können. Zum Beispiel benutzen Brunelli und Poggio in [Bru93] zusätzlich zum Template eines Frontalgesichts drei weitere, kleinere Vorlagen für Augen, Nase und Mund (vgl. Abbildung 2.6(a)). Bei einem Vergleichstest werden die Korrelationswerte der vier Einzelvergleiche in einem Vektor zusammengefasst, der anschließend auf Ähnlichkeit mit einem der mehreren Prototypen untersucht wird. Bei dem Verfahren aus [Sin94, Sin95], das unter anderem in einer erweiterten Form für das Gesichtsdetektionssystem des anthropomorphen Roboters Kismet 2 verwendet wird [Sca98, Bre99], geht man einen Schritt weiter und löst sich vollständig von einer Bildvorlage für ein komplettes Gesicht. Obwohl die Helligkeiten der einzelnen Gesichtsmerkmale durch unterschiedliche Beleuchtungseinflüsse stark variieren können, geht man dabei von der Tatsache aus, dass Kontraste zwischen diesen Merkmalen stets vorhanden sind. Aus diesem Grund ist das Template in mehrere einzelne Blöcke, die Teile des Frontalgesichts abdecken, aufgeteilt (s. Abbildung 2.6(b)). Anstatt die Blöcke direkt mit Bildvorlagen zu vergleichen, sind Regeln 2

20 12 Kapitel 2 Gesichtsdetektionsverfahren (a) (b) (c) Abbildung 2.6: Beispiele von Templates für Frontalgesichter. (a) Ein erweitertes Template mit zusätzlichen Vorlagen für Augen, Nase und Mund (b) Ein 14x16 Pixel grosses Template, das Helligkeitsverhältnisse zwischen einzelnen Gesichtsregionen festlegt (c) Ein Active Shape Model für ein Durchschnittsgesicht [Bru93, Yan02] über heller-dunkler Beziehungen zwischen diesen Blöcken definiert. Eine heller-dunkler Beziehung besteht, falls das Verhältnis der Durchschnittshelligkeiten der beiden Blöcke einen vorgegebenen Schwellwert überschreitet. Treffen genügend dieser Regeln zu, wird der untersuchte Bildausschnitt als Gesicht klassifiziert. Eine etwas andere Art von Templates sind Konturmodelle. Dabei handelt es sich um eine Abbildung des Gesichts über die Konturen der Gesichtsmerkmale. Die Konturen werden dabei aus kurzen Liniensegmenten, deren Start- und Endpositionen durch eine Menge von Punkten gegeben ist, zusammengesetzt. Durch kleine Veränderungen der Punktpositionen lassen sich somit die Modelle zu einem gewissen Grad deformieren und sehr leicht skalieren. Aufgrund dieser Eigenschaft werden diese Modelle in der Fachliteratur mit dem englischen Begriff Active Shape Models bezeichnet. Für die Gesichtsdetektion wird dabei ein iterativer Prozess durchgeführt. An einer Kandidatenstelle im Bild wird zunächst ein Durchschnittskonturmodell des Gesichts positioniert (vgl. Abbildung 2.6(c)). Entlang der Normalen an allen Modellpunkten wird dann in der Nähe nach der besten Übereinstimmung für das Modell, wie zum Beispiel der ausgeprägtesten Kante, gesucht. Anschließend wird die Position und Form des Modells aufgrund dieser Informationen so angeglichen, dass das Modell am besten passt. Dieser Vorgang wird solange wiederholt, bis sich eine Konvergenz einstellt. Einen ausführlichen Überblick zu diesem Thema gibt Tim Cootes in [Coo00]. 2.4 Ansichtsbasierte Verfahren Im Gegensatz zu template- und anderen regelbasierten Verfahren spielt bei ansichtsbasierten Verfahren das Vorwissen über das Erscheinungsbild des Gesichts kaum eine Rolle, da dieses Wissen durch statistische Analysen aus Beispielen gelernt wird. Um ein Modell, das den Unterschied zwischen dem gesuchten Gesicht und dem Bildhintergrund ausdrückt, zu erstellen, wird eine Trainingsmenge mit (handsegementierten) Beispielbildern für beide Fälle, Gesicht und Hintergrund, benötigt. Die einfachste Möglichkeit für so einen Klassifikator wäre, sich alle vorhandenen Referenzbilder zu merken, und beim Testen in einer Art Datenbank nachzuschauen, ob der vorgelegte Bildausschnitt bekannt und tatsächlich ein Gesicht ist. Jedoch ist es heutzutage unmöglich alle Erscheinungsformen eines Gesichts bei beliebigem Hintergrund, Verdeckung und Beleuchtung

21 2.4 Ansichtsbasierte Verfahren 13 (a) (b) (c) (d) (e) Abbildung 2.7: Beispiele für Eigengesichter (a) das Durchschnittsgesicht (b)-(e) Eigengesichter der Ordnung 1, 15, 100 und 1000 [Zha98] nur annäherungsweise vollständig zu speichern. Betrachtet man zum Beispiel ein relativ kleines Pixel großes Graustufenbild als einen eindimensionalen Vektor, ergeben sich bereits in dem aufgespannten, 400-dimensionalen Raum unvorstellbar viele Kombinationen 3, die gelernt werden müssten: = Gesichter und andere Objekte bilden jedoch nur jeweils eine kleine Untermenge aus diesem Raum. Falls die Referenzbilder alle dasselbe Objekt mit jeweils kleinen Abweichungen darstellen, kann man sogar annehmen, dass sich die entsprechenden Vektoren in zusammenhängenden Gebieten gruppieren. Wenn man zum Beispiel in dem Graustufenbild zu jedem Pixel den Wert eins addiert oder subtrahiert, ergeben sich bereits andere Kombinationen, die sich jedoch vom Original kaum unterscheiden. Frontalgesichter besitzen zusätzlich weitere Merkmale wie die Positionen der Augen, Mund und Nase, deren Aussehen und Lage bei jedem Menschen zwar etwas variieren, jedoch bei allen Gesichtern zu Ähnlichkeiten führen. Ansichtsbasierte Verfahren versuchen deshalb diese hohe Korrelation der Bilder auszunutzen und mit Hilfe von geeigneten Algorithmen, eine komprimierte Darstellung des Gesichtsraums zu finden Eigenfaces Eines der bekanntesten Verfahren zur Gesichtsdetektion ist die Eigenface-Methode. Um die relevaten Informationen in den Referenzbildern zu finden, bedient man sich dafür der Hautkomponentenanalyse (engl. principle component analysis, PCA). Die Idee dafür basiert auf der von Kirby und Sirovich [Kir90] vorgestellten Methode, die durch Verwendung der Hauptkomponentenanalyse eine effiziente Repräsentation von Gesichtern ermöglicht. Turk und Pentland [Tur91] haben diese Methode später aufgegriffen, um damit eine Gesichtsdetektion zu realisieren. Dafür werden die Trainingsbilder, die alle dieselbe Größe besitzen (m n) und vorher alle an den Augen ausgerichtet wurden, als eindimensionale Vektoren in einem mn-dimensionalen Raum betrachtet. Um die Variation zwischen den Referenzbildern zu bestimmen, werden zunächst das Durchschnittsgesicht und die Eigenvektoren zusammen mit den dazugehörenden Eigenwerten der Kovarianzmatrix berechnet. Die Eigenvektoren bilden dabei die orthogonalen Basisvektoren eines linearen Raums. Jedes verwendete Referenzbild kann durch eine Linearkombinationen aller dieser Basisvektoren exakt rekonstruiert werden. Die Namenesgebung für Eigenfaces leitet sich von der Tatsache ab, dass die Basisvektoren Gesichtern ähnlich sehen, falls sie als m n grosse Bilder interpretiert werden (s. Abbildung 2.7). 3 Die Anzahl der Atome im heutigen bekannten Universum wird auf ca geschätzt.

22 14 Kapitel 2 Gesichtsdetektionsverfahren Extracted window Corrected lighting Histogram equalized (20 by 20 pixels) Receptive fields Hidden units Network Input Output 20 by 20 pixels Preprocessing Neural network Abbildung 2.8: Das Gesichtsdetektionssystem bestehend aus einem Vorverarbeitungsschritt und einem neuronalen Netz [Row98] Um eine Dimensionsreduktion durchzuführen, lässt man einige dieser Eigenvektoren weg, wodurch jedoch ein Rekonstruktionsfehler entsteht. Es kann gezeigt werden, dass der mittlere quadratische Rekonstruktionsfehler minimiert werden kann, falls die Eigenvektoren mit den größten Eigenwerten herangezogen werden. Oft sind nur einige wenige betragsgroße Eigenwerte vorhanden, die auf die intrinsische Dimension hinweisen, während die anderen überwiegend nur Rauschen enthalten. Fasst man k Eigenvektoren mit den größten Eigenwerten spaltenweise in einer Matrix A zusammen, erhält man zusammen mit dem Durchschnittsvektor µ eine lineare Projektion eines mn-dimensionalen Vektors x in den k-dimensionalen Unterraum, der in diesem Zusammenhang im Englischen auch face space genannt wird: ˆx = A T (x µ) Um die Gesichtsdetektion auf einem beliebigen m n-bildausschnitt durchzuführen, wird er mit Hilfe dieser Gleichung in den face space projiziert und anschließend überprüft wie groß der Abstand in diesem Raum entweder zu einem Durchschnittsgesicht oder einem der Referenzbilder ist. Ein Schwellwert legt fest, ob es sich dabei um ein Gesicht oder Hintergrund handelt Neuronale Netze Eine andere Art der Dimensionsreduktion stellen die neuronalen Netze dar. Sie sind in der Lage bei einer entsprechend großen Anzahl von Knoten komplexe Klassengrenzen aus einer Trainingsmenge mit Referenzbildern für Gesichter und Hintergrund zu lernen. In der Trainingsphase werden dabei die Beispielbilder von einem Trainingsalgorithmus wie zum Beispiel Backpropagation dazu benutzt, die internen Netzparameter anzupassen, so dass das Klassifikationsergebnis auf der Trainingsmenge sich immer weiter verbessert. Die Parameter erfassen dabei die Unterschiede und Ähnlichkeiten der präsentierten Beispielbilder und erreichen bei einer finiten Trainingsmenge nach einer gewissen Laufzeit normalerweise eine Konvergenz. In der Literatur werden viele unterschiedliche Arten von neuronale Netzen zur Mustererkennung verwendet. Eines der bekanntesten dieser Ansätze zur Gesichtsdetektion stammt von

23 2.5 Suchstrategie 15 Rowley et al. [Row98]. Das System verarbeitet Pixel große Graustufenbilder und besteht aus drei Stufen: der Vorverarbeitung, dem eigentlichen neuronale Netz (ein Multi-Lagen- Pezeptron) und einem Nachbearbeitungsschritt. Um vorweg eine Datenreduktion vorzunehmen, werden im Vorverarbeitungsschritt die Bildausschnitte einer Normalisierung, die aus [Sun98] übernommen wurde, unterzogen. Um starke Schattenbildungen, die durch extreme Beleuchtungsverhältnisse entstehen, auszugleichen, wird eine lineare Funktion bestimmt, die die Grauwerte am besten annähert und anschließend von den Gauwerten subtrahiert wird. Am einfachsten kann man sich diese Funktion vorstellen, wenn man die einzelnen Grauwerte im Bildausschnitt als Höheninformationen ansieht, wobei helle Pixel Höhen und dunkle Tiefen darstellen. Die lineare Funktion stellt somit eine Ebene dar, die durch diese Höhen läuft und den kleinsten mittleren quadratischen Fehler zu den Grauwerten liefert. Um globale Beleuchtungsvarianzen, die zum Beispiel durch unterschiedliche Kameracharakteristiken verursacht werden, auszugleichen und um den Kontrast zu erhöhen, wird zusätzlich eine Histogramm-Gleichverteilung vorgenommen. Da das neuronale Netz mit Pixel großen Bildausschnitten arbeitet, werden die Pixel direkt mit 400 Eingabe-Knoten verbunden. In der einzigen inneren Schicht befinden sich insgesamt 26 Knoten, von denen vier die Pixel großen Quadranten des Bildausschnitts verarbeiten, 16 mit jeweils kleineren 5 5 Blöcken verbunden sind und weitere sechs auf 20 6 horizontale Streifen reagieren (vgl. Abbildung 2.8). Das trainierte neuronale Netz gibt für ein Testmuster an dem Ausgangs-Knoten einen Wert zwischen 1 für Kein-Gesicht und +1 für Gesicht aus. Da das fertig trainierte Netz häufig an einzelnen Stellen Hintergrund als ein Gesicht erkennt, wird im Nachbearbeitungsschritt in der kleinen Umgebung eines Treffers die Anzahl weiterer Treffer gezählt. Überschreitet dieser Wert einen festgelegten Schwellwert, wird davon ausgegangen, dass an der gefundenen Stelle ein Gesicht vorliegt. Zusätzlich werden in dieser Phase sich ähnelnde, überlappende Treffer zu einem einzigen vereinigt. 2.5 Suchstrategie Die meisten Gesichtsdetektionsverfahren, insbesondere die ansichtsbasierten, erwarten einen Bildausschnitt einer festgelegten Größe, den sie entweder als Gesicht oder Nicht-Gesicht klassifizieren. Deshalb verfolgen sie im Grunde auch alle dieselbe Suchstrategie, um Gesichter unterschiedlicher Größen im Bild zu finden. Hat ein Gesicht im Bild dieselbe Größe wie der erwartete Bildausschnitt, kann es leicht gefunden werden, indem ein Suchfester dieser Größe Schritt für Schritt in horizontaler und vertikaler Richtung über das komplette Bild geschoben wird. An jeder resultierenden Suchposition wird der Bereich im Suchfester ausgeschnitten und dem Detektionsalgorithmus übergeben. In den seltensten Fällen hat jedoch ein Gesicht im Bild dieselbe Größe wie das verwendete Suchfenster. Um Gesichter verschiedener Ausmaße zu detektieren, wird deshalb das Bild um einen festgelegten Faktor kleiner als eins mehrmals skaliert, so dass eine so genannte Bildpyramide mit immer kleiner werdenden Auflösungen des Ausgangsbildes entsteht. Für jede dieser Skalierungstuffen wird anschließend ein kompletter vertikaler und horizontaler Suchvorgang wiederholt (s. Abbildung 2.9).

24 16 Kapitel 2 Gesichtsdetektionsverfahren Abbildung 2.9: Ein Beispiel für die Suchstrategie in einem Bild. Zunächst durchläuft das Suchfenster das komplette Bild in vertikaler und horizontaler Richtung. Anschießend wird das Bild in seiner Auflösung stufenweise verkleinert, wobei der komplette Suchlauf jeweils wiederholt wird. Diese Methode wirkt sich jedoch negativ auf die Laufzeit des Detektors aus, da für jede dieser Skalierungsstufen ein vollständiger Suchlauf durchgeführt werden muss, so dass man gezwungen ist, einen Kompromiss zu schließen. Wählt man viele Skalierungsstufen, dann können zwar Gesichter in mehr unterschiedlichen Größen detektiert werden, dieser Vorteil wird aber durch einen höheren Gesamtrechenaufwand erkauft. Bei zu wenigen Skalierungstufen können jedoch einige Gesichter im Bild nicht detektiert werden, falls ihre Ausmaße nach den Skalierungen in keine der Abstufungen passt. Ein weiterer Aspekt, der sich auf den Rechenaufwand und die Detektionsgenauigkeit auswirkt, ist der verwendete Skalierungsalgorithmus. Wird ein einfacher Algorithmus gewählt, der zum Beispiel nur durch Auslaßen von Pixel die Auflösung reduziert, kann der Rechenaufwand zwar minimiert werden, die Bildqualität verschlechtert sich jedoch mit jeder Skalierung, da Bildinformationen vollständig verschwinden. Bei schlechter Bildqualität können Gesichter aber unter Umständen nicht mehr vom Detektor als solche erkannt werden. Bessere Skalierungsalgorithmen verwenden deshalb Interpolationen, um die Bildqualität zu steigern, was jedoch auch den benötigten Rechenaufwand erhöht. 2.6 Zusammenfassung Im Laufe der Zeit sind viele unterschiedliche Verfahren entstanden, die den Versuch unternehmen, die Schwierigkeiten der Detektion des Gesichts in einem Bild auf die eine oder andere Art zu bewältigen. Einige dieser Verfahren bauen auf dem menschlichen Wissen auf und versuchen, durch handdefinierte Regeln unter Verwendung von visuellen Merkmalen das Aussehen des Gesichts im Bild zu umschreiben. Eine ausgewogene Definition eines Regelwerks gestaltet sich jedoch schwierig. Bei zu strikten Regeln werden unter Umständen viele Gesichter nicht erkannt, da die Vorgaben zu nahe an einer Idealvorstellung des Gesichts liegen. Um auch bei erschwerten Bedingungen, in denen einige Merkmale unzureichend erkannt werden, eine Detektion vornehmen zu können, muß eine Lockerung der Beschreibung vorgenommen werden. Dadurch steigt jedoch auch das Risiko, dass zu viel des Bildhintergrundes auf diese Umschreibung zutrifft und somit als Gesicht klassifiziert wird. Deshalb müssen robuste Merkmale verwendet werden, die möglichst einfach zu bestimmen sind, jedoch auch bei variierenden Beleuchtungssituationen ihre Eigenschaften nicht verlieren. Texturmerkmale, die die Strukturen von Haut und Haaren erfassen können, sind zu aufwendig,

25 2.6 Zusammenfassung 17 um eine schnelle Detektion durchführen zu können. Farbmerkmale sind einfach zu bestimmen und bieten eine gute Identifikation von Hautregionen, jedoch stehen nicht auf allen System Farbinformationen zur Verfügung. Durch zusätzliche Farbkanäle vervielfacht sich ausserdem das Datenaufkommen und damit der Rechenaufwand. Dahingegen können Kantenmerkmale auch ohne Farbinformationen bestimmt werden und stellen eine gute Abwägung zwischen Zuverlässigkeit und Berechnungsaufwand dar. Das Verwenden von Templates für die Gesichtsdetektion hat den Vorteil, dass dieses Verfahren sehr einfach ist. Die Vorlage wird mit einem Bildauschnitt verglichen und die Abweichung durch ein Fehlermaß bestimmt. Jedoch gerade dies führt auch zu einem Nachteil. Menschliche Gesichter unterscheiden sich von einer Person zur anderen. Dieser Umstand wird durch Beleuchtungsverhältnisse noch weiter verschäft, so dass es schwierig ist, Vorlagen zu finden, die die Gesichter aller Personen in allen Situationen gut annähern. Ansichtsbasierte Verfahren umgehen die Schwierigkeiten der passenden Regel- oder Vorlagenfindung, indem dieser Prozess automatisiert wird. Durch statistische Analyseverfahren werden Unterscheidungsmerkmale zwichen Gesichtern und Bildhintergrund aus Beispielen gelernt. Das Hauptproblem ist hierbei, einen Lernalgorithmus zu finden, der die Trainingsbeispiele einer geeigneten Dimensionsreduktion unterzieht, so dass eine Diskriminatenfunktion gebildet werden kann, die die Bildausschnitte mit Gesichtern von Nicht-Gersichern unterscheidet. Leistungsfähige Lernalgorithmen mit guten Klassifikationsergebnissen haben jedoch den Nachteil, dass der resultierende Detektor komplex ist und damit die Laufzeit negativ beeinflusst. Zudem arbeiten solche Verfahren mit Suchfenstern fester Größe, so dass während der Detektion zusätzlich aufwendige Bildskalierungen vorgenommen werden müssen.

26

27 Kapitel 3 Viola-Jones Gesichtsdetektor Wie man dem vorangegangenen Kapitel entnehmen kann, ist ein Problem, mit dem man konfrontiert wird, die Gestaltung des Gesamtsystems. Ein wichtiges Kriterium ist dabei, dass der Detektor einen möglichst kleinen Klassifikationsfehler aufweist. Idealerweise beträgt dieser Null, d.h. er erkennt jedes Gesichts im Bild und verwirft zuverlässig den Hintergrund. Die Betonung liegt dabei darauf, dass bei beiden dieser Bedingungen das Optimum angestrebt werden muss. Erkennt ein Detektor alle realen Gesichter im Bild, liefert aber ansonsten viele Treffer, wo gar keine Gesichter zu sehen sind, ist er in der Praxis genauso nicht einsetzbar, wie einer, der kaum ein Gesicht erkennt. Zusätzlich darf ein Gesichtsdetektionssystem nicht zu komplex ausfallen. Ist die Struktur des Detektors zu aufwendig in der Verarbeitung, dann können unter Umständen keine kurzen Laufzeiten während der Detektionsphase eingehalten werden. Bei komplexen Datensätzen wie Gesichtern stehen diese beiden Anforderungen oft im Konflikt. Wählt man einen der klassischen Klassifikatoren mit guten Klassifikationseigenschaften, wie zum Beispiel ein neuronales Netz, dann besitzen diese Systeme oft eine relativ lange Laufzeit, um das Muster im gesamten Bild zu finden. Mit einfacheren Klassifikatoren erhält man jedoch meist nicht den gewünschten niedrigen Klassifikationsfehler. In diesem Kapitel wird deshalb ein relativ neues, ansichtsbasiertes Verfahren vorgestellt, das von Viola und Jones entwickelt wurde [Vio01b] und beide Vorteile bietet: schnelle Laufzeiten bei guten Detektionsergebnissen. Der Viola-Jones Detektor ist in der Lage, mit Hilfe blockbasierter Filter Frontalgesichter in Graustufenbildern zu erkennen. Die Filter extrahieren aus dem Suchfenster Merkmalswerte und können durch eine spezielle Darstellung des Bildes an jeder Position in beliebiger Skalierung sehr effizient berechnet werden. Allerdings ist die gesamte zur Verfügung stehende Anzahl der Merkmalsfilter sehr hoch, so dass ein Weg gefunden werden muss, nur die aussagekräftigen Merkmalsfilter zu gewinnen. Viola und Jones benutzen für diesen Zweck eine adaptive Version des Boosting-Algorithmus, der es ermöglicht, mehrere relativ leistungsschwache Klassifikatoren zu einem leistungsstärkeren Ensemble-Klassifikator zusammenzufassen. Um die Geschwindigkeit des Systems zu steigern, verwenden Viola und Jones anstatt eines einzigen monolithischen Detektors mehrere kleinere, die sie zu einer Kaskadenstruktur zusammenschließen. Ähnliche hierarchische Ansätze wurde bereits in früheren Detektionsverfahren verwendet. Die Detektoren sind dabei nach aufsteigender Komplexität geordnet. In dieser linearen Anordnung wird ein Bildausschnitt nur dann zur Analyse an den nächsten Detektor weitergereicht, falls er nicht bereits von seinem Vorgänger als Bildhintergrund klassifiziert wurde. 19

28 20 Kapitel 3 Viola-Jones Gesichtsdetektor Insgesamt ist das System anderen Gesichtsdetektionsverfahren überlegen und ist zum Beispiel 15-mal schneller als der von Rowley vorgeschlagene Ansatz mit neuronalen Netzen (vgl. Abschnitt 2.4.2). In ihren Experimenten auf einem 700 MHz Pentium 3 erreichen Viola und Jones mit diesem Systemaufbau eine durchschnittliche Verarbeitungszeit von 15 Bildern pro Sekunde für ein Pixel großes Bild und sprechen deshalb von einem Real-Time Detector. 3.1 Aufbau des Detektors Wie auch bei anderen ansichtsbasierten Verfahren arbeitet der Viola-Jones Detektor mit einem Suchfenster, das zum Auffinden von Gesichtern über das komplette Bild geschoben wird. Jeder Bildauschnitt wird dabei einem Detektor übergeben, der eine Entscheidung trifft, ob auf dem Ausschnitt ein Gesicht oder Bildhintergrund zu sehen ist. Der Detektor besteht aus einer Reihe von Merkmalsfiltern 1, zu denen jeweils ein Klassifikator gehört. Jedes Merkmal führt dabei eine Transformation des Bildauschnitts durch und berechnet einen Merkmalswert. Ausgehend von diesem Wert trifft der zum Merkmal gehörende Klassifikator eine Entscheidung, ob der Inhalt des Suchfensters als Gesicht oder Bildhintergrund eingestuft wird. Damit gibt jeder dieser Merkmal-Klassifikator-Kombinationen eine Stimme ab. Da nicht jedes der Merkmale bzw. der Klassifikatoren gleich zuverlässig ist, fliesst diese Stimme nur gewichtet in einen Mehrheitsentscheid ein. Der gewichtete Mehrheitsentscheid bestimmt dadurch das endgültige Ergebnis der Klassifikation für den selektierten Bildausschnitt. 3.2 Merkmale und ihre Berechnung Anstatt direkt auf pixelbasierte Methoden aufzusetzen, verwenden Viola und Jones Merkmale. Wie man aus dem vorangegangenen Kapitel entnehmen kann, werden Merkmale überwiegend eingesetzt, um gröbere Strukturen des Gesichts zu erfassen. Dieses hat den Vorteil, dass solche Verfahren allgemein robuster sind, da sie kleinere Variationen im Gesicht wesentlich besser kompensieren können als rein pixelbasierte Ansätze Blockmerkmale Blockbasierte Merkmale haben sich bereits mehrfach in der Gesichtsdetektion bewährt (vgl. Abbildungen 2.2(d) und 2.6(b)). Auch Viola und Jones verwenden solche Merkmale, die zusätzlich einige Vorteile mit sich bringen. Die Basis bilden fünf einfache, rechteckige Merkmale, die Helligkeitsdifferenzen in einzelnen Regionen eines Bildausschnitts erfassen. Jedes Merkmal ist dafür in mehrere gleich große, rechteckige Bereiche unterteilt (s. Abbildung 3.1) und kann im Suchfenster an unterschiedlichen Positionen plaziert werden (s. Abbildung 3.2(a)). Der Merkmalswert wird berechnet, indem die Summe aller Pixel in den dunklen Regionen von der Summe aller Pixel in den hellen Regionen subtrahiert wird. Im Grunde kann man auch die hellen Regionen von den dunklen abziehen. Der einzige Unterschied ist das Vorzeichen des Ergebnisses. Durch die nebeneinander liegenden Regionen ähneln diese Merkmale den so genannten Haar-Wavelets. Je nach Größe eines Merkmals erfasst es andere Eigenschaften der 1 In der gängigen Literatur zum Viola-Jones Detektor werden die Merkmalsfilter jedoch als features bezeichnet, was Merkmal bedeutet. Um konsequent zu bleiben, werden deshalb im weiteren Verlauf Filter ebenfalls als Merkmale und die damit berechneten Werte als Merkmalswerte bezeichnet.

29 3.2 Merkmale und ihre Berechnung 21 (a) (b) (c) (d) (e) Abbildung 3.1: Die fünf von Viola und Jones verwendeten Merkmalstypen. Der Merkmalswert wird berechnet, indem die Summe aller Pixel in den dunklen Regionen von der Summe aller Pixel in den hellen Regionen subtrahiert wird. Während die Merkmale in (a) und (b) Kanten detektieren, konzentrieren sich die beiden Drei-Blockmerkmale (c) und (d) eher auf Linien. Das Vier-Blockmerkmal (e) ist auf diagonale Strukturen ausgelegt. (a) (b) Abbildung 3.2: Ein Blockmerkmal kann im Suchfenster an mehreren Positionen in unterschiedlichen Skalierungen platziert werden. Frequenzdomäne. Während großflächige Merkmale die niederfrequenten Anteile bestimmen und somit eher Helligkeitsunterschiede in größeren Regionen untersuchen, konzentrieren sich die kleineren, schmaleren Merkmale auf die hochfrequenten Anteile und sind dadurch in der Lage schmale Kanten und Linien zu erkennen. Obwohl diese Merkmale sehr einfach sind und eigentlich nur horizontale, vertikale und zu einem gewissen Teil diagonale Strukturelemente erfassen können, besitzen sie zu anderen, lestungsfähigeren Merkmalen einige entscheidende Vorteile. Durch ihre Blockstrukturen lassen sich die Merkmale sehr einfach skalieren. Skaliert man ein Suchfenster um einen bestimmten Faktor, dann reicht es, alle Parameter eines Merkmals ebenfalls mit diesem Faktor zu multiplizieren, um eine maßstabgetreue Repräsentation des Merkmals im Suchfenster zu erhalten. Ausserdem lassen sich diese Merkmale in jeder beliebigen Skalierung mit Hilfe einer speziellen Darstellung des Ausgangsbildes, dem so gennanten Integralbild, sehr effizient und einfach berechnen.

30 22 Kapitel 3 Viola-Jones Gesichtsdetektor Integralbild Um ein Blockmerkmal auswerten zu können, müssen die Helligkeitswerte in den einzelnen Regionen (die hellen und dunklen Bereiche) aufsummiert werden. Dadurch ergeben sich unterschiedliche Berechnungszeiten, da für größere Filter und damit größere Regionen entsprechend mehr Additionen durchgeführt werden müssen. Der ursprüngliche Viola-Jones Gesichtsdetektor verwendet jedoch insgesamt 6060 solcher Merkmale. Eine effiziente Berechnung aller dieser Summen wäre nach dem herkömmlichen Vorgehen damit zur Laufzeit nicht möglich. Deshalb setzen die beiden Autoren eine spezielle Darstellung des Bildes ein, um Merkmalswerte in konstanter Zeit berechnen zu können. Diese Darstellung ist aus Textur-Mapping-Verfahren bekannt und wird dort als Summed-Area-Table bezeichnet. Um den Unterschied in der Anwendung dieses Prinzips als Bildanalyseverfahren herauszustellen, nennen die beiden Autoren es deshalb Integralbild (engl. integral-image). Die Grundidee für das Integralbild lässt sich anhand eines kleinen Beispiels verdeutlichen. Betrachtet man eine reellwertige Funktion f(x), dann kann die Summe dieser Funktion im Intervall [a; b] durch ein Integral bestimmt werden: b a f(x) dx Muss dieses Integral oft mit jeweils anderen Integrationsgrenzen ausgewertet werden, ist es vorteilhafter zuerst die Stammfunktion zu bilden. F (t) = t f(x) dx Dadurch lässt sich der Aufwand für die wiederkehrenden Integrationen auf jeweils eine einfache Subtraktionen reduzieren: b a f(x) dx = F (b) F (a) Dieses Prinzip lässt sich leicht auf Graustufenbilder übertragen. Das Integralbild hat dieselben Ausmaße wie das ursprüngliche Bild. Jeder Eintrag I(x, y) darin enthält die Summe aller Pixel i(x, y) aus einem rechteckigen Bereich des Ausgangsbildes, der durch den Ursprung und einschließlich Punkt (x,y) aufgespannt wird (s. Abbildungen 3.3(a) und (b)): I(x, y) = x k=0 l=0 y i(k, l) Durch Umschreiben dieser Berechnungsvorschrift in zwei rekursive Gleichung R(x, y) = R(x, y 1) + i(x, y) I(x, y) = I(x 1, y) + S(x, y) wobei S(x, 1) = 0 bzw. I( 1, y) = 0 gilt und R(x, y) die kumulierte Spaltensumme darstellt, lässt sich das Integralbild in nur einem Durchgang effizient berechnen. Durch diese Darstellung kann die Pixelsumme S innerhalb eines beliebigen Rechtecks an der Position (x, y) mit der Breite w und Höhe h durch die entsprechenden vier Pixelsummen aus

31 3.2 Merkmale und ihre Berechnung 23 (a) Ausgangsbild (b) Integralbild (c) Ausgangsbild (d) Integralbild Abbildung 3.3: Funktionsweise eines Integralbildes: (a)-(b) Um die Summe aller Pixel zwischen dem Ursprung und einem beliebigen Punkt zu bestimmen, reicht beim Integralbild ein einziger Zugriff (c)-(d) Die Summe in einem beliebigen Rechteck lässt sich durch vier Teilsummen berechnen: S = D B C + A dem Intergralbild A = I(x 1, y 1), B = I(x + w 1, y 1), C = I(x 1, y + h 1) und D = I(x + w 1, y + h 1) in konstanter Zeit berechnet werden (s. Abbildungen 3.3(c) und (d)): S = D B C + A Damit beschränkt sich der Aufwand für die Berechnung eines Rechtecks auf vier Zugriffe auf das Integralbild, zwei Subtraktionen und eine Addition. Liegen die Rechtecke wie bei den von Viola und Jones verwendeten Merkmalen unmittelbar aneinander, lassen sich sogar einige Zugriffe auf das Integralbild einsparen. So reichen zum Beispiel bei den beiden Merkmalen aus Abbildung 3.1(a) und (b) bereits sechs anstatt acht Zugriffe, um die Pixelsummen der beiden Rechtecke zu bestimmen, da die beiden mittleren Pixelsummen für beide Berechnungen herangezogen werden können Bildnormalisierung Ähnlich wie bei neuronalen Netzen, bei denen die Eingabevektoren zunächst linear skaliert werden, um einen möglichst gleichmäßigen Wertebereich zu erhalten, führen Viola und Jones für jeden Bildausschnitt im Suchfenster eine Varianznormalisierung der Helligkeitswerte durch, bevor dieser den Detektor durchläuft. Diese Maßnahme dämmt Einflüsse variierender Beleuchtungssituationen ein und entspricht einer Kontrasterhöhung im Bildausschnitt. Dafür wird für jeden Pixelwert i xy eine Transformation durchgeführt, die unter anderem als z-score bekannt ist: î xy = i xy µ σ wobei µ der Mittelwert und σ die Standardabweichung aller Pixel im Bildausschnitt ist. Durch die speziellen Eigenschaften der gewählten Blockmerkmale lässt sich diese Umformung direkt in die Berechnung des Merkmalwertes einbeziehen. Als Beispiel soll hierfür die Merk-

32 24 Kapitel 3 Viola-Jones Gesichtsdetektor malswertberechnung eines Zwei-Blockmerkmals, wie zum Beispiel aus den beiden Abbildungen 3.1(a) und (b), dienen. Ein Zwei-Blockmerkmal besteht aus zwei rechteckigen Bereichen, die hier als B 1 und B 2 bezeichnet werden. Daraus ergibt sich folgende Rechnung: i xy B 1 î xy i xy B 2 î xy = i xy µ σ i xy B 1 i xy µ σ i xy B 2 Die Besonderheit liegt darin, dass die Anzahl der Pixel in beiden rechteckigen Regionen B 1 und B 2 gleich groß ist. Daduch lässt sich µ aus der Gleichung eliminieren, so dass eine einfachere Darstellung entsteht: i xy B 1 i xy i xy B 2 i xy σ Anstatt jeden einzelnen Helligkeitswert im Suchfenster einzeln zu normalisieren, reicht es somit, den Merkmalswert auf dem ursprünglichen Weg, mit wenigen Zugriffen auf das Integralbild, zu berechnen und anschließend durch die Standardabweichung zu dividieren. Für die Drei- und Vier-Blockmerkmale ergibt sich eine ähnliche Rechnung. Allerdings muss für das Drei-Blockmerkmal die Pixelsumme des mittleren Rechtecks zunächst verdoppelt werden, damit ein Gleichgewicht zwischen Addition und Subtraktion (hellen und dunklen Regionen) entsteht. Für die Berechnung der Standardabweichung lässt sich σ mit Hilfe einer Quadratsumme über alle Pixel x im Suchfenster ausdrücken: 1 σ = x N 2 µ 2 wobei N die Anzahl aller beteiligten Pixel ist. Der Mittelwert kann einfach mit Hilfe des Integralbildes berechnet werden. Um die Quadratsumme bestimmen zu können, wird ein zweites Integralbild angelegt, in dem die Pixelwerte zum Quadrat parallel zum normalen Integralbild aufsummiert werden. Damit beschränkt sich der Aufwand für die Berechnung von σ auf acht Zugriffe auf die Integralbilder und wenige zusätzliche Rechenoperationen. 3.3 Auswahl der relevanten Merkmale Die Basis-Blockmerkmale können auf unterschiedliche Weise im Suchfenster positioniert werden, wodurch eine große Anzahl von Kombinationen ensteht. Obwohl die Blockmerkmale sehr schnell berechnet werden können, wäre es sehr ineffizient, wenn alle möglichen Kombinationen zur Klassifikation herangezogen würden. Aus diesem Grund müssen nur die wirklich relevanten Merkmale, die eine schnelle Unterscheidung zwischen Gesicht und Bildhintergrund erlauben, aus dieser Merkmalsmenge gewonnen werden Anzahl der Merkmale im Suchfenster Jedes Merkmal hat eine Mindestbreite und -höhe. Das Basismerkmal aus Abbildung 3.1(b) kann zum Beispiel eine minimale Höhe von eins besitzen, die Breite darf aber nicht zwei unterschreiten, da ansonsten keine zwei separaten Regionen mehr untergebracht werden könnten. Betrachtet man ein W H großes Suchfenster, dann kann ein w h großes Basismerkmal

33 3.3 Auswahl der relevanten Merkmale 25 Merkmal w/h X/Y Anzahl (a) ; (b) 1/2 ; 2/1 24/12 ; 12/ (c) ; (d) 1/3 ; 3/1 24/8 ; 8/ (e) 2/2 12/ Summe Tabelle 3.1: Anzahl der möglichen Merkmalsfilter in einem Suchfenster darin an mehreren Positionen in unterschiedlichen horizontalen und vertikalen Skalierungen platziert werden (s. Abbildung 3.2(b)). Wenn X = W/w und Y = H/h die maximalen Skalierungsfaktoren eines Prototypfilters in der horizontalen und vertikalen Richtung sind, ist die Anzahl der möglichen Anordnungen im Suchfenster nach Lienhart et al. [Lie03] wie folgt gegeben: ( XY W + 1 w X + 1 ) ( H + 1 h Y + 1 ) 2 2 Viola und Jones setzen für ihren Gesichtsdetektor ein Pixel großes Suchfenster ein. Wie man Tabelle 3.1 entnehmen kann, ergeben sich daraus für ein solches Suchfenster bereits über Merkmalsfilter. Die Anzahl dieser Merkmale ist somit um ein vielfaches größer als die direkte Anzahl der Pixel im Bildausschnitt dieser Ausmaße 2. Alle diese Merkmale zu verwenden ist nicht sinnvoll, da der Rechenaufwand unverhältnismäßig groß wäre. Viel wahrscheinlicher ist es, dass nur ein kleiner, repräsentativer Teil aus dieser Menge für die Beschreibung und Detektion des Gesichts relevant ist Einführung in Boosting Im Folgenden möchte ich eine kurze Einführung zu den Grundüberlegungen von Boosting geben, um anschließend zu zeigen, wie Viola und Jones diese Methode zur Auswahl der relevanten Merkmale einsetzen. Boosting gehört zu den so genannten Ensemble-Methoden. Die zugrunde liegende Idee von Ensemble-Lernen ist einfach. Anstatt die endgültige Entscheidung aufgrund einer Hypothese zu bilden, zieht man die Meinung mehrerer Experten heran. Im einfachsten Fall trifft man dann seine Entscheidung durch einen Mehrheitsentscheid. Plant man zum Beispiel einen Kauf einer bestimmten Aktie und fragt fünf Fachleute nach ihrer Zukunftsprognose für den Kursverlauf, dann entscheidet man sich für den Kauf, wenn die Mehrheit, also hier mindestens drei, der Fachleute eine positive Entwicklung voraussagen. Man hofft, dass das Risiko einer Fehlinvestition durch die kombinierte Entscheidung nun deutlich kleiner ausfällt als basierend auf einer einzigen Meinung. Die ursprüngliche Idee zu Boosting wurde von Schapire in [Sch90] vorgestellt. Es ist ein Verfahren, mit dem es möglich ist, den Fehler eines beliebigen zugrunde liegenden Basislernalgorithmus zu verbessern. Die einzige an den Basisalgorithmus geknüpfte Bedingung ist, dass er zu einer gegebenen Menge an Beispieldaten eine Regel liefert, die diese Daten nur etwas besser als ein zufälliger Entscheidungsprozess der entsprechenden Klassen zuordnet. Liegt ein Zweiklassenproblem vor, d.h. jedes Musterbeispiel gehört nur einer von zwei Klassen an zum Beispiel Gesicht und Nicht-Gesicht, dann ordnet ein zufälliger Entscheidungsprozess 2 In einem großen Bildausschnitt befinden sich 576 Pixel.

34 26 Kapitel 3 Viola-Jones Gesichtsdetektor jedes ihm vorgelegte Muster durch einen Münzwurf zufällig einer dieser Klassen zu. Statistisch betrachtet trifft dieser Klassifikator in 50% aller Fälle eine falsche Entscheidung. Der Klassifikationsfehler, also der Anteil der falsch klassifizierten Beispiele, beträgt in diesem Fall damit genau 0.5. Für Boosting reicht aber bereits ein Klassifikator, dessen Fehlerrate nur etwas unter 0.5 zu liegen braucht, um daraus ein Ensemble zu konstruieren, das eine höhere Treffergenauigkeit besitzt. Aus einem schwachen Lernkonzept wird also ein leistungsfähigeres erzeugt (engl. boosted). Weil so ein Basisklassifikator nur eine schwache Klassifikationsleistung erbringen muss, werden in der englischen Literatur vorwiegend die Begriffe weak learner und weak classifier für den Basislernalgorithmus bzw. den resultierenden Klassifikator benutzt. Da sich diese Bezeichnungen quasi als Standard etabliert haben, werde ich im Folgenden die eingedeutschten Varianten Weak-Lernalgorithmus und Weak-Klassifikator benutzen. Die Idee von Boosting lässt sich am Beispiel mit den Wirtschaftsfachleuten, die man nach ihrer Meinung zum Aktienkursverlauf fragt, verdeutlichen. Haben die ausgewählten Fachleute zu dem Thema denselben Artikel aus dem Wirtschaftsmagazin der letzten Wochen gelesen, dann ist es unwahrscheinlich, dass sie in ihren Entscheidungen besonders stark abweichen. Im Grunde würde man billiger davonkommen, wenn man nur einen von ihnen engagiert, weil sie von derselben Datenlage ausgehen. Nimmt man jedoch an, dass eine größere Gruppe von Fachleuten zur Verfügung steht, und jeder von ihnen auf eine bestimmte Quelle spezialisiert ist der eine macht zum Beispiel seine Entscheidungen aufgrund von Jahresbilanzen zu einem Unternehmen, der andere trifft seine Prognose über den gemittelten Kursverlauf der letzten Monate, dann kann zwar jeder dieser Experten für sich alleine keine absolute, richtige Vorhersage machen, jedoch ist die Vorhersage auf jeden Fall besser als ein zufälliger Entschluss. Nun rekrutiert man sein Expertenteam, indem man dem ersten Fachmann zu Vorhersagen über verschiedene Aktienkurse befragt, deren Ausgang man bereits kennt. Anschließend vergleicht man seine Ergebnisse und schaut sich an, in welchen Fällen er eine falsche Entscheidung getroffen hat und sortiert diese als so genannte Härtefälle aus. Als nächstes Teammitglied sucht man sich dann denjenigen, der die zutreffendsten Vorhersagen auf diesen Härtefällen erbringt. Bei Bedarf sucht man sich nach diesem Schema dann weitere Experten. In Schapires Boosting-Algorithmus besteht das Team bzw. das Klassifikatorensemble aus drei Experten, die wie folgt trainiert werden: 1. Zuerst werden aus einer Trainingsdatenmenge D zufällig n 1 Beispiele entfernt und in eine neue Trainingsmenge D 1 eingefügt. Mit Hilfe des Weak-Lernalgorithmus wird dann aus D 1 der erste Klassifikator h 1 erzeugt. 2. Nun erstellt man eine zweite Trainingsmenge D 2, indem eine Münze geworfen wird. Wenn die Münze Kopf anzeigt, werden die restlichen Beispiele aus D der Reihe nach dem eben erzeugten Klassifikator h 1 präsentiert, bis das erste Beispiel falsch klassifiziert wird. Dieses Beispiel wird aus D entfernt und in D 2 eingefügt. Zeigt die Münze Zahl, dann wird der Vorgang umgekehrt. Es wird also das nächste Beispiel in D gesucht, das von h 1 richtig klassifiziert wird und anschließend nach D 2 verschoben. Dieser Prozess wird solange wiederholt, bis D ganz abgearbeitet ist. Somit wird die Hälfte der Beispiele aus D 2 von h 1 richtig klassifiziert, die andere nicht. Auf D 2 wird dann der zweite Klassifikator h 2 trainiert.

35 3.3 Auswahl der relevanten Merkmale Als nächstes wird eine dritte Trainingsmenge D 3 erzeugt, die weder von h 1 noch von h 2 zufriedenstellend klassifiziert wird. Dafür werden die übrig gebliebenen Beispiele jeweils h 1 und h 2 vorgelegt. Wenn die Ergebnisse der beide Klassifikatoren für ein Beispiel übereinstimmen, wird dieses Beispiel ignoriert, ansonsten zu D 3 hinzugefügt. Anschließend wird der letzte der drei Klassifikatoren h 3 auf D 3 trainiert. Die kombinierte Entscheidung wird dann einfach über einen Mehrheitsentscheid der drei Klassifikatoren getroffen, wobei die Auswertung des dritten Klassifikators sogar eingespart werden kann, wenn die ersten beiden sich einig sind. Durch rekursives Anwenden dieses Verfahrens lässt sich der Ensemblefehler sogar noch weiter senken. Da die Beispiele aus D stufenweise aussortiert werden, nennt man das Verfahren im englischen auch boosting by filtering. Durch das Filterverfahren zur Bestimmung von D 2 wird erreicht, dass der Fehler von h 1 getestet auf D 2 genau 0.5 beträgt. Die Trainingsbeispiele aus D 2 unterscheiden sich somit von denen aus D 1, so dass der zweite Klassifikator eine andere, komplementäre Verteilung zu lernen gezwungen ist. Der Effekt des Filterns besteht nun darin, dass sich die nachfolgenden Klassifikatoren auf die schwer erlernbaren Beispiele konzentrieren. Obwohl Boosting sehr einfach zu sein scheint, gibt es einen gravierenden Nachteil. Da die drei Klassifikatoren aus dem Ensemble gleichberechtigt am Mehrheitsentscheid beteiligt sind, ist es sinnvoll, dass auch die Beispiele aus der Grundmenge D zu gleichen Teilen auf D 1, D 2 und D 3 verteilt werden. Ein Problem entsteht nun, falls schon der erste Klassifikator den Großteil der Beispiele korrekt einordnen kann. Dadurch bleibt nur ein kleiner, nicht repräsentativer Bruchteil aus D für das Training der beiden nächsten Klassifikatoren übrig. Um dieses Problem zu umgehen, braucht man häufig eine sehr große Trainingsmenge Discrete AdaBoost Im Gegensatz zum eben vorgestellten Boosting-Verfahren existiert bei dem von Freund und Schapire vorgestellten AdaBoost.M1 Algorithmus [Fre95, Fre96, Fre99] das Problem der immer kleiner werdenden Trainingsmenge nicht. Wie der Name schon andeutet, gehört AdaBoost in die Familie der Boosting-Algorithmen. Es hat sich in den letzten 10 Jahren zum populärsten Boosting-Algorithmus entwickelt, weshalb inzwischen durch konsequente Forschung und vielfachen praktischen Einsatz viele angepasste Varianten entstanden sind. Da AdaBoost.M1 das ursprüngliche Verfahren ist, und die Weak-Klassifikatoren nur binäre Aussagen treffen müssen, d.h. sich nur zwischen zwei Klassen entscheiden brauchen und ansonsten keine Informationen über die Güte der Entscheidung liefern, nennt man das Verfahren auch einfach nur AdaBoost bzw. Discrete AdaBoost. Der Unterschied zum klassischen Boosting besteht darin, dass iterativ beliebig viele Weak- Klassifikatoren zum Ensemble hinzugefügt werden können, bis ein gewünschter kleiner Fehler erreicht ist. Dabei passt sich AdaBoost adaptiv an den Trainingsfehler der Weak- Klassifikatoren an, was sich auch in der Namensgebung widerspiegelt.

36 28 Kapitel 3 Viola-Jones Gesichtsdetektor Algorithmus 1 Discrete AdaBoost Gegeben ist eine Trainingmenge (x 1, y 1 ),..., (x N, y N ) mit y i { 1, +1} für Hintergrund- bzw. Objektbeispiele Initialisiere Gewichte: wi 1 = 1 N für i = 1... N Für t = 1... T 1. Unter Verwendung des WEAK-LERNVERFAHRENS trainiere einen Weak- Klassifikator h t (x) { 1, +1}, der den kleinsten gewichteten Klassifikationsfehler ɛ t = i:h t(x i ) y i w ( i t liefert ) 2. Berechne: α t = 1 2 ln 1 ɛt ɛ t 3. Aktualisiere Gewichte: wi t+1 = wi t exp( y iα t h t (x i )) 4. Normalisiere Gewichte: wi t+1 = P wt+1 i [ i wt+1 i T ] Ensemble Klassifikator: H T (x) = sgn t=1 α th t (x) Um das zu erreichen, wird eine gewichtete Trainingsmenge verwaltet. In dieser Trainingmenge erhält jedes Beispiel zusätzlich ein Gewicht w i 0, das bestimmt wie groß die Wahrscheinlichkeit ist, dass dieses Beispiel für die nächste Trainingsmenge gewählt wird. Die Gewichte werden im Laufe der Zeit modifiziert, so dass im Gegensatz zu boosting by filtering ein Beispiel mehrmals zum Training herangezogen werden kann. Wie beim ursprünglichen Boosting wird der Weak-Klassifikator dann auf den ungewichteten Beispielen trainiert. Diese Variante nennt man deshalb im englischen auch boosting by resampling. Oft ist es jedoch möglich, dass der Weak-Lernalgorithmus mit gewichten Beispielen direkt umgehen kann. Dabei wird ihm die komplette Trainingsmenge übergeben. Die Gewichte bestimmen dann, wie groß der Einfluss dieses Beispiels auf den Weak-Lernalgorithmus ist. Besitzt ein Beispiel ein sehr viel kleineres Gewicht gegenüber einem anderen, dann spielt es für das Training auch eine sehr viel kleinere Rolle als das mit dem größeren Wert und wird bei w i = 0 folgerichtig sogar komplett ignoriert. Konsequenterweise hat sich dafür der Begriff boosting by reweighting herausgestellt. Da man viele Weak-Lernverfahren so modifizieren kann, dass sie auf einer gewichteten Verteilung über die Trainingsmenge funktionieren, und dabei außerdem mehr Beispiele, d.h. mehr Informationen zum Modellieren der Weak-Klassifikatoren zur Verfügung stehen, wird heutzutage im praktischen Einsatz überwiegend boosting by reweighting verwendet. Deshalb ist meistens boosting by reweighting gemeint, wenn man von AdaBoost spricht. Einen Überblick über AdaBoost liefert Algorithmus 1. Der Algorithmus erhält eine Trainingsmenge mit Beispielen (x 1, y 1 ),..., (x N, y N ). Dabei ist x i das eigentliche Muster, meistens ein reellwertiger Vektor oder wie in in diesem Fall ein Bildausschnitt eines Gesichts oder Bildhintergrundes. Das entsprechende Klassenlabel y i ist hierbei y i = 1 für Positiv- und y i = 1 für Negativbeispiele. AdaBoost erzeugt in einem iterativen Prozess durch Anwendung eines Lernverfahrens eine Reihe von (schwachen) Weak-Klassifikatoren h t (x) { 1, +1}, die gemeinsam durch Bildung einer Linearkombination in den endgültigen Ensemble-Klassifikator H(x) einfließen: [ T ] H T (x) = sgn α t h t (x) t=1 (3.1)

37 3.3 Auswahl der relevanten Merkmale 29 Dies entspricht einem Mehrheitsentscheid, bei dem jeder Weak-Klassifikator h t mit dem Gewicht α t einfliesst. AdaBoost bestimmt α t in Abhängigkeit von der Klassifikationsleistung des entsprechenden h t (x). Weak-Klassifikatoren mit kleinem Fehler werden dabei entsprechend höher gewichtet als solche, die nur eine sehr schwache Klassifikationsleistung erbringen. Wie Friedman et al. in [Fri00] gezeigt haben, läßt sich der AdaBoost Trainingsalgorithmus aus der Annahme motivieren, dass es als ein additives Modell betrachtet werden kann: g t (x) = g t 1 (x) + α t h t (x) (3.2) Dabei wird in jeder neuen Iteration t für die bestehende Entwicklung g t 1 ein weiterer Weak- Klassifikator h t (x) und der entsprechende Koeffizient α t gewählt, so dass die exponentielle Kostenfunktion J = N exp( y i g t (x i )) (3.3) i=1 minimiert wird. Diese Kostenfunktion ist in Abhängigkeit von dem sogenannten Margin y g(x) monoton fallend. Korrekt klassifizierte Beispiele ergeben ein positives und falsch klassifizierte dementsprechend ein negatives Margin. Darum muss AdaBoost das Training so steuern, dass möglichst oft positive Margins generiert werden, und J sich somit Null annähert. Daraus ergibt sich: (α t, h t ) = arg min α,h = arg min α,h N exp( y i (g t 1 (x) + α t h t (x i ))) i=1 N wi t exp( y i α t h t (x i )) i=1 wobei wi t = exp( y ig t 1 (x i )) ist. Da wi t von keinem der beiden zu optimierenden Parameter α t und h t abhängt, läßt es sich auslagern und seperat als Gewicht für das entsprechende Beispiel speichern. Um die Lösung für α t und h t (x) zu bestimmen, wird α t zunächst als eine beliebige Konstante betrachtet. Nach Friedman et al. ergibt sich daraus: h t = arg min h i:h t(x i ) y i w t i was einem Klassifikator entspricht, der die kleinste gewichtete Fehlerrate liefert. Weil sich das Ergebnis nicht ändert, falls alle Gewichte w i mit einer positiven Konstante multipliziert bzw. dividiert werden, wird im Folgenden davon ausgegangen, dass diese Gewichte normalisiert sind und sich daher zu eins aufsummieren. Beim Start wird außerdem der Einfachheit halber von einer Gleichverteilung aller Beispiele ausgegangen: w i = 1 N Der gewichtete Klassifikationsfehler für h t (x) ergibt sich somit, indem die Gewichte aller

38 30 Kapitel 3 Viola-Jones Gesichtsdetektor falsch klassifizierten Beispiele aufsummiert werden: ɛ t = wi t (3.4) i:h t(x i ) y i Wird der so gewonnene Weak-Klassifikator h t (x) in die Minimierungsfunktion wieder eingesetzt und nach α t aufgelöst, so erhält man den entsprechenden Koeffizieten α t : α t = 1 ( ) 1 2 ln ɛt ɛ t Nachdem h t (x) und α t bestimmt worden sind, müssen die Gewichte w i für den nächsten Iterationsschritt entsprechend angepasst und anschließend wieder normalisiert werden. w t+1 i = w t i exp( y i α t h t (x i )) Dieses Vorgehen bewirkt, dass im Laufe des Prozesses die Gewichte der Beispiele, die von den meisten Weak-Klassifikatoren korrekt klassifiziert werden, immer kleiner bzw. die Gewichte der Härtefälle immer größer werden. Damit verlagert AdaBoost die Konzentration des Weak-Lernalgorithmus auf die schwer zu klassifizierenden Fälle in der Trainingsmenge. Dies garantiert unter anderem, dass immer ein anderer Weak-Klassifikator erzeugt wird. Trainingsfehler Die wichtigste Eigenschaft von AdaBoost besteht darin, dass der Trainingsfehler eines Ensemble-Klassifikators H T beliebig verringert werden kann. Freund und Schapire haben gezeigt, dass dieser Fehler durch eine Schranke nach oben beschränkt ist. Definiert man für ɛ t 1 2 ein γ t = 1 2 ɛ t ist diese Schranke wie folgt gegeben: 1 N {H T (x i ) y i } t [ 2 ] ɛ t (1 ɛ t ) = t ( 1 4γt 2 exp 2 t wobei {H T (x i ) y i } die Anzahl aller von vom Ensemble-Klassifikator falsch klassifizierten Beispiele ist. Die obere Schranke des Ensemble-Fehlers fällt damit exponentiell gegen Null, falls die Anzahl der Weak-Klassifikatoren ausreichend hoch gewählt wird und diese Weak- Klassifikatoren nur ein wenig bessere Ergebnisse liefern als der Zufall, also alle γ t γ für ein beliebiges γ > 0. γ 2 t ) Vom Blockmerkmal zum Weak-Klassifikator Nachdem die Blockmerkmale und AdaBoost vorgestellt wurden, stellt sich die Frage wie diese Merkmale in das AdaBoost-Training integriert werden können. Nach der AdaBoost Bedingung reicht bereits ein relativ leistungsschwacher Basisklassifikator, um das Training durchführen zu können. Da Viola und Jones ihr Hauptaugenmerk auf die Geschwindigkeit des Gesamtsystems gelegt haben, kombinieren sie für diesen Zweck einen relativ einfachen, jedoch schnell zu berechnenden Schwellwertklassifikator zusammen mit einem Blockmerkmal zu einem AdaBoost kompatiblen Weak-Klassifikator.

39 3.3 Auswahl der relevanten Merkmale 31 Der entsprechende Klassifikator h j (x) trifft dabei mit Hilfe eines Schwellwerts θ j eine Entscheidung, ob ein mit Hilfe des Merkmals f j (x) auf eine reellwertige Zahl transformierter Bildausschnitt x ein Gesicht bzw. Nicht-Gesicht ist: h j (x) = { 1 wenn pj f j (x) < p j θ j 1 sonst (3.5) Die Variable p j gibt dabei die Richtung des Vergleichs an. Bei p j = 1 liegen die meisten Beispiele für Gesichter unterhalb und bei p j = 1 oberhalb des Schwellwerts. Anpassung von AdaBoost Mit K Merkmalen lassen sich für eine Trainingsmenge mit insgesamt N Beispielen eine Vielzahl unterschiedlicher Weak-Klassifikatoren erzeugen. Die berechneten Funktionswerte eines entsprechenden Merkmals werden dafür aufsteigend sortiert: f j (x 1 ) < f j (x 2 ) < < f j (x N ) Ein Klassifikator kann nun gebildet werden, indem ein Schwellwert zwischen zwei beliebige Merkmalswerte platziert wird. Da aber zwei unterschiedliche Schwellwerte, die jedoch zwischen denselben zwei Merkmalswerten liegen, den gleichen Klassifikationsfehler liefern, ergeben sich somit für ein Merkmal N unterschiedliche Weak-Klassifikatoren. Betrachtet man das Beispiel für ein Pixel großes Suchfenster aus Unterabschnitt 3.2.1, so erhält man für K = Merkmale und N = Beispiele bereits Weak-Klassifikatoren. Abgesehen davon, dass die getrennte Berechnung des Klassifikationsfehlers für alle diese Weak-Klassifikatoren einen hohen Aufwand mit sich bringt, verlangt AdaBoost aus Algorithmus 1 pro Iteration nur jeweils einen Weak-Klassifikator. Aus diesem Grund haben Viola und Jones den original Discrete AdaBoost Algorithmus etwas abgewandelt. In jeder Iteration t wird derjenige Weak-Klassifikator h t (x) = h(x, f t, p t, θ t ) gewählt, dessen Parameter den gewichteten Fehler minimieren: ɛ t = min f,p,θ N i=0 w i h(x i, f, p, θ) y i Damit erhält man für jedes Merkmal ein Optimierungsproblem. Optimaler Schwellwert Um die optimalen Parameter p und θ eines Schwellwertklassifikators für ein Merkmal zu bestimmen, bedient man sich wie eben einer aufsteigend sortierten Liste der Merkmalswerte: f 1,..., f N. Damit wird es möglich, den optimalen Schwellwert in nur einem Durchgang zu finden. Geht man davon aus, dass der aktuelle Schwellwert θ s zwischen die beiden Merkmalswerte f s und f s+1 positioniert wurde zum Beispiel durch Mittelwertbildung der beiden Zahlen, dann bildet sich der gewichtete Klassifikationsfehler aus zwei Summen. Setzt man zusätzlich p = 1 voraus, d.h. die Merkmalswerte der meisten Beispiele für Gesichter sind kleiner als der Schwellwert, besteht der erste Teil des Fehlers aus allen Gewichten der falsch klassifizierten Beispiele, die unterhalb von θ s liegen. In diesem Fall sind das Gewichte w i der Beispiele für

40 32 Kapitel 3 Viola-Jones Gesichtsdetektor Nicht-Gesichter. Analog dazu werden alle Gesichtsbeispiele auf der anderen Seite des Schwellwerts fälschlicherweise als Hintergrund eingestuft. Also bildet sich der zweite Teil des Fehlers aus der Summe aller Gewichte w i dieser Beispiele. Damit ergibt sich für den Schwellwert θ s an der Position s folgender Fehler: ɛ s = w i + i s y i = 1 i>s y i =1 Kennt man die vollständige Summe aller Gewichte der Gesichtsbeispiele W + zum Beispiel aus dem vorangegangenen Sortiervorgang, lässt sich die zweite Summe in der Gleichung umformulieren: ɛ s = ws + ( W + w s + ) wobei w s + bzw. ws die Summen aller positiven bzw. negativen Beispiele sind, die sich links von der Schwellwert-Position s befinden: w s + = w i ws = i s y i =+1 w i i s y i = 1 Während eines einzigen iterativen Durchlaufs, kann der Fehler somit mit Hilfe von ws leicht für alle Positionen bestimmt werden. w + s Analog dazu kann der Fehler für den Fall p = 1 hergeleitet werden, wobei zusätzlich die vollständige Summe aller Gewichte der Nicht-Gesichter W benötigt wird. Somit ergibt sich der optimale Schwellwert an der Position s, an der einer dieser beiden Fehlergrößen ihr Minimum erreicht: [ ɛ opt = min w s s + ( W + w s + ), w + s + ( W ws )] w i und 3.4 Kaskaden-Detektor Ein durchschnittliches Bild besteht zum größten Teil aus Hintergrund, während Gesichter darin nur einen relativ kleinen Bereich abdecken. Dieses bedeutet, dass die meisten verarbeiteten Bildausschnitte im Suchfenster keine Gesichter enthalten. Wie bereits erwähnt, enthält jedoch der vollständige Viola-Jones Gesichtsdetektor über 6000 Merkmale. Alle diese Merkmale für jedes Suchfenster auszuwerten, wäre äußerst ineffektiv. Um den größten Teil dieser Suchfenster möglichst frühzeitig auszufiltern, verfolgen Viola und Jones stattdessen einen ähnlichen, hierarchischen Ansatz wie Yang und Huang (vgl. Unterabschnitt 2.1). Dabei werden anstatt eines einzigen monolithischen Detektors mehrere kleinere zu einer Kaskadenstruktur zusammengeschlossen. Die einzelnen mit AdaBoost trainierten Klassifikatoren sind dabei in einem linearen Entscheidungsbaum mit aufsteigender Komplexität angeordnet. Meint ein Klassifikator, dass es sich bei dem aktuellen Suchfenster um ein Gesicht handelt, leitet er es an seinen Nachfolger weiter, der den Vorgang wiederholt. Im umgekehrten Fall bricht er die Weiterverarbeitung ab und klassifiziert den Bildausschnitt als Hintergrund. Durchläuft ein Suchfenster so alle Klassifikatoren in der Kaskade, wird es als Gesicht akzeptiert wie in der schematischen Darstellung in Abbildung 3.4 zu sehen. Die Konzeption der Kaskade ist darauf ausgelegt, mit den ersten Klassifikatoren eine grobe Unterteilung zwischen Kandidaten für Gesichter und Nicht-Gesichter zu erwirken, wobei die letzteren Klassifikatoren die feineren Unterschiede zwischen Gesichtern und gesichtsähnlichen

41 3.4 Kaskaden-Detektor 33 Bildausschnitt zunehmende Komplexität ja ja Klassifikator 1 Klassifikator 2 Klassifikator K ja Gesicht nein nein nein kein Gesicht Abbildung 3.4: Schematische Darstellung eines Kaskaden-Detektors mit K Einzelklassifikatoren. Damit ein Bildausschnitt endgültig als Gesicht eingestuft wird, muss er von allen Klassifikatoren als Gesicht akzeptiert werden. Hintergrundbildausschnitten zu erfassen versuchen. Damit können die Klassifikatoren am Anfang sehr einfach ausfallen, d.h. nur aus wenigen Weak-Klassifikatoren bestehen, während die Klassifikatoren zum Schluss immer mehr an Komplexität zunehmen und somit entsprechend mehr Merkmale auswerten müssen. So besteht der erste Klassifikator in der von Viola und Jones trainierten Kaskade aus nur zwei und der letzte hingegen aus 200 Merkmalen. Training der Kaskade Für einen Klassifikator in einer Kaskade sind neben der Anzahl der Weak-Klassifikatoren zwei weitere Größen wichtig. Zum einen bestimmt die Detektionsrate den Anteil der Suchfenster, die vom Klassifikator korrekt als Gesicht klassifiziert werden. Zum anderen gibt die Falsch- Positiv-Rate den Anteil der Suchfenster an, in denen Hintergrund fälschlicherweise als Gesicht erkannt wird. Die Falsch-Positiv-Rate für eine komplette Kaskade mit insgesamt K Klassifikatoren ergibt sich aus den Falsch-Positiv-Raten aller beteiligten Detektoren: F = K i=1 wobei f i die Falsch-Positiv-Rate des i-ten Klassifikators ist. Analog dazu lässt sich mit Hilfe der Detektionsraten d i der einzelnen Detektoren die Detektionsrate des gesamten Kaskadendetektors angeben: K D = i=1 Trainiert man zum Beispiel eine Kaskade mit zehn Detektoren, von denen jeder in 99% der Fälle ein Gesicht korrekt erkennt, erhält man eine Kaskade mit einer Gesamtdetektionsrate von 90% ( ). Filtert dabei jeder Detektor ungefähr 30% des Hintergrundes aus, wird nur ein verschwindend geringer Teil falsch als Gesicht eingestuft ( ). Das Hauptziel beim Training eines Detektors aus der Kaskade besteht also darin, eine möglichst hohe Detektionsrate zu erwirken, damit der größte Anteil der Gesichter von der Kaskade f i d i

42 34 Kapitel 3 Viola-Jones Gesichtsdetektor überhaupt erkannt werden kann. Hat ein Detektor eine zu geringe Detektionrate, dann wirkt sich dieser Umstand negativ auf das Gesamtergebnis des Systems aus. Zusätzlich sollte der Detektor eine möglichst kleine Falsch-Positiv-Rate besitzen, damit die folgenden, komplexeren Detektoren nicht unnötigerweise zu oft abgearbeitet werden. AdaBoost ist jedoch dafür ausgelegt den Gesamtklassifikationsfehler zu minimieren und nicht speziell eine möglichst hohe Detektionsrate bei einer möglichst niedrigen Falsch-Positiv-Rate zu erreichen. Aus diesem Grund greifen Viola und Jones zu einem einfachen Trick, indem sie einen Schwellwert b in den von AdaBoost produzierten Ensemble-Klassifikator H T aus der Gleichung (3.1) einfügen: [ T ] H T (x) = sgn t=1 α t h t (x) + b (3.6) Erkennt der Detektor zu wenige Gesichter, kann die Detektionsrate durch Anheben dieses Schwellwertes soweit reguliert werden, bis der gewünschte Wert erreicht wird. Ein damit verbundener Nachteil ist jedoch, dass durch diese Erhöhung des Schwellwertes ebenfalls die Falsch-Positiv-Rate gesteigert wird. Um einen Klassifikator aus der Kaskade zu trainieren, bedient man sich in der Praxis eines einfachen Verfahrens. Dabei legt der Benutzer einen minimalen Wert für Detektionsrate d i und einen maximalen für die Falsch-Positiv-Rate f i eines Detektors fest. Nach jedem Iterationsschritt in AdaBoost wird zunächst überprüft, ob der dadurch entstandene Ensemble- Klassifikator die gewünschte Detektionsrate erfüllt. Anderenfalls wird sie mit Hilfe des Schwellwertes angepasst. Dieser Vorgang wird solange wiederholt, bis auch die Falsch-Positiv- Rate den geforderten Wert unterschreitet. Bootstrapping Es macht keinen Sinn, dass ein Klassifikator mit Hintergrundbeispielen trainiert wird, die sein Vorgänger bereits ausfiltert. Deshalb wird jeder Detektor in der Kaskade zwar mit denselben Gesichts- aber unterschiedlichen Hintergrundbeispielen trainiert. Das Verfahren hierfür heißt Bootstrapping. Dabei werden die Hintergrundbeispiele für den ersten Detektor aus einer großen Bilddatenbank, in der keine Gesichter vorhanden sind, zufällig ausgewählt. Nach dem erfolgreichen Training des Klassifikators werden alle Hintergrundbeispiele aus der Trainingsmenge entfernt, die von diesem Klassifikator korrekt als Nicht-Gesichter eingeordnet werden. Es bleibt somit der Teil übrig, der für die Falsch-Positiv-Rate verantwortlich ist. Im nächsten Schritt wird mit der bis dahin trainierten Kaskade die Hintergrund-Bilddatenbank nach Treffern durchsucht. Diese werden dann zum Auffüllen der Trainingsmenge mit Hintergrundbeispielen für das Training des nächsten Klassifikators benutzt. 3.5 Abtastung des Gesamtbildes Um Gesichter mit dem Viola-Jones-Detektor in einem Bild zu finden, wird wie auch bei anderen ansichtsbasierten Verfahren ein Suchfenster über das komplette Bild geschoben und jeder Bildauschnitt dem Detektor zur Klassifikation übergeben (vgl. Abschnitt 2.5). Die kleinst mögliche Basisfenstergröße ergibt sich dabei direkt aus der Größe der zum Training verwendeten Beispiele.

43 3.5 Abtastung des Gesamtbildes 35 Wie bereits erwähnt, können die Blockmerkmale beliebig skaliert werden. Um Gesichter unterschiedlicher Größen im Bild auffinden zu können, wird deshalb anstelle des Bildes das Suchfenster und damit alle Merkmale im Kaskaden-Detektor um denselben Faktor skaliert. Da das direkte Skalieren des Bildes gegenüber dem Skalieren eines Detektor aufwendiger ist, erbringt dieser Vorteil eine enorme Zeitersparnis. Um das Suchfenster beim Durchlauf von einer Position zur nächsten zu versetzen, wird zur aktuellen Position eine bestimmte Anzahl von Pixel hinzuaddiert. Dieser Wert hängt von dem aktuellen Skalierungsfaktor des Suchfensters und dem Verschiebungsparameter ab. Wenn s der aktuelle Skalierungsfaktor ist, beträgt die Verschiebung [s ] Pixel, wobei die Klammern den Rundungsoperator darstellen. Durch die Wahl von lässt sich einerseits die Geschwindigkeit aber auch andererseits die Genauigkeit des Detektors steuern. Wählt man einen zu großen Wert für, wird das Bild mit größeren und damit weniger Schritten durchsucht. Die Detektionsrate nimmt dabei jedoch ab, da die Positionen mit möglichen Gesichtern so leicht übersprungen werden könnten. Viola und Jones verwenden für ihre Trainingsmenge Frontalgesichter, die nur grob an den Umrissen des Gesichts ausgerichtet sind. Aus diesem Grund ist der Detektor gegenüber kleinen Verschiebungen, Rotationen und Skalierungen unempfindlich. Dadurch können in der Nähe eines Gesichts mehrere Treffer entstehen. Deshalb werden mehrere überlappende Treffer durch Mittelwertbildung über die Größen und Positionen zu einem einzigen Detektionsergebnis gruppiert. Da Gruppierungen bei fälschlicherweise als Gesicht eingestuften Treffern selten sind, kann die Anzahl der Überlappungen als ein weiteres Kriterium dienen, um die Falsch-Positiv- Rate zu senken.

44

45 Kapitel 4 Erweiterungen des Viola-Jones Detektors Das Viola-Jones Gesichtsdetektionssystem ist mit seinen schnell berechenbaren Merkmalen und seinem Kaskadenansatz zurzeit zweifellos eines der erfolgreichsten Verfahren in diesem Sektor. Sein einfacher Systemaufbau hat es zudem auch zu den populärsten Verfahren gemacht, wie die ständig ansteigende Anzahl von Veröffentlichungen zu dem Thema belegt. So ist es nicht verwunderlich, dass dieser Ansatz von vielen aufgegriffen und an ihre speziellen Bedürfnisse angepasst bzw. erweitert wird. Zusätzlich wird nach Möglichkeiten gesucht, die Laufzeit des Detektors bei gleicher Klassifikationsleistung weiter zu beschleunigen, um ihn zum Beispiel auch auf mobilen Robotern oder den so genannten Embedded Systemen mit schwächerer Hardware einsetzen zu können. Auf der anderen Seite wird gleichzeitig versucht, die Trainingszeit für einen kompletten Detektor zu reduzieren. Obwohl ein Detektor nur relativ selten neu trainiert wird, beträgt die Trainingszeit jedoch mehrere Wochen, in denen man gezwungen ist, auf das Ergebnis zu warten. Im Grunde lässt sich die Laufzeit und die Trainingszeit dadurch verbessern, dass in einem kompletten Detektor weniger Merkmale verwendet werden. Folglich müssen auch für ein Suchfenster weniger Merkmale ausgewertet werden, so dass die Detektionsgeschwindigkeit insgesamt steigt. Ein kürzerer Detektor bedeutet auch, dass das Training schneller abgeschlossen werden kann, da die Auswahl jedes zusätzlichen Merkmals auch zusätzliche Zeit kostet. In diesem Kapitel werden deshalb einige Verbesserungen und Erweiterungen vorgestellt, die unter anderem an der Basis ansetzen, und den grundlegenden Trainingsalgorithmus, AdaBoost, zu erweitern und optimieren versuchen. Andere gehen einen Schritt weiter und beschäftigen sich mit der Beschleunigung des zeitintensiven Merkmalsauswahlverfahrens, das mit jedem AdaBoost-Iterationsschritt ausgeführt wird. Wiederum andere führen erweiterte Merkmale und Klassifikatoren ein, so dass die Klassifikationsleistung der Weak-Klassifikatoren gesteigert wird, und dadurch weniger Merkmale zum Erreichen derselben Klassifikationsraten erforderlich sind. Aber auch die Kaskadenstruktur ist Gegenstand von Verbesserungen. 4.1 AdaBoost Variationen Asymmetric AdaBoost Wie im vorangegangenen Kapitel dargestellt, ist es wichtig, dass die einzelnen Klassifikatoren in einer Kaskade eine möglichst große Detektionsrate besitzen, damit möglichst alle Bildausschnitte mit Gesichtern die komplette Kaskade passieren können. Da AdaBoost jedoch nur den Gesamtklassifikationsfehler zu minimieren versucht, wirkt es diesem Ziel entgegen. Deshalb muss die Detektionsrate mit Hilfe eines zusätzlichen Schwellwerts wieder korrigiert werden (vgl. Unterabschnitt 3.4), was jedoch zu einer höheren Falsch-Positiv-Rate führt. 37

46 38 Kapitel 4 Erweiterungen des Viola-Jones Detektors Ein einfacher Weg, diese Einschränkung von AdaBoost abzuschwächen, ist die ungleichmäßige Verteilung der Startgewichte. Erhöht man die Gewichte der Gesichtsbeispiele gegenüber den Hintergrundbeispielen, entsteht eine Unausgewogenheit zwischen den beiden Verteilungen. Der von AdaBoost verwendete Weak-Lernalgorithmus ist damit gezwungen, mehr Gesichtsbeispiele korrekt zu klassifizieren, damit der gewichtete Klassifikationsfehler aus Gleichung 3.4 minimiert wird. In [Vio01a] stellen Viola und Jones ein solches Verfahren vor, das sie Asymmetric AdaBoost oder kurz AsymBoost nennen. Die abgewandelte Version von Discrete AdaBoost verwendet eine asymmetrische Kostenfunktion, um das Verhältnis zwischen Detektionsrate und Falsch- Positiv-Rate zu kontrollieren. Wie in Abschnitt angesprochen, minimiert AdaBoost folgende Fehlerfunktion: J = ( ) exp y i α t h t (x i ) i t wobei h t (x) und α t die einzelnen von AdaBoost ausgewählten Weak-Klassifikatoren und die entsprechenden positiven Koeffizieten eines Ensemble-Klassifikators H T (x) sind (s. Gleichung 3.1). Wie bereits zuvor ist x i ein Beispiel und y i { 1, 1} das entsprechende Label. Damit ergibt sich für die Summanden eine einfache Kostenfunktion L(i): ( ) { 1 wenn yi H exp y i α t h t (x i ) L(i) = T (x i ) (4.1) 0 sonst t Fälschlicherweise als Bildhintergrund vom Klassifikator verworfene Gesichter fließen damit gleichermaßen in die Bewertung ein wie Hintergrundausschnitte, die als Gesichter erkannt werden. Um ein Ungleichgewicht zwischen diesen beiden Bewertungen herzustellen, setzen Viola und Jones eine asymmetrische Kostenfunktion A(i) ein, die abhängig vom Faktor k das Verhältnis zwischen falsch-negativen und falsch-positiven Kosten beeinflusst: A(i) = k wenn yi = 1 und H T (x i ) = 1 1 k wenn y i = 1 und H T (x i ) = 1 0 sonst Damit sind die Kosten für Gesichter, die fälschlich als Bildhintergrund klassifiziert wurden, k-mal höher als im umgekehrten Fall. Das Training der Weak-Klassifikatoren bevorzugt somit höhere Detektions- gegenüber niedrigen Falsch-Positiv-Raten. Die Wurzelbildung von Faktor k hat hier keine algorithmische Bedeutung und wurde aus praktischen Gründen für spätere Berechnungen gewählt. Um A(i) in die ursprüngliche Konstenfunktion zu integrieren, lässt es sich zu einem Ausdruck in Abhängigkeit von L(i) umformen: ( ) yi A(i) = L(i) k Um die asymmetrische Kostenfunktion mit Gleichung 4.1 zu kombinieren, können beide Seiten

47 4.1 AdaBoost Variationen 39 (a) (b) Abbildung 4.1: Schematische Darstellung der Auswirkungen von AsymBoost an einem Beispieldatensatz. Dabei werden die positiven Beispiele von den negativen Beispielen kreisförmig umschlossen. (a) In der naiven AsymBoost-Variante berücksichtigt nur der erste Weak- Klassifikator die positiven Beispiele stärker. (b) Werden die Gewichtsverteilung in jedem Iterationsschritt angepasst, folgen alle vier Klassifikatoren diesem Ziel. [Vio01a] mit ( k) y i multipliziert werden: ( ) ( ) yi exp y i α t h t (x i ) k A(i) t Um diesen Effekt auf AdaBoost zu übertragen, werden die Gewichte w i der Beispiele vor dem Training zusätzlich zur normalen Gewichtung mit ( k) y i multipliziert. Da AdaBoost jedoch adaptiv den Klassifikationsfehler anpasst, wird dieses Ungleichgewicht in den folgenden Iterationsschritten wieder kompensiert. Aus diesem Grund nehmen Viola und Jones eine Modifikation vor. Anstatt nur zu Anfang werden in jedem Iterationsschritt t des AdaBoost-Prozesses die Gewichte mit der t-ten Wurzel dieses Ausdrucks, also mit ( 2t k) y i, multipliziert. Die zunehmende Wurzelpotenz bewirkt, das bei fortschreitender Anzahl von Weak-Klassifikatoren der Effekt der asymmetrischen Gewichtung immer mehr abschwächt, und AdaBoost somit die Möglichkeit erhält, auch die Falsch-Positiv-Rate zu senken. Den Effekt zwischen einer einmaligen Vormultiplikation und einer in jedem Iterationsschritt verdeutlicht Abbildung 4.1. Während in der ursprünglichen Variante nur der erste Weak- Klassifikator die positiven Beispiele stärker berücksichtigt, versuchen in der modifizierten Version alle Weak-Klassifikatoren, dieses Ergebnis zu erreichen Gentle AdaBoost Lienhart et al. haben in [Lie03] neben Discrete AdaBoost zwei abgewandelte Varianten, Real AdaBoost und Gentle AdaBoost, auf ihre Effizienz für die Aufgabe der Gesichtsdetektion untersucht. Der Unterschied zur ursprünglichen Version ist, dass die Weak-Klassifikatoren h t (x) bei Real und Gentle AdaBoost einen kontinuierlichen Vertrauenswert ausgeben, während die bei Discrete AdaBoost nur zwei diskrete Zustände kennen: entweder 1 für Hintergrund oder 1 für Gesicht. Das Vorzeichen der reellwertigen Weak-Klassifikatoren bestimmt dabei die Klasse des Ergebnisses, wobei der Betrag h t (x) die Zuverlässigkeit dieser Entscheidung ausdrückt und damit zusätzliche Informationen liefert. Da der Optimierungsprozess von Real und Gentle

48 40 Kapitel 4 Erweiterungen des Viola-Jones Detektors Algorithmus 2 Gentle AdaBoost Gegeben ist eine Trainingsmenge (x 1, y 1 ),..., (x N, y N ) mit y i { 1, +1} für Hintergrund- bzw. Gesichtsbeispiele Initialisiere Gewichte: wi 1 = 1 N für i = 1... N Für t = 1... T 1. Erzeuge einen Weak-Klassifikator h t (x) [ 1, +1] mit einem möglichst kleinen gewichteten quadratischen Fehler i wt i (y i h t (x)) 2 2. Aktualisiere Ensemble Klassifikator: H t (x) = H t 1 (x) + h t (x) 3. Aktualisiere Gewichte: wi t+1 = wi t exp ( y ih t (x i )) 4. Normalisiere Gewichte: wi t+1 = P wt+1 i [ i wt+1 i T ] Ensemble Klassifikator: H T (x) = sgn t=1 h t(x) AdaBoost über die reellwertigen Weak-Klassifikatoren gesteuert werden kann, entfallen die zusätzlichen Gewichtungsfaktoren α t aus Gleichung 3.1. In ihren Experimenten haben Lienhart et al. festgestellt, dass Gentle AdaBoost die besten Klassifikationsergebnisse dieser drei Algorithmen liefert und darüber hinaus weniger Weak-Klassifikatoren und damit weniger Merkmale verwendet. Gentle AdaBoost wurde von Friedman et al. in [Fri00] vorgestellt und stellt eine Erweiterung von Real AdaBoost [Sch99] dar. Real Adaboost selbst entspricht weitestgehend dem Discrete AdaBoost Algorithmus mit dem Unterscheid, dass reellwertige Weak-Klassifikatoren verwendet werden. Friedman et al. haben gezeigt, dass der Weak-Klassifikator, der die exponentielle Konstenfunktion aus Gleichung 3.3 minimiert, eine so genannten Logit-Transformation der a posteriori Wahrscheinlichkeit P (y = 1 x) ist: h t (x) = 1 2 P (y = 1 x) ln P (y = 1 x) = 1 2 ln P (y = 1 x) 1 P (y = 1 x) Im Gegensatz zu Discrete AdaBoost, dessen Weak-Klassifikatoren nur eine binäre Entscheidung liefern, wird hierbei h t (x) mit Hilfe von Regression angenähert. Obwohl alle drei AdaBoost Varianten dieselbe exponentielle Kostenfunktion minimieren, geschieht dieses bei Gentle AdaBoost mit Hilfe von adaptiven Newton-Iterationen. Der Hauptunterschied zu Real AdaBoost liegt im Weak-Lernalgorithmus, da Gentle AdaBoost zum Schätzen von h t (x) eine andere Funktion verwendet: h t (x) = P (y = 1 x) P (y = 1 x) = 2P (y = 1 x) 1 (4.2) Diese Schätzung ist gegenüber der Logit-Transformation numerisch vorteilhafter. Die Logit- Transformation hat den Nachteil, dass sie an ihren Randbereichen stärker ansteigt bzw. fällt. Das bedeutet, dass falls P (y = 1 x) besonders nah an 1 oder 0 liegt, die Vertrauenswerte der Weak-Klassifikatoren überdurchschnittlich stark ansteigen. Bei vielen Ausreißern führt dies jedoch dazu, dass der AdaBoost-Optimierungsprozess sich mehr auf diese Härtefälle konzentriert und damit den Generalisierungsfehler beeinträchtigt. Gentle AdaBoost schenkt solchen Ausreißern erheblich weniger Beachtung, da Gleichung 4.2 eine lineare Funktion bildet, die einen gleichmäßigen Vertrauenswert im Intervall [ 1; 1] liefert. Dieser Umstand führte auch zur Namensgebung, da gentle soviel wie freundlich oder behutsam heißt. Dadurch ist zu erwarten, dass auf komplexen Trainingsmengen, wie zum

49 4.2 Beschleunigung der Merkmalsauswahl 41 Beispiele bei Datensätzen mit vielen Gesichtsvariationen, eine Verbesserung gegenüber Discrete AdaBoost in Form von weniger Merkmalen pro Detektor eintritt. Einen Überblick zu Gentle AdaBoost liefert Algorithmus 2. Schwellwert-Klassifikator Im Gegensatz zu Discrete AdaBoost minimiert der Weak-Lernalgorithmus bei Gentle Ada- Boost anstatt des gewichteten Missklassifikationsfehlers (s. Gleichung 3.4) den gewichteten quadratischen Fehler: ɛ t = w i (y i h t (x i )) 2 i Wählt man h t (x) als einen einfachen Schwellwertklassifikator, entspricht die Berechnung des Schwellwerts näherungsweise dem Vorgehen aus Abschnitt Sind die gewichteten Beispiele (x i, y i, w i ) entsprechend x i aufsteigend sortiert, und wählt man einen Schwellwert θ s = (x s + x s+1 )/2, dann ergibt sich h t (x) gemäß Gleichung 4.2 wie folgt: h t (x) = { 2P l w (y = 1 x) 1 wenn x < θ s 2Pw(y r = 1 x) 1 sonst wobei Pw(y l = 1 x) bzw. Pw(y r = 1 x) die auf den Gewichten abgeschätzten a posteriori Klassenwahrscheinlichkeiten der positiven Beispiele für die Bereiche links bzw. rechts vom Schwellwert sind. Dies entspricht dem Anteil der Gewichte w i für die positiven Beispiele in den entsprechenden Bereichen. Für ein gewähltes θ s an der Position s der sortierten gewichteten Beispiele folgt daraus: Pw(y l i:{i s y = 1 x) = i =1} w i s i=1 w i Die Berechung von P r w(y = 1 x) ist für den Fall i > s analog. Der optimale Schwellwert für θ s lässt sich für den gewichteten quadratischen Fehler ähnlich wie der optimale Schwellwert für den Missklassifikationsfehler bei Verwaltung weniger Summen in nur einem Durchlauf bestimmen. 4.2 Beschleunigung der Merkmalsauswahl Abschnitt 3.3 beschreibt, wie mit Hilfe von AdaBoost aus einer großen Merkmalsmenge nur die wirklich relevanten Merkmale für die Gesichtsdetektion selektiert werden können. Obwohl der AdaBoost-Algorithmus dabei sehr einfach und übersichtlich ist, hängt seine Laufzeit vom verwendeten Weak-Lernverfahren ab, das in jedem Iterationsschritt aufgerufen wird. Das Weak-Lernverfahren hat die Aufgabe, einen Weak-Klassifikator zu liefern, der bei den gegebenen Gewichtsverteilungen der Beispiele den kleinsten Fehler liefert. Bei dem Viola-Jones Detektor setzt sich der Weak-Klassifikator aus einem Merkmal und einem speziell dafür trainierten Schwellwert-Klassifikator zusammen (s. Gleichung 3.5). Für ihren Gesichtsdetektor setzen Viola und Jones ein Pixel großes Suchfenster ein. Ausgehend von den fünf Basismerkmalstypen ergeben sich damit für ein Suchfenster dieser Größe bereits über unterschiedliche Merkmale. Da in jedem AdaBoost-Iterationsschritt

50 42 Kapitel 4 Erweiterungen des Viola-Jones Detektors das beste Merkmal ausgewählt werden soll, muss für jedes dieser Merkmale ein Schwellwert- Klassifikator trainiert werden. Um den optimalen Schwellwert zu berechnen, sind dafür in der Praxis drei Schritte notwendig: 1. Bestimme für jedes Beispielbild mit Hilfe des gewählten Merkmals den entsprechenden Merkmalswert f 2. Sortiere alle Merkmalswerte: f 1 < f 2 < < f N 3. Finde die Stelle zwischen zwei Merkmalswerten, die als Schwellwert den kleinsten Klassifikationsfehler abhängig von den Beispielgewichten ergeben würde Damit ist jeder AdaBoost-Iterationsschritt sehr zeitintensiv. Wie bereits erwähnt, besteht der komplette Viola-Jones Gesichtsdetektor aus über ausgewählten Merkmalen. Die resultierende Trainingsdauer dafür betrug deshalb mehrere Wochen 1. Bei genauer Betrachtung sind die beiden ersten Schritte nicht bei jeder Iteration notwendig, da sie nicht von der Gewichtsverteilung der Beispiele abhängig sind. Theoretisch wäre eine Geschwindigkeitssteigerung denkbar, wenn man diese Schritte aus der Iterationsschleife an den Anfang auslagern und die Merkmalswerte zwischenspeichern würde. Geht man jedoch davon aus, dass jeder Merkmalswert vier Bytes belegt, ergibt sich für Merkmale und Beispiele ein Speicherbedarf von ca. 6 GB. Durch die Sortierung der Merkmalswerte geht außerdem die ursprüngliche Reihenfolge verloren, so dass man zusätzlich zu jedem Merkmalswert eine Referenz auf das entsprechende Beispiel bzw. Gewicht speichern müsste, um den optimalen Schwellwert berechnen zu können. Je nach Platzbedarf für eine Referenz erhöht sich somit der gesamte Speicherbedarf um das doppelte oder mehr. Systeme mit soviel Speicher sind heutzutage jedoch äußerst selten, so dass man bei jeder Auswertung auf die Neuberechnung der Merkmalswerte angewiesen ist. Aus diesem Grund bedient man sich meistens anderer Verfahren, um die Trainingszeit zu verkürzen. Reduktion der Merkmalsmenge Eine häufig eingesetzte Technik ist die Reduktion der Merkmalsanzahl. Dies kann zum Beispiel geschehen, indem für jede AdaBoost-Iteration nur ein Bruchteil der Merkmale aus der kompletten Merkmalsmenge zufällig ausgewählt wird. Eine andere Möglichkeit besteht darin, beim Erzeugen der Merkmalsmenge aus den Basismerkmalen einige Beschränkungen einzuführen. So kann die Merkmalsanzahl eingeschränkt werden, wenn einige Parameter, wie die Blockgröße, anstatt in Einer- zum Beispiel in Zweierschritten verändert werden. Je nach Ausmaß der Reduktion entsteht jedoch ein suboptimales Ergebnis, da stets eine gewisse Wahrscheinlichkeit besteht, dass das am besten geeignete Merkmal nicht in die ausgewählte Untermenge aufgenommen wurde. Diskreter Gradientenabstieg Anstatt die Merkmalsmenge direkt zu verkleinern, versuchen andere Verfahren, die erschöpfende Suche über alle Merkmale durch intelligentere Suchalgorithmen zu ersetzen. McCane und Novins beschreiben in [McC03] eine Technik, die zielgerichtet ein optimales Merkmal zu finden versucht. Betrachtet man die Viola-Jones Merkmale aus Abbildung 3.1 so ist jedes dieser fünf Basistypen durch vier Parameter gegeben: die horizontale bzw. vertikale Position 1 verwendete Hardware: Pentium 3 mit 700 Mhz

51 4.2 Beschleunigung der Merkmalsauswahl 43 im Fenster und die Breite bzw. Höhe der einzelnen, gleich großen Blöcke. Für ein beliebiges Merkmal im Fenster lassen sich durch kleine Änderungen an diesen Parametern unmittelbare Nachbarmerkmale erzeugen. Der Algorithmus bestimmt für alle diese Nachbarmerkmale den Klassifikationsfehler. Findet er ein Nachbarmerkmal, das einen kleineren Fehler als das Ausgangsmerkmal besitzt, wird dieses Merkmal als neues Ausgangsmerkmal gewählt. Der Vorgang wiederholt sich, bis kein besseres Merkmal mehr gefunden werden kann. Selbst wenn dieser Vorgang für alle fünf Merkmalstypen angewendet wird, ist die Gesamtanzahl der Auswertungen damit erheblich kleiner als bei einer erschöpfenden Suche. Dieses Vorgehen entspricht einem diskreten Gradientenabstieg. Genetische Suchalgorithmen Gradientenabstiegsverfahren haben jedoch den Nachteil, dass sie leicht in lokalen Minima stecken bleiben können. Deshalb verwenden Treptow und Zell in [Tre04] zum Suchen des besten Merkmals einen genetischen Algorithmus. Im Gegensatz zu Gradientenabstiegsverfahren sind genetische Suchalgorithmen in der Lage aus lokalen Minima auszubrechen. Zu diesem Zweck wird eine Merkmalsmenge mit einigen hundert Einträgen (die Population) verwaltet. Eine Fitnessfunktion hierbei ist das der Klassifikationsfehler bestimmt die Qualität der Einträge. Die Nachfolgemerkmale werden gebildet, indem zwei Merkmale (die Eltern) aus der Menge gewählt werden, und ihre Parameter (die Gene) durch Kreuzungsverfahren zu einem Nachfolger kombiniert werden. Merkmale mit besserer Fitness haben dabei eine größere Wahrscheinlichkeit, gewählt zu werden, als Merkmale mit größerem Fehler. Anschließend werden einzelne Parameter zufällig modifiziert, was einer Mutation in der Natur entspricht. Nach genügend Kombinationen entsteht eine neue Population mit unter Umständen besseren Merkmalen. Eine einfache, geeignete Vektordarstellung der fünf Viola-Jones Merkmale lässt sich zum Beispiel durch wenige Integerwerte realisieren: Merkmalstyp k 1,..., 5 linke obere Ecke des Merkmals im Suchfenster (x 1, y 1 ) rechte untere Ecke des Merkmals im Suchfenster (x 2, y 2 ) die Gewichtungsfaktoren der vier möglichen Merkmalsblockregionen: w 1,... w 4 Damit ergibt sich ein 9-dimensionaler Genvektor: (k, x 1, y 1, x 2, y 2, w 1, w 2, w 3, w 4 ). Je nach Typ des Merkmals werden überflüssige Gewichte ignoriert. Eine einfach Kreuzungsfunktion für einen Nachfolger C zweier Merkmale A und B sieht in der Genvektorschreibweise dementsprechend wie folgt aus: C i = { Ai wenn r < 0.5 B i sonst, i = wobei r eine zufällige Zahl im Intervall [0; 1] ist. Für die Mutation setzen Treptow und Zell drei Regeln ein: 1. wähle eine neuen Merkmalstyp mit einer Wahrscheinlichkeit p t 2. wähle ein neues Gewicht mit einer Wahrscheinlichkeit p w 3. addiere zu den vier Koordinaten jeweils einen zufälligen Integerwert zwischen 3 und 3

52 44 Kapitel 4 Erweiterungen des Viola-Jones Detektors Da dadurch natürlich auch illegale Merkmale entstehen können, wird anschließend eine Korrektur vorgenommen, die zum Beispiel die Koordinaten anpasst oder die Gewichte justiert, so dass wieder mittelwertfreie Merkmale d.h. die Gewichtungsfaktoren der Blockregionen summieren sich zu Null ergeben. Je nach Wahl der Kreuzungs- bzw. Mutationsfunktion und Anzahl der Generationen, kann ein genetischer Suchalgorithmus zu einer zufälligen Suche ausarten. Es hat sich jedoch gezeigt, dass bei sorgfältiger Definition genetische Suchalgorithmen sehr effizient sein können. Eine umfassende Einführung zu diesem vielseitigen Thema bietet zum Beispiel [Ban98]. Direct Feature Selection Einen völlig anderen Weg beschreiben Wu et al. in [Wu04]. Das Direct Feature Selection genannte Verfahren ist laut den Autoren beim Training eines Kaskadendetektors um den Faktor 100 schneller, als das originale Viola-Jones Verfahren. Zu diesem Zweck wird neben dem Merkmalsauswahlverfahren auch der Trainingsalgorithmus ersetzt. Im Gegensatz zu den anderen Merkmalsselektionsverfahren werden hierbei die Klassifikatoren für die entsprechenden Merkmale vor dem Training eines Kaskadenknotens berechnet. Die vorberechneten Merkmale bzw. Weak-Klassfikatoren nicht zu verwechseln mit der Vorberechnung aller Merkmalswerte für jeden Weak-Klassifikator werden in einer Tabelle gespeichert und bleiben im anschliessenden Selektionsverfahren unverändert. Dadurch entfallen auch die Gewichte für Beispiele, da der Trainingsalgorithmus keine Möglichkeit mehr hat, die Weak- Klassifikatoren während des Trainings zu beeinflußen. Der Trainingsalgorithmus unterscheidet sich damit grundlegend von AdaBoost. In jedem Interationsschritt werden keine neue Weak-Weaklassifikatoren auf Basis der Gewichtsverteilung trainiert, sondern derjenige Weak-Klassifikator aus der vorberechneten Tabelle gewählt, der die Klassifikationsleistung des Kaskadenknotens am meisten erhöht. Dabei wird zwischen zwei Fällen unterschieden. Solange die aktuelle Detektionsrate des Detektors unter der Vorgabe ist, wird der Weak-Klassifikator hinzugefügt, der diese am meisten steigert. Ansonsten wird derjenige selektiert, der die Falsch-Positiv-Rate minimiert. Wie beim AdaBoost Algorithmus wiederholt sich dieser Vorgang, bis die Zielvorgaben erreicht werden. 4.3 Merkmalsreduktion Wie im letzten Abschnitt erläutert, kann die Trainingszeit gesenkt werden, falls bei jeder AdaBoost-Iteration nur ein kleiner Teil aller Merkmale ausgewertet wird. So kann es jedoch passieren, dass in einem AdaBoost Interationsschritt ein suboptimales Merkmal gewählt wird. Dieses Merkmal bleibt im Ensemble-Klassifikator und beeinträchtigt die Klassifikationsleitung des endgültigen Detektors. Um dies zu kompensieren ist AdaBoost gezwungen, zusätzliche Merkmale zu trainieren. Die zusätzlichen Merkmale können jedoch unter Umständen, die Klassifikationsleitung des suboptimalen Weak-Klassifikators weit übertreffen, so dass er überflüssig wird. Dieser Effekt wird Boosting-Redundanz genannt. Um die Redundanz senken zu können, führen Xiao et al. in [Xia03] zunächst eine lineare Optimierung des trainierten Detektors durch. Dadurch kann zum einen die Klassifikationsleistung verbessert und zum anderen nicht relevanten Weak-Klassifikatoren identifiziert und entfernt werden.

53 4.3 Merkmalsreduktion 45 Abbildung 4.2: Der Vektor a beschreibt die Trenngerade einer linearen Diskriminantenfunktion. Im Idealfall hat sie zu den Positiv- und Negativbeispielen einen möglichst großen Abstand. Lineare Optimierung Betrachtet man den AdaBoost Ensemble-Klassifikator aus Gleichung 3.6, dann lässt er sich als eine Linearkombination der beiden Vektoren a = (α 1,..., α T ) T und h(x) = (h 1 (x),..., h T (x i )) T ausdrücken: H(x) = sgn [ a T h(x) + b ] Dies entspricht einer linearen Diskriminantenfunktion. Die Vektorfunktion h(x) bildet dabei eine Projektion eines Beispiels in einen T -dimensionalen Raum. Die Trennhyperebene zwischen den Gesichts- und Hintergrundbeispielen wird durch den Vektor a ausgedrückt. Um einen guten, generalisierungsfähigen Klassifikator zu erhalten, sollte diese Ebene einen möglichst großen Abstand zu allen Beispielen haben. Die Situation verdeutlicht Abbildung 4.2 für ein Beispiel im zweidimensionalen Raum. Eine bekannte Familie von Verfahren, die eine optimale Trennebene liefern können die Ebene mit dem größten Abstand zu den Gesichtsbeispielen auf der einen Seite und den Hintergrundbeispielen auf der anderen Seite, sind die Support Vector Machines (SVMs). SVMs finden die optimale Ebene, indem sie ein quadratisches Optimierungsproblem lösen. Für N Beispiele x i mit den entsprechenden Klassenlabeln y i { 1; 1} müssen zu diesem Zweck die Parameter β i gefunden werden, die den folgenden Ausdruck maximieren: N β i 1 2 i=1 N N β i β j y i y j (h(x i ) h(x j )) i=1 j=1 mit den Nebenbedingungen N i=1 β iy i = 0 und 0 β i C i. Der Koeffizient C i wird dabei in Abhängigkeit des Klassifikationsrisikos C je nach Klassenzugehörigkeit des Beispiels gesetzt: C i = { wc wenn xi ein Gesichtsbeispiel ist C sonst (4.3) wobei der positive Faktor w das Verhältnis der Mehrkosten für fälschlicherweise als Hintergrund klassifizierte Gesichtsbeispiele bestimmt. Zur Lösung dieses Problems gibt es effiziente Verfahren, die in der Standardliteratur ausgiebig besprochen werden. Eine Einführung dazu gibt zum Beispiel [Cri00]. Hat man das Optimierungsproblem gelöst, so lässt sich der optimale

54 46 Kapitel 4 Erweiterungen des Viola-Jones Detektors (a) (b) (c) (d) (e) Abbildung 4.3: Erweiterte Blockmerkmale nach Lienhart et al.: Neben zusätzlichen Merkmalen besitzt jedes darüber hinaus eine um 45 gedrehte Version. Vektor a aus allen Lösungskoeffizienten β i bilden: a = N β i y i h(x i ) i=1 Durch Anpassung des Faktors w und des Schwellwerts b kann ein Klassifikator mit einer möglichst großen Detektionsrate erzielt werden. Redundanz-Reduzierung Um eine Redundanz-Reduzierung vorzunehmen, nimmt man zu Testzwecken den Weak- Klassifikator, der am wenigsten zum Ergebnis beisteuert, aus dem Ensemble wieder raus. Logischerweise ist das derjenige, der nach der vorangegangenen Optimierung mit dem kleinsten Faktor α i in die Summe einfließt. Durch das Entfernen eines Weak-Klassifikators verändert sich jedoch das Klassifikationsverhalten, so dass anschließend ebenfalls die beschriebene Optimierung durchgeführt wird. Der Vorgang wird so lange wiederholt, bis die Zielvorgaben für die Detektions- und Falsch-Positiv-Rate nicht mehr erreicht werden können. In diesem Fall wird der vorangegangenen Zustand des Ensemble-Klassifikators wiederhergestellt und der Prozess abgebrochen. 4.4 Erweiterte Merkmale Die von Viola und Jones verwendeten Blockmerkmale sind einfach aufgebaut und können schnell berechnet werden. Durch ihre spezielle Form reagieren sie auf horizontal und vertikal verlaufende Kanten und Linien, wobei das Vier-Blockmerkmal zu einem gewissen Teil auch diagonale Strukturen erkennen kann. Damit sind sie in der Lage, die überwiegenden Linienzüge eines aufgerichteten Frontalgesichts zu erfassen. Bei nicht symmetrischen Strukturen sind sie jedoch überfordert, so dass der Fehler der Weak-Klassifikatoren steigt und AdaBoost gezwungen ist, mehr Merkmale zu wählen, um das Trainingsobjekt anzunähern. Dadurch steigt aber auch die benötigte Zeit für das Training und der resultierende Detektor wird langsamer, da er für jeden Bildausschnitt mehr Merkmale auswerten muss.

55 4.4 Erweiterte Merkmale 47 (a) (b) (c) Abbildung 4.4: Erweiterte Blockmerkmale mit nicht zusammenhängenden Regionen: (a) Ein Blockmerkmal mit zwei auseinander liegenden Regionen. (b) Ein erweitertes Blockmerkmal mit drei Regionen. Um die Freiheitsgradeeinzuschränken, liegen zwei Blöcke immer auf derselben Höhe. (c) Vier-Blockmerkmal: hier dürfen sich die einzelnen Regionen sogar überschneiden. Um die Ausdrucksfähigkeiten der von Viola-Jones verwendeten Merkmale zu erweitern, haben Lienhart et al. in [Lie03] zusätzliche Merkmale eingeführt. Neben einem neuen konzentrischem Merkmal, das an die rezeptiven Fähigkeiten der retinalen Ganglion-Zellen im menschlichen Sehapparat angelehnt ist (s. erstes Merkmal in Abbildung 4.3(c)), wurden darüber hinaus die Viola-Jones Linien-Merkmale ausgedehnt, indem die mittlere Region in ihrer Fläche verdoppelt wurde (s. Abbildung 4.3(d)). Ein besonderes Kennzeichen der von Lienhart verwendeten Merkmale ist jedoch, dass alle Merkmale auch in einer um 45 gedrehten Version existieren (s. Abbildung 4.3(a)-(e)). Damit können diagonale Linien und Kanten besser als mit den Standardmerkmalen approximiert werden, die nur horizontale oder vertikale Strukturen erkennen. Zur schnellen Berechnung dieser gedrehten Merkmale muss jedoch ein zusätzliches Integralbild erstellt werden, das diagonale Summen enthält. In [Zha02] beschreiben Zhang et al. ein Detektionssystem, das neben Frontal- auch Profilgesichter erkennen kann. Da Profilgesichter eine unsymmetrische Form besitzen, verwenden sie zwei erweiterte Blockmerkmalstypen (s. Abbildungen 4.4(a) und (b)). Um diese Asymmetrien zu erfassen, dürfen die einzelnen Merkmalsregionen unabhängig von einander im Suchfenster positioniert werden. Jedoch sind auch hier Überlappungen dieser Regionen nicht zugelassen. Durch die freie Anordnung der Blöcke erhöht sich aber auch die Anzahl der Freiheitsgrade, mit denen ein Merkmal beschrieben werden muss. Da alle Blockregionen eines solchen Merkmals gleich groß sind, und die Position jeder dieser Regionen durch zwei Koordinaten bestimmt wird, ergeben sich somit sechs Parameter für das Zwei-Block- und acht für das Drei- Blockmerkmal. Dadurch entsteht folglich eine sehr große Kombinationsanzahl von Merkmalen. Um diese einzuschränken, wird das Drei-Blockmerkmal auf sieben Parameter beschränkt, indem zwei Blockregionen immer auf derselben Höhe liegen. Zum Detektieren von Handgesten geht Kölsch in [Köl04] einen Schritt weiter und verwendet hierfür vier Blöcke, die sich im Gegensatz zu den anderen vorgestellten Merkmalsarten überschneiden dürfen (s. Abbildung 4.4(c)). Damit können komplizierte Blockanordnungen gebildet werden, so dass die Vermutung nahe liegt, dass damit auch schwierige Formen gut repräsentiert werden können. Der Nachteil ist jedoch, dass hierdurch eine enorme Anzahl von Konfigurationen entsteht. So gibt Kölsch für ein Pixel großes Suchfestern selbst nach einigen Einschränkungen noch Möglichkeiten an.

56 48 Kapitel 4 Erweiterungen des Viola-Jones Detektors (a) p = +1 (b) p = 1 Abbildung 4.5: Bei komplexen Klassenverteilungen ist ein einfacher Schwellwert-Klassifikator überfordert, so dass stets ein hoher Fehler entsteht (dunkle Fläche). 4.5 Verbesserung der Weak-Klassifikatoren Die Anzahl der ausgewählten Merkmale in einem von AdaBoost trainierten Ensemble-Detektor hängt von dem Klassifikationsfehler des entsprechenden Weak-Klassifikators ab. Haben die Weak-Klassifikatoren jeweils ein schlechte Leistung, so dass der Klassifikationsfehler dicht an 0.5 liegt, müssen viel mehr Merkmale zum Ensemble hinzugefügt werden als bei einem kleinen Klassifikationsfehler, um dieselben Detektions- und Falsch-Positiv-Raten zu erreichen. Wie bereits beschrieben, verwenden Viola und Jones einen einfachen Schwellwert- Klassifikator (vgl. Abschnitt 3.3.4): h(x) = { 1 wenn pf(x) < pθ 1 sonst wobei f(x) die Merkmalstransformation eines Bildausschnitts x darstellt, und θ der gewählte Schwellwert ist. Der Parameter p gibt die Richtung des Vergleichs an. Bei p = 1 liegen die meisten Beispiele für Gesichter unterhalb und bei p = 1 oberhalb des Schwellwertes. Eine gute Klassifikationsleistung kann in dieser Form nur erreicht werden, wenn die beiden Wahrscheinlichkeitsverteilungen der Gesichts- und Hintergrundbeispiele sich nur am Rande überschneiden. Bei komplexeren Verteilungen kann der Schwellwert jedoch nicht optimal gesetzt werden, ohne große Teile von Beispielen falsch zu klassifizieren, wie Abbildung 4.5 verdeutlicht. Im Beispiel gibt es zwei Möglichkeiten, den Schwellwert zu positionieren, um den Großteil der positiven Beispiele von den negativen zu trennen. In keinem der beiden Fälle, kann jedoch ein kleiner Klassifikationsfehler erreicht werden, da immer der überwiegende Teil der Hintergrundbeispiele auf der falschen Seite des Schwellwertes liegt. Eine Lösung dieses Problems ist, beide Schwellwerte zur Klassifikation heranzuziehen. Um den Gedanken weiterzuführen, müssen für komplexere Verteilungen mehrere Schwellwerte verwendet werden, damit der Klassifikationsfehler gesenkt werden kann.

57 4.5 Verbesserung der Weak-Klassifikatoren 49 (a) (b) Abbildung 4.6: Schwellwert-Klassifikatoren können durch einfache Entscheidungsbäume dargestellt werden Lookup-Table Klassifikator Eine Möglichkeit dies vorzunehmen sind die so genannten Lookup-Tables (LUT). Dafür wird ähnlich wie bei den Riemann Summen zur Integralbestimmung der komplette Wertebereich der Merkmalsfunktion f(x) in N gleichgroße Bereiche, den Bins, unterteilt. Dies setzt voraus, dass der Wertebereich geschlossen und seine Ausdehnung bekannt ist. Wird dieser Wertebereich auf das Intervall [0; 1] normalisiert, so deckt das j-te Bin einen entsprechenden Abschnitt darin ab: [ j bin j = N ; j + 1 [, mit j = 0,..., N 1 N Für jeden dieser Bins wird die Weak-Klassifikatorfunktion h(x) angenähert. Bei Discrete AdaBoost enthält somit jedes Bin entweder +1 oder 1, je nachdem ob in diesem Bereich P (y = +1 x) > P (y = 1 x) gilt oder nicht. Bei Gentle AdaBoost muss laut Gleichung 4.2 hierbei P w (y = +1 x) P w (y = 1 x) bestimmt werden. Dieser Klassifikator kann zur Laufzeit sehr schnell ausgewertet werden, da das Ergebnis der Funktion h(x) für den Merkmalswert f(x) einfach aus einer Tabelle ausgelesen werden kann. Obwohl Lookup-Tables eine einfache Möglichkeit zum Training und Auswertung bieten, ist die Anzahl der Bins ein kritischer Parameter. Wird der Wertebereich in zu wenige Bins unterteilt, können komplexere Verteilungen nicht gut genug angenährt werden, womit unnötigerweise der Klassifikationsfehler steigt. Da nur endlich viele Trainingsbeispiele zur Verfügung stehen, können bei zu vielen Bins unter Umständen nur wenige Beispiele, oder im Extremfall sogar nur eins, in den Bereich eines Bins fallen. Der Klassifikationsfehler wäre somit extrem niedrig, da die Funktion nahezu perfekt angenähert wurde. Jedoch entspricht das nicht der wirklichen Verteilung, so dass dieser Klassifikator nicht generalisierungsfähig wäre. CART Klassifikator Der einfache Schwellwert-Klassifikator kann als ein Entscheidungsbaum mit zwei Blattknoten im Englischen auch Stump genant betrachtet werden. Der Wert in den Blattknoten bestimmt dabei analog zu den Bins der Lookup-Table das Ergebnis der Funktion h(x). So kann das Beispiel aus Abbildung 4.5(a) als ein solcher Baum dargestellt werden (s. Abbildung 4.6(a)). Wie

58 50 Kapitel 4 Erweiterungen des Viola-Jones Detektors bereits gesagt, wäre es jedoch von Vorteil, wenn man den zweiten Schwellwert (vgl. Abbildung 4.5(b)) ebenfalls in die Entscheidung mit einbeziehen könnte, um den Klassifikationsfehler zu minimieren. Die Baumstruktur ermöglicht einen leichten Weg dies zu erreichen. Dafür wird in diesem Fall der linke Blattknoten des Baums aufgespalten und durch einen zusätzlichen Entscheidungsknoten ersetzt. Das Ergebnis zeigt Abbildung 4.6(b). Zu den Verfahren, die solche Bäume automatisch generieren können, gehören die Classification and Regression Trees (CART). Die Grundidee von CART ist dabei einfach: In jedem Schritt wird derjenigen Knoten aufgespaltet bzw. hinzugeführt, der die größte Verbesserung des Klassifikationsfehlers nach sich ziehen würde. Jeder Wert des Blattknotens wird jeweils aus einer Teilmenge der gesamten Trainingsmenge gebildet. Diese Teilmenge wird durch die Beschränkungen der übergeordneten Entscheidungsknoten eingegrenzt. Der CART Trainingsvorgang lässt sich somit wie folgt beschreiben: 1. Initialisiere L = {} und trainiere auf der kompletten Trainingsmenge einen Stump (Entscheidungsbaum mit zwei Blattknoten) 2. Wiederhole a) Bestimme für die beiden neuen Blatt-Knoten v i im Baum zwei Stumps s i, indem auf den entsprechenden Teiltrainingsmengen die optimalen Schwellwerte bestimmt werden b) Ermittle für die so neu entstandenen Stumps den jeweiligen Gewinn ε i für den Gesamtklassifikationsfehler, falls der entsprechende übergeordnete Blatt-Knoten v i durch diesen ersetzt wird c) Füge die neuen Stumps zusammen mit dem Gewinn und einem Verweis auf den Blatt-Knoten, aus dem dieser Stump entstanden ist, zu der Liste L hinzu: L = L {(s i, ε i, v i )} d) Entferne aus der Liste L den Stump mit dem größten Gewinn und ersetze mit diesen den im Verweis gespeicherten Blatt-Knoten Dieser Vorgang kann theoretisch solange wiederholt werden, bis jeder Blattknoten nur noch jeweils ein Beispiel beschreibt. Jedoch hätte man dadurch dasselbe Generalisierungsproblem wie vorher bei den Lookup-Tables. Ein viel besserer Weg ist, das Training abzubrechen, falls das Hinzufügen eines neuen Stumps keinen nennenswerten Gewinn für den Klassifikationsfehler bringt oder die Anzahl der Trainingsbeispiele in den Teilmengen zu klein wird. CART ermöglicht somit, den Trainingsfehler eines Weak-Klassifikators durch multiple Schwellwerte zu senken, ohne Gefahr zu laufen, die Generalisierungsfähigkeit zu verlieren. 4.6 Chain-Kaskade Wie in Abschnitt 3.4 herausgestellt, führt die Hintereinanderschaltung von mehreren Detektoren zu einer Kaskadenstruktur. Die Detektoren werden dabei gemäß ihrer Komplexität aufsteigend sortiert, so dass die einfachen und damit schnelleren Detektoren am Anfang der Ausführungskette, und die wesentlich leistungsfähigeren aber auch dadurch langsameren Detektoren am Ende stehen. Gegenüber einem monolithischen Detektor hat die Kaskade damit mehrere Abbruchpunkte, an denen Bildausschnitte mit Nicht-Gesichtern die Abarbeitung vorzeitig

59 4.6 Chain-Kaskade 51 Algorithmus 3 Chain-Kaskadenstruktur Auswertung 1. Auswertung eines Beispiels x für eine Chain-Kaskadenstruktur mit insgesamt K Knoten 2. Initialisierung der kumulativen Summe: s = 0 3. Für k = 1... K Ergänze kumulative Ergebnis um die Auswertung des nächsten Detektors: s = s + M k m=1 αk mh k m(x) Wenn s < b k, dann Abbruch mit einer negativen Antwort 4. Chain-Kaskade vollständig durchlaufen: akzeptiere x als Gesicht verlassen können. Da Bilder größtenteils aus Hintergrund bestehen, erhält man damit eine erhebliche Geschwindigkeitssteigerung. Trotz dieser Optimierung hat die Kaskadenstruktur jedoch einige Schwachstellen. Für das Training der Detektoren werden immer dieselben Gesichtsbeispiele verwendet. Die Hintergrundbeispiele werden jedoch mit Hilfe des Bootstrapping-Verfahrens für jeden Detektor neu bestimmt (vgl. Abschnitt 3.4), so dass spätere Detektoren auf Trainingsmengen mit immer komplexer werdenden, gesichtsähnlicheren Hintergrundbeispielen trainiert werden müssen. Um eine ausreichende Diskriminanz zwischen Gesichtern und Nicht-Gesichtern zu erreichen, muss der Trainingsalgorithmus für einen Detektor deshalb mehr Weak-Klassifikatoren bzw. Merkmale als für seinen Vorgänger aufwenden. Dadurch werden die späteren Detektoren in der Kaskade immer länger, was sich negativ auf die Laufzeit auswirkt. In ihrem Boosting Chain genannten Verfahren schlagen Xiao et al. eine Abwandlung der Kaskadenstruktur vor, die den Nachteil, dass die einzelnen Detektoren keinerlei gewonnenes Wissen untereinander austauschen, umgeht [Xia03]. Um das Problem zu verdeutlichen sollte zunächst den Aufbau eines Kaskadendetektors wieder ins Gedächtnis rufen werden. So ist der i-te Detektor einer gewöhnlichen Kaskade ein von AdaBoost trainierter Ensemble-Klassifikator: H i (x) = sgn [ Mi m=1 α i mh i m(x) b i ] wobei M i die Anzahl der Weak-Klassifikatoren h i (x) ist. Der Schwellwert b i dient hierbei nur dem Zweck, die Detektionsrate anpassen zu können. Die tragende Information bildet hingegen die Summe M i m=1 α i mh i m(x) Der Betrag der Summe gibt darüber Auskunft, wie sicher sich der Klassifikator über sein Ergebnis ist. Diese Information geht jedoch beim Wechsel zum nächsten Kaskadendetektor vollkommen verloren. Aus diesem Grund betten Xiao et al. diese Summe in den den Nachfolgeklassifikator wieder ein. Der i-te Klassifikator greift somit zusätzlich zu seiner eigenen Bewertung auf die kumulative Summe aller seiner Vorgänger zurück und wird deshalb in gewisser Weise mit ihnen verkettet (engl. chained): H i (x) = sgn [ i M k k=1 m=1 α k mh k m(x) b i ] Diese Kaskadenstruktur kann leicht ausgewertet werden, wie Algorithmus 3 zeigt.

60 52 Kapitel 4 Erweiterungen des Viola-Jones Detektors Der letzte Klassifikator in der Chain-Kaskadenstruktur greift dabei auf alle Weak- Klassifikatoren in einer Kaskade zurück. Dies entspricht einem einzigen monolithischen Detektor mit ebenso vielen Weak-Klassifikatoren. Die Chain-Kaskade vereint somit die Vorteile eines langen und damit sehr leistungsfähigen Detektors mit den Vorzügen einer Kaskade, die die Möglichkeit hat, an mehreren Stellen ihre Abarbeitung zu verlassen. Das Training der Chain-Kaskade entspricht im Wesentlichen dem bekannten AdaBoost- Verfahren. Der einzige Unterschied ist, dass die Gewichte der Gesichtsbeispiele für das Training der einzelnen Chain-Detektoren nicht zurückgesetzt werden. Um die Gewichte der jeweils neuen Hintergrundbeispiele, die durch Boostrapping gewonnen werden, zu initialisieren, verwendet man die herkömmliche AdaBoost-Gewichtungsfunktion: w t+1 i = w 0 exp ( y i t M k k=1 m=1 α k mh k m(x i ) ) (4.4) wobei w 0 das Initialgewicht aller Hintergrundbeispiele und y i { 1; 1} das Klassenlabel für das entsprechende Beispiel x i ist. 4.7 Zusammenfassung In diesem Kapitel wurde auf ausgewählte Verfahren eingegangen, die sich der Optimierung einzelner Bereiche des Viola-Jones Detektionssystems widmen. AsymBoost erweitert den Discrete AdaBoost Trainingsalgorithmus um eine asymmetrische Gewichtung der Trainingsbeispiele und erlangt damit, dass jeder Detektor in der Kaskade eine höhere Detektionsrate erreicht. Real- und Gentle AdaBoost führen hingegen Weak- Klassifikatoren ein, die anstatt binärer Entscheidungen kontinuierliche Werte liefern und somit die Sicherheit in ihren Ergebnissen direkt ausdrücken können. Die zusätzliche Gewichtung der Weak-Klassifikatoren im Ensemble, die in Discrete AdaBoost ansonsten das Vertrauen ausdrückt, kann somit entfallen. Gentle AdaBoost ist außerdem gegenüber Ausreißern unempfindlicher als andere Varianten. Da die verwendete Merkmalsmenge sehr groß ist, ist das Austesten aller Merkmale sehr zeitaufwendig. Ein einfacher Weg, das Training zu beschleunigen, ist deshalb, die Merkmalsmenge zu verkleinern, indem jeweils nur ein kleiner, zufällig ausgewählter Teil der Merkmale getestet wird. Andere Methoden versuchen, über Gradientenabstiegsverfahren oder genetische Suchalgorithmen die Anzahl der notwendigen Berechnungen einzuschränken. Direct Feature Selection geht sogar weiter und berechnet die Weak-Klassifikatoren vollständig vor, muss dafür jedoch den Trainingsalgorithmus austauschen. Weil in diesem Verfahren nur ein Teil aller Merkmale getestet wird, kann eine Boosting- Redundanz entstehen, bei der einige Weak-Klassifikatoren überflüssig werden, da dieselbe Leistung bereits von anderen erbracht wird. Durch nachträgliche Optimierung der Gewichtungsfaktoren der einzelnen Weak-Klassifikatoren können die nicht relevanten Anteile identifiziert und aus dem Detektor entfernt werden. Ein anderer Aspekt betrifft die verwendeten Merkmale und die dazu gehörenden Klassifikatoren. So sind die Viola-Jones Merkmale einfach und schnell berechenbar, können aber nicht alle Strukturen gleich gut beschreiben. Zur Klassifikation der berechneten Merkmalswerte wird außerdem ein einfacher Schwellwert-Klassifikator verwendet, der komplexere Verteilungen nur

61 4.7 Zusammenfassung 53 ungenügend trennen kann, was wiederum zu einem größeren Fehler führt. Aus diesem Grund sind erweiterte Merkmale entstanden, die einerseits ähnlich schnell wie die ursprünglichen Merkmale berechnet werden können und andererseits größere Ausdrucksfähigkeiten besitzen. Um die Klassifikationsleitung zu verbessern, wurde des weiteren der einfache Schwellwert- Klassifikator durch Multi-Schwellwert-Klassifikatoren wie Lookup-Tables oder Klassifikationsbäume ersetzt. Die Kaskadenstruktur aus dem Viola-Jones Detektor ist maßgeblich für die Geschwindigkeit des Detektors verantwortlich. Jedoch stehen die einzelnen Kaskadendetektoren für sich alleine, so dass bereits ermittelte Informationen beim Übergang von einem Detektor zum nächsten verloren gehen. Die Chain-Kaskadenstruktur umgeht diesen Nachteil, indem sie die Vorgängerdetektoren in ihre Nachfolger einbettet.

62

63 Kapitel 5 Konzeption und Umsetzung Das Viola-Jones Gesichtsdetektionssystem bildet die Vorlage für viele Weiterentwicklungen und Verfeinerungen, die im Laufe der Zeit seit der Veröffentlichung entstanden sind. Dabei werden jedoch nur einzelne gezielte Teilbereiche wie zum Beispiel der Trainingsalgorithmus oder die Kaskadenstruktur betrachtet. Jede dieser Erweiterungen steht für sich alleine und vernachlässigt die Fortschritte in den anderen Teilgebieten des Gesamtsystems. Ausgehend von Kapitel 3 und 4 ist deshalb ein System entstanden, dass ich in Anlehnung an den Entwicklungsablauf und die Chain-Kaskadenstruktur ChainBoost genannt habe. Im Vordergrund stand die Überlegung, die Trainingszeit für einen Detektor von mehreren Wochen deutlich zu senken und dabei ähnlich gute oder falls möglich sogar bessere Detektionsergebnisse und -geschwindigkeiten des ursprünglichen Viola-Jones Detektors zu erreichen. Dafür wurden die einzelnen, viel versprechenden Weiterentwicklungen in ChainBoost kombiniert und teilweise erweitert. Durch eine spezielle Wahl der Merkmale konnte außerdem ein Merkmalsselektionsverfahren entwickelt werden, das zur Reduzierung der Trainingzeit erheblich beiträgt. 5.1 Kaskadenstruktur Wie bereits erläutert, ist das Training eines kompletten Kaskadendetektors sehr zeitintensiv. Dies ist unter anderem darauf zurückzuführen, dass im klassischen Viola-Jones System die Detektoren zum Ende immer aufwendiger werden, weil Abweichungen zwischen Bildhintergrund- und Gesichtsbeispielen immer geringer ausfallen, und somit mehr Merkmale benötigt werden, um die Unterschiede zu erfassen. Aus diesem Grund wird in ChainBoost die Chain-Kaskadenstruktur, wie in Abschnitt 4.6 ausgeführt, eingesetzt. Da dabei jeder Detektor nur eine Fortsetzung seines Vorgängers ist, müssen in den einzelnen Stufen somit weniger Weak-Klassifikatoren ausgewählt werden, was sich wiederum positiv auf die Trainingsdauer und das Laufzeitverhalten des finalen Detektors auswirkt. 5.2 Trainingsalgorithmus Der von Viola und Jones verwendete Discrete AdaBoost Algorithmus minimiert den Gesamtklassifikationsfehler, ohne der Detektionsrate eine besondere Bedeutung zukommen zu lassen. Diese ist jedoch wichtig, damit möglichst viele Gesichter jeden Detektor in der Kaskade passieren können. Deshalb wurde in Gleichung 3.6 ein Schwellwert eingeführt, mit dem die Detektionsrate eines Ensemble-Klassifikators nach oben korrigiert werden kann. Dies bewirkt 55

64 56 Kapitel 5 Konzeption und Umsetzung Trainingsbeispiel : (wi, xi, yi) t=1 t=1 lineare Optimierung asym. Gewichtung k entferne h i (x) mit kleinstem i t=t+1 lineare Optimierung Discrete AdaBoost Iteration ( t, ht(x)) erweitere Ensemble- Klassifikator H t (x) = sgn[ Gentle AdaBoost Iteration ( t=1, ht(x)) i h i (x)] Anpassung der Detektionsrate: dt ft Ht(x) F D ja Anpassung der Detektionsrate : dt D Ht(x) = sgn[ i hi(x) - b] nein revidiere letzten Schritt H(x) = Ht-1(x) nein t=t+1 ft F ja Detektor Abbildung 5.1: Schematische Darstellung des Trainingsalgorithmus jedoch einen Anstieg der Falsch-Positiv-Rate, so dass AdaBoost mehr Weak-Klassifikatoren aufwenden muss, um diese wieder zu senken. Eine Lösung bietet hierfür AsymBoost, das in Abschnitt behandelt wurde. Obwohl Viola und Jones AsymBoost in erster Linie als eine Erweiterung des Discrete AdaBoost Algorithmus vorgestellt haben, ist es problemlos auf andere AdaBoost-Varianten übertragbar, da in allen Fällen dieselbe exponentielle Kostenfunktion minimiert wird. Somit ist es möglich, die asymmetrische Gewichtung auch bei Gentle AdaBoost (vgl. Abschnitt 4.1.2) vorzunehmen. Da Gentle AdaBoost außerdem den besonders schwer zu unterscheidenden Beispielen weniger Bedeutung beimisst, ist es durch seine bessere Generalisierungsfähigkeit Discrete und Real AdaBoost überlegen. In ChainBoost besteht die Möglichkeit, neben Discrete AdaBoost auch Gentle AdaBoost zu verwenden. Die Wahl bleibt dem Benutzer überlassen. Ein schematischer Gesamtüberblick des in ChainBoost verwendeten Trainingsalgorithmus ist in Abbildung 5.1 dargestellt. Der Prozess besteht aus zwei Teilen. Im ersten wird ein Ensemble-Klassifikator trainiert, der im zweiten Teil einer Merkmalsreduktion unterzogen wird.

65 5.2 Trainingsalgorithmus 57 Der Algorithmus erhält neben den Beispielen x i und den entsprechenden Klassenlabels y i zusätzlich die Gewichtsverteilung w i. Der Benutzer bestimmt ferner die Zielvorgaben für das Training des Detektors: die minimale Detektionsrate D und die maximale Falsch-Positiv- Rate F. Beim Training des ersten Chain-Kaskadendetektors wird die Gewichtsmasse wie in [Vio01b] auf die Gesichts- und Bildhintergrundbeispiele gleichermaßen aufgeteilt, um eine Bevorzugung einer der Klassen von vornherein zu vermeiden: w i = { 1 2m falls y i = 1 sonst 1 2l (5.1) wobei m und l die Anzahl der Gesichts- bzw. Hintergrundbeispiele ist. Dies ist notwendig, da in einer Trainingsmenge der Anteil der Gesichts- und Bildhintergrundbeispiele üblicherweise nicht gleich ist. Bei einer gleichmäßigen Aufteilung der Gewichtsmasse auf alle Beispiele, würde deshalb die Klasse mit den meisten Beispielen in den gewichteten Fehler überproportional hoch einfließen, was hierbei wiederum die Bevorzugung der Hintergrundbeispiele und damit verbundenen Konzentration auf die Falsch-Positiv-Rate anstatt der Detektionsrate bedeuten würde. Für alle folgenden Detektoren werden die Gewichte für die Gesichtsbeispiele aus dem vorangegangenen Training übernommen. Da für jeden Detektor neue Hintergrundbeispiele durch das Bootstrapping-Verfahren gewonnen werden, müssen diese nach Gleichung 4.4 zunächst neu bestimmt werden. Anschließend werden alle Gewichte normalisiert, so dass i w i = 1 gilt. Nachfolgend beginnt der Trainingsprozess, der mit Discrete bzw. Gentle AdaBoost einen neuen Weak-Klassifikator h t (x) erzeugt. Vor jedem Schritt wird jedoch zunächst eine asymmetrische Umverteilung der Gewichte vorgenommen. Durch die spezielle Wahl k = 1 für die asymmetrischen Kosten kann diese aber unterdrückt werden. Da Gentle AdaBoost keine Gewichtungsfaktoren α t benötigt, werden diese hierbei der Einfachheit halber auf den Wert 1 gesetzt. Der neue Weak-Klassifikator h t (x) wird anschließend zusammen mit seinem Gewichtungsfaktor α t zum Ensemble-Klassifikator hinzugefügt. Obwohl AsymBoost die Detektionsrate steigert, erreicht diese nicht die gewöhnlich hoch gewählte Zielvorgabe D. Daher muss die Detektionsrate d t wiederum mit Hilfe des Schwellwertes b angepasst werden. Liegt daraufhin die Falsch-Positiv-Rate f t unter der geforderten Vorgabe F, wird zum zweiten Teil, der Merkmalsreduktion, übergegangen, anderenfalls ein neuer Weak-Klassifikator trainiert. Die Merkmalsreduktion setzt direkt das in Abschnitt 4.3 beschriebene Verfahren um. Obwohl sie die Trainingszeit verlängert, wurde sie trotzdem in ChainBoost aufgegriffen. So kann durch die verwendete lineare Optimierung einerseits die Generalisierungsfähigkeit des Detektors gesteigert und andererseits durch Entfernen nicht relevanter Weak-Klassifikatoren die Laufzeit verbessert werden. Das sind beides Vorteile, die eine Verlängerung der Trainingsdauer rechtfertigen. Der lineare Optimierungsprozess verwendet zum Verbessern der Parameter α i eine SVM, die mit Hilfe der BSVM 1 Bibliothek umgesetzt wurde. Das Klassifikationsrisiko C aus Gleichung 4.3 wird dabei auf den Wert 1 und der Faktor w, der die Mehrkosten für fälschlicherweise als Hintergrund klassifizierte Gesichtsbeispiele bestimmt, in einem iterativen Prozess auf Werte zwischen 5 und 200 in 15-er Schritten gesetzt. Dabei wird der Ergebnisvektor a, der zur 1

66 58 Kapitel 5 Konzeption und Umsetzung höchsten Detektionsrate d t D bei gleichzeitiger Falsch-Positiv-Rate f t F führt, als das Endresultat gewählt. Letztendlich wird die Merkmalsreduktion solange durchgeführt, wie die Zielvorgaben für das Training nicht mehr eingehalten werden können. In diesem Fall wird der vorangegangene Zustand des Detektors wiederhergestellt, indem der zuletzt entfernte Weak-Klassifikator wieder ins Ensemble aufgenommen wird und die Gewichtungsfaktoren α t auf die Werte zum Zeitpunkt t 1 zurückgesetzt werden. 5.3 Merkmale und Klassifikatoren Die Blockmerkmale bilden durch ihre speziellen Eigenschaften die wichtigste Grundkomponente des Viola-Jones Systems (vgl. Abschnitt 3.2). Für die Aufgabe der Frontalgesichtsdetektion haben die beiden Autoren Blockkonfigurationen gewählt, die Linienzüge und Kontrastverhältnisse in einer aufgerichteten Abbildung des Frontalgesichts geeignet modellieren können. Für die Detektion anderer Objekte mit komplexeren Formen sind sie jedoch nicht ausgelegt worden, so dass Abwandlungen und Erweiterungen dieser Merkmale entstanden sind (vgl. Abschnitt 4.4). Diese erweiterten Merkmale haben ausgeweitete Modellierungsfähigkeiten, wobei die Kosten für die Auswertung auf einem Bildausschnitt sich kaum von denen der Ausgangsmerkmale unterscheiden. Dadurch sind sie aber auch prädestiniert für die Frontalgesichtsdetektion, da durch ihre bessere Ausdrucksfähigkeit Weak-Klassifikatoren mit kleinerem Fehler erzeugt werden können. Dies führt wiederum dazu, dass weniger Merkmale für einen Detektor trainiert werden müssen. Jedoch bringen erweiterte Merkmale auch den Nachteil, dass die Merkmalsmenge vergrößert wird und die Trainingzeit sich damit drastisch verlängert, falls keine algorithmischen Verbesserungen vorgenommen werden (s. Abschnitt 4.2). Abgesehen von den Verfahren, die die Trainingszeit durch Auslassen von Teilen der erforderlichen Berechnungen verkürzen (Merkmalsmengenreduktion und Direct Feature Selection), erfordern andere (diskreter Gradientenabstieg und genetische Suchalgorithmen) Merkmale mit flexiblen Parametern, um einen größeren Freiraum für Optimierungen zu haben. Andererseits sind Merkmale mit zu vielen Parametern nachteilig, weil der Suchraum damit zu groß wird. Denn mit jeder zusätzlichen Dimension steigt der Suchaufwand exponentiell an, was auch als Fluch der Dimensionalität (engl. curse of dimensionality) bekannt ist Verwendete Merkmale Der in ChainBoost verwendete Merkmalsselektionsalgorithmus ist eine Kombination aus eben solchen Verfahren, die auf flexible Parametrisierung der Merkmale angewiesen sind, um ihren Geschwindigkeitsvorteil ausspielen zu können. Die von Viola-Jones und Lienhart et al. verwendeten Merkmale (vgl. Abbildungen 3.1 und 4.3) sind durch ihre starren Blockstrukturen für diese Aufgabe jedoch weniger geeignet, da sie nur Möglichkeiten bieten, die Position im Suchfenster und die Ausdehnung in vertikaler und horizontaler Richtungen zu verändern. Die um 45 rotierten Merkmale von Lienhart et al. benötigen ausserdem die Berechnung eines weiteren Integralbildes, was zur Laufzeit des Detektor zusätzliche Zeit kostet. Des Weiteren verdoppeln die rotierten Merkmale die verfügbare Merkmalsanzahl, führen jedoch nur zur verbesserten Modellierung von exakt diagonal verlaufenden Strukturen.

67 5.3 Merkmale und Klassifikatoren 59 (a) (b) (c) (d) Abbildung 5.2: Beispielkonfigurationen der verwendeten Merkmale in ChainBoost Die von Zhang et al. und Kölsch vorgestellten Merkmale sind dabei viel anpassungsfähiger (s. Abbildung 4.4). Durch ihre lose Struktur der Blockregionen sind sie in der Lage, Kontrastabhängigkeiten in Bereichen zu erkennen, die nicht unmittelbar nebeneinander liegen, um somit zum Beispiel das Verhältnis zwischen den beiden Augen und Mund mit nur einem einzigen Drei-Blockmerkmal auszudrücken. Die flexible Anordnung der Blockregionen bietet dem Merkmalsselektionsalgorithmus ferner mehr Raum für Optimierungen der Parameter. Deshalb habe ich mich entschieden, in ChainBoost die Zwei- und Drei-Blockmerkmale von Zhang et al. zu verwenden. Auf das von Kölsch verwendete Merkmal habe ich verzichtet, da ein zehndimensionaler Suchraum die Trainingszeit stark belasten würde. Die Idee der sich überlappenden Blöcke ist in ChainBoost hingegen wieder eingeflossen und die Einschränkung, dass beim Drei-Blockmerkmal zwei Blockregionen auf derselben Höhe liegen müssen, aufgehoben (s. Abbildungen 5.2(a) und (b)). Damit sind Möglichkeiten gegeben noch komplexere Formen besser anzunähern. Eine Besonderheit betrifft jedoch die Drei-Blockmerkmale, die bei Zwei-Blockmerkmalen immer gegeben ist. Damit die schnelle Bildnormalisierung (vgl. Abschnitt 3.2.3) funktioniert, müssen sich alle Gewichte der Blockregionen auch bei Überscheidungen zu Null aufsummieren. Zwei Beispiele für solche Konstellationen zeigen Abbildungen 5.2(c) und (d). Ferner unterliegen die Zwei- und Drei-Blockmerkmale einer Einschränkung. Um zu verhindern, dass sich das Training auf einzelne Pixel anstatt auf Strukturelemente konzentriert und somit die Generalisierungsfähigkeit beeinträchtigt, müssen die positiv und damit auch negativ gewichteten Regionen mindestens einen Bereich von 16 Pixel abdecken. Blockgewichtung beim Skalieren Einer der Vorteile der Blockmerkmale ist, dass sie skaliert werden können, um Gesichter größerer Abmessungen im Bild zu detektieren. Ein Problem entsteht jedoch beim Skalieren mit nicht ganzzahligen Faktoren. Während des Trainings sind die Eckkoordinaten der einzelnen Blöcke an den Zentren der Pixel im Suchfenster ausgerichtet (s. Abbildung 5.3(a)). Nach dem Skalieren können Situationen entstehen, in denen alle oder nur einige der Eckkoordinaten nicht mehr genau auf den Pixelzentren liegen. Da das Integralbild jedoch keine Möglichkeit bietet, für diese Fälle einen exakten Wert zu bestimmen, müssen andere Optionen herangezogen werden. Hierfür bieten sich zwei mögliche Lösungsansätze an. Einerseits kann durch Interpolation der tatsächliche Wert angenähert und andererseits können die Koordinaten auf ganzzahlige Werte gerundet werden.

68 60 Kapitel 5 Konzeption und Umsetzung (a) (b) Abbildung 5.3: Problem bei Merkmalsskalierung: (a) In der Ausgangkonfiguration ist ein Block an den Pixelzentren ausgerichtet. (b) Nach einer Skalierung um den Faktor 1.5 befinden sich einige Eckkoordinaten zwischen den Pixel. Beim Runden der Koordinaten entsteht somit ein Fehler. Die Interpolation liefert die bestmögliche Annäherung an den exakten Wert. Jedoch sind dafür anstatt eines vier Speicherzugriffe notwendig, da der Wert aus den vier Nachbarpixel bestimmt werden muss. Zusätzlich müssen diese vier Werte je nach Abstand zu den Pixelzentren unterschiedlich stark gewichtet werden. Somit vergrößert sich der Berechnungsaufwand für ein Merkmal um mehr als das Vierfache, was sich direkt in der Laufzeit des Detektors auswirkt. Um die Laufzeit nicht zu beeinträchtigen, werden die Eckkoordinaten in ChainBoost deshalb auf ganzzahlige Werte gerundet, so dass die Summe im Block auf dem üblichen Weg berechnet werden kann. Dadurch ändert sich jedoch je nach vorliegenden Wert und damit verbundener Rundungsrichtung die Position der entsprechenden Ecke, was wiederum zu einem Fehler zwischen den Flächen und damit zwischen den Summen der beiden Blöcke führt. Die Lage verdeutlicht Abbildung 5.3(b). Nach dem Skalieren des Blocks aus Abbildung 5.3(a) der Breite 5 und der Höhe 3 um den Faktor 1.5 entsteht ein Block mit nicht ganzzahligen Breitenund Höhenwert (7.5 und 4.5), woraus sich ein Flächeninhalt von A s = ergibt. Durch das Runden der Eckkoordinaten entsteht jedoch ein Block mit einem größeren Flächeninhalt: A r = 8 5 = 40. Dies entspricht einem Flächenzuwachs von 18%, was sich auch auf den berechneten Merkmalswert überträgt. Um diesen Fehler zu kompensieren, wird deshalb jeder Merkmalswert eines so skalierten und gerundeten Merkmals in ChainBoost ähnlich wie in [Lie03] mit dem Korrekturfaktor a = A r /A s multipliziert, bevor er dem entsprechenden Klassifikator übergeben wird Weak-Klassifikator Viola und Jones verwendeten zur Klassifikation der Merkmalswerte eine Schwellwertklassifikator, der nur bei einfachen Verteilungen die Gesichts- und die Hintergrundbeispiele zufriedenstellend trennen kann. Somit steigt der durchschnittliche Klassifikationsfehler, was zum Anstieg der Merkmalsanzahl im Detektor führt. Wie in Abschnitt 4.5 erläutert, gibt es mehrere Möglichkeiten, diesen einfachen Schwellwertklassifikator zu erweitern. Lookup-Tables sind unkompliziert aufgebaut. Durch die gleichmäßige Verteilung der Schwellwerte über den gesamten Klassifikationsbereich, entfällt zum einen das Auffinden einer möglichst guten Trennposition. Zum anderen können sie schnell ausgewertet werden. Ein Problem ist hingegen, das Festlegen einer geeigneten Anzahl von Bins. Ist die Anzahl der Bins zu klein,

69 5.4 Schnelle Merkmalsauswahl 61 dann liegen die Trennstellen unter Umständen nicht an den bestmöglichen Positionen. Bei einer zu großen Anzahl kann jedoch die Generalisierungsfähigkeit eingeschränkt werden. Aus diesem Grund wird in ChainBoost die zweite Alternative, das CART-Verfahren, eingesetzt. CART passt sich dynamisch der vorliegenden Verteilung an und setzt die Trennstellen an die bestmöglichen Positionen. Jeder Baumknoten minimiert dabei den Klassifikationsfehler um einen Anteil. Fällt dieser Gewinn beim Erzeugen eines neuen Knotens zu niedrig aus, kann das Training vorzeitig abgebrochen werden, womit eine automatische Regulierung stattfindet. Zusätzlich besteht in ChainBoost die Möglichkeit, die maximale Anzahl der Knoten zu begrenzen, um zu detaillierte Bäume vorzubeugen. 5.4 Schnelle Merkmalsauswahl Der Merkmalsauswahlalgorithmus ist die kritische Komponente im gesamten Viola-Jones Trainingssystems. Da es in jedem AdaBoost Iterationsschritt für das Training eines zusätzlichen Merkmals (und des entsprechenden Klassifikators) aufgerufen wird und dabei immer eine erschöpfende Suche über alle verfügbaren Merkmale durchführt, nimmt es den größten Anteil der Trainingszeit in Anspruch. Eine Beschleunigung des Weak-Lernverfahrens durch Einsatz von alternativen Algorithmen bietet sich somit an, um die Gesamttrainingszeit zu senken. Andererseits hängt die Qualität des vollständigen Detektors davon ab, ob jeweils auch tatsächlich der bestmögliche Weak-Klassifikator erzeugt wurde. In Abschnitt 4.2 wurden einige Verfahren vorgestellt, die durch unterschiedliche Ansätze den Merkmalsauswahlalgorithmus beschleunigen. Für das Ziel einer möglichst kurzen Trainingszeit scheint Direct Feature Selection eine geeignete Wahl zu sein, da es durch Vorberechnen von Weak-Klassifikatoren eine Geschwindigkeitssteigerung um den Faktor 100 verspricht. Allerdings ist die Merkmalsmenge, die aus den im letzten Abschnitt vorgestellten Merkmalen entsteht, sehr groß, so dass der Speicherbedarf für die Vorberechnungen erheblich ansteigt. Außerdem muss der AdaBoost Algorithmus durch einen anderen, weniger ausgereiften Algorithmus ausgetauscht werden. Das Prinzip des Vorberechnens auf AdaBoost zu übertragen, ist jedoch nicht möglich, womit Direct Feature Selection als eine mögliche Alternative ausscheidet. Viel versprechend ist allerdings die Reduzierung der Merkmalsmenge, indem jeweils nur ein zufälliger Teil aller Merkmale betrachtet wird. Da benachbarte Merkmale, die sich zum Beispiel nur durch eine kleine Verschiebung eines Blocks unterscheiden, ähnlich sind, ist zu erwarten, dass auch die Differenz zwischen den Fehlern der entsprechenden Weak-Klassifikatoren niedrig ausfällt. Eine Halbierung der Merkmalsmenge würde daher nur zu einer marginalen Verschlechterung des durchschnittlichen Fehlers führen, aber die Trainingszeit um das Doppelte beschleunigen. Durch weiteres Verkleinern der getesteten Merkmalsmenge kann somit eine Geschwindigkeitszunahme des Trainings erzielt werden, wobei die Wahrscheinlichkeit, dass dabei nicht das bestmögliche Merkmal gewählt wird, zunimmt. Der diskrete Gradientenabstieg ist hingegen ein heuristisches Verfahren. Jedoch besitzt es den Nachteil, dass es leicht in lokalen Minima der Fehlerfunktion stecken bleiben kann. Es ist äußerst unwahrscheinlich, dass in dem hochdimensionalen Suchraum, der durch die Merkmalsparameter aufgespannt wird, ein gutes Merkmal durch Generieren und Testen von neuen Nachbarmerkmalen gefunden werden kann, ohne vorher in ein lokales Minimum zu geraten. Allerdings kann es als ein nachträglicher Optimierungsprozess bei anderen Merkmalselektionsverfahren genutzt werden, um ein gewähltes Merkmal weiter zu verbessern.

70 62 Kapitel 5 Konzeption und Umsetzung Das Auffinden des am besten geeigneten Merkmals mit einem genetischen Suchalgorithmus ist im Grunde eine Mischung aus den beiden letzten genannten Verfahren. Ausgehend von einer reduzierten Merkmalsmenge werden daraus die besten Kandidaten ausgewählt und neue, zum Teil leistungsfähigere Merkmale erzeugt. Dies wird solange wiederholt, bis eine Konvergenz eintritt, bei der sich der Fehler des besten Merkmals über mehrere Iterationen nicht mehr ändert, und somit ein Stelle mit einem möglichst kleinen Fehler dies muss aber nicht zwangsläufig das globale Minimum sein gefunden ist. Das eigentliche Ziel des genetischen Suchverfahrens ist es, durch Kombinieren und Verändern von Merkmalsblöcken sich denjenigen Regionen in den (gewichteten) Bildbeispielen schrittweise zu nähern, die eine gute Unterscheidung zwischen Gesichts- und Hintergrundbeispielen ermöglichen. Jede neue Merkmalsgeneration enthält jedoch neben verbesserten auch einen Großteil von Merkmalen, die aus Mutationen entstanden sind und sich nicht direkt der Lösung nähern, sondern das Austesten möglichst vieler Bereiche des Suchraums bewirken. Dies ist besonders bei völlig unbekannten Funktionsverläufen nützlich. Allerdings ist die Anzahl der Merkmale in einem Suchfenster um ein vielfaches höher als die Anzahl der Pixel. Somit deckt bereits ein kleiner Teil der Merkmale jede Fläche des Suchfensters im Durchschnitt mehrfach ab. Durch Auswerten des Fehlers dieser wenigen Merkmale lassen sich somit grob die relevanten Regionen im Bildausschnitt bestimmen, die zu einem guten Merkmal führen würden. Diesen Ansatz greift das Merkmalsselektionsverfahren in Chain- Boost auf und erreicht damit eine erhebliche Geschwindigkeitssteigerung. Das Ablaufdiagramm dieses Verfahrens ist in Abbildung 5.4 dargestellt. Als Ausgangsbasis dienen nur die Zwei-Blockmerkmale, da es im ersten Schritt gilt, nur die interessanten Regionen zu identifizieren und nicht sofort das beste Merkmal zu finden. Aus allen verfügbaren Zwei-Blockmerkmalen werden zufällig P Kandidaten ausgewählt und die entsprechenden Weak-Klassifikatoren trainiert bzw. der Fehler bestimmt. Die Anzahl P sollte dabei mindestens doppelt so groß sein wie die Pixelanzahl in einem Beispiel. Ähnlich wie bei der genetischen Suche werden in den nächsten Schritten, aus den vielversprechendsten Merkmalen neue erzeugt. Dafür werden aus den eben trainierten Merkmalen die K Besten ausgewählt, die die kleinsten Fehler aufweisen, und anschließend in ihre einzelnen Blöcke aufgespalten. Aus diesen Blöcken werden dann neue Zwei- und Drei-Blockmerkmale konstruiert und getestet, indem alle Zwei- und Drei-Block-Kombinationen ausprobiert werden. Weil in einem Merkmal alle Blöcke die gleichen Abmessungen besitzen, bestimmen beim Verknüpfen die Blöcke mit der kleinsten Breite bzw. Höhe die entsprechenden Seitenlängen. Ein Großteil der Kombinationen wird jedoch wieder verworfen, da durch die Konzentration auf die relevanten Bildregionen die Blöcke sich teilweise so überschneiden, dass die in Abschnitt eingeführten Beschränkungen insbesondere für die Drei-Blockmerkmale nicht eingehalten werden können. Der Wert für K sollte außerdem nicht zu hoch gewählt werden und sich im ein- bis zweistelligen Bereich bewegen, da ansonsten die Anzahl der kombinierten Merkmale zu groß wird. Durch diese Kombinationen sollen neue, leistungsfähigere Merkmale entstehen. So können zum Beispiel aus zwei Zwei-Blockmerkmalen, bei denen der eine Block im Gegensatz zum anderen an einer gut geeigneten Position liegt, so verknüpft werden, dass ein Merkmal entsteht, bei dem beide Blöcke dieses Kriterium erfüllen. Insbesondere effiziente Drei-Blockmerkmale lassen sich so leicht konstruieren. Im letzten Schritt wird aus den so neu gewonnenen Merkmalen wiederum eine kleine Anzahl O der besten Kandidaten ausgewählt, um sie mit Hilfe des diskreten Gradientenabstiegsverfah-

71 5.4 Schnelle Merkmalsauswahl 63 Alle Zwei-Block-Merkmale Selektiere zufällig P Merkmale und trainiere jeweils den entsprechenden CART-Klassifikator Wähle die besten K Merkmale, deren CART-Klassifikatoren den kleinsten Fehler liefern, und spalte diese in ihre Blöcke auf Konstruiere aus den Blöcken neue Zwei- und Drei-Block-Merkmale; trainiere jeweils einen CART-Klassifikator Selektiere die O besten Merkmale mit dem kleinsten Fehler und optimiere sie jeweils durch das Diskrete Gradientenabstiegsverfahren Wähle das Merkmal und den entsprechenden CART-Klassifikator, die den kleinsten Fehler liefern Abbildung 5.4: Ablaufdiagramm des Merkmalsselektionsalgorithmus

72 64 Kapitel 5 Konzeption und Umsetzung rens in ihre endgültigen Form zu bringen. Das endgültige Resultat bildet logischerweise das Paar aus Merkmal und Weak-Klassifikator, das den kleinsten Fehler liefert. 5.5 Varianzfilter In Abschnitt wurde eine Möglichkeit aufgezeigt, wie unter Verwendung der Blockmerkmale eine schnelle Bildnormalisierung durchgeführt werden kann. Die Merkmalswerte werden dabei durch die Standardabweichung der Pixel im zu klassifizierenden Bildausschnitt dividiert. Dies entspricht einer Varianznormierung aller Pixel in dem Bildausschnitt: î xy = i xy µ σ wobei i xy die Pixel, µ und σ der Mittelwert und die Standardabweichung des Bildausschnitts sind. Diese Normierung bewirkt jedoch auch, dass bei kontrastarmen Bildausschnitten mit einer kleinen Pixelstandardabweichung σ eine überproportional hohe Verstärkung stattfindet. In diesen Situationen tritt insbesondere das Bildrauschen als ein deutliches Muster hervor. Außerdem ist bei homogenen Bildausschnitten, in denen alle Pixel denselben Wert haben, σ = 0, so dass eine Division durch Null stattfindet. Aus diesem Grund werden in ChainBoost bei der Detektion alle Bildausschnitte mit einer Standardabweichung kleiner als ein Schwellwert σ max grundsätzlich als Bildhintergrund eingestuft, ohne die Kaskade zu durchlaufen. Beim Training werden Beispiele, die diesen Wert unterschreiten, bereits im Vorfeld aussortiert. Diese Vorfilterung hilft vor allem während des Detektionsvorgang, größere homogene Flächen schnell zu überspringen. In ChainBoost ist der Schwellwert auf σ max = 13.6 voreingestellt, kann jedoch vom Benutzer geändert werden. Der Wert entstand durch einen manuellen Vergleich von verschiedenen Gesichtsbeispielen und wurde so gewählt, dass die meisten Gesichtsbeispiele davon nicht betroffen sind und nur ein kleiner, kontrastarmer Teil wegfällt. 5.6 Umsetzung Da eine detailgenau Beschreibung der Umsetzung von ChainBoost zu umfangreich wäre, möchte ich in diesem Abschnitt nur auf den groben Entwurf eingehen. Die Grundstruktur von ChainBoost ist Abbildung 5.5 dargestellt. Wie bei Musterklassifikationssystemen üblich, unterteilt sich der Aufbau in zwei Bereiche. Der erste Bereich besteht aus mehreren Komponenten und widmet sich der Erzeugung eines Kaskadendetektors aus den zur Verfügung stehenden Beispieldaten. Der zweite Teil ist das eigentliche Detektionssystem, das zur Laufzeit auf Einzelbildern oder Bildsequenzen die Detektion vornimmt Training Das Training eines Viola-Jones-Detektor besteht aus zwei, im Grunde unterschiedlichen Bereichen. Auf der einen Seite muss die Trainingsmenge verwaltet werden, indem zum Beispiel beim Trainieren einer neuen Kaskadenstufe neue Hintergrundbeispiele beschafft werden. Auf

73 5.6 Umsetzung 65 Abbildung 5.5: Umsetzung des ChainBoost-Systems der anderen Seite steht der Trainingsalgorithmus, der diese Beispiele verwendet und daraus einen neuen Detektor erzeugt. Deshalb besteht das Training von ChainBoost aus zwei getrennten, in C++ entwickelten Programmen, die sich gegenseitig ergänzen: 1. BOOSTSAMPLES ist für die Beschaffung und Aufbereitung der Trainingsbeispiele verantwortlich 2. CHAINBOOST trainiert eine neue Kaskadenstufe Dabei werden die beiden Programme jeweils wechselseitig ausgeführt: BOOSTSAMPLES beschafft eine neue Trainingsmenge und CHAINBOOST generiert anschließend einen neuen Detektor. Die Kommunikation zwischen den beiden Komponenten geschieht über eine Kontainerdatei, die alle relevanten Informationen wie zum Beispiel die Trainingsmenge, die aktuelle Gewichtung der Beispiele und den bis dahin trainierten Kaskadendetektor enthält. Die Kontainerdatei stellt somit den kompletten aktuellen Trainingsstatus dar. Der Vorteil dieser Aufspaltung ist, dass das Training in mehrere kleine Schritte, die in ihrer Ausführungszeit erheblich kürzer sind als das Gesamttraining, unterteilt wird. Somit ist die Möglichkeit gegeben, zwischen den einzelnen Aufrufen, die Kontainerdatei zu sichern. Das Training kann so unterbrochen und zu einem späteren Zeitpunkt fortgesetzt werden. Außerdem können damit die Zielparameter, die Detektions- und Falsch-Positiv-Rate, zwischen dem Training der einzelnen Kaskadendetektoren leicht geändert werden. Bei Fehlentscheidungen kann das Training von einem früheren Zustand fortgesetzt werden Detektor Der Detektor ist als eine C++-Bibliothek implementiert und ist damit universell in anderen Projekten einsetzbar. Für die Verarbeitung von Videomaterial wurde der Detektor unter anderem als Plugin für das Bildverabeitungsprogramm ICEWING 2 integriert, das eine einfache Plattform bietet, auf die Bilddaten von einer an den Rechner angebundenen Kamera zuzugreifen und mehreren unterschiedlichen, bildverarbeitenden Prozessen miteinander zu kombinieren. 2 Integrated Communication Environment Which Is Not Gesten: ein grafisches Pluginframework, dass in der AG Angewandte Informatik der Technischen Fakultät Bielefeld entstanden ist

74 66 Kapitel 5 Konzeption und Umsetzung Dabei wurde der eigentliche Detektor von der Berechnung des Integralbildes getrennt und durch jeweils ein eigenständiges Plugins umgesetzt. Dadurch besteht die Möglichkeit, mehrere separate Detektor-Plugins für unterschiedliche Detektionsaufgaben zum Beispiel Frontalgesichter und Hände parallel auszuführen, ohne das Integralbild jeweils komplett neu berechnen zu müssen. Eine Anwendung, die davon gebraucht macht, ist beispielsweise in [Gär05] zu finden. Um die Geschwindigkeit während des Detektionsprozesses zu steigern, werden außerdem zu Beginn die Merkmale der Detektoren für die einzelnen Skalierungsstufen vorberechnet, indem die skalierten Blockkoordinaten und angepassten Gewichtungsfaktoren in einer Tabelle abgelegt werden. Die unnötige Neuskalierung der Detektoren von Bild zu Bild entfällt somit.

75 Kapitel 6 Evaluierung In diesem Kapitel wird die Auswertung des im vorangegangenen Kapitel beschriebenen ChainBoost-Systems vorgenommen und auf seine Leistungsfähigkeit untersucht. Die einzelnen Experimente gliedern sich dabei in zwei Teile, die sich einerseits mit dem Training und anderseits mit dem daraus entstandenen Detektor beschäftigen. Der Schwerpunkt der Versuche befindet sich hierbei auf dem Training, da es in dieser Arbeit zu ermitteln galt, ob ein zu Viola und Jones vergleichbarer Detektor erzeugt werden kann, während die Trainingszeit verringert wird. Da in ChainBoost jedoch viele unterschiedliche Verfahren vereinigt sind, ist eine umfassende Untersuchung aller Komponenten und die Auswirkungen aufeinander nicht praktikabel, weil der zeitliche Aufwand den Rahmen dieser Arbeit sprengen würde. Aus diesem Grund werden hier überwiegend die Neuerungen und insbesondere das in Abschnitt 5.4 eingeführte Merkmalauswahlverfahren betrachtet, weil es den Kern von ChainBoost bildet. Deshalb werden, nachdem die Frage nach dem Trainingskorpa und der Basisfenstergröße geklärt wird, schrittweise die geeigneten Parameter für die Reduzierung der Merkmalsgröße, der Kombination zu neuen Merkmalen und der anschließenden Optimierung durch Gradientenabstieg bestimmt. Ausgehend von dieser Auswertung wird schließlich ein vollständiger Kaskadendetektor trainiert. Auf die Auswertung von Vergleichen zwischen normaler und Chain-Kaskade oder Gentle AdaBoost und anderen Varianten wurde verzichtet, da diese Sachverhalte bereits ausführlich in den entsprechenden Veröffentlichungen [Xia03, Lie03] behandelt wurden. 6.1 Trainingsstichproben In diesem und dem folgenden Abschnitt sollen in erster Linie für das Training benötigte Stichproben behandelt werden. Eine Auswertung des vollständigen Kaskadendetektors auf unabhängigen Testdaten geschieht zu einem späteren Zeitpunkt in diesem Kapitel. Für das Training werden zum einen Hintergrund- und zum anderen Frontalgesichtsbeispiele benötigt. Beide sind gleichermaßen wichtig, da die Qualität des erzeugten Detektors davon abhängt, wie viele Muster die einzelnen Abbildungen in der jeweiligen Klasse abdecken können. Wünschenswert ist sicherlich, dass dabei alle Variationen mindestens einmal vorkommen. Dies kann jedoch unmöglich erreicht werden, weil die Größe der Trainingsmenge durch die zur Verfügung stehenden Ressourcen begrenzt ist. Vielmehr muss ein Kompromiss gefunden werden, bei dem die gewählten Trainingsbeispiele möglichst ausgeglichen viele dieser Variationen wiedergeben. 67

76 68 Kapitel 6 Evaluierung Für diesen Zweck wurden zunächst aus dem Internet frei erhältliche Bilder bezogen, auf denen keine Gesichter erkennbar sind. Diese Bilder dienen als Ausgangsbasis für die Hintergrundbeispiele und enthalten Motive wie zum Beispiel Naturaufnahmen, Gebäude und Büros. Es wurde darauf geachtet, dass die Bilder abwechslungsreiche Darstellungen boten und möglichst wenig gleichfarbige Flächen enthielten, um eine große Vielfalt zu erreichen. Tierfotos, auf denen Säugetiere frontal abgebildet sind, wurden gezielt aussortiert, da ihre Gesichter insbesondere nach Verkleinern auf die Basisfenstergröße dem menschlichen Gesicht ähnlich sehen können. Die dadurch entstandene Datenbank hat einen Umfang von ungefähr 2500 Bildern in unterschiedlichen Größen. Diese Datenmenge ist notwendig, weil besonders in den letzten Detektoren der Kaskade die Falsch-Positiv-Rate soweit sinkt, dass kaum noch Ausschnitte mit Hintergrundmotiven als Gesichter klassifiziert werden. Aus diesem Grund werden, nachdem dieser Fall eintritt, die Bilder zusätzlich jeweils vertikal, horizontal und diagonal gespiegelt, so dass zu jedem Bild drei weitere Varianten existieren. Eine große Hintergrunddatenbank erhöht die Chance, fälschlich als Gesichter erkannte Bildausschnitte zu finden und somit zusätzliche Detektoren zu erstellen, die die Falsch-Positiv-Rate weiter reduzieren. Als Gesichtsbeispiele stand unter anderem die von Viola und Jones zum Training verwendete Trainingsmenge mit insgesamt 4916 Beispielen der Größe zur Verfügung. Laut [Vio01b] wurde dafür aus dem Internet eine Ansammlung von unterschiedlichen Bildern heruntergeladen und die Frontalgesichter manuell ausgeschnitten. Einen kleinen Teil dieser Beispiele zeigt Abbildung 6.1). Abbildung 6.1: Von Viola und Jones verwendete Gesichtsbeispiele [Vio01b] Die Aufnahmen stammen aus verschiedenen Quellen und zeigen diverse Personen. Die Beispiele decken damit ein breites Spektrum an Gesichtsvariationen ab. Allerdings handelt es sich bei den meisten Bildern im Internet besonders auf denen die Personen direkt in die Kamera schauen um Porträts, die unter kontrollierten Bedingungen wie einer gut ausgeleuchteten Umgebung entstanden sind, so dass Beleuchtungsvariationen zum großen Teil fehlen. Der zweite Teil der Gesichtsbeispiele stammt deshalb aus der CMU Pose, Illumination, and Expression (PIE) Datenbank [Sim03]. Diese Datenbank enthält Bilder von 68 Personen aus unterschiedlichen Blickwinkeln bei einer Vielzahl von Beleuchtungsvariationen und Gesichtsausdrücken. Dafür wurden in einem Raum 13 Kameras verteilt, wobei neun horizontal entlang der Wand in Schritten von 22.5, eine über und unter der Kamera im Zentrum, und zwei weitere jeweils in jeder Ecke des Raums positioniert wurden, so dass die Gesichter der Personen c25 c09 c31 c22 c02 c37 c05 c27 c29 c11 c14 c34 c07 Abbildung 6.2: Kameraaufbau und die daraus resultierenden Blickwinkelvariationen in der PIE Datenbank [Sim03]

77 6.2 Basisfenstergröße und Gesichtsbeispiele 69 vom rechten Profil über die Frontalansicht bis zum linken Profil abgebildet werden konnten (s. Abbildung 6.2). Darüber hinaus wurden 21 Blitzgeräte installiert, die abwechselnd zugeschaltet wurden, um Beleuchtungsvariationen zu erhalten. Durch das zusätzliche Hinzuschalten von Deckenbeleuchtung konnten so 43 unterschiedliche Beleuchtungszustände geschaffen werden. Um Gesichtsausdruckvariationen zu erhalten, sollten die Personen jeweils neutral, lächelnd, blinzelnd oder sprechend in die Kamera schauen. Insgesamt besteht die Datenbank aus Bildern, die in zwei Hauptbereiche unterteilt sind. Der erste Teil besteht aus Blickwinkel- bei gleichzeitigen Gesichtsausdruckvariationen, der zweite aus Blickwinkel- und Beleuchtungswechsel. Für diese Arbeit wurden hierbei jedoch nur die Aufnahmen der Kameras c07, c09 und c27, die die Personen in der Frontalansicht abbilden, verwendet. Durch die vielen Variationen insbesondere bei der Beleuchtung bildet die PIE Datenbank deshalb eine hervorragende Ergänzung zu den Viola-Jones Beispielen. 6.2 Basisfenstergröße und Gesichtsbeispiele Eine wichtige Wahl sind die Ausmaße des Basisdetektorfensters. So verwenden Viola und Jones für ihren Detektor ein Pixel großes Fenster, während Zhang et al. sich für die Detektion von Profilgesichtern auf ein Fenster beschränkt haben [Zha02]. Lienhart et al. untersuchten mehrere Größen und sind zu dem Ergebnis gekommen, dass ein Basisfenster für einen Frontalgesichtsdetektor die besten Resultate liefert [Lie03]. Größere Basisfenster haben den Vorteil, dass die Trainingsbeispiele einerseits mehr Details aufweisen, so dass feinere Strukturen besser erkennbar sind. Andererseits ist die Laufzeit des Detektors kürzer, weil durch die größere Fensterfläche die Schrittweite, mit der das Fenster im Bild von einer Position zur nächsten verschoben wird, ebenfalls größer ist und somit insgesamt weniger Bildausschnitte pro Bild untersucht werden müssen. Kleinere Fenster können hingegen auch kleinere Objekte im Bild erkennen, was zum Beispiel bei weit entfernten Personen einen Vorteil bringt. Da weiter entfernte Gesichter auf der Abbildung kleiner erscheinen, können so Gesichter früher erkannt werden, wenn die Personen in einem größeren Raum auf die Kamera zugehen. Ein wichtiger Grund ist jedoch auch, dass für kleinere Fenster entsprechend weniger Merkmale generiert werden können, so dass die Merkmalsmenge reduziert wird und die Trainingszeit damit sinkt. Aus diesem Grund habe ich mich in Anlehnung an das Ergebnis von Lienhart et al. für ein Basisfenster entschieden. Mit der Wahl der Basisfenstergröße folgt die Frage, welcher Gesichtsbereich auf dem Bildausschnitt zu sehen sein soll. Leider geben die einzelnen Autoren hierfür nur vage Angaben. Bei den von Viola und Jones verwendeten Beispielen ist erkennbar, dass größere Teile des Gesichts dargestellt werden. So ist zum Beispiel das Kinn noch vollständig abgebildet. Die Überlegung dahinter ist, dass die Umrisskonturen des Gesichts den Blockmerkmalen gute Ansatzstellen bieten. Allerdings sind auf diesen Beispielen zwangsläufig auch kleine Teile des Bildhintergrundes zu sehen. Ein Problem ergibt sich somit bei Verwendung der PIE Datenbank. Da die einzelnen Personen im selben Raum beim gleichen Aufbau aufgenommen wurden, variiert die Umgebung kaum, so dass auf den erzeugten Gesichtsbeispielen stets derselbe Hintergrund zu sehen ist. Dies ist jedoch nicht wünschenswert, weil der Trainingsalgorithmus diese Bereiche als ein festes Muster des Gesichts behandeln könnte. Aus diesem Grund wurde bei der Generierung der Gesichtsbeispiele darauf geachtet, dass nur die wesentlichen Gesichtsmerkmale wie Augenbrauen und Mund zu sehen sind, während so wenig wie möglich Hintergrund erkennbar ist. Dafür wurde bei den vorliegenden Viola-Jones

78 70 Kapitel 6 Evaluierung (a) (b) Abbildung 6.3: (a) Frontalgesichtsbeispiele werden erstellt, indem der rechteckige Bereich, der durch die Augen- und Mundmittelpunkte aufgespannt wird, mit einem Faktor skaliert und anschließend um einen zufälligen Winkel θ rotiert wird (b) Beispiele für Frontalgesichter, nachdem sie auf die Basisfenstergröße skaliert wurden Gesichtsbeispielen an jeder Seite ein zwei Pixel breiter Rand abgeschnitten, so dass Beispiele entstanden sind. Da das manuelle Ausschneiden einzelner Beispiele aus der PIE Datenbank sehr mühsam und nicht sinnvoll ist, wurden die Gesichtsbeispiele ausgehend von einer Annotation der einzelnen Personen an den beiden Augen und Mund durch feste Regeln erzeugt (s. Abbildung 6.3(a)). Dafür wurde zunächst das Seitenverhältnis des kleinsten Begrenzungsrechtecks (auch als Bounding Box bekannt), das die drei Markierungspunkte einschließt und dessen Kanten parallel zu den Bildachsen verlaufen, dem quadratischen Basisfenster angepasst, indem alle Seiten auf den Wert der längsten Kante gesetzt wurden. Der Mittelpunkt blieb dabei unverändert. Das entstandene Quadrat wurde anschließend um den Faktor 1.8 skaliert. Der Wert hat sich in mehreren Versuchen als ein guter Kompromiss herausgestellt, so dass bei den meisten Gesichtsbeispielen so gut wie gar kein Hintergrund erkennbar ist. Da Menschen beim Sprechen oder durch kleine Bewegungen den Kopf selten genau aufrecht halten, wurde der Bildausschnitt um einen zufälligen Winkel zwischen 15 und 15 rotiert, bevor er auf die Basisfenstergröße von Pixel verkleinert wurde. Um möglichst große Variabilität zu erhalten, wurde dieser Schritt für jedes annotierte Gesicht insgesamt dreimal wiederholt. Auf den kleinen Abbildungen ist allerdings kaum erkennbar, ob eine Person gerade blinzelt oder ihre Augen vollständig offen hat. Da die Gesichtsausdrucksvariationen außerdem unter immer derselben Beleuchtungssituationen erstellt wurden, sehen diese Beispiele nach dem Verkleinern fast identisch aus. Deshalb wurden aus dem ersten Teil der PIE Datenbank nur die Aufnahmen hinzugezogen, auf denen die Personen sprechend dargestellt sind. Durch die variierenden Beleuchtungsverhältnisse sind außerdem im zweiten Teil teilweise zu dunkle Aufnahmen enthalten, so dass eine Beschränkung auf 18 von 24 Beleuchtungskonfigurationen vorgenommen werden musste. Einige dieser so entstandenen Beispiele sind in Abbildung 6.3(b) dargestellt.

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

Bildverarbeitung Herbstsemester. Mustererkennung

Bildverarbeitung Herbstsemester. Mustererkennung Bildverarbeitung Herbstsemester Herbstsemester 2009 2012 Mustererkennung 1 Inhalt Einführung Mustererkennung in Grauwertbildern Ähnlichkeitsmasse Normalisierte Korrelation Korrelationskoeffizient Mustererkennung

Mehr

Implizite Modellierung zur Objekterkennung in der Fernerkundung

Implizite Modellierung zur Objekterkennung in der Fernerkundung Implizite Modellierung zur Objekterkennung in der Fernerkundung Mitarbeiterseminar 20.01.2011 (IPF) Fakultät für Bauingenieur-, Geo- und Umweltwissenschaften KIT Universität des Landes Baden-Württemberg

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

Statistik, Datenanalyse und Simulation

Statistik, Datenanalyse und Simulation Dr. Michael O. Distler distler@kph.uni-mainz.de Mainz, 12. Juli 2011 Gesichtserkennung Begriffsunterscheidung: Lokalisation eines Gesichts im Bild Zuordnung des Gesichts zu einer bestimmten Person Technische

Mehr

Anwendungen der Hauptkomponentenanalyse. Volker Tresp vertreten durch Florian Steinke

Anwendungen der Hauptkomponentenanalyse. Volker Tresp vertreten durch Florian Steinke Anwendungen der Hauptkomponentenanalyse Volker Tresp vertreten durch Florian Steinke 1 Dimensionsreduktion für Supervised Learning 2 Beispiel: Kaufentscheidung 3 Verbesserte Abstandsmaße durch Hauptkomponentenanalyse

Mehr

2. Schnitterkennung Videoanalyse

2. Schnitterkennung Videoanalyse 2. Schnitterkennung Videoanalyse Stephan Kopf Inhalt Definition: Schnitt Klassifikation eines Schnittes Vorgehensweise bei der automatischen Schnitterkennung Pixelbasierte Verfahren Histogramme Aggregierte

Mehr

Gestaltgesetze Figur-Grund-Beziehung

Gestaltgesetze Figur-Grund-Beziehung Figur-Grund-Beziehung Die Wahrnehmung unserer Umwelt geschieht nach der Gestaltpsychologie durch die Wahrnehmung von Formen. Nur so kann die unbestimmte Komplexität der Sinneswahrnehmungen aufgelöst und

Mehr

Mathematik für Naturwissenschaftler II SS 2010

Mathematik für Naturwissenschaftler II SS 2010 Mathematik für Naturwissenschaftler II SS 2010 Lektion 7 11. Mai 2010 Kapitel 8. Vektoren Definition 76. Betrachten wir eine beliebige endliche Anzahl von Vektoren v 1, v 2,..., v m des R n, so können

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn Adrian Neumann 16. Januar 2014 Übersicht Biologische Inspiration Stand der Kunst in Objekterkennung auf Bildern Künstliche Neuronale

Mehr

Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection

Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection Eigenfaces vs. Fisherfaces: Recognition Using Class Specific Linear Projection Peter N. Belhumeur, João P. Hespanha, David J. Kriegman IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol.

Mehr

Was bisher geschah. Definition digitaler Bilder B : pos col Bildanalyse, statistische Merkmale Signale im Orts- und Frequenzraum Bildbearbeitung durch

Was bisher geschah. Definition digitaler Bilder B : pos col Bildanalyse, statistische Merkmale Signale im Orts- und Frequenzraum Bildbearbeitung durch Was bisher geschah Definition digitaler Bilder B : pos col Bildanalyse, statistische Merkmale Signale im Orts- und Frequenzraum Bildbearbeitung durch Punktoperationen (Farbtransformation) f : col1 col

Mehr

3D-Rekonstruktion aus Bildern

3D-Rekonstruktion aus Bildern Allgemeine Nachrichtentechnik Prof. Dr.-Ing. Udo Zölzer 3D-Rekonstruktion aus Bildern Dipl.-Ing. Christian Ruwwe 41. Treffen der ITG-Fachgruppe Algorithmen für die Signalverarbeitung HSU Hamburg 24. Februar

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

Fortgeschrittene Bildverarbeitung und Analyse

Fortgeschrittene Bildverarbeitung und Analyse Fortgeschrittene Bildverarbeitung und Analyse Studiengang IEM Inhalt Definition der Bildverarbeitung Verarbeitung-Bearbeitung (Systeme) Grundlagen der Abbildungssysteme Auge, visuelle Wahrnehmung, Kamera,

Mehr

Übersicht der Vorlesung

Übersicht der Vorlesung Übersicht der Vorlesung 1. Einführung 2. Bildverarbeitung 3. orphologische Operationen 4. Bildsegmentierung 5. erkmale von Objekten 6. Klassifikation 7. Dreidimensionale Bildinterpretation 8. Bewegungsanalyse

Mehr

Bild-Erkennung & -Interpretation

Bild-Erkennung & -Interpretation Kapitel I Bild-Erkennung & -Interpretation FH Aachen / Jülich, FB 9 Prof. Dr. rer.nat. Walter Hillen (Dig Img I) 1 Einführung Schritte zur Bilderkennung und Interpretation: Bild-Erfassung Vorverarbeitung

Mehr

Lineares Gleichungssystem - Vertiefung

Lineares Gleichungssystem - Vertiefung Lineares Gleichungssystem - Vertiefung Die Lösung Linearer Gleichungssysteme ist das "Gauß'sche Eliminationsverfahren" gut geeignet - schon erklärt unter Z02. Alternativ kann mit einem Matrixformalismus

Mehr

Distributed Algorithms. Image and Video Processing

Distributed Algorithms. Image and Video Processing Chapter 7 High Dynamic Range (HDR) Distributed Algorithms for Quelle: wikipedia.org 2 1 High Dynamic Range bezeichnet ein hohes Kontrastverhältnis in einem Bild Kontrastverhältnis bei digitalem Bild: 1.000:1

Mehr

Dynamisches Huffman-Verfahren

Dynamisches Huffman-Verfahren Dynamisches Huffman-Verfahren - Adaptive Huffman Coding - von Michael Brückner 1. Einleitung 2. Der Huffman-Algorithmus 3. Übergang zu einem dynamischen Verfahren 4. Der FGK-Algorithmus 5. Überblick über

Mehr

Digitale Bildverarbeitung (DBV)

Digitale Bildverarbeitung (DBV) Digitale Bildverarbeitung (DBV) Prof. Dr. Ing. Heinz Jürgen Przybilla Labor für Photogrammetrie Email: heinz juergen.przybilla@hs bochum.de Tel. 0234 32 10517 Sprechstunde: Montags 13 14 Uhr und nach Vereinbarung

Mehr

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse. Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften 5. Clusteranalyse Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften benennen und anwenden können, einen Test auf das Vorhandensein einer Clusterstruktur kennen, verschiedene

Mehr

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften

5. Clusteranalyse Vorbemerkungen. 5. Clusteranalyse. Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften 5. Clusteranalyse Vorbemerkungen 5. Clusteranalyse Lernziele: Grundlegende Algorithmen der Clusteranalyse kennen, ihre Eigenschaften benennen und anwenden können, einen Test auf das Vorhandensein einer

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

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel

Studiengang Informatik der FH Gießen-Friedberg. Sequenz-Alignment. Jan Schäfer. WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Studiengang Informatik der FH Gießen-Friedberg Sequenz-Alignment Jan Schäfer WS 2006/07 Betreuer: Prof. Dr. Klaus Quibeldey-Cirkel Überblick Einführung Grundlagen Wann ist das Merkmal der Ähnlichkeit erfüllt?

Mehr

Bildverarbeitung Herbstsemester 2012. Kanten und Ecken

Bildverarbeitung Herbstsemester 2012. Kanten und Ecken Bildverarbeitung Herbstsemester 01 Kanten und Ecken 1 Inhalt Einführung Kantendetektierung Gradientenbasierende Verfahren Verfahren basierend auf der zweiten Ableitung Eckpunkterkennung Harris Corner Detector

Mehr

2.2 Kollineare und koplanare Vektoren

2.2 Kollineare und koplanare Vektoren . Kollineare und koplanare Vektoren Wie wir schon gelernt haben, können wir einen Vektor durch Multiplikation mit einem Skalar verlängern oder verkürzen. In Abbildung 9 haben u und v die gleiche Richtung,

Mehr

3.6 Eigenwerte und Eigenvektoren

3.6 Eigenwerte und Eigenvektoren 3.6 Eigenwerte und Eigenvektoren 3.6. Einleitung Eine quadratische n n Matrix A definiert eine Abbildung eines n dimensionalen Vektors auf einen n dimensionalen Vektor. c A x c A x Von besonderem Interesse

Mehr

Einführung in die linearen Funktionen. Autor: Benedikt Menne

Einführung in die linearen Funktionen. Autor: Benedikt Menne Einführung in die linearen Funktionen Autor: Benedikt Menne Inhaltsverzeichnis Vorwort... 3 Allgemeine Definition... 3 3 Bestimmung der Steigung einer linearen Funktion... 4 3. Bestimmung der Steigung

Mehr

Prof. J. Zhang Universität Hamburg. AB Technische Aspekte Multimodaler Systeme. 20. Januar 2004

Prof. J. Zhang Universität Hamburg. AB Technische Aspekte Multimodaler Systeme. 20. Januar 2004 zhang@informatik.uni-hamburg.de Universität Hamburg AB Technische Aspekte Multimodaler Systeme zhang@informatik.uni-hamburg.de Inhaltsverzeichnis 6. Bildverarbeitung..........................415 Aufbau

Mehr

Angewandte Stochastik

Angewandte Stochastik Angewandte Stochastik Dr. C.J. Luchsinger 13 Allgemeine Theorie zu Markov-Prozessen (stetige Zeit, diskreter Zustandsraum) Literatur Kapitel 13 * Grimmett & Stirzaker: Kapitel 6.9 Wie am Schluss von Kapitel

Mehr

Ideen und Konzepte der Informatik. Maschinelles Lernen. Kurt Mehlhorn

Ideen und Konzepte der Informatik. Maschinelles Lernen. Kurt Mehlhorn Ideen und Konzepte der Informatik Maschinelles Lernen Kurt Mehlhorn Übersicht Lernen: Begriff Beispiele für den Stand der Kunst Spamerkennung Handschriftenerkennung mit und ohne Trainingsdaten Gesichts-

Mehr

Lineare Funktion. Wolfgang Kippels 21. März 2011

Lineare Funktion. Wolfgang Kippels 21. März 2011 Lineare Funktion Wolfgang Kippels. März 0 Inhaltsverzeichnis Grundlegende Zusammenhänge. Aufbau der Linearen Funktion......................... Nullstellenbestimmung............................. Schnittpunktbestimmung............................

Mehr

Alle Vektoren sind hier Spaltenvektoren. Eine Matrix besteht aus nebeneinandergeschrie-

Alle Vektoren sind hier Spaltenvektoren. Eine Matrix besteht aus nebeneinandergeschrie- 1 Vorbemerkungen Alle Vektoren sind hier Spaltenvektoren. Eine Matrix besteht aus nebeneinandergeschrie- benen Vektoren. Wird die Matrix A = ( a 1,..., a n ) mit dem Vektor c = c 1. c n multipliziert,

Mehr

Bildverbesserung (Image Enhancement)

Bildverbesserung (Image Enhancement) Prof. Dr. Wolfgang Konen, Thomas Zielke Bildverbesserung (Image Enhancement) WS07 7.1 Konen, Zielke Der Prozess der Bildverbesserung (1) Bildverbesserung wird häufig dafür eingesetzt, die für einen menschlichen

Mehr

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn

Maschinelles Lernen: Neuronale Netze. Ideen der Informatik Kurt Mehlhorn Maschinelles Lernen: Neuronale Netze Ideen der Informatik Kurt Mehlhorn 16. Januar 2014 Übersicht Stand der Kunst im Bilderverstehen: Klassifizieren und Suchen Was ist ein Bild in Rohform? Biologische

Mehr

Objekterkennung durch Vergleich von Farben. Videoanalyse Dr. Stephan Kopf HWS2007 Kapitel 5: Objekterkennung

Objekterkennung durch Vergleich von Farben. Videoanalyse Dr. Stephan Kopf HWS2007 Kapitel 5: Objekterkennung Objekterkennung durch Vergleich von Farben 48 Farbräume (I) Definitionen: Farbe: Sinnesempfindung (keine physikalische Eigenschaft), falls Licht einer bestimmten Wellenlänge auf die Netzhaut des Auges

Mehr

Projektionen für f r die Scanregistrierung mit Hilfe von Bildmerkmalen

Projektionen für f r die Scanregistrierung mit Hilfe von Bildmerkmalen Projektionen für f r die Scanregistrierung mit Hilfe von Bildmerkmalen Prof. Dr. Andreas Nüchter Jacobs University Bremen Campus Ring 1 28759 Bremen 1 Hintergrund (1) Automatisierung von terrestrischen

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

Seminar Bildauswertung und -fusion. Verteilung der Themen :00 Uhr

Seminar Bildauswertung und -fusion. Verteilung der Themen :00 Uhr Seminar Bildauswertung und -fusion Verteilung der Themen 16.04.2015 14:00 Uhr 1 Übersicht der Themen 1. Vitalsensorik und Emotionen (Philipp Woock) 2. Compressive Sensing - Grundlagen und Anwendungen (Johannes

Mehr

VL Wahrnehmung und Aufmerksamkeit. Woher weiß ich, was das ist? Objektwahrnehmung

VL Wahrnehmung und Aufmerksamkeit. Woher weiß ich, was das ist? Objektwahrnehmung VL Wahrnehmung und Aufmerksamkeit Woher weiß ich, was das ist? Objektwahrnehmung Was ist das? Was ist das? Was ist das? Oft hilft Verdeckung bei Erkennung. http://www.blelb.ch/deutsch/blelbspots/spot21/blelbspot21_de.htm

Mehr

Einführung in die medizinische Bildverarbeitung WS 12/13

Einführung in die medizinische Bildverarbeitung WS 12/13 Einführung in die medizinische Bildverarbeitung WS 12/13 Stephan Gimbel Kurze Wiederholung Pipeline Pipelinestufen können sich unterscheiden, beinhalten aber i.d.r. eine Stufe zur Bildvorverarbeitung zur

Mehr

Hannah Wester Juan Jose Gonzalez

Hannah Wester Juan Jose Gonzalez Neuronale Netze Supervised Learning Proseminar Kognitive Robotik (SS12) Hannah Wester Juan Jose Gonzalez Kurze Einführung Warum braucht man Neuronale Netze und insbesondere Supervised Learning? Das Perzeptron

Mehr

Lineare Funktion. Wolfgang Kippels 3. November Inhaltsverzeichnis

Lineare Funktion. Wolfgang Kippels 3. November Inhaltsverzeichnis Lineare Funktion Wolfgang Kippels. November 0 Inhaltsverzeichnis Grundlegende Zusammenhänge. Aufbau der Linearen Funktion......................... Nullstellenbestimmung............................. Schnittpunktbestimmung............................

Mehr

Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth

Lineare Algebra. Mathematik II für Chemiker. Daniel Gerth Lineare Algebra Mathematik II für Chemiker Daniel Gerth Überblick Lineare Algebra Dieses Kapitel erklärt: Was man unter Vektoren versteht Wie man einfache geometrische Sachverhalte beschreibt Was man unter

Mehr

Konzepte der AI Neuronale Netze

Konzepte der AI Neuronale Netze Konzepte der AI Neuronale Netze Franz Wotawa Institut für Informationssysteme, Database and Artificial Intelligence Group, Technische Universität Wien Email: wotawa@dbai.tuwien.ac.at Was sind Neuronale

Mehr

EVC Repetitorium Blender

EVC Repetitorium Blender EVC Repetitorium Blender Michael Hecher Felix Kreuzer Institute of Computer Graphics and Algorithms Vienna University of Technology INSTITUTE OF COMPUTER GRAPHICS AND ALGORITHMS Filter Transformationen

Mehr

Gesichtsidentifikation mit dem Erkennungssystem FaceVACS SDK der Firma Cognitec

Gesichtsidentifikation mit dem Erkennungssystem FaceVACS SDK der Firma Cognitec Gesichtsidentifikation mit dem Erkennungssystem FaceVACS SDK der Firma Cognitec Zwischenpräsentation Autoren: Alexander Mielchen und Lorenz Kaipf 20.05.2014 1 Gliederung Aufgabenstellung und Randbedingungen

Mehr

SEMINAR AUTOMATISCHE GESICHTSERKENNUNG

SEMINAR AUTOMATISCHE GESICHTSERKENNUNG SEMINAR AUTOMATISCHE GESICHTSERKENNUNG OBERSEMINAR AUTOMATISCHE ANALYSE VON GESICHTSAUSDRÜCKEN Organisation, Überblick, Themen Überblick heutige Veranstaltung 1. Organisatorisches 2. Überblick über beide

Mehr

Neue Ansätze für Mustererkennung und automatisches Lernen

Neue Ansätze für Mustererkennung und automatisches Lernen Z Y X Neue Ansätze für Mustererkennung und automatisches Lernen Vortrag im Rahmen des 2. Technologieforums Bildverarbeitung am 03./04. November 2015 Johannes Zügner STEMMER IMAGING GmbH, Puchheim GLIEDERUNG

Mehr

10.2 Linearkombinationen

10.2 Linearkombinationen 147 Vektorräume in R 3 Die Vektorräume in R 3 sind { } Geraden durch den Ursprung Ebenen durch den Ursprung R 3 Analog zu reellen Vektorräumen kann man komplexe Vektorräume definieren. In der Definition

Mehr

Globale und Individuelle Schmerz-Klassifikatoren auf Basis relationaler Mimikdaten

Globale und Individuelle Schmerz-Klassifikatoren auf Basis relationaler Mimikdaten Globale und Individuelle Schmerz-Klassifikatoren auf Basis relationaler Mimikdaten M. Siebers 1 U. Schmid 2 1 Otto-Friedrich-Universität Bamberg 2 Fakultät für Wirtschaftsinformatik und Angewandte Informatik

Mehr

Vororientierung zur Kurseinheit 7

Vororientierung zur Kurseinheit 7 92 4 Berechnung linearer Netzwerke Vororientierung zur urseinheit 7 In diesem apitel wird Ihnen gezeigt, wie man aus linearen Zweipolen aufgebaute Netzwerke in systematischer Weise analysieren kann. Dazu

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

Electronic Design Automation (EDA) Technology Mapping

Electronic Design Automation (EDA) Technology Mapping Electronic Design Automation (EDA) Technology Mapping Überblick digitale Synthese Technology Mapping Abbildung durch die Abdeckung eines Baumes Partitionierung des DAG Dekomposition und Abdeckung Beispiel

Mehr

Teil 111. Chart-Parsing

Teil 111. Chart-Parsing Teil 111 Chart-Parsing 102 Die im ersten Teil des Buches behandelten einfachen Parsingalgorithmen sind, anders als die meisten vor allem im Compilerbau verwendeten Algorithmen (z.b. die LLoder LR-Parsingalgorithmen),

Mehr

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17

Bildverarbeitung: Filterung. D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Bildverarbeitung: Filterung D. Schlesinger () Bildverarbeitung: Filterung 1 / 17 Allgemeines Klassische Anwendung: Entrauschung (Fast) jeder Filter basiert auf einem Modell (Annahme): Signal + Rauschen

Mehr

Die Wahrnehmung von Durchsichtigkeit. Referentin: Carina Kogel Seminar: Visuelle Wahrnehmung Dozent: Dr. Alexander C. Schütz

Die Wahrnehmung von Durchsichtigkeit. Referentin: Carina Kogel Seminar: Visuelle Wahrnehmung Dozent: Dr. Alexander C. Schütz Die Wahrnehmung von Durchsichtigkeit Referentin: Carina Kogel Seminar: Visuelle Wahrnehmung Dozent: Dr. Alexander C. Schütz Die Wahrnehmung von Durchsichtigkeit Ein Mosaik aus undurchsichtigen Farbflächen

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

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok

Kurs über Lineare Gleichungssysteme. PD Dr. Karin Halupczok Kurs über Lineare Gleichungssysteme PD Dr. Karin Halupczok Mathematisches Institut Albert-Ludwigs-Universität Freiburg http://home.mathematik.unifreiburg.de/halupczok/diverses.html karin.halupczok@math.uni-freiburg.de

Mehr

Mathematische Grundlagen der dynamischen Simulation

Mathematische Grundlagen der dynamischen Simulation Mathematische Grundlagen der dynamischen Simulation Dynamische Systeme sind Systeme, die sich verändern. Es geht dabei um eine zeitliche Entwicklung und wie immer in der Informatik betrachten wir dabei

Mehr

Kamera-basierte Objekterkennung

Kamera-basierte Objekterkennung Kamera-basierte Objekterkennung Deep Machine Learning. Version 2.0 Einführung Motivation & Megatrends Motivation In der Logistik verursacht die Identifizierung (das Scannen) der Produkte, Pakete, Paletten,

Mehr

Passive Fingerabdrücke / Übertragbarkeit

Passive Fingerabdrücke / Übertragbarkeit Passive Fingerabdrücke / Übertragbarkeit Algorithmus nach Haitsma etist auch auf Video-Daten übertragbar: Unterteilung des Bildes in Blöcke Vergleich von Differenzen der durchschnittlichen Luminanzwerte

Mehr

INTELLIGENTE DATENANALYSE IN MATLAB

INTELLIGENTE DATENANALYSE IN MATLAB INTELLIGENTE DATENANALYSE IN MATLAB Bildanalyse Literatur David A. Forsyth: Computer Vision i A Modern Approach. Mark S. Nixon und Alberto S. Aguado: Feature Extraction and Image Processing. Ulrich Schwanecke:

Mehr

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn

Optimierung. Optimierung. Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren. 2013 Thomas Brox, Fabian Kuhn Optimierung Vorlesung 2 Optimierung ohne Nebenbedingungen Gradientenverfahren 1 Minimierung ohne Nebenbedingung Ein Optimierungsproblem besteht aus einer zulässigen Menge und einer Zielfunktion Minimum

Mehr

Mathematik II Frühjahrssemester 2013

Mathematik II Frühjahrssemester 2013 Mathematik II Frühjahrssemester 213 Prof. Dr. Erich Walter Farkas Kapitel 7: Lineare Algebra Kapitel 7.5: Eigenwerte und Eigenvektoren einer quadratischen Matrix Prof. Dr. Erich Walter Farkas Mathematik

Mehr

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing

Domain-independent. independent Duplicate Detection. Vortrag von Marko Pilop & Jens Kleine. SE Data Cleansing SE Data Cleansing Domain-independent independent Duplicate Detection Vortrag von Marko Pilop & Jens Kleine http://www.informatik.hu-berlin.de/~pilop/didd.pdf {pilop jkleine}@informatik.hu-berlin.de 1.0

Mehr

Übersicht über die Themen

Übersicht über die Themen Übersicht über die Themen 1. Beschreibung von natürlichem Terrain, insbes. unter Wasser 2. Handgestenerkennung für mobile Augmented Reality (AR) Anwendungen 3. Deep Learning im Bereich Gesichtswiedererkennung

Mehr

Nichtrealistische Darstellung von Gebirgen mit OpenGL

Nichtrealistische Darstellung von Gebirgen mit OpenGL Nichtrealistische Darstellung von Gebirgen mit OpenGL Großer Beleg Torsten Keil Betreuer: Prof. Deussen Zielstellung Entwicklung eines Algorithmus, der die 3D- Daten einer Geometrie in eine nichtrealistische

Mehr

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21

5.1 Determinanten der Ordnung 2 und 3. a 11 a 12 a 21 a 22. det(a) =a 11 a 22 a 12 a 21. a 11 a 21 5. Determinanten 5.1 Determinanten der Ordnung 2 und 3 Als Determinante der zweireihigen Matrix A = a 11 a 12 bezeichnet man die Zahl =a 11 a 22 a 12 a 21. Man verwendet auch die Bezeichnung = A = a 11

Mehr

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7 Sonja Hunscha - Koordinatensysteme 1 Inhalt Einleitung 2 1 Koordinatensysteme 2 1.1 Kartesisches Koordinatensystem 2 1.2 Polarkoordinaten 3 1.3 Zusammenhang zwischen kartesischen und Polarkoordinaten 3

Mehr

Objekterkennung am Beispiel des Viola-Jones-Objektdetektors

Objekterkennung am Beispiel des Viola-Jones-Objektdetektors Objekterkennung am Beispiel des Viola-Jones-Objektdetektors Medieninformatik IL Andreas Unterweger Vertiefung Medieninformatik Studiengang ITS FH Salzburg Wintersemester 2014/15 Andreas Unterweger (FH

Mehr

Einführung Aufgabe 3 - MPEG. Tobias Reinsch 2011

Einführung Aufgabe 3 - MPEG. Tobias Reinsch 2011 Einführung Aufgabe 3 - MPEG Tobias Reinsch 2011 Allgemeines Aufgabe 3 - MPEG Ziel der Aufgabe Kennenlernen der Bildkodierungsverfahren des MPEG Standards Praktische Umsetzung dieser Techniken mit Java

Mehr

Hauptkomponenten-basierte Klassifikationsverfahren (PCA)

Hauptkomponenten-basierte Klassifikationsverfahren (PCA) Hauptkomponenten-basierte Klassifikationsverfahren (PCA) Projektseminar: Wetterlagen und Feinstaub - Übung Dozent: Claudia Weitnauer Referent: Esther Oßwald, Julian Dare Datum: 30.05.2011 Übersicht 1 Einleitung

Mehr

INTELLIGENTE DATENANALYSE IN MATLAB. Objekterkennung

INTELLIGENTE DATENANALYSE IN MATLAB. Objekterkennung INTELLIGENTE DATENANALYSE IN MATLAB Objekterkennung Objekterkennung Problemstellung Gegeben: Ein Bild. Fragestellungen: Klassifikationsproblem Ist ein bestimmtes Objekt (z.b. Flugzeug) auf dem Bild? Welches

Mehr

, v 3 = und v 4 =, v 2 = V 1 = { c v 1 c R }.

, v 3 = und v 4 =, v 2 = V 1 = { c v 1 c R }. 154 e Gegeben sind die Vektoren v 1 = ( 10 1, v = ( 10 1. Sei V 1 = v 1 der von v 1 aufgespannte Vektorraum in R 3. 1 Dann besteht V 1 aus allen Vielfachen von v 1, V 1 = { c v 1 c R }. ( 0 ( 01, v 3 =

Mehr

Verkehr Analyse. Inhalt. Was ist Verkehr Analyse? Geschichte der Verkehr Analyse. Iavor Jelev Jintao Ding

Verkehr Analyse. Inhalt. Was ist Verkehr Analyse? Geschichte der Verkehr Analyse. Iavor Jelev Jintao Ding Inhalt Verkehr Analyse Iavor Jelev Jintao Ding Was ist Verkehr Analyse? Wozu ist die Verkehr Analyse gut? Wie kann man Verkehr Analyse machen? Anwendungsbeispiele Algorithmen für Verkehr Analyse Geschichte

Mehr

Lehrskript Mathematik Q12 Analytische Geometrie

Lehrskript Mathematik Q12 Analytische Geometrie Lehrskript Mathematik Q1 Analytische Geometrie Repetitorium der analytischen Geometrie Eine Zusammenfassung der analytischen Geometrie an bayerischen Gymnasien von Markus Baur, StR Werdenfels-Gymnasium

Mehr

38 Iterative Verfahren für lineare Gleichungssysteme

38 Iterative Verfahren für lineare Gleichungssysteme 38 Iterative Verfahren für lineare Gleichungssysteme 38.1 Motivation Viele praktische Probleme führen auf sehr große lineare Gleichungssysteme, bei denen die Systemmatrix dünn besetzt ist, d. h. nur wenige

Mehr

Automatic License Plate Recognition Shyang-Lih Chang, Li-Shien Chen, Yun-Chung Chung, and Sei-Wan Chen

Automatic License Plate Recognition Shyang-Lih Chang, Li-Shien Chen, Yun-Chung Chung, and Sei-Wan Chen Reader Automatic License Plate Recognition Shyang-Lih Chang, Li-Shien Chen, Yun-Chung Chung, and Sei-Wan Chen aus: IEEE TRA N S A C TI O N S O N INTE L LIG E N T TRA N S P O R T A TI O N SYST E M S, V

Mehr

9 Eigenwerte und Eigenvektoren

9 Eigenwerte und Eigenvektoren 92 9 Eigenwerte und Eigenvektoren Wir haben im vorhergehenden Kapitel gesehen, dass eine lineare Abbildung von R n nach R n durch verschiedene Darstellungsmatrizen beschrieben werden kann (je nach Wahl

Mehr

9 Eigenwerte und Eigenvektoren

9 Eigenwerte und Eigenvektoren 92 9 Eigenwerte und Eigenvektoren Wir haben im vorhergehenden Kapitel gesehen, dass eine lineare Abbildung von R n nach R n durch verschiedene Darstellungsmatrizen beschrieben werden kann (je nach Wahl

Mehr

Mobile Benutzerschnittstellen für die Interaktion mit Sensoren

Mobile Benutzerschnittstellen für die Interaktion mit Sensoren Mobile Benutzerschnittstellen für die Interaktion mit Sensoren Oliver Senn sennol@student.ethz.ch [Rauhala et. al. 2006] 28.04.2009 Sensornetze im Alltag Zunehmende Verbreitung von Sensornetzen Alltägliche

Mehr

DWH Automatisierung mit Data Vault 2.0

DWH Automatisierung mit Data Vault 2.0 DWH Automatisierung mit Data Vault 2.0 Andre Dörr Trevisto AG Nürnberg Schlüsselworte Architektur, DWH, Data Vault Einleitung Wenn man die Entwicklung von ETL / ELT Prozessen für eine klassische DWH Architektur

Mehr

5 Suchmaschinen Page Rank. Page Rank. Information Retrieval und Text Mining FH Bonn-Rhein-Sieg, SS Suchmaschinen Page Rank

5 Suchmaschinen Page Rank. Page Rank. Information Retrieval und Text Mining FH Bonn-Rhein-Sieg, SS Suchmaschinen Page Rank Page Rank Google versucht die Bedeutung von Seiten durch den sogenannten Page Rank zu ermitteln. A C Page Rank basiert auf der Verweisstruktur des Webs. Das Web wird als großer gerichteter Graph betrachtet.

Mehr

Mathe <> Deutsch. Die 7 verwirrendsten Mathe-Floskeln einfach erklärt! Math-Intuition.de

Mathe <> Deutsch. Die 7 verwirrendsten Mathe-Floskeln einfach erklärt! Math-Intuition.de Mathe Deutsch Die 7 verwirrendsten Mathe-Floskeln einfach erklärt! Inhalt hinreichend & notwendig kanonisch wohldefiniert beliebig paarweise trivial o.b.d.a & o.e. hinreichend & notwendig Bei jeder

Mehr

37 Gauß-Algorithmus und lineare Gleichungssysteme

37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Gauß-Algorithmus und lineare Gleichungssysteme 37 Motivation Lineare Gleichungssysteme treten in einer Vielzahl von Anwendungen auf und müssen gelöst werden In Abschnitt 355 haben wir gesehen, dass

Mehr

Wasserscheiden-Ansätze zur Bildsegmentierung I

Wasserscheiden-Ansätze zur Bildsegmentierung I Seminar Bildsegmentierung und Computer Vision Wasserscheiden-Ansätze zur Bildsegmentierung I Stefan Sugg 19.12.2005 Gliederung 1. Einführung 2. Morphologische Grundlagen 3. Simulation durch Überflutung

Mehr

Lineare Optimierung und Simplex-Algorithmus

Lineare Optimierung und Simplex-Algorithmus Lineare Optimierung und Simplex-Algorithmus Problemstellung Beispiel : Unser Unternehmen verfügt über drei Maschinen A, B, C, mit denen zwei verschiedene Produkte P, P2 hergestellt werden. Die Maschinen

Mehr

Manchmal ist weniger mehr Subsampling, Binning oder Scaler

Manchmal ist weniger mehr Subsampling, Binning oder Scaler Manchmal ist weniger mehr Subsampling, Binning oder Scaler Ihr Sichtfeld soll sich nicht verändern, die Framerate aber erhöhen? Sie benötigen eine kürzere Belichtungszeit? Bei gleichem Sichtfeld reicht

Mehr

Intelligente EKG-Analyse Dipl.-Ing. Gero von Wagner

Intelligente EKG-Analyse Dipl.-Ing. Gero von Wagner FZI Forschungszentrum Informatik an der Universität Karlsruhe MIT- Medizinische Informationstechnik Telemetrisches Diagnosenetz Intelligente EKG-Analyse Dipl.-Ing. Gero von Wagner FZI Forschungszentrum

Mehr

Hypothesen: Fehler 1. und 2. Art, Power eines statistischen Tests

Hypothesen: Fehler 1. und 2. Art, Power eines statistischen Tests ue biostatistik: hypothesen, fehler 1. und. art, power 1/8 h. lettner / physik Hypothesen: Fehler 1. und. Art, Power eines statistischen Tests Die äußerst wichtige Tabelle über die Zusammenhänge zwischen

Mehr

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme

Ausarbeitung zum Modulabschluss. Graphentheorie. spannende Bäume, bewertete Graphen, optimale Bäume, Verbindungsprobleme Universität Hamburg Fachbereich Mathematik Seminar: Proseminar Graphentheorie Dozentin: Haibo Ruan Sommersemester 2011 Ausarbeitung zum Modulabschluss Graphentheorie spannende Bäume, bewertete Graphen,

Mehr

5 Eigenwerte und die Jordansche Normalform

5 Eigenwerte und die Jordansche Normalform Mathematik für Ingenieure II, SS 9 Freitag 6 $Id: jordantex,v 7 9/6/ :8:5 hk Exp $ 5 Eigenwerte und die Jordansche Normalform 5 Die Jordansche Normalform Nachdem wir bisher das Vorgehen zur Berechnung

Mehr

DPF Dynamic Partial distance Function

DPF Dynamic Partial distance Function DPF Dynamic Partial distance Function Vorgelegt von Sebastian Loose (MatrikelNR.: 169172), Computervisualistikstudent im 4. Semester. Hausarbeit zum Papier DPF A Perceptual Distance Function for Image

Mehr

Geometrische Algorithmen Segmentschnitt

Geometrische Algorithmen Segmentschnitt Folie 1 von 36 Geometrische Algorithmen Segmentschnitt Folie 2 von 36 Segmentschnitt Übersicht Zwei Segmente Lage zweier Segmente Prüfung auf Schnittfreiheit Formeln zum Geradenschnitt Feststellen des

Mehr

(Thema) Optimierung von künstlichen neuronalen Netzen zur Ausfallvorhersage mit Sensordaten. Masterarbeit

(Thema) Optimierung von künstlichen neuronalen Netzen zur Ausfallvorhersage mit Sensordaten. Masterarbeit (Thema) Optimierung von künstlichen neuronalen Netzen zur Ausfallvorhersage mit Sensordaten Masterarbeit zur Erlangung des akademischen Grades Master of Science (M.Sc.) im Studiengang Wirtschaftsingenieur

Mehr

Beleuchtung. in Computerspielen

Beleuchtung. in Computerspielen Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung

Mehr

Teil III. Komplexitätstheorie

Teil III. Komplexitätstheorie Teil III Komplexitätstheorie 125 / 160 Übersicht Die Klassen P und NP Die Klasse P Die Klassen NP NP-Vollständigkeit NP-Vollständige Probleme Weitere NP-vollständige Probleme 127 / 160 Die Klasse P Ein

Mehr

Digitale Bildverarbeitung (DBV)

Digitale Bildverarbeitung (DBV) Digitale Bildverarbeitung (DBV) Prof. Dr. Ing. Heinz Jürgen Przybilla Labor für Photogrammetrie Email: heinz juergen.przybilla@hs bochum.de Tel. 0234 32 10517 Sprechstunde: Montags 13 14 Uhr und nach Vereinbarung

Mehr