Zum Inhalt

Pose-Schätzung

Beispiele für die Pose-Schätzung

Die Pose-Schätzung ist eine Aufgabe, die das Identifizieren der Lage spezifischer Punkte in einem Bild beinhaltet, die normalerweise als Schlüsselpunkte bezeichnet werden. Die Schlüsselpunkte können verschiedene Teile des Objekts wie Gelenke, Landmarken oder andere charakteristische Merkmale repräsentieren. Die Positionen der Schlüsselpunkte sind üblicherweise als eine Gruppe von 2D [x, y] oder 3D [x, y, sichtbar] Koordinaten dargestellt.

Das Ergebnis eines Pose-Schätzungsmodells ist eine Gruppe von Punkten, die die Schlüsselpunkte auf einem Objekt im Bild darstellen, normalerweise zusammen mit den Konfidenzwerten für jeden Punkt. Die Pose-Schätzung eignet sich gut, wenn Sie spezifische Teile eines Objekts in einer Szene identifizieren müssen und deren Lage zueinander.



Ansehen: Pose-Schätzung mit Ultralytics YOLOv8.

Tipp

YOLOv8 pose-Modelle verwenden den Suffix -pose, z. B. yolov8n-pose.pt. Diese Modelle sind auf dem COCO-Schlüsselpunkte-Datensatz trainiert und für eine Vielzahl von Pose-Schätzungsaufgaben geeignet.

Modelle

Hier werden vortrainierte YOLOv8 Pose-Modelle gezeigt. Erkennungs-, Segmentierungs- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, während Klassifizierungsmodelle auf dem ImageNet-Datensatz vortrainiert sind.

Modelle werden automatisch aus der neuesten Ultralytics-Veröffentlichung bei erstmaliger Verwendung heruntergeladen.

Modell Größe
(Pixel)
mAPpose
50-95
mAPpose
50
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
A100 TensorRT
(ms)
Parameter
(M)
FLOPs
(B)
YOLOv8n-pose 640 50,4 80,1 131,8 1,18 3,3 9,2
YOLOv8s-pose 640 60,0 86,2 233,2 1,42 11,6 30,2
YOLOv8m-pose 640 65,0 88,8 456,3 2,00 26,4 81,0
YOLOv8l-pose 640 67,6 90,0 784,5 2,59 44,4 168,6
YOLOv8x-pose 640 69,2 90,2 1607,1 3,73 69,4 263,2
YOLOv8x-pose-p6 1280 71,6 91,2 4088,7 10,04 99,1 1066,4
  • mAPval Werte gelten für ein einzelnes Modell mit einfacher Skala auf dem COCO Keypoints val2017-Datensatz.
    Zu reproduzieren mit yolo val pose data=coco-pose.yaml device=0.
  • Geschwindigkeit gemittelt über COCO-Validierungsbilder mit einer Amazon EC2 P4d-Instanz.
    Zu reproduzieren mit yolo val pose data=coco8-pose.yaml batch=1 device=0|cpu.

Trainieren

Trainieren Sie ein YOLOv8-Pose-Modell auf dem COCO128-Pose-Datensatz.

Beispiel

from ultralytics import YOLO

# Modell laden
model = YOLO('yolov8n-pose.yaml')  # ein neues Modell aus YAML bauen
model = YOLO('yolov8n-pose.pt')  # ein vortrainiertes Modell laden (empfohlen für das Training)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt')  # aus YAML bauen und Gewichte übertragen

# Modell trainieren
results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
# Ein neues Modell aus YAML bauen und das Training von Grund auf starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640

# Training von einem vortrainierten *.pt Modell starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640

# Ein neues Modell aus YAML bauen, vortrainierte Gewichte übertragen und das Training starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640

Datensatzformat

Das YOLO-Pose-Datensatzformat finden Sie detailliert im Datensatz-Leitfaden. Um Ihren bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwenden Sie bitte das JSON2YOLO-Tool von Ultralytics.

Validieren

Die Genauigkeit des trainierten YOLOv8n-Pose-Modells auf dem COCO128-Pose-Datensatz validieren. Es müssen keine Argumente übergeben werden, da das Modell seine Trainingsdaten und Argumente als Modellattribute beibehält.

Beispiel

from ultralytics import YOLO

# Modell laden
model = YOLO('yolov8n-pose.pt')  # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt')  # ein benutzerdefiniertes Modell laden

# Modell validieren
metrics = model.val()  # keine Argumente nötig, Datensatz und Einstellungen sind gespeichert
metrics.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # Liste enthält map50-95 jeder Kategorie
yolo pose val model=yolov8n-pose.pt  # offizielles Modell validieren
yolo pose val model=pfad/zu/best.pt  # benutzerdefiniertes Modell validieren

Vorhersagen

Ein trainiertes YOLOv8n-Pose-Modell verwenden, um Vorhersagen auf Bildern zu machen.

Beispiel

from ultralytics import YOLO

# Modell laden
model = YOLO('yolov8n-pose.pt')  # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt')  # ein benutzerdefiniertes Modell laden

# Mit dem Modell Vorhersagen machen
results = model('https://ultralytics.com/images/bus.jpg')  # Vorhersage auf einem Bild machen
yolo pose predict model=yolov8n-pose.pt source='https://ultralytics.com/images/bus.jpg'  # Vorhersage mit dem offiziellen Modell machen
yolo pose predict model=pfad/zu/best.pt source='https://ultralytics.com/images/bus.jpg'  # Vorhersage mit dem benutzerdefinierten Modell machen

Vollständige predict-Modusdetails finden Sie auf der Vorhersage-Seite.

Exportieren

Ein YOLOv8n-Pose-Modell in ein anderes Format wie ONNX, CoreML usw. exportieren.

Beispiel

from ultralytics import YOLO

# Modell laden
model = YOLO('yolov8n-pose.pt')  # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt')  # ein benutzerdefiniertes Modell laden

# Modell exportieren
model.export(format='onnx')
yolo export model=yolov8n-pose.pt format=onnx  # offizielles Modell exportieren
yolo export model=pfad/zu/best.pt format=onnx  # benutzerdefiniertes Modell exportieren

Verfügbare YOLOv8-Pose-Exportformate sind in der folgenden Tabelle aufgeführt. Sie können direkt auf exportierten Modellen vorhersagen oder validieren, z. B. yolo predict model=yolov8n-pose.onnx. Verwendungsbeispiele werden für Ihr Modell nach Abschluss des Exports angezeigt.

Format format Argument Modell Metadaten Argumente
PyTorch - yolov8n-pose.pt -
TorchScript torchscript yolov8n-pose.torchscript imgsz, optimieren
ONNX onnx yolov8n-pose.onnx imgsz, halb, dynamisch, vereinfachen, opset
OpenVINO openvino yolov8n-pose_openvino_model/ imgsz, halb
TensorRT engine yolov8n-pose.engine imgsz, halb, dynamisch, vereinfachen, workspace
CoreML coreml yolov8n-pose.mlpackage imgsz, halb, int8, nms
TF SavedModel saved_model yolov8n-pose_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-pose.pb imgsz
TF Lite tflite yolov8n-pose.tflite imgsz, halb, int8
TF Edge TPU edgetpu yolov8n-pose_edgetpu.tflite imgsz
TF.js tfjs yolov8n-pose_web_model/ imgsz
PaddlePaddle paddle yolov8n-pose_paddle_model/ imgsz
ncnn ncnn yolov8n-pose_ncnn_model/ imgsz, halb

Vollständige export-Details finden Sie auf der Export-Seite.


Created 2023-11-13, Updated 2023-11-27
Authors: glenn-jocher (4)

Kommentare