Hand-Keypoints-Datensatz

Einführung

Der Hand-Keypoints-Datensatz enthält 26.768 Bilder von Händen, die mit Keypoints annotiert sind. Damit eignet er sich für das Training von Modellen wie Ultralytics YOLO für Pose-Estimation-Aufgaben. Die Annotationen wurden mit der Google MediaPipe-Bibliothek erstellt, was eine hohe Genauigkeit und Konsistenz gewährleistet. Der Datensatz ist mit den Formaten von Ultralytics YOLO26 kompatibel.



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

Hand-Landmarks

Diagramm der Hand-Keypoints-Landmarks mit 21 Punkten

Keypoints

Der Datensatz enthält Keypoints für die Handerkennung. Die Keypoints sind wie folgt annotiert:

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

Jede Hand hat insgesamt 21 Keypoints.

Hauptmerkmale

  • Großer Datensatz: 26.768 Bilder mit Hand-Keypoint-Annotationen.
  • YOLO26-Kompatibilität: Die Labels werden im YOLO-Keypoint-Format bereitgestellt und sind sofort einsatzbereit für YOLO26-Modelle.
  • 21 Keypoints: Detaillierte Darstellung der Handpose, die das Handgelenk und vier Punkte pro Finger umfasst.

Datensatzstruktur

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

  1. Train: Diese Teilmenge enthält 18.776 Bilder aus dem Hand-Keypoints-Datensatz, die für das Training von Pose-Estimation-Modellen annotiert wurden.
  2. Val: Diese Teilmenge enthält 7.992 Bilder, die während des Modelltrainings zu Validierungszwecken verwendet werden können.

Anwendungen

Hand-Keypoints können für Gestenerkennung, AR/VR-Steuerungen, Robotermanipulation und die Analyse von Handbewegungen im Gesundheitswesen genutzt werden. Sie können auch in der Animation für Motion-Capturing und in biometrischen Authentifizierungssystemen für Sicherheit angewendet werden. Die detaillierte Verfolgung der Fingerpositionen ermöglicht eine präzise Interaktion mit virtuellen Objekten und berührungslose Steuerungsschnittstellen.

Datensatz-YAML

Eine YAML (Yet Another Markup Language)-Datei wird zur Definition der Datensatzkonfiguration verwendet. Sie enthält Informationen über die Pfade, Klassen und weitere relevante Daten des Datensatzes. Im Fall des Hand-Keypoints-Datensatzes wird die hand-keypoints.yaml-Datei 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 auf dem Hand-Keypoints-Datensatz für 100 Epochen mit einer Bildgröße von 640 zu trainieren, kannst du die folgenden Code-Schnipsel verwenden. Eine umfassende Liste der verfügbaren Argumente findest du auf der Seite zum Modell-Training.

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 Reihe von Bildern mit menschlichen Händen, die mit Keypoints annotiert sind. Hier sind einige Beispiele von Bildern aus dem Datensatz, zusammen mit den entsprechenden Annotationen:

Beispiel des Hand-Keypoints-Pose-Estimation-Datensatzes

  • Mosaik-Bild: Dieses Bild zeigt einen Trainings-Batch, der aus mosaikierten Datensatzbildern besteht. Mosaiking ist eine Technik, die während des Trainings verwendet wird, um mehrere Bilder zu einem einzigen Bild zu kombinieren, um die Vielfalt der Objekte und Szenen innerhalb jedes Trainings-Batches zu erhöhen. Dies trägt dazu bei, die Fähigkeit des Modells zu verbessern, auf verschiedene Objektgrößen, Seitenverhältnisse und Kontexte zu generalisieren.

Das Beispiel zeigt die Vielfalt und Komplexität der Bilder im Hand-Keypoints-Datensatz sowie die Vorteile der Verwendung von Mosaicing während des Trainingsprozesses.

Zitate und Danksagungen

Wenn du den hand-keypoints-Datensatz in deiner Forschung oder Entwicklungsarbeit verwendest, gib bitte die folgenden Quellen an:

Zitat

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

Die Bilder wurden unter den jeweiligen Lizenzen der Plattformen gesammelt und verwendet und werden unter der Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License verbreitet.

Wir möchten auch den Ersteller dieses Datensatzes, Rion Dsilva, für seinen großartigen Beitrag zur Vision AI-Forschung anerkennen.

FAQ

Wie trainiere ich ein YOLO26-Modell auf dem Hand-Keypoints-Datensatz?

Um ein YOLO26-Modell auf dem Hand-Keypoints-Datensatz zu trainieren, kannst du entweder Python oder das Command Line Interface (CLI) verwenden. Hier ist ein Beispiel für das Training eines YOLO26n-pose-Modells für 100 Epochen bei einer Bildgröße von 640:

Beispiel
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)

Für eine umfassende Liste der verfügbaren Argumente siehe die Training-Seite für Modelle.

Was sind die Hauptmerkmale des Hand-Keypoints-Datensatzes?

Der Hand-Keypoints-Datensatz ist für fortgeschrittene Pose-Estimation-Aufgaben konzipiert und bietet mehrere Hauptmerkmale:

  • Großer Datensatz: Enthält 26.768 Bilder mit Hand-Keypoint-Annotationen.
  • YOLO26-Kompatibilität: Bereit für die Verwendung mit YOLO26-Modellen.
  • 21 Keypoints: Detaillierte Darstellung der Handpose, einschließlich Gelenken von Handgelenk und Fingern.

Weitere Details findest du im Abschnitt Hand-Keypoints-Datensatz.

Welche Anwendungen können vom Hand-Keypoints-Datensatz profitieren?

Der Hand-Keypoints-Datensatz kann in verschiedenen Bereichen angewendet werden, darunter:

  • Gestenerkennung: Verbesserung der Mensch-Computer-Interaktion.
  • AR/VR-Steuerungen: Verbesserung der Benutzererfahrung in Augmented und Virtual Reality.
  • Robotermanipulation: Ermöglichung der präzisen Steuerung von Roboterhänden.
  • Gesundheitswesen: Analyse von Handbewegungen für medizinische Diagnosen.
  • Animation: Erfassung von Bewegungen für realistische Animationen.
  • Biometrische Authentifizierung: Verbesserung von Sicherheitssystemen.

Weitere Informationen findest du im Abschnitt Anwendungen.

Wie ist der Hand-Keypoints-Datensatz strukturiert?

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

  1. Train: Enthält 18.776 Bilder für das Training von Pose-Estimation-Modellen.
  2. Val: Enthält 7.992 Bilder für Validierungszwecke während des Modelltrainings.

Diese Struktur stellt einen umfassenden Trainings- und Validierungsprozess sicher. Weitere Einzelheiten findest du im Abschnitt Datensatzstruktur.

Wie verwende ich die Datensatz-YAML-Datei für das Training?

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

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

Kommentare