コンテンツへスキップ

画像分類

画像分類の例

画像分類は3つのタスクの中で最も単純なもので、画像全体をあらかじめ定義されたクラスのいずれかに分類する。

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



見るんだ: Ultralytics YOLO タスクの探索:Ultralytics HUBを使用した画像分類

チップ

YOLOv8 分類モデルは -cls サフィックス、すなわち yolov8n-cls.pt で事前に訓練されている。 イメージネット.

モデル

YOLOv8 ここでは、事前学習されたClassifyモデルを示す。Detect、Segment、PoseモデルはCOCOデータセットで事前学習され、ClassifyモデルはImageNetデータセットで事前学習されています。

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

モデル サイズ
(ピクセル)
acc
top1
acc
top5
速度
CPUONNX
(ms
)
速度
A100 TensorRT
(ms
)
params
(M)
FLOPs
(B) at 640
YOLOv8n-cls(クルス 224 69.0 88.3 12.9 0.31 2.7 4.3
YOLOv8s-cls(クルス 224 73.8 91.7 23.4 0.35 6.4 13.5
YOLOv8m-cls(クルス 224 76.8 93.5 85.4 0.62 17.0 42.7
YOLOv8l-cls(クルス 224 76.8 93.5 163.0 0.87 37.5 99.7
YOLOv8x-cls(クルス 224 79.0 94.6 232.0 1.01 57.4 154.8
  • acc のモデル精度である。 イメージネット データセットの検証セット。
    複製する yolo val classify data=path/to/ImageNet device=0
  • スピード を使用してImageNetのval画像を平均化した。 アマゾンEC2 P4d インスタンスだ。
    複製する yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

電車

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

例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.yaml")  # build a new model from YAML
model = YOLO("yolov8n-cls.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolov8n-cls.yaml").load("yolov8n-cls.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="mnist160", epochs=100, imgsz=64)
# Build a new model from YAML and start training from scratch
yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64

# Start training from a pretrained *.pt model
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64

データセット形式

YOLO 分類データセットのフォーマットについては、「データセットガイド」を参照してください。

バル

学習したYOLOv8n-cls モデルの精度を MNIST160 データセットで検証する。として引数を渡す必要はない。 model トレーニング data と引数をモデル属性として使用する。

例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val()  # no arguments needed, dataset and settings remembered
metrics.top1  # top1 accuracy
metrics.top5  # top5 accuracy
yolo classify val model=yolov8n-cls.pt  # val official model
yolo classify val model=path/to/best.pt  # val custom model

予測する

学習済みのYOLOv8n-cls モデルを使って、画像の予測を実行する。

例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Predict with the model
results = model("https://ultralytics.com/images/bus.jpg")  # predict on an image
yolo classify predict model=yolov8n-cls.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo classify predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

詳細を見る predict モードの詳細は 予測する ページを参照されたい。

輸出

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

例

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n-cls.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom trained model

# Export the model
model.export(format="onnx")
yolo export model=yolov8n-cls.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

利用可能なYOLOv8-cls エクスポート形式は以下の表の通りです。どのフォーマットにも format 引数、すなわち format='onnx' または format='engine'.エクスポートされたモデルを直接予測または検証することができます。 yolo predict model=yolov8n-cls.onnx.使用例は、エクスポート完了後に表示されます。

フォーマット format 議論 モデル メタデータ 論争
PyTorch - yolov8n-cls.pt ✅ -
TorchScript torchscript yolov8n-cls.torchscript ✅ imgsz, optimize, batch
ONNX onnx yolov8n-cls.onnx ✅ imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n-cls_openvino_model/ ✅ imgsz, half, int8, batch
TensorRT engine yolov8n-cls.engine ✅ imgsz, half, dynamic, simplify, workspace, int8, batch
CoreML coreml yolov8n-cls.mlpackage ✅ imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n-cls_saved_model/ ✅ imgsz, keras, int8, batch
TF GraphDef pb yolov8n-cls.pb ❌ imgsz, batch
TF ライト tflite yolov8n-cls.tflite ✅ imgsz, half, int8, batch
TF エッジTPU edgetpu yolov8n-cls_edgetpu.tflite ✅ imgsz
TF.js tfjs yolov8n-cls_web_model/ ✅ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n-cls_paddle_model/ ✅ imgsz, batch
NCNN ncnn yolov8n-cls_ncnn_model/ ✅ imgsz, half, batch

詳細を見る export 詳細は 輸出 ページを参照されたい。



Created 2023-11-12, Updated 2024-06-10
Authors: glenn-jocher (16), Burhan-Q (4), RizwanMunawar (2), fcakyon (1), Laughing-q (1)

コメント