콘텐츠로 건너뛰기

객체 감지 데이터 세트 개요

견고하고 정확한 객체 탐지 모델을 학습하려면 포괄적인 데이터세트가 필요합니다. 이 가이드에서는 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

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

레이블이 지정된 이미지 예시

위 이미지에 해당하는 레이블 파일에는 2명의 사람(클래스 0)과 넥타이(클래스 27):

레이블 파일 예시

Ultralytics YOLO 형식을 사용하는 경우 아래 COCO8 데이터세트 예제와 같이 학습 및 검증 이미지와 레이블을 구성하십시오.

데이터 세트 디렉터리 구조 예시

사용 예시

다음은 YOLO 형식 데이터 세트를 사용하여 모델을 훈련하는 방법입니다.

예시

from ultralytics import YOLO

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

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolo11n.pt epochs=100 imgsz=640

Ultralytics NDJSON 형식

NDJSON (Newline Delimited JSON) 형식은 Ultralytics YOLO11 모델을 위한 데이터 세트를 정의하는 대체 방법을 제공합니다. 이 형식은 각 라인이 별도의 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"
}
{
    "type": "image",
    "file": "image1.jpg",
    "url": "https://www.url.com/path/to/image1.jpg",
    "width": 640,
    "height": 480,
    "split": "train",
    "annotations": {
        "boxes": [
            [0, 0.52481, 0.37629, 0.28394, 0.41832],
            [1, 0.73526, 0.29847, 0.19275, 0.33691]
        ]
    }
}

작업별 주석 형식:

  • Detection: "annotations": {"boxes": [[class_id, x_center, y_center, width, height], ...]}
  • Segmentation: "annotations": {"segments": [[class_id, x1, y1, x2, y2, ...], ...]}
  • Pose: "annotations": {"pose": [[class_id, x1, y1, v1, x2, y2, v2, ...], ...]}
  • OBB: "annotations": {"obb": [[class_id, x_center, y_center, width, height, angle], ...]}
  • 분류: "annotations": {"classification": [class_id]}

사용 예시

YOLO11에서 NDJSON 데이터세트를 사용하려면 다음 경로를 지정하기만 하면 됩니다. .ndjson 파일:

예시

from ultralytics import YOLO

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

# Train using NDJSON dataset
results = model.train(data="path/to/dataset.ndjson", epochs=100, imgsz=640)
# Start training with NDJSON dataset
yolo detect train data=path/to/dataset.ndjson model=yolo11n.pt epochs=100 imgsz=640

NDJSON 형식의 장점

  • 단일 파일: 모든 데이터세트 정보가 하나의 파일에 포함됩니다.
  • 스트리밍: 모든 데이터를 메모리에 로드하지 않고도 대용량 데이터세트를 라인별로 처리할 수 있습니다.
  • 클라우드 통합: 클라우드 기반 학습을 위해 원격 이미지 URL을 지원합니다.
  • 확장성: 사용자 정의 메타데이터 필드를 쉽게 추가할 수 있습니다.
  • 버전 관리: 단일 파일 형식은 git 및 버전 관리 시스템과 잘 작동합니다.

지원되는 데이터 세트

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

  • Argoverse: 풍부한 주석이 포함된 도시 환경의 3D 추적 및 모션 예측 데이터가 포함된 데이터 세트입니다.
  • COCO: COCO(Common Objects in Context)는 80개의 객체 범주가 있는 대규모 객체 감지, 분할 및 캡션 데이터세트입니다.
  • LVIS: 1203개의 객체 범주를 포함하는 대규모 객체 감지, 분할 및 캡션 데이터 세트입니다.
  • COCO8: COCO train 및 COCO val의 처음 4개 이미지로 구성된 더 작은 하위 세트로, 빠른 테스트에 적합합니다.
  • COCO8-Grayscale: RGB를 흑백으로 변환하여 생성된 COCO8의 흑백 버전으로, 단일 채널 모델 평가에 유용합니다.
  • COCO8-Multispectral: RGB 파장을 보간하여 생성된 COCO8의 10채널 다중 스펙트럼 버전으로, 스펙트럼 인식 모델 평가에 유용합니다.
  • COCO128: COCO train 및 COCO val의 처음 128개 이미지로 구성된 더 작은 하위 세트로, 테스트에 적합합니다.
  • Global Wheat 2020: Global Wheat Challenge 2020을 위해 밀 이삭 이미지를 포함하는 데이터 세트입니다.
  • Objects365: 365개의 객체 범주와 60만 개 이상의 어노테이션이 달린 이미지를 포함하는 객체 감지를 위한 고품질의 대규모 데이터 세트입니다.
  • OpenImagesV7: Google에서 제공하는 170만 개의 훈련 이미지와 42,000개의 검증 이미지를 포함하는 포괄적인 데이터 세트입니다.
  • SKU-110K: 11,000개 이상의 이미지와 170만 개의 바운딩 박스가 있는 소매 환경에서 조밀한 객체 감지를 특징으로 하는 데이터 세트입니다.
  • HomeObjects-3K New 🚀: 침대, 의자, TV 등을 포함한 실내 가정 용품 데이터 세트—스마트 홈 자동화, 로보틱스, 증강 현실 및 실내 레이아웃 분석 애플리케이션에 이상적입니다.
  • VisDrone: 10,000개 이상의 이미지와 비디오 시퀀스를 포함하여 드론 캡처 이미지에서 객체 감지 및 다중 객체 추적 데이터를 포함하는 데이터 세트입니다.
  • VOC: 20개의 객체 클래스와 11,000개 이상의 이미지를 포함하는 객체 감지 및 분할을 위한 Pascal Visual Object Classes (VOC) 데이터 세트입니다.
  • xView: 60개의 객체 범주와 100만 개 이상의 어노테이션이 달린 객체를 포함하는 오버헤드 이미지의 객체 감지를 위한 데이터 세트입니다.
  • Roboflow 100: 포괄적인 모델 평가를 위해 7개의 이미지 도메인에 걸쳐 있는 100개의 데이터세트로 구성된 다양한 객체 탐지 벤치마크입니다.
  • Brain-tumor: 뇌종양 감지를 위한 데이터 세트로, 종양의 존재, 위치 및 특성에 대한 세부 정보가 포함된 MRI 또는 CT 스캔 이미지를 포함합니다.
  • African-wildlife: 버팔로, 코끼리, 코뿔소 및 얼룩말을 포함한 아프리카 야생 동물의 이미지를 특징으로 하는 데이터 세트입니다.
  • Signature: 문서 확인 및 사기 탐지 연구를 지원하는 어노테이션이 달린 서명이 있는 다양한 문서 이미지를 특징으로 하는 데이터 세트입니다.
  • Medical-pills: 제약 품질 보증, 알약 분류 및 규정 준수와 같은 응용 분야에 대해 주석이 달린 의료용 알약 이미지를 제공하는 데이터 세트입니다.

자체 데이터 세트 추가

자체 데이터세트가 있고 Ultralytics YOLO 형식을 사용하여 탐지 모델을 학습하는 데 사용하려면 위에 지정된 "Ultralytics YOLO 형식"에 따라야 합니다. 어노테이션을 필요한 형식으로 변환하고 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 모델과 호환되도록 합니다.

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

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 데이터 세트 예제를 참조하십시오..

COCO 데이터세트를 YOLO 형식으로 어떻게 변환합니까?

Ultralytics 변환 도구를 사용하여 COCO 데이터세트를 YOLO 형식으로 변환할 수 있습니다. 다음은 간단한 방법입니다.

from ultralytics.data.converter import convert_coco

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

이 코드는 COCO 주석을 YOLO 형식으로 변환하여 Ultralytics YOLO 모델과의 원활한 통합을 가능하게 합니다. 자세한 내용은 레이블 형식 포팅 또는 변환 섹션을 참조하십시오.

Ultralytics YOLO에서 객체 탐지를 위해 지원하는 데이터세트는 무엇입니까?

Ultralytics YOLO는 다음을 포함한 광범위한 데이터 세트를 지원합니다.

각 데이터 세트 페이지는 효율적인 YOLO11 학습을 위해 맞춤화된 구조 및 사용법에 대한 자세한 정보를 제공합니다. 지원되는 데이터 세트 섹션에서 전체 목록을 살펴보십시오.

내 데이터세트를 사용하여 YOLO11 모델 학습을 어떻게 시작합니까?

YOLO11 모델 학습을 시작하려면 데이터 세트가 올바르게 포맷되었는지 확인하고 YAML 파일에 경로가 정의되어 있는지 확인하십시오. 다음 스크립트를 사용하여 학습을 시작하십시오.

예시

from ultralytics import YOLO

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

CLI 명령을 포함한 다양한 모드 활용에 대한 자세한 내용은 사용법 섹션을 참조하십시오.

Ultralytics YOLO를 사용한 객체 탐지의 실제 예제는 어디에서 찾을 수 있습니까?

Ultralytics는 다양한 애플리케이션에서 YOLO11을 사용하는 데 대한 수많은 예제와 실용적인 가이드를 제공합니다. 포괄적인 개요는 Ultralytics 블로그를 방문하여 YOLO11을 사용한 객체 감지, 분할 등에 대한 사례 연구, 자세한 튜토리얼 및 커뮤니티 스토리를 찾을 수 있습니다. 특정 예제는 설명서의 사용법 섹션을 확인하십시오.



📅 1년 전에 생성됨 ✏️ 10일 전에 업데이트됨

댓글