姿势估计
姿态估计是一项涉及识别图像中特定点(通常称为关键点)位置的任务。关键点可以代表物体的各个部分,如关节、地标或其他显著特征。关键点的位置通常用一组二维 [x, y]
或 3D [x, y, visible]
坐标
姿态估计模型的输出是一组代表图像中物体关键点的点,通常还包括每个点的置信度分数。当您需要识别场景中物体的特定部分及其相互之间的位置关系时,姿势估计是一个不错的选择。
观看: 利用Ultralytics YOLOv8 进行姿势估计 . |
观看: 利用Ultralytics HUB 估算姿势。 |
提示
YOLOv8 姿势 模型使用 -pose
后缀,即 yolov8n-pose.pt
.这些模型是在 COCO 要点 数据集,适用于各种姿势估计任务。
机型
YOLOv8 这里显示的是经过预训练的姿态模型。Detect、Segment 和 Pose 模型是在COCO数据集上预先训练的,而 Classify 模型则是在ImageNet数据集上预先训练的。
首次使用时,模型会自动从最新的Ultralytics 版本下载。
模型 | 尺寸 (像素) |
50-95 |
mAPpose 50 |
速度 CPUONNX (ms) |
速度 A100 TensorRT (毫秒) |
params (M) |
FLOPs (B) |
---|---|---|---|---|---|---|---|
YOLOv8n-姿势 | 640 | 50.4 | 80.1 | 131.8 | 1.18 | 3.3 | 9.2 |
YOLOv8s-姿势 | 640 | 60.0 | 86.2 | 233.2 | 1.42 | 11.6 | 30.2 |
YOLOv8m-姿势 | 640 | 65.0 | 88.8 | 456.3 | 2.00 | 26.4 | 81.0 |
YOLOv8l-姿势 | 640 | 67.6 | 90.0 | 784.5 | 2.59 | 44.4 | 168.6 |
YOLOv8x-姿势 | 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 数值是在 COCO 关键点2017 数据集。
复制方式yolo val pose data=coco-pose.yaml device=0
- 速度 对 COCO val 图像使用 亚马逊 EC2 P4d 实例
复制方式yolo val pose data=coco8-pose.yaml batch=1 device=0|cpu
火车
在 COCO128-pose 数据集上训练YOLOv8-pose 模型。
示例
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n-pose.yaml') # build a new model from YAML
model = YOLO('yolov8n-pose.pt') # load a pretrained model (recommended for training)
model = YOLO('yolov8n-pose.yaml').load('yolov8n-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=yolov8n-pose.yaml epochs=100 imgsz=640
# Start training from a pretrained *.pt model
yolo pose train data=coco8-pose.yaml model=yolov8n-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=yolov8n-pose.yaml pretrained=yolov8n-pose.pt epochs=100 imgsz=640
数据集格式
YOLO pose数据集格式详见数据集指南。要将现有数据集从其他格式(如 COCO 等)转换为YOLO 格式,请使用JSON2YOLO工具(Ultralytics )。
瓦尔
在 COCO128-pose 数据集上验证训练有素的YOLOv8n-pose 模型的准确性。无需传递参数,因为 model
保留其培训 data
和参数作为模型属性。
示例
from ultralytics import YOLO
# Load a model
model = YOLO('yolov8n-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
预测
使用训练有素的YOLOv8n-pose 模型对图像进行预测。
示例
查看全文 predict
模式的详细信息,请参见 预测 page.
出口
将YOLOv8n Pose 模型导出为不同格式,如ONNX,CoreML 等。
示例
YOLOv8-pose 可用的导出格式如下表所示。您可以使用 format
参数,即 format='onnx'
或 format='engine'
.您可以直接对导出的模型进行预测或验证,即 yolo predict model=yolov8n-pose.onnx
.导出完成后会显示模型的使用示例。
格式 | format 论据 |
模型 | 元数据 | 论据 |
---|---|---|---|---|
PyTorch | - | yolov8n-pose.pt |
✅ | - |
TorchScript | torchscript |
yolov8n-pose.torchscript |
✅ | imgsz , optimize , batch |
ONNX | onnx |
yolov8n-pose.onnx |
✅ | imgsz , half , dynamic , simplify , opset , batch |
OpenVINO | openvino |
yolov8n-pose_openvino_model/ |
✅ | imgsz , half , int8 , batch |
TensorRT | engine |
yolov8n-pose.engine |
✅ | imgsz , half , dynamic , simplify , workspace , batch |
CoreML | coreml |
yolov8n-pose.mlpackage |
✅ | imgsz , half , int8 , nms , batch |
TF SavedModel | saved_model |
yolov8n-pose_saved_model/ |
✅ | imgsz , keras , int8 , batch |
TF GraphDef | pb |
yolov8n-pose.pb |
❌ | imgsz , batch |
TF 轻型 | tflite |
yolov8n-pose.tflite |
✅ | imgsz , half , int8 , batch |
TF 边缘TPU | edgetpu |
yolov8n-pose_edgetpu.tflite |
✅ | imgsz , batch |
TF.js | tfjs |
yolov8n-pose_web_model/ |
✅ | imgsz , half , int8 , batch |
PaddlePaddle | paddle |
yolov8n-pose_paddle_model/ |
✅ | imgsz , batch |
NCNN | ncnn |
yolov8n-pose_ncnn_model/ |
✅ | imgsz , half , batch |
查看全文 export
中的详细信息 出口 page.
创建于 2023-11-12,更新于 2024-04-27
作者:glenn-jocher(14),Burhan-Q(1),RizwanMunawar(1),AyushExel(1),Laughing-q(1)