Pose-Schätzung
Pose-Schätzung ist eine Aufgabe, bei der die Position bestimmter Punkte in einem Bild identifiziert wird, die üblicherweise als Keypoints bezeichnet werden. Die Keypoints können verschiedene Teile des Objekts darstellen, wie z. B. Gelenke, Orientierungspunkte oder andere charakteristische Merkmale. Die Positionen der Keypoints werden normalerweise als eine Menge von 2D- [x, y]
oder 3D- [x, y, visible]
Koordinaten dargestellt.
Die Ausgabe eines Pose-Schätzungsmodells ist eine Menge von Punkten, die die Keypoints auf einem Objekt im Bild darstellen, üblicherweise zusammen mit den Konfidenzwerten für jeden Punkt. Die Pose-Schätzung ist eine gute Wahl, wenn Sie bestimmte Teile eines Objekts in einer Szene und ihre Position in Bezug zueinander identifizieren müssen.
Ansehen: Ultralytics YOLO11 Pose Estimation Tutorial | Echtzeit-Objektverfolgung und Erkennung der menschlichen Körperhaltung
Tipp
YOLO11 Pose Modelle verwenden die -pose
Suffix, d.h. yolo11n-pose.pt
. Diese Modelle werden auf den COCO-Keypoints trainiert Datensatz und eignen sich für eine Vielzahl von Pose-Schätzungsaufgaben.
Im Standard-YOLO11-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
Hier werden die vortrainierten Pose-Modelle von Ultralytics YOLO11 gezeigt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, während Classify-Modelle auf dem ImageNet-Datensatz vortrainiert sind.
Modelle werden beim ersten Gebrauch automatisch von der neuesten Ultralytics Version heruntergeladen.
Modell | Größe (Pixel) |
mAPPose 50-95 |
mAPPose 50 |
Geschwindigkeit CPU ONNX (ms) |
Geschwindigkeit T4 TensorRT10 (ms) |
Parameter (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLO11n-Pose | 640 | 50.0 | 81.0 | 52.4 ± 0.5 | 1.7 ± 0.0 | 2.9 | 7.6 |
YOLO11s-Pose | 640 | 58.9 | 86.3 | 90.5 ± 0.6 | 2.6 ± 0.0 | 9.9 | 23.2 |
YOLO11m-Pose | 640 | 64.9 | 89.4 | 187.3 ± 0.8 | 4.9 ± 0.1 | 20.9 | 71.7 |
YOLO11l-Pose | 640 | 66.1 | 89.9 | 247.7 ± 1.1 | 6.4 ± 0.1 | 26.2 | 90.7 |
YOLO11x-Pose | 640 | 69.5 | 91.1 | 488.0 ± 13.9 | 12.1 ± 0.2 | 58.8 | 203.3 |
- mAPval Werte gelten für Single-Model, Single-Scale auf COCO Keypoints val2017 Datensatz.
Reproduzieren durchyolo val pose data=coco-pose.yaml device=0
- Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung von Amazon EC2 P4d Instanz.
Reproduzieren durchyolo val pose data=coco-pose.yaml batch=1 device=0|cpu
Trainieren
Trainieren Sie ein YOLO11-Pose-Modell auf dem COCO8-Pose-Datensatz. Der COCO8-Pose-Datensatz ist ein kleiner Beispieldatensatz, der sich perfekt zum Testen und Debuggen Ihrer Pose-Schätzungsmodelle eignet.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.yaml") # build a new model from YAML
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo11n-pose.yaml").load("yolo11n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.pt epochs=100 imgsz=640
# Build a new model from YAML, transfer pretrained weights to it and start training
yolo pose train data=coco8-pose.yaml model=yolo11n-pose.yaml pretrained=yolo11n-pose.pt epochs=100 imgsz=640
Datensatzformat
Das YOLO-Format für Pose-Datensätze wird detailliert im Dataset Guide beschrieben. Um Ihren vorhandenen Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwenden Sie bitte das Tool JSON2YOLO von Ultralytics.
Für benutzerdefinierte Aufgaben zur Schätzung der Körperhaltung können Sie auch spezielle Datensätze wie Tiger-Pose für die Schätzung der Tierhaltung, Hand Keypoints für die Handverfolgung oder Dog-Pose für die Analyse der Hundehaltung untersuchen.
Validieren
Validiere das trainierte YOLO11n-Pose-Modell Genauigkeit auf dem COCO8-Pose-Datensatz. Es sind keine Argumente erforderlich, da die model
behält sein Training data
und Argumente als Modellattribute.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 contains map50-95 of each category
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pse.maps # a list contains map50-95(P) of each category
yolo pose val model=yolo11n-pose.pt # val official model
yolo pose val model=path/to/best.pt # val custom model
Vorhersagen
Verwenden Sie ein trainiertes YOLO11n-Pose-Modell, um Vorhersagen auf Bildern auszuführen. Der Vorhersagemodus ermöglicht es Ihnen, Inferenz auf Bildern, Videos oder Echtzeit-Streams durchzuführen.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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)
yolo pose predict model=yolo11n-pose.pt source='https://ultralytics.com/images/bus.jpg' # predict with official model
yolo pose predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg' # predict with custom model
Vollständige predict
Details zum Modus finden Sie auf der Vorhersagen Seite.
Export
Exportieren Sie ein YOLO11n Pose-Modell in ein anderes Format wie ONNX, CoreML usw. Dies ermöglicht es Ihnen, Ihr Modell auf verschiedenen Plattformen und Geräten für Echtzeit-Inferenz bereitzustellen.
Beispiel
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom trained model
# Export the model
model.export(format="onnx")
yolo export model=yolo11n-pose.pt format=onnx # export official model
yolo export model=path/to/best.pt format=onnx # export custom trained model
Verfügbare YOLO11-Pose-Exportformate sind in der Tabelle unten aufgeführt. Sie können in jedes Format exportieren, indem Sie die format
Argument in ein beliebiges Format exportieren, z. B. format='onnx'
oder format='engine'
. Sie können direkt mit exportierten Modellen Vorhersagen treffen oder diese validieren, z. B. yolo predict model=yolo11n-pose.onnx
. Anwendungsbeispiele werden nach Abschluss des Exports für Ihr Modell angezeigt.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
PyTorch | - | yolo11n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolo11n-pose.torchscript |
✅ | imgsz , half , dynamic , optimize , nms , batch , device |
ONNX | onnx |
yolo11n-pose.onnx |
✅ | imgsz , half , dynamic , simplify , opset , nms , batch , device |
OpenVINO | openvino |
yolo11n-pose_openvino_model/ |
✅ | imgsz , half , dynamic , int8 , nms , batch , data , fraction , device |
TensorRT | engine |
yolo11n-pose.engine |
✅ | imgsz , half , dynamic , simplify , workspace , int8 , nms , batch , data , fraction , device |
CoreML | coreml |
yolo11n-pose.mlpackage |
✅ | imgsz , half , int8 , nms , batch , device |
TF SavedModel | saved_model |
yolo11n-pose_saved_model/ |
✅ | imgsz , keras , int8 , nms , batch , device |
TF GraphDef | pb |
yolo11n-pose.pb |
❌ | imgsz , batch , device |
TF Lite | tflite |
yolo11n-pose.tflite |
✅ | imgsz , half , int8 , nms , batch , data , fraction , device |
TF Edge TPU | edgetpu |
yolo11n-pose_edgetpu.tflite |
✅ | imgsz , device |
TF.js | tfjs |
yolo11n-pose_web_model/ |
✅ | imgsz , half , int8 , nms , batch , device |
PaddlePaddle | paddle |
yolo11n-pose_paddle_model/ |
✅ | imgsz , batch , device |
MNN | mnn |
yolo11n-pose.mnn |
✅ | imgsz , batch , int8 , half , device |
NCNN | ncnn |
yolo11n-pose_ncnn_model/ |
✅ | imgsz , half , batch , device |
IMX500 | imx |
yolo11n-pose_imx_model/ |
✅ | imgsz , int8 , data , fraction , device |
RKNN | rknn |
yolo11n-pose_rknn_model/ |
✅ | imgsz , batch , name , device |
Vollständige export
Details auf der Export Seite.
FAQ
Was ist Pose-Schätzung mit Ultralytics YOLO11 und wie funktioniert sie?
Die Pose-Schätzung mit Ultralytics YOLO11 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. YOLO11-Pose-Modelle sind speziell für diese Aufgabe konzipiert und verwenden das -pose
Suffix, wie z.B. yolo11n-pose.pt
. COCO-Keypoints trainiert Diese Modelle sind auf Datensätzen wie und können für verschiedene Pose-Schätzungsaufgaben verwendet werden. Für weitere Informationen besuchen Sie die.
Wie kann ich ein YOLO11-Pose-Modell auf einem benutzerdefinierten Datensatz trainieren?
Pose-Schätzungsseite
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-pose.yaml") # build a new model from YAML
model = YOLO("yolo11n-pose.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)
Detaillierte Informationen zum Training finden Sie im Trainingsabschnitt. Sie können auch Ultralytics HUB für einen No-Code-Ansatz zum Trainieren benutzerdefinierter Modelle zur Schätzung der Körperhaltung verwenden.
Wie validiere ich ein trainiertes YOLO11-Pose-Modell?
Für umfassende Details zum Training, siehe den Trainingsabschnitt.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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
Die Validierung eines YOLO11-Pose-Modells beinhaltet die Bewertung seiner Genauigkeit unter Verwendung der gleichen Datensatzparameter, die während des Trainings beibehalten wurden. Hier ist ein Beispiel:
Kann ich ein YOLO11-Pose-Modell in andere Formate exportieren und wie?
Für weitere Informationen besuchen Sie den Val-Abschnitt.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-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 Informationen finden Sie im Export-Bereich. Exportierte Modelle können auf Edge-Geräten für Echtzeitanwendungen wie Fitness-Tracking, Sportanalyse oder Robotik eingesetzt werden.
Welche Ultralytics YOLO11-Pose-Modelle sind verfügbar und welche Leistungsmetriken haben sie?
Ultralytics YOLO11 bietet verschiedene vortrainierte Pose-Modelle wie YOLO11n-Pose, YOLO11s-Pose, YOLO11m-Pose und andere. Diese Modelle unterscheiden sich in Größe, Genauigkeit (mAP) und Geschwindigkeit. Beispielsweise erreicht das YOLO11n-Pose-Modell einen mAPpose50-95 von 50,0 und einen mAPpose50 von 81,0. Eine vollständige Liste und Leistungsdetails finden Sie im Abschnitt Modelle.