Ultralytics YOLO27:
Get Started

Bộ dữ liệu COCO128#

Giới thiệu#

Ultralytics COCO128 là một bộ dữ liệu phát hiện đối tượng nhỏ nhưng linh hoạt, gồm 128 hình ảnh đầu tiên của tập COCO train 2017. Bộ dữ liệu này lý tưởng để kiểm thử và gỡ lỗi các model phát hiện đối tượng hoặc thử nghiệm các phương pháp phát hiện mới. Với 128 hình ảnh, bộ dữ liệu đủ nhỏ để dễ quản lý nhưng cũng đủ đa dạng để kiểm tra lỗi trong pipeline huấn luyện và làm bước kiểm tra tính hợp lý trước khi huấn luyện trên các bộ dữ liệu lớn hơn.



Xem: Tổng quan về dataset COCO của Ultralytics

Bộ dữ liệu này được thiết kế để sử dụng với Ultralytics Platform và YOLO26.

Cấu trúc dataset#

COCO128 chứa 128 hình ảnh đầu tiên trong tập COCO train 2017, được gắn nhãn bằng 80 tên lớp COCO (trong đó có 71 lớp xuất hiện trong các hình ảnh này) theo định dạng nhãn YOLO. Cùng 128 hình ảnh này được dùng cho cả tập huấn luyện và tập validation, giúp bộ dữ liệu gọn nhẹ để kiểm tra tính hợp lý nhanh chóng:

coco128/
├── images/
│   └── train2017/   # 128 images (used for both train and val)
└── labels/
    └── train2017/

YAML của dataset#

Tệp YAML được dùng để xác định cấu hình bộ dữ liệu. Tệp này chứa thông tin về đường dẫn, lớp và các thông tin liên quan khác của bộ dữ liệu. Đối với bộ dữ liệu COCO128, tệp coco128.yaml được lưu tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco128.yaml.

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

# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco128
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco128 ← downloads here (7 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: coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# Classes
names:
  0: person
  1: bicycle
  2: car
  3: motorcycle
  4: airplane
  5: bus
  6: train
  7: truck
  8: boat
  9: traffic light
  10: fire hydrant
  11: stop sign
  12: parking meter
  13: bench
  14: bird
  15: cat
  16: dog
  17: horse
  18: sheep
  19: cow
  20: elephant
  21: bear
  22: zebra
  23: giraffe
  24: backpack
  25: umbrella
  26: handbag
  27: tie
  28: suitcase
  29: frisbee
  30: skis
  31: snowboard
  32: sports ball
  33: kite
  34: baseball bat
  35: baseball glove
  36: skateboard
  37: surfboard
  38: tennis racket
  39: bottle
  40: wine glass
  41: cup
  42: fork
  43: knife
  44: spoon
  45: bowl
  46: banana
  47: apple
  48: sandwich
  49: orange
  50: broccoli
  51: carrot
  52: hot dog
  53: pizza
  54: donut
  55: cake
  56: chair
  57: couch
  58: potted plant
  59: bed
  60: dining table
  61: toilet
  62: tv
  63: laptop
  64: mouse
  65: remote
  66: keyboard
  67: cell phone
  68: microwave
  69: oven
  70: toaster
  71: sink
  72: refrigerator
  73: book
  74: clock
  75: vase
  76: scissors
  77: teddy bear
  78: hair drier
  79: toothbrush

# Download script/URL (optional)
download: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zip

Cách sử dụng#

Bộ dữ liệu COCO128 (7 MB) sẽ tự động tải xuống khi bạn bắt đầu huấn luyện lần đầu. Để huấn luyện model YOLO26n trên COCO128 trong 100 epoch với kích thước ảnh 640, bạn có thể dùng các đoạn mã sau. Để xem danh sách đầy đủ các tham số hiện có, hãy tham khảo trang Huấn luyện model.

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

# Tải model
model = YOLO("yolo26n.pt")  # tải model đã huấn luyện trước (được khuyến nghị khi huấn luyện)

# Huấn luyện model
results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

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

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

COCO128 object detection dataset mosaic training batch
  • Ảnh ghép Mosaic: Hình ảnh này minh họa một batch huấn luyện được tạo từ các ảnh mosaic của bộ dữ liệu. Mosaic là kỹ thuật được sử dụng trong quá trình huấn luyện, kết hợp nhiều hình ảnh thành một hình ảnh duy nhất để tăng sự đa dạng của đối tượng và bối cảnh trong mỗi batch huấn luyện. Kỹ thuật 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ụ minh họa sự đa dạng và phức tạp của hình ảnh trong bộ dữ liệu COCO128, cũng như lợi ích của việc ghép mosaic trong quá trình huấn luyện.

Trích dẫn và lời cảm ơn#

Nếu sử dụng bộ dữ liệu COCO trong 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 cảm ơn COCO Consortium đã tạo và duy trì tài nguyên giá trị này cho cộng đồng thị giác máy tính. Để biết thêm thông tin về bộ dữ liệu COCO và những người tạo ra bộ dữ liệu, hãy truy cập trang web bộ dữ liệu COCO.

Câu hỏi thường gặp#

  • Bộ dữ liệu Ultralytics COCO128 là một tập con gọn nhẹ, chứa 128 hình ảnh đầu tiên từ bộ dữ liệu COCO train 2017. Bộ dữ liệu này chủ yếu được dùng để kiểm thử và gỡ lỗi các model phát hiện đối tượng, thử nghiệm các phương pháp phát hiện mới và xác thực pipeline huấn luyện trước khi mở rộng sang các bộ dữ liệu lớn hơn. Kích thước dễ quản lý giúp thực hiện các vòng lặp nhanh chóng, đồng thời vẫn cung cấp đủ độ đa dạng để làm bộ dữ liệu kiểm thử hữu ích.

  • Để huấn luyện model YOLO26 trên bộ dữ liệu COCO128, bạn có thể dùng lệnh Python hoặc CLI. Cách thực hiện như sau:

    Ví dụ huấn luyện
    from ultralytics import YOLO
    
    # Tải model pretrained
    model = YOLO("yolo26n.pt")
    
    # Huấn luyện model
    results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

    Để biết thêm các tùy chọn và tham số huấn luyện, hãy tham khảo tài liệu Huấn luyện.

  • Tăng cường mosaic, như minh họa trong các hình ảnh mẫu, kết hợp nhiều ảnh huấn luyện thành một ảnh tổng hợp. Kỹ thuật này mang lại một số lợi ích khi huấn luyện với COCO128:

    • Tăng sự đa dạng của đối tượng và bối cảnh trong mỗi batch huấn luyện
    • Cải thiện khả năng tổng quát hóa của model trên các đối tượng có kích thước và tỷ lệ khung hình khác nhau
    • Nâng cao hiệu suất phát hiện đối tượng ở nhiều tỷ lệ khác nhau
    • Tối đa hóa giá trị của bộ dữ liệu nhỏ bằng cách tạo thêm các mẫu huấn luyện đa dạng

    Kỹ thuật này đặc biệt hữu ích với các bộ dữ liệu nhỏ như COCO128, giúp model học được các đặc trưng mạnh mẽ hơn từ dữ liệu hạn chế.

  • Xét về quy mô, COCO128 (128 hình ảnh) nằm giữa COCO8 (8 hình ảnh) và bộ dữ liệu COCO đầy đủ (hơn 118K hình ảnh):

    • COCO8: Chỉ gồm 8 hình ảnh (4 train, 4 val) — lý tưởng để kiểm thử và gỡ lỗi nhanh
    • COCO128: Gồm 128 hình ảnh — cân bằng giữa quy mô và độ đa dạng
    • COCO đầy đủ: Gồm hơn 118K ảnh huấn luyện — toàn diện nhưng đòi hỏi nhiều tài nguyên

    COCO128 là lựa chọn trung gian phù hợp, đa dạng hơn COCO8 nhưng dễ quản lý hơn nhiều so với bộ dữ liệu COCO đầy đủ để thử nghiệm và phát triển model ban đầu.

  • Mặc dù COCO128 chủ yếu được thiết kế cho tác vụ phát hiện đối tượng, annotation của bộ dữ liệu có thể được điều chỉnh cho các tác vụ thị giác máy tính khác:

    • Phân đoạn đối tượng: Sử dụng các mask phân đoạn có trong annotation
    • Phát hiện keypoint: Dành cho hình ảnh có người với annotation keypoint
    • Transfer learning: Làm điểm khởi đầu để fine-tune model cho các tác vụ tùy chỉnh

    Với các tác vụ chuyên biệt như phân đoạn, hãy cân nhắc sử dụng các biến thể được thiết kế riêng như COCO8-seg, có chứa các annotation phù hợp.

Bình luận