객체 탐지 데이터셋 개요#
견고하고 정확한 객체 탐지 모델을 학습하려면 포괄적인 데이터셋이 필요합니다. 이 가이드에서는 Ultralytics YOLO 모델과 호환되는 다양한 데이터셋 형식을 소개하고, 각 형식의 구조와 사용 방법, 형식 간 변환 방법을 설명합니다.
지원되는 데이터셋 형식#
Ultralytics YOLO 형식#
Ultralytics YOLO 형식은 데이터셋 루트 디렉터리, 학습/검증/테스트 이미지 디렉터리 또는 이미지 경로가 포함된 *.txt 파일의 상대 경로, 그리고 클래스 이름 사전을 정의할 수 있는 데이터셋 구성 형식입니다. 예시는 다음과 같습니다.
# 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.ziptrain, val 및 test는 각각 디렉터리, 디렉터리 목록 또는 줄마다 이미지 경로 하나를 나열하는 *.txt 파일을 허용합니다(경로가 ./로 시작하면 *.txt 파일을 기준으로 해석됩니다). *.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_center와 width를 이미지 너비로 나누고, y_center과 height을 이미지 높이로 나눠야 합니다. 클래스 번호는 0부터 시작해야 합니다.

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

Ultralytics YOLO 형식을 사용할 때는 아래 COCO8 데이터셋 예시와 같이 학습 및 검증 이미지와 레이블을 구성하세요.

사용 예제#
YOLO 형식의 데이터셋을 사용해 모델을 학습하는 방법은 다음과 같습니다.
from ultralytics import YOLO
# 모델 로드
model = YOLO("yolo26n.pt") # 사전 학습된 모델을 불러옵니다(학습에 권장).
# 모델 학습
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Ultralytics NDJSON 형식#
NDJSON(Newline Delimited JSON) 형식은 Ultralytics YOLO 모델의 데이터셋을 정의하는 또 다른 방법입니다. 이 형식은 데이터셋 메타데이터와 어노테이션을 단일 파일에 저장하며, 각 줄에는 별도의 JSON 객체가 포함됩니다.
NDJSON 데이터셋 파일에는 다음이 포함됩니다.
- 데이터셋 레코드(첫 번째 줄): 작업 유형, 클래스 이름 및 일반 정보를 포함한 데이터셋 메타데이터입니다.
- 이미지 레코드(이후 줄): 크기, 어노테이션 및 파일 경로를 포함한 개별 이미지 데이터입니다.
{
"type": "dataset",
"task": "detect",
"name": "Example",
"description": "COCO NDJSON example dataset",
"url": "https://platform.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 가져오기 1회에서 결합된 유효 메타데이터를 500,000자로 제한합니다.
사용 예제#
YOLO26에서 NDJSON 데이터셋을 사용하려면 .ndjson 파일 경로를 지정하면 됩니다.
from ultralytics import YOLO
# 모델 로드
model = YOLO("yolo26n.pt")
# NDJSON 데이터셋을 사용하여 학습
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)NDJSON 형식의 장점#
- 단일 파일: 모든 데이터셋 정보를 하나의 파일에 저장합니다.
- 스트리밍: 모든 데이터를 메모리에 로드하지 않고 대용량 데이터셋을 한 줄씩 처리할 수 있습니다.
- 클라우드 통합: 클라우드 기반 학습을 위한 원격 이미지 URL을 지원합니다.
- 확장성: 사용자 지정 메타데이터 필드를 쉽게 추가할 수 있습니다.
- 버전 관리: 단일 파일 형식은 git 및 버전 관리 시스템과 잘 호환됩니다.
지원되는 데이터셋#
지원되는 데이터셋 목록과 각 데이터셋에 대한 간략한 설명은 다음과 같습니다. 대부분의 데이터셋은 Ultralytics Platform에서도 호스팅되므로, 이미지와 어노테이션을 둘러보고 데이터셋 통계를 확인하며 클라우드 학습을 위해 데이터셋을 복제할 수 있습니다.
- African-wildlife: 버팔로, 코끼리, 코뿔소, 얼룩말 등 아프리카 야생동물 이미지로 구성된 데이터셋입니다.
- Argoverse: 8개 도로 객체 클래스를 포함하는 도시 자율 주행 이미지 54,446장으로 구성된 Argoverse-HD 2D 탐지 데이터셋입니다.
- Brain-tumor: 뇌종양 탐지를 위한 데이터셋으로, 종양의 유무, 위치 및 특성에 대한 정보가 포함된 MRI 또는 CT 스캔 이미지를 제공합니다.
- COCO: 공통 객체 맥락(COCO)은 80개 객체 카테고리를 포함하는 대규모 객체 탐지, 분할 및 캡셔닝 데이터셋입니다.
- COCO8: COCO train2017의 처음 8개 이미지(학습용 4개, 검증용 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 객체 탐지 작업에 사용됩니다.
- LVIS: 1,203개 객체 범주를 포함하는 대규모 객체 탐지 및 인스턴스 분할 데이터셋입니다.
- Medical-pills: 의약품 품질 보증, 알약 분류 및 규정 준수와 같은 애플리케이션을 위해 어노테이션된 의약품 알약 이미지 데이터셋입니다.
- Objects365: 365개 객체 카테고리와 170만 개 이상의 학습 이미지를 포함하는 고품질 대규모 객체 탐지 데이터셋입니다.
- OpenImagesV7: Google이 제공하는 포괄적인 데이터셋으로, 학습 이미지 170만 개와 검증 이미지 4만 2천 개를 포함합니다.
- Roboflow 100: 7개 이미지 도메인에 걸친 100개 데이터셋으로 구성되어 다양한 환경을 포괄적으로 평가할 수 있는 객체 탐지 벤치마크입니다.
- Signature: 서명이 어노테이션된 다양한 문서 이미지 데이터셋으로, 문서 검증 및 사기 탐지 연구를 지원합니다.
- SKU-110K: 11K개 이상의 이미지와 170만 개의 바운딩 박스를 포함하며, 리테일 환경의 밀집 객체 탐지를 다루는 데이터셋입니다.
- TT100K: 221개 표지판 카테고리에 속한 도로 장면 이미지 16,817개로 구성된 칭화-텐센트 100K (TT100K) 교통 표지판 데이터셋을 살펴보고, 견고한 탐지 및 분류를 수행해 보세요.
- VisDrone: 드론 촬영 이미지로 구성된 객체 탐지 및 다중 객체 추적 데이터셋으로, 1만 개가 넘는 이미지와 비디오 시퀀스를 포함합니다.
- VOC: 20개 객체 클래스와 11K개 이상의 이미지로 구성된 파스칼 시각 객체 클래스 (VOC) 객체 탐지 및 세그멘테이션 데이터셋입니다.
- xView: 60개 객체 범주와 100만 개가 넘는 어노테이션 객체를 포함하는 항공 이미지 객체 탐지 데이터셋입니다.
사용자 데이터셋 추가#
사용자 데이터셋이 있고 Ultralytics YOLO 형식을 사용해 탐지 모델을 학습하려면, 위의 "Ultralytics YOLO format"에 명시된 형식을 따르는지 확인하세요. 어노테이션을 필요한 형식으로 변환하고 YAML 구성 파일에 경로, 클래스 수, 클래스 이름을 지정하세요.
레이블 형식 포팅 또는 변환#
COCO 데이터셋 형식을 YOLO 형식으로 변환#
다음 코드 조각을 사용하면 널리 사용되는 COCO 데이터셋 형식의 레이블을 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 모델과 호환되도록 합니다. 클래스 ID 매핑, 디렉터리 레이아웃, 세그멘테이션 또는 포즈 어노테이션을 포함한 전체 워크플로는 COCO 어노테이션을 YOLO로 변환을 참조하세요.
사용하려는 데이터셋이 모델과 호환되고 필요한 형식 규칙을 따르는지 다시 확인하세요. 객체 탐지 모델을 성공적으로 학습하려면 데이터셋의 형식을 올바르게 지정해야 합니다.
다음 단계#
데이터셋 형식을 지정했다면 모델 학습을 시작하세요. 어떤 사전 학습 모델로 시작할지 잘 모르시겠나요? YOLO26 모델 제품군에서 여러 옵션을 비교해 보세요.
자주 묻는 질문#
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 데이터셋 예제를 참조하세요.Ultralytics 변환 도구를 사용하면 COCO 데이터셋을 YOLO 형식으로 변환할 수 있습니다. 간단한 방법은 다음과 같습니다.
from ultralytics.data.converter import convert_coco convert_coco(labels_dir="path/to/coco/annotations/")이 코드는 COCO 어노테이션을 YOLO 형식으로 변환하여 Ultralytics YOLO 모델과 원활하게 통합할 수 있도록 합니다. 자세한 내용은 레이블 형식 포팅 또는 변환 섹션을 참조하세요.
Ultralytics YOLO는 다음을 비롯한 다양한 데이터셋을 지원합니다.
각 데이터셋 페이지에는 효율적인 YOLO26 학습에 맞춘 구조 및 사용법에 관한 자세한 정보가 제공됩니다. 지원 데이터셋 섹션에서 전체 목록을 살펴보세요.
YOLO26 모델 학습을 시작하려면 데이터셋 형식이 올바른지 확인하고 YAML 파일에 경로를 정의하세요. 다음 스크립트로 학습을 시작할 수 있습니다.
예제from ultralytics import YOLO model = YOLO("yolo26n.pt") # 사전 학습된 모델 불러오기 results = model.train(data="path/to/your_dataset.yaml", epochs=100, imgsz=640)CLI 명령을 포함한 다양한 모드의 사용 방법에 대한 자세한 내용은 사용법 섹션을 참조하세요.
Ultralytics는 다양한 애플리케이션에서 YOLO26을 사용하는 수많은 예제와 실용적인 가이드를 제공합니다. 객체 탐지, 세그멘테이션 등을 YOLO26으로 구현한 사례 연구, 상세 튜토리얼, 커뮤니티 이야기를 확인하려면 Ultralytics 블로그를 방문하세요. 구체적인 예제는 문서의 Predict 모드 페이지를 참조하세요.