이미지 분류 데이터셋 개요#
YOLO 분류 작업을 위한 데이터셋 구조#
Ultralytics YOLO 분류 작업의 경우, 데이터셋은 root 디렉토리 아래에 특정 분할 디렉토리 구조로 구성되어야 합니다. 이 구조에는 train 디렉토리와 val 디렉토리가 포함되며(valid 및 validation도 허용됨), 선택적으로 test 디렉토리가 포함됩니다. 검증 디렉토리가 존재하지 않는 경우, 대신 test 디렉토리가 검증에 사용됩니다.
이러한 각 디렉터리에는 데이터셋의 각 클래스에 해당하는 하위 디렉터리가 하나씩 포함되어야 합니다. 하위 디렉터리 이름은 해당 클래스의 이름으로 지정하며, 해당 클래스의 모든 이미지가 포함됩니다. 각 이미지 파일의 이름은 고유해야 하며 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/ (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
# 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는 자동 다운로드를 지원하는 다음과 같은 데이터셋을 지원합니다. 이러한 데이터셋의 대부분은 Ultralytics 플랫폼에서도 호스팅되며, 여기에서 이미지와 주석을 찾아보고, 데이터셋 통계를 확인하고, 클라우드 학습을 위해 데이터셋을 복제할 수 있습니다.
- Caltech 101: 이미지 분류 작업을 위해 101개 객체 카테고리의 이미지가 포함된 데이터셋입니다.
- Caltech 256: 256개 객체 카테고리와 더 까다로운 이미지가 포함된 Caltech 101의 확장 버전입니다.
- CIFAR-10: 10개 클래스의 32x32 컬러 이미지 60K개로 구성되며, 클래스당 6K개의 이미지가 포함된 데이터셋입니다.
- CIFAR-100: 100개 객체 카테고리와 클래스당 600개 이미지가 포함된 CIFAR-10의 확장 버전입니다.
- Fashion-MNIST: 이미지 분류 작업을 위한 10개 패션 카테고리의 그레이스케일 이미지 70,000개로 구성된 데이터셋입니다.
- ImageNet: 1,400만 개가 넘는 이미지와 20,000개의 카테고리로 구성된 객체 탐지 및 이미지 분류용 대규모 데이터셋입니다.
- ImageNet-10: 더 빠른 실험과 테스트를 위한 ImageNet의 10개 카테고리 소규모 서브셋입니다.
- Imagenette: 빠른 학습과 테스트를 위해 쉽게 구별할 수 있는 10개 클래스로 구성된 ImageNet의 소규모 서브셋입니다.
- Imagewoof: 이미지 분류 작업을 위해 10개 견종 카테고리로 구성된 ImageNet의 더 까다로운 서브셋입니다.
- MNIST: 이미지 분류 작업을 위한 손글씨 숫자 그레이스케일 이미지 70,000개 데이터셋입니다.
- MNIST160: MNIST train 및 test 분할에서 각 숫자(0-9)의 처음 8개 이미지로 구성됩니다. 데이터셋에는 총 160개의 이미지가 포함되어 있습니다.
자체 데이터셋 추가#
고유한 데이터셋이 있고 이를 Ultralytics YOLO를 사용한 분류 모델 학습에 활용하려면, 위의 "데이터셋 구조"에 지정된 형식을 따르는지 확인한 다음 학습 스크립트를 초기화할 때 data 인수를 데이터셋 디렉터리로 지정하십시오.
FAQ#
Ultralytics YOLO 분류 작업을 위해 데이터셋을 구조화하려면 특정 분할 디렉토리 형식을 따라야 합니다.
train및val, 그리고 선택적으로test를 위한 별도의 디렉토리에 데이터셋을 구성하십시오. 이러한 각 디렉토리에는 각 클래스의 이름으로 명명된 하위 디렉토리가 포함되어야 하며, 해당 이미지들이 그 안에 들어 있어야 합니다. 이는 원활한 학습 및 평가 프로세스를 용이하게 합니다. 예시로 CIFAR-10 데이터셋 형식을 고려해보십시오.cifar-10-/ |-- 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 # 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는 이미지 분류에 다음과 같은 여러 이점을 제공합니다.
- 사전 학습된 모델:
yolo26n-cls.pt과 같은 사전 학습된 모델을 로드하여 학습 프로세스를 빠르게 시작할 수 있습니다. - 간편한 사용법: 학습 및 평가를 위한 간단한 API와 CLI 명령을 제공합니다.
- 높은 성능: 실시간 애플리케이션에 적합한 최첨단 정확도와 속도를 제공합니다.
- 다양한 데이터셋 지원: CIFAR-10, ImageNet 등 널리 사용되는 다양한 데이터셋과 원활하게 통합됩니다.
- 커뮤니티 및 지원: 문제 해결과 개선을 위한 광범위한 문서와 활발한 커뮤니티를 이용할 수 있습니다.
추가적인 인사이트와 실제 애플리케이션을 확인하려면 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 모델을 학습하는 간단한 과정을 보여 줍니다. 자세한 내용은 사용법 섹션과 분류 작업을 위한 학습 페이지를 참조하십시오.