4 Navigation mit Gesten
4.4 Die Techniken für Erkennung der Gesten

Das übergeordnete Ziel der Handgestenerkennung ist die Interpretation der folgenden Möglichkeiten: die Hand Lage oder Haltung bzw. Geste.

Die Gestenerkennung kann auf zwei Arten durchgeführt werden. Entweder wird ein Datenhandschuh verwendet, der die Information über Flexion in eine elektronische Form verwandelt, oder es wird ein Vision-basierten Ansatz angewendet, wo eine Kamera als menschliches Auge dient und Körperpositionen aufzeichnet. Die Körperpositionen werden dann durch Bildverarbeitung extrahiert [5].

Es ist klar, dass die erste Methode präzisere Ergebnisse bringen kann, weil es sich um eine direkte und genaue Beobachtung des aktuellen Status des betreffenden Teils des menschlichen Körpers handelt.

Der Vision-basierte Ansatz, andererseits hat keine anderen Anforderungen an die Ausrüstung für den Endverbraucher (mit Ausnahme der Kamera) und ist für allgemeine Anwendung geeignet [5].

Ein Datenhandschuh ist ziemlich unangenehm in Bezug auf die Benutzerfreundlichkeit. Die benötigte Ausrüstung, um das Verfahren zu verwenden, ist für die meisten Standard-Kunden inakzeptabel teuer und ist nur für den speziellen Einsatz geeignet.

Der Nachteil des sichtbasiertes Verfahren liegt jedoch in algorithmische Komplexität weil eine beträchtliche Menge an Zeit und Rechenleistung erforderlich ist, um Körperbewegungen zu extrahieren [5].

Es stehen verschiedene Algorithmen zur Verfügung, welche sich auf die verschiedenen Aspekte und Annahmen der gestikulierten Person konzentrieren. Im Allgemeinen können die Algorithmen in zwei Kategorien unterteilt werden, und zwar Aussehen basierte Ansätze und 3D Modell basierte Ansätze. Die 3D-Modell-basierten Ansätze vergleichen die Eingangsparameter eines Gliedes mit einer 2D-Projektion seines 3D-Modells. Der auf Aussehen basierte Ansatz verwendet Bildmerkmale für die Modellierung der visuellen Erscheinung eines Gliedes und vergleicht sie mit Bildmerkmalen, die aus dem Videoeingang extrahiert wurden [5].

In Abschnitt 4.1 wurden drei Geste Typen definiert. Ein allgemeiner Klassifikator wird verwendet, um statische Gesten zu erkennen (das heißt Körperhaltungen). Unter dem Klassifikator verstehen wir - ein Merkmal oder eine Eigenschaft, basierend auf dem wir über die Zuordnung zu einer Gruppe oder Kategorie entscheiden. Der Klassifikator sagt aus, welche Geste oder Haltung erkannt wurde. Dynamische Handgesten haben auch einen zeitlichen Aspekt und erfordern Techniken, die diese Dimension behandeln, das heißt Hidden-Markov-Modelle (HMM). Ein anderer Weg ist die Verwendung von bewegungsbasierten Modellen.

Einige der Techniken für statische (und dynamische) Gestenerkennung sind K-means Algorithmen, KNN, SVM, der bereits erwähnten HMM-Algorithmus, der DTW-Algorithmus oder neuronale Netze [3].

Die Techniken für Erkennung der statischen Gesten

Für eine schnellere Datenverarbeitung arbeitet man im Prozess der Gestenerkennung nicht mit dem ganzen Bild.

Nachdem die Hand automatisch erkannt wurde, markiert man den Bereich um das Bild, nun wird nur dieser Bereich verarbeitet. Dies reduziert die Berechnungskomplexität. Erhaltene Abstände werden in Grautöne umgewandelt und so erhalten wir die Umrisse der Hand.

Im Folgenden Text werden zwei Verfahren beschrieben, welche für den Erkennungsprozess benutzt werden.

Methode der Konvex Mängel

Im ersten Schritt muss die Hand vom Hintergrundbild getrennt werden. Die Trennung kann man basierend auf dem Tiefenbild machen, wo bestimmt wird, ob das Pixel zur Hand gehört oder nicht. Der zweite Schritt ist die Kontur der Hand zu bestimmen.

Die Formen der zahlreichen komplexen Objekte sind gut durch konvexe Defekte charakterisiert. Abb. 4.3 zeigt das Konzept der konvexen Defekte auf dem Beispiel der Figur der Hand. Konvexe Hülle ist als eine dunkle Linie die den Handbereich markiert. Die Bereiche A bis H sind "Mängel" die zu diesem Paket gehören. Wie man sehen kann, charakterisieren diese konvexen Defekte den Zustand der Hand.

Der Algorithmus liefert die Koordinaten von drei Punkten, von dem Ausgangspunkt, tiefstem Punkt und dem Endpunkt (Abb. 4.4). Der tiefste Punkt kann man als der maximale Abstand zwischen der Hülle und den Konturen der Hand verstehen.

image
Abb. 4.3 –Konvexe Hülle dargestellt als dunkle Linie um die Hand
image
Abb. 4.4 - Der markierte Bereich stellt die konvexen Defekte dar und besteht aus drei Punkten: Ausgangspunkt (links), der tiefste Punkt (unten) und Endpunkt (oben)

Das Ziel des Algorithmus ist es, den Punkt auf dem Finger finden, der am weitesten von der Mitte der Handfläche entfernt ist. Der erste Schritt ist, alle Fehler zu beseitigen, deren Größe geringer ist als ein spezifizierter Wert. Dann entfernen wir die Fehler, die einen Abstand zwischen Ausgangspunkt und Maximalpunkt darstellen, der größer ist als ein bestimmter Wert und dynamisch definiert wird (wenn zwei Punkte zu weit sind, bedeutet dies, dass sie nicht einen Finger darstellen können). Als nächstes werden auch die Fehler entfernt, die einen geringeren Abstand zwischen Startpunkt und Tiefenpunkt besitzen als ein vorgegebener Wert. Dieser Wert ändert sich dynamisch entsprechend der Größe des Bereichs, wo die Hand erfasst wird (Abb. 4.5). Der letzte Schritt ist es, alle Defekte zu entfernen, die unterhalb des Handgelenks auftreten.

image
Abb. 4.5 – Darstellung der Logik die Dreiecke zum Minimieren der Fehler benutzt (das Bild oben links zeigt die maximalen Punkte, das Bild oben rechts zeigt die tiefsten Punkte, das Bild unten links zeigt die Minimalpunkte und das Bild unten rechts zeigt das resultierende Dreieck)

Erkennung von Handgesten basierend auf Teile

Im ersten Schritt des Algorithmus sind die Teile der Daten (Datenscheiben), die eine Hand beinhalten extrahiert und in ein binäres Bild umgewandelt. Die Mitte der Handfläche (Abb. 4.6) wird aus dem inneren Kreis und aus dem Hinzufügen eines Punktes auf der Hülle der Kontur berechnet, die Hand umfasst und hat einen maximalen Abstand vom entdeckten Fehler.

image
Abb. 4.6 – Die Suche nach Mitte der Handfläche

Alle Punkte der Kontur der Hand sind auf der X-Achse eingetragen. Die Y-Achse beschreibt den relativen Abstand der einzelnen Punkte von der Mitte der Handfläche. Alle eingetragenen Punkte bilden eine Kurve (Abb. 4.7).

image
Abb. 4.7 – Kurvendarstellung

Der nächste Schritt ist die Kurve des Algorithmus zu analysieren und ein lokales Maximum zu finden. Nach einer vollständigen Analyse der Kurve und dem gefundenen Maximum, kann man mit der Fingersuche beginnen. Der Abstand von jedem Maximum wird mit dem eingestellten Grenzwert verglichen. Jeder Finger hat ein spezifisches Gewicht und Verhältnis zu den anderen Fingern. Darauf basierend können die Finger erkannt werden (das Gewicht wird mit vorgegebenen Werten verglichen und das ergibt die Anzahl von Fingern, d.h. wenn Gewicht <1,5 x das durchschnittliche Gewicht - Segment enthält einen Finger, usw.). Dieser Algorithmus funktioniert auch, wenn die Finger verbunden sind (Abb. 4.8).

image
Abb. 4.8 – Erkannte Finger

Die Techniken für Erkennung der dynamischen Gesten

Dynamische Gesten erlauben einen Zugang zu geschützten Bereichen oder ermöglichen die Steuerung eines Systems oder einer Anwendung. Man kann sie auch als Passwortschlüssel verwenden. Die Gestenerkennung begann mit dem Einsatz neuronaler Netze und genetischer Algorithmen.

Diese Techniken hatten annehmbare Erkennungsrate, aber der größte Nachteil war die Menge der benötigten Rechenleistung und die benötigte Zeit, um die neuronalen Netze zu trainiert. Das war inakzeptabel für praktische Anwendungen.

Heutzutage werden neue Techniken der Gestenerkennung verwendet. Es wurden Algorithmen entwickelt, die neuronale Netze nicht erfordern, wie zum Beispiel Golden Section Search, Incremental Erkennungs-Algorithmus und Wahrscheinlichkeitsmodelle wie Hidden-Markov-Modell (HMM). Zur Erhöhung der Erfolgsrate der genannten Algorithmen kann man Maschinenlernen verwenden. In den letzten Jahren wurden die HMM Methoden sehr beliebt. Der Hauptgrund dafür ist, dass der HMM Ansatz wohlbekannt ist und in vielen Bereichen verwendet wird.

Der Algorithmus von Kristensson und Denby [4] ursprünglich vorgeschlagen für digitale Stiftstriche und Touch-Screen-Geräte kann auch für dynamische Gesten erweitert werden.

In dem Algorithmus wird eine Vorlage als eine Reihe von Segmenten definiert, um die Geste zu beschreiben. Es ist offensichtlich, dass eine Geste nur dann erfolgreich Erkannt werden kann, wenn eine genügende Anzahl von Segmenten ausgeführt wurden (Abb. 4.9).

image
Abb. 4.9 – Vorschau der Testanwendung. Die rote Linie zeigt die ausgeführte Geste. Die Vorlagen unter dem Bild repräsentieren die wahrscheinlichsten Gesten (von links nach rechts). Für jede Figur kann man den Wert der Wahrscheinlichkeit für die entsprechende Geste sehen.

Die Verwendung von Gesten wurde um Streichgesten erweitert. Diese Art der Geste bringt einen sehr natürlichen und bequemen Ansatz. Streichgesten sind für schnelles navigieren in Menüs, Programmen und Galerien bestimmt und unterstützten vier Richtungen für jede Hand und ein paar Links-Rechts-Kombinationen. Die Methode Circle Dynamic Gesture Recognition (CNGR) wurde in [1] veröffentlicht und basiert auf Handerkennung, Bewegungsgeschwindigkeit und Abstand. Wenn die menschliche Hand schnellere Bewegung macht und den inneren Kreis verlässt verarbeitet das System diese Bewegung und bestimmt die Geste. Die Geste wird durch den Winkel der Bewegung vom mittleren bis zum äußeren Kreis gegeben. Diese Gesten sind möglich: Streichen nach links, rechts, oben und unten. Die gleichen Gesten können auch mit beiden Händen erfolgen. Der Benutzer kann auch eine Zoom-in und Zoom-out Geste durchführen (Abb. 4.10).

image
Abb. 4.10 – CDGR Gestenerkennung