Lade Inhalt...

Robuste Handkonturerkennung

Initialisierung eines Handtrackingverfahrens

©2006 Diplomarbeit 86 Seiten

Zusammenfassung

Inhaltsangabe:Einleitung:
Die Hand wird in der Informatik als Interaktionsinstrument zunehmend wichtiger. Schon heute gibt es einige Systeme bei denen der Benutzer seine Eingaben nicht mehr mit Maus und Tastatur, sondern mit Hilfe seiner Hände vornimmt. Der große Vorteil hiervon ist, dass man Objekte wie in der realen Welt manipulieren kann. Z.B. ist es nicht ganz klar, wie man ein 3D-Objekt wie eine Tasse mit Maus und Tastatur greift. Mit der Hand ist diese Aufgabe ganz natürlich ausführbar und muss nicht extra erlernt werden. Um eine solche Interaktion zu unterstützen ist ein Handtracking notwendig.
Man unterscheidet hierbei zwischen einem System zur Erkennung vorher festgelegter Gesten und einem Tracking aller möglichen Handstellungen. Bei der Gestenerkennung können nur solche Gebärden erkannt werden, die dem auch System bekannt sind. Diese Menge ist beschränkt und muss vor dem Tracking festgelegt werden. Das Verfahren kann man daher auch als eine Klassifizierungsaufgabe betrachten.
Hier wird ausschließlich das vollständige Handtracking betrachtet, da es flexibler einsetzbar ist, und keinen Beschränkungen hinsichtlich der Anzahl der verschiedenen zu erkennenden Handstellungen unterliegt.
Problemstellung: Hier wird ein Verfahren präsentiert, welches die Handkontur ohne Vorkenntnis erkennen kann. Das Verfahren soll in der Lage sein die Hand auch unter schwierigen Bedingungen wie Verdeckung, schlechten Lichtverhältnissen oder verrauschten Bildern zu erkennen. Hierdurch wird die Initialisierung eines Handtrackingvorgangs erheblich vereinfacht.
Durch ein Verfahren zur Erkennung der Handkontur ohne Vorkenntnisse entfällt die Notwendigkeit, zu Beginn des Handtrackings ein manuelles matching durchzuführen. Der Benutzer muss lediglich seine Hand zu Beginn des Trackings in einer vorgeschriebenen Geste zeigen, und die Konturerkennung führt die Initialisierung durch. Eine auf diese Weise korrekt erkannte Hand bietet eine sehr viel bessere Initialposition, als bei der manuellen Initialisierung. Der Startzustand des Handtrackingalgorithmus wird demnach optimal bestimmt. Beim anschließenden ersten Durchgang des Trackings der Hand startet das Optimierungsverfahren dann aus einer ähnlichen Startposition, wie im weiteren Verlauf auch. Dient während des Trackings der zuletzt erkannte Handzustand als Schätzung des aktuellen, bietet die erkannte Handkontur am Anfang eine (mindestens) ebenso gute Annahme.
Durch die Erkennung der Handkontur erhält man auch eine […]

Leseprobe

Inhaltsverzeichnis


Oliver Jorkisch
Robuste Handkonturerkennung
Initialisierung eines Handtrackingverfahrens
ISBN: 978-3-8366-0535-9
Druck Diplomica® Verlag GmbH, Hamburg, 2007
Zugl. Rheinische Friedrich-Wilhelms-Universität Bonn, Bonn, Deutschland, Diplomarbeit,
2006
Dieses Werk ist urheberrechtlich geschützt. Die dadurch begründeten Rechte,
insbesondere die der Übersetzung, des Nachdrucks, des Vortrags, der Entnahme von
Abbildungen und Tabellen, der Funksendung, der Mikroverfilmung oder der
Vervielfältigung auf anderen Wegen und der Speicherung in Datenverarbeitungsanlagen,
bleiben, auch bei nur auszugsweiser Verwertung, vorbehalten. Eine Vervielfältigung
dieses Werkes oder von Teilen dieses Werkes ist auch im Einzelfall nur in den Grenzen
der gesetzlichen Bestimmungen des Urheberrechtsgesetzes der Bundesrepublik
Deutschland in der jeweils geltenden Fassung zulässig. Sie ist grundsätzlich
vergütungspflichtig. Zuwiderhandlungen unterliegen den Strafbestimmungen des
Urheberrechtes.
Die Wiedergabe von Gebrauchsnamen, Handelsnamen, Warenbezeichnungen usw. in
diesem Werk berechtigt auch ohne besondere Kennzeichnung nicht zu der Annahme,
dass solche Namen im Sinne der Warenzeichen- und Markenschutz-Gesetzgebung als frei
zu betrachten wären und daher von jedermann benutzt werden dürften.
Die Informationen in diesem Werk wurden mit Sorgfalt erarbeitet. Dennoch können
Fehler nicht vollständig ausgeschlossen werden, und die Diplomarbeiten Agentur, die
Autoren oder Übersetzer übernehmen keine juristische Verantwortung oder irgendeine
Haftung für evtl. verbliebene fehlerhafte Angaben und deren Folgen.
© Diplomica Verlag GmbH
http://www.diplom.de, Hamburg 2007
Printed in Germany

Inhaltsverzeichnis
1.
Einleitung...3
1.1.
Überblick über verschiedene Handtrackingverfahren ...4
1.2.
Das Handtrackingsystem der Uni Bonn ...6
1.3.
Zielsetzung dieser Arbeit...10
2.
Instrumente für die Segmentierung von Bildern...13
2.1.
Snakes ...15
2.2.
Diffusion Snakes ...17
2.3.
Simplified Diffusion Snakes...19
2.4.
(Simplified) Diffusion Snakes mit Vorabinformationen ...20
3.
Der Minimierungsprozess ...22
3.1.
Aktualisierung der Approximationsfunktion ...23
3.1.1.
Diffusion Snake...24
3.1.2.
Cartoon Limit ...28
3.2.
Aktualisierung der Kontur ...28
3.2.1.
Diffusion Snake...29
3.2.2.
Cartoon Limit ...32
4.
Erstellung der Trainingsdaten ...33
4.1.
Hautfarbesegmentierung...34
4.1.1.
Konvertierung von RGB nach HSV...36
4.1.2.
Trainieren der Hautfarbesegmentierung...37
4.2.
Erkennung von Handfeatures in Binärbildern...39
4.3.
Ausrichtung der B-Splines...42
4.4.
Berechnung der Kovarianzmatrix für das Trainingsset ...44
5.
Die Priorenergie ...47
5.1.
Zentrierung der Kontrollpunkvektoren ...48
5.2.
Ausrichtung mit Hilfe der Frobenius Norm ...49
5.3.
Berechnung der Priorenergie ...51
6.
Ergebnisse...53
6.1.
Ellipse...53
6.1.1.
Cartoon Limit ...54
6.1.2.
Diffusion Snake...58
6.2.
Hand...61
6.2.1.
Cartoon Limit ...63

2
6.2.2.
Diffusion Snake...67
7.
Fazit & Ausblick ...70
7.1.
Fazit...70
7.2.
Ausblick ...72
8.
Appendix A: Bestimmung des optimalen Winkels bei der Ausrichtung zweier
Konturen ...73
9.
Appendix B: Ableitung des zweiten Terms der Priorenergie...75
10.
Appendix C: Die Euler-Lagrange Gleichung im Zweidimensionalen ...76
11.
Appendix D: Die Frobenius Norm ...79
12.
Literaturverzeichnis ...80
13.
Abbildungsverzeichnis ...82

3
1. Einleitung
Die Hand wird in der Informatik als Interaktionsinstrument zunehmend wichtiger. Schon
heute gibt es einige Systeme bei denen der Benutzer seine Eingaben nicht mehr mit Maus
und Tastatur, sondern mit Hilfe seiner Hände vornimmt. Der große Vorteil hiervon ist, dass
man Objekte wie in der realen Welt manipulieren kann. Z.B. ist es nicht ganz klar, wie man
ein 3D-Objekt wie eine Tasse mit Maus und Tastatur ,,greift". Mit der Hand ist diese Aufgabe
ganz natürlich ausführbar und muss nicht extra erlernt werden. Um eine solche Interaktion zu
unterstützen ist ein Handtracking notwendig.
Man unterscheidet hierbei zwischen einem System zur Erkennung vorher festgelegter
Gesten und einem Tracking aller möglichen Handstellungen. Bei der Gestenerkennung
können nur solche Gebärden erkannt werden, die dem auch System bekannt sind. Diese
Menge ist beschränkt und muss vor dem Tracking festgelegt werden. Das Verfahren kann
man daher auch als eine Klassifizierungsaufgabe betrachten.
Im Gegensatz dazu steht das volle Handtracking, bei dem es typischerweise gilt 27
Freiheitsgrade zu optimieren. Diese Anzahl setzt sich folgendermaßen zusammen:
· Je 3 Freiheitsgrade für die globale Position und Rotation der Hand
· Je 4 Freiheitsgrade für die 4 Finger
· 5 Freiheitsgrade für den Daumen
Das volle Handtracking ist weitaus komplexer als die Erkennung einer bestimmten Anzahl
von Gesten, ist dafür aber auch in der Lage jegliche Position der Hand ohne
Einschränkungen zu erkennen. Die Aufgabe ausschließlich bestimmte Gesten zu erkennen
bildet eine Teilaufgabe des vollständigen Handtrackings. Diese Aussage lässt sich anhand
der nachfolgenden Betrachtung überprüfen:
Nach einem erfolgreich durchgeführten Handtracking besitzt man Kenntnis über den
Zustand sämtlicher Gelenkwinkel. Mit dieser Kenntnis ist die Erkennung von Gesten eine
einfache Klassifizierungsaufgabe, da dazu lediglich der aktuelle, vollständig bekannte,
Handzustand mit sämtlichen zu erkennenden Gesten verglichen werden muss. Daher kann
man sagen, dass man das Problem der Gestenerkennung ebenfalls gelöst hat, wenn das
volle Handtracking funktioniert.
An dieser Stelle sollte man erwähnen, dass die Gestenerkennung dennoch durchaus
ihre Daseinsberechtigung hat [16, 17, 18, 19, 20]. Bei einigen Anwendungsgebieten reicht
die Detektion einer beschränkten Anzahl von Gebärden völlig aus, und daher braucht dort
kein vollständiges Handtracking eingesetzt zu werden. Dieses bringt aufgrund seines
breiteren Einsatzbereiches auch eine höhere Komplexität, und somit eine niedrigere
Geschwindigkeit mit sich. Auch aus Gründen einer höheren Stabilität sollte man in solchen
Szenarios eine Gestenerkennung zum Einsatz bringen.

4
Dennoch wird hier im Folgenden ausschließlich das vollständige Handtracking
betrachtet, da es flexibler einsetzbar ist, und keinen Beschränkungen hinsichtlich der Anzahl
der verschiedenen zu erkennenden Handstellungen unterliegt.
1.1. Überblick über verschiedene Handtrackingverfahren
Um das Problem des vollständigen Handtrackings zu lösen finden sich in der Literatur
verschiedene Herangehensweisen. Ein sowohl von der Industrie als auch von der Forschung
sehr weit verfolgter Zweig bilden die Datenhandschuhe (ein Beispiel eines Handschuhs
findet sich in Abbildung 2). Eine Übersicht über verschiedene Modelle sowie deren Vor- und
Nachteile findet sich in [3, 25, 26]. Beim Einsatz solcher Handschuhe kann man die
Handstellung durch Sensoren ermitteln, die auf dem Handschuh angebracht sind, und die
aktuellen Krümmungswinkel der Gelenke liefern. Jedoch gibt es bei diesem System auch
einige Nachteile. Zum einen sind solche Handschuhe immer noch ziemlich teuer. Des
weiteren ist das Arbeiten damit für die meisten Benutzer sehr ermüdend, und das Tragen
des Handschuhs wird schnell unbequem. Außerdem treten bei der Übermittlung der Daten
erhebliche Genauigkeitsprobleme auf. Die Sensoren liefern teilweise ungenaue Ergebnisse,
welche es erschweren die korrekten Fingerstellungen der Hand zu ermitteln.
Ein anderer Ansatz den Zustand der Hand zu ermitteln, bildet der Einsatz von
Kameras. Die Kameras liefern dabei Bilder der zu erkennenden Hand. In diesen Bildern
erkennt anschließend ein Verfahren den aufgenommenen Handzustand. Es werden
verschiedene solcher Verfahren in Kapitel 2 vorgestellt. Mit einer hinreichend hohen
Auflösung, welche aktuell von den meisten Kameras garantiert wird, treten weitaus weniger
Genauigkeitsprobleme auf, als das bei den Datenhandschuhen der Fall ist. Jedoch gibt es
bei diesem Ansatz andere Probleme zu bedenken. Bei einer herkömmlichen Kamera muss
Sichtkontakt zwischen Linse und Hand bestehen um ein Bild zu erhalten. Daher ist die
Verdeckung der Hand durch störende Objekte ein Problem. Außerdem ist es nicht immer
trivial die Hand im Bild vom Hintergrund zu unterscheiden. Der Hintergrund könnte eine
ähnliche Farbe wie die Hand haben und damit die Erkennung erschweren.
Um das Problem der Verdeckung weitestgehend zu eliminieren wird der Einsatz einer
Infrarotkamera in [1, 24] betrachtet. Der Vorteil liegt hierbei darin, dass sich die Hand
aufgrund der Körpertemperatur vom Hintergrund abhebt. Außerdem wirken sich ähnliche
Farben im Hintergrund bei deren Einsatz nicht störend aus. Allerdings ist eine solche
Kamera zum einen sehr viel teurer als eine herkömmliche Kamera, und zum anderen kann
es auch hier störende Einflüsse von Wärmequellen wie Heizungen, Computern oder
ähnlichem geben. Eine Aufnahme mit einer Infrarotkamera findet sich in Abbildung 1.
Um die Hand besser von ihrer Umgebung unterscheiden zu können wird in [2, 21, 22,
23] der Einsatz von Markern, die an der Hand angebracht werden, verfolgt. Die Idee hierbei

5
ist die Marker an markanten Stellen zu platzieren (siehe Abbildung 2) und Handfeatures, wie
z.B. Fingerspitzen, auf diese Weise einfacher zu erkennen. Da die Marker eine auffällige
Farbe haben und sich deutlich vom Hintergrund abzeichnen, sind sie leicht zu erfassen und
können mit einer hohen Zuverlässigkeit gefunden werden. Das System sucht während der
Benutzung somit nach Objekten, dessen Farbe und Form vorher schon bekannt ist. Daher
sollten die Marker schnell gefunden werden, und die Stellung der Hand ergibt sich direkt aus
den Positionen der Marker. Jedoch hat auch dieses Vorgehen seine Nachteile. Die Marker
müssen vor dem Tracking an der Hand angebracht werden, was eine unkomplizierte
Benutzung des Systems verhindert. Außerdem sollten die Marker an speziellen
Featurepunkten der Hand angebracht werden, damit dadurch die tatsächliche Handstellung
ermittelt werden kann. Verschiedene Personen haben aber auch unterschiedliche Hände.
Die geometrischen Zusammenhänge der Marker verschieben sich so etwas, und das System
wird ungenau. Weiterhin ist auch die Erkennung der Marker nicht immer unproblematisch.
Vor allem bei (teilweiser) Verdeckung einiger Marker gibt es Probleme, aber auch schlechte
Beleuchtungsverhältnisse erschweren die Detektion der Marker.
Schließlich gibt es den Ansatz die Handstellung ganz ohne den Einsatz zusätzlicher
Geräte zu erkennen. Dies ist für den Benutzer die einfachste und intuitivste Methode. Es
brauchen keine teuren Geräte angeschafft werden, und der Benutzer kann sofort mit der
Interaktion beginnen. Es sind lediglich (mehrere) herkömmliche Kameras notwendig, welche
die Hand aufnehmen.
In dieser Arbeit wird der Ansatz verfolgt die Handstellung ohne Marker oder
Handschuh, und nur mit dem Einsatz von konventionellen Kameras zu ermitteln. Der
Verzicht auf Spezialgeräte geschieht aus mehreren Gründen. Zum einen sind solche Geräte
in der Anschaffung ziemlich teuer. Außerdem schränken sämtliche Methoden entweder den
Benutzer in seinen Bewegungen oder die Anwendbarkeit ein. Das Verfahren sollte den
größtmöglichen Komfort bei der Bedienung bieten und gleichzeitig zuverlässig auch unter
unterschiedlichen äußeren Bedingungen funktionieren. Ein weiteres Ziel ist die Portabilität
des Systems. Idealerweise sollte sich das gesamte System auf jedem Rechner installieren
lassen, dem genügend viele Kameras zur Verfügung stehen. Spezielle Hardware wirkt
diesem Ziel entgegen und verhindert einen flexiblen Einsatz.
Im folgenden wird hier das Handtrackingsystem vorgestellt, welches an der Uni Bonn
in der Computergrafikabteilung (Arbeitsgruppe R. Klein) eingesetzt wird. Aus den genannten
Gründen setzt dieses System auf einen möglichst einfachen Aufbau, also nur auf den
Einsatz dreier konventioneller Kameras und keine der hier vorgestellten Zusatzgeräte. Das
Ziel ist dabei dennoch ein vollständiges Handtracking zu erreichen.

6
Abbildung 1: Vergleich der Aufnahme von einer konventionellen Kamera (links) mit der einer
Infrarotkamera [1]
Abbildung 2: Hand mit Markern [2] (links), Datenhandschuh (rechts)
1.2. Das Handtrackingsystem der Uni Bonn
Aus den oben genannten Gründen wird an der Uni Bonn das Ziel verfolgt ein
Handtrackingsystem ohne Handschuh oder Marker zu etablieren. Das System soll dazu
dienen eine Handinteraktion bei verschiedenen Anwendungen zu ermöglichen. Die optischen
Daten liefern drei Kameras, welche die Hand des Benutzers von unterschiedlichen
Richtungen aufnehmen. Der Vorteil gegenüber der Verwendung von lediglich einer Kamera
liegt darin, dass so die Menge an Bildinformationen erhöht wird. Aus einem einzigen
Blickpunkt kann man wahrscheinlich nicht während des ganzen Verfahrens die komplette
Hand erkennen. Es werden sehr wahrscheinlich zeitweise Teile durch Verdeckung oder
Selbstverdeckung nicht zu sehen sein. Natürlich ist nicht garantiert, dass man mit drei
Kameras stets alle benötigten Bildinformationen erhält, aber die Chance dafür ist bedeutend
höher. Jeder Kamera ist ein eigener Rechner zugeordnet, welcher die Informationen aus den
Bildern auswertet. Die Koordination des gesamten Verfahrens übernimmt ein weiterer
Rechner, in dem die Daten der anderen Rechner gesammelt werden.

7
Die Handerkennung funktioniert prinzipiell nach einem ,,Analysis by Synthesis"
Verfahren. Bei einem solchen Verfahren möchte man ein gegebenes Modell derart in das
Bild legen, dass dieses möglichst optimal mit den Bildinformationen korrespondiert. Im Bild
selber muss dazu das Zielareal, auf welches das Modell ausgerichtet werden soll, bekannt
sein. Dazu muss vor Anwendung des Verfahrens das Bild in Zielareal und Hintergrund
eingeteilt werden. Die Aufgabe besteht dann darin, das Modell möglichst gut in das Zielareal
zu legen. Im hier betrachteten System wird das Modell ins Bild gerendert und anschließend
wird eine ,,XOR-Funktion" ausgewertet. Die Pixel, für die das Ergebnis der XOR Operation
(Modell XOR Zielareal) ,,1" ergibt gelten als Fehler (siehe Abbildung 3). Es wird dann so
lange iteriert, bis das Verfahren einen stabilen und zufrieden stellenden Zustand erreicht hat.
Abbildung 3: Evolutionen eines "Analysis by Synthesis" Verfahrens mit Zielareal in grün und
Modell in rot, zugehöriger Fehler in blau
Um ein solches Verfahren durchführen zu können benötigt man ein geeignetes Handmodell
(siehe Abbildung 4). Es gilt dabei einen Tradeoff zwischen einem möglichst naturgetreuem
Modell und einem leicht modifizierbarem abzuwägen. Der Vorteil eines Modells, welches nah
an die tatsächlichen Verhältnisse der realen Hand herankommt, liegt darin, dass sich damit
ein sehr genaues Ergebnis erzielen lässt. Im Gegensatz dazu ist solch ein Modell relativ
schwer zu transformieren.
Im Gegensatz dazu steht ein etwas technischeres Handmodell, welches nicht ganz
so wirklichkeitsgetreu aussieht. Dafür kann dieses aber sehr viel schneller und intuitiver
deformiert werden. Aus diesem Grund wird an dem hier betrachteten Handtrackingsystem
der Uni Bonn auf ein naturgetreues Handmodell verzichtet.

8
Abbildung 4: Ein möglichst naturgetreues Modell (links) und ein technischeres Handmodell
Das Zielareal muss, wie oben erwähnt, im Bild markiert werden. Dabei macht man sich die
Tatsache zu Nutze, dass Hautfarbe immer ähnlich aussieht. Natürlich haben verschiedene
Benutzer etwas unterschiedliche Hauttöne, aber in einem geeignetem Farbraum werden
diese Werte eng beieinander liegen. Daher wird auf die Kamerabilder eine
Hautfarbesegmentierung angewendet. Diese teilt das Bild, aufgrund eines Schwellwertes, in
Regionen die sehr wahrscheinlich Hautfarbe sind und solche Regionen, die es nicht sind. Die
Ausgabe dieser Segmentierung ist ein Binärbild, in dem Hautfarberegionen weiß und der
Rest schwarz dargestellt wird. Eine ausführlichere Betrachtung der Hautfarbesegmentierung
folgt in Kapitel 2.1.1.
Abbildung 5: Ergebnis der Hautfarbesegmentierung
Das gesamte Verfahren soll in Echtzeit ablaufen (15 - 25 Bilder pro Sekunde). Um dies zu
erreichen ist es hilfreich in jedem Iterationsschritt eine Vorkenntnis über die wahrscheinliche
aktuelle Position der Hand zu haben. Da sich zwischen zwei Durchgängen die Stellung der
Hand aufgrund der kurzen Zeit nicht stark ändert, bildet der letzte Durchgang stets die
Initialisierung für den nächsten Durchgang. Daher sucht das Verfahren die Handstellung
stets von einer Position aus, die nicht weit vom korrekten Ergebnis entfernt ist. Neben den

9
Geschwindigkeitsvorteilen liefert eine gute Startposition auch bessere Ergebnisse als ein
Verfahren ohne Vorkenntnis.
Die Durchführung des Handtrackings setzt voraus, dass sich die Kameras in einem
kalibrierten Zustand befinden. Die Aufnahme einer Szene mit einer Kamera kann als eine
Abbildung von 3D-Weltpunkten in 2D-Bildpunkte betrachtet werden. Um genaue
Rückschlüsse über die Verhältnisse in den Weltkoordinaten aus den aufgenommenen
Kamerabildern zu erhalten müssen gewisse Kameraparameter genau bekannt sein. Erst
dann kann die Inverse dieser Abbildung betrachtet werden. Das Ziel der Kalibrierung ist die
Bestimmung der intrinsischen (Brennweite, Hauptpunkt, Verzerrungsparameter) und der
extrinsischen (Position und Orientierung) Kameraparameter. Erst mit hinreichend genauer
Kenntnis dieser Parameter lassen sich die Bilder der Kameras in sinnvoller Weise
auswerten. An der Uni Bonn wird die Kalibrierung momentan dadurch durchgeführt, dass
den Kameras ein spezielles Muster aus unterschiedlichen Positionen gezeigt wird. Dieses
Muster ist dem Algorithmus vorher bekannt, und die Features darauf können einfach erkannt
werden. Die Kalibrierung auf diese Weise ist weit verbreitet und findet sich auch in der
Literatur z.B. in [27, 28].
Das System der Uni Bonn hat momentan noch ein paar Schwächen, welche die
Bedienung erschweren. Ein großes Problem ist die Initialisierung des Verfahrens. Wie
bereits erwähnt wird in jedem Schritt die Lösung des letzten Schritts als Startposition
gewählt. Im ersten Schritt funktioniert dies allerdings nicht, da es keinen vorhergehenden
Durchgang gibt. Dieser Fall benötigt daher eine gesonderte Behandlung. Momentan
funktioniert die Initialisierung durch eine Art ,,manuelles Handmatching". Dabei wird dem
Benutzer auf dem Monitor die gerenderte Hand in ihrem Startzustand gezeigt. Gleichzeitig
sieht er auf dem Bildschirm auch die von den Kameras aufgenommenen Bilder. Nun muss
der Benutzer seine Hand in eine Position bringen, in welcher sie in etwa der gerenderten
Hand entspricht. Für diesen Vorgang tauschen Benutzer und Rechner sozusagen ihre
Rollen, da die gerenderte Hand das Ziel ist welche mit der realen Hand in Übereinstimmung
gebracht werden soll. Ist dies geschehen, startet der Benutzer durch Knopfdruck den
Algorithmus und der Handtrackingvorgang läuft. Dieses etwas lästige Vorgehen ist nötig, da
ansonsten die Startposition des Algorithmus nichts mit der Position der realen Hand zu tun
hätte und das Verfahren nicht funktioniert. Bei einer Startposition, die zu weit von der Hand
entfernt ist, sucht der Algorithmus zu lange an einer falschen Stelle und findet die korrekte
Handstellung nicht. Ein weiterer Schwachpunkt ist die Notwendigkeit eine
Kamerakalibrierung immer dann durchführen zu müssen, wenn sich die Position mindestens
einer der Kameras verändert hat. Denn auch bei einer minimalen Bewegung einer Kamera
werden die Daten ungenau und das Verfahren unzuverlässig.

10
Abbildung 6: Ablaufdiagramm des Handtrackingverfahrens der Uni Bonn (hier mit zwei
Kameras)
1.3. Zielsetzung dieser Arbeit
Das Ziel der Arbeit liegt darin, einige Probleme des bestehenden Handtrackingsystems an
der Uni Bonn zu lösen. Wie im vorangegangenen Kapitel ausgeführt wurde, existieren vor
allem im Bereich der Initialisierung einige Schwachstellen. Daher soll hier ein Verfahren
präsentiert werden, welches die Handkontur ohne Vorkenntnis erkennen kann. Das
Verfahren soll in der Lage sein die Hand auch unter schwierigen Bedingungen wie
Verdeckung, schlechten Lichtverhältnissen oder verrauschten Bildern zu erkennen.
Hierdurch wird die Initialisierung des Handtrackingvorgangs erheblich vereinfacht.
Durch ein Verfahren zur Erkennung der Handkontur ohne Vorkenntnisse entfällt die
Notwendigkeit, zu Beginn ein ,,manuelles matching" durchzuführen. Der Benutzer muss
lediglich seine Hand zu Beginn des Trackings in einer vorgeschriebenen Geste zeigen, und
die Konturerkennung führt die Initialisierung durch. Eine auf diese Weise korrekt erkannte
Hand bietet eine sehr viel bessere Initialposition, als bei der manuellen Initialisierung. Der
Startzustand des Handtrackingalgorithmus wird demnach optimal bestimmt. Beim
anschließenden ersten Durchgang des Trackings der Hand startet das
Optimierungsverfahren dann aus einer ähnlichen Startposition, wie im weiteren Verlauf auch.

11
Dient während des Verfahrens der zuletzt erkannte Handzustand als Schätzung des
aktuellen, bietet die erkannte Handkontur am Anfang eine (mindestens) ebenso gute
Annahme.
In [9] wird eine Möglichkeit vorgestellt eine Kamerakalibrierung durch mehrere
Aufnahmen eines planaren Objektes zu erreichen. Da die Fingerspitzen der vier Finger
(ohne Daumen) einer ausgestreckten Hand in einer Ebene liegen, können diese demnach für
die Kalibrierung verwendet werden. Die Fingerspitze des Daumens liegt nicht immer in einer
Ebene mit den anderen Fingern, daher verwendet man sicherheitshalber nur die anderen
Finger. Man benötigt mehrere Bilder der ausgestreckten Hand, in denen die Fingerspitzen
korrekt erkannt wurden. Die vier Fingerspitzen zusammen mit den drei
Fingerzwischenpunkten reichen von der Anzahl her für die Kalibrierung völlig aus. Da bei der
Suche des Startzustands unter anderem auch die Fingerspitzen detektiert werden, können
diese Bilder auch hier verwendet werden. Dadurch, dass der Benutzer also zu Beginn seine
ausgestreckte Hand zeigt (siehe Abbildung 7) und etwas hin- und herbewegt, wird neben
einer optimalen Startposition auch das Problem der Kamerakalibrierung gelöst.
Bei dieser Herangehensweise stellt sich noch ein weiterer positiver Effekt ein. Durch
die Erkennung der Handkontur erhält man auch eine genaue Information darüber, wie die
Hautfarbe des Benutzers aussieht. Zwar kann man aus Trainingsdaten ganz gute statistische
Informationen über die Farbe der Haut gewinnen, aber dennoch ist es sinnvoll diese Daten
an den jeweiligen Benutzer anzupassen. Aber auch wenn der Benutzer nicht wechselt, ist
solch eine dynamische Initialisierung von Vorteil. Schon bei unterschiedlichen
Beleuchtungsverhältnissen sieht ein- und dieselbe Hand unter dem Gesichtspunkt der
Hautfarbebetrachtung anders aus. Daher wird hier die Hautfarbeerkennung des
Handtrackingalgorithmus schon vor Beginn des eigentlichen Trackings an die aktuellen
Gegebenheiten angepasst. Da bei jeder Benutzung des Systems diese Initialisierung
durchgeführt wird, ist das Handtrackingverfahren stets auf die aktuellen Verhältnisse
optimiert. Die Hautfarbe des aktuellen Benutzers wird ermittelt, in dem auf die
Segmentierung der Handkonturerkennung ein statistisches Verfahren anwendet. Ein solches
Verfahren wird in Kapitel 4.1 vorgestellt.
Im Folgenden wird eine Methode betrachtet, welche die Kontur der ausgestreckten
Hand im Bild findet. Damit kann das Bild in die zwei Regionen ,,Hand" und ,,Hintergrund"
eingeteilt werden. Diese Handkonturerkennung soll hier mit Hilfe von ,,Snakes" [4] (auch
,,active contours" genannt) durchgeführt werden. Snakes sind in der Computer Vision ein
allgemein bekanntes Verfahren zur Segmentierung von Bildern mit Hilfe von Informationen
aus Kanten und Linien in diesen Bildern. Sie bilden eine der erfolgreichsten Methoden die
Segmentierung auch unter Rauschen und fehlenden Bildinformationen durchzuführen.

12
Zusammenfassend folgen hier noch einmal stichpunktartig die Vorteile, welche sich
durch den Einsatz des im Folgenden näher vorgestellten Verfahrens zur
Handkonturerkennung für das Handtracking ergeben:
· Das Handtracking startet aufgrund der korrekt erkannten Handkontur aus dem
bestmöglichen Startzustand
· Die manuelle Kalibrierung der Kamera während des Setups wird durch eine
automatische Kalibrierung während der Initialisierung ersetzt
· Die Hautfarbesegmentierung wird auf die aktuellen Beleuchtungsverhältnisse und
den aktiven Benutzer angepasst
Abbildung 7: Eine ausgestreckte Hand; dies ist die zu erkennende Handstellung
Im Folgenden werden zunächst in Kapitel 2 verschiedene Instrumente vorgestellt die
gewünschte Handkonturerkennung durchzuführen. Mit der Optimierung zweier dort
vorgestellter Verfahren beschäftigt sich das dritte Kapitel. Außerdem sollen bessere
Ergebnisse dadurch erzielt werden, dass Vorabinformationen über die zu erkennende
Handstellung verwendet werden. Die Akkumulation dieser Informationen, sowie deren
Einsatz in den beiden Algorithmen wird in den Kapiteln 4, bzw. 5 beschrieben. Einen
Überblick über verschiedene Ergebnisse findet sich in Kapitel 6. Am Schluss der Arbeit wird
schließlich in Kapitel 7 ein kurzes Fazit gezogen, sowie ein Ausblick auf weitere
Entwicklungen gegeben.

13
2. Instrumente für die Segmentierung von Bildern
In diesem Kapitel geht es darum einige Ansätze vorzustellen, Bilder in verschiedene
Regionen zu segmentieren. Dabei ist es das Ziel ein bestimmtes Objekt im Bild zu finden.
Dieses Objekt soll nach der durchgeführten Segmentierung vollständig in einer Region liegen
und von einer Kontur begrenzt sein. Die Region außerhalb der Kontur bildet den Hintergrund.
Alle hier vorgestellten Verfahren sind auch in der Lage mehrere Objekte zu segmentieren,
aber im Folgenden wird lediglich der Fall eines einzigen zu erkennenden Objekts betrachtet.
Diese Annahme vereinfacht die Betrachtung und stellt keine Einschränkung dar, da im hier
betrachteten Problem ebenfalls nur ein Objekt (die Hand) erkannt werden soll. Das Problem
der Segmentierung lässt sich als eine Minimierungsaufgabe auffassen:
Kontur
min f (Bild, Kontur) (2.1)
Es wird also diejenige Kontur gesucht, welche eine Funktion
f
minimiert. Die nachfolgenden
Verfahren orientieren sich dabei vor allem an Kanteninformationen im Bild. Daher hat die
Funktion
f
die Gestalt einer Fehlerfunktion, welche solchen Konturen einen hohen Fehler
zuordnet die nicht auf Bildkanten liegen. Zur Verdeutlichung der zu optimierenden Parameter
und damit auch der Gestalt von
f
helfen folgende Veranschaulichungen:
Abbildung 8: Beispielsegmentierung für eine Ellipse
In Abbildung 8 sieht man zwei mögliche Segmentierungen für die Ellipse im Bild. Die grüne
Kontur teilt das Bild in zwei Bereiche. Dabei soll der innere Bereich die
Ergebnissegmentierung der Ellipse, und der äußere den Hintergrund darstellen. Jedoch
scheinen beide Segmentierungen nicht korrekt zu sein.
Im linken Bild korrespondiert die Kontur zwar mit den Bildinformationen, trotzdem
wurde die Ellipse nicht erkannt. Der Grund liegt darin, dass zwar die Lage der Ellipse, nicht
aber deren Größe erkannt wurde. Wäre die Kontur kürzer, aber ansonsten identisch, wäre
das Ergebnis korrekt. Im rechten Bild stimmt zwar die Lage der Kontur in etwa mit den
Kanten der Ellipse überein, aber sie liegt dennoch nicht direkt auf den Kanten. Hier ist der

14
Grund, dass die Krümmung der Kontur höher als nötig ist. Wäre sie so glatt wie im linken
Beispiel, so ergäbe sich auch hier eine korrekte Lösung. Bei dem hier betrachteten Problem
würde man solch eine Segmentierung erwarten:
Abbildung 9: Korrekte Segmentierung der Ellipse
In Abbildung 10 sieht man ein Eingabebild, in dem es offensichtlich drei verschiedene
Regionen gibt. Die Segmentierung im linken der beiden Bilder hat sowohl den weißen als
auch den gelben Bereich als Objekt erkannt. Die erkannte Kontur spiegelt zwar auch eine
Ellipse wieder, jedoch hätte man dieses Ergebnis nicht erwartet. Der Grund hierfür liegt
darin, dass man für das segmentierte Objekt eine homogene Struktur erwartet. In dem hier
betrachteten Fall erwartet man, dass das Innere der Kontur eine gleichmäßige Farbe
aufweist. Dies ist im linken Ergebnis nicht der Fall, da der Algorithmus den Farbwechsel von
gelb nach weiß nicht erkannt hat. Im rechten Bild wurde die Ellipse so erkannt, wie man es
erwarten würde. Das erkannte Objekt hat hier gleichmäßige Farbwerte.
Abbildung 10: Zwei Segmentierungen einer Doppelellipse
Die betrachteten Beispiele machen klar, welche Anforderungen an das Ergebnis der
Segmentierung gestellt werden. Zum einen sollte die resultierende Kontur natürlich zu den
Bildinformationen korrespondieren. Es ist aber auch wichtig, dass sie nicht unnötig lang und

15
möglichst glatt ist. Außerdem sollte das segmentierte Objekt eine homogene Struktur
besitzen.
Die folgenden Ansätze basieren darauf, eine Fehlerfunktion derart zu definieren, dass
die daraus resultierende Kontur eine zufrieden stellende Segmentierung des Zielobjekts
liefert. Bei den ersten beiden Ansätzen der Snakes und der Diffusion Snakes werden dazu
primär die Kanteninformationen des Bildes verwendet. Dazu ermittelt man für das
Eingabebild zunächst seinen Gradienten. Dieser Gradient beschreibt die Veränderung der
Farbe in x- und y-Richtung und hat daher an Bildkanten einen sehr hohen Wert. Das dritte im
Folgenden vorgestellte Verfahren der Simplified Diffusion Snakes benutzt keine expliziten
Kanteninformationen, sondern sorgt dafür, dass die Region innerhalb der Kontur eine
homogene Farbe besitzt. Allen drei Methoden ist gemeinsam, dass sie die Optimierung mit
einem Gradientenabstieg durchführen. Zum Abschluss wird für die beiden zuletzt
eingeführten Methoden die Möglichkeit eingeführt, Vorabinformationen in das Verfahren zu
implementieren, um so bessere Resultate zu erzielen.
2.1. Snakes
Snakes wurden zuerst in [4] als Möglichkeit vorgestellt, Konturen in einem Bild zu finden. Der
Begriff Snake kommt von der Art und Weise wie die Kurve in diesem Verfahren evolviert.
Anschaulich legt sich die Kontur während der Minimierung schlangenartig auf die Bildkanten.
Snakes können als Energiefunktional aufgefasst werden. Dabei gilt es diejenige Position der
Kontur im Bild zu finden welche das Funktional minimiert. Im Falle der Snakes sieht das
Funktional so aus:
1
*
snake
snake
0
E
E
(v(s))ds
=
(2.2)
Dabei ist die Kontur auf dem Intervall [0,1] parametrisiert und definiert als:
v(s) (x(s), y(s))
=
(2.3)
Die Gesamtenergie setzt sich aus 3 Summanden zusammen:
1
*
snake
int
image
con
0
E
[E (v(s)) E
(v(s)) E (v(s))]ds
=
+
+
(2.4)
Dabei bezeichnet
int
E
die interne Energie der Snake,
image
E
die Energie welche sich aus
dem Bild ergibt und
con
E
kann weitere Einschränkungen (constraints) enthalten. Die interne
Energie
int
E
sieht folgendermaßen aus:
2
2
2
int
2
v
v
E (v(s))
(s)
(s)
s
s
=
+
(2.5)

16
Dabei bezeichnet man
(s)
als Elastizität, da es die Länge der Snake kontrolliert und
(s)
als Steifheit, da es die Krümmung beinhaltet. Lässt man die anderen Terme außer Acht sorgt
die interne Energie dafür, dass die Kontur der Snake möglichst kurz und glatt ist. Sind keine
anderen Informationen vorhanden würde die interne Energie dafür sorgen, dass die Kontur
zu einem Punkt kollabiert, denn in diesem Zustand sind minimale Länge und optimale
Glattheit erreicht. Im allgemeinen Fall werden natürlich Bildinformationen zur Verfügung
stehen. Dann zieht die interne Energie die Kontur lediglich etwas zusammen.
Die Bildenergie kann mehrere Formen aufweisen. Am meisten eingesetzt wird die
Form als Kantenterm:
2
image
edge
E
(v(s)) E
(v(s))
f (x(s), y(s))
=
= -
(2.6)
Hier bezeichnet
f (x, y)
den Grauwert eines Bildes an der Stelle
(x, y)
. Der Betrag des
Gradienten geht negativ in die Formel ein, da es sich um eine Minimierungsaufgabe handelt.
Die Gesamtenergie soll minimiert werden, und dieser Term liefert dann einen möglichst
niedrigen Beitrag, wenn die Kontur der Snake auf Bildpunkten mit einem hohen Gradienten
liegt. Ein auf diese Weise konstruierte Kontur wird also von den im Bild vorhandenen Kanten
angezogen und ,,legt sich" auf diese. Dabei verhindert die interne Energie, dass die Kontur
unnötig lang wird. Es stellt sich also im Laufe der Minimierung ein Gleichgewicht zwischen
den einzelnen Energietermen ein.
Möchte man nun solch eine Snake zur Optimierung einsetzen bietet sich eine
Diskretisierung an, denn eine analytische Lösung des Problems ist in den meisten Fällen
nicht zu erzielen. Der Vorteil einer Diskretisierung liegt darin, dass man das Verhalten der
Snake nicht über dem gesamten parametrisierten Bereich betrachten muss, sondern nur an
endlich vielen Punkten. Damit erhält man eine (beliebig genaue) Approximation des
Problems, welche für eine Implementierung praktikabel ist. Man betrachtet nun n Punkte
entlang der Kontur und bekommt somit:
n
*
snake
snake
i
i 1
E
E
(v )
=
(2.7)
Dabei bezeichnet man die
i
i
i
i
v
v(s ) (x , y )
=
=
als Abtastpunkte.
Um die Optimierung durchzuführen muss (2.7) nun abgeleitet werden. Dies führt zu:
n
*
snake
snake
i
i 1
n
snake
i
i 1
n
int
i
image
i
con
i
i 1
E
E
(v )
E
(v )
E (v ) E
(v ) E (v )
=
=
=
=
=
+
+

17
n
*
snake
int
i
image
i
con
i
i 1
2
2
n
2
i
i
i
i
image
i
con
i
2
i 1
E
E (v )
E
(v )
E (v )
v
v
(v )
(v )
(v )
(v )
E
(v )
E (v )
s
s
=
=
+
+
=
+
+
+
In [4] wird nun als Vereinfachung angenommen, dass
i
(v )
und
i
(v )
konstant sind. Die
Veränderung der Ergebnisse ist hierdurch nur minimal und kann daher vernachlässigt
werden. Man macht lediglich die Annahme, dass entlang der Kontur überall in etwa die
gleiche Steifheit und Elastizität herrscht. Dies mag lokal nicht immer korrekt sein, aber für
genügend glatte Konturen, die hier zum Einsatz kommen, konvergiert das Verfahren
trotzdem. Die Rechnung vereinfacht sich dadurch und man erhält:
2
2
2
n
*
snake
i
i
i
i
image
i
con
i
2
i 1
2
2
2
n
i
i
image
i
con
i
2
i 1
2
4
n
i
i
image
i
con
i
2
4
i 1
v
v
E
(v )
(v )
(v )
(v )
E
(v )
E (v )
s
s
v
v
(v )
(v )
E
(v )
E (v )
s
s
v
v
(v )
(v )
E
(v )
E (v )
s
s
=
=
=
+
+
+
=
+
+
+
=
+
+
+
Fügt man für die einzelnen Energieterme noch Gewichte ein, so erhält man eine Vorschrift
um einen Schritt des Gradientenabstiegs durchzuführen:
2
4
i
i
int
i
i
image
image
i
con
con
i
2
4
v
v
v
v
w
(v )
(v )
w
E
(v ) w
E (v )
s
s
-
+
+
+
(2.8)
2.2. Diffusion Snakes
Die Idee der Diffusion Snakes [5] geht auf das Mumford-Shah-Funktional [6] zurück. Dieses
Energiefunktional lautet:
2
2
2
i
C
1
1
E (u,C)
(f u) dx
u dx
C
2
2
-
=
-
+
+
(2.9)
Hier bezeichnet
f
das Eingabebild,
u
eine Approximationsfunktion des Eingabebildes,
die Bildebene,
C
die Kontur der Snake und
C
die Länge der Kontur.
Die drei Terme des Fehlerfunktionals (2.9) haben folgende Bedeutungen: Der erste
Term sorgt dafür, dass die Approximationsfunktion nicht zu weit vom Bild abweicht. Das ist
eine sinnvolle Annahme, da eine Approximationsfunktion, welche keinen Bezug mehr zu den
Daten des Eingabebildes besitzt, keinen Wert hat. Im zweiten Term werden alle Kanten der

Details

Seiten
Erscheinungsform
Originalausgabe
Jahr
2006
ISBN (eBook)
9783836605359
DOI
10.3239/9783836605359
Dateigröße
3.8 MB
Sprache
Deutsch
Institution / Hochschule
Rheinische Friedrich-Wilhelms-Universität Bonn – Computergrafik, Informatik
Erscheinungsdatum
2007 (September)
Note
1,3
Schlagworte
handtracking hautfarbesegmentierung gestenerkennung diffusion snake handkonturerkennung
Zurück

Titel: Robuste Handkonturerkennung
book preview page numper 1
book preview page numper 2
book preview page numper 3
book preview page numper 4
book preview page numper 5
book preview page numper 6
book preview page numper 7
book preview page numper 8
book preview page numper 9
book preview page numper 10
book preview page numper 11
book preview page numper 12
book preview page numper 13
book preview page numper 14
book preview page numper 15
book preview page numper 16
book preview page numper 17
book preview page numper 18
86 Seiten
Cookie-Einstellungen