이미지 분류 데이터셋 개요

YOLO 분류 작업을 위한 데이터셋 구조

Ultralytics YOLO 분류 작업을 수행하려면 데이터셋을 root 디렉토리 아래의 특정 분할 디렉토리 구조로 구성해야 하며, 이는 원활한 학습, 테스트 및 선택적 검증 프로세스를 지원합니다. 이 구조에는 학습(train) 및 테스트(test) 단계를 위한 별도의 디렉토리가 포함되며, 검증(val)을 위한 선택적 디렉토리도 포함될 수 있습니다.

각 디렉토리에는 데이터셋의 클래스마다 하나의 하위 디렉토리가 포함되어야 합니다. 하위 디렉토리는 해당 클래스 이름으로 지정되며 해당 클래스의 모든 이미지를 포함합니다. 각 이미지 파일이 고유하게 이름이 지정되었는지 확인하고 JPEG 또는 PNG와 같은 공통 형식으로 저장하십시오.

폴더 구조 예시

CIFAR-10 데이터셋을 예로 들어 보겠습니다. 폴더 구조는 다음과 같습니다:

cifar-10-/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/ (optional)
|   |-- airplane/
|   |   |-- 105_airplane.png
|   |   |-- 106_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 102_automobile.png
|   |   |-- 103_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1045_bird.png
|   |   |-- 1046_bird.png
|   |   |-- ...
|   |
|   |-- ...

이러한 구조적 접근 방식은 모델이 학습 단계에서 잘 정리된 클래스로부터 효과적으로 학습하고 테스트 및 검증 단계에서 성능을 정확하게 평가할 수 있도록 보장합니다.

사용법

예시
from ultralytics import YOLO

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

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

대부분의 내장 데이터셋 이름(예: cifar10, imagenette 또는 mnist160)은 처음 참조할 때 데이터를 자동으로 다운로드하고 캐시합니다. 사용자 지정 데이터셋을 직접 구축한 경우에만 data를 해당 폴더 경로로 지정하십시오.

지원되는 데이터셋

Ultralytics는 자동 다운로드가 가능한 다음 데이터셋들을 지원합니다:

  • Caltech 101: 이미지 분류 작업을 위한 101개 객체 카테고리의 이미지를 포함하는 데이터셋입니다.
  • Caltech 256: 256개 객체 카테고리와 더 까다로운 이미지를 포함하는 Caltech 101의 확장 버전입니다.
  • CIFAR-10: 10개 클래스에 각 6,000개의 이미지가 포함된 6만 개의 32x32 컬러 이미지 데이터셋입니다.
  • CIFAR-100: 100개 객체 카테고리와 클래스당 600개의 이미지를 포함하는 CIFAR-10의 확장 버전입니다.
  • Fashion-MNIST: 이미지 분류 작업을 위한 10가지 패션 카테고리의 7만 개 흑백 이미지로 구성된 데이터셋입니다.
  • ImageNet: 1,400만 개 이상의 이미지와 2만 개의 카테고리를 포함하는 객체 탐지 및 이미지 분류를 위한 대규모 데이터셋입니다.
  • ImageNet-10: 더 빠른 실험 및 테스트를 위해 10개의 카테고리로 구성된 ImageNet의 작은 하위 집합입니다.
  • Imagenette: 더 빠른 학습 및 테스트를 위해 쉽게 구분할 수 있는 10개의 클래스가 포함된 ImageNet의 작은 하위 집합입니다.
  • Imagewoof: 이미지 분류 작업을 위해 10개의 개 품종 카테고리가 포함된 ImageNet의 더 까다로운 하위 집합입니다.
  • MNIST: 이미지 분류 작업을 위한 7만 개의 손글씨 숫자 흑백 이미지 데이터셋입니다.
  • MNIST160: MNIST 데이터셋에서 각 MNIST 카테고리의 처음 8개 이미지를 가져온 것입니다. 총 160개의 이미지가 포함되어 있습니다.

나만의 데이터셋 추가하기

자체 데이터셋을 보유하고 있고 이를 Ultralytics YOLO로 분류 모델 학습에 사용하려면, 위 "데이터셋 구조"에 명시된 형식을 따르는지 확인한 후 학습 스크립트를 초기화할 때 data 인수를 데이터셋 디렉토리로 지정하십시오.

FAQ

YOLO 분류 작업을 위해 데이터셋을 어떻게 구성합니까?

Ultralytics YOLO 분류 작업을 위해 데이터셋을 구성하려면 특정 분할 디렉토리 형식을 따라야 합니다. 데이터셋을 train, test 및 선택적으로 val을 위한 별도의 디렉토리로 구성하십시오. 각 디렉토리에는 각 클래스 이름으로 지정된 하위 디렉토리가 포함되어야 하며, 해당 이미지가 그 안에 있어야 합니다. 이는 원활한 학습 및 평가 프로세스를 촉진합니다. 예시는 CIFAR-10 데이터셋 형식을 참고하십시오:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

자세한 내용은 YOLO 분류 작업을 위한 데이터셋 구조 섹션을 참조하십시오.

Ultralytics YOLO는 이미지 분류를 위해 어떤 데이터셋을 지원합니까?

Ultralytics YOLO는 Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof, MNIST를 포함하여 이미지 분류를 위한 여러 데이터셋의 자동 다운로드를 지원합니다. 이러한 데이터셋은 YOLO에서 쉽게 사용할 수 있도록 구조화되어 있습니다. 각 데이터셋 페이지에서 구조 및 응용 분야에 대한 자세한 정보를 확인할 수 있습니다.

YOLO 이미지 분류를 위해 내 데이터셋을 어떻게 추가합니까?

자체 데이터셋을 Ultralytics YOLO와 함께 사용하려면, 분류 작업에 필요한 지정된 디렉토리 형식(각각의 클래스가 포함된 train, test 및 선택적인 val 디렉토리)을 따르는지 확인하십시오. 데이터셋이 올바르게 구조화되면, 학습 스크립트를 초기화할 때 data 인수를 데이터셋의 루트 디렉토리로 지정하십시오. 다음은 Python을 사용한 예시입니다:

from ultralytics import YOLO

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

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

자세한 내용은 내 데이터셋 추가하기 섹션에서 확인할 수 있습니다.

이미지 분류에 Ultralytics YOLO를 사용해야 하는 이유는 무엇입니까?

Ultralytics YOLO는 이미지 분류에 다음과 같은 이점을 제공합니다:

  • 사전 학습된 모델: yolo26n-cls.pt와 같은 사전 학습된 모델을 로드하여 학습 프로세스를 신속하게 시작할 수 있습니다.
  • 사용 편의성: 학습 및 평가를 위한 간단한 API 및 CLI 명령어를 제공합니다.
  • 고성능: 실시간 응용 분야에 이상적인 최첨단 정확도와 속도를 제공합니다.
  • 다양한 데이터셋 지원: CIFAR-10, ImageNet 등 인기 있는 다양한 데이터셋과의 원활한 통합을 지원합니다.
  • 커뮤니티 및 지원: 문제 해결 및 개선을 위한 광범위한 문서와 활발한 커뮤니티에 액세스할 수 있습니다.

추가적인 통찰력과 실제 응용 분야는 Ultralytics YOLO에서 살펴보십시오.

Ultralytics YOLO를 사용하여 모델을 어떻게 학습합니까?

Ultralytics YOLO를 사용한 모델 학습은 Python과 CLI 모두에서 쉽게 수행할 수 있습니다. 다음은 그 예시입니다:

예시
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-cls.pt")  # load a pretrained model

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

이 예시들은 두 가지 방법 중 하나를 사용하여 YOLO 모델을 학습시키는 간단한 과정을 보여줍니다. 자세한 정보는 사용법 섹션과 분류 작업을 위한 학습 페이지를 방문하십시오.

댓글