COCO 데이터셋#
COCO(맥락 속 일반 객체) 데이터셋은 대규모 객체 탐지, 분할 및 캡셔닝 데이터셋입니다. 다양한 객체 범주에 관한 연구를 장려하도록 설계되었으며, 컴퓨터 비전 모델 벤치마킹에 널리 사용됩니다. 객체 탐지, 분할, 포즈 추정 작업을 수행하는 연구자와 개발자에게 필수적인 데이터셋입니다.
시청: Ultralytics COCO 데이터셋 개요
COCO 사전 학습 모델#
| 모델 | 크기 (픽셀) | mAP검증 50-95 | mAP검증 50-95(e2e) | 속도 CPU ONNX (ms) | 속도 T4 TensorRT10 (ms) | 파라미터 (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
주요 기능#
- COCO에는 이미지 330K개가 포함되어 있으며, 이 중 200K개에는 객체 탐지, 분할, 캡셔닝 작업을 위한 어노테이션이 있습니다.
- 이 데이터셋은 자동차, 자전거, 동물과 같은 일반적인 객체부터 우산, 핸드백, 스포츠 장비와 같은 구체적인 범주까지 80개 객체 범주로 구성됩니다.
- 어노테이션에는 각 이미지의 객체 바운딩 박스, 분할 마스크, 캡션이 포함됩니다.
- COCO는 객체 탐지 및 분할을 위한 평균 정밀도(mAP)와 재현율 평균(AR) 등 표준화된 평가 지표를 제공하므로 모델 성능을 비교하는 데 적합합니다.
데이터셋 구조#
COCO 데이터셋은 세 개의 하위 집합으로 나뉩니다:
- Train2017: 객체 탐지, 세그멘테이션 및 캡셔닝 모델을 학습하기 위한 이미지 118,287장입니다.
- Val2017: 모델 학습 중 검증에 사용되는 이미지 5,000장입니다.
- Test2017: 학습된 모델을 벤치마킹하는 데 사용되는 test-dev 이미지 20,288장입니다. 이 하위 집합의 정답 어노테이션은 공개되지 않으며, 성능 평가를 위해 결과를 COCO 평가 서버에 제출합니다.
응용 분야#
COCO 데이터셋은 객체 탐지(Ultralytics YOLO, Faster R-CNN, SSD 등), 인스턴스 세그멘테이션(Mask R-CNN 등), 키포인트 탐지(OpenPose 등) 분야의 딥러닝 모델을 학습하고 평가하는 데 널리 사용됩니다. 다양한 객체 범주, 어노테이션이 있는 방대한 이미지 수, 표준화된 평가 지표 덕분에 COCO 데이터셋은 컴퓨터 비전 연구자와 실무자에게 필수적인 리소스입니다.
레이블링 도구에서 COCO JSON 형식으로 내보낸 어노테이션도 동일한 구조를 따릅니다. 자체 COCO 형식 데이터로 학습하려면 COCO 어노테이션을 YOLO 형식으로 변환을 참조하세요.
데이터셋 YAML#
데이터셋 구성을 정의하는 데 YAML 파일을 사용합니다. YAML 파일에는 데이터셋 경로, 클래스 및 기타 관련 정보가 포함됩니다. COCO 데이터셋의 경우, 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)사용법#
COCO2017 학습 및 검증 데이터(20.3 GB)는 학습을 처음 시작할 때 자동으로 다운로드됩니다. 이미지 크기 640으로 COCO에서 YOLO26n 모델을 100 에포크 동안 학습하려면 다음 코드 예제를 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하세요. Ultralytics Platform을 사용하여 클라우드에서 COCO 학습을 실행할 수도 있습니다.
from ultralytics import YOLO
# 모델 로드
model = YOLO("yolo26n.pt") # 사전 학습된 모델을 불러옵니다(학습에 권장).
# 모델 학습
results = model.train(data="coco.yaml", epochs=100, imgsz=640)샘플 이미지 및 어노테이션#
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 Consortium에 감사드립니다. COCO 데이터셋과 제작자에 관한 자세한 정보는 COCO 데이터셋 웹사이트에서 확인하세요.
자주 묻는 질문#
COCO 데이터셋을 사용해 YOLO26 모델을 학습하려면 다음 코드 예제를 사용할 수 있습니다:
학습 예제from ultralytics import YOLO # 모델 로드 model = YOLO("yolo26n.pt") # 사전 학습된 모델을 불러옵니다(학습에 권장). # 모델 학습 results = model.train(data="coco.yaml", epochs=100, imgsz=640)사용 가능한 인수에 관한 자세한 내용은 학습 페이지를 참조하세요.
COCO 데이터셋에는 다음이 포함됩니다:
- 객체 탐지, 세그멘테이션 및 캡셔닝용으로 어노테이션이 지정된 이미지 200K장을 포함해 총 이미지 330K장입니다.
- 자동차와 동물 같은 일반적인 항목부터 핸드백과 스포츠 장비 같은 특정 항목까지 80개 객체 범주가 포함됩니다.
- 객체 탐지 및 세그멘테이션을 위한 표준화된 평가 지표(mAP 및 평균 재현율)가 제공됩니다.
- 학습 배치에 모자이크 처리 기법을 적용해 다양한 객체 크기와 맥락에서 모델의 일반화 성능을 높입니다.
COCO 데이터셋은 세 개의 하위 집합으로 나뉩니다:
- Train2017: 학습용 이미지 118,287장입니다.
- Val2017: 학습 중 검증용 이미지 5,000장입니다.
- Test2017: 학습된 모델을 벤치마킹하는 test-dev 이미지 20,288장입니다. 성능 평가를 위해 결과를 COCO 평가 서버에 제출해야 합니다.
데이터셋 YAML 구성 파일은 경로, 클래스 및 데이터셋 세부 정보를 정의하는 coco.yaml에서 확인할 수 있습니다.



