COCO 데이터 세트
COCO 데이터 세트는 COCO (Common Objects in Context) 데이터 세트의 확장으로, 개체 인스턴스 세분화 연구를 돕기 위해 특별히 고안되었습니다. COCO 동일한 이미지를 사용하지만 더 자세한 세분화 주석을 도입했습니다. 이 데이터 세트는 인스턴스 세분화 작업을 하는 연구자와 개발자에게 특히 교육용으로 중요한 리소스입니다. Ultralytics YOLO 모델을 훈련하는 데 매우 유용합니다.
COCO 사전 학습 모델
| 모델 | 크기 (픽셀) | mAP박스 50-95 | mAP마스크 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO11n-seg | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
| YOLO11s-seg | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
| YOLO11m-seg | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
| YOLO11l-seg | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
| YOLO11x-seg | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
주요 기능
- COCO COCO 원본 330K 이미지를 유지합니다.
- 이 데이터 세트는 원래 COCO 데이터 세트에 있는 것과 동일한 80개의 개체 카테고리로 구성되어 있습니다.
- 이제 어노테이션에는 이미지에 있는 각 객체에 대한 더 자세한 인스턴스 분할 마스크가 포함됩니다.
- COCO 객체 감지를 위한 평균 평균 정밀도mAP, 인스턴스 세분화 작업을 위한 평균 평균 정확도 (mAR) 등 표준화된 평가 지표를 제공하여 모델 성능을 효과적으로 비교할 수 있습니다.
데이터 세트 구조
COCO 데이터 세트는 세 개의 하위 집합으로 분할됩니다:
- Train2017: 인스턴스 세분화 모델 학습용 이미지 118만 개.
- Val2017: 모델 개발 중 검증에 사용되는 5K 이미지입니다.
- Test2017: 벤치마킹에 사용된 20K 이미지. 이 하위 집합에 대한 실측 데이터 주석은 공개적으로 제공되지 않으므로 점수를 매기기 위해 예측을 COCO 평가 서버에 제출해야 합니다.
응용 분야
COCO YOLO 모델과 같은 인스턴스 세분화에서 딥러닝 모델을 훈련하고 평가하는 데 널리 사용됩니다. 수많은 주석이 달린 이미지, 다양한 객체 범주, 표준화된 평가 메트릭은 컴퓨터 비전 연구자와 실무자에게 없어서는 안 될 리소스입니다.
데이터세트 YAML
데이터 세트 구성을 정의하는 데는 YAML(또 다른 마크업 언어) 파일이 사용됩니다. 여기에는 데이터 세트의 경로, 클래스 및 기타 관련 정보에 대한 정보가 포함되어 있습니다. COCO 데이터 세트의 경우, 데이터 세트의 coco.yaml 파일은 다음 위치에서 관리됩니다. https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco.yaml.
ultralyticsyaml
# 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)
사용법
이미지 크기가 640인 100개의 에포크에 대해 COCO 데이터 세트에서 YOLO11n-seg 모델을 훈련하려면 다음 코드 조각을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하세요.
훈련 예제
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.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 segment train data=coco.yaml model=yolo11n-seg.pt epochs=100 imgsz=640
샘플 이미지 및 주석
COCO 이전 버전인 COCO 마찬가지로 다양한 객체 범주와 복잡한 장면이 포함된 다양한 이미지 세트를 포함합니다. 그러나 COCO 이미지의 각 객체에 대해 보다 상세한 인스턴스 분할 마스크를 도입했습니다. 다음은 데이터 세트의 이미지와 해당 인스턴스 분할 마스크의 몇 가지 예시입니다:

- 모자이크 이미지: 이 이미지는 모자이크 데이터 세트 이미지로 구성된 훈련 배치를 보여줍니다. 모자이킹은 각 훈련 배치 내에서 객체와 장면의 다양성을 높이기 위해 여러 이미지를 단일 이미지로 결합하는 훈련 중에 사용되는 기술입니다. 이는 모델이 다양한 객체 크기, 종횡비 및 컨텍스트로 일반화하는 데 도움이 됩니다.
이 예는 COCO 데이터 세트에 포함된 이미지의 다양성과 복잡성, 그리고 학습 과정에서 모자이크 사용의 이점을 보여줍니다.
인용 및 감사의 말씀
연구 또는 개발 작업에 COCO 데이터세트를 사용하는 경우, 원본 COCO 논문을 인용하고 COCO 대한 확장성을 인정해 주세요:
@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 데이터 세트는 무엇이며 기존 COCO 데이터 세트와 어떻게 다른가요?
COCO 데이터 세트는 인스턴스 세분화 작업을 위해 특별히 설계된 기존 COCO (Common Objects in Context) 데이터 세트의 확장판입니다. COCO 데이터 세트와 동일한 이미지를 사용하지만 COCO 더 자세한 세분화 주석이 포함되어 있어 객체 인스턴스 세분화에 중점을 둔 연구자와 개발자를 위한 강력한 리소스입니다.
COCO 데이터 세트를 사용하여 YOLO11 모델을 훈련하려면 어떻게 해야 하나요?
이미지 크기가 640인 100개의 에포크에 대해 COCO 데이터 세트에서 YOLO11n-seg 모델을 훈련하려면 다음 코드 조각을 사용할 수 있습니다. 사용 가능한 인수의 자세한 목록은 모델 훈련 페이지를 참조하세요.
훈련 예제
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n-seg.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 segment train data=coco.yaml model=yolo11n-seg.pt epochs=100 imgsz=640
COCO 데이터 세트의 주요 특징은 무엇인가요?
COCO 데이터 세트에는 몇 가지 주요 기능이 포함되어 있습니다:
- COCO 데이터 세트의 원본 330K 이미지를 유지합니다.
- 원래 COCO 있는 것과 동일한 80개의 개체 카테고리에 주석을 달 수 있습니다.
- 각 객체에 대해 더 자세한 인스턴스 분할 마스크를 제공합니다.
- 객체 감지에는 평균 평균 정밀도mAP, 인스턴스 세분화 작업에는 평균 평균 회수율(mAR)과 같은 표준화된 평가 지표를 사용합니다.
COCO 사용할 수 있는 사전 학습된 모델은 무엇이며, 성능 지표는 무엇인가요?
COCO 데이터 세트는 다양한 성능 메트릭을 통해 사전 학습된 여러 YOLO11 세분화 모델을 지원합니다. 다음은 사용 가능한 모델과 주요 메트릭에 대한 요약입니다:
| 모델 | 크기 (픽셀) | mAP박스 50-95 | mAP마스크 50-95 | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO11n-seg | 640 | 38.9 | 32.0 | 65.9 ± 1.1 | 1.8 ± 0.0 | 2.9 | 9.7 |
| YOLO11s-seg | 640 | 46.6 | 37.8 | 117.6 ± 4.9 | 2.9 ± 0.0 | 10.1 | 33.0 |
| YOLO11m-seg | 640 | 51.5 | 41.5 | 281.6 ± 1.2 | 6.3 ± 0.1 | 22.4 | 113.2 |
| YOLO11l-seg | 640 | 53.4 | 42.9 | 344.2 ± 3.2 | 7.8 ± 0.2 | 27.6 | 132.2 |
| YOLO11x-seg | 640 | 54.7 | 43.8 | 664.5 ± 3.2 | 15.8 ± 0.7 | 62.1 | 296.4 |
이러한 모델은 경량 YOLO11n-seg부터 더 강력한 YOLO11x-seg까지 다양하며 다양한 애플리케이션 요구 사항에 맞게 속도와 정확도 간의 다양한 균형을 제공합니다. 모델 선택에 대한 자세한 내용은 Ultralytics 모델 페이지를 참조하십시오.
COCO 데이터 세트는 어떻게 구성되며 어떤 하위 집합을 포함하나요?
COCO 데이터 세트는 특정 교육 및 평가 요구에 따라 세 개의 하위 집합으로 나뉩니다:
- Train2017: 주로 인스턴스 분할 모델을 학습하는 데 사용되는 118K개의 이미지를 포함합니다.
- Val2017: 훈련 과정 중 검증에 활용되는 5K개의 이미지로 구성됩니다.
- Test2017: 학습된 모델을 테스트하고 벤치마킹하기 위해 예약된 20K 이미지를 포함합니다. 이 하위 집합에 대한 실측 데이터 주석은 공개되지 않으며, 성능 결과는 평가를 위해 COCO 평가 서버에 제출됩니다.
소규모 실험이 필요한 경우, COCO 기차 2017 세트의 이미지 8개만 포함된 컴팩트 버전인 COCO8 데이터 세트를 사용하는 것도 고려해 볼 수 있습니다.