Overslaan naar inhoud

Overzicht van posisschatting datasets

Ondersteunde datasetformaten

Ultralytics YOLO formaat

Het labelformaat van de dataset dat wordt gebruikt voor het trainen van YOLO pose-modellen is als volgt:

  1. EĆ©n tekstbestand per afbeelding: Elke afbeelding in de dataset heeft een bijbehorend tekstbestand met dezelfde naam als het afbeeldingsbestand en de extensie ".txt".
  2. EĆ©n rij per object: Elke rij in het tekstbestand komt overeen met Ć©Ć©n object in de afbeelding.
  3. Objectinformatie per rij: Elke rij bevat de volgende informatie over de objectinstantie:
    • Objectklasse-index: Een geheel getal dat de klasse van het object weergeeft (bijv. 0 voor persoon, 1 voor auto, etc.).
    • Coƶrdinaten middelpunt object: De x- en y-coƶrdinaten van het middelpunt van het object, genormaliseerd tussen 0 en 1.
    • Breedte en hoogte van het object: De breedte en hoogte van het object, genormaliseerd tussen 0 en 1.
    • Object sleutelpunt coƶrdinaten: De sleutelpunten van het object, genormaliseerd tussen 0 en 1.

Hier is een voorbeeld van het labelformaat voor de taak pose estimation:

Formaat met Dim = 2

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

Formaat met Dim = 3

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

In dit formaat, <class-index> is de index van de klasse voor het object,<x> <y> <width> <height> zijn coƶrdinaten van de begrenzende box, en <px1> <py1> <px2> <py2> ... <pxn> <pyn> zijn de pixelcoƶrdinaten van de sleutelpunten. De coƶrdinaten worden gescheiden door spaties.

Dataset YAML formaat

Het Ultralytics framework gebruikt een YAML bestandsformaat om de dataset en modelconfiguratie voor het trainen van detectiemodellen te definiƫren. Hier is een voorbeeld van het YAML-formaat dat wordt gebruikt voor het definiƫren van een detectiedataset:

# 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

De train en val velden geven de paden aan naar de mappen met respectievelijk de trainings- en validatieafbeeldingen.

names is een woordenboek met klassennamen. De volgorde van de namen moet overeenkomen met de volgorde van de objectklasse-indices in de YOLO datasetbestanden.

(Optioneel) Als de punten symmetrisch zijn, dan is flip_idx nodig, zoals links-rechts van een mens of gezicht. Als we bijvoorbeeld uitgaan van vijf sleutelpunten van gezichtsherkenningspunten: [linkeroog, rechteroog, neus, linkermond, rechtermond], en de oorspronkelijke index is [0, 1, 2, 3, 4], dan is flip_idx [1, 0, 2, 4, 3] (wissel alleen de links-rechts index om, dus 0-1 en 3-4, en wijzig de andere niet, zoals de neus in dit voorbeeld).

Gebruik

Voorbeeld

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

Ondersteunde datasets

In dit gedeelte worden de datasets beschreven die compatibel zijn met het formaat Ultralytics YOLO en gebruikt kunnen worden voor het trainen van modellen voor het schatten van de houding:

COCO-Pose

  • Beschrijving: COCO-Pose is een grootschalige dataset voor objectdetectie, segmentatie en pose-schatting. Het is een subset van de populaire COCO dataset en richt zich op het schatten van de menselijke houding. COCO-Pose bevat meerdere sleutelpunten voor elke menselijke instantie.
  • Labelindeling: Hetzelfde als Ultralytics YOLO formaat zoals hierboven beschreven, met sleutelpunten voor menselijke houdingen.
  • Aantal klassen: 1 (Mens).
  • Toetspunten: 17 sleutelpunten, waaronder neus, ogen, oren, schouders, ellebogen, polsen, heupen, knieĆ«n en enkels.
  • Gebruik: Geschikt voor het trainen van modellen voor het schatten van de menselijke houding.
  • Extra opmerkingen: De dataset is rijk en divers en bevat meer dan 200.000 gelabelde afbeeldingen.
  • Lees meer over COCO-Pose

COCO8-houding

  • Beschrijving: Ultralytics COCO8-Pose is een kleine, maar veelzijdige pose detectie dataset die bestaat uit de eerste 8 afbeeldingen van de COCO train 2017 set, 4 voor training en 4 voor validatie.
  • Labelindeling: Hetzelfde als Ultralytics YOLO formaat zoals hierboven beschreven, met sleutelpunten voor menselijke houdingen.
  • Aantal klassen: 1 (Mens).
  • Toetspunten: 17 sleutelpunten, waaronder neus, ogen, oren, schouders, ellebogen, polsen, heupen, knieĆ«n en enkels.
  • Gebruik: Geschikt voor het testen en debuggen van objectdetectiemodellen, of voor het experimenteren met nieuwe detectiebenaderingen.
  • Extra opmerkingen: COCO8-Pose is ideaal voor sanity checks en CI-controles.
  • Lees meer over COCO8-Pose

Tijgerhouding

  • Beschrijving: Ultralytics Deze dataset voor de houding van dieren bestaat uit 263 afbeeldingen afkomstig van een YouTube-video, waarbij 210 afbeeldingen zijn toegewezen voor training en 53 voor validatie.
  • Labelformaat: Hetzelfde als Ultralytics YOLO formaat zoals hierboven beschreven, met 12 sleutelpunten voor de houding van het dier en geen zichtbare dimensie.
  • Aantal klassen: 1 (Tijger).
  • Sleutelpunten: 12 sleutelpunten.
  • Gebruik: Geweldig voor dierpose of elke andere pose die niet op de mens is gebaseerd.
  • Lees meer over Tijgerhouding

Je eigen dataset toevoegen

Als je een eigen dataset hebt en deze wilt gebruiken voor het trainen van modellen voor het schatten van de houding met het formaat Ultralytics YOLO , zorg er dan voor dat deze het formaat volgt dat hierboven is gespecificeerd onder "Ultralytics YOLO formaat". Converteer je annotaties naar het vereiste formaat en specificeer de paden, het aantal klassen en de namen van de klassen in het YAML configuratiebestand.

Conversie Gereedschap

Ultralytics biedt een handig conversiehulpmiddel om labels van het populaire COCO datasetformaat te converteren naar het YOLO formaat:

Voorbeeld

from ultralytics.data.converter import convert_coco

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

Dit conversieprogramma kan worden gebruikt om de COCO dataset of elke andere dataset in het COCO formaat te converteren naar het Ultralytics YOLO formaat. De use_keypoints parameter geeft aan of er sleutelpunten (voor het schatten van de houding) in de geconverteerde labels moeten worden opgenomen.

FAQ

Wat is het Ultralytics YOLO formaat voor pose estimation?

Het Ultralytics YOLO formaat voor pose estimation datasets labelt elk beeld met een corresponderend tekstbestand. Elke rij van het tekstbestand slaat informatie op over een objectinstantie:

  • Objectklasse index
  • Coƶrdinaten middelpunt object (genormaliseerde x en y)
  • Breedte en hoogte van het object (genormaliseerd)
  • Object sleutelpunt coƶrdinaten (genormaliseerd pxn en pyn)

Voor 2D poses bevatten de sleutelpunten pixelcoƶrdinaten. Voor 3D heeft elk sleutelpunt ook een zichtbaarheidsvlag. Voor meer details, zie Ultralytics YOLO formaat.

Hoe gebruik ik de COCO-Pose dataset met Ultralytics YOLO ?

De COCO-Pose dataset gebruiken met Ultralytics YOLO : 1. Download de dataset en bereid je labelbestanden voor in het formaat YOLO . 2. Maak een YAML configuratiebestand aan met daarin de paden naar de trainings- en validatieafbeeldingen, de vorm van de toetspunten en de namen van de klassen. 3. 3. Gebruik het configuratiebestand voor de training:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")  # load pretrained model
results = model.train(data="coco-pose.yaml", epochs=100, imgsz=640)
```

For more information, visit [COCO-Pose](coco.md) and [train](../../modes/train.md) sections.

Hoe kan ik mijn eigen dataset toevoegen voor pose estimation in Ultralytics YOLO ?

Om je dataset toe te voegen: 1. Converteer je annotaties naar het Ultralytics YOLO formaat. 2. Maak een YAML configuratiebestand aan waarin de paden van de dataset, het aantal klassen en de namen van de klassen worden gespecificeerd. 3. Gebruik het configuratiebestand om je model te trainen:

```python
from ultralytics import YOLO

model = YOLO("yolov8n-pose.pt")
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
```

For complete steps, check the [Adding your own dataset](#adding-your-own-dataset) section.

Wat is het doel van het dataset YAML-bestand in Ultralytics YOLO ?

Het dataset YAML bestand in Ultralytics YOLO definieert de dataset en modelconfiguratie voor training. Het specificeert paden naar trainings-, validatie- en testafbeeldingen, sleutelpuntvormen, klassennamen en andere configuratieopties. Dit gestructureerde formaat helpt het datasetbeheer en de modeltraining te stroomlijnen. Hier is een voorbeeld van een YAML formaat:

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

Lees meer over het maken van YAML configuratiebestanden in Dataset YAML formaat.

Hoe kan ik COCO datasetlabels converteren naar Ultralytics YOLO formaat voor pose schatting?

Ultralytics biedt een conversietool om COCO datasetlabels te converteren naar het YOLO formaat, inclusief sleutelpuntinformatie:

from ultralytics.data.converter import convert_coco

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

Deze tool helpt om COCO datasets naadloos te integreren in YOLO projecten. Raadpleeg de sectie Conversiehulpmiddel voor meer informatie.



Gemaakt op 2023-11-12, Bijgewerkt op 2024-07-04
Auteurs: glenn-jocher (9)

Reacties