Zum Inhalt springen

Übersicht über die Posenschätzungsdatensätze

Unterstützte Dataset-Formate

Ultralytics YOLO Format

Das Format der Datensatzbeschriftung, das für das Training der YOLO Pose-Modelle verwendet wird, ist wie folgt:

  1. Eine Textdatei pro Bild: Jedes Bild im Datensatz hat eine entsprechende Textdatei mit demselben Namen wie die Bilddatei und der Erweiterung ".txt".
  2. Eine Zeile pro Objekt: Jede Zeile in der Textdatei entspricht einer Objektinstanz im Bild.
  3. Objektinformationen pro Zeile: Jede Zeile enthält die folgenden Informationen über die Objektinstanz:
    • Objektklassen-Index: Eine ganze Zahl, die die Klasse des Objekts angibt (z. B. 0 für Person, 1 für Auto usw.).
    • Koordinaten des Objektmittelpunkts: Die x- und y-Koordinaten des Mittelpunkts des Objekts, normiert auf einen Wert zwischen 0 und 1.
    • Breite und Höhe des Objekts: Die Breite und Höhe des Objekts, normalisiert auf einen Wert zwischen 0 und 1.
    • Objekt-Keypunkt-Koordinaten: Die Keypoints des Objekts, normalisiert auf einen Wert zwischen 0 und 1.

Hier ist ein Beispiel für das Format der Beschriftung für die Aufgabe der Posenschätzung:

Format mit Dim = 2

<class-index> <x> <y> <width> <height> <px1> <py1> <px2> <py2> ... <pxn> <pyn>

Format mit Dim = 3

<class-index> <x> <y> <width> <height> <px1> <py1> <p1-visibility> <px2> <py2> <p2-visibility> <pxn> <pyn> <p2-visibility>

In diesem Format, <class-index> ist der Index der Klasse für das Objekt,<x> <y> <width> <height> sind Koordinaten von Begrenzungsrechteckund <px1> <py1> <px2> <py2> ... <pxn> <pyn> sind die Pixelkoordinaten der Keypoints. Die Koordinaten sind durch Leerzeichen getrennt.

Datensatz YAML-Format

Das Ultralytics Framework verwendet ein YAML-Dateiformat, um den Datensatz und die Modellkonfiguration für das Training von Detection Models zu definieren. Hier ist ein Beispiel für das YAML-Format, das für die Definition eines Erkennungsdatensatzes verwendet wird:

# 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: ../datasets/coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

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

# Classes dictionary
names:
    0: person

Die train und val geben die Pfade zu den Verzeichnissen an, die die Trainings- bzw. Validierungsbilder enthalten.

names ist ein Wörterbuch mit Klassennamen. Die Reihenfolge der Namen sollte mit der Reihenfolge der Objektklassenindizes in den Dateien des YOLO -Datensatzes übereinstimmen.

(Optional) Wenn die Punkte symmetrisch sind, muss flip_idx verwendet werden, wie z. B. die linke und rechte Seite eines Menschen oder Gesichts. Nehmen wir zum Beispiel an, dass es fünf Schlüsselpunkte eines Gesichtsmerkmals gibt: [linkes Auge, rechtes Auge, Nase, linker Mund, rechter Mund], und der ursprüngliche Index ist [0, 1, 2, 3, 4], dann ist flip_idx [1, 0, 2, 4, 3] (tauschen Sie nur den Links-Rechts-Index aus, d.h. 0-1 und 3-4, und ändern Sie andere Punkte wie die Nase in diesem Beispiel nicht).

Verwendung

Beispiel

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640

Unterstützte Datensätze

In diesem Abschnitt werden die Datensätze beschrieben, die mit dem Format Ultralytics YOLO kompatibel sind und für das Training von Modellen zur Posenschätzung verwendet werden können:

COCO-Position

  • Beschreibung: COCO-Pose ist ein umfangreicher Datensatz zur Objekterkennung, Segmentierung und Posenschätzung. Er ist eine Teilmenge des beliebten COCO-Datensatzes und konzentriert sich auf die Schätzung der menschlichen Pose. COCO-Pose enthält mehrere Keypoints für jede menschliche Instanz.
  • Etikettenformat: Gleiches Format wie Ultralytics YOLO wie oben beschrieben, mit Keypoints für menschliche Posen.
  • Anzahl der Klassen: 1 (Mensch).
  • Keypoints: 17 Keypoints, darunter Nase, Augen, Ohren, Schultern, Ellbogen, Handgelenke, Hüften, Knie und Knöchel.
  • Verwendung: Geeignet für das Training von Modellen zur Schätzung der menschlichen Pose.
  • Zusätzliche Hinweise: Der Datensatz ist reichhaltig und vielfältig und enthält über 200k beschriftete Bilder.
  • Lesen Sie mehr über COCO-Pose

COCO8-Pose

  • Beschreibung: Ultralytics COCO8-Pose ist ein kleiner, aber vielseitiger Posenerkennungsdatensatz, der aus den ersten 8 Bildern des COCO train 2017 Sets besteht, 4 für das Training und 4 für die Validierung.
  • Etikettenformat: Gleiches Format wie Ultralytics YOLO wie oben beschrieben, mit Keypoints für menschliche Posen.
  • Anzahl der Klassen: 1 (Mensch).
  • Keypoints: 17 Keypoints, darunter Nase, Augen, Ohren, Schultern, Ellbogen, Handgelenke, Hüften, Knie und Knöchel.
  • Verwendung: Geeignet zum Testen und Debuggen von Objekterkennungsmodellen oder zum Experimentieren mit neuen Erkennungsansätzen.
  • Zusätzliche Hinweise: COCO8-Pose ist ideal für Plausibilitäts- und CI-Prüfungen.
  • Lesen Sie mehr über COCO8-Pose

Tiger-Pose

  • Beschreibung: Ultralytics Dieser Tierposen-Datensatz umfasst 263 Bilder, die aus einem YouTube-Video stammen, wobei 210 Bilder für das Training und 53 für die Validierung vorgesehen sind.
  • Etikettenformat: Gleiches Format wie Ultralytics YOLO wie oben beschrieben, mit 12 Keypoints für die Tierhaltung und ohne sichtbare Dimension.
  • Anzahl der Klassen: 1 (Tiger).
  • Keypoints: 12 Keypoints.
  • Verwendung: Ideal für Tierposen oder jede andere Pose, die nicht auf dem Menschen basiert.
  • Lesen Sie mehr über Tiger-Pose

Hand Keypoints

  • Beschreibung: Der Hand Keypoints Pose-Datensatz umfasst fast 26.000 Bilder, wobei 18.776 Bilder für das Training und 7.992 für die Validierung vorgesehen sind.
  • Format der Beschriftung: Gleiches Format wie Ultralytics YOLO wie oben beschrieben, aber mit 21 Keypoints für die menschliche Hand und die sichtbare Dimension.
  • Anzahl der Klassen: 1 (Hand).
  • Keypoints: 21 Keypoints.
  • Verwendung: Hervorragend geeignet für die Schätzung der Haltung der menschlichen Hand.
  • Lesen Sie mehr über Hand Keypoints

Hundestellung

  • Beschreibung: Der Dog Pose-Datensatz enthält etwa 6.000 Bilder, die eine vielfältige und umfangreiche Ressource für das Training und die Validierung von Modellen zur Schätzung der Hundestellung darstellen.
  • Format der Beschriftung: Folgt dem Format Ultralytics YOLO , mit Anmerkungen für mehrere hundespezifische Schlüsselpunkte.
  • Anzahl der Klassen: 1 (Hund).
  • Keypoints: Enthält 24 Keypoints, die auf Hundestellungen zugeschnitten sind, wie Gliedmaßen, Gelenke und Kopfpositionen.
  • Verwendung: Ideal für das Training von Modellen zur Einschätzung von Hundeposen in verschiedenen Szenarien, von der Forschung bis zu realen Anwendungen.
  • Lesen Sie mehr über Dog-Pose

Hinzufügen eines eigenen Datensatzes

Wenn Sie über einen eigenen Datensatz verfügen und diesen für das Training von Modellen zur Posenschätzung mit dem Format Ultralytics YOLO verwenden möchten, stellen Sie sicher, dass er dem oben unter "Ultralytics YOLO format" angegebenen Format entspricht. Konvertieren Sie Ihre Annotationen in das gewünschte Format und geben Sie die Pfade, die Anzahl der Klassen und die Klassennamen in der YAML-Konfigurationsdatei an.

Konvertierungstool

Ultralytics bietet ein praktisches Konvertierungswerkzeug, um Etiketten aus dem beliebten COCO-Datensatzformat in das Format YOLO zu konvertieren:

Beispiel

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Dieses Konvertierungstool kann verwendet werden, um den COCO-Datensatz oder einen beliebigen Datensatz im COCO-Format in das Format Ultralytics YOLO zu konvertieren. Das use_keypoints gibt an, ob Keypoints (für die Pose-Schätzung) in die konvertierten Beschriftungen aufgenommen werden sollen.

FAQ

Wie lautet das Format Ultralytics YOLO für die Pose-Schätzung?

Das Format Ultralytics YOLO für Datensätze zur Pose-Schätzung beinhaltet die Kennzeichnung jedes Bildes mit einer entsprechenden Textdatei. Jede Zeile der Textdatei enthält Informationen über ein Objekt:

  • Index der Objektklasse
  • Objektmittelpunktskoordinaten (normiert x und y)
  • Objektbreite und -höhe (normalisiert)
  • Objekt-Keypunktkoordinaten (normalisierte pxn und pyn)

Bei 2D-Posen enthalten die Keypoints Pixelkoordinaten. Bei 3D hat jeder Keypoint auch eine Sichtbarkeitsmarkierung. Weitere Einzelheiten finden Sie unter Ultralytics YOLO format.

Wie kann ich den COCO-Pose-Datensatz mit Ultralytics YOLO verwenden?

So verwenden Sie den COCO-Pose-Datensatz mit Ultralytics YOLO :

  1. Laden Sie den Datensatz herunter und bereiten Sie Ihre Etikettendateien im Format YOLO vor.
  2. Erstellen Sie eine YAML-Konfigurationsdatei, in der Sie die Pfade zu den Trainings- und Validierungsbildern, die Form der Keypoints und die Klassennamen angeben.
  3. Verwenden Sie die Konfigurationsdatei für das Training:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")  # load pretrained model
    results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
    

    Weitere Informationen finden Sie in den Bereichen COCO-Pose und Zug.

Wie kann ich meinen eigenen Datensatz für die Pose-Schätzung in Ultralytics YOLO hinzufügen?

So fügen Sie Ihren Datensatz hinzu:

  1. Konvertieren Sie Ihre Notizen in das Format Ultralytics YOLO .
  2. Erstellen Sie eine YAML-Konfigurationsdatei, in der Sie die Pfade zu den Datensätzen, die Anzahl der Klassen und die Klassennamen angeben.
  3. Verwenden Sie die Konfigurationsdatei, um Ihr Modell zu trainieren:

    from ultralytics import YOLO
    
    model = YOLO("yolo11n-pose.pt")
    results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
    

    Die vollständigen Schritte finden Sie im Abschnitt Hinzufügen eines eigenen Datensatzes.

Welchen Zweck erfüllt die Dataset YAML-Datei in Ultralytics YOLO ?

Die YAML-Datei des Datensatzes in Ultralytics YOLO definiert den Datensatz und die Modellkonfiguration für das Training. Sie gibt Pfade zu Trainings-, Validierungs- und Testbildern, Keypoint-Formen, Klassennamen und andere Konfigurationsoptionen an. Dieses strukturierte Format hilft bei der Rationalisierung der Datensatzverwaltung und der Modellschulung. Hier ist ein Beispiel für ein YAML-Format:

path: ../datasets/coco8-pose
train: images/train
val: images/val
names:
    0: person

Lesen Sie mehr über die Erstellung von YAML-Konfigurationsdateien im Dataset YAML-Format.

Wie kann ich COCO-Datensatzbeschriftungen in das Format Ultralytics YOLO für die Posenschätzung konvertieren?

Ultralytics bietet ein Konvertierungstool zur Konvertierung von COCO-Datensatzetiketten in das Format YOLO , einschließlich der Keypoint-Informationen:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/", use_keypoints=True)

Dieses Tool hilft bei der nahtlosen Integration von COCO-Datensätzen in YOLO Projekte. Einzelheiten finden Sie im Abschnitt Konvertierungstool.

📅 Erstellt vor 1 Jahr ✏️ Aktualisiert vor 5 Tagen

Kommentare