Seminararbeit SS2002 Gesichtsdetektion in digitalen Einzelbildern Autor: Stefan Bozic Mat.Nr. 8510 Betreuer: Professor Link 1 1 Einführung ................................................................................................................................... 3 2 Grundlagen zur Bildauswertung und Gesichtsdetektion in Einzelbildern ................................ 4 2.1 Einführung Bildverarbeitungssysteme ............................................................................................ 4 2.2 Digitale Bilder .................................................................................................................................... 5 2.2.1 Grauwerthistogramm ..................................................................................................................................... 6 2.3 Segmentierung.................................................................................................................................... 7 2.3.1 Grundlagen der Segmentierung ..................................................................................................................... 7 2.3.3 Klassifikationverfahren ................................................................................................................................. 9 2.3.3.1 Eindimensionale Schwellwertverfahren: .................................................................................................... 9 2.3.3.2 Mehrdimensionale Schwellwertverfahren .................................................................................................. 9 2.3.3.3 Minimum Distance Klassifikator ............................................................................................................. 10 2.3.3.4 Neuronale Netze ....................................................................................................................................... 11 2.4 Grundlagen Gesichtsdetektion ....................................................................................................... 13 2.4.1 Definition Gesichtsdetektion ....................................................................................................................... 13 2.4.2 weitere Begriffsdefinitionen ....................................................................................................................... 13 2.4.3 Problemstellung........................................................................................................................................... 14 3 Anwendungsbezogene Techniken der Gesichtsdetektion in Einzelbilder ................................ 16 3.1 Wissensbasierte Methoden .............................................................................................................. 16 3.1.1 Grauwertinformationen ............................................................................................................................... 16 3.1.2 Helligkeitsinformationen ............................................................................................................................. 16 3.1.2 Anwendungsbeispiel ................................................................................................................................... 17 3.2 Merkmalsinvariante Methoden ...................................................................................................... 19 3.2.1 Gesichtszüge ............................................................................................................................................... 19 3.2.3 Anwendungsbeispiel ................................................................................................................................... 20 [Bild 15a] ................................................................................................................................................. 20 3.3 Template Matching Methoden ....................................................................................................... 22 3.4 Appearance-Based Methoden ......................................................................................................... 23 3.4.1 Eigengesichter ............................................................................................................................................. 23 3.5 Klassifizierung der einzelnen Methoden........................................................................................ 25 2 1 Einführung In der heutigen Zeit ist der Computer als Hilfs- und Arbeitsmittel nicht mehr aus dem Alltag wegzudenken. Egal in welchen Bereichen im modernen Leben man sich bewegt, überall befinden sich computergestützte Systeme, die dem Menschen lästige Arbeiten ersparen, oder solche Arbeiten verrichten, zu denen der Mensch mit seinen beschränkten Möglichkeiten nicht in der Lage wäre. Das immer weiter sinkende Preis/Leistungs-Verhältnis von Computersystemen und die sinkenden Kosten von modernen Multimediasystemen (digitale Kameras ...) ermöglicht eine Vielzahl neuer Anwendungen, welche vorher nicht realisierbar oder einfach zu teuer waren. Besonders die digitale Bildverarbeitung profitiert von den ständig wachsenden Ressourcen. Die Gesichtsdetektion ist eine Anwendung der digitalen Bildverarbeitung. Ein Computer interpretiert ein gegebenes digitales Bild und lokalisiert den Bereich, in dem sich ein menschliches Gesicht befindet. Es kann sich hierbei auch um eine Bildfolge handeln. Der Vorgang der Lokalisierung ist mit erheblichen Rechenaufwand verbunden, da das Auffinden einer so komplexen Struktur, wie einem Gesicht, keine triviale Aufgabe ist. Erschwert wird der Vorgang durch etliche Faktoren, die im folgenden Bericht behandelt und diskutiert werden. Der Vorgang der Gesichtsdetektion wird in vielen Systemen als eine Teilstufe zur Vorbearbeitung bzw. zur Datenreduktion verwendet. Primäres Ziel dieser Systeme ist z.B. eine Gesichtserkennung oder Gesichtszugserkennung. Eine Vielzahl von möglichen Anwendungen treibt die Entwicklung dieser Systeme voran. Flughäfen oder andere Orte, in denen sich viele Leute aufhalten und für die strenge Sicherheitsauflagen vorliegen, können mit biometrischen Systemen ausgestattet werden. Solche Systeme können Menschen innerhalb weniger Sekunden anhand der Iris oder des Gesichts erkennen und potentielle Verbrecher und Terroristen entlarven. Auch die Medizin ist ein Kunde dieser Systeme. Hier kann der Computer anhand von Bildern eine Diagnose zur Behandlung von Gesichtsverletzungen/Krankheiten stellen oder bei kritischen Patienten während der Schlafphase die Atmung überwachen. Die Werbeindustrie könnte an ihren Plakaten Kameras befestigen und die Gesichtszüge der Menschen untersuchen, die gerade das Plakat betrachten. Die Auswertung solcher Informationen verhelfen besser und gezielter Werbung zu entwerfen. Auch Sicherheitssysteme in der Automobilindustrie werden entwickelt, die das Gesicht des Fahrers untersuchen und erkennen, ob dieser eingeschlafen ist. Man sieht, dass ein breites Spektrum an Anwendungen existiert, welches die Forschung und Entwicklung solcher computergestützten Systeme nach vorne treibt. Die nachfolgenden Kapitel beschäftigen sich mit einer Einführung in die digitale Bildverarbeitung, den Grundlagen der Segmentierung sowie einigen speziellen Verfahren zur Gesichtsdetektion. 3 2 Grundlagen zur Bildauswertung und Gesichtsdetektion in Einzelbildern 2.1 Einführung Bildverarbeitungssysteme Wohl jeder sehende Mensch hat eine teils aus der Erfahrung abgeleitete, teils intuitive Vorstellung davon, was ein Bild ist. Die beste Vorstellung davon, wie ein technisches Bildverarbeitungssystem aussehen sollte, liefert daher das Vorbild der Natur: das menschliche Auge als vielseitiger, miniaturisierter optischer Apparat, die Vorverarbeitung und Datenreduktion der Bildinformation in der Netzhaut, die Codierung und Übertragung der Bilddaten über den Sehnerv sowie die extrem schnelle und in hohem Maße parallel ablaufende Auswertung in unserem Großhirn, gefolgt von Aktionen als Reaktion auf den interpretierten Bildinhalt. [Ernst; Einführung in die digitale Bildverarbeitung] Der prinzipielle Aufbau eines technischen Bildverarbeitungssystems [Bild 1] besteht aus einer Vorrichtung zur Bildaufnahme einschließlich der dazugehörenden Beleuchtung. Im nächsten Schritt muß das Bild in eine maschinell verarbeitbare Form gebracht werden. Dies geschieht durch Digitalisieren des Bildes. Speziell digitale Kameras oder auch Scanner finden hier Verwendung. Durch die Digitalisierung der Bilder tritt ein Informationverlust auf, der den Übergang vom Kontinuierlichen ins Diskrete beschreibt. Dennoch macht erst dieser Vorgang eine computergestützte Bildauswertung möglich. Die nächste Stufe im Bildverarbeitungssystem beschäftigt sich mit der Interpretation bzw. der Auswertung der interessierenden Bildinhalte. Oft handelt es sich hierbei um das Erkennen, Vermessen und Zählen von Objekten, allgemein um das Gewinnen von Maßen und Merkmalen. Diesen Teil des Systems erledigen komplexe Algorithmen, welche auf ein bestimmtes Problem optimiert werden. Die hierbei gewonnenen Ergebnisse müssen im nächsten Vorgang interpretiert werden. Diese Interpretation kann wiederum rechnergestützt ablaufen oder extern durch den Benutzer geschehen ( dabei wird ein Merkmalsbild oder ein Dialog auf dem Monitor ausgegeben ). Beispiel hierfür wären z.B. eine automatische Teilezählung (rechnergestützt) und die Auswertung eines Röntgenbildes durch den Chirurgen (extern). Das Ergebnis kann dabei etwa auf eine gut/schlecht Entscheidung, verbunden mit einem Alarm reduziert sein, oder auch die Ableitung einer Regelgröße zur Steuerung einer Maschine beinhalten. [Bild 1] 4 2.2 Digitale Bilder Zur Digitalisierung von Bilddaten sind 2 Schritte notwendig. Zum einen der der Rasterung und zum anderen der der Quantisierung. Unter der Rasterung versteht man einen Vorgang, bei dem ein rechteckiges Gitter über das zu digitalisierende Bild gelegt wird und dieses in Rasterflächenstücke zerlegt. Eine Vorstellung hierzu liefert jeder Fernseher, bei dem die Bilder aus vielen einzelnen Bildpunkten aufgebaut sind. Eine mathematische Beschreibung hierzu ist die Notation als Bildmatrizen. Jedes Matrixelement ist hierbei genau einem Rasterelement des Gitters zugewiesen. Die Menge der Zeilen und Spalten wird auch als Auflösung bezeichnet. Die Quantifizierung weist jedem Matrixelement einen Wert aus einer vorher definierten Grauwertmenge zu. Die Menge an Grauwerten besitzt mindesten 2 Elemente ( schwarz/weiß ) und ist nach oben hin offen. In modernen Computersystemen ist aufgrund der byteorientierten Architektur die Menge G(0, 1, .., 255) vorherrschend. Mit diesen Festlegungen läßt sich ein digitalisiertes Grauwertbild wie folgt beschreiben: G = {0, 1.., n-1, n} Grauwertmenge S = (g(i,j)) Bildmatrix des Grauwertbildes i = 0, 1.., m-1, m Bildzeilen j = 0, 1.., o-1, o Bildspalten (i, j) Ortskoordinaten des Bildpunktes g(i, j) E G Grauwert des Bildpunktes [Bild2 Rastermatrix] 5 Farbbilder genügen prinzipiell dem gleichen Aufbau wie die Grauwertbilder. Lediglich das Prinzip der Quantifizierung muß erweitert werden. Hierbei besitzt jeder Bildpunkt nicht nur einen Grauwert, sondern einen Vektor aus Farbwerten. Da durch Mischen der Farben Rot, Grün, Blau jede beliebige Farbe erzeugt werden kann, besteht dieser Vektor also aus einem Element aus einer Rotwertmenge, einem Element aus einer Grünwertmenge und einem Element aus einer Blauwertmenge. Die Anzahl der Elemente der jeweiligen Farbmenge ist wiederum mindestens 2 und nach oben hin offen. ´g(x, y) = (g0, g1, g2) Farbvektor des Bildpunktes Anmerkung: Es sollte noch erwähnt werden, dass die Auflösung und die Anzahl der Grauwerte die Größe des belegten Speichers bestimmen. Bei sehr großer Auflösung und Farbwertmenge fallen für die Bilder sehr hohe Datenmengen an, was sich in erhöhtem Speicher- und Rechenaufwand niederschlägt. Bei einer kleinen Auflösung und Farbwertmenge werden zwar Speicherresourcen geschont, aber so gehen möglicherweise wesentliche Bildinhalte verloren. 2.2.1 Grauwerthistogramm Ein Grauwerthistogramm ist eine statistisches Mittel, um die Häufigkeit der in einem Bild vorkommenden Grauwerte darzustellen. Dabei wird auf der x-Achse die im Bild verwendete Grauwertmenge aufgetragen. Die y-Achse beschreibt dann die Häufigkeit des Vorkommens des jeweiligen Grauwertes im Bild [Bild3 IR-Bild] [Bild4 Histogramm des IR-Bildes] Ein Grauwerthistogramm liefert lediglich Informationen über die Häufigkeit der vorkommenden Grauwerte. Werden auch noch Informationen über die Lage der Grauwerte benötigt, so sei auf eine komplexere Darstellungsvarianten, wie z.B die Coocoreance-Matrix [8] verwiesen. 6 2.3 Segmentierung 2.3.1 Grundlagen der Segmentierung Die Segmentierung ist ein Teilgebiet der digitalen Bildverarbeitung. Die Hauptaufgabe hierbei besteht darin, auf einem Bild die zu Objekten gehörigen Bereiche zu erkennen und diese weiter zu verarbeiten. Zunächst muß man das zu untersuchende Objekt vom Bildhintergrund trennen. Dabei werden die Bildpunkte, die zum Objekt gehören, zu einer Einheit zusammengefaßt. Im einfachsten Falle entsteht hierbei ein Binärbild, welches nur das gesuchte Objekt darstellt. Komplexe Objekte werden meistens nach dem Prinzip von "Teile und Herrsche" in mehrere Segmente (Teilobjekte) aufgelöst, die meistens einfachere strukturelle Eigenschaften besitzen. Ein Gesicht könnte hierbei z.B. in einen Umriß (oval) mit Augen, Nase, Lippen usw. zerlegt werden. Ein großes Problem der Segmentierung ist die eindeutige Beschreibung der zu untersuchende Objekte. In wie weit kann man eine gegebene Struktur noch als Objekt erkennen? Ein Beispiel hierzu wäre das Erkennen von handgeschriebenen Buchstaben. Bei jedem Mensch sehen die geschriebenen Buchstaben anders aus. So wird man festlegen müssen, bis zu welcher Grenze man eine geschriebene Struktur noch als Buchstabe akzeptieren will. Alle Strukturen die als Buchstabe akzeptiert werden, bilden eine "Objektklasse Buchstaben". A AA AA A A A A A [Beispiel für eine Teilmenge der Objektklasse „großes A“ von computergestützten Schrifttypen] Die Objekte (Objektklassen) werden durch eine Vielzahl verschiedener physikalischer Größen (Merkmale) charakterisiert. Um diese Größen zu erhalten, werden verschiedene Sensoren verwendet, die Farben, Größen usw. bestimmen oder Parameter liefern, aus denen wiederum andere Größen berechnet werden können (Umfang, Schwerpunkt). Die gewonnenen Werte werden anschließend in einem Merkmalsvektor zusammengefaßt. Alle aufgezeichneten Merkmalsvektoren eines Objektes spannen einen N-dimensionalen Merkmalsraum auf, wobei N die Anzahl der Informationschichten (Kanäle) ist. Wird z.B. mit einer Farbvideokamera ein RGB-Bild aufgezeichnet, so ist der Merkmalsraum der Originaldaten dreidimensional. In diesem Merkmalsraum sind den aufgezeichneten Objekten bestimmte ereiche (Cluster) zugeordnet. Diese Bereiche werden auch als Klassen bezeichnet. Im allgemeinen wird es nicht möglich sein diese Klassen exakt zu beschreiben oder alle möglichen Objektausprägungen explizit aufzuzählen. Bei der Bildung einer eindeutigen Klasse für ein Gesicht müßten alle Gesichter, die es gibt und gab, in allen möglichen Varianten erfaßt werden. Ein unmögliche Aufgabe, da dies einer unendlich großen Grundgesamtheit entspricht. Die einzige Möglichkeit, die der Mensch hat, eine einigermaßen repräsentative Klasse zu erzeugen, besteht in statistischen Ansätzen und heuristischen Verfahren. Andere Objekte können wiederum sehr wohl in strenge Klassen eingeteilt werden, z.B. kann die Grundgesamtheit aller farbigen Punkte in einem Merkmalsraum mathematisch genau beschrieben werden. 7 Eine Möglichkeit, eine Klasse näherungsweise zu beschreiben, ist, eine repräsentative Stichprobe mit bekannten Merkmalsvektoren zu verwenden. Diese Vektoren sollen die Klasse möglichst gut beschreiben. Anhand von extrahierten Merkmalsvektoren kann dann ein Eingangsbild auf ein Objekt hin untersucht werden. Dabei werden die Merkmalsvektoren mit den definierten Musterklassen verglichen und anhand eines Klassifikationverfahrens entschieden , zu welcher Klasse der Vektor gehört. Im trivialsten Fall gibt es lediglich 2 Musterklassen; eine Klasse Objekt und dann noch eine Zurückweisungsklasse, welche den Rest des Merkmalsraumes (Nicht Objekt) beinhaltet. Im Falle der Gesichtsdetektion könnte es aber auch mehrere Klassen geben. Z.B. könnten alle Bart- oder Brillenträger jeweils eine eigene Klasse bilden. Im Falle der Gesichtsdetektion könnte es aber auch mehrere Klassen geben. Z.b. könnten alle Bart- und Brillenträger jeweils eine eigene Klasse bilden. Anhand eines extrahierten Merkmalsvektors kann nun ein Eingangsbild auf ein Objekt hin untersucht werden. Dabei wird der Merkmalsektor mit den definierten Klassen verglichen und anhand eines Klassifikationverfahrens entschieden , zu welcher Klasse der Vektor gehört. Ein weiteres großes Problem der Segmentierung ist der, dass sich Klassen überschneiden können. So wird es oft vorkommen, dass sich die Klasse des zu segmentierenden Objektes mit der des Hintergrundes überschneidet. Abhilfe schaffen hier Schwellwertoperationen, welche in [1] näher erläutert sind. 8 Bei den lernenden Verfahren wie z.B. einem neuronalen Netz wird nach der Klassifizierung eines unbekannten Merkmalsvektors das Ergebnis des Netzes überprüft. Liefert das Netz eine falsche Zuweisung, so kann die Realisation der Klassen Ki verändert werden. 2.3.3 Klassifikationverfahren 2.3.3.1 Eindimensionale Schwellwertverfahren: Bei den eindimensionalen Schwellwertverfahren ist der Merkmalsraum eindimensional. Er besitzt 2 Klassen, eine für das Objekt und eine für den Rest des Merkmalsraumes Als Beispiel kann man sich ein Grauwertbild vorstellen, in dem sich die Objekte hell oder dunkel vom dunklen oder hellen Hintergrund abheben. Die Binarisierung ist ein einfaches Segmentierungsverfahren für diesen Fall: sa(x,y) = 0 falls se(x,y) <= c sa(x,y) = 255 sonst. Beispiel einer Flugzeugdetektion in einem IR-Bild: [Bild 5, 6, 7 von links nach rechts; Originalbild, Binärbild, Histogrammsegmentierung] 2.3.3.2 Mehrdimensionale Schwellwertverfahren Die Beschreibung dieses Verfahrens stammt aus [1]. Die Idee des eindimensionalen Schwellwertverfahren läßt sich auch auf Objekte mit mehreren Merkmalen übertragen. Die grundlegende Idee der eindimensionalen Schwellwertverfahren läßt sich auf Szenen mit mehreren Merkmalskanälen übertragen: Für eine Klasse Ki wird für jeden Kanal ein Intervall angegeben, in dem die entsprechende Komponente des zu klassifizierenden Merkmalsvektors liegen darf. Das bedeutet, daß man im zweidimensionalen Fall die Realisation der Klasse durch ein achsenparalleles Rechteck annähert und im N-dimensionalen Fall durch ein N-dimensionales, achsenparalleles Quader. Qi = {(a0, b0), (a1, b1) ... (an,bn)}. 9 Dabei sind a und b die linke und rechte Begrenzung des Quaders im Mekmalskanal n=0, 1, ..., N - 1. Ihre Berechnung kann aus dem Mittelwertvektor z (Zentrumsvektor) und dem Vektor der Streuungen q der Klasse berechnet werden: an = zn - c * sqrt(qn); bn = zn + c * sqrt(qn); Mit dem Parameter c kann die Größe des Quaders und damit die Zurückweisungsklasse gesteuert werden. Die Zuordnungsvorschrift lautet: Ein unbekannter Merkmalsvektor g wird der Klasse K zugewiesen, falls er im Merkmalsraum im Quader Q der Klasse liegt, d.h. falls für alle Komponenten gilt: gn [an, bn]; n = 0, 1, ... , N-1 Dieser Klassifikator ist zum einen rechenzeitsparend und zum anderen sehr einfach zu implementieren, da die Prüfungen ob ein Merkmalsvektor in einem Quader liegt, nur aus Vergleichsoperationen besteht. Mit einer Problematik ist man beim Quaderklassifikator aber meistens konfrontiert: Die Quader der Klassen werden sich im Merkmalsraum meistens überdecken, so daß ein unbekannter Merkmalsvektor in mehreren Quadern liegen kann. Zur Auflösung dieses Problems werden diese Merkmalsvektoren mit einer zusätzlichen Bedingung, z.B. über die kürzeste Distanz zu den Klassenzentren, zugeordnet. 2.3.3.3 Minimum Distance Klassifikator Der MDK ordnet einen unbekannten Merkmalsvektor derjenigen Klasse zu, zu der er im Merkmalsraum den kürzesten Abstand hat. Wird eine Zurückweisungsklasse benötigt, so muß der Abstand kleiner sein als ein Zurückweisungsradius r, der für alle Klassen fest oder klassenspezifisch sein kann. Die Distanz zum Zentrumsvektor z der Klasse K berechnet sich folgendermaßen: (Formel Euklidscher Abstand) Zur Berechnung der Entscheidung, zu welcher Klasse der Merkmalsvektor die kürzeste Distanz hat, kann man (Formel) vereinfachen. Als erstes kann man wegen der Monotonie der Quadratfunktion statt di auch di^2 verwenden. Eine Umformung von di^2, führt auf die weiteren Vereinfachungsmöglichkeiten: (Formel) 10 2.3.3.4 Neuronale Netze Künstliche neuronale Netze sind Systeme, die ähnlich wie das menschliche Nervensystem arbeiten. Als eine der wichtigsten Funktionen des Nervensystems zählt die ,,Kontrolle durch Kommunikation'' . Während elektronische Schaltelemente in der Lage sind, im NanosekundenBereich zu schalten, sind natürliche Neuronen im Gehirn mit einer Schaltzeit im MillisekundenBereich vergleichsweise langsam. Trotzdem ist das menschliche Gehirn aber in der Lage, Probleme zu lösen, die für jeden konventionellen Rechner in weiter Ferne liegen. Dies liegt vor allem an der großen Anzahl der Neuronen und der starken Vernetzung dieser im Gehirn. Neuronale Netze können zur Klassifizierung von Eingangsmustern benutzt werden. Dabei wird durch das Neuronale Netz entschieden, zu welcher Klasse das Eingangssignal gehört. Ein klassisches Beispiel für die Klassifizierung ist die Mustererkennung. Dabei wird versucht, in einem Eingangssignal bestimmte Strukturen zu identifizieren. Die kleinste Einheit eines Neuronalen Netzes ist das Neuron [Bild8]. Das Grundmodell eines Neurons läßt sich dabei als eine Art Addierer mit Schwellwert auffassen. Die Verbindungen eines Neurons nehmen Aktivierungen xi mit bestimmten Stärken wi von einer Eingabeeinheit oder von anderen Neuronen auf, summieren diese und lassen dann am Ausgang y des Neurons eine Aktivität entstehen, sofern die Summe vorher einen Schwellwert s überschritten hat. [Bild8 Neuron] Die Größen xi sind die Eingabewerte des Neurons. Sie werden häufig als Vektor x geschrieben. Jedem Eingang ist ein Gewicht wi zugeordnet. Die Netzaktivität net wird wie folgt berechnet: net = Summe(xi*wi) Nachgeschaltet ist eine Aktivierungsfunktion f(x), mit der die Ausgabe o berechnet wird: o = f(net) 11 Als Aktivierungsfunktion wird je nach Anwendung, eine auf das Problem zugeschnittene Funktion verwendet. Bsp für eine Aktivierungsfunktion: f(x) = Sigmoidfunktion Ein neuronales Netz besteht aus einer Vielzahl von untereinander verknüpften Neuronen. Dabei wird das Ausgangssignal eines Neurons zum Eingangssignal eines Neurons. Im Bild y ist der abstrakte Aufbau eines solchen Netzes skizziert. Als Eingangssignale xi der Eingangsschicht könnten z.B. die Pixel eins Bildes oder ein extrahierter Merkmalsvektor dienen. Die innere Schichten würden hierbei einen Algorithmus zur Klassifizierung des Eingangsmusters entsprechen. Die Ausgangsschicht liefert dann als Ergebnis der Klassifizierung die Zuordnung des Bildes zu einer Musterklasse. Der Lernvorgang des Netzes erfolgt durch einen rückgekoppelten Lernalgorithmus. Wird ein Trainingsmuster an die Neuronen der Eingabeschicht angelegt, erfolgt nach der Verarbeitung durch das Netz ein Vergleich des Sollwerts mit dem Ausgabewert der Ausgangsschicht. Der Fehler, der aus der Differenz zwischen Soll- und Istwert entsteht, wird dazu benutzt die Gewichte der Neuronen anzupassen und somit den Fehler zu verkleinern. Durch diese Rückkopplung wird indes die Lage der Klassen im Merkmalsraum verändert. [Bild9 prinzipieller Aufbau eines Neuronalen Netzes] 12 [Bild10 Anwendungsbeispiel von neuronalen Netzen] Wertemenge der Eingangssignale = {0,1} Wertemenge des Ausgangssignals = {0,1} Schwellwert der Aktivierungsfunktion = 0 2.4 Grundlagen Gesichtsdetektion 2.4.1 Definition Gesichtsdetektion Auf einem willkürlich gewählten Bild, sollen alle darauf enthaltenen Gesichter erkannt und lokalisiert werden, d.h. die zugehörigen Bildbereiche idetifiziert werden. 2.4.2 weitere Begriffsdefinitionen Gesichtslokalisierung: Vereinfachte Form der Gesichtdetektion. Es wird vorrausgesetzt, dass nur Bilder untersucht werden, die maximal 1 Gesicht enthalten. 13 Gesichtszugsdetektion: Auffinden von Gesichtszügen(Augen, Nase, Lippen, Nasenlöcher, Kinn, Stirn...) innerhalb eines Bildes. Es wird hierbei angenommen, dass sich maximal 1 Gesicht im Bild befindet Gesichtserkennung Ein Bild wird mit einer Bilddatenbank abgeglichen und liefert bei Übereinstimmung bestimmter Merkmale einen positiven Treffer. Gesichtsausdruckserkennung: Der Gesichtsausdruck eines Menschen wird anhand seiner Gesichtszüge ermittelt. So kann man die Gefühlregungen(Lachen, Weinen...) der fotographierten Peron erkennen. Gesichtsauthentifizierung: Eindeutige Zuweisung eines Gesichtes zu einer Person; ist eine Spezialisierung der Gesichtserkennung 2.4.3 Problemstellung Das Detektieren von Gesichtern in digitalen Bildern ist keine leichte Aufgabe. Man muß sich nicht nur mit den in der Bildsegmentierung allgemein auftretenden Problemen, wie z.B. Lichtschwankungen, Bildqualität, Kameraqualität auseinandersetzten, sondern stößt hier auf spezifische Probleme, welche im Folgenden aufgelistet sind. Position/Haltung des Kopfes: Die Position des Gesichtes auf einem Bild ist abhängig vom Standpunkt der Kamera und der Haltung des Kopfes zum Objektiv. So gibt es eine Vielzahl von Möglichkeiten, in denen ein Gesicht auf dem Bild erscheinen kann. Gesichter, welche frontal auf einem Foto zu sehen sind, zeigen alle markanten Gesichtszüge (Auge, Nase...), Fotos, welche das Profil eines Kopfes zeigen, verdecken ein Auge, ein Nasenloch oder andere Charakteristika des Gesichts. Der Winkel bestimmt zusätzlich die perspektivische Ansicht des Gesichtes. Mal ähnelt es mehr einem Oval, ein anderes Mal mehr einem Kreis. Zusätzlich unterscheiden sich alle Bilder durch Translation, Skalierung und Rotation des abgebildeten Gesichtes. Variable Gesichtszüge: Gesichter sind keine statischen Objekte, die immer gleich aussehen. Männer haben ein bestimmtes Hormon, das sie dazu veranlaßt Bärte zu tragen. Auch verändern Brillen, Schmuck und Kosmetika (Gurkenmaske) das Erscheinungsbild erheblich. Zusätzlich besitzen diese additiven Gesichtszüge ein sehr breites Spektrum an Farben, Formen und Größen. Gesichtsausdruck Das Erscheinungsbild eines Gesichtes wird stark geprägt durch die Gefühlsregungen des fotografierten Menschen. Lachen, Weinen, Zorn und Wut spannen unterschiedlich stark verschiedene Gesichtsmuskeln an. Verdeckungen: Oft werden Gesichter von anderen Objekten teilweise verdeckt so das nur noch 14 unterschiedlich viele und nur teilweise vollständig vorhandene Gesichtszüge vorhanden sind 15 3 Anwendungsbezogene Techniken der Gesichtsdetektion in Einzelbilder 3.1 Wissensbasierte Methoden Die Grundlagen dieser Methoden bilden das menschliche Wissen über das Aussehen eines Gesichtes. Dieses Wissen wird angewendet um bestimmte Regeln über die Beziehungen und das Aussehen von Gesichtszügen zu definieren. Die Beziehungen beschreiben z.B. den relativen Abstand und die Position einzelner Gesichtszüge zueinander. Dabei müssen zuerst die interessanten Bereiche des Bildes extrahiert werden, um danach anhand der Regeln Gesichtskandidaten zu ermitteln und zu identifizieren. Ein großes Problem ist, das menschliche Wissen in wohl definierten Regeln auszudrücken. Zu detaillierte Regeln liefern viele falschnegative Ergebnisse. Werden zu grobe Regeln benutzt, häufen sich falsch-positive Ergebnisse. 3.1.1 Grauwertinformationen Grauwertinformationen eines Gesichtes eigenen sich sehr gut als Merkmale von Gesichtszügen. Gesichtszüge, wie z.B Augenbrauen, Pupillen und Lippen sind meistens dunkler wie die sie umgebenden Gesichtsregionen. Diese Eigenschaft kann dazu verwendet werden, die einzelnen Gesichtsregionen zu unterscheiden. Bei dieser Klassifikationsmethode wird das Eingangsbild meistens einer Vorbearbeitung unterzogen, die den Kontrast und die Helligkeit standardisieren. 3.1.2 Helligkeitsinformationen Anhand dieser Methode könne die Umrisse eines Gesichts detektiert werden. Ein Bild der Größe m*n Pixel besitzt für jedes Pixel einen Helligkeitswert I(x,y) an der Position (x,y). Die horizontale und vertikale Projektion des Bildes ist definiert durch und Zunächst wird das horizontale Profil auf plötzliche Helligkeitsunterschiede untersucht. Erkannt werden diese durch Minimas im berechneten Horizontalen Profil. Zwei dieser erkannten Minimas können die rechte und linke Grenze des Gesichtsumrisses darstellen. Anschließend wird für das vertikale Profil dasselbe Verfahren angewendet. Die extrahierten Minimas können die Position von Gesichtszügen wie Lippen, Nasenspitze und Augen sowie obere und untere Grenze des Gesichtsumrisses angeben. In der nächsten Stufe werden anhand von geometrischen Definitionen des Gesichtes die gefunden Minimas miteinander verglichen und das Bild klassifiziert. Das Verfahren eignet sich nur für Bilder, auf denen 1 frontales Gesicht ( Bild y) vorhanden ist. 16 (Bild11 Eingangsbild mit HI(x) unten und HI(y) rechts) 3.1.2 Anwendungsbeispiel Die Methode von Yang und Huang definiert ein 3 stufiges Regelwerk zur Detektion von Gesichtern. In den ersten 2 Stufen werden mögliche Gesichtskandidaten gefunden, indem eine definierte Fenstermaske von links oben nach rechts unten über das Bild/einen interessanten Bildbereich fährt und die unten erläuterten Regeln auf diesen Bildbereich angewendet werden. Die Regeln der oberen Stufen beschreiben grob, wie ein Gesicht aussieht. Die unteren Stufen arbeiten mit dem Wissen über bestimmte Gesichtszüge. 1 Stufe: Hier wird eine Grobselektion von Bildbereichen durchgeführt, die möglicherweise Gesichter enthalten könnten. Yang und Huang definieren hier bestimmte Regeln über die Helligkeitsunterschiede der verschiedenen Gesichtregionen. Vom Originalbild werden dabei Kopien erstellt, deren Auflösungen schrittweise durch eine Gauß-Pyramide (siehe [1]) verkleinert werden. [Bild 12]. [Bild 12 Original links, rechts Kopien mit immer geringeren Auflösungen] Auf die Kopie mit der kleinsten Auflösung wird dabei folgende Regel angewendet: Der zentrale Bereich eines Gesichtes (dunkel schattiert) hat Zellen die fast den gleichen Helligkeitswert aufweisen. Die Zellen des oberen runden Bereiches eines Gesichtes besitzen ebenfalls einen fast identischen Helligkeitswert. 17 [Bild13 Zellstruktur] Der Unterschied zwischen dem durchschnittlichen Helligkeitswert der Zellen im zentralen und oberen Gesichtsbereich ist signifikant für einen Gesichtskandidaten. 2 Stufe: Die interessanten Bereiche, die von der 1 Stufe extrahiert wurden, werden nun weiter untersucht. Dabei wird das Histogramm des Fensterbereiches untersucht. Wird eine spezifizierte Helligkeitsverteilung (siehe [5]) detektiert, wird der Bildbereich weiter zur Stufe 3 gegeben. 3 Stufe: Die Bildbereiche, die den Regeln der 2 Stufe genügen, werden nun einer Kantendetektion unterzogen. Auf dem Kantenbild werden nun mit einer Vielzahl von verschiedener Algorithmen Gesichtszüge wie Nase und Mund gesucht. Bildbereiche, die auch den in [5] definierten Regeln über die geometrische Anordnung der Gesichtszüge genügen, werden als Gesicht klassifiziert. 18 3.2 Merkmalsinvariante Methoden Eine wichtige Aufgabe bei diesen Methoden ist das Auffinden von invarianten Gesichtmerkmalen. Unter der Annahme, dass ein Mensch selbst unter schlechtesten Licht und Positionverhältnissen ein Gesicht erkennen kann, müssen solche invariante Merkmale existieren. Zahlreiche Methoden wurden vorgeschlagen, bei denen meistens zuerst Gesichtszüge auf einem Bild gesucht werden, um danach eine Klassifizierung durchzuführen. Gesichtszüge können relativ einfach mit Hilfe von Kantendetektoren extrahiert werden. Aber nicht nur Gesichtszüge liefern gute Merkmalsklassifikatoren. Viele Methoden beschäftigen sich mit dem Auffinden von Gesichtern mit Hilfe von bestimmten Texturen wie der Haut und den Haaren oder anhand der Hautfarbe. Natürlich können alle diese Merkmale in den Algorithmen kombiniert genutzt werden, was dann aber zu aufwendigeren Auswertungsverfahren führt. Basierend auf den extrahierten Merkmalen werden dann stochastische Modelle oder andere Klassifizierungsmodelle erstellt. 3.2.1 Gesichtszüge Objektkanten sind eine der primitiven Objektmerkmale, die relativ einfach mit Hilfe computergestützten Bildauswertungssysteme extrahiert werden können. Für eine genauere Beschreibung der verschiedenen Kantendetektoren sei auf [8] verwiesen. Objektkanten besitzen eine Richtung, eine Kantendicke und eine Länge. Einige Gesichtszüge kann man relativ gut mit ihren Umrißkanten beschreiben. Anhand eines Modells [Bild 14] und dem Wissen, welche Kanten innerhalb eines Gesichtes Gesichtszüge repräsentieren, kann so eine Segmentierung stattfinden. Der Aufbau solcher Kantendetektionen ist meistens hierarchisch aufgebaut. Zuerst werden die Bildregionen, auf denen möglicherweise ein Gesicht vorhanden ist, extrahiert, um danach genauer auf Gesichtszüge untersucht werden zu können. Eine genauere Betrachtung der Lage der extrahierten Kanten zueinander und das Wissen über die geometrische Anordnung der Gesichtszüge untereinander liefern potentielle Gesichtskandidaten. Ein großer Vorteil dieses Ansatzes ist, dass nicht alle Gesichtszüge auf dem Eingangsbild für die Detektion vorhanden sein müssen. Des weiteren löst das Wissen über die geometrische Anordnung der Kanten das Problem der unterschiedlichen Skalierung, Lage und Orientierung eines Gesichtes auf den Bildern. [Bild 14] 3.2.2 Farbanalyse Während Grauwerte nur eine eingeschränkte Darstellung von Objekten bieten, kann anhand von Farben eine genauere Darstellung der Objekte erfolgen. Durch die 2 zusätzlichen Dimensionen, die durch die Farbdarstellung gewonnen werden, können jetzt auch 2 unterschiedliche Objekte, 19 die in der Grauwertdarstellung die gleichen Merkmale besitzen, unterschieden werden. Untersuchungen ergaben, dass die menschlichen Hautfarben, auch wenn sie von verschiedenen Völkern stammen, im Farbraum einen relativ kompakten Cluster ausbilden. Auch Gesichtszüge wie Mund und Augen bilden solch spezielle Cluster im Farbraum. Die meisten Methoden der Gesichtsdetektion anhand von Farben benutzen einfache Schwellwertoperationen. Das Histogramm des Eingangsbildes wird analysiert und Überschreitungen der Schwellwerte registriert. Komplexere Methoden verwenden keine Schwellwerte, sondern statistische Ansätze. Dabei wird eine statistische Verteilung verwendet, die einen gegebenen Hautfarbencluster repräsentiert. Die Pixel des Eingangsbildes können so, anhand der Berechnung des Abstandes zum Mittelwert der Verteilung, verglichen und klassifiziert werden. Ein Vorteil der statistischen Ansätze ist der, dass die Verteilung sehr einfach um neue Hautfarbenwerte erweitert werden kann. Bei der Detektion des Gesichtes anhand der Hautfarbe kann es vorkommen, dass ein Hintergrundobjekt genau eine Farbe aus dem Cluster besitzt und einen Falschalarm verursacht. 3.2.3 Anwendungsbeispiel Ein Beispiel für eine Merkmalsinvariante Methode stammt von Yow und Cipolla. Sie verwenden den Ansatz der Kantendetektion. In der ersten Stufe ihres Algorithmus verwenden sie als Kantenoperator einen Gaußfilter und dessen Hilbert-Transformation [5]. Diejenigen Punkte, welche als lokale Maxima von dem Gaußfilter erzeugt werden [Bild 15a+b], indizieren die möglichen Positionen von Gesichtzügen. Gesichter mit unterschiedlicher Orientierung und Größe werden anhand einer Menge von verschiedenen Gaußfiltern und deren Hilbert-Transformation detektiert. [Bild 15a] [Bild 15b] Nachdem die Maximapunkte detektiert sind, wird versucht diese zu einem Gesichtskandidaten zu gruppieren. Unter der Annahme, dass sich das Gesicht als eine Fläche mit enthaltenen Geraden 20 (welche die Gesichtszüge repräsentieren) darstellen läßt, können Geometrische Gesetze [Bild 18] über die Anordnung und der Größe der Geraden zur Beschreibung dieser Merkmale verwendet werden. Diese Gesetze bewahren auch ihre Gültigkeit bei unterschiedlicher Skalierung und Orientierung des Gesichtes auf dem Eingangsbild. Die Kanten, welche sich in der nähe der Maximapunkte befinden, werden extrahiert [Bild 16] und miteinander verbunden. Dadurch entstehen Kantengruppen, welche Gesichtszugskandidaten darstellen. Immer 4 dieser Kantengruppen werden zu einer PFG (Partiall Feature Group, [Bild17]) zusammengeschlossen, die dann auf bestimmte geometrischen Eigenschaften [siehe 5] untersucht werden. Die PFG´s repräsentieren ein Modell, welches die möglichen Erscheinungsformen eines Gesichtes unter verschiedenen Aufnahmepositionen beschreibt. Hierdurch wird der Merkmalsinvariante Ansatz des Verfahrens definiert. Da meistens mehr als 4 Maximapunkte gefunden werden, ist diese Methode sehr rechenaufwendig, da alle möglichen Kandidatenkombinationen überprüft werden müssen. [Bild 16] [Bild17] [Bild 18] 21 Das Verfahren wie oben erläutert erzeugt sehr viele Falschalarme. Deswegen werden die in der 2ten Stufe detektierten Kandidaten noch in einem neuronalen Netzwerk untersucht . Dieses Netzwerk wird vorher mit einer Vielzahl von repräsentativen Vektoren trainiert, um so das Klassifikationsergebnis zu verbessern. 3.3 Template Matching Methoden Die Verfahren zur Gesichtsdetektion mit Hilfe des Template Matchings wurde hauptsächlich für Bilder entwickelt, auf denen das Gesicht frontal zu sehen ist. Beim Template Matching wird die Ähnlichkeit zwischen einem Eingangsbild und einem Template berechnet. Ein Template ist eine vorgegebene Maske, die einem Bild oder einem Teil eines Bildes ähnlich ist. Die einfachste Form des Template Matching für die Gesichtererkennung ist es, ein Bild mit einem Template zu vergleichen, welches das ganze Gesicht oder Teile des Gesichts repräsentiert. Für die Detektion eines Gesichts innerhalb eines Bildes wird ein Vergleich mit allen in einer Datenbank gespeicherten Templates durchgeführt. Als Ergebnis erhält man einen Vektor, in dem die Ähnlichkeit der jeweiligen Merkmale enthalten ist. Die Klassifizierung kann beispielsweise über die Summe der Fehlerquadrate oder einem anderen statistischen Verfahren erfolgen. Die Qualität der Ergebnisse beim Template Matching hängt stark von der Qualität der verwendeten Masken ab. Die Masken müssen bei möglichst vielen unterschiedlichen Personen „passen“ und sollten möglichst unabhängig von Helligkeits- oder Kontraständerungen sein. Eine weitere Unzulänglichkeit des Verfahrens besteht in der Tatsache, dass die Methode des TemplateMatching ein großes Problem mit Bildern hat, auf denen sich die Gesichter stark in Größe und Form von den Templates unterscheiden. Abhilfe schaffen hier große Template-Datenbanken, in denen Templates in allen möglichen Größen und Formen gespeichert sind. Ein weiterer Lösungsansatz findet sich in einer aufwendigen Vorbearbeitung des Eingangsbildes. Dabei wird das Eingangsbild anhand von Gaußpyramiden stufenweise verkleinert, um anschließend die erzeugten Kopien mit den Templates zu vergleichen. Beide Methoden sind sehr rechenintensiv und liefern nicht gerade die besten Ergebnisse. Auf normierte frontale Gesichtsaufnahmen angewendet liefert das Verfahren des Template-Matching jedoch hervorragende Resultate. [Bild19] 22 3.4 Appearance-Based Methoden Im Unterschied zu den Template-Matching Methoden, bei denen die Templates von Experten festgelegt werden, entwickeln die Appearance-Based Methoden eigene Templates, welche sie aus Bilder angelernt bekommen. Im allg. beziehen sich diese Templates auf statistische Ansätze und neuronale Netzwerke um die relevanten Klassifikatoren von Bildern mit und ohne Gesichtern zu bestimmen. Meistens wird ein Bild oder ein Teil davon als eine Zufallsvariable x gesehen. Diese Variable ist Charakterisiert durch die klassenabhängigen Verteilungsfunktionen p(x, Gesicht) und p(x, kein Gesicht). Verschieden Klassifikationverfahren können dann angewendet werden um eine Bildregion als Gesicht auszuweisen. Bevor mit der Klassifizierung der Gesichter begonnen werden kann, sind Vorverarbeitungschritte nötig. Die Gesichter der Trainingsmenge werden auf passende Größe und Orientierung normiert und Beleuchtungsunterschiede werden herausgerechnet. Nach dieser Normierung werden die vorhandenen Bilder in einzelne Trainingsmengen unterteilt, abhängig davon, wie das neuronale Netz trainiert werden soll. Beispielsweise könnte eine Menge in Brillenträger und Nicht-Brillenträger unterteilt werden, um das Netz darauf zu trainieren Brillenträger zu erkennen. 3.4.1 Eigengesichter Jedes digitale Bild kann auch als eine Matrix von Helligkeitswerten mit einer Anzahl von Spalten (S) und Zeilen (Z) geschrieben werden. Des weiteren kann jede Matrix auch zu einem Vektor der Dimension S * Z umgeformt werden. Jedes Pixel wird also demnach zu einem Vektorelement. Demnach kann ein Gesicht, das sich in einem Bild befindet, ebenfalls durch einen solchen Vektor repräsentiert werden. Alle Vektoren der Größe B*H bilden den Vektorraum der Bilder, dessen Dimension B*H ist. In diesem Vektorunterraum befindet sich der „Gesichtsraum“ welcher alle möglichen Gesichtsvektoren umfaßt. Da Gesichter immer das gleiche Grundlayout besitzen wird es sich bei diesem Unterraum um einen kompakten Cluster handeln. Aufgrund den Gesetzen der Statistik ist es jedoch nicht möglich, die Grundgesamtheit aller Gesichter in einem Untervektorraum zu bestimmen. Über die genaue Dimension des Gesichtraums kann keine genaue Aussage gemacht werden, sie muß aber kleiner sein als die Dimension B*H des ursprünglichen Vektorraums, da für die Darstellung eines Gesichts nicht alle Pixel eines Bildes benötigt werden. Das Bestreben der Eigenface-Methode ist es diesen Gesichtsraum möglichst genau zu nachzubilden. Dieses Unterfangen wird mit Hilfe einer Trainingsmenge von Gesichtsbildern realisiert. Die Trainingsmenge spannt nun einen Gesichtsraum auf, der am besten über seine Basisvektoren ( principal components ) beschrieben wird. Um typische Gesichter also besser beschreiben zu können, benützt man die PCA (Principal Component Analysis). Bei der PCA werden die Eigenvektoren (= principal components) der Kovarianzmatrix berechnet und die Originaldaten, sprich Originalgesichter, durch Linearkombination dieser Eigenvektoren wieder angenähert. Weil diese Vektoren fast wie Gesichter aussehen, werden sie auch Eigengesichter genannt. 23 Berechnung der Eigengesichter: Aus einer gegebenen Trainingsmenge von Bilder Gi auf denen ein Gesicht vorhanden ist, wird ein Durchschnittsgesicht berechnet: Anschließend wird für jedes Trainingsbild der Abstand zum Durchschnittsgesicht berechnet was zu einem neuen Vektor führt: Anhand der gerade berechneten Vektoren kann die Kovarianzmatrix C erstellt werden aus der in den nachfolgenden Schritten die Eigengesichter berechnet werden. wobei Die orthogonalen Eigenvektoren dieser symmetrischen Matrix sind die gesuchten principal components, also die Basisvektoren des gesuchten Gesichtsvektorraums. Zur Berechnung der Eigenvektoren der Covarianzmatrix, muß diese diagonalisiert werden, was aufgrund der hohen Dimension der Matrix (Beispielsweise 262 1442 bei Gesichtern der Größe 512 * 512) sehr aufwendig ist. Die Diagonalisierung der Matrix soll jedoch in diesem Rahmen nicht betrachtet werden. XE ist die Matrix, in der die Eigenvektoren E1 bis EN enthalten sind. 24 [Bild 20 Durchschnittsgesicht (links oben) mit Eigengesichtern] 3.5 Klassifizierung der einzelnen Methoden Die Güte der verschiedenen Detektionstechniken wird festgelegt durch verschiedene Parameter. Lernzeit (Neuronale Netze) Ausführgeschwindigkeit Trainingsmenge (Neuronale Netze) Verhältnis von Detektion und Falschdetektion Falschdetektionen Die Falschdetektion kann in 2 Klassen unterteilt werden Falsch negativ: Ein Gesicht ist im Bild enthalten und wurde nicht erkannt Falsch positiv: Eine Struktur wurde fälschlicherweise als Gesicht erkannt Verwendete Testdatenbank Zur fairen Bewertung der einzelnen Detektionsmethoden ist es wichtig, diese mit einer standardisierten Menge von Bildern zu testen. Obwohl sehr viele Gesichtsdetektionsmethoden in den letzten Jahre entwickelt wurden, konnten nur sehr wenige davon mit den gleichen Testbildern bewertet werden. Tabelle 1 faßt die gesammelten Testergebnisse unterschiedlicher ApperanceBased Methoden zusammen. Alle Methoden wurden mit den gleichen Bildern aus einer repräsentativen Bilddatenbank getestet. Aus der Tabelle ist nicht ersichtlich mit welchen Problemen die einzelnen Methoden gut bzw. weniger gut zurecht kamen. Desweiteren hat die Zahl und Art der verwendeten Trainingsbilder einen direkten Einfluß auf die Klassifikationbewertung der Apperance-Based Methoden. 25 [Tabelle 1] 26 [1] Peter Haberäcker Praxis der Digitalen Bildverarbeitung und Mustererkennung 1995 Hanser Verlag München [2] Hartmut Ernst Einführung in die digitale Bildverarbeitung 1991 Franzis Verlag GmbH München [3] Yang, Kriegman, Ahuja Detecting Faces in Images: A Survey IEEE Transactions on Pattern Analysis and Machine Intelligence, vol24, no 1,pp.34-58, January 2002 [4] Erik Hjelmas Face Detection: A Survey Computer Vision and Image Understanding 83, 236–274 (2001) [5] Yow, Cipolla Finding Initial Estimates of Human Face Location 1995 [6] Turk, Pentland Face Recognition uses Eigenfaces Vision and Modelling Group, The Media Laboratory, MIT [7] Markus Hoffmann Grundsätzliche Untersuchung von Bildverarbeitungsalgorithmen zur Gesichtererkennung [8] Norbert Link Grundlagen der Bildauswertung Fh-Karlsruhe 2002 27