Pose Estimation
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 🕺
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:
- Nase
- Linkes Auge
- Rechtes Auge
- Linkes Ohr
- Rechtes Ohr
- Linke Schulter
- Rechte Schulter
- Linker Ellbogen
- Rechter Ellbogen
- Linkes Handgelenk
- Rechtes Handgelenk
- Linke Hüfte
- Rechte Hüfte
- Linkes Knie
- Rechtes Knie
- Linker Knöchel
- 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.
| Modell | Größe (Pixel) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Geschwindigkeit CPU ONNX (ms) | Geschwindigkeit T4 TensorRT10 (ms) | Params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- mAPval-Werte gelten für Single-Model Single-Scale auf dem COCO Keypoints val2017 Datensatz.
Reproduziere dies mityolo val pose data=coco-pose.yaml device=0 - Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung einer Amazon EC2 P4d Instanz.
Reproduziere dies mityolo 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.
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.
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 FNVorhersage
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.
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.
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.
| Format | format Argument | Modell | Metadaten | Argumente |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, dynamic, simplify, opset, nms, batch, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DeepX | deepx | yolo26n-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 rememberedFü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.