이미지 분류 데이터셋 개요
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/ (선택 사항)
| |-- 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는 자동 다운로드를 지원하는 다음 데이터셋을 제공합니다:
- Caltech 101: 이미지 분류 작업을 위한 101개 객체 카테고리의 이미지를 포함하는 데이터셋입니다.
- Caltech 256: 256개 객체 카테고리와 더 어려운 이미지를 포함하는 Caltech 101의 확장 버전입니다.
- CIFAR-10: 10개 클래스에 32x32 컬러 이미지 6만 장이 포함된 데이터셋으로, 클래스당 6,000장입니다.
- CIFAR-100: 100개 객체 카테고리와 클래스당 600장의 이미지를 포함하는 CIFAR-10의 확장 버전입니다.
- Fashion-MNIST: 이미지 분류 작업을 위한 10개 패션 카테고리의 그레이스케일 이미지 70,000장으로 구성된 데이터셋입니다.
- ImageNet: 1,400만 장 이상의 이미지와 20,000개 카테고리를 포함하는 객체 검출 및 이미지 분류용 대규모 데이터셋입니다.
- ImageNet-10: 더 빠른 실험과 테스트를 위해 10개 카테고리로 구성된 ImageNet의 소규모 서브셋입니다.
- Imagenette: 빠른 학습과 테스트를 위해 쉽게 구분 가능한 10개 클래스를 포함하는 ImageNet의 소규모 서브셋입니다.
- Imagewoof: 이미지 분류 작업을 위한 10개 개 품종 카테고리를 포함하는 보다 어려운 ImageNet 서브셋입니다.
- MNIST: 이미지 분류 작업을 위한 손글씨 숫자의 그레이스케일 이미지 70,000장으로 구성된 데이터셋입니다.
- MNIST160: MNIST 데이터셋에서 각 MNIST 카테고리의 첫 8장 이미지로 구성되며, 총 160장의 이미지를 포함합니다.
자체 데이터셋 추가하기
자체 데이터셋이 있고 Ultralytics YOLO를 사용하여 분류 모델을 학습하려면, 위의 "데이터셋 구조"에 명시된 형식을 따르는지 확인한 후 학습 스크립트를 초기화할 때 data 인수를 데이터셋 디렉토리로 지정하십시오.
자주 묻는 질문
YOLO 분류 작업을 위한 데이터셋 구조는 어떻게 설정합니까?
Ultralytics YOLO 분류 작업을 위한 데이터셋 구조를 설정하려면 특정 분할 디렉토리 형식을 따라야 합니다. 데이터셋을 train, test, 그리고 선택적으로 val에 대한 별도의 디렉토리로 구성하십시오. 각 디렉토리에는 각 클래스의 이름으로 된 하위 디렉토리가 있어야 하며, 해당 이미지들이 그 안에 포함되어야 합니다. 이를 통해 원활한 학습 및 평가 프로세스가 가능합니다. 예시로 CIFAR-10 데이터셋 형식을 참고하십시오:
cifar-10-/
|-- train/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- test/
| |-- airplane/
| |-- automobile/
| |-- bird/
| ...
|-- val/ (선택 사항)
| |-- 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
# 모델 로드
model = YOLO("yolo26n-cls.pt") # 사전 학습된 모델 로드 (학습에 권장)
# 모델 학습
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
# 모델 로드
model = YOLO("yolo26n-cls.pt") # 사전 학습된 모델 로드
# 모델 학습
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)이 예시들은 두 가지 접근 방법을 사용하여 YOLO 모델을 학습하는 간단한 과정을 보여줍니다. 자세한 내용은 사용법 섹션과 분류 작업의 Train 페이지를 참조하십시오.