객체 탐지 데이터셋 개요#
견고하고 정확한 object detection 모델을 학습하려면 포괄적인 데이터셋이 필요합니다. 본 가이드에서는 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 파일은 디렉토리의 하위 집합에서 학습하거나, 레이블이 지정되지 않은 이미지를 건너뛰거나, 여러 소스의 이미지를 하나의 분할(split)로 결합할 때 유용합니다.
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부터 시작해야 합니다(0으로 시작).

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

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

사용 예시#
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 데이터셋 파일 구성 요소:
- 데이터셋 레코드(첫 번째 줄): 작업 유형, 클래스 이름 및 일반 정보를 포함하는 데이터셋 메타데이터를 포함합니다.
- 이미지 레코드(이후 줄): 크기, 주석 및 파일 경로를 포함한 개별 이미지 데이터를 포함합니다.
{
"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 섹션을 확인하세요.