Tập dữ liệu COCO-Seg

Tập dữ liệu COCO-Seg, một bản mở rộng của tập dữ liệu COCO (Common Objects in Context), được thiết kế đặc biệt để hỗ trợ nghiên cứu về instance segmentation (phân đoạn thực thể). Nó sử dụng cùng tập ảnh như COCO nhưng bổ sung các annotation phân đoạn chi tiết hơn. Tập dữ liệu này là nguồn tài nguyên quan trọng cho các nhà nghiên cứu và lập trình viên làm việc trên các tác vụ instance segmentation, đặc biệt là để huấn luyện các model Ultralytics YOLO.

Các model Pretrained COCO-Seg

Modelkích thước
(pixels)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

Các tính năng chính

  • COCO-Seg giữ lại 330K ảnh gốc từ COCO.
  • Tập dữ liệu bao gồm 80 danh mục đối tượng tương tự như trong tập dữ liệu COCO gốc.
  • Các annotation hiện bao gồm các mask instance segmentation chi tiết hơn cho từng đối tượng trong ảnh.
  • COCO-Seg cung cấp các chỉ số đánh giá tiêu chuẩn như mean Average Precision (mAP) cho object detection, và mean Average Recall (mAR) cho các tác vụ instance segmentation, cho phép so sánh hiệu suất model một cách hiệu quả.

Cấu trúc tập dữ liệu

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

  1. Train2017: 118K ảnh để huấn luyện các model instance segmentation.
  2. Val2017: 5K ảnh được sử dụng để validation trong quá trình phát triển model.
  3. Test2017: 20K ảnh được sử dụng để benchmarking. Các annotation ground-truth cho tập con này không được công khai, vì vậy các dự đoán (predictions) phải được gửi đến COCO evaluation server để chấm điểm.

Ứng dụng

COCO-Seg được sử dụng rộng rãi để huấn luyện và đánh giá các model deep learning trong instance segmentation, chẳng hạn như các model YOLO. Số lượng lớn ảnh được annotate, tính đa dạng của các danh mục đối tượng và các chỉ số đánh giá tiêu chuẩn làm cho nó trở thành một nguồn tài nguyên không thể thiếu cho các nhà nghiên cứu và thực hành computer vision.

Dataset YAML

Một file 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ề đường dẫn, các class 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-Seg, file coco.yaml đượ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 model YOLO26n-seg trên tập dữ liệu COCO-Seg trong 100 epochs với kích thước ảnh 640, bạn có thể sử dụng các đoạn code sau. Để có danh sách đầy đủ các tham số khả dụng, 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-seg.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

COCO-Seg, giống như người tiền nhiệm COCO của nó, chứa một tập hợp đa dạng các hình ảnh với nhiều danh mục đối tượng và các khung cảnh phức tạp. Tuy nhiên, COCO-Seg giới thiệu các mask instance segmentation chi tiết hơn cho từng đối tượng trong hình ảnh. 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 mask instance segmentation tương ứng của chúng:

COCO segmentation dataset mosaic training batch

  • 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ừ tập dữ liệu được ghép lại. 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 nhằm tăng tính đa dạng của các đối tượng và bối cảnh trong mỗi batch huấn luyện. Điều này hỗ trợ khả năng của model trong việc tổng quát hóa (generalize) với các kích thước đối tượng, tỷ lệ khung hình và bối cảnh khác nhau.

Ví dụ này thể hiện sự đa dạng và phức tạp của các hình ảnh trong tập dữ liệu COCO-Seg và 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à Ghi nhận

Nếu bạn sử dụng tập dữ liệu COCO-Seg trong nghiên cứu hoặc công việc phát triển của mình, vui lòng trích dẫn bài báo COCO gốc và ghi nhận phần mở rộng cho COCO-Seg:

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 gửi lời cảm ơn đến COCO Consortium vì đã tạo ra và duy trì nguồn tài nguyên vô 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 của tập dữ liệu COCO.

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

Tập dữ liệu COCO-Seg là gì và nó khác biệt thế nào so với tập dữ liệu COCO gốc?

Tập dữ liệu COCO-Seg là một phần mở rộng của tập dữ liệu COCO (Common Objects in Context) gốc, được thiết kế đặc biệt cho các tác vụ instance segmentation. Mặc dù sử dụng cùng tập ảnh như tập dữ liệu COCO, COCO-Seg bao gồm các annotation phân đoạn chi tiết hơn, tạo nên một nguồn tài nguyên mạnh mẽ cho các nhà nghiên cứu và lập trình viên tập trung vào object instance segmentation.

Làm thế nào để huấn luyện một model YOLO26 sử dụng tập dữ liệu COCO-Seg?

Để huấn luyện một model YOLO26n-seg trên tập dữ liệu COCO-Seg trong 100 epochs với kích thước ảnh 640, bạn có thể sử dụng các đoạn code sau. Để có danh sách chi tiết về các tham số khả dụng, 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-seg.pt")  # load a pretrained model (recommended for training)

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

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

Tập dữ liệu COCO-Seg bao gồm một số tính năng chính:

  • Giữ lại 330K ảnh gốc từ tập dữ liệu COCO.
  • Annotate 80 danh mục đối tượng tương tự như trong COCO gốc.
  • Cung cấp các mask instance segmentation chi tiết hơn cho từng đối tượng.
  • Sử dụng các chỉ số đánh giá tiêu chuẩn như mean Average Precision (mAP) cho object detection và mean Average Recall (mAR) cho các tác vụ instance segmentation.

Những model pretrained nào khả dụng cho COCO-Seg và các chỉ số hiệu suất của chúng là gì?

Tập dữ liệu COCO-Seg hỗ trợ nhiều model segmentation YOLO26 pretrained với các chỉ số hiệu suất khác nhau. Dưới đây là tóm tắt các model khả dụng và các chỉ số chính của chúng:

Modelkích thước
(pixels)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
Tốc độ
CPU ONNX
(ms)
Tốc độ
T4 TensorRT10
(ms)
tham số
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

Các model này trải dài từ model nhẹ YOLO26n-seg đến model mạnh mẽ hơn YOLO26x-seg, mang lại sự đánh đổi khác nhau giữa tốc độ và độ chính xác để phù hợp với các yêu cầu ứng dụng đa dạng. Để biết thêm thông tin về việc chọn model, hãy truy cập trang model của Ultralytics.

Tập dữ liệu COCO-Seg được cấu trúc như thế nào và nó bao gồm những tập con nào?

Tập dữ liệu COCO-Seg được chia thành ba tập con cho các nhu cầu huấn luyện và đánh giá cụ thể:

  1. Train2017: Chứa 118K ảnh được sử dụng chủ yếu để huấn luyện các model instance segmentation.
  2. Val2017: Bao gồm 5K ảnh được sử dụng để validation trong quá trình huấn luyện.
  3. Test2017: Bao gồm 20K ảnh được dành riêng để testing và benchmarking các model đã huấn luyện. Lưu ý rằng các annotation ground truth cho tập con này không được công khai, và kết quả hiệu suất được gửi đến COCO evaluation server để đánh giá.

Đối với các nhu cầu thử nghiệm nhỏ hơn, bạn cũng có thể cân nhắc sử dụng tập dữ liệu COCO8-seg, đây là phiên bản rút gọn chỉ chứa 8 ảnh từ tập COCO train 2017.

Bình luận