Chuyển đến nội dung

Tập dữ liệu COCO.

Tập dữ liệu COCO (Common Objects in Context) là một tập dữ liệu lớn về detect đối tượng, segment và tạo chú thích. Nó được thiết kế để khuyến khích nghiên cứu trên nhiều loại đối tượng khác nhau và thường được sử dụng để đánh giá hiệu năng các mô hình thị giác máy tính. Đây là một 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 trong các tác vụ detect đối tượng, segment và ước tính tư thế.



Xem: Tổng quan về Tập dữ liệu Ultralytics COCO

Các mô hình tiền huấn luyện COCO.

Mô hìnhKí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)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.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ụ detect đối tượng, segment và tạo chú thích.
  • Bộ dữ liệu bao gồm 80 loại đối tượng, bao gồm các đối tượng 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 hộp giới hạn đối tượng, mặt nạ phân đoạn và chú thích cho mỗi hình ảnh.
  • COCO cung cấp các metric đánh giá tiêu chuẩn như mean Average Precision (mAP) cho detect đối tượng và mean Average Recall (mAR) cho các tác vụ segment, làm cho nó phù hợp để so sánh hiệu suất mô hình.

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

Tập dữ liệu COCO được chia thành ba tập con:

  1. Train2017: Tập hợp con này chứa 118 nghìn hình ảnh để huấn luyện các mô hình phát hiện đối tượng, phân đoạn và chú thích.
  2. Val2017: Tập hợp con này có 5 nghìn hình ảnh được sử dụng cho mục đích xác thực trong quá trình huấn luyện mô hình.
  3. Test2017: Tập con này bao gồm 20 nghìn hình ảnh được sử dụng để kiểm thử và đánh giá hiệu năng các mô hình đã được huấn luyện. Các chú thích ground truth cho tập con này không được công bố rộng rãi, và kết quả được gửi đến máy chủ đánh giá COCO để đánh giá hiệu suất.

Các ứng dụng

Bộ dữ liệu COCO được sử dụng rộng rãi để huấn luyện và đánh giá các mô hình học sâu trong phát hiện đối tượng (như Ultralytics YOLO, Faster R-CNN, và SSD), phân đoạn thực thể (như Mask R-CNN), và phát hiện điểm chính (như OpenPose). Tập hợp đa dạng các danh mục đối tượng, số lượng lớn hình ảnh được chú thích và các chỉ số đánh giá được tiêu chuẩn hóa của bộ dữ liệu này làm cho nó trở thành một tài nguyên thiết yếu cho các nhà nghiên cứu và chuyên gia thị giác máy tính.

YAML bộ dữ liệu

Một tệp YAML (Yet Another Markup Language) được sử dụng để định nghĩa cấu hình bộ dữ liệu. Nó chứa thông tin về các đường dẫn, lớp và thông tin liên quan khác của bộ dữ liệu. Trong trường hợp bộ dữ liệu COCO, coco.yaml tệp được duy trì tại https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.

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ột mô hình YOLO26n trên tập dữ liệu COCO trong 100 epoch với kích thước ả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ố có sẵn, tham khảo trang Huấn luyện mô hình.

Ví dụ huấn luyện

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)
# Start training from a pretrained *.pt model
yolo detect train data=coco.yaml model=yolo26n.pt epochs=100 imgsz=640

Ảnh và Chú thích mẫu

Bộ dữ liệu COCO chứa một tập hợp hình ảnh đa dạng với nhiều danh mục đối tượng và các cảnh phức tạp. Dưới đây là một số ví dụ về hình ảnh từ bộ dữ liệu, cùng với các chú thích tương ứng của chúng:

COCO Tập dữ liệu huấn luyện dạng mosaic với phát hiện đối tượng

  • Hình ảnh Mosaiced: Hình ảnh này minh họa một lô huấn luyện bao gồm các hình ảnh bộ dữ liệu được mosaiced. Mosaicing là một 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 các đối tượng và cảnh trong mỗi lô 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à ngữ cảnh khác nhau của đối tượng.

Ví dụ này minh họa sự đa dạng và phức tạp của các hình ảnh trong bộ dữ liệu COCO cũng như lợi ích của việc sử dụng kỹ thuật mosaicing trong quá trình huấn luyện.

Trích dẫn và Lời cảm ơ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 ghi nhận Hiệp hội COCO vì đã tạo ra và duy trì tài nguyên quý giá 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 nó, hãy truy cập trang web bộ dữ liệu COCO.

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

Tập dữ liệu COCO là gì và tại sao nó quan trọng đối với thị giác máy tính?

Bộ dữ liệu COCO (Common Objects in Context) là một bộ dữ liệu quy mô lớn được sử dụng cho phát hiện đối tượng, phân đoạn và chú thích hình ảnh. Nó chứa 330 nghìn hình ảnh với chú thích chi tiết cho 80 danh mục đối tượng, làm cho nó trở nên thiết yếu cho việc đánh giá hiệu năng và huấn luyện các mô hình thị giác máy tính. Các nhà nghiên cứu sử dụng COCO nhờ vào các danh mục đa dạng và các chỉ số đánh giá được tiêu chuẩn hóa như độ chính xác trung bình (mAP).

Làm cách nào để huấn luyện một mô hình YOLO bằng cách sử dụng tập dữ liệu COCO?

Để huấn luyện một 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:

Ví dụ huấn luyện

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)
# Start training from a pretrained *.pt model
yolo detect train data=coco.yaml model=yolo26n.pt epochs=100 imgsz=640

Tham khảo trang Đào tạo để biết thêm chi tiết về các đối số có sẵn.

Các tính năng chính của tập dữ liệu COCO là gì?

Bộ dữ liệu COCO bao gồm:

  • 330 nghìn hình ảnh, với 200 nghìn hình ảnh được chú thích để phát hiện đối tượng, phân đoạn và tạo chú thích.
  • 80 loại đối tượng, từ các vật phẩm thông thường như ô tô và động vật đến các vật phẩm cụ thể như túi xách và dụng cụ thể thao.
  • Các chỉ số đánh giá được tiêu chuẩn hóa cho phát hiện đối tượng (mAP) và phân đoạn (độ thu hồi trung bình, mAR).
  • Kỹ thuật Mosaicing trong các lô huấn luyện để tăng cường khả năng khái quát hóa mô hình trên các kích thước và ngữ cảnh đối tượng khác nhau.

Tôi có thể tìm thấy các mô hình YOLO26 đã được huấn luyện trước trên tập dữ liệu COCO ở đâu?

Các mô hình YOLO26 đã được huấn luyện trước 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 các lựa chọn cho các yêu cầu về hiệu suất và tài nguyên khác nhau.

Tập dữ liệu COCO được cấu trúc như thế nào và tôi sử dụng nó ra sao?

Tập dữ liệu COCO được chia thành ba tập con:

  1. Train2017: 118 nghìn ảnh để huấn luyện.
  2. Val2017: 5 nghìn ảnh để xác thực trong quá trình huấn luyện.
  3. Test2017: 20 nghìn hình ảnh để đánh giá hiệu năng các mô hình đã được 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 bộ dữ liệu có sẵn tại coco.yaml, định nghĩa các đường dẫn, lớp và chi tiết bộ dữ liệu.



📅 Được tạo 2 năm trước ✏️ Cập nhật 2 ngày trước
glenn-jocherRizwanMunawarjk4eambitious-octopusUltralyticsAssistantMatthewNoyceRizwanMunawar

Bình luận