Ultralytics YOLO27:
Get Started

이미지 분류 데이터셋 개요#

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

Ultralytics YOLO 분류 작업에서는 root 디렉터리 아래에 데이터셋을 특정한 분할 디렉터리 구조로 구성해야 합니다. 이 구조에는 train 디렉터리와 val 디렉터리(valid 및 validation도 허용됨)가 포함되며, test 디렉터리는 선택 사항입니다. 검증 디렉터리가 없으면 test 디렉터리를 대신 검증에 사용합니다. 루트에 train 디렉터리가 전혀 없지만 클래스별 폴더가 하나씩 있는 경우, Ultralytics는 이미지를 80/20 비율로 자동 분할하여 <root>_split 디렉터리를 새로 만들고 그 안에 train 및 val 하위 디렉터리를 생성합니다.

각 디렉터리에는 데이터셋의 각 클래스에 해당하는 하위 디렉터리가 하나씩 있어야 합니다. 하위 디렉터리의 이름은 해당 클래스에 따라 지정하며, 해당 클래스의 모든 이미지를 포함합니다. 각 이미지 파일의 이름이 고유하고 JPEG 또는 PNG와 같은 일반적인 형식으로 저장되어 있는지 확인하세요.

폴더 구조 예시#

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

cifar10/
|
|-- train/
|   |-- airplane/
|   |   |-- 10008_airplane.png
|   |   |-- 10009_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 1000_automobile.png
|   |   |-- 1001_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 10014_bird.png
|   |   |-- 10015_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- test/ (optional)
|   |-- airplane/
|   |   |-- 10_airplane.png
|   |   |-- 11_airplane.png
|   |   |-- ...
|   |
|   |-- automobile/
|   |   |-- 100_automobile.png
|   |   |-- 101_automobile.png
|   |   |-- ...
|   |
|   |-- bird/
|   |   |-- 1000_bird.png
|   |   |-- 1001_bird.png
|   |   |-- ...
|   |
|   |-- ...
|
|-- val/
|   |-- 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

# 모델 로드
model = YOLO("yolo26n-cls.pt")  # 사전 학습된 모델을 불러옵니다(학습에 권장).

# 모델 학습
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
팁

대부분의 기본 제공 데이터셋 이름(예: cifar10, imagenette 또는 mnist160)은 처음 참조할 때 데이터를 자동으로 다운로드하고 캐시합니다. 직접 선별한 사용자 지정 데이터셋이 있는 경우에만 data을 폴더 경로로 지정하세요.

지원되는 데이터셋#

Ultralytics는 다음 데이터셋을 자동으로 다운로드하도록 지원합니다. 이 데이터셋 대부분은 Ultralytics Platform에도 호스팅되어 있어 이미지와 어노테이션을 살펴보고, 데이터셋 통계를 확인하고, 클라우드 학습을 위해 데이터셋을 복제할 수 있습니다.

  • Caltech 101: 이미지 분류 작업용 객체 범주 101개의 이미지가 포함된 데이터셋입니다.
  • Caltech 256: 객체 범주 256개와 더 까다로운 이미지를 포함하는 Caltech 101의 확장 버전입니다.
  • CIFAR-10: 10개 클래스의 32x32 컬러 이미지 6만 개로 구성되며, 클래스마다 이미지 6천 개를 포함하는 데이터셋입니다.
  • CIFAR-100: 객체 범주 100개와 클래스당 이미지 600개를 포함하는 CIFAR-10의 확장 버전입니다.
  • Fashion-MNIST: 이미지 분류 작업을 위해 패션 범주 10개의 그레이스케일 이미지 7만 장으로 구성된 데이터셋입니다.
  • ImageNet: 클래스 1,000개, 학습 이미지 128만 개, 검증 이미지 50,000개로 구성된 ImageNet-1k (ILSVRC-2012) 이미지 분류 벤치마크입니다.
  • ImageNet-10: 더 빠른 실험과 테스트를 위해 범주 10개로 구성한 ImageNet의 소규모 하위 집합입니다.
  • Imagenette: 빠른 학습과 테스트를 위해 쉽게 구분할 수 있는 클래스 10개를 포함한 ImageNet의 소규모 하위 집합입니다.
  • Imagewoof: 이미지 분류 작업을 위해 개 품종 범주 10개를 포함하는 더 까다로운 ImageNet 하위 집합입니다.
  • MNIST: 이미지 분류 작업을 위한 손글씨 숫자 그레이스케일 이미지 7만 장으로 구성된 데이터셋입니다.
  • MNIST160: MNIST 학습 및 테스트 분할에서 숫자(0~9)마다 처음 8개 이미지를 가져온 데이터셋으로, 총 160개 이미지로 구성됩니다.

사용자 데이터셋 추가#

자체 데이터셋을 사용해 Ultralytics YOLO 분류 모델을 학습하려면 먼저 앞의 "데이터셋 구조"에 지정된 형식을 따르는지 확인한 다음, 학습 스크립트를 초기화할 때 data 인수가 데이터셋 디렉터리를 가리키도록 설정하세요.

자주 묻는 질문#

  • Ultralytics YOLO 분류 작업용 데이터셋을 구성하려면 특정한 분할 디렉터리 형식을 따라야 합니다. 데이터셋을 train 및 val 디렉터리로 나누고, 필요한 경우 test 디렉터리도 추가하세요. 각 디렉터리에는 클래스별 이름을 가진 하위 디렉터리가 있어야 하며, 해당 클래스의 이미지가 그 안에 있어야 합니다. 이렇게 구성하면 원활한 학습 및 평가가 가능합니다. 예를 들어 CIFAR-10 데이터셋 형식을 살펴보세요.

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

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

  • Ultralytics YOLO는 이미지 분류를 위해 Caltech 101, Caltech 256, CIFAR-10, CIFAR-100, Fashion-MNIST, ImageNet, ImageNet-10, Imagenette, Imagewoof, MNIST 등 여러 데이터셋의 자동 다운로드를 지원합니다. 이러한 데이터셋은 YOLO에서 쉽게 사용할 수 있도록 구성되어 있습니다. 각 데이터셋 페이지에서 구조와 애플리케이션에 관한 자세한 내용을 확인할 수 있습니다.

  • Ultralytics YOLO에서 자체 데이터셋을 사용하려면 분류 작업에 필요한 지정된 디렉터리 형식을 따르는지 확인하세요. 별도의 train 및 val 디렉터리(선택적으로 test 포함)와 각 클래스의 해당 이미지가 들어 있는 하위 디렉터리가 필요합니다. 데이터셋을 올바르게 구성한 다음, 학습 스크립트를 초기화할 때 data 인수가 데이터셋의 루트 디렉터리를 가리키도록 설정하세요. 다음은 Python 예시입니다.

    from ultralytics import YOLO
    
    # 모델 로드
    model = YOLO("yolo26n-cls.pt")  # 사전 학습된 모델을 불러옵니다(학습에 권장).
    
    # 모델 학습
    results = model.train(data="path/to/your/dataset", epochs=100, imgsz=640)

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

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

    • 사전 학습 모델: yolo26n-cls.pt과 같은 사전 학습 모델을 불러와 학습을 빠르게 시작할 수 있습니다.
    • 사용 편의성: 학습 및 평가를 위한 간단한 API 및 CLI 명령을 제공합니다.
    • 높은 성능: 실시간 애플리케이션에 적합한 최첨단 정확도와 속도를 제공합니다.
    • 다양한 데이터셋 지원: CIFAR-10, ImageNet 등 널리 사용되는 다양한 데이터셋과 원활하게 통합됩니다.
    • 커뮤니티 및 지원: 문제 해결과 개선을 위한 광범위한 문서와 활발한 커뮤니티를 이용할 수 있습니다.

    추가 정보와 실제 애플리케이션은 Ultralytics YOLO에서 살펴볼 수 있습니다.

  • Ultralytics YOLO를 사용하면 Python과 CLI 모두에서 모델을 쉽게 학습할 수 있습니다. 다음은 예시입니다.

    예제
    from ultralytics import YOLO
    
    # 모델 로드
    model = YOLO("yolo26n-cls.pt")  # 사전 학습 모델 불러오기
    
    # 모델 학습
    results = model.train(data="path/to/dataset", epochs=100, imgsz=640)

    이 예시는 두 가지 방식 중 하나를 사용해 YOLO 모델을 간편하게 학습하는 과정을 보여줍니다. 자세한 내용은 사용법 섹션과 분류 작업용 학습 페이지를 참조하세요.

댓글