Zum Inhalt springen

Pose-Schätzung

Beispiele für 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:

  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

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 durch yolo val pose data=coco-pose.yaml device=0
  • Geschwindigkeit gemittelt über COCO val-Bilder unter Verwendung von Amazon EC2 P4d Instanz.
    Reproduzieren durch yolo 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.



📅 Vor 1 Jahr erstellt ✏️ Vor 3 Monaten aktualisiert

Kommentare