COCO-Seg 데이터셋#
COCO-Seg 데이터셋은 COCO(Common Objects in Context) 인스턴스 세분화 마스크(훈련 이미지 118,287장, 검증 이미지 5,000장, 80개 객체 카테고리에 걸친 다각형 마스크)를 Ultralytics YOLO 라벨 형식으로 제공합니다. 이 데이터셋은 COCO의 원본 이미지와 기본 세분화 어노테이션을 YOLO 훈련용으로 변환하여 사용하므로, 인스턴스 세분화 작업을 수행하는 연구자와 개발자에게 핵심적인 리소스입니다.
COCO-Seg 사전 학습 모델#
| 모델 | 크기 (픽셀) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
주요 특징#
- COCO-Seg는 COCO의 전체 약 33만 장 이미지 릴리스 중에서 라벨이 지정된 123,287장의 COCO train2017/val2017 이미지(학습용 118,287장 + 검증용 5,000장)에 대한 인스턴스 세그멘테이션 마스크를 제공합니다.
- 데이터셋은 원래 COCO 데이터셋과 동일한 80개의 객체 카테고리로 구성됩니다.
- 어노테이션은 YOLO 폴리곤 라벨 형식의 인스턴스 세그멘테이션 마스크를 제공합니다.
- COCO-Seg는 인스턴스 세그멘테이션 성능을 평가하기 위한 표준화된 mAP 및 mAR 지표를 제공하여 모델 성능을 효과적으로 비교할 수 있게 합니다.
- 다운로드 크기: 첫 사용 시 약 20.3 GB (
train2017.zip+val2017.zip+ 라벨). 7 GB 크기의test2017.zip는 해당 이미지의 정답(ground truth)이 포함되어 있지 않고 test-dev2017 제출에만 필요하므로 자동으로 다운로드되지 않습니다.
데이터셋 구조#
COCO-Seg 데이터셋은 세 가지 하위 집합으로 구분됩니다:
- Train2017: 인스턴스 세그멘테이션 모델 학습을 위한 118,287장의 이미지.
- Val2017: 모델 개발 과정에서 검증용으로 사용되는 5,000장의 이미지.
- Test-dev2017: 벤치마킹에 사용되는 40,670장의 test2017 이미지 중 20,288장입니다. 이 서브셋의 정답 어노테이션은 공개되어 있지 않으므로, 점수를 측정하려면 COCO 평가 서버로 예측 결과를 제출해야 합니다.
더 작은 규모의 실험이 필요하다면 COCO128-Seg(128장 이미지) 및 COCO8-Seg(8장 이미지) 서브셋을 참조하세요.
응용 분야#
COCO-Seg는 YOLO 모델과 같은 instance segmentation 작업에서 deep learning 모델을 학습하고 평가하는 데 널리 사용됩니다. 방대한 주석 이미지, 객체 카테고리의 다양성, 표준화된 평가 지표 덕분에 computer vision 연구자와 실무자에게 없어서는 안 될 리소스입니다. 전체 COCO-Seg 주석은 Ultralytics Platform에서 탐색하고 관리할 수도 있습니다.
데이터셋 YAML#
데이터셋 구성은 YAML 파일을 사용하여 정의합니다. 여기에는 데이터셋의 경로, 클래스 및 기타 관련 정보가 포함됩니다. COCO-Seg 데이터셋의 경우 coco.yaml 파일이 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.3 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 via https://cocodataset.org/#detection-eval
# 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 (test2017.zip excluded: ground truth is withheld, only used for the eval-server test-dev split)
urls = [
"http://images.cocodataset.org/zips/train2017.zip", # 19G, 118k images
"http://images.cocodataset.org/zips/val2017.zip", # 1G, 5k images
]
download(urls, dir=dir / "images", threads=3)사용법#
이미지 크기 640으로 COCO-Seg 데이터셋에서 100 에포크 동안 YOLO26n-seg 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 훈련 페이지를 참조하세요.
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)샘플 이미지 및 주석#
COCO-Seg는 COCO와 동일한 다양한 이미지, 객체 카테고리 및 복잡한 장면을 포함하며, 인스턴스 세그멘테이션 마스크는 YOLO 라벨 형식으로 제공됩니다. 데이터셋에 포함된 이미지와 그에 대응하는 인스턴스 세그멘테이션 마스크의 예시는 다음과 같습니다:

- 모자이크된 이미지: 이 이미지는 모자이크된 데이터셋 이미지로 구성된 훈련 배치를 보여줍니다. 모자이킹은 훈련 중에 여러 이미지를 하나의 이미지로 결합하여 각 훈련 배치 내의 객체와 장면의 다양성을 높이는 데 사용되는 기법입니다. 이는 모델이 다양한 객체 크기, 종횡비, 컨텍스트에 일반화하는 능력을 향상시키는 데 도움이 됩니다.
인용 및 감사의 글#
연구나 개발 작업에 COCO-Seg 데이터셋을 사용하는 경우, 원래 COCO 논문을 인용하고 COCO-Seg에 대한 확장을 명시해 주시기 바랍니다:
@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}
}컴퓨터 비전 커뮤니티를 위해 이 소중한 리소스를 만들고 유지 관리해 준 COCO 컨소시엄에 감사를 표합니다. COCO 데이터셋 및 제작자에 대한 자세한 내용은 COCO 데이터셋 웹사이트를 방문하세요.
FAQ#
COCO-Seg 데이터셋이란 무엇이며 원래 COCO 데이터셋과 어떻게 다른가요?#
COCO-Seg는 동일한 118,287장의 train2017 이미지와 5,000장의 val2017 이미지에 대해 COCO(Common Objects in Context)의 기본 인스턴스 세분화 마스크를 Ultralytics YOLO 형식으로 패키징한 것입니다. 원본 COCO 어노테이션에는 이미 80개 객체 카테고리 전체에 대한 이러한 다각형 마스크가 포함되어 있으며, COCO-Seg는 이를 객체 인스턴스 세분화 훈련에 사용되는 YOLO 라벨 형식으로 변환합니다.
COCO-Seg 데이터셋을 사용하여 YOLO26 모델을 어떻게 학습시킬 수 있나요?#
이미지 크기 640으로 100에포크 동안 COCO-Seg 데이터셋에서 YOLO26n-seg 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 훈련 인수에 대한 자세한 내용은 모델 훈련 페이지를 참조하세요.
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)COCO-Seg 데이터셋의 주요 특징은 무엇인가요?#
COCO-Seg 데이터셋에는 다음과 같은 주요 특징이 있습니다:
- 123,287장의 라벨이 지정된 COCO train2017/val2017 이미지(학습용 118,287장 + 검증용 5,000장)에 대한 인스턴스 세그멘테이션 마스크를 제공합니다.
- 원래 COCO에서 찾을 수 있는 동일한 80개 객체 카테고리에 주석을 제공합니다.
- YOLO 폴리곤 라벨 형식의 인스턴스 세그멘테이션 마스크를 제공합니다.
- instance segmentation 작업을 위해 mean Average Precision (mAP) 및 mean Average Recall (mAR)과 같은 표준화된 평가 지표를 사용합니다.
COCO-Seg에 사용 가능한 사전 학습 모델은 무엇이며, 성능 지표는 어떻게 되나요?#
COCO-Seg 데이터셋은 다양한 성능 지표를 가진 여러 사전 학습 YOLO26 세그멘테이션 모델을 지원합니다. 사용 가능한 모델과 주요 지표 요약은 다음과 같습니다:
| 모델 | 크기 (픽셀) | mAPbox 50-95(e2e) | mAPmask 50-95(e2e) | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n-seg | 640 | 39.6 | 33.9 | 53.3 ± 0.5 | 2.1 ± 0.0 | 2.7 | 9.1 |
| YOLO26s-seg | 640 | 47.3 | 40.0 | 118.4 ± 0.9 | 3.3 ± 0.0 | 10.4 | 34.2 |
| YOLO26m-seg | 640 | 52.5 | 44.1 | 328.2 ± 2.4 | 6.7 ± 0.1 | 23.6 | 121.5 |
| YOLO26l-seg | 640 | 54.4 | 45.5 | 387.0 ± 3.7 | 8.0 ± 0.1 | 28.0 | 139.8 |
| YOLO26x-seg | 640 | 56.5 | 47.0 | 787.0 ± 6.8 | 16.4 ± 0.1 | 62.8 | 313.5 |
이 모델들은 경량인 YOLO26n-seg부터 더 강력한 YOLO26x-seg까지 다양하며, 다양한 애플리케이션 요구 사항에 맞게 속도와 정확도 간의 다양한 절충안을 제공합니다. 모델 선택에 대한 자세한 내용은 Ultralytics 모델 페이지를 방문하세요.
COCO-Seg 데이터셋은 어떻게 구성되어 있으며 어떤 하위 집합을 포함하나요?#
COCO-Seg 데이터셋은 특정 학습 및 평가 요구를 위해 세 가지 하위 집합으로 구분됩니다:
- Train2017: 주로 인스턴스 세그멘테이션 모델 학습에 사용되는 118,287장의 이미지를 포함합니다.
- Val2017: 학습 과정에서 검증용으로 활용되는 5,000장의 이미지를 포함합니다.
- Test-dev2017: 훈련된 모델을 테스트하고 벤치마킹하기 위해 예약된 40,670장의 test2017 이미지 중 20,288장을 포함합니다. 이 서브셋의 정답 어노테이션은 공개되어 있지 않으며, 성능 결과는 평가를 위해 COCO 평가 서버로 제출됩니다.
더 작은 규모의 실험이 필요하다면 COCO128-Seg 데이터셋(128장 이미지) 또는 COCO train 2017 세트의 이미지 8장만 포함된 컴팩트 버전인 COCO8-Seg 데이터셋을 고려해 볼 수도 있습니다.