コンテンツへスキップ

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

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("yolov8n-cls.pt")  # load a pretrained model (recommended for training)

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

対応データセット

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

  • Caltech 101: 画像分類タスクのための101のオブジェクトカテゴリの画像を含むデータセット。
  • カルテック256Caltech101の拡張版で、256のオブジェクトカテゴリーと、より難易度の高い画像が用意されている。
  • CIFAR-10: 32x32のカラー画像60K枚を10クラスに分類したデータセット。
  • CIFAR-100:CIFAR-10の拡張版で、1クラスあたり100のオブジェクトカテゴリと600の画像を持つ。
  • Fashion-MNIST:画像分類タスクのための、10のファッションカテゴリの70,000グレースケール画像からなるデータセット。
  • ImageNet:1,400万以上の画像と20,000以上のカテゴリを持つ、物体検出と画像分類のための大規模なデータセット。
  • ImageNet-10:実験とテストをより迅速に行うための、ImageNetの10カテゴリより小さいサブセット。
  • Imagenette:ImageNetの小さなサブセットで、10個の区別しやすいクラスが含まれ、訓練とテストを迅速に行うことができる。
  • Imagewoof:画像分類タスクのための10犬種カテゴリを含む、ImageNetのより困難なサブセット。
  • MNIST:手書き数字のグレースケール画像70,000枚からなる画像分類用データセット。

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

独自のデータセットを持っていて、それをUltralytics を使って分類モデルのトレーニングに使いたい場合は、そのデータセットが上記の「データセットのフォーマット」で指定されたフォーマットに従っていることを確認してから、 を指定してください。 data 引数でデータセット・ディレクトリを指定する。

よくあるご質問

YOLO 、どのようにデータセットを構成すればよいのだろうか?

Ultralytics YOLO 分類タスクのためにデータセットを構造化するには、特定の分割ディレクトリ形式に従う必要がある。データセットを以下のように別々のディレクトリに編成する。 train, testそしてオプションで val.これらの各ディレクトリには、各クラスにちなんだ名前のサブディレクトリがあり、その中に対応する画像が含まれている必要がある。こうすることで、学習と評価をスムーズに行うことができる。例として、CIFAR-10データセットのフォーマットを考えてみよう:

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

詳細については、 YOLO 分類タスクのデータセット構造を参照。

Ultralytics YOLO 、どのようなデータセットが画像分類に対応していますか?

Ultralytics YOLO を含む、画像分類のための複数のデータセットの自動ダウンロードをサポートしています:

これらのデータセットは、YOLO で使いやすいように構成されている。各データセットのページには、その構造や用途についての詳細が掲載されている。

YOLO 画像分類用に独自のデータセットを追加するには?

独自のデータセットをUltralytics YOLO で使用するには、分類タスクに必要な指定されたディレクトリ形式に従っていることを確認する。 train, testそしてオプションで val ディレクトリと、それぞれの画像を含む各クラスのサブディレクトリを作成します。データセットが正しく構造化されたら data 引数でデータセットのルート・ディレクトリを指定し、トレーニング・スクリプトを初期化します。以下はPython の例です:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-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 には、画像分類のためのいくつかの利点がある:

  • 事前学習済みモデル:のような事前学習済みモデルをロードする。 yolov8n-cls.pt トレーニング・プロセスを飛躍させるために。
  • 使いやすさ:トレーニングと評価のためのシンプルなAPIとCLI 。
  • 高性能:リアルタイムのアプリケーションに最適な、最先端の精度とスピード。
  • 複数のデータセットをサポート:CIFAR-10、ImageNetなどの様々な一般的データセットとのシームレスな統合。
  • コミュニティとサポート:トラブルシューティングや改善のための広範なドキュメントと活発なコミュニティにアクセスできます。

さらなる洞察と実際の応用については、以下をご覧ください。 Ultralytics YOLO.

Ultralytics YOLO を使ってモデルをトレーニングするには?

Ultralytics YOLO を使ったモデルのトレーニングは、Python とCLI の両方で簡単に行うことができる:

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load a pretrained model

# Train the model
results = model.train(data="path/to/dataset", epochs=100, imgsz=640)
# Start training from a pretrained *.pt model
yolo detect train data=path/to/data model=yolov8n-cls.pt epochs=100 imgsz=640

これらの例は、どちらのアプローチを使っても、YOLO モデルをトレーニングする簡単なプロセスを示している。詳細については、使用法のセクションをご覧ください。



作成日:2023-11-12 更新日:2024-07-04
作成者:glenn-jocher(7),stormsson(1),GreatV(1)

コメント