Ultralytics YOLO27:

Bộ dữ liệu COCO8-Pose#

Giới thiệu#

Ultralytics COCO8-Pose là một bộ dữ liệu ước lượng tư thế nhỏ nhưng linh hoạt, được tạo thành từ 8 hình ảnh đầu tiên của tập COCO train 2017 (4 ảnh cho training, 4 ảnh cho validation), sử dụng schema gồm 17 keypoint cho lớp "person" duy nhất. Bộ dữ liệu này lý tưởng để kiểm thử và debug các model ước lượng tư thế, hoặc thử nghiệm các phương pháp phát hiện keypoint mới. Với 8 hình ảnh, bộ dữ liệu đủ nhỏ để dễ dàng quản lý, nhưng vẫn đủ đa dạng để kiểm thử pipeline training nhằm phát hiện lỗi và thực hiện sanity check trước khi training trên toàn bộ bộ dữ liệu COCO-Pose.

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

  • Tổng số hình ảnh: 8 (4 train / 4 val).
  • Số lớp: 1 (person), với 17 loại keypoint trong mỗi annotation.
  • Kích thước tải xuống: ~1 MB.
  • Bố cục thư mục được đề xuất: datasets/coco8-pose/images/{train,val}datasets/coco8-pose/labels/{train,val}, với các keypoint theo định dạng YOLO được lưu dưới dạng các file .txt.

Khám phá COCO8-Pose trên Ultralytics Platform để duyệt mọi hình ảnh cùng skeleton keypoint tương ứng, xem phân phối keypoint và class trong tab Charts, và clone bộ dữ liệu để training model của riêng bạn trên cloud.

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

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

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

# COCO8-pose dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/pose/coco8-pose
# Example usage: yolo train data=coco8-pose.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8-pose ← downloads here (1 MB)

# 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: coco8-pose # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 images
test: # test images (optional)

# 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: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco8-pose.zip

Cách sử dụng#

Để training model YOLO26n-pose trên bộ dữ liệu COCO8-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="coco8-pose.yaml", epochs=100, imgsz=640)

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

Dưới đây là một số ví dụ về hình ảnh từ bộ dữ liệu COCO8-Pose cùng với các annotation tương ứng:

COCO8-pose keypoint estimation dataset mosaic
  • 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.

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

Nếu bạn sử dụng dataset COCO trong công trình nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn paper 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ì resource có giá trị này cho cộng đồng thị giác máy tính. Để biết thêm thông tin về dataset COCO và những người tạo ra dataset, hãy truy cập website dataset COCO.

FAQ#

  • Bộ dữ liệu COCO8-Pose là một bộ dữ liệu ước lượng tư thế nhỏ và linh hoạt, bao gồm 8 hình ảnh đầu tiên từ tập COCO train 2017, trong đó có 4 ảnh dùng cho training và 4 ảnh dùng cho validation. Bộ dữ liệu này được thiết kế để kiểm thử, debug các model ước lượng tư thế và thử nghiệm các phương pháp phát hiện keypoint mới. Đây là bộ dữ liệu lý tưởng cho các thử nghiệm nhanh với Ultralytics YOLO26. Để biết thêm chi tiết về cấu hình bộ dữ liệu, hãy xem file YAML của bộ dữ liệu.

  • Nạp yolo26n-pose.pt và gọi model.train(data="coco8-pose.yaml", epochs=100, imgsz=640) — xem Ví dụ huấn luyện ở trên để biết đầy đủ các đoạn code Python và CLI, cũng như trang Huấn luyện model để xem danh sách đầy đủ các tham số.

  • Với tổng cộng 8 hình ảnh (4 train / 4 val), 1 class, schema gồm 17 keypoint và dung lượng tải xuống ~1 MB, COCO8-Pose đủ nhỏ để quản lý trong vài giây nhưng vẫn đủ đa dạng để sanity check pipeline training tư thế nhằm phát hiện lỗi trước khi mở rộng lên toàn bộ bộ dữ liệu COCO-Pose. Để biết thêm về các tính năng và cách sử dụng, hãy xem phần Giới thiệu về bộ dữ liệu.

  • Ghép mosaic kết hợp nhiều hình ảnh thành một hình ảnh, làm tăng sự đa dạng của các đối tượng và cảnh trong mỗi training batch, qua đó giúp model tổng quát hóa trên nhiều kích thước đối tượng, tỷ lệ khung hình và ngữ cảnh. Xem phần Hình ảnh mẫu và Annotation để biết ví dụ.

  • Bạn có thể tìm file YAML của bộ dữ liệu COCO8-Pose tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco8-pose.yaml. File này định nghĩa cấu hình bộ dữ liệu, bao gồm các đường dẫn, class và những thông tin liên quan khác. Hãy sử dụng file này với các script training YOLO26 như được đề cập trong phần Train Example.

    Để 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