COCO128 데이터셋

소개

Ultralytics COCO128은 COCO train 2017 세트의 첫 128개 이미지로 구성된 작지만 다재다능한 객체 탐지 데이터셋입니다. 이 데이터셋은 객체 탐지 모델을 테스트 및 디버깅하거나 새로운 탐지 접근 방식을 실험하는 데 이상적입니다. 128개의 이미지는 관리가 용이할 만큼 작으면서도, 대규모 데이터셋을 학습하기 전에 학습 파이프라인의 오류를 테스트하고 정상 작동 여부를 확인하기에 충분히 다양합니다.



Watch: Ultralytics COCO Dataset Overview

이 데이터셋은 Ultralytics PlatformYOLO26과 함께 사용하도록 의도되었습니다.

데이터셋 YAML

데이터셋 구성을 정의하기 위해 YAML (Yet Another Markup Language) 파일이 사용됩니다. 이 파일에는 데이터셋 경로, 클래스 및 기타 관련 정보가 포함되어 있습니다. COCO128 데이터셋의 경우 coco128.yaml 파일이 https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/coco128.yaml에 유지 관리됩니다.

ultralytics/cfg/datasets/coco128.yaml
# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO128 dataset https://www.kaggle.com/datasets/ultralytics/coco128 (first 128 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco/
# Example usage: yolo train data=coco128.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco128 ← downloads here (7 MB)

# 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: coco128 # dataset root dir
train: images/train2017 # train images (relative to 'path') 128 images
val: images/train2017 # val images (relative to 'path') 128 images
test: # test images (optional)

# 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: https://github.com/ultralytics/assets/releases/download/v0.0.0/coco128.zip

사용법

COCO128 데이터셋에서 이미지 크기 640으로 100 에포크 동안 YOLO26n 모델을 학습하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 전체 인수 목록은 모델 학습 페이지를 참조하십시오.

학습 예제
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

샘플 이미지 및 주석

다음은 COCO128 데이터셋의 이미지 예시와 해당 주석입니다:

COCO128 object detection dataset mosaic training batch
  • 모자이크 이미지: 이 이미지는 모자이크 처리된 데이터셋 이미지들로 구성된 학습 배치를 보여줍니다. 모자이킹은 학습 중에 여러 이미지를 하나의 이미지로 결합하여 각 학습 배치 내의 객체와 장면의 다양성을 높이는 데 사용되는 기법입니다. 이는 모델이 다양한 객체 크기, 가로세로 비율 및 문맥으로 일반화하는 능력을 향상시키는 데 도움을 줍니다.

이 예시는 COCO128 데이터셋 이미지의 다양성과 복잡성, 그리고 학습 과정에서 모자이크 처리를 사용할 때의 이점을 보여줍니다.

인용 및 감사의 글

연구 또는 개발 작업에 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}
}

We would like to acknowledge the COCO Consortium for creating and maintaining this valuable resource for the computer vision community. For more information about the COCO dataset and its creators, visit the COCO dataset website.

FAQ

Ultralytics COCO128 데이터셋은 어떤 용도로 사용되나요?

Ultralytics COCO128 데이터셋은 COCO train 2017 데이터셋의 첫 128개 이미지가 포함된 소형 하위 집합입니다. 이는 주로 객체 탐지 모델 테스트 및 디버깅, 새로운 탐지 접근 방식 실험, 대규모 데이터셋으로 확장하기 전 학습 파이프라인 검증용으로 사용됩니다. 관리가 용이한 크기 덕분에 빠른 반복 학습에 적합하면서도 의미 있는 테스트 사례가 될 만큼 충분한 다양성을 제공합니다.

COCO128 데이터셋을 사용하여 YOLO26 모델을 어떻게 학습하나요?

COCO128 데이터셋에서 YOLO26 모델을 학습하려면 Python 또는 CLI 명령어를 사용할 수 있습니다. 방법은 다음과 같습니다:

학습 예제
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n.pt")

# Train the model
results = model.train(data="coco128.yaml", epochs=100, imgsz=640)

더 많은 학습 옵션 및 매개변수는 학습 문서를 참조하십시오.

COCO128에서 모자이크 증강(mosaic augmentation)을 사용하면 어떤 이점이 있나요?

샘플 이미지에서 볼 수 있듯이 모자이크 증강은 여러 학습 이미지를 하나의 합성 이미지로 결합합니다. 이 기술은 COCO128로 학습할 때 다음과 같은 여러 이점을 제공합니다:

  • 각 학습 배치 내 객체와 맥락의 다양성 증가
  • 다양한 객체 크기와 종횡비에 걸친 모델 일반화 개선
  • 다양한 스케일의 객체에 대한 탐지 성능 향상
  • 더 다양한 학습 샘플을 생성하여 소규모 데이터셋의 활용도 극대화

이 기술은 COCO128과 같은 소규모 데이터셋에 특히 유용하며, 모델이 제한된 데이터로부터 더 강력한 특징을 학습하도록 돕습니다.

COCO128은 다른 COCO 데이터셋 변형과 어떻게 비교되나요?

COCO128(128개 이미지)은 크기 면에서 COCO8(8개 이미지)와 전체 COCO 데이터셋(118K+ 이미지) 사이에 위치합니다:

  • COCO8: 단 8개의 이미지(학습 4개, 검증 4개) 포함 - 빠른 테스트 및 디버깅에 이상적
  • COCO128: 128개의 이미지 포함 - 크기와 다양성 간의 균형
  • 전체 COCO: 118K+ 학습 이미지 포함 - 포괄적이나 리소스 집약적

COCO128은 실험 및 초기 모델 개발을 위해 전체 COCO 데이터셋보다 훨씬 관리가 용이하면서도 COCO8보다 더 큰 다양성을 제공하는 좋은 중간 지점입니다.

COCO128을 객체 탐지 이외의 작업에 사용할 수 있나요?

COCO128은 주로 객체 탐지를 위해 설계되었지만, 데이터셋의 주석은 다른 컴퓨터 비전 작업에 맞게 조정할 수 있습니다:

  • 인스턴스 분할(Instance segmentation): 주석에 제공된 세그멘테이션 마스크 사용
  • 키포인트 탐지(Keypoint detection): 키포인트 주석이 포함된 사람 이미지의 경우
  • 전이 학습(Transfer learning): 사용자 지정 작업을 위해 모델을 파인튜닝할 때 시작점으로 활용

세그멘테이션과 같은 특수 작업의 경우, 적절한 주석이 포함된 COCO8-seg와 같은 목적별 변형 사용을 고려하십시오.

댓글