You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

12 KiB

comments description keywords
true YOLOv8 分類モデルについての画像分類。事前トレーニングされたモデルのリストとモデルのトレーニング、検証、予測、エクスポート方法の詳細情報を学びます。 Ultralytics, YOLOv8, 画像分類, 事前トレーニングされたモデル, YOLOv8n-cls, トレーニング, 検証, 予測, モデルエクスポート

画像分類

画像分類の例

画像分類は3つのタスクの中で最も単純で、1枚の画像をあらかじめ定義されたクラスのセットに分類します。

画像分類器の出力は単一のクラスラベルと信頼度スコアです。画像がどのクラスに属しているかのみを知る必要があり、クラスのオブジェクトがどこにあるか、その正確な形状は必要としない場合に画像分類が役立ちます。

!!! tip "ヒント"

YOLOv8 分類モデルは `-cls` 接尾辞を使用します。例: `yolov8n-cls.pt` これらは [ImageNet](https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/datasets/ImageNet.yaml) で事前にトレーニングされています。

モデル

ここに事前トレーニングされた YOLOv8 分類モデルが表示されています。検出、セグメンテーション、ポーズモデルは COCO データセットで事前にトレーニングされていますが、分類モデルは ImageNet で事前にトレーニングされています。

モデル は初回使用時に Ultralytics の最新 リリース から自動的にダウンロードされます。

モデル サイズ
(ピクセル)
正確性
トップ1
正確性
トップ5
スピード
CPU ONNX
(ms)
スピード
A100 TensorRT
(ms)
パラメータ
(M)
FLOPs
(B) at 640
YOLOv8n-cls 224 66.6 87.0 12.9 0.31 2.7 4.3
YOLOv8s-cls 224 72.3 91.1 23.4 0.35 6.4 13.5
YOLOv8m-cls 224 76.4 93.2 85.4 0.62 17.0 42.7
YOLOv8l-cls 224 78.0 94.1 163.0 0.87 37.5 99.7
YOLOv8x-cls 224 78.4 94.3 232.0 1.01 57.4 154.8
  • 正確性 の値は ImageNet データセットの検証セットでのモデルの正確性です。
    再現するには yolo val classify data=path/to/ImageNet device=0
  • スピードAmazon EC2 P4d インスタンスを使用して ImageNet 検証画像を平均化したものです。
    再現するには yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

トレーニング

画像サイズ64で100エポックにわたってMNIST160データセットにYOLOv8n-clsをトレーニングします。利用可能な引数の完全なリストについては、設定 ページを参照してください。

!!! example ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # モデルをロードする
    model = YOLO('yolov8n-cls.yaml')  # YAMLから新しいモデルをビルド
    model = YOLO('yolov8n-cls.pt')  # 事前にトレーニングされたモデルをロード(トレーニングに推奨)
    model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt')  # YAMLからビルドしてウェイトを転送

    # モデルをトレーニングする
    results = model.train(data='mnist160', epochs=100, imgsz=64)
    ```

=== "CLI"

    ```bash
    # YAMLから新しいモデルをビルドし、ゼロからトレーニングを開始
    yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

    # 事前にトレーニングされた *.pt モデルからトレーニングを開始
    yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

    # YAMLから新しいモデルをビルドし、事前トレーニングされたウェイトを転送してトレーニングを開始
    yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
    ```

データセットフォーマット

YOLO分類データセットのフォーマットの詳細は データセットガイド にあります。

検証

MNIST160データセットでトレーニング済みのYOLOv8n-clsモデルの正確性を検証します。引数は必要ありません。model はトレーニング時の data および引数をモデル属性として保持しています。

!!! example ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # モデルをロードする
    model = YOLO('yolov8n-cls.pt')  # 公式モデルをロード
    model = YOLO('path/to/best.pt')  # カスタムモデルをロード

    # モデルを検証する
    metrics = model.val()  # 引数不要、データセットと設定は記憶されている
    metrics.top1   # トップ1の正確性
    metrics.top5   # トップ5の正確性
    ```
=== "CLI"

    ```bash
    yolo classify val model=yolov8n-cls.pt  # 公式モデルを検証
    yolo classify val model=path/to/best.pt  # カスタムモデルを検証
    ```

予測

トレーニング済みのYOLOv8n-clsモデルを使用して、画像に対する予測を実行します。

!!! example ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # モデルをロードする
    model = YOLO('yolov8n-cls.pt')  # 公式モデルをロード
    model = YOLO('path/to/best.pt')  # カスタムモデルをロード

    # モデルで予測する
    results = model('https://ultralytics.com/images/bus.jpg')  # 画像で予測
    ```
=== "CLI"

    ```bash
    yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # 公式モデルで予測
    yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # カスタムモデルで予測
    ```

predict モードの完全な詳細は 予測 ページを参照してください。

エクスポート

YOLOv8n-clsモデルをONNX、CoreMLなどの異なる形式にエクスポートします。

!!! example ""

=== "Python"

    ```python
    from ultralytics import YOLO

    # モデルをロードする
    model = YOLO('yolov8n-cls.pt')  # 公式モデルをロード
    model = YOLO('path/to/best.pt')  # カスタムトレーニングされたモデルをロード

    # モデルをエクスポートする
    model.export(format='onnx')
    ```
=== "CLI"

    ```bash
    yolo export model=yolov8n-cls.pt format=onnx  # 公式モデルをエクスポート
    yolo export model=path/to/best.pt format=onnx  # カスタムトレーニングされたモデルをエクスポート
    ```

利用可能な YOLOv8-cls エクスポート形式は以下の表にあります。エクスポートされたモデルで直接予測または検証が可能です、例: yolo predict model=yolov8n-cls.onnx。エクスポート完了後、モデルの使用例が表示されます。

形式 format 引数 モデル メタデータ 引数
PyTorch - yolov8n-cls.pt -
TorchScript torchscript yolov8n-cls.torchscript imgsz, optimize
ONNX onnx yolov8n-cls.onnx imgsz, half, dynamic, simplify, opset
OpenVINO openvino yolov8n-cls_openvino_model/ imgsz, half
TensorRT engine yolov8n-cls.engine imgsz, half, dynamic, simplify, workspace
CoreML coreml yolov8n-cls.mlpackage imgsz, half, int8, nms
TF SavedModel saved_model yolov8n-cls_saved_model/ imgsz, keras
TF GraphDef pb yolov8n-cls.pb imgsz
TF Lite tflite yolov8n-cls.tflite imgsz, half, int8
TF Edge TPU edgetpu yolov8n-cls_edgetpu.tflite imgsz
TF.js tfjs yolov8n-cls_web_model/ imgsz
PaddlePaddle paddle yolov8n-cls_paddle_model/ imgsz
ncnn ncnn yolov8n-cls_ncnn_model/ imgsz, half

export の詳細は エクスポート ページを参照してください。