Bỏ để qua phần nội dung

Ước tính tư thế

Đặt ví dụ ước tính

Ước tính tư thế là một nhiệm vụ liên quan đến việc xác định vị trí của các điểm cụ thể trong ảnh, thường được gọi là các điểm chính. Các điểm chính có thể đại diện cho các phần khác nhau của đối tượng như khớp, mốc hoặc các tính năng đặc biệt khác. Vị trí của các điểm chính thường được biểu diễn dưới dạng một tập hợp 2D [x, y] hoặc 3D [x, y, visible] Tọa độ.

Đầu ra của mô hình ước tính tư thế là một tập hợp các điểm đại diện cho các điểm chính trên một đối tượng trong ảnh, thường cùng với điểm tin cậy cho mỗi điểm. Ước tính tư thế là một lựa chọn tốt khi bạn cần xác định các phần cụ thể của một đối tượng trong một cảnh và vị trí của chúng trong mối quan hệ với nhau.


Xem: Pose Estimation với Ultralytics YOLOv8.

Xem: Pose Estimation với Ultralytics Trung tâm.

Mẹo

YOLOv8 tư thế Các mô hình sử dụng -pose hậu tố, tức là yolov8n-pose.pt. Những mô hình này được đào tạo về Điểm chính của COCO tập dữ liệu và phù hợp với nhiều nhiệm vụ ước tính tư thế.

Trong mặc định YOLOv8 Mô hình tư thế, có 17 điểm chính, mỗi điểm đại diện cho một bộ phận khác nhau của cơ thể con người. Dưới đây là ánh xạ của từng chỉ số đến khớp cơ thể tương ứng của nó:

0: Mũi 1: Mắt trái 2: Mắt phải 3: Tai trái 4: Tai phải 5: Vai trái 6: Vai phải 7: Khuỷu tay trái 8: Khuỷu tay phải 9: Cổ tay trái 10: Cổ tay phải 11: Hông trái 12: Hông phải 13: Đầu gối trái 14: Đầu gối phải 15: Mắt cá chân trái 16: Mắt cá chân phải

Mô hình

YOLOv8 Các mô hình Pose được đào tạo sẵn được hiển thị ở đây. Các mô hình Phát hiện, Phân đoạn và Tư thế được đào tạo trước trên tập dữ liệu COCO , trong khi các mô hình Phân loại được đào tạo trước trên tập dữ liệu ImageNet .

Mô hình tải xuống tự động từ phiên bản mới nhất Ultralytics phát hành vào lần sử dụng đầu tiên.

Mẫu kích thước
(điểm ảnh)
bản đồtư thế
50-95
bản đồtư thế
50
Tốc độ
CPU ONNX
(Cô)
Tốc độ
A100 TensorRT
(Cô)
Params
(M)
Flops
(B)
YOLOv8n-tư thế 640 50.4 80.1 131.8 1.18 3.3 9.2
YOLOv8s-tư thế 640 60.0 86.2 233.2 1.42 11.6 30.2
YOLOv8m-tư thế 640 65.0 88.8 456.3 2.00 26.4 81.0
YOLOv8l-tư thế 640 67.6 90.0 784.5 2.59 44.4 168.6
YOLOv8x-tư thế 640 69.2 90.2 1607.1 3.73 69.4 263.2
YOLOv8x-Tư thế-P6 1280 71.6 91.2 4088.7 10.04 99.1 1066.4
  • mAPval Các giá trị dành cho thang đo đơn mô hình đơn trên Điểm chính COCO val2017 tập dữ liệu.
    Sinh sản bằng yolo val pose data=coco-pose.yaml device=0
  • Tốc độ tính trung bình trên hình ảnh COCO val bằng cách sử dụng một Amazon EC2 P4d ví dụ.
    Sinh sản bằng yolo val pose data=coco8-pose.yaml batch=1 device=0|cpu

Xe lửa

Đào tạo a YOLOv8-pose model trên tập dữ liệu COCO128 pose.

Ví dụ

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

Định dạng tập dữ liệu

YOLO Định dạng tập dữ liệu tư thế có thể được tìm thấy chi tiết trong Hướng dẫn tập dữ liệu. Để chuyển đổi tập dữ liệu hiện có của bạn từ các định dạng khác (như COCO, v.v.) sang YOLO , vui lòng sử dụng công cụ JSON2YOLO bằng cách Ultralytics.

Val

Xác thực đào tạo YOLOv8nĐộ chính xác của mô hình -pose trên tập dữ liệu COCO128 pose. Không cần phải thông qua tranh luận như model duy trì đào tạo data và các đối số làm thuộc tính mô hình.

Ví dụ

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
yolo pose val model=yolov8n-pose.pt  # val official model
yolo pose val model=path/to/best.pt  # val custom model

Dự đoán

Sử dụng một đào tạo YOLOv8n-pose model để chạy dự đoán trên hình ảnh.

Ví dụ

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

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
yolo pose predict model=yolov8n-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

Xem đầy đủ predict Chi tiết chế độ trong Dự đoán trang.

Xuất khẩu

Xuất một YOLOv8n Đặt mô hình sang một định dạng khác như ONNX, CoreMLv.v.

Ví dụ

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 trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n-pose.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

Có sẵn YOLOv8-pose export format nằm trong bảng dưới đây. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng format lập luận, tức là format='onnx' hoặc format='engine'. Bạn có thể dự đoán hoặc xác thực trực tiếp trên các mô hình đã xuất, tức là yolo predict model=yolov8n-pose.onnx. Ví dụ sử dụng được hiển thị cho mô hình của bạn sau khi xuất hoàn tất.

Định dạng format Lý lẽ Mẫu Siêu dữ liệu Lập luận
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, int8, 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 Lite tflite yolov8n-pose.tflite imgsz, half, int8, batch
TF Cạnh TPU edgetpu yolov8n-pose_edgetpu.tflite imgsz
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

Xem đầy đủ export Chi tiết trong Xuất khẩu trang.

FAQ

Ước tính tư thế với cái gì Ultralytics YOLOv8 Và nó hoạt động như thế nào?

Đặt ước tính với Ultralytics YOLOv8 Liên quan đến việc xác định các điểm cụ thể, được gọi là điểm chính, trong một hình ảnh. Những điểm chính này thường đại diện cho các khớp hoặc các tính năng quan trọng khác của đối tượng. Đầu ra bao gồm [x, y] tọa độ và điểm tin cậy cho mỗi điểm. YOLOv8Các mô hình -pose được thiết kế đặc biệt cho nhiệm vụ này và sử dụng -pose hậu tố, chẳng hạn như yolov8n-pose.pt. Các mô hình này được đào tạo trước trên các bộ dữ liệu như Điểm chính của COCO và có thể được sử dụng cho các nhiệm vụ ước tính tư thế khác nhau. Để biết thêm thông tin, hãy truy cập Trang ước tính tư thế.

Làm thế nào tôi có thể đào tạo một YOLOv8-Đặt mô hình trên một tập dữ liệu tùy chỉnh?

Đào tạo một YOLOv8Mô hình -pose trên tập dữ liệu tùy chỉnh liên quan đến việc tải một mô hình, một mô hình mới được xác định bởi tệp YAML hoặc mô hình được đào tạo trước. Sau đó, bạn có thể bắt đầu quá trình đào tạo bằng cách sử dụng tập dữ liệu và tham số được chỉ định của mình.

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)

# Train the model
results = model.train(data="your-dataset.yaml", epochs=100, imgsz=640)

Để biết chi tiết toàn diện về đào tạo, hãy tham khảo Phần đào tạo.

Làm cách nào để xác thực một người đã được đào tạo YOLOv8-Tạo dáng người mẫu?

Xác nhận một YOLOv8Mô hình -pose liên quan đến việc đánh giá độ chính xác của nó bằng cách sử dụng các tham số tập dữ liệu tương tự được giữ lại trong quá trình đào tạo. Đây là một ví dụ:

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

Để biết thêm thông tin, hãy truy cập Phần Val.

Tôi có thể xuất một YOLOv8-Đặt mô hình sang các định dạng khác, và làm thế nào?

Có, bạn có thể xuất một YOLOv8-pose mô hình sang các định dạng khác nhau như ONNX, CoreML, TensorRTvà hơn thế nữa. Điều này có thể được thực hiện bằng cách sử dụng một trong hai Python hoặc Giao diện dòng lệnh (CLI).

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 trained model

# Export the model
model.export(format="onnx")

Tham khảo Phần Xuất khẩu để biết thêm chi tiết.

Có sẵn những gì Ultralytics YOLOv8-POSE Mô hình và số liệu hiệu suất của chúng?

Ultralytics YOLOv8 Cung cấp các mô hình tư thế được đào tạo sẵn khác nhau như YOLOv8n-tư thế YOLOv8s-tư thế YOLOv8m-tạo dáng, trong số những người khác. Các mô hình này khác nhau về kích thước, độ chính xác (mAP) và tốc độ. Ví dụ, các YOLOv8nMô hình -pose đạt đượctư thếmAP 50-95 là 50,4 vàtư thếmAP 50 là 80,1. Để biết danh sách đầy đủ và chi tiết hiệu suất, hãy truy cập Phần Mô hình.



Đã tạo 2023-11-12, Cập nhật 2024-07-08
Tác giả: k-2feng@hotmail.com (1), glenn-jocher (20), Burhan-Q (4), RizwanMunawar (1), AyushExel (1), Laughing-q (1)

Ý kiến