콘텐츠로 건너뛰기

COCO 데이터세트

COCO (Common Objects in Context) 데이터 세트는 대규모 객체 감지, 분할 및 캡션 데이터 세트입니다. 다양한 객체 범주에 대한 연구를 장려하기 위해 설계되었으며 일반적으로 컴퓨터 비전 모델을 벤치마킹하는 데 사용됩니다. 객체 감지, 분할, 포즈 추정 작업을 하는 연구자와 개발자에게 필수적인 데이터 세트입니다.



참고: Ultralytics COCO 데이터 세트 개요

COCO 사전 훈련된 모델

모델 크기
(픽셀)
mAPval
50-95
속도
CPU ONNX
(ms)
속도
T4 TensorRT10
(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는 330,000개의 이미지를 포함하며, 그 중 200,000개의 이미지에는 객체 감지, 분할 및 캡션 작업을 위한 주석이 달려 있습니다.
  • 이 데이터 세트는 자동차, 자전거, 동물과 같은 일반적인 객체는 물론 우산, 핸드백, 스포츠 장비와 같은 더 구체적인 범주를 포함하여 80개의 객체 범주로 구성됩니다.
  • 주석에는 각 이미지에 대한 객체 경계 상자, 분할 마스크 및 캡션이 포함됩니다.
  • COCO는 객체 탐지를 위한 평균 정밀도(mAP)와 분할 작업을 위한 평균 재현율(mAR)과 같은 표준화된 평가 지표를 제공하여 모델 성능 비교에 적합합니다.

데이터 세트 구조

COCO 데이터 세트는 세 개의 하위 세트로 나뉩니다.

  1. Train2017: 이 하위 세트에는 객체 탐지, 분할 및 캡셔닝 모델을 훈련하기 위한 118K개의 이미지가 포함되어 있습니다.
  2. Val2017: 이 하위 세트에는 모델 훈련 중 유효성 검사 목적으로 사용되는 5K개의 이미지가 있습니다.
  3. Test2017: 이 하위 집합은 훈련된 모델을 테스트하고 벤치마킹하는 데 사용되는 20K개의 이미지로 구성됩니다. 이 하위 집합에 대한 Ground Truth 어노테이션은 공개적으로 제공되지 않으며, 성능 평가는 COCO 평가 서버에 결과를 제출하여 수행합니다.

응용 분야

COCO 데이터 세트는 객체 감지(Ultralytics YOLO, Faster R-CNNSSD 등), 인스턴스 분할(Mask R-CNN 등) 및 키포인트 감지(OpenPose 등)에서 딥러닝 모델을 훈련하고 평가하는 데 널리 사용됩니다. 데이터 세트의 다양한 객체 범주 세트, 많은 수의 주석 처리된 이미지 및 표준화된 평가 메트릭은 컴퓨터 비전 연구원과 실무자에게 필수적인 리소스입니다.

데이터세트 YAML

YAML(Yet Another Markup Language) 파일은 데이터 세트 구성을 정의하는 데 사용됩니다. 여기에는 데이터 세트의 경로, 클래스 및 기타 관련 정보가 포함되어 있습니다. 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: 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인 COCO 데이터 세트에서 YOLO11n 모델을 100 epoch 동안 학습시키려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 학습 페이지를 참조하십시오.

훈련 예제

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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 detect train data=coco.yaml model=yolo11n.pt 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 컨소시엄에 감사를 드립니다. COCO 데이터 세트 및 제작자에 대한 자세한 내용은 COCO 데이터 세트 웹사이트를 참조하십시오.

FAQ

COCO 데이터 세트란 무엇이며 컴퓨터 비전에 중요한 이유는 무엇입니까?

COCO 데이터 세트(Context의 공통 객체)는 객체 감지, 분할 및 캡션에 사용되는 대규모 데이터 세트입니다. 80개의 객체 범주에 대한 자세한 주석이 포함된 330K 이미지가 포함되어 있어 컴퓨터 비전 모델을 벤치마킹하고 훈련하는 데 필수적입니다. 연구자들은 평균 평균 정밀도(mAP)와 같은 다양한 범주와 표준화된 평가 메트릭으로 인해 COCO를 사용합니다.

COCO 데이터 세트를 사용하여 YOLO 모델을 학습하려면 어떻게 해야 하나요?

COCO 데이터 세트를 사용하여 YOLO11 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다.

훈련 예제

from ultralytics import YOLO

# Load a model
model = YOLO("yolo11n.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 detect train data=coco.yaml model=yolo11n.pt epochs=100 imgsz=640

사용 가능한 인수에 대한 자세한 내용은 Training 페이지를 참조하십시오.

COCO 데이터 세트의 주요 특징은 무엇인가요?

COCO 데이터 세트에는 다음이 포함됩니다.

  • 330K 이미지, 객체 감지, 분할 및 캡션용으로 주석이 달린 200K.
  • 자동차 및 동물과 같은 일반적인 항목부터 핸드백 및 스포츠 장비와 같은 특정 항목에 이르기까지 80개의 객체 범주가 있습니다.
  • 객체 감지(mAP) 및 분할(평균 평균 재현율, mAR)에 대한 표준화된 평가 지표입니다.
  • 다양한 객체 크기 및 컨텍스트에서 모델 일반화를 향상시키기 위해 학습 배치에서 모자이킹 기술을 사용합니다.

COCO 데이터 세트에서 학습된 사전 학습된 YOLO11 모델은 어디에서 찾을 수 있나요?

COCO 데이터 세트에서 사전 훈련된 YOLO11 모델은 설명서에 제공된 링크에서 다운로드할 수 있습니다. 예는 다음과 같습니다.

이러한 모델은 크기, mAP 및 추론 속도가 다양하여 다양한 성능 및 리소스 요구 사항에 대한 옵션을 제공합니다.

COCO 데이터 세트는 어떻게 구성되어 있으며 어떻게 사용합니까?

COCO 데이터 세트는 세 개의 하위 세트로 나뉩니다.

  1. Train2017: 학습용 118K 이미지.
  2. Val2017: 학습 중 검증을 위한 5K 이미지.
  3. Test2017: 훈련된 모델의 벤치마킹을 위한 20K 이미지입니다. 성능 평가를 위해 결과를 COCO 평가 서버에 제출해야 합니다.

데이터 세트의 YAML 구성 파일은 coco.yaml에서 사용할 수 있으며, 여기에는 경로, 클래스 및 데이터 세트 세부 정보가 정의되어 있습니다.



📅 1년 전에 생성됨 ✏️ 5개월 전에 업데이트됨

댓글