画像分類データセットの概要#
YOLO分類タスクのデータセット構造#
Ultralytics YOLO の分類タスクでは、適切なトレーニング、テスト、およびオプションの検証プロセスを円滑に進めるために、dataset は root ディレクトリの下に特定の分割ディレクトリ構造で配置されている必要があります。この構造には、トレーニング(train)および検証(val)フェーズ用の個別のディレクトリが含まれ、オプションでテスト用のディレクトリ(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/
| |-- airplane/
| | |-- 10_airplane.png
| | |-- 11_airplane.png
| | |-- ...
| |
| |-- automobile/
| | |-- 100_automobile.png
| | |-- 101_automobile.png
| | |-- ...
| |
| |-- bird/
| | |-- 1000_bird.png
| | |-- 1001_bird.png
| | |-- ...
| |
| |-- ...
|
|-- val/ (optional)
| |-- 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は、自動ダウンロードに対応した以下のデータセットをサポートしています。
- Caltech 101:画像分類タスク用の 101 のオブジェクトカテゴリの画像を含むデータセット。
- Caltech 256: 256のオブジェクトカテゴリとより難易度の高い画像を備えた、Caltech 101の拡張バージョン。
- CIFAR-10: 10クラスの6万枚の32x32カラー画像のデータセットであり、クラスあたり6,000枚の画像が含まれています。
- 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 を使用して分類モデルのトレーニングを行いたい場合は、上記の「Dataset Structure」で指定されたフォーマットに従っていることを確認し、トレーニングスクリプトの初期化時に data 引数をデータセットディレクトリに指定してください。
よくある質問 (FAQ)#
Ultralytics YOLO 分類タスク用にデータセットを構造化するには、特定の分割ディレクトリ形式に従う必要があります。データセットを
train、test、およびオプションでval用の個別のディレクトリに整理します。これらの各ディレクトリには、各クラスにちなんで名付けられたサブディレクトリが含まれ、その中に対応する画像が配置されます。これにより、スムーズなトレーニングと評価プロセスが促進されます。例として、CIFAR-10 データセットのフォーマットを検討してください。cifar-10-/ |-- train/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- test/ | |-- airplane/ | |-- automobile/ | |-- bird/ | ... |-- val/ (optional) | |-- airplane/ | |-- automobile/ | |-- bird/ | ...詳細については、Dataset Structure for YOLO Classification Tasks セクションをご覧ください。
Ultralytics YOLO は、Caltech 101、Caltech 256、CIFAR-10、CIFAR-100、Fashion-MNIST、ImageNet、ImageNet-10、Imagenette、Imagewoof、MNIST を含む、画像分類用のいくつかのデータセットの自動ダウンロードをサポートしています。これらのデータセットは、YOLO で簡単に使用できるように構造化されています。各データセットのページには、その構造と用途に関する詳細が記載されています。
Ultralytics YOLO で独自のデータセットを使用するには、分類タスクに必要な指定されたディレクトリ形式に従っていることを確認してください。
train、test、およびオプションでvalの各ディレクトリと、それぞれの画像を含む各クラスのサブディレクトリを用意します。データセットが正しく構造化されたら、トレーニングスクリプトの初期化時に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)詳細については、Adding your own dataset セクションをご覧ください。
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 モデルをトレーニングするプロセスが簡単であることを示しています。詳細については、分類タスクの Usage セクションおよび Train ページをご覧ください。