Tập dữ liệu COCO
Tập dữ liệu COCO (Common Objects in Context) là một tập dữ liệu quy mô lớn dùng cho nhận diện vật thể, phân đoạn và chú thích. Nó được thiết kế để khuyến khích nghiên cứu trên nhiều danh mục vật thể khác nhau và thường được sử dụng làm chuẩn đo lường cho các mô hình computer vision. Đây là tập dữ liệu thiết yếu cho các nhà nghiên cứu và nhà phát triển làm việc trên các tác vụ nhận diện vật thể, phân đoạn và ước tính tư thế.
Watch: Ultralytics COCO Dataset Overview
Các mô hình COCO đã huấn luyện sẵn
| Model | kích thước (pixels) | mAPval 50-95 | mAPval 50-95(e2e) | Tốc độ CPU ONNX (ms) | Tốc độ T4 TensorRT10 (ms) | tham số (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.4 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.7 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.2 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.4 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 193.9 |
Các tính năng chính
- COCO chứa 330K hình ảnh, trong đó 200K hình ảnh có chú thích cho các tác vụ nhận diện vật thể, phân đoạn và chú thích.
- Tập dữ liệu bao gồm 80 danh mục vật thể, bao gồm các vật thể phổ biến như ô tô, xe đạp và động vật, cũng như các danh mục cụ thể hơn như ô, túi xách và thiết bị thể thao.
- Các chú thích bao gồm khung bao (bounding box) vật thể, mặt nạ phân đoạn và chú thích cho từng hình ảnh.
- COCO cung cấp các chỉ số đánh giá tiêu chuẩn như mean Average Precision (mAP) cho nhận diện vật thể và mean Average Recall (mAR) cho các tác vụ phân đoạn, giúp nó phù hợp để so sánh hiệu suất mô hình.
Cấu trúc tập dữ liệu
Tập dữ liệu COCO được chia thành ba tập con:
- Train2017: Tập con này chứa 118K hình ảnh để huấn luyện các mô hình nhận diện vật thể, phân đoạn và chú thích.
- Val2017: Tập con này có 5K hình ảnh được sử dụng cho mục đích kiểm chứng trong quá trình huấn luyện mô hình.
- Test2017: Tập con này bao gồm 20K hình ảnh được sử dụng để kiểm thử và đánh giá các mô hình đã huấn luyện. Chú thích ground truth cho tập con này không được công khai và các kết quả được gửi đến máy chủ đánh giá COCO để đánh giá hiệu suất.
Ứng dụng
Tập dữ liệu COCO được sử dụng rộng rãi để huấn luyện và đánh giá các mô hình deep learning trong nhận diện vật thể (như Ultralytics YOLO, Faster R-CNN và SSD), instance segmentation (như Mask R-CNN) và nhận diện điểm khóa (như OpenPose). Tập hợp đa dạng các danh mục vật thể, số lượng lớn hình ảnh được chú thích và các chỉ số đánh giá tiêu chuẩn của tập dữ liệu này khiến nó trở thành nguồn tài nguyên thiết yếu cho các nhà nghiên cứu và thực hành lĩnh vực computer vision.
Dataset YAML
Một tệp YAML (Yet Another Markup Language) được sử dụng để định nghĩa cấu hình tập dữ liệu. Nó chứa thông tin về các đường dẫn, lớp và các thông tin liên quan khác của tập dữ liệu. Trong trường hợp của tập dữ liệu COCO, tệp coco.yaml được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license
# COCO 2017 dataset https://cocodataset.org by Microsoft
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco.yaml
# parent
# ├── ultralytics
# └── datasets
# └── coco ← downloads here (20.1 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 # dataset root dir
train: train2017.txt # train images (relative to 'path') 118287 images
val: val2017.txt # val images (relative to 'path') 5000 images
test: test-dev2017.txt # 20288 of 40670 images, submit to https://competitions.codalab.org/competitions/20794
# 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: |
from pathlib import Path
from ultralytics.utils import ASSETS_URL
from ultralytics.utils.downloads import download
# Download labels
segments = True # segment or box labels
dir = Path(yaml["path"]) # dataset root dir
urls = [ASSETS_URL + ("/coco2017labels-segments.zip" if segments else "/coco2017labels.zip")] # labels
download(urls, dir=dir.parent)
# Download data
urls = [
"http://images.cocodataset.org/zips/train2017.zip", # 19G, 118k images
"http://images.cocodataset.org/zips/val2017.zip", # 1G, 5k images
"http://images.cocodataset.org/zips/test2017.zip", # 7G, 41k images (optional)
]
download(urls, dir=dir / "images", threads=3)Cách sử dụng
Để huấn luyện mô hình YOLO26n trên tập dữ liệu COCO trong 100 epoch với kích thước hình ảnh là 640, bạn có thể sử dụng các đoạn mã sau. Để có danh sách đầy đủ các đối số khả dụng, hãy tham khảo trang Huấn luyện mô hình.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco.yaml", epochs=100, imgsz=640)Hình ảnh và chú thích mẫu
Tập dữ liệu COCO chứa một bộ hình ảnh đa dạng với nhiều danh mục vật thể và các cảnh phức tạp. Dưới đây là một số ví dụ về hình ảnh từ tập dữ liệu cùng với các chú thích tương ứng:

- Mosaiced Image: Hình ảnh này minh họa một batch huấn luyện bao gồm các hình ảnh tập dữ liệu được ghép lại (mosaic). Mosaicing là một kỹ thuật được sử dụng trong quá trình huấn luyện nhằm 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 các vật thể và cảnh quan trong mỗi batch huấn luyện. Điều này giúp cải thiện khả năng tổng quát hóa của mô hình đối với các kích thước, tỷ lệ khung hình và bối cảnh vật thể khác nhau.
Ví dụ này cho thấy sự đa dạng và phức tạp của các hình ảnh trong tập dữ liệu COCO và lợi ích của việc sử dụng kỹ thuật mosaic trong quá trình huấn luyện.
Trích dẫn và Ghi nhận
Nếu bạn sử dụng tập dữ liệu COCO trong công việc nghiên cứu hoặc phát triển của mình, vui lòng trích dẫn bài báo sau:
@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 gửi lời cảm ơn đến COCO Consortium vì đã tạo ra và duy trì tài nguyên quý giá này cho cộng đồng computer vision. Để biết thêm thông tin về tập dữ liệu COCO và những người tạo ra nó, hãy truy cập trang web tập dữ liệu COCO.
Câu hỏi thường gặp (FAQ)
Tập dữ liệu COCO là gì và tại sao nó lại quan trọng đối với computer vision?
Tập dữ liệu COCO (Common Objects in Context) là tập dữ liệu quy mô lớn được sử dụng cho object detection, phân đoạn và chú thích. Nó chứa 330K hình ảnh với các chú thích chi tiết cho 80 danh mục vật thể, khiến nó trở nên thiết yếu cho việc đánh giá chuẩn và huấn luyện các mô hình computer vision. Các nhà nghiên cứu sử dụng COCO nhờ các danh mục đa dạng và các chỉ số đánh giá tiêu chuẩn như mean Average Precision (mAP).
Làm thế nào để tôi có thể huấn luyện mô hình YOLO bằng tập dữ liệu COCO?
Để huấn luyện mô hình YOLO26 sử dụng tập dữ liệu COCO, bạn có thể sử dụng các đoạn mã sau:
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco.yaml", epochs=100, imgsz=640)Tham khảo trang Huấn luyện để biết thêm chi tiết về các đối số khả dụng.
Các tính năng chính của tập dữ liệu COCO là gì?
Tập dữ liệu COCO bao gồm:
- 330K hình ảnh, với 200K hình ảnh được chú thích cho nhận diện vật thể, phân đoạn và chú thích.
- 80 danh mục vật thể, từ các mục phổ biến như ô tô và động vật đến các danh mục cụ thể như túi xách và thiết bị thể thao.
- Các chỉ số đánh giá tiêu chuẩn cho nhận diện vật thể (mAP) và phân đoạn (mean Average Recall, mAR).
- Kỹ thuật Mosaicing trong các batch huấn luyện để tăng cường khả năng tổng quát hóa mô hình trên nhiều kích thước và bối cảnh vật thể khác nhau.
Tôi có thể tìm các mô hình YOLO26 đã huấn luyện sẵn trên tập dữ liệu COCO ở đâu?
Các mô hình YOLO26 đã huấn luyện sẵn trên tập dữ liệu COCO có thể được tải xuống từ các liên kết được cung cấp trong tài liệu. Các ví dụ bao gồm:
Các mô hình này khác nhau về kích thước, mAP và tốc độ suy luận, cung cấp nhiều lựa chọn cho các yêu cầu khác nhau về hiệu suất và tài nguyên.
Tập dữ liệu COCO được cấu trúc như thế nào và làm thế nào để sử dụng nó?
Tập dữ liệu COCO được chia thành ba tập con:
- Train2017: 118K hình ảnh dùng để huấn luyện.
- Val2017: 5K hình ảnh dùng để kiểm chứng trong quá trình huấn luyện.
- Test2017: 20K hình ảnh dùng để đánh giá các mô hình đã huấn luyện. Kết quả cần được gửi đến máy chủ đánh giá COCO để đánh giá hiệu suất.
Tệp cấu hình YAML của tập dữ liệu có sẵn tại coco.yaml, trong đó định nghĩa các đường dẫn, lớp và chi tiết tập dữ liệu.