Ultralytics YOLO27:

Hand-Keypoints-Datensatz#

Einleitung#

Der Hand-Keypoints-Datensatz von Ultralytics enthält 26.768 Bilder von Händen, die jeweils mit 21 Keypoints annotiert sind. Die Annotationen wurden mit der Bibliothek Google MediaPipe erstellt, um eine hohe Genauigkeit und Konsistenz zu gewährleisten. Der Datensatz ist mit den Formaten von Ultralytics YOLO26 kompatibel, um Modelle zur Posenschätzung zu trainieren.



Watch: Hand Keypoints Estimation with Ultralytics YOLO | Human Hand Pose Estimation Tutorial

Keypoints#

Diagramm der Hand-Keypoints mit 21 Punkten

Jede Hand ist wie folgt mit 21 Keypoints annotiert:

  1. Handgelenk
  2. Daumen (4 Punkte)
  3. Zeigefinger (4 Punkte)
  4. Mittelfinger (4 Punkte)
  5. Ringfinger (4 Punkte)
  6. Kleiner Finger (4 Punkte)

Datensatzstruktur#

  • Bilder insgesamt: 26.768 (18.776 Training / 7.992 Validierung).
  • Klassen: 1 (Hand).
  • Keypoints: 21 pro Hand mit (x, y, visibility)-Tripeln.
  • Downloadgröße: ~369 MB.

Für ein benutzerdefiniertes Gestenvokabular, das über allgemeine Hand-Landmarks hinausgeht, ermöglicht dir die Ultralytics Platform, deinen eigenen Datensatz direkt im Browser zu annotieren und zu trainieren.

Anwendungen#

Hand-Keypoints unterstützen verschiedene Anwendungen in der Praxis:

  • Gestenerkennung: Mensch-Computer-Interaktion und berührungslose Steuerungsschnittstellen.
  • AR/VR-Steuerung: Präzise Interaktion mit virtuellen Objekten.
  • Robotische Manipulation: Fein abgestimmte Steuerung von Roboterhänden.
  • Gesundheitswesen: Analyse von Handbewegungen für medizinische Diagnosen.
  • Animation: Bewegungserfassung für realistische Handbewegungen.
  • Biometrische Authentifizierung: Sicherheitssysteme auf Grundlage der Handgeometrie.

Dataset-YAML#

Eine YAML-Datei dient zur Definition der Datensatzkonfiguration. Sie enthält Informationen zu den Pfaden, Klassen und weiteren relevanten Aspekten des Datensatzes. Beim Hand-Keypoints-Datensatz wird die Datei hand-keypoints.yaml unter https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/hand-keypoints.yaml gepflegt.

ultralytics/cfg/datasets/hand-keypoints.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# Hand Keypoints dataset by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/hand-keypoints
# Example usage: yolo train data=hand-keypoints.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── hand-keypoints ← downloads here (369 MB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: hand-keypoints # dataset root dir
train: images/train # train images (relative to 'path') 18776 images
val: images/val # val images (relative to 'path') 7992 images

# Keypoints
kpt_shape: [21, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 1, 2, 4, 3, 10, 11, 12, 13, 14, 5, 6, 7, 8, 9, 15, 16, 17, 18, 19, 20]

# Classes
names:
  0: hand

# Keypoint names per class
kpt_names:
  0:
    - wrist
    - thumb_cmc
    - thumb_mcp
    - thumb_ip
    - thumb_tip
    - index_mcp
    - index_pip
    - index_dip
    - index_tip
    - middle_mcp
    - middle_pip
    - middle_dip
    - middle_tip
    - ring_mcp
    - ring_pip
    - ring_dip
    - ring_tip
    - pinky_mcp
    - pinky_pip
    - pinky_dip
    - pinky_tip

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/hand-keypoints.zip

Verwendung#

Um ein YOLO26n-pose-Modell 100 Epochen lang mit einer Bildgröße von 640 auf dem Hand-Keypoints-Datensatz zu trainieren, kannst du die folgenden Codebeispiele verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite Training des Modells.

Trainingsbeispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640)

Beispielbilder und Annotationen#

Der Hand-Keypoints-Datensatz enthält eine vielfältige Auswahl an Bildern menschlicher Hände, die mit Keypoints annotiert sind. Hier siehst du einige Beispiele aus dem Datensatz zusammen mit den zugehörigen Annotationen:

Beispiel für einen Datensatz zur Posenschätzung mit Hand-Keypoints

  • Mosaikbild: Dieses Bild zeigt einen Trainings-Batch, der aus zu einem Mosaik zusammengesetzten Datensatzbildern besteht. Das Mosaikverfahren wird während des Trainings eingesetzt und kombiniert mehrere Bilder zu einem einzigen Bild, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batches zu erhöhen. Dadurch kann das Modell besser auf unterschiedliche Objektgrößen, Seitenverhältnisse und Kontexte generalisieren.

Das Beispiel veranschaulicht die Vielfalt und Komplexität der Bilder im Hand-Keypoints-Datensatz sowie die Vorteile der Verwendung von Mosaikaugmentation während des Trainings.

Zitate und Danksagungen#

Wenn du den Hand-Keypoints-Datensatz für deine Forschungs- oder Entwicklungsarbeit verwendest, führe bitte die folgenden Quellen an:

Zitat

Wir danken den folgenden Quellen für die Bereitstellung der in diesem Datensatz verwendeten Bilder:

Die Bilder wurden unter den jeweiligen von den einzelnen Plattformen bereitgestellten Lizenzen gesammelt und verwendet und werden unter der Creative-Commons-Lizenz Namensnennung-Nicht kommerziell-Weitergabe unter gleichen Bedingungen 4.0 International verbreitet.

Wir möchten außerdem den Ersteller dieses Datensatzes, Rion Dsilva, für seinen wertvollen Beitrag zur Forschung im Bereich Vision AI würdigen.

FAQ#

  • Lade yolo26n-pose.pt und rufe model.train(data="hand-keypoints.yaml", epochs=100, imgsz=640) auf – vollständige Python- und CLI-Codebeispiele findest du im obigen Trainingsbeispiel; eine umfassende Liste der Argumente findest du auf der Seite Training des Modells.

  • Mit 26.768 annotierten Bildern und 21 Keypoints pro Hand, die mit Google MediaPipe erzeugt wurden, bietet der Hand-Keypoints-Datensatz Modellen zur Posenschätzung die erforderliche Datenmenge und Annotationsgenauigkeit für Aufgaben der fortgeschrittenen Posenschätzung. Im Abschnitt Keypoints findest du die vollständige Aufschlüsselung der Landmarks.

  • Hand-Keypoints unterstützt Gestenerkennung, AR/VR-Steuerung, robotische Manipulation, die Analyse von Bewegungen im Gesundheitswesen, Animation und biometrische Authentifizierung – im Abschnitt Anwendungen findest du Details zu den einzelnen Bereichen.

  • Der Hand-Keypoints-Datensatz ist in zwei Teilmengen unterteilt:

    1. Training: Enthält 18.776 Bilder zum Trainieren von Modellen zur Posenschätzung.
    2. Validierung: Enthält 7.992 Bilder zur Validierung während des Modelltrainings.

    Diese Struktur gewährleistet einen umfassenden Trainings- und Validierungsprozess. Weitere Informationen findest du im Abschnitt Datensatzstruktur.

  • Die Datensatzkonfiguration ist in einer YAML-Datei definiert, die Pfade, Klassen und weitere relevante Informationen enthält. Die Datei hand-keypoints.yaml findest du unter hand-keypoints.yaml.

    Um diese YAML-Datei für das Training zu verwenden, gib sie wie im obigen Trainingsbeispiel in deinem Trainingsskript oder CLI-Befehl an. Weitere Informationen findest du im Abschnitt Datensatz-YAML.

Kommentare