23.12.2014 Aufrufe

Erkennung von Personen anhand ihrer Kleidung und die ...

Erkennung von Personen anhand ihrer Kleidung und die ...

Erkennung von Personen anhand ihrer Kleidung und die ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Erkennung</strong> <strong>von</strong> <strong>Personen</strong> <strong>anhand</strong> <strong>ihrer</strong><br />

<strong>Kleidung</strong> <strong>und</strong> <strong>die</strong> Anwendung auf dem<br />

Roboter BIRON<br />

Bachelorarbeit im Stu<strong>die</strong>ngang Naturwissenschaftliche Informatik<br />

Vorgelegt <strong>von</strong>:<br />

Anton Helwart<br />

Geboren am 21.03.1983 in Armawir (Russland)<br />

Angefertigt in der<br />

Arbeitsgruppe für Angewandte Informatik<br />

Technische Fakultät<br />

Universität Bielefeld<br />

Betreuer: M.Sc. CompSc. Fang Yuan, Dipl. Inform. Lang Christian


Erklärung<br />

Hiermit erkläre ich, Anton Helwart, dass ich <strong>die</strong> vorliegende Bachelorarbeit selbstständig<br />

angefertigt <strong>und</strong> nur <strong>die</strong> angegebenen Quellen <strong>und</strong> Hilfsmittel verwendet habe.<br />

Zitate sind als solche gekennzeichnet.<br />

Bielefeld, den 28.10.2008<br />

Anton Helwart<br />

2


Zusammenfassung<br />

In <strong>die</strong>ser Arbeit wird eine Software zur <strong>Erkennung</strong> <strong>von</strong> <strong>Personen</strong> <strong>anhand</strong> <strong>ihrer</strong> <strong>Kleidung</strong><br />

beschrieben. Dabei werden Farbhistogramme <strong>und</strong> Local Binary Patterns zur Merkmalsextraktion<br />

verwendet. Die Software wurde mit dem Ziel entwickelt, sie einmal<br />

auf Biron, einem an der Universität Bielefeld entwickelten Roboter einzusetzen. Als<br />

Werkzeuge werden IceWing sowie BAM <strong>und</strong> caiwicat eingesetzt.


Inhaltsverzeichnis<br />

1 Aufgabenstellung der Bachelorarbeit 3<br />

1.1 Following-Verhalten . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.2 Mögliche Probleme . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

1.3 Wiedererkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4<br />

2 Werzeuge <strong>und</strong> Plattformen 6<br />

2.1 IceWing - A graphical plugin shell . . . . . . . . . . . . . . . . . . . 6<br />

2.2 Biron - The Bielefeld Robot Companion . . . . . . . . . . . . . . . . 7<br />

2.3 BAM <strong>und</strong> caiwicat . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

2.3.1 BAM - Bielefeld Active Appearance Models . . . . . . . . . 8<br />

2.3.2 caiwicat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9<br />

3 Theoretische Gr<strong>und</strong>lagen 10<br />

3.1 Farbhistogramme . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

3.2 Local Binary Patterns . . . . . . . . . . . . . . . . . . . . . . . . . . 11<br />

4 Implementation 13<br />

4.1 Schematische Darstellung . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

4.2 Plugins . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4.2.1 Grabbing Plugin . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4.2.2 Encara Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . 14<br />

4.2.3 Encara Stable Detect Plugin . . . . . . . . . . . . . . . . . . 15<br />

4.2.4 aam4iw_init Plugin <strong>und</strong> aam4iw_fit Plugin . . . . . . . . . . 15<br />

4.2.5 caiwicat-classify Plugin . . . . . . . . . . . . . . . . . . . . 15<br />

4.2.6 caiwicat-majority-vote Plugin . . . . . . . . . . . . . . . . . 17<br />

4.2.7 Shirt Plugin . . . . . . . . . . . . . . . . . . . . . . . . . . . 17<br />

4.2.8 Adapter Plugin . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

5 Evaluation 20<br />

5.1 Testszenario . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.2 Testergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20<br />

5.2.1 Serie 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21<br />

5.2.2 Serie 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

6 Fazit <strong>und</strong> Ausblick 24<br />

2


Kapitel 1<br />

Aufgabenstellung der<br />

Bachelorarbeit<br />

1.1 Following-Verhalten<br />

Der Roboter Biron (siehe Abschnitt 2.2) soll künftig als Haushaltsroboter eingesetzt<br />

werden. Daher muss er mit den <strong>Personen</strong> in seiner Umgebung interagieren können.<br />

So soll er <strong>die</strong> Fähigkeit haben, Kommandos <strong>von</strong> einem Gesprächspartner entgegenzunehmen<br />

<strong>und</strong> <strong>die</strong>sem durch eine Wohnung zu folgen. Für <strong>die</strong>ses Szenario wird ein<br />

Following Verhalten für Biron entwickelt. [15] Dieses basiert auf einem Multimodalen<br />

Person Tracking System [10] <strong>und</strong> soll wie folgt ablaufen:<br />

• Zuerst wird Biron <strong>von</strong> einer Person angesprochen.<br />

• Diese Person wird <strong>von</strong> Biron, unter Verwendung <strong>von</strong> Daten der schwenkbaren<br />

Kamera, des Stereo-Mikrofons <strong>und</strong> des Laser-Abstandsmessers (siehe Anschnitt<br />

2.2), als Interaction-Partner ausgewählt.<br />

• Im Laufe des Gespräches bekommt Biron das follow me-Kommando.<br />

• Dann entfernt sich <strong>die</strong> Person <strong>von</strong> Biron <strong>und</strong> <strong>die</strong>ser soll ihr in kurzer Entfernung<br />

durch eine Wohnung folgen.<br />

Das following wird mit Hilfe des Laser-Abstandsmessers realisiert. Dieser erfasst das<br />

Beinpaar des Interaction-Partners <strong>und</strong> Biron folgt <strong>die</strong>sem.<br />

1.2 Mögliche Probleme<br />

Bei dem anfangs beschriebenen Wohnungsszenario kann es bei zu Fehlern kommen.<br />

Wird das Beinpaar der verfolgten Person durch ein Hindernis, z.B. ein Möbelstück,<br />

verdeckt oder wird der Abstand zwischen der verfolgten Person <strong>und</strong> Biron zu groß,<br />

verliert Biron das Beinpaar, <strong>und</strong> es muss erst wiedergef<strong>und</strong>en werden, damit er der<br />

Person weiterhin folgen kann. Ein schwerwiegenderes Problem tritt dann auf, wenn<br />

<strong>die</strong> <strong>von</strong> Biron verfolgte Person z.B. durch eine Tür in einen neuen Raum eintritt <strong>und</strong> so<br />

aus Birons Blickfeld verschwindet. Jetzt kann es passieren, dass sich in dem neuen<br />

Raum mehrere <strong>Personen</strong> aufhalten. Biron kann so nicht mehr eindeutig feststellen,<br />

3


welcher Person er folgen soll, da mehrere Beinpaare, <strong>und</strong> damit mehrere mögliche<br />

Interaktionspartner, gef<strong>und</strong>en werden.<br />

1.3 Wiedererkennung<br />

Tritt der in Abschnitt 1.2 beschriebene Fall auf, dass Biron mehrere mögliche Interaktionspartner<br />

findet, muss eine <strong>Personen</strong>erkennung durchgeführt werden. Ein möglicher<br />

Ansatz ist es, <strong>die</strong> gesuchte Person <strong>anhand</strong> ihres Gesichtes zu erkennen. Da Biron als<br />

Haushaltsroboter konzipiert ist, kommt es dabei zu einigen Erschwernissen. So ist der<br />

Winkel, aus dem das Gesicht der zu erkennenden Person betrachtet wird, nicht immer<br />

gleich. Auch <strong>die</strong> Lichtverhältnisse sind in den verschiedenen Räumen einer Wohnung<br />

oft sehr unterschiedlich. Das führt dazu, dass eine Gesichtserkennung oft nicht zuverlässig<br />

funktioniert[9].<br />

Abbildung 1.1: <strong>Kleidung</strong> bietet oft viele Unterscheidungsmerkmale<br />

Eine weitere Möglichkeit ist es, <strong>die</strong> gesuchte Person <strong>anhand</strong> <strong>ihrer</strong> <strong>Kleidung</strong> zu erkennen.<br />

Anders als ein Gesicht ändert sich <strong>die</strong> <strong>Kleidung</strong> einer Person relativ häufig. Innerhalb<br />

eines Ablaufes des oben beschriebenen following Verhaltens kann aber da<strong>von</strong> ausgegangen<br />

werden, dass <strong>die</strong> <strong>Kleidung</strong> einer verfolgten Person gleich bleibt. Die <strong>Erkennung</strong><br />

einer Person <strong>anhand</strong> <strong>ihrer</strong> <strong>Kleidung</strong> hat gegenüber der Gesichtserkennung einige<br />

Vorteile:<br />

• Anders als bei Gesichtern, unterscheiden sich <strong>die</strong> Farben verschiedener <strong>Kleidung</strong>sstücke<br />

oft stark <strong>von</strong>einander <strong>und</strong> lassen sich daher als <strong>Erkennung</strong>smerkmal<br />

benutzen.<br />

• Oft sind <strong>Kleidung</strong>sstücke mit verschiedenen Motiven oder Mustern verziert.<br />

Auch <strong>die</strong>se lassen sich als <strong>Erkennung</strong>smerkmal verwenden.<br />

• Es kommt selten vor, dass zwei <strong>Personen</strong> in einem Haushalt <strong>die</strong> gleiche <strong>Kleidung</strong><br />

tragen. Tritt <strong>die</strong>ser Fall dennoch ein, kann eine <strong>Erkennung</strong> <strong>anhand</strong> der <strong>Kleidung</strong><br />

4


nicht durchgeführt werden <strong>und</strong> es muss eine Gesichtserkennung angewandt werden.<br />

Im Rahmen <strong>die</strong>ser Bachelorarbeit wird eine Software entwickelt, <strong>die</strong> eine Gesichtserkennung<br />

mit einer <strong>Erkennung</strong> <strong>von</strong> <strong>Kleidung</strong> kombiniert, um das in Abschnitt 1.2<br />

beschriebene Problem zu lösen. Für <strong>die</strong> Gesichtserkennung werden <strong>die</strong> in Abschnitt<br />

2.3 vorgestellten Werkzeuge verwendet.<br />

5


Kapitel 2<br />

Werzeuge <strong>und</strong> Plattformen<br />

Bei der vorliegenden Bachelorarbeit wurden verschiedene Plattformen <strong>und</strong> Werkzeuge<br />

verwendet. Diese werden im Folgenden kurz vorgestellt.<br />

2.1 IceWing - A graphical plugin shell<br />

Abbildung 2.1: Ein Beispiel für einen Programmablauf in IceWing (Quelle: [8])<br />

Der Name IceWing ist ein Akronym <strong>und</strong> steht für Integrated Communication Environment<br />

Which Is Not Gesten. Dabei ist Gesten der Name eines Vorgängerprogrammes<br />

<strong>von</strong> IceWing. Es ist ein freie, an der Universität Bielefeld entwickelte Software, <strong>die</strong><br />

hauptsächlich, aber nicht ausschließlich, für <strong>die</strong> digitale Bildverarbeitung verwendet<br />

wird. IceWing stellt eine Umgebung zur Entwicklung <strong>und</strong> Verwendung <strong>von</strong> Plugins<br />

bereit. Diese sind als dynamische Bibliotheken realisiert <strong>und</strong> können daher zur<br />

Laufzeit geladen werden. Sie werden in C oder C++ geschrieben, <strong>und</strong> es stehen Anbindungen<br />

für Python <strong>und</strong> Matlab zur Verfügung. Die Plugins können untereinander<br />

Daten austauschen <strong>und</strong> auch anderweitig miteinander interagieren, z.B. durch Funktionsaufrufe.<br />

Zum Austausch <strong>von</strong> Daten in IceWing wird häufig das XML Format<br />

benutzt. Dazu kann z.B. <strong>die</strong> XMLTIO Bibliothek 1 verwendet werden. Des Weiteren<br />

stellt IceWing eine GUI bereit. Damit lässt sich der Status laufender Plugins verfolgen,<br />

<strong>und</strong> es lassen sich Parameter <strong>und</strong> Optionen während des Betriebes einstellen. Ein<br />

1 http://xcf.sourceforge.net/api/xmltio/<br />

6


wichtiges IceWing Plugin ist das Grabbing Plugin. Dieses kann Bilddaten aus verschiedenen<br />

Bild- <strong>und</strong> Videoformaten, sowie verschiedener Hardware, wie z.B. V4L2-<br />

<strong>und</strong> FireWire-Kameras, auslesen. [11] [8] [7]<br />

2.2 Biron - The Bielefeld Robot Companion<br />

Abbildung 2.2: Biron - The Bielefeld Robot Companion (Quelle: [3])<br />

Biron, der Bielefeld Robot Companion, ist ein mobiler Roboter. Er wird mit dem<br />

Ziel entwickelt künftig als Haushaltsroboter eingesetzt zu werden. Daher werden<br />

mit Biron verschiedene Szenarien erprobt, <strong>die</strong> in einem solchen Umfeld typisch<br />

sind. So soll er z.B. einem Menschen, unter Beachtung des räumlichen Kontextes,<br />

durch eine Wohnung folgen <strong>und</strong> dabei eine neue Umgebung wahrnehmen können.<br />

Zu <strong>die</strong>sem Zweck sind bei Biron zwei Kameras verbaut. Eine schwenkbare Kamera,<br />

<strong>die</strong> es Biron ermöglicht, <strong>Personen</strong> <strong>und</strong> deren Gesichter in seinem Blickfeld zu<br />

behalten, <strong>und</strong> eine Kamera speziell für <strong>die</strong> <strong>Erkennung</strong> <strong>von</strong> Gesten. Des Weiteren<br />

sind Stereo-Mikrofone <strong>und</strong> Stereo-Lautsprecher verbaut. Diese ermöglichen es Biron<br />

über Sprache mit seinen Interaktionspartnern zu kommunizieren. Außerdem ist ein<br />

Laser-Abstandsmesser eingebaut. Damit hat Biron <strong>die</strong> Möglichkeit, Beinpaare in seiner<br />

Umgebung zu erkennen <strong>und</strong> Hindernisse zu vermeiden. Zur Steuerung <strong>von</strong> Biron <strong>die</strong>nen<br />

zwei Laptops, <strong>die</strong> über WLAN mit einem lokalen Netz verb<strong>und</strong>en sind. [3][4][9]<br />

7


2.3 BAM <strong>und</strong> caiwicat<br />

2.3.1 BAM - Bielefeld Active Appearance Models<br />

Abbildung 2.3: Active Appearance Models (Quelle: [1])<br />

Bei BAM handelt es sich um eine <strong>von</strong> Christian Lang, im Rahmen seiner Diplomarbeit,<br />

entwickelte Software, <strong>die</strong> das Verfahren der Active Appearance Models unter Verwendung<br />

der RAVL Bibliothek 2 unter IceWing bereitstellt <strong>und</strong> zur Gesichtserkennung benutzt.<br />

Das Verfahren der Active Appearance Models kann wie folgt zusammengefasst<br />

werden:<br />

• Zuerst werden aus Trainingsbeispielen eine mittlere Form des Gesichtes, sowie,<br />

unter Verwendung der Principal Component Analysis, <strong>die</strong> Hauptkomponenten<br />

des Formmodells ermittelt. Auf gleiche Weise erhält man ein Texturmodell.<br />

• Die mittlere Form bzw. Textur lässt sich durch Variation der Hauptkomponenten<br />

des Form- bzw. Texturmodells verändern.<br />

• Zur Klassifikation eines Gesichtes wird nach einer Initialisierung (z.B. Gesichtsdetektion<br />

<strong>und</strong> Platzierung der mittleren Form) ein iterativer Suchalgorithmus<br />

ausgeführt. Dieser versucht das gegebene Gesicht möglichst gut, durch Anpassung<br />

der Gewichte der Hauptkomponenten des Form- bzw. Texturmodells,<br />

darzustellen. Als Ergebnis erhält man aus den gewählten Gewichten einen Vektor<br />

.<br />

• Die so gewonnenen Parameter lassen sich als Merkmalsvektor für eine Klassifikation<br />

verwenden.<br />

BAM ist in C++ geschrieben <strong>und</strong> in Form <strong>von</strong> mehreren IceWing Plugins <strong>und</strong><br />

Kommandozeilen-Tools realisiert. [9][1][2]<br />

2 http://ravl.sourceforge.net/<br />

8


2.3.2 caiwicat - Classification and identification with instant class<br />

addition tool<br />

Wie BAM wurde auch caiwicat <strong>von</strong> Christian Lang, im Rahmen seiner Diplomarbeit,<br />

entwickelt. Es besteht ebenfalls aus mehreren IceWing Plugins <strong>und</strong> Konsolen-<br />

Tools. Mit caiwicat lassen sich durch Merkmalsvektoren repräsentierte Objekte klassifizieren.<br />

Es wurden bereits mehrere Klassifikatoren, wie Support Vektor Maschinen<br />

oder Nächster-Nachbar, implementiert <strong>und</strong> caiwicat lässt sich um zusätzliche Klassifikatoren<br />

erweitern. [9]<br />

9


Kapitel 3<br />

Theoretische Gr<strong>und</strong>lagen<br />

Im Rahmen <strong>die</strong>ser Bachelorarbeit sollen <strong>Kleidung</strong>sstücke mit Hilfe <strong>von</strong> numerischen<br />

Klassifikatoren klassifiziert werden. Damit <strong>die</strong>s möglich ist, muss ein <strong>von</strong> einer Kamera<br />

aufgenommenes <strong>und</strong> digitalisiertes Bild f(x) mit Hilfe einer Transformation T r zu<br />

einem Merkmalsvektor c ∈ R n transformiert werden.<br />

c = T r (f(x)) (3.1)<br />

Das Ziel der Transformation T r ist es, <strong>die</strong> Dimension des Merkmalsvektors gegenüber<br />

der Dimension des Bildes f(x) zu reduzieren <strong>und</strong> Merkmale zu finden, welche <strong>die</strong><br />

zu klassifizierenden Klassen, in <strong>die</strong>sem Fall verschiedene <strong>Kleidung</strong>sstücke, gut unterscheidbar<br />

machen. Im Folgenden werden <strong>die</strong> Ansätze für zwei, bei <strong>die</strong>ser Bachelorarbeit<br />

eingesetzten, Transformationen T r beschrieben. [6] [14]<br />

3.1 Farbhistogramme<br />

Eine Möglichkeit einer solchen Transformation T r ist <strong>die</strong> Berechnung des Farbhistogrammes<br />

eines Bildes.<br />

Wird ein Bild durch eine (m × n) Matrix M = (m ij ) dargestellt, wobei der<br />

Eintrag (m ij ) dem Farbwert des Pixels an der Stelle (i, j) im Bild entspricht, <strong>und</strong><br />

hat <strong>die</strong>ses eine Farbtiefe <strong>von</strong> n, so lässt sich der Merkmalsvektor c ∈ N n wie im<br />

Algorithmus 1 als Pseudocode dargestellt, berechnen.<br />

Input : Matrix M<br />

Output : Vektor c<br />

Setze den Wert aller Einträge <strong>von</strong> c auf 0 ;<br />

foreach Pixel in M do<br />

fw ← Farbwert des Pixels ;<br />

Erhöhe den Wert des fw-ten Eintrages <strong>von</strong> c um 1 ;<br />

Algorithmus 1 : Berechnung eines Histogrammes<br />

Bei Farbbildern, <strong>die</strong> meist durch Farbräume mit drei Kanälen dargestellt werden (z.B.<br />

RGB, YUV), bestimmt man <strong>die</strong> Histogramme einzeln für jeden Farbkanal <strong>und</strong> setzt<br />

10


<strong>die</strong>se durch Hintereinanderschreiben zu einem Histogramm zusammen, so dass man<br />

letztlich einen Merkmalsvektor c ∈ N (3·n) erhält.<br />

Möchte man <strong>die</strong> Dimension des Merkmalsvektors c weiter reduzieren, zählt man beim<br />

Erstellen des Histogrammes nicht das Auftreten jedes einzelnen Farbwertes, sondern<br />

fast mehrere nebeneinander liegende Farbwerte zu größeren Bereichen zusammen <strong>und</strong><br />

zählt wie viele Pixel mit Farbwerten aus den einzelnen Bereichen auftreten.<br />

3.2 Local Binary Patterns<br />

Eine weitere Möglichkeit für <strong>die</strong> Transformation T r stellen <strong>die</strong> Local Binary Patterns<br />

in Verbindung mit den im vorigen Abschnitt beschriebenen Histogrammen dar. Local<br />

Binary Patterns repräsentieren <strong>die</strong> lokale Struktur eines Bildes <strong>und</strong> sind invariant<br />

gegen monotone Veränderungen der Helligkeit [13]. Daher ist zu vermuten, dass sich<br />

damit gut zu klassifizierende Merkmale aus Bildern <strong>von</strong> <strong>Kleidung</strong>sstücken extrahieren<br />

lassen. Sie wurden erstmalig 1993 <strong>von</strong> Harwood et al. erwähnt <strong>und</strong> 1996 <strong>von</strong> Ojala et<br />

al. eingeführt [12]. Local Binary Patterns wurden bereits bei der Gesichtserkennung<br />

erfolgreich angewandt. [13]<br />

Die original Local Binary Patterns, eingeführt <strong>von</strong> Ojala et al., lassen sich wie<br />

folgt beschreiben (siehe Abbildung 3.1). Einem Pixel eines Grauwertbildes (außer<br />

Randbereiche) wird ein neuer 8-Bit Wert zugewiesen. Dieser wird aus den 8<br />

Nachbarpixeln des betrachteten Pixels nach der Formel 3.2 berechnet:<br />

LBP (p) =<br />

7∑<br />

s(i n − i c ) · 2 n (3.2)<br />

n=0<br />

Dabei ist p der betrachtete Pixel, i C ist der Grauwert des Pixels, i n sind <strong>die</strong> Grauwerte<br />

der benachbarten Pixel (angefangen links oberhalb <strong>von</strong> p <strong>und</strong> dann im Uhrzeigersinn<br />

fortlaufend). Die Funktion s(x) ist hier wie folgt definiert:<br />

{<br />

1 wenn x ≥ 0<br />

s(x) =<br />

(3.3)<br />

0 wenn x < 0<br />

Abbildung 3.1: Beispiel zur LPB Berechnung<br />

11


Bei dem in Abbildung 3.1 gezeigten Beispiel bekommt das betrachtete Pixel den Binärwert<br />

00001111, was dem Dezimalwert 15 entspricht. Führt man <strong>die</strong>se Operation für alle<br />

Pixel eines Bildes aus, erhält man eine neue Darstellung des Bildes (siehe Abbildung<br />

3.2). Mit Hilfe der im Abschnitt 3.1 vorgestellten Histogramme lässt sich daraus ein<br />

Merkmalsvektor c berechnen.<br />

Abbildung 3.2: Darstellung eines LBP-Bildes<br />

Im Rahmen <strong>die</strong>ser Bachelorarbeit wurde eine erweiterte Form der Local Binary Patterns<br />

verwendet. Dabei kann man festlegen, wie groß der Abstand d nachb zwischen<br />

den Pixeln in der Nachbarschaft des betrachteten Pixels ist (siehe Abbildung 3.3).<br />

Abbildung 3.3: Verwendete Nachbarschaft bei entsprechendem Abstand d<br />

Es wurde festgestellt, dass <strong>die</strong> meiste Information über <strong>die</strong> Struktur eines Bildes in einer<br />

Teilmenge aller 256 möglichen Local Binary Patterns liegt. Diese Teilmenge stellt<br />

geometrische Strukturen, wie Linien, Kanten <strong>und</strong> Ecken, dar <strong>und</strong> enthält nur Local<br />

Binary Patterns, bei denen sich der Bitwert in der Binärdarstellung höchstens 2 mal<br />

ändert. Dazu gehören z.B. 00000000, 11100111, 00001111 <strong>und</strong> 11111111. Insgesamt<br />

hat <strong>die</strong> Teilmenge 58 Elemente. Werte, wie 10011001 <strong>und</strong> 00000101, gehören nicht<br />

zu der Teilmenge. [13] Um <strong>die</strong> Dimension des Merkmalsvektors c zu verringern, <strong>und</strong><br />

damit <strong>die</strong> Klassifikation schneller zu machen, werden bei der Erstellung des, den Merkmalsvektor<br />

darstellenden, Histogrammes nur Local Binary Patterns aus <strong>die</strong>ser Teilmenge<br />

gezählt. Die Übrigen werden verworfen.<br />

12


Kapitel 4<br />

Implementation<br />

4.1 Schematische Darstellung<br />

Das in Abschnitt 1.3 beschriebene Verhalten wird mit Hilfe <strong>von</strong> mehreren IceWing<br />

Plugins (siehe Abschnitt 2.1) realisiert. Der Datenfluss zwischen den einzelnen Plugins<br />

wird in Abbildung 4.1 schematisch dargestellt.<br />

Abbildung 4.1: Datenfluss zwischen den Plugins<br />

13


4.2 Plugins<br />

In <strong>die</strong>sem Abschnitt werden <strong>die</strong> verwendeten Plugins beschrieben. Dabei wurden das<br />

Adapter Plugin (Abschnitt 4.2.8), das Shirt Plugin (Abschnitt 4.2.7), sowie ein Klassifikator<br />

für das caiwicat-classify Plugin (Abschnitt 4.2.5) im Rahmen <strong>die</strong>ser Bachelorarbeit<br />

implementiert.<br />

4.2.1 Grabbing Plugin<br />

Das Grapping Plugin verarbeitet Video- <strong>und</strong> Bilddateien, sowie Daten <strong>von</strong> verschiedener<br />

Hardware, wie z.B. USB <strong>und</strong> FireWire Kameras, <strong>und</strong> stellt <strong>die</strong>se zur Weiterverarbeitung<br />

in IceWing bereit.<br />

4.2.2 Encara Plugin<br />

Das Encara Plugin basiert auf Encara2 1 <strong>und</strong> wird zur <strong>Erkennung</strong> <strong>von</strong> Gesichtern in<br />

den vom Grabbin Plugin gelieferten Videodaten benutzt. Werden vom Plugin eines<br />

oder mehrere Gesichter erkannt, stellt es eine XML-Datenstruktur bereit (Siehe Listing<br />

4.2) Darin werden <strong>die</strong> Positionen des Gesichtes, der Augen, der Nase <strong>und</strong> des M<strong>und</strong>es<br />

aller erkannten Gesichter angegeben.<br />

<br />

<br />

<br />

<br />

<br />

< / REGION><br />

<br />

<br />

<br />

< / EYES><br />

<br />

<br />

<br />

<br />

< / REGION><br />

< /MOUTH><br />

<br />

< / FACE><br />

< / FACES><br />

Listing 4.1: Beispiel für eine XML-Datenstruktur des Encara Plugins<br />

1 doi:10.1016/j.jvcir.2006.11.004<br />

14


Abbildung 4.2: Ein vom Encara Plugin erkanntes Gesicht<br />

4.2.3 Encara Stable Detect Plugin<br />

Das Encara Stable Detect Plugin <strong>die</strong>nt dazu, aus den vom Encara Plugin gelieferten<br />

Daten, <strong>die</strong>jenigen Objekte heraus zu filtern, <strong>die</strong> vom Encara Plugin nur kurzzeitig<br />

als Gesicht eingestuft werden. Dadurch soll vermieden werden, dass fälschlicherweise<br />

als Gesicht eingestufte Objekte <strong>die</strong> Verarbeitung der Daten durch <strong>die</strong> anderen Plugins<br />

beeinträchtigen. Des Weiteren fügt das Encara Stable Detect Plugin allen anderen,<br />

nicht herausgefilterten <strong>und</strong> damit als Gesicht eingestuften Daten, eine für jedes Gesicht<br />

eindeutige stable-id hinzu.<br />

4.2.4 aam4iw_init Plugin <strong>und</strong> aam4iw_fit Plugin<br />

Die beiden Plugins aam4iw_init <strong>und</strong> aam4iw_fit führen bei den erkannten Gesichtern<br />

eine Merkmalsextraktion, unter Verwendung der Active Appearance Models (siehe<br />

Abschnitt 2.3.1), druch. Dabei <strong>die</strong>nt das aam4iw_init Plugin zur Initialisierung der<br />

Appearance-Parameter der erkannten Gesichter. Diese werden vom, im aam4iw_fit<br />

Plugin implementierten, Active Appearance Models Suchalgorithmus verwendet.[9]<br />

Das aam4iw_fit Plugin trägt als Ergebnis einen Merkmalsvektor in <strong>die</strong> Gesichtsdaten<br />

des Encara Plugins ein.<br />

4.2.5 caiwicat-classify Plugin<br />

Das caiwicat-classify Plugin wird zur Klassifikation <strong>von</strong> Merkmalsvektoren verwendet.<br />

[9] Wird bei der Eingabe eines Merkmalsvektors, in Form <strong>von</strong> XML Daten,<br />

eine Klassen ID mit übergeben, trainiert das Plugin einen Klassifikator. Ist in den<br />

übergebenen XML Daten keine Klassen ID eingetragen, wird der Merkmalsvektor<br />

vom Plugin klassifiziert. Das aam4iw_fit Plugin kann Kommandos <strong>von</strong> anderen<br />

IceWing Plugins in Form <strong>von</strong> XML Daten entgegennehmen. Gegebenenfalls gibt<br />

es <strong>die</strong> Antwort ebenfalls in Form <strong>von</strong> XML Daten zurück. Diese Feature wird vom<br />

Adapter Plugin benutzt, um alle, dem caiwicat-classify Plugin bekannten Klassen, zu<br />

erhalten (siehe Abschnitt 4.2.8).<br />

Im Rahmen <strong>die</strong>ser Bachelorarbeit wurden <strong>die</strong> folgenden Klassifikatoren benutzt.<br />

Gesichtserkennung<br />

Für <strong>die</strong> Gesichtserkennung wurde eine Kombination aus Nächsten Nachbar Klassifikator<br />

<strong>und</strong> Support Vektor Maschinen verwendet. Die Funktionsweise <strong>die</strong>ser Klassifikatoren<br />

wird u.a. in [6] <strong>und</strong> [14] beschrieben.<br />

15


Shirterkennung<br />

Für das Erkennen <strong>von</strong> <strong>Kleidung</strong>sstücken, im Folgenden als Shirterkennung bezeichnet,<br />

wurden zwei verschiedene Klassifikatoren verwendet.<br />

Der erste Klassifikator benutzt zum Klassifizieren für jede Klasse k einen mittleren,<br />

<strong>die</strong> Klasse im Merkmalsraum repräsentierenden Vektor x k n. Soll der Klassifikator<br />

trainiert werden, wird x k n mit jedem neuen Trainingsvektor x k wie folgt angepasst,<br />

wobei n <strong>die</strong> Anzahl der verwendeten Trainingsvektoren ist:<br />

Für n = 1<br />

Für n > 1<br />

x k 1 = x k<br />

x k n = (1 − 1 n ) · xk n−1 + 1 n · xk (4.1)<br />

Zur Klassifikation eines Merkmalsvektors wird <strong>die</strong> euklidische Distanz d k zwischen<br />

dem Merkmalsvektor x <strong>und</strong> allen Vektoren x k n berechnet. Der Merkmalsvektor x wird<br />

dann zu der Klasse k, <strong>die</strong> das kleinste d k liefert, zugeordnet. Ist <strong>die</strong>se Distanz jedoch<br />

größer als ein vorher festgelegter Schwellwert d max , wird der Merkmalsvektor x<br />

zurückgewiesen.<br />

Der zweite, <strong>von</strong> Christian Lang implementierte, Klassifikator ist ein Nächste<br />

Nachbar Klassifikator, der als Distanzmaß ein in [5] vorgestelltes Verfahren verwendet.<br />

Dieses berechnet wie viele Schritte nötig sind, um ein Histogramm, durch<br />

Verschieben <strong>von</strong> Elementen aus einem Balken in einen seiner beiden benachbarten<br />

Balken, in ein anderes Histogramm zu überführen. Die Anzahl der benötigten Schritte<br />

ist <strong>die</strong> Distanz d zwischen den beiden betrachteten Histogrammen. Ein Beispiel wird<br />

in Abbildung 4.3 dargestellt.<br />

Abbildung 4.3: Ermittlung der Distanz zweier Histogramme, Distanz = 4<br />

Die Berechnung <strong>die</strong>ser Distanz kann in Pseudocode, wie in Algorithmus 2 dargestellt,<br />

beschrieben werden. Dabei ist b <strong>die</strong> Dimension der betrachteten Histogramme<br />

A <strong>und</strong> B, <strong>und</strong> A[i] bzw. B[i] sind <strong>die</strong> einzelnen Einträge der Histogramme.<br />

16


Input : Histogramm A<br />

Input : Histogramm B<br />

Input : Dimension b<br />

Output : Distanz d<br />

summe ← 0;<br />

d ← 0 ;<br />

for i ← 0 to b − 1 do<br />

summe ← summe + (A[i] − B[i]) ;<br />

d ← d + (Betrag <strong>von</strong> summe);<br />

Algorithmus 2 : Berechnung der Distanz zwischen zwei Histogrammen<br />

4.2.6 caiwicat-majority-vote Plugin<br />

Das caiwicat-majority-vote Plugin sammelt <strong>die</strong> Ergebnisse mehrerer Durchläufe des<br />

caiwicat-classify Plugins <strong>und</strong> gibt <strong>die</strong> Klasse, welche <strong>von</strong> <strong>die</strong>sem am häufigsten erkannt<br />

wurde, als Ergebnis der Klassifikation aus.<br />

4.2.7 Shirt Plugin<br />

Das Shirt Plugin wird zur Merkmalsextraktion aus Bildern bzw. Videos <strong>von</strong> <strong>Kleidung</strong>sstücken<br />

verwendet. Dabei werden <strong>die</strong> beiden, in Abschnitt 3 vorgestellten,<br />

Verfahren Farbhistogramme <strong>und</strong> Local Binary Patterns eingesetzt. Die so extrahierten<br />

Merkmalsvektoren werden zur Klassifikation an das caiwicat-classify Plugin weiter<br />

geleitet.<br />

Da <strong>die</strong> Merkmalsextraktion mit Videodaten, <strong>die</strong> <strong>von</strong> Biron aufgenommen wurden<br />

(siehe Abschnitt 1), funktionieren soll, <strong>und</strong> <strong>die</strong>se nicht nur <strong>Kleidung</strong>sstücke<br />

enthalten, sondern auch Gesichter <strong>und</strong> einen Teil der Umgebung, wird <strong>die</strong> folgende<br />

Heuristik verwendet, um Bildausschnitte mit <strong>Kleidung</strong>sstücken zu finden. Aus den<br />

vom Encara Plugin für jedes erkannte Gesicht bereitgestellten Daten (siehe Abschnitt<br />

4.2.2) wird ein Bildbereich unterhalb des Gesichtes ausgewählt. Von <strong>die</strong>sem wird<br />

angenommen, dass sich dort getragene <strong>Kleidung</strong>sstück befindet (siehe Abbildung<br />

4.2.7). Der ausgewählte Bildbereich kann durch drei Parameter verändert werden.<br />

• Der erste Parameter d m legt den Abstand des Mittelpunktes des Gesichtes vom<br />

Mittelpunkt des <strong>Kleidung</strong>sstückes fest.<br />

• Der zweite Parameter r x legt das Verhältnis der Breite des Gesichtes zur Breite<br />

des <strong>Kleidung</strong>sstückes fest.<br />

• Der dritte Parameter r y legt entsprechend <strong>die</strong> Verhältnisse der Höhen fest.<br />

17


Abbildung 4.4: Die verwendete Heuristik<br />

Das Shirt Plugin trägt widerum <strong>die</strong> Lage des ermittelten <strong>Kleidung</strong>sstückes in einem<br />

ähnlichen Format, wie das Encara Plugin, sowie den ermittelten Merkmalsvektor in<br />

<strong>die</strong> XML-Daten ein.<br />

<br />

<br />

. . .<br />

TORSO model=" b l a b l a . t e s t "><br />

<br />

<br />

1603 14833<br />

17261 15676 2497 474 2547 2438 1745 15307 17246<br />

15561 2180 912 2485 2296 1700 14452 17234 15659<br />

3006 906 2489 2286 < /PARAVECTOR><br />

< /TORSO><br />

. . .<br />

< / FACE><br />

< / FACES><br />

Listing 4.2: XML-Datenstruktur des Shirt Plugins<br />

4.2.8 Adapter Plugin<br />

Das Adapter Plugin soll in Zukunft <strong>die</strong> Schnittstelle zwischen Biron <strong>und</strong> den IceWing<br />

Plugins darstellen (bisher ist nur <strong>die</strong> Be<strong>die</strong>nung über eine GUI möglich). Das Szenario<br />

für den Ablauf der Software kann wie folgt beschrieben werden (siehe auch Abschnitt<br />

1) :<br />

• Beginnt Biron <strong>die</strong> Interaktion mit einer Person, teilt er <strong>die</strong>s dem Adapter Plugin<br />

mit. Die <strong>von</strong> ihm aufgenommenen Videodaten werden zum Trainieren des<br />

Gesichts- <strong>und</strong> des Shirtklassifikators benutzt. Ist <strong>die</strong> Person bisher unbekannt,<br />

wird eine neue Klasse mit einem internen class-label <strong>und</strong> einer internen class-id<br />

18


erstellt. Dabei ist zu beachten, dass der Gesichtsklassifikator, im Schema (Abbildung<br />

4.1) das caiwicat-classify Plugin2, <strong>die</strong> Klassen, also <strong>die</strong> Gesichter der<br />

ihm bekannten <strong>Personen</strong>, persistent speichert. Der Shirtklassifikator, im Schema<br />

das caiwicat-classify Plugin1, muss hingegen für jeden Durchlauf neu trainiert<br />

werden. Es kann also der Fall auftreten, dass eine mit Biron interagierende Person<br />

dem Gesichtsklassifikator aus einem früheren Durchlauf bekannt ist, dem<br />

Shirtklassifikator jedoch nicht. In <strong>die</strong>sem Fall übernimmt der Shirtklassifikator<br />

das class-label <strong>und</strong> <strong>die</strong> class-id des Gesichtsklassifikators <strong>und</strong> der Shirtklassifikator<br />

wird neu trainiert.<br />

Teilt <strong>die</strong> Person Biron im Laufe der Interaktion ihren Namen mit, wird das classlabel<br />

auf <strong>die</strong>sen Namen geändert.<br />

• Tritt der in Abschnitt 1.2 beschriebene Fall auf, dass Biron eine verfolgte Person<br />

verliert, wird versucht <strong>die</strong>se Person mit Hilfe der Gesichts- <strong>und</strong> Shirterkennung<br />

wiederzufinden. Dazu betrachtet Biron nacheinander alle in Frage kommenden<br />

<strong>Personen</strong>. Daraufhin wird ihm vom Adapter Plugin das class-label der<br />

betrachteten Person oder, falls <strong>die</strong> Person nicht erkannt wird, eine Rückweisung<br />

mitgeteilt. Für den Fall, dass der Gesichtsklassifikator <strong>und</strong> der Shirtklassifikator<br />

verschiedene Ergebnisse liefern, kann ausgewählt werden, wem Biron glauben<br />

soll.<br />

19


Kapitel 5<br />

Evaluation<br />

5.1 Testszenario<br />

Zum Zwecke der Evaluation wurden zwei Serien <strong>von</strong> jeweils zehn Videos mit drei <strong>Personen</strong><br />

aufgenommen. Zwischen den Videos wechselten <strong>die</strong> <strong>Personen</strong> ihre Shirts. Die<br />

erste Serie wurde mit dem Videomodus einer Digitalen Fotokamera aufgenommen, <strong>die</strong><br />

zweite mit Birons schwenkbarer Kamera (siehe Abschnitt 2.2). Um dem in Abschnitt<br />

1 beschriebenen Szenario möglichst nahe zu kommen, wurden <strong>die</strong> Videos wie folgt<br />

aufgenommen:<br />

1. Eine Person steht einige Zeit vor der Kamera, so dass <strong>die</strong> Klassifikatoren (siehe<br />

Abschnitt 4) trainiert werden können.<br />

2. Dann entfernt sich <strong>die</strong> Person <strong>von</strong> der Kamera, so dass sie nicht mehr zu sehen<br />

ist.<br />

3. Danach werden nacheinander drei <strong>Personen</strong>, <strong>die</strong> vorherige Person <strong>und</strong> zwei weitere,<br />

in einer nicht festgelegten Reihenfolge einzeln aufgenommen.<br />

4. Zum Schluss werden noch einmal alle <strong>Personen</strong> nebeneinander stehend<br />

aufgenommen.<br />

Eine Klassifikation wird als erfolgreich angesehen, wenn <strong>die</strong> erste Person wiedererkannt<br />

wird <strong>und</strong> <strong>die</strong> anderen beiden <strong>Personen</strong> als unbekannt zurückgewiesen werden.<br />

5.2 Testergebnisse<br />

Bei der Durchführung der Tests wurden, durch Ausprobieren, Parameter für <strong>die</strong> Klassifikatoren<br />

festgelegt. Das Ziel bei der Wahl der Parameter war es, dass <strong>die</strong> erste Person<br />

möglichst oft vom jeweiligen Klassifikator erkannt <strong>und</strong> <strong>die</strong> anderen beiden <strong>Personen</strong><br />

möglichst oft zurückgewiesen werden. Für <strong>die</strong> einzelnen Klassifikatoren wurden in<br />

beiden Serien <strong>die</strong> folgenden Werte ermittelt:<br />

• Farbhistogramme (FARB): Da <strong>die</strong> Bilder der zu klassifizierenden <strong>Kleidung</strong>sstücke,<br />

aufgr<strong>und</strong> der gewählten Heuristik (siehe Abschnitt 4.2.7), nicht<br />

20


immer <strong>die</strong> gleiche Größe haben, müssen <strong>die</strong> extrahierten Merkmalsvektoren<br />

skaliert werden. Dazu müssen alle Einträge des Merkmalsvektors, also des<br />

ermittelten Farbhistogrammes, mit einem Faktor f multipliziert werden. Dieser<br />

wird aus einer gewählten Standardbildgröße b s <strong>und</strong> der tatsächlichen Bildgröße<br />

b t berechnet, als f = b s /b t . Für <strong>die</strong> Standardbildgröße wurde b = 30000<br />

gewählt.<br />

Der euklidische Abstand zweier Merkmalsvektoren hängt <strong>von</strong> deren Skalierung<br />

ab. Daher muss der maximale euklidische Abstand d max (siehe Abschnitt 4.2.5)<br />

abhängig <strong>von</strong> b festgelegt werden. Für den maximale euklidische Abstand wurde<br />

d max = 20000 gewählt.<br />

• Local Binary Pattern (LBP): Hier wurde b s = 100000 <strong>und</strong> d max = 3500<br />

gewählt. Für den Abstand der Pixel in der Nachbarschaft (siehe Abschnitt 3.2)<br />

wurde d nachb = 2 festgelegt.<br />

• Farbhistogramme mit Nächster-Nachbar Klassifikator (FNN): Die Standardbildgröße<br />

wurde, wie bei den Farbhistogrammen, b s = 30000 gewählt. Für den<br />

Nächsten-Nachbar Klassifikator muss ein Faktor f nn festgelegt werden. f nn<br />

wird verwendet, um für jeden Trainingsvektor v i einen Radius r i festzulegen.<br />

Dieser wird berechnet als<br />

r i = f nn · dist(v i , v j )<br />

Dabei ist dist(x, y) <strong>die</strong> Distanz zwischen zwei Vektoren im Merkmalsraum <strong>und</strong><br />

v j ist der zu v i nächstgelegene Trainingsvektor aus derselben Klasse, mit i ≠ j.<br />

Ist jetzt v i der Nächste Nachbar eines zu klassifizierenden Merkmalsvektors x,<br />

wird x zurückgewiesen, wenn der Abstand zwischen v i <strong>und</strong> x größer als r i ist.<br />

[9] Es wurde f nn = 12 gewählt. (Es kann auch ein Radius für den Fall festgelegt<br />

werden, dass der Nächste Nachbar <strong>von</strong> v i zu einer anderen Klasse gehört. Da im<br />

Testszenario nur eine Klasse trainiert wurde, ist <strong>die</strong>ser Radius nicht relevant.)<br />

• Active Appearance Models (AAM): Hier wurde der Faktor f nn (siehe oben) als<br />

f nn = 80 festgelegt. Ansonsten wurden bei der Gesichtserkennung <strong>die</strong> Standardeinstellungen<br />

verwendet.<br />

5.2.1 Serie 1<br />

Bei der ersten Serie <strong>von</strong> Videos wurden der erste Teil <strong>und</strong> <strong>die</strong> Teile 3 <strong>und</strong> 4 (siehe<br />

vorherigen Abschnitt) in zwei verschiedenen Räumen unter verschiedenen Lichtverhältnissen<br />

aufgenommen. Ein weiteres Problem mit den Videos der ersten Serie bestand<br />

darin, dass <strong>die</strong> <strong>Kleidung</strong>sstücke manchmal nur zum Teil im Bild sind. Des Weiteren<br />

wurden <strong>die</strong> <strong>Personen</strong> in den Videos teilweise nur sehr kurz aufgenommen, so dass das<br />

caiwicat-majority-vote Plugin zu wenige Bilder für eine Auswertung hat. Wie bereits<br />

erwähnt, wurden pro Serie 10 Videos aufgenommen. In Tabelle 5.1 wird dargestellt,<br />

wie oft <strong>die</strong> einzelnen Klassifikatoren <strong>die</strong> erste Person wiedererkannt haben <strong>und</strong> wie<br />

oft <strong>die</strong> zwei anderen <strong>Personen</strong> fälschlicherweise als <strong>die</strong> erste Person klassifiziert wurden.<br />

In Tabelle 5.2 sind <strong>die</strong> Ergebnisse der Klassifikation nach den einzelnen Videos<br />

aufgelistet.<br />

21


Ereignis FARB LBP FNN AAM<br />

Person 1 erkannt 2 / 10 2 / 10 2 / 10 2 / 10<br />

falsch klassifiziert 3 / 20 2 / 20 2 / 20 3 / 20<br />

Tabelle 5.1: Klassifikationsergebnisse der ersten Serie<br />

Video Nr. FARB LBP FNN AAM<br />

+++ erkannt Fehler erkannt Fehler erkannt Fehler erkannt Fehler<br />

01 nein 0 nein 0 ja 0 ja 0<br />

02 nein 0 nein 0 nein 0 nein 0<br />

03 nein 1 ja 0 ja 0 ja 0<br />

04 ja 0 nein 0 ja 0 nein 0<br />

05 nein 0 ja 1 ja 0 nein 2<br />

06 ja 1 nein 0 ja 2 nein 0<br />

07 nein 1 nein 1 nein 0 nein 0<br />

08 nein 0 nein 0 nein 0 nein 0<br />

09 nein 0 nein 0 nein 0 nein 0<br />

10 nein 0 nein 0 nein 0 nein 1<br />

Tabelle 5.2: Klassifikationsergebnisse der ersten Serie nach Videos<br />

Wie sich aus den Tabellen erkennen lässt, liefert der FFN-Klassifikator in der ersten<br />

Serie <strong>die</strong> besten Ergebnisse. Die drei anderen Klassifikatoren liefern allesamt ähnlich<br />

schlechte Ergebnisse, was wahrscheinlich an den oben erwähnten Problemen, wie<br />

z.B. den unterschiedlichen Lichtverhältnissen, liegt. Wurden <strong>die</strong> Videos <strong>von</strong> Vorne<br />

abgespielt, so dass <strong>die</strong> zuvor zum Trainieren der Klassifikatoren verwendeten Bilder<br />

<strong>ihrer</strong>seits klassifiziert wurden, so erkannten alle Klassifikatoren in allen Videos <strong>die</strong><br />

erste Person wieder.<br />

Es lässt sich feststellen, dass <strong>die</strong> beiden Klassifikatoren, welche <strong>die</strong> Farbhistogramme<br />

zur Merkmalsextraktion verwenden, in den Videos 04 <strong>und</strong> 06 <strong>die</strong> erste<br />

Person erkennen. Außerdem machen beide Klassifikatoren Fehler in Video 06. (Der<br />

FFN-Klassifikator erkennt darüber hinaus auch in anderen Videos <strong>die</strong> erste Person<br />

wieder). Der LBP-Klassifikator erkennt hingegen <strong>die</strong> erste Person in den Videos 03<br />

<strong>und</strong> 05.<br />

5.2.2 Serie 2<br />

Die Videos der zweiten Serie wurden mit der schwenkbaren Kamera <strong>von</strong> Biron (siehe<br />

Abschnitt 2.2) aufgenommen. Diese hat eine höhere Auflösung als <strong>die</strong> in der ersten<br />

Serie verwendete Kamera <strong>und</strong> liefert qualitativ hochwertigere Videos. Bei den Aufnahmen<br />

stand Biron immer an der gleichen Stelle <strong>und</strong> es wurde nur <strong>die</strong> Kamera <strong>von</strong><br />

einer Person zur nächsten gedreht. Die Lichtverhältnisse waren daher relativ konstant.<br />

Auch waren <strong>die</strong> <strong>Kleidung</strong>sstücke immer vollständig im Bild <strong>und</strong> <strong>die</strong> einzelnen <strong>Personen</strong><br />

wurden länger aufgenommen, so dass das caiwicat-majority-vote Plugin mehr<br />

Bilder für eine Auswertung zur Verfügung hat. Das spiegelt sich auch in den besseren<br />

Klassifikationsergebnissen wieder.<br />

22


Ereignis FARB LBP FNN AAM<br />

Person 1 erkannt 10 / 10 10 / 10 10 / 10 8 / 10<br />

falsch klassifiziert 3 / 20 2 / 20 1 / 20 1 / 20<br />

Tabelle 5.3: Klassifikationsergebnisse der zweiten Serie<br />

Video Nr. FARB LBP FNN AAM<br />

+++ erkannt Fehler erkannt Fehler erkannt Fehler erkannt Fehler<br />

01 ja 0 ja 0 ja 0 ja 0<br />

02 ja 0 ja 0 ja 0 ja 0<br />

03 ja 0 ja 0 ja 0 ja 0<br />

04 ja 0 ja 1 ja 0 ja 0<br />

05 ja 0 ja 0 ja 0 nein 0<br />

06 ja 0 ja 1 ja 0 ja 0<br />

07 ja 0 ja 0 ja 0 ja 1<br />

08 ja 2 ja 0 ja 1 ja 0<br />

09 ja 1 ja 0 ja 0 nein 0<br />

10 ja 0 ja 0 ja 0 ja 0<br />

Tabelle 5.4: Klassifikationsergebnisse der zweite Serie nach Videos<br />

Widerum liefert der FNN-Klassifikator <strong>die</strong> besten Ergebnisse, d.h. das beste Verhältnis<br />

<strong>von</strong> Wiedererkennung <strong>und</strong> Rückweisung. Interessant sind <strong>die</strong> Ergebnisse des Videos<br />

08. In <strong>die</strong>sem Video tragen alle drei <strong>Personen</strong> schwarze Shirts (siehe Abbildung 5.2.2).<br />

Daher kommt es bei dem FARB-Klassifikator zu zwei <strong>und</strong> bei dem FNN-Klassifikator<br />

zu einer Fehlklassifikationen. Dagegen erkennt der LBP-Klassifikator <strong>die</strong> erste Person<br />

wieder <strong>und</strong> weist <strong>die</strong> anderen als unbekannt zurück. Das zeigt, entsprechend den<br />

Beobachtungen in der ersten Serie, dass, wie erwartet, <strong>die</strong> Extraktion <strong>von</strong> verschieden<br />

Merkmalen auch zu verschiedenen Ergebnissen bei der Klassifikation führt.<br />

Abbildung 5.1: Video 08<br />

23


Kapitel 6<br />

Fazit <strong>und</strong> Ausblick<br />

Im Rahmen <strong>die</strong>ser Bachelorarbeit wurde gezeigt, dass <strong>die</strong> <strong>Erkennung</strong> <strong>von</strong> <strong>Personen</strong><br />

<strong>anhand</strong> <strong>ihrer</strong> <strong>Kleidung</strong> in bestimmten Szenarien, wie z.B. einem Haushaltsroboter,<br />

möglich ist <strong>und</strong> Sinn macht. So lassen sich aus <strong>Kleidung</strong> verschiedene Merkmale, wie<br />

Farbhistogramme <strong>und</strong> Local Binary Patterns, extrahieren. Damit lassen sich schon<br />

mit relativ einfachen Klassifikatoren gute Klassifikationsergebnisse erzielen. Um <strong>die</strong><br />

Klassifikationsergebnisse auch unter erschwerten Bedingungen zu verbessern, gibt es<br />

mehrere Möglichkeiten. Zum Einen kann <strong>die</strong> Merkmalsextraktion verbessert werden.<br />

Für <strong>die</strong> Local Binary Patterns werden dafür in [13] mehrere Methoden vorgestellt, <strong>die</strong><br />

schon bei zur Gesichtserkennung eingesetzt wurden. Zum anderen kann, insbesondere<br />

bei den Local Binary Patterns, wo bisher nur ein sehr einfacher Klassifikator eingesetzt<br />

wurde, <strong>die</strong> Verwendung <strong>von</strong> besseren Klassifikatoren zu besseren Ergebnissen führen.<br />

Auch lassen sich Local Binary Patterns <strong>und</strong> Farbhistogramme kombinieren <strong>und</strong> so<br />

mehr unabhängige Merkmale in einer Klassifikation verwenden.<br />

Ein Ziel für <strong>die</strong> Zukunft ist <strong>die</strong> vollständige Integration der hier entwickelten<br />

Software in den Roboter Biron.<br />

24


Literaturverzeichnis<br />

[1] http://personalpages.manchester.ac.uk/staff/timothy.f.cootes/Models/aam.html,<br />

Besucht am 26.10.2008.<br />

[2] http://de.wikipedia.org/wiki/Active_Appearance_Model, Besucht am<br />

26.10.2008.<br />

[3] http://aiweb.techfak.uni-bielefeld.de/content/biron-bielefeld-robot-companion,<br />

Besucht am 26.10.2008.<br />

[4] http://aiweb.techfak.uni-bielefeld.de/node/656, Besucht am 26.10.2008.<br />

[5] CHA, SUNG-HYUK <strong>und</strong> SARGUR N. SRIHARI: On measuring the distance between<br />

histograms.<br />

[6] HANHEIDE, MARC: Vorlesung Musterklassifikation, 2007.<br />

[7] IceWing - User and Programming Guide, Mai 2006. Version 0.9.<br />

[8] http://icewing.sourceforge.net, Besucht am 26.10.2008.<br />

[9] LANG, CHRISTIAN: <strong>Personen</strong>identifikation mit Active Appearance Models.<br />

Diplomarbeit, Universität Bielefeld, 2007.<br />

[10] LANG, S., M. KLEINENGABENBROCK, S. HOHENNER, J. FRITSCH, G. A.<br />

FINK <strong>und</strong> G. SAGERER: Providing the basis for human-robot-interaction: A<br />

multi-modal attention system for a mobile robot, 2003.<br />

[11] LÖMKER, FRANK, SEBASTIAN WREDE, MARC HANHEIDE <strong>und</strong> JANNIK<br />

FRITSCH: Building Modular Vision Systems with a Graphical Plugin Environment.<br />

[12] MÄENPÄÄ, TOPI: The Local Binary Pattern Approach to Texture Analysis - Extensions<br />

and Applications. 2003.<br />

[13] MARCEL, SEBASTIAN, YANN RODRIGUEZ <strong>und</strong> GUILLAUME HEUSCH: On the<br />

Recent Use of Lacal Binary Patterns for Face Authentication.<br />

[14] NIEMANN, HEINRICH: Klassifikation <strong>von</strong> Mustern. 2. überarbeitete Auflage,<br />

2003.<br />

[15] YUAN, FANG, MARC HANHEID <strong>und</strong> GERHARD SAGERER: Spatial Contex-<br />

Aware Person-Following for a Domestic Robot.<br />

25


Abbildungsverzeichnis<br />

1.1 <strong>Kleidung</strong> bietet oft viele Unterscheidungsmerkmale . . . . . . . . . . 4<br />

2.1 Ein Beispiel für einen Programmablauf in IceWing (Quelle: [8]) . . . 6<br />

2.2 Biron - The Bielefeld Robot Companion (Quelle: [3]) . . . . . . . . . 7<br />

2.3 Active Appearance Models (Quelle: [1]) . . . . . . . . . . . . . . . . 8<br />

3.1 Beispiel zur LPB Berechnung . . . . . . . . . . . . . . . . . . . . . 11<br />

3.2 Darstellung eines LBP-Bildes . . . . . . . . . . . . . . . . . . . . . . 12<br />

3.3 Verwendete Nachbarschaft bei entsprechendem Abstand d . . . . . . 12<br />

4.1 Datenfluss zwischen den Plugins . . . . . . . . . . . . . . . . . . . . 13<br />

4.2 Ein vom Encara Plugin erkanntes Gesicht . . . . . . . . . . . . . . . 15<br />

4.3 Ermittlung der Distanz zweier Histogramme, Distanz = 4 . . . . . . . 16<br />

4.4 Die verwendete Heuristik . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

5.1 Video 08 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23<br />

26


Liste der Algorithmen<br />

1 Berechnung eines Histogrammes . . . . . . . . . . . . . . . . . . . . 10<br />

2 Berechnung der Distanz zwischen zwei Histogrammen . . . . . . . . . 17<br />

27


Listings<br />

4.1 Beispiel für eine XML-Datenstruktur des Encara Plugins . . . . . . . 14<br />

4.2 XML-Datenstruktur des Shirt Plugins . . . . . . . . . . . . . . . . . 18<br />

28


Tabellenverzeichnis<br />

5.1 Klassifikationsergebnisse der ersten Serie . . . . . . . . . . . . . . . 22<br />

5.2 Klassifikationsergebnisse der ersten Serie nach Videos . . . . . . . . 22<br />

5.3 Klassifikationsergebnisse der zweiten Serie . . . . . . . . . . . . . . 23<br />

5.4 Klassifikationsergebnisse der zweite Serie nach Videos . . . . . . . . 23<br />

29

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!