YOLO Vision 2026:

객체 탐지 데이터셋 개요#

견고하고 정확한 object detection 모델을 학습하려면 포괄적인 데이터셋이 필요합니다. 본 가이드에서는 Ultralytics YOLO 모델과 호환되는 다양한 데이터셋 형식을 소개하고, 그 구조, 사용법, 그리고 형식 간 변환 방법에 대한 통찰을 제공합니다.

지원되는 데이터셋 형식#

Ultralytics YOLO 형식#

Ultralytics YOLO 형식은 데이터셋의 루트 디렉토리, 훈련/검증/테스트 이미지 디렉토리의 상대 경로 또는 이미지 경로가 포함된 *.txt 파일, 그리고 클래스 이름 딕셔너리를 정의할 수 있는 데이터셋 구성 형식입니다. 다음은 그 예시입니다:

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

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 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: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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/coco8.zip

train, val, test는 각각 디렉토리, 디렉토리 목록, 또는 줄당 하나의 이미지 경로가 나열된 *.txt 파일을 허용합니다 (./로 시작하는 경로는 *.txt 파일을 기준으로 해결됩니다). *.txt 파일은 디렉토리의 하위 집합에서 학습하거나, 레이블이 지정되지 않은 이미지를 건너뛰거나, 여러 소스의 이미지를 하나의 분할(split)로 결합할 때 유용합니다.

`*.txt` 파일 형태의 이미지 경로
path: datasets/coco8 # dataset root
train: train.txt # a directory, a list e.g. [images/a, images/b], or a *.txt file
val: val.txt
names:
  0: person

이 형식의 레이블은 이미지당 하나의 *.txt 파일로 YOLO 형식으로 내보내야 합니다. 이미지에 객체가 없는 경우 *.txt 파일이 필요하지 않습니다. *.txt 파일은 class x_center y_center width height 형식의 객체당 한 행으로 형식화되어야 합니다. 상자 좌표는 정규화된 xywh 형식(0부터 1까지)이어야 합니다. 상자가 픽셀 단위인 경우, x_centerwidth를 이미지 너비로 나누고, y_centerheight을 이미지 높이로 나누어야 합니다. 클래스 번호는 0부터 시작해야 합니다(0으로 시작).

YOLO labeled image with bounding boxes on persons and tie

위 이미지에 해당하는 레이블 파일에는 2명의 사람(클래스 0)과 넥타이 1개(클래스 27)가 포함되어 있습니다:

YOLO format label file with normalized coordinates

Ultralytics YOLO 형식을 사용할 때, 아래의 COCO8 dataset 예시와 같이 훈련 및 검증 이미지와 레이블을 구성하십시오.

YOLO dataset directory structure with train and val folders

사용 예시#

YOLO 형식 데이터셋을 사용하여 모델을 학습시키는 방법은 다음과 같습니다:

예시
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="coco8.yaml", epochs=100, imgsz=640)

Ultralytics NDJSON 형식#

NDJSON(Newline Delimited JSON) 형식은 Ultralytics YOLO 모델을 위한 데이터셋을 정의하는 또 다른 방법을 제공합니다. 이 형식은 데이터셋 메타데이터와 주석을 단일 파일에 저장하며, 각 줄에는 별도의 JSON 객체가 포함됩니다.

NDJSON 데이터셋 파일 구성 요소:

  1. 데이터셋 레코드(첫 번째 줄): 작업 유형, 클래스 이름 및 일반 정보를 포함하는 데이터셋 메타데이터를 포함합니다.
  2. 이미지 레코드(이후 줄): 크기, 주석 및 파일 경로를 포함한 개별 이미지 데이터를 포함합니다.
NDJSON 예시
{
    "type": "dataset",
    "task": "detect",
    "name": "Example",
    "description": "COCO NDJSON example dataset",
    "url": "https://app.ultralytics.com/user/datasets/example",
    "class_names": { "0": "person", "1": "bicycle", "2": "car" },
    "bytes": 426342,
    "version": 0,
    "created_at": "2024-01-01T00:00:00Z",
    "updated_at": "2025-01-01T00:00:00Z"
}

사용자 정의 이미지 메타데이터#

각 이미지 레코드에는 촬영 조건, 장비 식별자, 검토 상태와 같은 애플리케이션별 컨텍스트를 위해 metadata JSON 객체가 포함될 수 있습니다. 중첩된 값도 지원됩니다. Ultralytics Platform으로 가져오면 이 메타데이터는 해당 이미지와 함께 저장되며 전체 화면 정보 패널에서 보고 편집할 수 있습니다.

{
    "type": "image",
    "file": "airbus-wing.jpg",
    "url": "https://example.com/airbus-wing.jpg",
    "split": "train",
    "metadata": { "aircraft": { "family": "A350", "section": "wing" }, "inspectionStatus": "reviewed" }
}

Platform은 최상위 메타데이터 키를 128자로 제한하며, 각 이미지의 직렬화된 메타데이터 객체는 500,000자, 하나의 NDJSON 가져오기에 포함된 결합된 유효 메타데이터는 500,000자로 제한합니다.

사용 예시#

YOLO26에서 NDJSON 데이터셋을 사용하려면, .ndjson 파일의 경로를 지정하기만 하면 됩니다:

예시
from ultralytics import YOLO

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

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)

NDJSON 형식의 장점#

  • 단일 파일: 모든 데이터셋 정보가 하나의 파일에 포함됨
  • 스트리밍: 메모리에 전체를 로드하지 않고 큰 데이터셋을 한 줄씩 처리 가능
  • 클라우드 통합: 클라우드 기반 학습을 위한 원격 이미지 URL 지원
  • 확장성: 사용자 정의 메타데이터 필드를 쉽게 추가 가능
  • 버전 관리: 단일 파일 형식이므로 git 및 버전 관리 시스템과 잘 호환됨

지원되는 데이터셋#

다음은 지원되는 데이터셋 목록과 각각에 대한 간략한 설명입니다:

  • African-wildlife: 물소, 코끼리, 코뿔소, 얼룩말을 포함한 아프리카 야생 동물 이미지를 제공하는 데이터셋입니다.
  • Argoverse: 풍부한 주석이 포함된 도시 환경의 3D 추적 및 모션 예측 데이터를 포함하는 데이터셋입니다.
  • Brain-tumor: 뇌 종양 검출을 위한 데이터셋으로, 종양의 존재 여부, 위치, 특성에 대한 세부 정보가 포함된 MRI 또는 CT 스캔 이미지를 제공합니다.
  • COCO: COCO(Common Objects in Context)는 80개의 객체 범주를 가진 대규모 object detection, 분할 및 캡셔닝 데이터셋입니다.
  • COCO8: COCO train 및 COCO val의 처음 4개 이미지로 구성된 더 작은 하위 집합으로, 빠른 테스트에 적합합니다.
  • COCO8-Grayscale: RGB를 그레이스케일로 변환하여 생성된 COCO8의 그레이스케일 버전으로, 단일 채널 모델 평가에 유용합니다.
  • COCO8-Multispectral: RGB 파장을 보간하여 생성된 COCO8의 10채널 다중 분광 버전으로, 스펙트럼 인식 모델 평가에 유용합니다.
  • COCO12-Formats: 이미지 로딩 파이프라인 검증을 위해 지원되는 12가지 이미지 형식(AVIF, BMP, DNG, HEIC, JP2, JPEG, JPG, MPO, PNG, TIF, TIFF, WebP)을 다루는 12개의 이미지가 포함된 테스트 데이터셋입니다.
  • COCO16: COCO train2017의 처음 16개 이미지(훈련 8개 + 검증 8개)로 구성된 하위 집합으로, 빠른 테스트에 적합합니다.
  • COCO32: COCO train2017의 처음 32개 이미지(훈련 16개 + 검증 16개)로 구성된 하위 집합으로, 빠른 테스트에 적합합니다.
  • COCO64: COCO train2017의 처음 64개 이미지(훈련 32개 + 검증 32개)로 구성된 하위 집합으로, 빠른 테스트에 적합합니다.
  • COCO128: COCO train2017의 처음 128개 이미지로 구성된 더 작은 하위 집합으로, 테스트에 적합합니다.
  • Construction-PPE: 헬멧, 조끼, 장갑, 부츠, 고글과 같은 안전 장비가 레이블된 건설 현장 작업자들의 이미지와, 실제 규정 준수 모니터링을 위한 no_helmet, no_goggle과 같은 누락 장비 주석을 포함하는 데이터셋입니다.
  • Global Wheat 2020: Global Wheat Challenge 2020을 위한 밀 이삭 이미지를 포함하는 데이터셋입니다.
  • HomeObjects-3K: 침대, 의자, TV 등을 포함하는 실내 가정용품 데이터셋으로, 스마트 홈 자동화, 로보틱스, 증강 현실 및 방 배치 분석 등의 애플리케이션에 이상적입니다.
  • KITTI: 스테레오, LiDAR, GPS/IMU 데이터가 포함된 실제 주행 장면을 담은 데이터셋으로, 도시, 시골, 고속도로 환경에서 자동차, 보행자, 자전거 이용자 식별과 같은 2D object detection 작업에 사용됩니다.
  • LVIS: 1,203개의 객체 범주를 가진 대규모 object detection, 분할 및 캡셔닝 데이터셋입니다.
  • Medical-pills: 제약 품질 보증, 알약 분류 및 규정 준수 등의 애플리케이션을 위해 주석이 달린 알약 이미지를 제공하는 데이터셋입니다.
  • Objects365: 365개의 객체 범주와 60만 개 이상의 주석이 달린 이미지를 갖춘 고품질의 대규모 object detection 데이터셋입니다.
  • OpenImagesV7: 170만 개의 훈련 이미지와 4만 2천 개의 검증 이미지를 포함하는 Google의 포괄적인 데이터셋입니다.
  • Roboflow 100: 포괄적인 모델 평가를 위해 7개 이미지 도메인에 걸쳐 100개의 데이터셋을 포함하는 다양한 object detection 벤치마크입니다.
  • Signature: 주석이 달린 서명이 포함된 다양한 문서 이미지를 제공하여 문서 검증 및 사기 탐지 연구를 지원하는 데이터셋입니다.
  • SKU-110K: 1만 1천 개 이상의 이미지와 170만 개 이상의 bounding boxes를 통해 소매 환경에서의 밀집 object detection을 제공하는 데이터셋입니다.
  • TT100K: 221개의 표지판 범주에 걸쳐 16,817개의 거리뷰 이미지를 포함하는 Tsinghua-Tencent 100K (TT100K) 교통표지판 데이터셋을 탐색하여 견고한 탐지 및 분류를 수행해 보세요.
  • VisDrone: 1만 개 이상의 이미지와 비디오 시퀀스로 구성된, 드론으로 촬영한 이미지 데이터에서 object detection 및 다중 객체 추적 데이터를 제공하는 데이터셋입니다.
  • VOC: 20개의 객체 클래스와 1만 1천 개 이상의 이미지를 포함하는 object detection 및 분할용 Pascal Visual Object Classes (VOC) 데이터셋입니다.
  • xView: 60개의 객체 범주와 1만 개 이상의 주석이 달린 객체를 포함하는 상공 이미지 object detection 데이터셋입니다.

자신만의 데이터셋 추가하기#

자체 데이터셋을 보유하고 있으며 이를 Ultralytics YOLO 형식으로 객체 탐지 모델 학습에 사용하려는 경우, 위에서 명시된 "Ultralytics YOLO 형식"을 따르는지 확인하십시오. 주석을 필요한 형식으로 변환하고 YAML 구성 파일에 경로, 클래스 수 및 클래스 이름을 지정하십시오.

라벨 형식 포팅 또는 변환#

COCO 데이터셋 형식을 YOLO 형식으로#

다음 코드 조각을 사용하여 인기 있는 COCO dataset 형식의 레이블을 YOLO 형식으로 쉽게 변환할 수 있습니다:

예시
from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

이 변환 도구는 COCO 데이터셋 또는 COCO 형식의 모든 데이터셋을 Ultralytics YOLO 형식으로 변환하는 데 사용할 수 있습니다. 이 프로세스는 JSON 기반의 COCO 주석을 더 간단한 텍스트 기반의 YOLO 형식으로 변환하여 Ultralytics YOLO models과 호환되도록 만듭니다.

사용하려는 데이터셋이 모델과 호환되며 필요한 형식 규칙을 따르는지 다시 한 번 확인하십시오. 올바르게 형식화된 데이터셋은 성공적인 객체 탐지 모델 학습에 매우 중요합니다.

다음 단계#

데이터셋 형식을 지정한 후 start training your model을 진행하세요. 어떤 사전 학습된 모델부터 시작해야 할지 모르시겠나요? YOLO26 model family에서 옵션을 비교해 보세요.

FAQ#

Ultralytics YOLO 데이터셋 형식이란 무엇이며 어떻게 구성하나요?#

Ultralytics YOLO 형식은 학습 프로젝트에서 데이터셋을 정의하기 위한 구조화된 구성입니다. 학습, 검증, 테스트 이미지 및 해당 라벨에 대한 경로를 설정하는 것이 포함됩니다. 예를 들어:

# Ultralytics 🚀 AGPL-3.0 License - https://ultralytics.com/license

# COCO8 dataset (first 8 images from COCO train2017) by Ultralytics
# Documentation: https://docs.ultralytics.com/datasets/detect/coco8
# Example usage: yolo train data=coco8.yaml
# parent
# ├── ultralytics
# └── datasets
#     └── coco8 ← downloads here (1 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: coco8 # dataset root dir
train: images/train # train images (relative to 'path') 4 images
val: images/val # val images (relative to 'path') 4 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/coco8.zip

레이블은 이미지당 하나의 파일인 *.txt 파일에 정규화된 좌표와 함께 class x_center y_center width height 형식으로 저장됩니다. 자세한 가이드는 COCO8 dataset example을 참고하세요.

COCO 데이터셋을 YOLO 형식으로 어떻게 변환하나요?#

Ultralytics conversion tools를 사용하여 COCO 데이터셋을 YOLO 형식으로 변환할 수 있습니다. 간단한 방법은 다음과 같습니다:

from ultralytics.data.converter import convert_coco

convert_coco(labels_dir="path/to/coco/annotations/")

이 코드는 COCO 주석을 YOLO 형식으로 변환하여 Ultralytics YOLO 모델과의 원활한 통합을 가능하게 합니다. 자세한 내용은 Port or Convert Label Formats 섹션을 방문하세요.

Ultralytics YOLO는 객체 탐지를 위해 어떤 데이터셋을 지원하나요?#

Ultralytics YOLO는 다음을 포함하여 광범위한 데이터셋을 지원합니다:

각 데이터셋 페이지는 효율적인 YOLO26 학습에 맞춤화된 구조와 사용법에 대한 자세한 정보를 제공합니다. Supported Datasets 섹션에서 전체 목록을 살펴보세요.

자체 데이터셋을 사용하여 YOLO26 모델 학습을 시작하려면 어떻게 해야 하나요?#

YOLO26 모델 학습을 시작하려면 데이터셋 형식이 올바른지 확인하고 YAML 파일에 경로가 정의되어 있는지 확인하십시오. 다음 스크립트를 사용하여 학습을 시작하십시오:

예시
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # Load a pretrained model
results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)

CLI 명령어를 포함한 다양한 모드 활용에 대한 자세한 내용은 Usage 섹션을 참고하세요.

객체 탐지를 위해 Ultralytics YOLO를 사용하는 실용적인 예제는 어디서 찾을 수 있나요?#

Ultralytics는 다양한 응용 프로그램에서 YOLO26을 사용하는 데 도움이 되는 수많은 예제와 실용적인 가이드를 제공합니다. 포괄적인 개요를 보려면 Ultralytics Blog를 방문하여 YOLO26을 사용한 객체 감지, 분할 등을 보여주는 사례 연구, 상세 튜토리얼 및 커뮤니티 스토리를 확인하세요. 구체적인 예제는 문서의 Usage 섹션을 확인하세요.

댓글