Link to this sectionƯớc lượng tư thế#
Ước lượng tư thế là một tác vụ liên quan đến việc xác định vị trí của các điểm cụ thể trong một hình ảnh, thường được gọi là keypoints (điểm mấu chốt). Các keypoints này có thể đại diện cho nhiều bộ phận khác nhau của đối tượng như khớp, cột mốc, hoặc các đặc điểm nhận dạng khác. Vị trí của các keypoints thường được biểu diễn dưới dạng một tập hợp tọa độ 2D [x, y], tùy chọn kèm theo cờ hiển thị [x, y, visible].
Đầu ra của một model ước lượng tư thế là một tập hợp các điểm đại diện cho các keypoints trên một đối tượng trong hình ảnh, thường đi kèm với các điểm số tin cậy cho mỗi điểm. Ước lượng tư thế là lựa chọn tối ưu khi bạn cần xác định các bộ phận cụ thể của một đối tượng trong khung hình và vị trí tương đối của chúng với nhau.
Watch: How to Run Real-Time Pose Estimation with Ultralytics YOLO26 | Tracking & Keypoints Extraction 🕺
Các model pose YOLO26 sử dụng hậu tố -pose, ví dụ: yolo26n-pose.pt. Các model này được huấn luyện trên bộ dữ liệu COCO keypoints và phù hợp cho nhiều tác vụ ước lượng tư thế khác nhau.
Trong model pose YOLO26 mặc định, có 17 keypoints, mỗi điểm đại diện cho một bộ phận khác nhau của cơ thể người. Dưới đây là bảng ánh xạ từ mỗi chỉ số đến khớp cơ thể tương ứng:
- Mũi
- Mắt trái
- Mắt phải
- Tai trái
- Tai phải
- Vai trái
- Vai phải
- Khuỷu tay trái
- Khuỷu tay phải
- Cổ tay trái
- Cổ tay phải
- Hông trái
- Hông phải
- Đầu gối trái
- Đầu gối phải
- Mắt cá chân trái
- Mắt cá chân phải
Link to this sectionModel#
Các model Pose tiền huấn luyện của Ultralytics YOLO26 được hiển thị tại đây. Các model Detect, Segment và Pose được tiền huấn luyện trên bộ dữ liệu COCO, các model Semantic được tiền huấn luyện trên Cityscapes, và các model Classify được tiền huấn luyện trên bộ dữ liệu ImageNet.
Các Models sẽ tự động tải xuống từ release mới nhất của Ultralytics ngay lần đầu sử dụng.
| Mô hình | kích thước (pixel) | mAPpose 50-95(e2e) | mAPpose 50(e2e) | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-pose | 640 | 57.2 | 83.3 | 40.3 ± 0.5 | 1.8 ± 0.0 | 2.9 | 7.5 |
| YOLO26s-pose | 640 | 63.0 | 86.6 | 85.3 ± 0.9 | 2.7 ± 0.0 | 10.4 | 23.9 |
| YOLO26m-pose | 640 | 68.8 | 89.6 | 218.0 ± 1.5 | 5.0 ± 0.1 | 21.5 | 73.1 |
| YOLO26l-pose | 640 | 70.4 | 90.5 | 275.4 ± 2.4 | 6.5 ± 0.1 | 25.9 | 91.3 |
| YOLO26x-pose | 640 | 71.6 | 91.6 | 565.4 ± 3.0 | 12.2 ± 0.2 | 57.6 | 201.7 |
- Các giá trị mAPval dành cho model đơn với quy mô đơn trên bộ dữ liệu COCO Keypoints val2017.
Tái lập bằng lệnhyolo val pose data=coco-pose.yaml device=0 - Tốc độ được tính trung bình trên các hình ảnh COCO val sử dụng instance Amazon EC2 P4d.
Tái lập bằng lệnhyolo val pose data=coco-pose.yaml batch=1 device=0|cpu - Các giá trị Params và FLOPs dành cho model đã hợp nhất sau khi chạy
model.fuse(), giúp gộp các lớp Conv và BatchNorm, và đối với các model end2end, sẽ loại bỏ đầu ra detection một-nhiều phụ trợ. Các checkpoint tiền huấn luyện giữ lại kiến trúc huấn luyện đầy đủ và có thể hiển thị số lượng cao hơn.
Link to this sectionHuấn luyện (Train)#
Huấn luyện một model YOLO26-pose trên bộ dữ liệu COCO8-pose. Bộ dữ liệu COCO8-pose là một bộ dữ liệu mẫu nhỏ hoàn hảo để kiểm thử và gỡ lỗi các model ước lượng tư thế của bạn.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-pose.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n-pose.yaml").load("yolo26n-pose.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8-pose.yaml", epochs=100, imgsz=640)Xem chi tiết chế độ train đầy đủ trong trang Train. Các model Pose cũng có thể được huấn luyện trên GPU đám mây thông qua Ultralytics Platform.
Link to this sectionĐịnh dạng tập dữ liệu#
Định dạng bộ dữ liệu YOLO pose có thể được tìm thấy chi tiết trong Hướng dẫn Bộ dữ liệu. Để chuyển đổi bộ dữ liệu hiện có từ các định dạng khác (như COCO v.v.) sang định dạng YOLO, vui lòng sử dụng công cụ JSON2YOLO của Ultralytics. Ultralytics Platform cũng hỗ trợ chú thích tư thế với các template khung xương tích hợp sẵn cho người, bàn tay, khuôn mặt và các bố cục keypoint tùy chỉnh.
Đối với các tác vụ ước lượng tư thế tùy chỉnh, bạn cũng có thể khám phá các bộ dữ liệu chuyên dụng như Tiger-Pose để ước lượng tư thế động vật, Hand Keypoints để theo dõi bàn tay, hoặc Dog-Pose để phân tích tư thế chó.
Link to this sectionVal#
Xác thực độ chính xác của model YOLO26n-pose đã huấn luyện trên bộ dữ liệu COCO8-pose. Không cần đối số nào vì model giữ lại data huấn luyện và các đối số của nó như là các thuộc tính của model.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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 containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary for box with precision, recall, F1, TP, FP, and FN
metrics.pose.map # map50-95(P)
metrics.pose.map50 # map50(P)
metrics.pose.map75 # map75(P)
metrics.pose.maps # a list containing mAP50-95(P) for each category
metrics.pose.image_metrics # per-image metrics dictionary for pose with precision, recall, F1, TP, FP, and FNLink to this sectionDự đoán (Predict)#
Sử dụng model YOLO26n-pose đã huấn luyện để chạy dự đoán trên hình ảnh. Chế độ predict cho phép bạn thực hiện suy luận trên hình ảnh, video hoặc luồng dữ liệu thời gian thực.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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)Xem chi tiết đầy đủ về chế độ predict trong trang Dự đoán.
Link to this sectionĐầu ra kết quả#
Ước lượng tư thế trả về một đối tượng Results cho mỗi hình ảnh. Các trường dự đoán chính là result.keypoints cho tọa độ tư thế và result.boxes cho các instance được phát hiện mà các keypoints đó thuộc về.
| Thuộc tính | Loại | Hình dạng | Mô tả |
|---|---|---|---|
result.keypoints | Keypoints | (N) | Các Keypoints. |
result.keypoints.data | torch.float32 | (N,K,2/3) | x,y cộng với cờ hiển thị/độ tin cậy tùy chọn. |
result.keypoints.xy | torch.float32 | (N,K,2) | Các keypoint pixel. |
result.keypoints.xyn | torch.float32 | (N,K,2) | Các keypoint đã chuẩn hóa. |
result.boxes | Boxes | (N) | Các khung (box) của instance. |
Để biết các trường Results cụ thể cho từng tác vụ, hãy xem phần Dự đoán kết quả theo tác vụ.
Link to this sectionXuất (Export)#
Xuất model YOLO26n Pose sang một định dạng khác như ONNX, CoreML, v.v. Điều này cho phép bạn triển khai model của mình trên nhiều nền tảng và thiết bị khác nhau để thực hiện suy luận thời gian thực.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")Các định dạng xuất YOLO26-pose khả dụng nằm trong bảng bên dưới. Bạn có thể xuất sang bất kỳ định dạng nào bằng cách sử dụng đối số format, ví dụ: format='onnx' hoặc format='engine'. Bạn có thể thực hiện predict hoặc validate trực tiếp trên các model đã xuất, ví dụ: yolo predict model=yolo26n-pose.onnx. Các ví dụ sử dụng được hiển thị cho model của bạn sau khi quá trình xuất hoàn tất.
| Định dạng | Tham số format | Mô hình | Metadata | Tham số |
|---|---|---|---|---|
| PyTorch | - | yolo26n-pose.pt | ✅ | - |
| TorchScript | torchscript | yolo26n-pose.torchscript | ✅ | imgsz, half, dynamic, optimize, nms, batch, device |
| ONNX | onnx | yolo26n-pose.onnx | ✅ | imgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n-pose_openvino_model/ | ✅ | imgsz, half, dynamic, int8, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n-pose.engine | ✅ | imgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n-pose.mlpackage | ✅ | imgsz, dynamic, half, int8, nms, batch, device |
| TF SavedModel | saved_model | yolo26n-pose_saved_model/ | ✅ | imgsz, keras, int8, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n-pose.pb | ❌ | imgsz, batch, device |
| TF Lite | tflite | yolo26n-pose.tflite | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| TF Edge TPU | edgetpu | yolo26n-pose_edgetpu.tflite | ✅ | imgsz, int8, data, fraction, device |
| TF.js | tfjs | yolo26n-pose_web_model/ | ✅ | imgsz, half, int8, nms, batch, data, fraction, device |
| PaddlePaddle | paddle | yolo26n-pose_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n-pose.mnn | ✅ | imgsz, batch, int8, half, device |
| NCNN | ncnn | yolo26n-pose_ncnn_model/ | ✅ | imgsz, half, batch, device |
| IMX500 | imx | yolo26n-pose_imx_model/ | ✅ | imgsz, int8, data, fraction, nms, device |
| RKNN | rknn | yolo26n-pose_rknn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
| ExecuTorch | executorch | yolo26n-pose_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n-pose_axelera_model/ | ✅ | imgsz, batch, int8, data, fraction, device |
| DEEPX | deepx | yolo26n-pose_deepx_model/ | ✅ | imgsz, int8, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n-pose_qnn_model/ | ✅ | imgsz, batch, name, int8, data, fraction, device |
Xem chi tiết export đầy đủ trong trang Export.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionƯớc lượng tư thế với Ultralytics YOLO26 là gì và nó hoạt động như thế nào?#
Ước lượng tư thế với Ultralytics YOLO26 liên quan đến việc xác định các điểm cụ thể, được gọi là keypoints, trong một hình ảnh. Những keypoints này thường đại diện cho các khớp hoặc các đặc điểm quan trọng khác của đối tượng. Đầu ra bao gồm các tọa độ [x, y] và điểm tin cậy cho mỗi điểm. Các model YOLO26-pose được thiết kế chuyên biệt cho tác vụ này và sử dụng hậu tố -pose, chẳng hạn như yolo26n-pose.pt. Các model này được tiền huấn luyện trên các bộ dữ liệu như COCO keypoints và có thể được sử dụng cho nhiều tác vụ ước lượng tư thế khác nhau. Để biết thêm thông tin, hãy truy cập Trang Ước lượng Tư thế.
Link to this sectionLàm thế nào để huấn luyện một model YOLO26-pose trên bộ dữ liệu tùy chỉnh?#
Việc huấn luyện một model YOLO26-pose trên bộ dữ liệu tùy chỉnh bao gồm việc tải một model, có thể là một model mới được định nghĩa bởi file YAML hoặc một model đã được tiền huấn luyện. Sau đó, bạn có thể bắt đầu quá trình huấn luyện bằng cách sử dụng bộ dữ liệu và các tham số đã chỉ định.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-pose.yaml") # build a new model from YAML
model = YOLO("yolo26n-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 thông tin chi tiết toàn diện về huấn luyện, hãy tham khảo Phần Train. Bạn cũng có thể sử dụng Ultralytics Platform cho cách tiếp cận không cần code để huấn luyện các model ước lượng tư thế tùy chỉnh.
Link to this sectionLàm cách nào để xác thực một model YOLO26-pose đã được huấn luyện?#
Việc xác thực model YOLO26-pose bao gồm đánh giá độ chính xác của nó bằng cách sử dụng các tham số bộ dữ liệu tương tự đã được giữ lại trong quá trình huấn luyện. Dưới đây là một ví dụ:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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.
Link to this sectionTôi có thể xuất model YOLO26-pose sang các định dạng khác không, và bằng cách nào?#
Có, bạn có thể xuất model YOLO26-pose sang nhiều định dạng khác nhau như ONNX, CoreML, TensorRT, v.v. Việc này có thể được thực hiện bằng Python hoặc Giao diện Dòng lệnh (CLI).
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n-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 Export để biết thêm chi tiết. Các model đã xuất có thể được triển khai trên các thiết bị edge cho các ứng dụng thời gian thực như theo dõi thể dục, phân tích thể thao hoặc robot học.
Link to this sectionCác model Ultralytics YOLO26-pose khả dụng và các chỉ số hiệu năng của chúng là gì?#
Ultralytics YOLO26 cung cấp nhiều model pose tiền huấn luyện khác nhau như YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, cùng nhiều model khác. Các model này khác nhau về kích thước, độ chính xác (mAP) và tốc độ. Ví dụ, model YOLO26n-pose đạt mAPpose50-95 là 57.2 và mAPpose50 là 83.3. Để xem danh sách đầy đủ và chi tiết hiệu năng, hãy truy cập Phần Models.