COCO 데이터 세트
COCO (Common Objects in Context) 데이터 세트는 대규모 객체 감지, 분할 및 캡션 데이터 세트입니다. 다양한 객체 범주에 대한 연구를 장려하기 위해 설계되었으며 일반적으로 컴퓨터 비전 모델을 벤치마킹하는 데 사용됩니다. 객체 감지, 분할, 포즈 추정 작업을 하는 연구자와 개발자에게 필수적인 데이터 세트입니다.
Watch: Ultralytics COCO 데이터 세트 개요
COCO 사전 학습 모델
모델 | 크기 (픽셀) |
mAPval 50-95 |
속도 CPU ONNX (ms) |
속도 T4TensorRT10 (ms) |
매개변수 (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLO11n | 640 | 39.5 | 56.1 ± 0.8 | 1.5 ± 0.0 | 2.6 | 6.5 |
YOLO11s | 640 | 47.0 | 90.0 ± 1.2 | 2.5 ± 0.0 | 9.4 | 21.5 |
YOLO11m | 640 | 51.5 | 183.2 ± 2.0 | 4.7 ± 0.1 | 20.1 | 68.0 |
YOLO11l | 640 | 53.4 | 238.6 ± 1.4 | 6.2 ± 0.1 | 25.3 | 86.9 |
YOLO11x | 640 | 54.7 | 462.8 ± 6.7 | 11.3 ± 0.2 | 56.9 | 194.9 |
주요 기능
- COCO에는 33만 개의 이미지가 포함되어 있으며, 20만 개의 이미지에는 객체 감지, 분할 및 캡션 작업을 위한 주석이 포함되어 있습니다.
- 데이터 세트는 자동차, 자전거, 동물과 같은 일반적인 객체와 우산, 핸드백, 스포츠 장비와 같은 보다 구체적인 카테고리를 포함한 80개의 객체 카테고리로 구성되어 있습니다.
- 주석에는 개체 경계 상자, 분할 마스크 및 각 이미지에 대한 캡션이 포함됩니다.
- COCO는 객체 감지를 위한 평균 평균 정밀도 (mAP), 세분화 작업을 위한 평균 평균 정확도 (mAR) 등 표준화된 평가 지표를 제공하므로 모델 성능을 비교하는 데 적합합니다.
데이터 세트 구조
COCO 데이터 세트는 세 개의 하위 집합으로 나뉩니다:
- Train2017: 이 하위 집합에는 객체 감지, 분할 및 캡션 모델 학습을 위한 118만 개의 이미지가 포함되어 있습니다.
- Val2017: 이 하위 집합에는 모델 학습 중 유효성 검사 목적으로 사용되는 5K 이미지가 있습니다.
- Test2017: 이 하위 집합은 학습된 모델을 테스트하고 벤치마킹하는 데 사용되는 20K 이미지로 구성됩니다. 이 하위 집합에 대한 실측 자료 주석은 공개되지 않으며, 결과는 성능 평가를 위해 COCO 평가 서버에 제출됩니다.
애플리케이션
COCO 데이터 세트는 객체 감지 분야에서 딥 러닝 모델을 학습하고 평가하는 데 널리 사용됩니다(예 Ultralytics YOLO, Faster R-CNN, SSD 등), 인스턴스 세분화 ( Mask R-CNN 등), 키포인트 감지( OpenPose 등) 분야에서 딥 러닝 모델을 훈련하고 평가하는 데 사용됩니다. 데이터 세트의 다양한 객체 카테고리, 수많은 주석이 달린 이미지, 표준화된 평가 메트릭은 컴퓨터 비전 연구자와 실무자에게 필수적인 리소스입니다.
데이터 세트 YAML
데이터 세트 구성을 정의하는 데는 YAML(또 다른 마크업 언어) 파일이 사용됩니다. 여기에는 데이터 세트의 경로, 클래스 및 기타 관련 정보에 대한 정보가 포함되어 있습니다. COCO 데이터 세트의 경우, 데이터 세트의 coco.yaml
파일은 다음 위치에서 유지됩니다. 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: ../datasets/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.downloads import download
# Download labels
segments = True # segment or box labels
dir = Path(yaml["path"]) # dataset root dir
url = "https://github.com/ultralytics/assets/releases/download/v0.0.0/"
urls = [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 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하세요.
열차 예시
샘플 이미지 및 주석
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 데이터 세트 웹사이트를 참조하세요.
자주 묻는 질문
COCO 데이터 세트는 무엇이며 컴퓨터 비전에 중요한 이유는 무엇인가요?
COCO 데이터 세트 (Common Objects in Context)는 객체 감지, 세분화, 캡션에 사용되는 대규모 데이터 세트입니다. 80개 객체 범주에 대한 자세한 주석이 포함된 330만 개의 이미지가 포함되어 있어 컴퓨터 비전 모델을 벤치마킹하고 훈련하는 데 필수적입니다. 연구자들은 다양한 카테고리와 평균 평균 정밀도 (mAP)와 같은 표준화된 평가 지표로 인해 COCO를 사용합니다.
COCO 데이터 세트를 사용하여 YOLO 모델을 훈련하려면 어떻게 해야 하나요?
COCO 데이터 세트를 사용하여 YOLO11 모델을 학습하려면 다음 코드 스니펫을 사용할 수 있습니다:
열차 예시
사용 가능한 인수에 대한 자세한 내용은 교육 페이지를 참조하세요.
COCO 데이터 세트의 주요 특징은 무엇인가요?
COCO 데이터 세트에는 다음이 포함됩니다:
- 물체 감지, 분할 및 캡션에 대한 주석이 달린 330만 개의 이미지와 200만 개의 이미지가 있습니다.
- 자동차, 동물과 같은 일반적인 물건부터 핸드백, 스포츠 장비와 같은 특정 물건까지 80개의 물건 카테고리가 있습니다.
- 객체 감지(mAP) 및 세분화(평균 평균 회상률, mAR)를 위한 표준화된 평가 지표.
- 다양한 오브젝트 크기와 컨텍스트에서 모델 일반화를 향상시키기 위해 훈련 배치에 모자이크 기법을 적용합니다.
COCO 데이터셋으로 학습된 사전 학습된 YOLO11 모델은 어디에서 찾을 수 있나요?
COCO 데이터 세트에 대한 사전 학습된 YOLO11 모델은 문서에 제공된 링크에서 다운로드할 수 있습니다. 예는 다음과 같습니다:
이러한 모델은 크기, 맵, 추론 속도가 다양하여 다양한 성능 및 리소스 요구 사항에 맞는 옵션을 제공합니다.
COCO 데이터 세트는 어떻게 구성되어 있으며 어떻게 사용하나요?
COCO 데이터 세트는 세 개의 하위 집합으로 나뉩니다:
- Train2017: 교육용 이미지 118만 개.
- Val2017: 교육 중 검증을 위한 5K 이미지.
- Test2017: 학습된 모델을 벤치마킹하기 위한 20K 이미지. 성능 평가를 위해 COCO 평가 서버에 결과를 제출해야 합니다.
데이터 세트의 YAML 구성 파일은 경로, 클래스 및 데이터 세트 세부 정보를 정의하는 coco.yaml에서 사용할 수 있습니다.