YOLO Vision 2026:

COCO-Seg 데이터셋#

COCO-Seg 데이터셋은 COCO(Common Objects in Context) 인스턴스 세분화 마스크(훈련 이미지 118,287장, 검증 이미지 5,000장, 80개 객체 카테고리에 걸친 다각형 마스크)를 Ultralytics YOLO 라벨 형식으로 제공합니다. 이 데이터셋은 COCO의 원본 이미지와 기본 세분화 어노테이션을 YOLO 훈련용으로 변환하여 사용하므로, 인스턴스 세분화 작업을 수행하는 연구자와 개발자에게 핵심적인 리소스입니다.

COCO-Seg 사전 학습 모델#

모델크기
(픽셀)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
속도
CPU ONNX
(ms)
속도
T4 TensorRT10
(ms)
파라미터
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

주요 특징#

  • COCO-Seg는 COCO의 전체 약 33만 장 이미지 릴리스 중에서 라벨이 지정된 123,287장의 COCO train2017/val2017 이미지(학습용 118,287장 + 검증용 5,000장)에 대한 인스턴스 세그멘테이션 마스크를 제공합니다.
  • 데이터셋은 원래 COCO 데이터셋과 동일한 80개의 객체 카테고리로 구성됩니다.
  • 어노테이션은 YOLO 폴리곤 라벨 형식의 인스턴스 세그멘테이션 마스크를 제공합니다.
  • COCO-Seg는 인스턴스 세그멘테이션 성능을 평가하기 위한 표준화된 mAP 및 mAR 지표를 제공하여 모델 성능을 효과적으로 비교할 수 있게 합니다.
  • 다운로드 크기: 첫 사용 시 약 20.3 GB (train2017.zip + val2017.zip + 라벨). 7 GB 크기의 test2017.zip는 해당 이미지의 정답(ground truth)이 포함되어 있지 않고 test-dev2017 제출에만 필요하므로 자동으로 다운로드되지 않습니다.

데이터셋 구조#

COCO-Seg 데이터셋은 세 가지 하위 집합으로 구분됩니다:

  1. Train2017: 인스턴스 세그멘테이션 모델 학습을 위한 118,287장의 이미지.
  2. Val2017: 모델 개발 과정에서 검증용으로 사용되는 5,000장의 이미지.
  3. Test-dev2017: 벤치마킹에 사용되는 40,670장의 test2017 이미지 중 20,288장입니다. 이 서브셋의 정답 어노테이션은 공개되어 있지 않으므로, 점수를 측정하려면 COCO 평가 서버로 예측 결과를 제출해야 합니다.

더 작은 규모의 실험이 필요하다면 COCO128-Seg(128장 이미지) 및 COCO8-Seg(8장 이미지) 서브셋을 참조하세요.

응용 분야#

COCO-Seg는 YOLO 모델과 같은 instance segmentation 작업에서 deep learning 모델을 학습하고 평가하는 데 널리 사용됩니다. 방대한 주석 이미지, 객체 카테고리의 다양성, 표준화된 평가 지표 덕분에 computer vision 연구자와 실무자에게 없어서는 안 될 리소스입니다. 전체 COCO-Seg 주석은 Ultralytics Platform에서 탐색하고 관리할 수도 있습니다.

데이터셋 YAML#

데이터셋 구성은 YAML 파일을 사용하여 정의합니다. 여기에는 데이터셋의 경로, 클래스 및 기타 관련 정보가 포함됩니다. COCO-Seg 데이터셋의 경우 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.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)

사용법#

이미지 크기 640으로 COCO-Seg 데이터셋에서 100 에포크 동안 YOLO26n-seg 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 인수의 전체 목록은 모델 훈련 페이지를 참조하세요.

훈련 예제
from ultralytics import YOLO

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

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

샘플 이미지 및 주석#

COCO-Seg는 COCO와 동일한 다양한 이미지, 객체 카테고리 및 복잡한 장면을 포함하며, 인스턴스 세그멘테이션 마스크는 YOLO 라벨 형식으로 제공됩니다. 데이터셋에 포함된 이미지와 그에 대응하는 인스턴스 세그멘테이션 마스크의 예시는 다음과 같습니다:

COCO segmentation dataset mosaic training batch

  • 모자이크된 이미지: 이 이미지는 모자이크된 데이터셋 이미지로 구성된 훈련 배치를 보여줍니다. 모자이킹은 훈련 중에 여러 이미지를 하나의 이미지로 결합하여 각 훈련 배치 내의 객체와 장면의 다양성을 높이는 데 사용되는 기법입니다. 이는 모델이 다양한 객체 크기, 종횡비, 컨텍스트에 일반화하는 능력을 향상시키는 데 도움이 됩니다.

인용 및 감사의 글#

연구나 개발 작업에 COCO-Seg 데이터셋을 사용하는 경우, 원래 COCO 논문을 인용하고 COCO-Seg에 대한 확장을 명시해 주시기 바랍니다:

인용
@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-Seg 데이터셋이란 무엇이며 원래 COCO 데이터셋과 어떻게 다른가요?#

COCO-Seg는 동일한 118,287장의 train2017 이미지와 5,000장의 val2017 이미지에 대해 COCO(Common Objects in Context)의 기본 인스턴스 세분화 마스크를 Ultralytics YOLO 형식으로 패키징한 것입니다. 원본 COCO 어노테이션에는 이미 80개 객체 카테고리 전체에 대한 이러한 다각형 마스크가 포함되어 있으며, COCO-Seg는 이를 객체 인스턴스 세분화 훈련에 사용되는 YOLO 라벨 형식으로 변환합니다.

COCO-Seg 데이터셋을 사용하여 YOLO26 모델을 어떻게 학습시킬 수 있나요?#

이미지 크기 640으로 100에포크 동안 COCO-Seg 데이터셋에서 YOLO26n-seg 모델을 훈련하려면 다음 코드 스니펫을 사용할 수 있습니다. 사용 가능한 훈련 인수에 대한 자세한 내용은 모델 훈련 페이지를 참조하세요.

훈련 예제
from ultralytics import YOLO

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

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

COCO-Seg 데이터셋의 주요 특징은 무엇인가요?#

COCO-Seg 데이터셋에는 다음과 같은 주요 특징이 있습니다:

  • 123,287장의 라벨이 지정된 COCO train2017/val2017 이미지(학습용 118,287장 + 검증용 5,000장)에 대한 인스턴스 세그멘테이션 마스크를 제공합니다.
  • 원래 COCO에서 찾을 수 있는 동일한 80개 객체 카테고리에 주석을 제공합니다.
  • YOLO 폴리곤 라벨 형식의 인스턴스 세그멘테이션 마스크를 제공합니다.
  • instance segmentation 작업을 위해 mean Average Precision (mAP) 및 mean Average Recall (mAR)과 같은 표준화된 평가 지표를 사용합니다.

COCO-Seg에 사용 가능한 사전 학습 모델은 무엇이며, 성능 지표는 어떻게 되나요?#

COCO-Seg 데이터셋은 다양한 성능 지표를 가진 여러 사전 학습 YOLO26 세그멘테이션 모델을 지원합니다. 사용 가능한 모델과 주요 지표 요약은 다음과 같습니다:

모델크기
(픽셀)
mAPbox
50-95(e2e)
mAPmask
50-95(e2e)
속도
CPU ONNX
(ms)
속도
T4 TensorRT10
(ms)
파라미터
(M)
FLOPs
(B)
YOLO26n-seg64039.633.953.3 ± 0.52.1 ± 0.02.79.1
YOLO26s-seg64047.340.0118.4 ± 0.93.3 ± 0.010.434.2
YOLO26m-seg64052.544.1328.2 ± 2.46.7 ± 0.123.6121.5
YOLO26l-seg64054.445.5387.0 ± 3.78.0 ± 0.128.0139.8
YOLO26x-seg64056.547.0787.0 ± 6.816.4 ± 0.162.8313.5

이 모델들은 경량인 YOLO26n-seg부터 더 강력한 YOLO26x-seg까지 다양하며, 다양한 애플리케이션 요구 사항에 맞게 속도와 정확도 간의 다양한 절충안을 제공합니다. 모델 선택에 대한 자세한 내용은 Ultralytics 모델 페이지를 방문하세요.

COCO-Seg 데이터셋은 어떻게 구성되어 있으며 어떤 하위 집합을 포함하나요?#

COCO-Seg 데이터셋은 특정 학습 및 평가 요구를 위해 세 가지 하위 집합으로 구분됩니다:

  1. Train2017: 주로 인스턴스 세그멘테이션 모델 학습에 사용되는 118,287장의 이미지를 포함합니다.
  2. Val2017: 학습 과정에서 검증용으로 활용되는 5,000장의 이미지를 포함합니다.
  3. Test-dev2017: 훈련된 모델을 테스트하고 벤치마킹하기 위해 예약된 40,670장의 test2017 이미지 중 20,288장을 포함합니다. 이 서브셋의 정답 어노테이션은 공개되어 있지 않으며, 성능 결과는 평가를 위해 COCO 평가 서버로 제출됩니다.

더 작은 규모의 실험이 필요하다면 COCO128-Seg 데이터셋(128장 이미지) 또는 COCO train 2017 세트의 이미지 8장만 포함된 컴팩트 버전인 COCO8-Seg 데이터셋을 고려해 볼 수도 있습니다.

댓글