Mit der Aufgabe „MediaPipe-Gestenerkennung“ können Sie Handgesten in Echtzeit erkennen zeigt die erkannten Handgesten-Ergebnisse sowie Orientierungspunkte der Hände, die erkannt wurden. Mit dieser Aufgabe können Sie bestimmte Handgesten von einem und App-Funktionen aufrufen, die diesen Gesten entsprechen.
Diese Aufgabe arbeitet mit Bilddaten mit einem ML-Modell und akzeptiert entweder statische Daten oder einen kontinuierlichen Stream. Die Aufgabe gibt Hand-Markierungen Bildkoordinaten, Handsymbole in Weltkoordinaten, Händigkeit (links/rechts) und die Gesten-Kategorien mit mehreren Händen.
<ph type="x-smartling-placeholder"></ph> Jetzt testen!
Jetzt starten
Beginnen Sie mit dieser Aufgabe, indem Sie einen dieser Implementierungsleitfäden für Ihr Zielplattform. Diese plattformspezifischen Anleitungen führen Sie durch Implementierung dieser Aufgabe unter Verwendung eines empfohlenen Modells und stellen Codebeispiele bereit mit den empfohlenen Konfigurationsoptionen:
- Android – Codebeispiel – Leitfaden
- Python – Codebeispiel – Leitfaden
- Web – Codebeispiel – Leitfaden
Taskdetails
In diesem Abschnitt werden die Funktionen, Eingaben, Ausgaben und Konfiguration beschrieben. Optionen dieser Aufgabe.
Funktionen
- Verarbeitung von Eingabebildern – Die Verarbeitung umfasst Rotation, Größenanpassung und Normalisierung und Farbraumkonvertierung.
- Punktzahl-Schwellenwert - Filtern Sie Ergebnisse basierend auf den Vorhersagewerten.
- Zulassungsliste und Sperrliste für Labels: Sie können die Gestenkategorien festlegen. vom Modell erkannt wird.
Aufgabeneingaben | Aufgabenausgaben |
---|---|
Die Gestenerkennung akzeptiert Eingaben eines der folgenden Datentypen: <ph type="x-smartling-placeholder">
|
Die Gestenerkennung gibt die folgenden Ergebnisse aus: <ph type="x-smartling-placeholder">
|
Konfigurationsoptionen
Diese Aufgabe hat die folgenden Konfigurationsoptionen:
Option | Beschreibung | Wertebereich | Standardwert | |
---|---|---|---|---|
running_mode |
Legt den Ausführungsmodus für die Task fest. Es gibt drei
Modi: IMAGE: Der Modus für Einzelbildeingaben. VIDEO: Der Modus für decodierte Frames eines Videos. LIVE_STREAM: Der Modus für einen Livestream mit Eingabe zum Beispiel von einer Kamera. In diesem Modus muss der resultListener wird aufgerufen, um einen Listener für den Empfang von Ergebnissen einzurichten asynchron programmiert. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
|
num_hands |
Die maximale Anzahl von Händen kann erkannt werden durch
GestureRecognizer .
|
Any integer > 0 |
1 |
|
min_hand_detection_confidence |
Der minimale Konfidenzwert für die Handerkennung im Handflächenerkennungsmodell als erfolgreich erachtet. | 0.0 - 1.0 |
0.5 |
|
min_hand_presence_confidence |
Der minimale Konfidenzwert des Handpräsenzwerts in der Hand Erkennung von Sehenswürdigkeiten. Im Video- und Livestreammodus der Bewegungserkennung wenn der Wert für die Konfidenz der Hand-Anwesenheit des Hand-Landmark-Modells unter dem folgenden Wert liegt: wird das Handflächenerkennungsmodell ausgelöst. Andernfalls wird ein mit einem leichten Handverfolgungs-Algorithmus die Hand(n) für die nachfolgende Erkennung von Sehenswürdigkeiten. | 0.0 - 1.0 |
0.5 |
|
min_tracking_confidence |
Der minimale Konfidenzwert für das Hand-Tracking, das berücksichtigt werden soll erfolgreich war. Dies ist der IoU-Grenzwert des Begrenzungsrahmens zwischen den Händen im den aktuellen und den letzten Frame. Im Video- und Stream-Modus von Gestenerkennung: Wenn das Tracking fehlschlägt, löst die Gestenerkennung die Hand aus. -Erkennung. Andernfalls wird die Handerkennung übersprungen. | 0.0 - 1.0 |
0.5 |
|
canned_gestures_classifier_options |
Optionen zum Konfigurieren des Verhaltens des Klassifikators für gespeicherte Gesten. Die vorgefertigten Touch-Gesten sind ["None", "Closed_Fist", "Open_Palm", "Pointing_Up", "Thumb_Down", "Thumb_Up", "Victory", "ILoveYou"] |
|
|
|
custom_gestures_classifier_options |
Optionen zum Konfigurieren des Verhaltens des benutzerdefinierten Gestenklassifikators. |
|
|
|
result_callback |
Legt den Ergebnis-Listener so fest, dass er die Klassifizierungsergebnisse empfängt
asynchron, wenn sich die Bewegungserkennung im Livestream-Modus befindet.
Kann nur verwendet werden, wenn der Ausführungsmodus auf LIVE_STREAM festgelegt ist |
ResultListener |
– | – |
Modelle
Für die Gestenerkennung wird ein Modell-Bundle mit zwei vorkonfigurierten Modell-Bundles verwendet: ein Hand-Landmark-Modell-Bundle und Gestenklassifizierung-Modell-Bundle Die das Modell der Anwesenheit von Händen und Handgeometrie erkennt, und die Geste Erkennungsmodell erkennt Gesten anhand der Handgeometrie.
<ph type="x-smartling-placeholder">Modellname | Eingabeform | Quantisierungstyp | Modellkarte | Versionen |
---|---|---|---|---|
<ph type="x-smartling-placeholder"></ph> HandGestureClassifier | 192 x 192, 224 x 224 | Gleitkommazahl 16 | <ph type="x-smartling-placeholder"></ph> Informationen | <ph type="x-smartling-placeholder"></ph> Neueste |
Diese Aufgabe unterstützt auch die Änderung des Modell-Bundles mit Model Maker. Weitere Informationen zum Anpassen von Modellen für diese Aufgabe mit Model Maker finden Sie unter Modelle für die Gestenerkennung anpassen.
Paket mit Sehenswürdigkeiten
Das Hand-Landmark-Modell-Bundle erkennt die Schlüsselpunktlokalisierung von 21 Handringen innerhalb der erkannten Handbereiche. Das Modell wurde mit etwa 30.000 realen Bildern sowie mehrere gerenderte synthetische Hand- verschiedenen Hintergründen zu testen. Nachfolgend finden Sie eine Definition zu den 21 Markierungen:
Das Hand-Landmark-Modell enthält ein Palmerkennungsmodell und Modell zur Erkennung von Hand-Sehenswürdigkeiten. Das Palmerkennungsmodell lokalisiert die Region vom gesamten Eingabebild aus. Das Modell zur Erkennung von Hand-Markierungen findet die Orientierungspunkte auf dem zugeschnittenen Bild von Hand, die durch das Handflächenerkennungsmodell definiert wurden.
Da das Handflächenerkennungsmodell im Videomodus oder Live im Streammodus verwendet, nutzt die Gestenerkennung einen Begrenzungsrahmen, der von der erkannten Hand definiert wird. Sehenswürdigkeiten im aktuellen Frame, um den Bereich der Hände im nächsten zu lokalisieren Frame. Dadurch verkürzt sich die Zeit, in der die Gestenerkennung das Modell zur Handflächenerkennung auslöst. Nur wenn das Modell der Hand-Landmarks nicht mehr genug die erforderlichen oder das Hand-Tracking funktioniert nicht, wird das Handflächenerkennungsmodell aufgerufen, um die Hände neu zu lokalisieren.
Modell-Bundle für die Bewegungsklassifizierung
Das Modellpaket zur Bewegungsklassifizierung kann die folgenden häufigen Handgesten erkennen:
0 - Unrecognized gesture, label: Unknown
1 - Closed fist, label: Closed_Fist
2 - Open palm, label: Open_Palm
3 - Pointing up, label: Pointing_Up
4 - Thumbs down, label: Thumb_Down
5 - Thumbs up, label: Thumb_Up
6 - Victory, label: Victory
7 - Love, label: ILoveYou
Erkennt das Modell zwar Ihre Hände, aber keine Geste, Erkennung gibt das Ergebnis "None" zurück. Wenn das Modell keine Hände erkennt, gibt das Feld für die Bewegungserkennung leer zurück.
Das Bundle für das Gestenklassifizierungsmodell enthält die zweistufige neuronale Netzwerkpipeline mit einem Modell zum Einbetten von Gesten, gefolgt von einem Modell zur Bewegungsklassifizierung. Weitere Informationen finden Sie auf der Karte mit dem Modell zur Bewegungsklassifizierung.
Das Modell für die Bewegungseinbettung codiert die Bildmerkmale in einen Featurevektor. Das Klassifizierungsmodell ist ein kompakter Gestenklassifikator, Vektoren als Eingabe an. Das bereitgestellte Paket mit dem Modell zur Bewegungsklassifizierung enthält Folgendes: Klassifikator für gespeicherte Gesten, der die 7 häufigen Handgesten erkennt, oben. Du kannst das Modell-Bundle erweitern, um durch Training mehr Gesten zu erkennen Ihren eigenen benutzerdefinierten Gestenklassifikator. Weitere Details finden Sie unten. Benutzerdefinierte Modelle.
Gestenerkennung mit vorgefertigtem Gestenklassifikator und benutzerdefiniertem Gestenklassifikator bevorzugt die benutzerdefinierte Geste, wenn beide Klassifikatoren in ihre Kategorien. Erkennt nur ein Gestenklassifikator die Geste, Die Gestenerkennung gibt die erkannte Geste direkt aus.
Aufgaben-Benchmarks
Hier sind die Aufgaben-Benchmarks für die gesamte Pipeline basierend auf vortrainierten Modellen. Das Latenzergebnis ist die durchschnittliche Latenz auf Pixel 6 mit CPU / GPU.
Modellname | CPU-Latenz | GPU-Latenz |
---|---|---|
GestureRecognizer | 16,76 ms | 20,87 ms |
Benutzerdefinierte Modelle
Wenn Sie die Funktionen der Modelle in diesem
können Sie die vorhandenen Modelle mit dem Modell-Erstellungstool ändern. Verwendete benutzerdefinierte Modelle
mit MediaPipe muss das Format .task
haben, bei dem es sich um eine Modell-Bundle-Datei handelt. Ich
sollten erwägen, die bereitgestellten Modelle für diese Aufgabe mit Model Maker zu ändern
bevor Sie Ihre eigenen erstellen.
Weitere Informationen zum Anpassen eines Modells für diese Aufgabe finden Sie unter Modelle für die Gestenerkennung anpassen