画像分類データセットの概要

YOLO分類タスクのデータセット構造

Ultralytics YOLO分類タスクでは、適切な学習、テスト、およびオプションの検証プロセスを促進するために、rootディレクトリ配下に特定の分割ディレクトリ構造でデータセットを構成する必要があります。この構造には、学習(train)フェーズとテスト(test)フェーズ用の個別のディレクトリが含まれ、検証(val)用のディレクトリもオプションで用意できます。

これらの各ディレクトリには、データセット内のクラスごとに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)
ヒント

ほとんどの組み込みデータセット名(例:cifar10imagenette、またはmnist160)は、最初に対象を参照した際に自動的にダウンロードされ、データがキャッシュされます。カスタムデータセットを構築した場合にのみ、dataをフォルダパスに向けてください。

サポートされているデータセット

Ultralyticsは、以下のデータセットの自動ダウンロードをサポートしています。

  • Caltech 101: 画像分類タスク向けの101個のオブジェクトカテゴリの画像を含むデータセット。
  • Caltech 256: Caltech 101の拡張版で、256個のオブジェクトカテゴリとより難易度の高い画像が含まれています。
  • CIFAR-10: 10クラス、各クラス6,000枚、計6万枚の32x32カラー画像データセット。
  • CIFAR-100: CIFAR-10の拡張版で、100個のオブジェクトカテゴリと各クラス600枚の画像が含まれています。
  • 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データセットの各MNISTカテゴリの最初の8枚の画像。合計160枚の画像で構成されるデータセット。

独自のデータセットを追加する

独自のデータセットを持ち、それをUltralytics YOLOでの分類モデルの学習に使用したい場合は、上記の「データセット構造」で指定された形式に従っていることを確認し、学習スクリプトの初期化時にdata引数をデータセットディレクトリに向けてください。

FAQ

YOLO分類タスク用にデータセットを構成するにはどうすればよいですか?

Ultralytics YOLO分類タスク用にデータセットを構成するには、特定の分割ディレクトリ形式に従う必要があります。データセットをtraintest、およびオプションのvalディレクトリに分けて整理してください。これらの各ディレクトリには、各クラスの名前が付いたサブディレクトリを含め、対応する画像をその中に配置します。これにより、学習と評価のプロセスが円滑になります。例として、CIFAR-10データセットの形式を検討してください:

cifar-10-/
|-- train/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- test/
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...
|-- val/ (optional)
|   |-- airplane/
|   |-- automobile/
|   |-- bird/
|   ...

詳細については、YOLO分類タスクのデータセット構造セクションを参照してください。

Ultralytics YOLOで画像分類用にサポートされているデータセットは何ですか?

Ultralytics YOLOは、画像分類用にCaltech 101Caltech 256CIFAR-10CIFAR-100Fashion-MNISTImageNetImageNet-10ImagenetteImagewoofMNISTを含む複数のデータセットの自動ダウンロードをサポートしています。これらのデータセットはYOLOで使いやすいように構造化されています。各データセットのページで、その構造と用途に関する詳細を確認できます。

YOLO画像分類のために独自のデータセットを追加するにはどうすればよいですか?

独自のデータセットをUltralytics YOLOで使用するには、分類タスクに必要な特定のディレクトリ形式に従うようにしてください。traintest、およびオプションで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)

詳細については、独自のデータセットを追加するセクションを参照してください。

画像分類にUltralytics YOLOを使用すべき理由は何ですか?

Ultralytics YOLOは、画像分類に対して以下のような利点を提供します:

  • 事前学習済みモデル: yolo26n-cls.ptのような事前学習済みモデルを読み込むことで、学習プロセスを迅速に開始できます。
  • 使いやすさ: 学習と評価のためのシンプルなAPIおよびCLIコマンド。
  • 高性能: リアルタイムアプリケーションに最適な、最先端の精度と速度。
  • 複数のデータセットのサポート: CIFAR-10ImageNetなど、一般的なさまざまなデータセットとのシームレスな統合。
  • コミュニティとサポート: トラブルシューティングや改善のための広範なドキュメントとアクティブなコミュニティへのアクセス。

さらなる洞察や実際のアプリケーションについては、Ultralytics YOLOをご覧ください。

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モデルを学習できる簡単なプロセスを示しています。詳細については、使用方法セクションと分類タスク用の学習ページをご覧ください。

コメント