Zum Inhalt springen

├ťberblick ├╝ber die Datens├Ątze zur Posenabsch├Ątzung

Unterst├╝tzte Datensatzformate

Ultralytics YOLO Format

Das Format der Datensatzbeschriftung, das f├╝r das Training der YOLO Posenmodelle verwendet wird, ist wie folgt:

  1. Eine Textdatei pro Bild: Zu jedem Bild im Datensatz gibt es 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:
    • Objektklassenindex: Eine ganze Zahl, die die Klasse des Objekts angibt (z.B. 0 f├╝r eine Person, 1 f├╝r ein Auto, etc.).
    • Koordinaten des Objektmittelpunkts: Die x- und y-Koordinaten des Objektmittelpunkts, 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-Keypunktkoordinaten: Die Keypoints des Objekts, normalisiert auf einen Wert zwischen 0 und 1.

Hier ist ein Beispiel f├╝r das Etikettenformat f├╝r die 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 die Koordinaten des Begrenzungsrahmens, und <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 der Erkennungsmodelle 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 Felder 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 YOLO Dataset-Dateien ├╝bereinstimmen.

(Optional) Wenn die Punkte symmetrisch sind, brauchst du flip_idx, z. B. die linke und rechte Seite eines Menschen oder Gesichts. Nehmen wir zum Beispiel an, dass es f├╝nf Schl├╝sselpunkte im Gesicht 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] (tausche nur den Links-Rechts-Index aus, d.h. 0-1 und 3-4, und ├Ąndere andere Punkte wie die Nase in diesem Beispiel nicht).

Verwendung

Beispiel

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 detect train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

Unterst├╝tzte Datens├Ątze

In diesem Abschnitt werden die Datens├Ątze vorgestellt, die mit dem Format Ultralytics YOLO kompatibel sind und f├╝r das Training von Modellen zur Posensch├Ątzung verwendet werden k├Ânnen:

COCO-Pose

  • 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.
  • Label-Format: 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 200.000 beschriftete Bilder.
  • Lies mehr ├╝ber COCO-Pose

COCO8-Pose

  • Beschreibung: Ultralytics COCO8-Pose ist ein kleiner, aber vielseitiger Datensatz f├╝r die Posenerkennung, der aus den ersten 8 Bildern des COCO train 2017 Sets besteht, 4 f├╝r das Training und 4 f├╝r die Validierung.
  • Label-Format: 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: Die COCO8-Pose ist ideal f├╝r Sanity Checks und CI Checks.
  • Lies mehr ├╝ber COCO8-Pose

Tiger-Pose

  • Beschreibung: Ultralytics Der Datensatz f├╝r die Tierhaltung umfasst 263 Bilder aus einem YouTube-Video, von denen 210 Bilder f├╝r das Training und 53 f├╝r die Validierung verwendet werden.
  • Etikettenformat: Dasselbe 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 den Menschen bezogen ist.
  • Lies mehr ├╝ber Tiger-Pose

Hinzuf├╝gen deines eigenen Datensatzes

Wenn du deinen eigenen Datensatz hast und ihn f├╝r das Training von Modellen zur Posensch├Ątzung im Format Ultralytics YOLO verwenden m├Âchtest, stelle sicher, dass er dem oben unter "Ultralytics YOLO format" angegebenen Format entspricht. Konvertiere deine Annotationen in das gew├╝nschte Format und gib die Pfade, die Anzahl der Klassen und die Klassennamen in der YAML-Konfigurationsdatei an.

Konvertierungstool

Ultralytics bietet ein praktisches Konvertierungstool, 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)

Mit diesem Konvertierungstool kannst du den COCO-Datensatz oder jeden anderen Datensatz im COCO-Format in das Format Ultralytics YOLO umwandeln. Das use_keypoints gibt an, ob Keypoints (f├╝r die Posensch├Ątzung) in die umgewandelten Labels aufgenommen werden sollen.



Created 2023-11-12, Updated 2024-06-02
Authors: glenn-jocher (8)

Kommentare