Ultralytics YOLO27:

Dataset COCO-Pose#

Dataset COCO-Pose điều chỉnh COCO (Các đối tượng phổ biến trong ngữ cảnh) cho tác vụ ước tính tư thế: 58.945 hình ảnh từ COCO Keypoints 2017, được gán nhãn cho 156.165 người bằng schema 17 keypoint. Đây là tập chuẩn để huấn luyện và benchmark các model keypoint như Ultralytics YOLO26, còn tập con COCO8-Pose gồm 8 hình ảnh mô phỏng format của tập này để kiểm tra nhanh tính hợp lệ.

Ước tính tư thế COCO với các keypoint người

Các model pretrained COCO-Pose#

Modelkích thước
(pixel)
mAPpose
50-95(e2e)
mAPpose
50(e2e)
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
YOLO26n-pose64057.283.340.3 ± 0.51.8 ± 0.02.97.6
YOLO26s-pose64063.086.685.3 ± 0.92.7 ± 0.010.424.1
YOLO26m-pose64068.889.6218.0 ± 1.55.0 ± 0.121.573.3
YOLO26l-pose64070.490.5275.4 ± 2.46.5 ± 0.125.991.7
YOLO26x-pose64071.691.6565.4 ± 3.012.2 ± 0.257.6202.3

Tính năng chính#

  • COCO-Pose được xây dựng dựa trên challenge COCO Keypoints 2017, trong đó gán nhãn 1.710.498 keypoint riêng lẻ trên 156.165 người được chú thích.
  • Mỗi annotation của một người sử dụng 17 loại keypoint — mũi, mắt, tai, vai, khuỷu tay, cổ tay, hông, đầu gối và mắt cá chân — được lưu dưới dạng các bộ ba (x, y, visibility).
  • Tương tự COCO, dataset này cung cấp các metric đánh giá được chuẩn hóa, bao gồm Object Keypoint Similarity (OKS) cho các tác vụ ước tính tư thế, nhờ đó phù hợp để so sánh hiệu năng của các model.
  • Dung lượng tải xuống: ~20.2 GB trong lần sử dụng đầu tiên (train2017.zip + val2017.zip + labels). test2017.zip 7 GB không được tự động tải xuống, vì các hình ảnh này không cung cấp ground truth và chỉ cần thiết cho submission test-dev2017.

Cấu trúc bộ dữ liệu#

Để huấn luyện và validation, COCO-Pose chỉ bao gồm các hình ảnh COCO 2017 có người được gán nhãn keypoint, vì vậy các split có nhãn của dataset này nhỏ hơn full COCO. YAML của dataset định nghĩa ba tập con:

  1. Train2017: Tập con này chứa 56.599 hình ảnh từ dataset COCO, được gán nhãn để huấn luyện các model ước tính tư thế.
  2. Val2017: Tập con này có 2.346 hình ảnh được sử dụng cho mục đích validation trong quá trình huấn luyện model.
  3. Test-dev2017: Tập con gồm 20.288 hình ảnh trong tổng số 40.670 hình ảnh của test2017, với ground truth được giữ kín. YAML của dataset liên kết split này với server đánh giá keypoint COCO test-dev.

Huấn luyện ở quy mô này là lúc Ultralytics Platform phát huy hiệu quả nhất — nền tảng quản lý tài nguyên compute để bạn có thể khởi chạy và theo dõi các run mà không cần tự provision GPU.

Ứng dụng#

Dataset COCO-Pose được sử dụng riêng để huấn luyện và đánh giá các model deep learning trên các tác vụ phát hiện keypoint và ước tính tư thế. Số lượng lớn hình ảnh được gán nhãn cùng các metric đánh giá được chuẩn hóa khiến dataset này trở thành tài nguyên thiết yếu cho các nhà nghiên cứu và kỹ sư computer vision làm việc với tư thế người.

YAML của bộ dữ liệu#

Một file YAML được sử dụng để định nghĩa cấu hình dataset. File này chứa thông tin về các path, class và các thông tin liên quan khác của dataset. Đối với dataset COCO-Pose, file coco-pose.yaml được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco-pose.yaml.

ultralytics/cfg/datasets/coco-pose.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO 2017 Keypoints dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/pose/coco
# Example usage: yolo train data=coco-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco-pose ← downloads here (20.2 GB)

# Train/val/test sets as 1) dir: path/to/imgs, 2) file: path/to/imgs.txt, or 3) list: [path/to/imgs1, path/to/imgs2, ..]
path: coco-pose # dataset root dir
train: train2017.txt # train images (relative to 'path') 56599 images
val: val2017.txt # val images (relative to 'path') 2346 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://codalab.lisn.upsaclay.fr/competitions/7403

# Keypoints
kpt_shape: [17, 3] # number of keypoints, number of dims (2 for x,y or 3 for x,y,visible)
flip_idx: [0, 2, 1, 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15]

# Classes
names:
  0: person

# Keypoint names per class
kpt_names:
  0:
    - nose
    - left_eye
    - right_eye
    - left_ear
    - right_ear
    - left_shoulder
    - right_shoulder
    - left_elbow
    - right_elbow
    - left_wrist
    - right_wrist
    - left_hip
    - right_hip
    - left_knee
    - right_knee
    - left_ankle
    - right_ankle

# Download script/URL (optional)
download: |
  from pathlib import Path

  from ultralytics.utils import ASSETS_URL
  from ultralytics.utils.downloads import download

  # Download labels
  dir = Path(yaml["path"])  # dataset root dir

  urls = [f"{ASSETS_URL}/coco2017labels-pose.zip"]
  download(urls, dir=dir.parent)

  # Download data (test2017.zip excluded: ground truth is withheld, only used for the CodaLab test-dev split)
  urls = [
      "http://images.cocodataset.org/zips/train2017.zip",  # 19G, 118k images
      "http://images.cocodataset.org/zips/val2017.zip",  # 1G, 5k images
  ]
  download(urls, dir=dir / "images", threads=3)

Cách sử dụng#

Để huấn luyện model YOLO26n-pose trên dataset COCO-Pose trong 100 epoch với kích thước hình ảnh 640, bạn có thể sử dụng các đoạn code sau. Để xem danh sách đầy đủ các argument hiện có, hãy tham khảo trang Training của model.

Ví dụ huấn luyện
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-pose.pt")  # load a pretrained model (recommended for training)

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

Hình ảnh mẫu và annotation#

Dataset COCO-Pose chứa tập hợp đa dạng các hình ảnh có người được chú thích bằng keypoint. Dưới đây là một số ví dụ về hình ảnh trong dataset cùng với các annotation tương ứng:

Batch huấn luyện dạng mosaic của dataset ước tính tư thế COCO

  • Hình ảnh dạng mosaic: Hình ảnh này minh họa một batch train được tạo từ các hình ảnh dataset dạng mosaic. Mosaicing là một kỹ thuật được sử dụng trong quá trình train, kết hợp nhiều hình ảnh thành một hình ảnh duy nhất để tăng tính đa dạng của đối tượng và cảnh trong mỗi batch train. Điều này giúp cải thiện khả năng tổng quát hóa của model đối với các kích thước đối tượng, tỷ lệ khung hình và ngữ cảnh khác nhau.

Ví dụ này minh họa sự đa dạng và phức tạp của các hình ảnh trong dataset COCO-Pose, cũng như lợi ích của việc sử dụng phép ghép mosaic trong quá trình huấn luyện.

Trích dẫn và ghi nhận đóng góp#

Nếu sử dụng dataset COCO-Pose trong công việc nghiên cứu hoặc phát triển, vui lòng trích dẫn bài báo sau:

Trích dẫn
@misc{lin2015microsoft,
      title={Microsoft COCO: Common Objects in Context},
      author={Tsung-Yi Lin and Michael Maire and Serge Belongie and Lubomir Bourdev and Ross Girshick and James Hays and Pietro Perona and Deva Ramanan and C. Lawrence Zitnick and Piotr Dollár},
      year={2015},
      eprint={1405.0312},
      archivePrefix={arXiv},
      primaryClass={cs.CV}
}

Chúng tôi xin ghi nhận đóng góp của COCO Consortium trong việc tạo và duy trì tài nguyên có giá trị này cho cộng đồng computer vision. Để biết thêm thông tin về dataset COCO-Pose và các tác giả, hãy truy cập website dataset COCO.

FAQ#

  • COCO-Pose cung cấp các hình ảnh và annotation COCO Keypoints 2017 đã được chuyển đổi sang format keypoint của YOLO, sử dụng schema 17 keypoint trên 58.945 hình ảnh. Trỏ bất kỳ model pose Ultralytics YOLO nào đến dataset này bằng data=coco-pose.yaml, và trang Training ghi lại mọi argument bạn có thể tinh chỉnh từ đó.

  • Load yolo26n-pose.pt và gọi model.train(data="coco-pose.yaml", epochs=100, imgsz=640) — xem Train Example ở trên để biết đầy đủ các đoạn code Python và CLI, cũng như trang training để xem danh sách đầy đủ các argument.

  • Dataset COCO-Pose cung cấp một số metric đánh giá được chuẩn hóa cho các tác vụ ước tính tư thế, tương tự dataset COCO gốc. Các metric chính bao gồm Object Keypoint Similarity (OKS), dùng để đánh giá độ chính xác của các keypoint dự đoán so với annotation ground truth. Những metric này cho phép so sánh hiệu năng toàn diện giữa các model khác nhau. Ví dụ, các model pretrained COCO-Pose như YOLO26n-pose, YOLO26s-pose và các model khác có những metric hiệu năng cụ thể được liệt kê trong tài liệu, chẳng hạn như mAPpose50-95 và mAPpose50.

  • COCO-Pose cung cấp hai split có nhãn: 56.599 hình ảnh train2017 và 2.346 hình ảnh val2017. Split thứ ba, test-dev2017 (20.288 trong tổng số 40.670 hình ảnh test2017), giữ ground truth ở chế độ riêng tư; YAML của dataset liên kết split này với server đánh giá keypoint COCO test-dev. Xem phần Cấu trúc Dataset hoặc file coco-pose.yaml trên GitHub để biết chính xác các path của split.

  • COCO-Pose sử dụng 17 loại keypoint người và kế thừa các metric được chuẩn hóa của COCO, bao gồm Object Keypoint Similarity (OKS), để so sánh các model. Sự kết hợp này phù hợp với các ứng dụng về tư thế người như phân tích thể thao, chăm sóc sức khỏe và tương tác người-máy. Các weight YOLO26-pose pretrained được liệt kê trong mục Các model pretrained COCO-Pose.

    Để tìm hiểu thêm về các model keypoint, hãy xem tài liệu về tác vụ Ước tính tư thế.

Bình luận