画像分類データセットの概要#
YOLO分類タスク向けデータセットの構造#
Ultralytics の YOLO 分類タスクでは、データセットを root ディレクトリの下にある特定の分割ディレクトリ構造に整理する必要があります。この構造には、train ディレクトリと val ディレクトリが含まれ(valid および validation も受け付けられます)、オプションで test ディレクトリが含まれます。検証用ディレクトリが存在しない場合は、代わりに test ディレクトリが検証に使用されます。
これらの各ディレクトリには、データセット内の各クラスに対応するサブディレクトリを1つずつ配置します。サブディレクトリには対応するクラス名を付け、そのクラスのすべての画像を格納します。各画像ファイルには一意の名前を付け、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クラス、クラスあたり6千枚、合計6万枚の32x32カラー画像からなるデータセットです。
- CIFAR-100:物体カテゴリを100種類に拡張し、クラスあたり600枚の画像を含むCIFAR-10の拡張版です。
- Fashion-MNIST:画像分類タスク向けに、10種類のファッションカテゴリのグレースケール画像7万枚からなるデータセットです。
- ImageNet:1,400万枚を超える画像と20,000種類のカテゴリを含む、物体検出および画像分類用の大規模データセットです。
- ImageNet-10:実験とテストを高速化できる、10カテゴリのImageNet小規模サブセットです。
- Imagenette:すばやく識別できる10クラスを含むImageNetの小規模なサブセットで、より迅速な学習とテストに適しています。
- Imagewoof:画像分類タスク向けに、10種類の犬種カテゴリを含む、より難易度の高いImageNetサブセットです。
- MNIST:画像分類タスク向けに、手書き数字のグレースケール画像7万枚からなるデータセットです。
- MNIST160:MNISTの学習分割とテスト分割の両方から、各数字(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モデルを簡単にトレーニングできることを示しています。詳細については、使用方法セクションと、分類タスク向けのトレーニングページをご覧ください。