Pose Estimation

YOLO pose estimation with human body keypoint detection

Pose Estimation ist eine Aufgabe, bei der es darum geht, die Position spezifischer Punkte in einem Bild zu identifizieren, die üblicherweise als Keypoints bezeichnet werden. Die Keypoints können verschiedene Teile des Objekts repräsentieren, wie Gelenke, Orientierungspunkte oder andere charakteristische Merkmale. Die Positionen der Keypoints werden üblicherweise als eine Menge von 2D-[x, y] oder 3D-[x, y, visible]-Koordinaten dargestellt.

Die Ausgabe eines Pose-Estimation-Modells ist eine Menge von Punkten, die die Keypoints an einem Objekt im Bild darstellen, meist zusammen mit den Konfidenzwerten für jeden Punkt. Pose Estimation ist eine gute Wahl, wenn du spezifische Teile eines Objekts in einer Szene identifizieren musst und deren Lage im Verhältnis zueinander bestimmen willst.



Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
Tipp

YOLO26 pose-Modelle verwenden das Suffix -pose, z. B. yolo26n-pose.pt. Diese Modelle sind auf dem COCO keypoints Datensatz trainiert und eignen sich für eine Vielzahl von Pose-Estimation-Aufgaben.

Im standardmäßigen YOLO26 Pose-Modell gibt es 17 Keypoints, die jeweils einen anderen Teil des menschlichen Körpers darstellen. Hier ist die Zuordnung jedes Index zu seinem jeweiligen Körpergelenk:

  1. Nase
  2. Linkes Auge
  3. Rechtes Auge
  4. Linkes Ohr
  5. Rechtes Ohr
  6. Linke Schulter
  7. Rechte Schulter
  8. Linker Ellbogen
  9. Rechter Ellbogen
  10. Linkes Handgelenk
  11. Rechtes Handgelenk
  12. Linke Hüfte
  13. Rechte Hüfte
  14. Linkes Knie
  15. Rechtes Knie
  16. Linker Knöchel
  17. Rechter Knöchel

Modelle

Ultralytics YOLO26 vortrainierte Pose-Modelle sind hier dargestellt. Detect-, Segment- und Pose-Modelle sind auf dem COCO Datensatz vortrainiert, während Classify-Modelle auf dem ImageNet Datensatz vortrainiert sind.

Modelle werden bei der ersten Verwendung automatisch vom neuesten Ultralytics Release heruntergeladen.

ModellGröße
(Pixel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Geschwindigkeit
CPU ONNX
(ms)
Geschwindigkeit
T4 TensorRT10
(ms)
Params
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.5
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.423.9
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.1
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.3
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6201.7
  • mAPval-Werte gelten für Single-Model Single-Scale auf dem COCO Keypoints val2017 Datensatz.
    Reproduziere dies mit yolo val pose data=coco-pose.yaml device=0
  • Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung einer Amazon EC2 P4d Instanz.
    Reproduziere dies mit yolo val pose data=coco-pose.yaml batch=1 device=0|cpu
  • Params- und FLOPs-Werte beziehen sich auf das fusionierte Modell nach model.fuse(), das Conv- und BatchNorm-Schichten zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Erkennungskopf entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Zahlen aufweisen.

Trainieren

Trainiere ein YOLO26-pose Modell auf dem COCO8-pose Datensatz. Der COCO8-pose Datensatz ist ein kleiner Beispieldatensatz, der sich perfekt zum Testen und Debuggen deiner Pose-Estimation-Modelle eignet.

Beispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)

Vollständige Details zum train-Modus findest du auf der Train-Seite. Pose-Modelle können auch über die Ultralytics Platform auf Cloud-GPUs trainiert werden.

Datensatzformat

Das YOLO Pose-Datensatzformat findest du im Detail im Dataset Guide. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO etc.) in das YOLO-Format zu konvertieren, nutze bitte das JSON2YOLO Tool von Ultralytics. Die Ultralytics Platform unterstützt auch Pose-Annotationen mit integrierten Skelett-Vorlagen für Personen, Hände, Gesichter und benutzerdefinierte Keypoint-Layouts.

Für spezifische Pose-Estimation-Aufgaben kannst du auch spezialisierte Datensätze erkunden, wie Tiger-Pose für Tier-Pose-Estimation, Hand Keypoints für Hand-Tracking oder Dog-Pose für Hunde-Pose-Analyse.

Validieren

Validiere die accuracy eines trainierten YOLO26n-pose Modells auf dem COCO8-pose Datensatz. Es sind keine Argumente erforderlich, da das model seine Trainings-data und Parameter als Modellattribute beibehält.

Beispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps  # a list containing mAP50-95 for each category
metrics.box.image_metrics  # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map  # map50-95(P)
metrics.pose.map50  # map50(P)
metrics.pose.map75  # map75(P)
metrics.pose.maps  # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics  # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FN

Vorhersage

Verwende ein trainiertes YOLO26n-pose Modell, um Vorhersagen auf Bildern auszuführen. Der predict mode ermöglicht es dir, Inferenz auf Bildern, Videos oder Echtzeit-Streams durchzuführen.

Beispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image

# Access the results
for result in results:
    xy = result.keypoints.xy  # x and y coordinates
    xyn = result.keypoints.xyn  # normalized
    kpts = result.keypoints.data  # x, y, visibility (if available)

Siehe vollständige Details zum predict-Modus auf der Predict-Seite.

Exportieren

Exportiere ein YOLO26n Pose-Modell in ein anderes Format wie ONNX, CoreML, etc. Dies ermöglicht es dir, dein Modell auf verschiedenen Plattformen und Geräten für real-time inference bereitzustellen.

Beispiel
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

Verfügbare YOLO26-pose Exportformate findest du in der untenstehenden Tabelle. Du kannst in jedes Format exportieren, indem du das format-Argument verwendest, z. B. format='onnx' oder format='engine'. Du kannst direkt auf exportierten Modellen vorhersagen oder validieren, z. B. yolo predict model=yolo26n-pose.onnx. Anwendungsbeispiele werden für dein Modell nach Abschluss des Exports angezeigt.

Formatformat ArgumentModellMetadatenArgumente
PyTorch-yolo26n-pose.pt-
TorchScripttorchscriptyolo26n-pose.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-pose.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n-pose_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-pose.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-pose.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-pose_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-pose.pbimgsz, batch, device
TF Litetfliteyolo26n-pose.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-pose_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-pose_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-pose_paddle_model/imgsz, batch, device
MNNmnnyolo26n-pose.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-pose_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-pose_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-pose_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n-pose_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-pose_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n-pose_deepx_model/imgsz, int8, data, optimize, device

Siehe vollständige export-Details auf der Seite Export.

FAQ

Was ist Pose Estimation mit Ultralytics YOLO26 und wie funktioniert es?

Pose Estimation mit Ultralytics YOLO26 beinhaltet die Identifizierung spezifischer Punkte, bekannt als Keypoints, in einem Bild. Diese Keypoints stellen typischerweise Gelenke oder andere wichtige Merkmale des Objekts dar. Die Ausgabe beinhaltet die [x, y] Koordinaten und Konfidenzwerte für jeden Punkt. YOLO26-pose Modelle sind speziell für diese Aufgabe konzipiert und verwenden das -pose Suffix, wie yolo26n-pose.pt. Diese Modelle sind auf Datensätzen wie COCO keypoints vortrainiert und können für verschiedene Pose-Estimation-Aufgaben verwendet werden. Für weitere Informationen besuche die Pose Estimation Page.

Wie kann ich ein YOLO26-pose Modell auf einem benutzerdefinierten Datensatz trainieren?

Das Training eines YOLO26-pose Modells auf einem benutzerdefinierten Datensatz beinhaltet das Laden eines Modells, entweder ein neues, durch eine YAML-Datei definiertes Modell oder ein vortrainiertes Modell. Du kannst dann den Trainingsprozess mit deinem angegebenen Datensatz und Parametern starten.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.yaml")  # build a new model from YAML
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Für umfassende Details zum Training, siehe den Train Section. Du kannst auch die Ultralytics Platform für einen No-Code-Ansatz zum Training benutzerdefinierter Pose-Estimation-Modelle nutzen.

Wie validiere ich ein trainiertes YOLO26-pose Modell?

Die Validierung eines YOLO26-pose Modells beinhaltet die Bewertung seiner Genauigkeit unter Verwendung derselben Datensatzparameter, die während des Trainings beibehalten wurden. Hier ist ein Beispiel:

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered

Für weitere Informationen besuche den Val Section.

Kann ich ein YOLO26-pose Modell in andere Formate exportieren, und wie?

Ja, du kannst ein YOLO26-pose Modell in verschiedene Formate wie ONNX, CoreML, TensorRT und mehr exportieren. Dies kann entweder über Python oder die Command Line Interface (CLI) erfolgen.

from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom-trained model

# Export the model
model.export(format="onnx")

Siehe den Export Section für weitere Details. Exportierte Modelle können auf Edge-Geräten für real-time applications wie Fitness-Tracking, Sportanalyse oder robotics bereitgestellt werden.

Was sind die verfügbaren Ultralytics YOLO26-pose Modelle und deren Leistungsmetriken?

Ultralytics YOLO26 bietet verschiedene vortrainierte Pose-Modelle wie YOLO26n-pose, YOLO26s-pose, YOLO26m-pose und andere. Diese Modelle unterscheiden sich in Größe, Genauigkeit (mAP) und Geschwindigkeit. Zum Beispiel erreicht das YOLO26n-pose Modell einen mAPpose50-95 von 50.0 und einen mAPpose50 von 81.0. Für eine vollständige Liste und Leistungsdetails besuche den Models Section.

Kommentare