Link to this sectionPose Estimation#
Pose Estimation ist eine Aufgabe, bei der es darum geht, die Position bestimmter Punkte in einem Bild zu identifizieren, die üblicherweise als Keypoints bezeichnet werden. Diese Keypoints können verschiedene Teile eines Objekts darstellen, wie zum Beispiel Gelenke, Orientierungspunkte oder andere charakteristische Merkmale. Die Positionen der Keypoints werden normalerweise als eine Reihe von 2D-[x, y]-Koordinaten angegeben, optional ergänzt um einen Sichtbarkeits-Flag [x, y, visible].
Die Ausgabe eines Pose-Estimation-Modells ist eine Menge von Punkten, die die Keypoints eines Objekts im Bild darstellen, normalerweise zusammen mit den Konfidenzwerten für jeden Punkt. Pose Estimation ist eine gute Wahl, wenn du bestimmte Teile eines Objekts in einer Szene sowie deren Position in Bezug zueinander identifizieren musst.
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 wurden 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, von denen jeder einen anderen Teil des menschlichen Körpers repräsentiert. Hier ist die Zuordnung der einzelnen Indizes zu den jeweiligen Körpergelenken:
- 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
Link to this sectionModelle#
Ultralytics YOLO26 vortrainierte Pose-Modelle sind hier dargestellt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, Semantic-Modelle sind auf Cityscapes vortrainiert und Classify-Modelle sind auf dem ImageNet-Datensatz vortrainiert.
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) | Parameter (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 ein einzelnes Modell mit Einzelskalierung 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(), welches Conv- und BatchNorm-Layer zusammenführt und bei End-to-End-Modellen den zusätzlichen One-to-Many-Detection-Head entfernt. Vortrainierte Checkpoints behalten die vollständige Trainingsarchitektur bei und können höhere Anzahlen aufweisen.
Link to this sectionTrainieren#
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)Die vollständigen Details zum train-Modus findest du auf der Train-Seite. Pose-Modelle können auch über die Ultralytics Platform auf Cloud-GPUs trainiert werden.
Link to this sectionDatensatzformat#
Das YOLO-Pose-Datensatzformat ist detailliert im Dataset Guide beschrieben. Um deinen bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwende bitte das JSON2YOLO-Tool von Ultralytics. Die Ultralytics Platform unterstützt zudem die Pose-Annotation mit integrierten Skelettvorlagen für Personen, Hände, Gesichter und benutzerdefinierte Keypoint-Layouts.
Für benutzerdefinierte 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 die Analyse von Hunde-Posen.
Link to this sectionValidieren#
Validiere die Genauigkeit des trainierten YOLO26n-pose-Modells auf dem COCO8-pose-Datensatz. Es sind keine Argumente erforderlich, da das model seine Trainings-data und Argumente 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 FNLink to this sectionVorhersagen#
Verwende ein trainiertes YOLO26n-pose-Modell, um Vorhersagen auf Bildern auszuführen. Der Predict-Modus 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.
Link to this sectionErgebnisausgabe#
Pose Estimation liefert ein Results-Objekt pro Bild. Die primären Vorhersagefelder sind result.keypoints für Pose-Koordinaten und result.boxes für die erkannten Instanzen, zu denen diese Keypoints gehören.
| Attribut | Typ | Form | Beschreibung |
|---|---|---|---|
result.keypoints | Keypoints | (N) | Keypoints. |
result.keypoints.data | torch.float32 | (N,K,2/3) | x,y plus optionale Sichtbarkeit/Konfidenz. |
result.keypoints.xy | torch.float32 | (N,K,2) | Pixel-Keypoints. |
result.keypoints.xyn | torch.float32 | (N,K,2) | Normalisierte Keypoints. |
result.boxes | Boxes | (N) | Instanz-Boxen. |
Für aufgaben-spezifische Results-Felder für jede Aufgabe siehe den Abschnitt Vorhersageergebnisse nach Aufgabe.
Link to this sectionExportieren#
Exportiere ein YOLO26n-Pose-Modell in ein anderes Format wie ONNX, CoreML usw. Dies ermöglicht dir, dein Modell auf verschiedenen Plattformen und Geräten für Echtzeit-Inferenz 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 folgenden Tabelle. Du kannst in jedes Format exportieren, indem du das format-Argument verwendest, z. B. format='onnx' oder format='engine'. Du kannst direkt mit den 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, int8, dynamic, simplify, opset, nms, batch, data, fraction, 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, int8, data, fraction, 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 |
| Qualcomm QNN | qnn | yolo26n-pose_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Siehe vollständige export Details auf der Export Seite.
Link to this sectionFAQ#
Link to this sectionWas 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 repräsentieren typischerweise Gelenke oder andere wichtige Merkmale des Objekts. 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 Suffix -pose, wie zum Beispiel yolo26n-pose.pt. Diese Modelle sind auf Datensätzen wie COCO keypoints vortrainiert und können für verschiedene Pose-Estimation-Aufgaben verwendet werden. Weitere Informationen findest du auf der Pose Estimation-Seite.
Link to this sectionWie 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 Modell, das durch eine YAML-Datei definiert ist, oder ein vortrainiertes Modell. Du kannst dann den Trainingsprozess mit deinem spezifizierten 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)Ausführliche Details zum Training findest du im Train-Abschnitt. Du kannst auch die Ultralytics Platform für einen No-Code-Ansatz zum Training benutzerdefinierter Pose-Estimation-Modelle verwenden.
Link to this sectionWie validiere ich ein trainiertes YOLO26-pose-Modell?#
Die Validierung eines YOLO26-pose-Modells beinhaltet die Bewertung seiner Genauigkeit unter Verwendung der gleichen 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-Abschnitt.
Link to this sectionKann 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 mit Python oder dem 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")Weitere Details findest du im Export-Abschnitt. Exportierte Modelle können auf Edge-Geräten für Echtzeitanwendungen wie Fitness-Tracking, Sportanalyse oder Robotik eingesetzt werden.
Link to this sectionWas 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 57,2 und einen mAPpose50 von 83,3. Für eine vollständige Liste und Leistungsdetails besuche den Models-Abschnitt.