13 KiB
comments | description | keywords |
---|---|---|
true | Erfahren Sie, wie Sie Ultralytics YOLOv8 für Aufgaben der Pose-Schätzung verwenden können. Finden Sie vortrainierte Modelle, lernen Sie, wie man eigene trainiert, validiert, vorhersagt und exportiert. | Ultralytics, YOLO, YOLOv8, Pose-Schätzung, Erkennung von Schlüsselpunkten, Objekterkennung, vortrainierte Modelle, maschinelles Lernen, künstliche Intelligenz |
Pose-Schätzung
Die Pose-Schätzung ist eine Aufgabe, die das Identifizieren der Lage spezifischer Punkte in einem Bild beinhaltet, die normalerweise als Schlüsselpunkte bezeichnet werden. Die Schlüsselpunkte können verschiedene Teile des Objekts wie Gelenke, Landmarken oder andere charakteristische Merkmale repräsentieren. Die Positionen der Schlüsselpunkte sind üblicherweise als eine Gruppe von 2D [x, y]
oder 3D [x, y, sichtbar]
Koordinaten dargestellt.
Das Ergebnis eines Pose-Schätzungsmodells ist eine Gruppe von Punkten, die die Schlüsselpunkte auf einem Objekt im Bild darstellen, normalerweise zusammen mit den Konfidenzwerten für jeden Punkt. Die Pose-Schätzung eignet sich gut, wenn Sie spezifische Teile eines Objekts in einer Szene identifizieren müssen und deren Lage zueinander.
Ansehen: Pose-Schätzung mit Ultralytics YOLOv8.
!!! Tipp "Tipp"
YOLOv8 _pose_-Modelle verwenden den Suffix `-pose`, z. B. `yolov8n-pose.pt`. Diese Modelle sind auf dem [COCO-Schlüsselpunkte](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml)-Datensatz trainiert und für eine Vielzahl von Pose-Schätzungsaufgaben geeignet.
Modelle
Hier werden vortrainierte YOLOv8 Pose-Modelle gezeigt. Erkennungs-, Segmentierungs- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, während Klassifizierungsmodelle auf dem ImageNet-Datensatz vortrainiert sind.
Modelle werden automatisch aus der neuesten Ultralytics-Veröffentlichung bei erstmaliger Verwendung heruntergeladen.
Modell | Größe (Pixel) |
mAPpose 50-95 |
mAPpose 50 |
Geschwindigkeit CPU ONNX (ms) |
Geschwindigkeit A100 TensorRT (ms) |
Parameter (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-pose | 640 | 50,4 | 80,1 | 131,8 | 1,18 | 3,3 | 9,2 |
YOLOv8s-pose | 640 | 60,0 | 86,2 | 233,2 | 1,42 | 11,6 | 30,2 |
YOLOv8m-pose | 640 | 65,0 | 88,8 | 456,3 | 2,00 | 26,4 | 81,0 |
YOLOv8l-pose | 640 | 67,6 | 90,0 | 784,5 | 2,59 | 44,4 | 168,6 |
YOLOv8x-pose | 640 | 69,2 | 90,2 | 1607,1 | 3,73 | 69,4 | 263,2 |
YOLOv8x-pose-p6 | 1280 | 71,6 | 91,2 | 4088,7 | 10,04 | 99,1 | 1066,4 |
- mAPval Werte gelten für ein einzelnes Modell mit einfacher Skala auf dem COCO Keypoints val2017-Datensatz.
Zu reproduzieren mityolo val pose data=coco-pose.yaml device=0
. - Geschwindigkeit gemittelt über COCO-Validierungsbilder mit einer Amazon EC2 P4d-Instanz.
Zu reproduzieren mityolo val pose data=coco8-pose.yaml batch=1 device=0|cpu
.
Trainieren
Trainieren Sie ein YOLOv8-Pose-Modell auf dem COCO128-Pose-Datensatz.
!!! Beispiel ""
=== "Python"
```python
from ultralytics import YOLO
# Modell laden
model = YOLO('yolov8n-pose.yaml') # ein neues Modell aus YAML bauen
model = YOLO('yolov8n-pose.pt') # ein vortrainiertes Modell laden (empfohlen für das Training)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-pose.pt') # aus YAML bauen und Gewichte übertragen
# Modell trainieren
results = model.train(data='coco8-pose.yaml', epochs=100, imgsz=640)
```
=== "CLI"
```bash
# Ein neues Modell aus YAML bauen und das Training von Grund auf starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml epochs=100 imgsz=640
# Training von einem vortrainierten *.pt Modell starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.pt epochs=100 imgsz=640
# Ein neues Modell aus YAML bauen, vortrainierte Gewichte übertragen und das Training starten
yolo pose train data=coco8-pose.yaml model=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640
```
Datensatzformat
Das YOLO-Pose-Datensatzformat finden Sie detailliert im Datensatz-Leitfaden. Um Ihren bestehenden Datensatz aus anderen Formaten (wie COCO usw.) in das YOLO-Format zu konvertieren, verwenden Sie bitte das JSON2YOLO-Tool von Ultralytics.
Validieren
Die Genauigkeit des trainierten YOLOv8n-Pose-Modells auf dem COCO128-Pose-Datensatz validieren. Es müssen keine Argumente übergeben werden, da das Modell
seine Trainingsdaten
und Argumente als Modellattribute beibehält.
!!! Beispiel ""
=== "Python"
```python
from ultralytics import YOLO
# Modell laden
model = YOLO('yolov8n-pose.pt') # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt') # ein benutzerdefiniertes Modell laden
# Modell validieren
metrics = model.val() # keine Argumente nötig, Datensatz und Einstellungen sind gespeichert
metrics.box.map # map50-95
metrics.box.map50 # map50
metrics.box.map75 # map75
metrics.box.maps # Liste enthält map50-95 jeder Kategorie
```
=== "CLI"
```bash
yolo pose val model=yolov8n-pose.pt # offizielles Modell validieren
yolo pose val model=pfad/zu/best.pt # benutzerdefiniertes Modell validieren
```
Vorhersagen
Ein trainiertes YOLOv8n-Pose-Modell verwenden, um Vorhersagen auf Bildern zu machen.
!!! Beispiel ""
=== "Python"
```python
from ultralytics import YOLO
# Modell laden
model = YOLO('yolov8n-pose.pt') # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt') # ein benutzerdefiniertes Modell laden
# Mit dem Modell Vorhersagen machen
results = model('https://ultralytics.com/images/bus.jpg') # Vorhersage auf einem Bild machen
```
=== "CLI"
```bash
yolo pose predict model=yolov8n-pose.pt source='https://ultralytics.com/images/bus.jpg' # Vorhersage mit dem offiziellen Modell machen
yolo pose predict model=pfad/zu/best.pt source='https://ultralytics.com/images/bus.jpg' # Vorhersage mit dem benutzerdefinierten Modell machen
```
Vollständige predict
-Modusdetails finden Sie auf der Vorhersage-Seite.
Exportieren
Ein YOLOv8n-Pose-Modell in ein anderes Format wie ONNX, CoreML usw. exportieren.
!!! Beispiel ""
=== "Python"
```python
from ultralytics import YOLO
# Modell laden
model = YOLO('yolov8n-pose.pt') # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt') # ein benutzerdefiniertes Modell laden
# Modell exportieren
model.export(format='onnx')
```
=== "CLI"
```bash
yolo export model=yolov8n-pose.pt format=onnx # offizielles Modell exportieren
yolo export model=pfad/zu/best.pt format=onnx # benutzerdefiniertes Modell exportieren
```
Verfügbare YOLOv8-Pose-Exportformate sind in der folgenden Tabelle aufgeführt. Sie können direkt auf exportierten Modellen vorhersagen oder validieren, z. B. yolo predict model=yolov8n-pose.onnx
. Verwendungsbeispiele werden für Ihr Modell nach Abschluss des Exports angezeigt.
Format | format Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
PyTorch | - | yolov8n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-pose.torchscript |
✅ | imgsz , optimieren |
ONNX | onnx |
yolov8n-pose.onnx |
✅ | imgsz , halb , dynamisch , vereinfachen , opset |
OpenVINO | openvino |
yolov8n-pose_openvino_model/ |
✅ | imgsz , halb |
TensorRT | engine |
yolov8n-pose.engine |
✅ | imgsz , halb , dynamisch , vereinfachen , workspace |
CoreML | coreml |
yolov8n-pose.mlpackage |
✅ | imgsz , halb , int8 , nms |
TF SavedModel | saved_model |
yolov8n-pose_saved_model/ |
✅ | imgsz , keras |
TF GraphDef | pb |
yolov8n-pose.pb |
❌ | imgsz |
TF Lite | tflite |
yolov8n-pose.tflite |
✅ | imgsz , halb , int8 |
TF Edge TPU | edgetpu |
yolov8n-pose_edgetpu.tflite |
✅ | imgsz |
TF.js | tfjs |
yolov8n-pose_web_model/ |
✅ | imgsz |
PaddlePaddle | paddle |
yolov8n-pose_paddle_model/ |
✅ | imgsz |
ncnn | ncnn |
yolov8n-pose_ncnn_model/ |
✅ | imgsz , halb |
Vollständige export
-Details finden Sie auf der Export-Seite.