画像分類データセットの概要#
YOLO分類タスク向けのデータセット構成#
UltralyticsのYOLO分類タスクでは、データセットをrootディレクトリ内に特定の分割ディレクトリ構成で整理する必要があります。この構成には、trainディレクトリとvalディレクトリ(validとvalidationも使用可能)が含まれ、testディレクトリは任意です。検証用ディレクトリがない場合は、代わりにtestディレクトリが検証に使用されます。ルートにtrainディレクトリがなく、クラスごとに1つのフォルダーが含まれている場合、Ultralyticsは画像を80/20に自動分割し、trainとvalのサブディレクトリを含む新しい<root>_splitディレクトリを作成します。
これらの各ディレクトリには、データセット内のクラスごとに1つのサブディレクトリを含めてください。サブディレクトリ名には該当するクラス名を使用し、そのクラスの画像をすべて格納します。各画像ファイルに一意の名前を付け、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:Caltech 101を拡張したもので、256種類の物体カテゴリと、より難易度の高い画像を含みます。
- CIFAR-10:10クラスの32x32カラー画像6万枚を含むデータセットで、各クラスに6,000枚の画像があります。
- CIFAR-100:CIFAR-10を拡張したもので、100種類の物体カテゴリがあり、各クラスに600枚の画像を含みます。
- Fashion-MNIST:画像分類タスク向けに、10種類のファッションカテゴリのグレースケール画像70,000枚を含むデータセットです。
- ImageNet: ImageNet-1k(ILSVRC-2012)の画像分類ベンチマークで、1,000クラス、トレーニング画像128万枚、検証画像50,000枚を収録しています。
- ImageNet-10:実験やテストを高速化するための、10カテゴリからなるImageNetの小規模なサブセットです。
- Imagenette:トレーニングとテストを迅速に行えるよう、容易に見分けられる10クラスを含むImageNetの小規模なサブセットです。
- Imagewoof:画像分類タスク向けに、10種類の犬種カテゴリを含む、より難易度の高いImageNetサブセットです。
- MNIST:画像分類タスク向けに、手書き数字のグレースケール画像70,000枚を含むデータセットです。
- 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モデルを簡単にトレーニングできることを示しています。詳しくは、使用方法セクションと、分類タスク向けのトレーニングページをご覧ください。