Bildklassifizierung
Bildklassifizierung ist die einfachste der drei Aufgaben und besteht darin, ein ganzes Bild in eine von einem Satz vordefinierter Klassen zu klassifizieren.
Die Ausgabe eines Bildklassifizierers ist ein einzelnes Klassenlabel und eine Vertrauenspunktzahl. Bildklassifizierung ist nützlich, wenn Sie nur wissen müssen, zu welcher Klasse ein Bild gehört, und nicht wissen müssen, wo sich Objekte dieser Klasse befinden oder wie ihre genaue Form ist.
Tipp
YOLOv8 Classify-Modelle verwenden den Suffix -cls
, z.B. yolov8n-cls.pt
und sind auf ImageNet vortrainiert.
Modelle
Hier werden vortrainierte YOLOv8 Classify-Modelle gezeigt. Detect-, Segment- und Pose-Modelle sind auf dem COCO-Datensatz vortrainiert, während Classify-Modelle auf dem ImageNet-Datensatz vortrainiert sind.
Modelle werden automatisch vom neuesten Ultralytics-Release beim ersten Gebrauch heruntergeladen.
Modell | Größe (Pixel) |
Genauigkeit top1 |
Genauigkeit top5 |
Geschwindigkeit CPU ONNX (ms) |
Geschwindigkeit A100 TensorRT (ms) |
Parameter (M) |
FLOPs (B) bei 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 |
- Genauigkeit-Werte sind Modellgenauigkeiten auf dem ImageNet-Datensatz Validierungsset.
Zur Reproduktionyolo val classify data=pfad/zu/ImageNet device=0 verwenden
- Geschwindigkeit Durchschnitt über ImageNet-Validierungsbilder mit einer Amazon EC2 P4d-Instanz.
Zur Reproduktionyolo val classify data=pfad/zu/ImageNet batch=1 device=0|cpu verwenden
Trainieren
Trainieren Sie das YOLOv8n-cls-Modell auf dem MNIST160-Datensatz für 100 Epochen bei Bildgröße 64. Eine vollständige Liste der verfügbaren Argumente finden Sie auf der Seite Konfiguration.
Beispiel
from ultralytics import YOLO
# Ein Modell laden
model = YOLO('yolov8n-cls.yaml') # ein neues Modell aus YAML erstellen
model = YOLO('yolov8n-cls.pt') # ein vortrainiertes Modell laden (empfohlen für das Training)
model = YOLO('yolov8n-cls.yaml').load('yolov8n-cls.pt') # aus YAML erstellen und Gewichte übertragen
# Das Modell trainieren
results = model.train(data='mnist160', epochs=100, imgsz=64)
# Ein neues Modell aus YAML erstellen und das Training von Grund auf starten
yolo classify train data=mnist160 model=yolov8n-cls.yaml epochs=100 imgsz=64
# Das Training von einem vortrainierten *.pt Modell starten
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64
# Ein neues Modell aus YAML erstellen, vortrainierte Gewichte übertragen und das Training starten
yolo classify train data=mnist160 model=yolov8n-cls.yaml pretrained=yolov8n-cls.pt epochs=100 imgsz=64
Datenformat
Das Datenformat für YOLO-Klassifizierungsdatensätze finden Sie im Detail im Datenleitfaden.
Validieren
Validieren Sie die Genauigkeit des trainierten YOLOv8n-cls-Modells auf dem MNIST160-Datensatz. Kein Argument muss übergeben werden, da das modell
seine Trainingsdaten
und Argumente als Modellattribute behält.
Beispiel
from ultralytics import YOLO
# Ein Modell laden
model = YOLO('yolov8n-cls.pt') # ein offizielles Modell laden
model = YOLO('pfad/zu/best.pt') # ein benutzerdefiniertes Modell laden
# Das Modell validieren
metrics = model.val() # keine Argumente benötigt, Datensatz und Einstellungen gespeichert
metrics.top1 # top1 Genauigkeit
metrics.top5 # top5 Genauigkeit
Vorhersagen
Verwenden Sie ein trainiertes YOLOv8n-cls-Modell, um Vorhersagen auf Bildern durchzuführen.
Beispiel
Vollständige Details zum predict
-Modus finden Sie auf der Seite Vorhersage.
Exportieren
Exportieren Sie ein YOLOv8n-cls-Modell in ein anderes Format wie ONNX, CoreML usw.
Beispiel
Verfügbare YOLOv8-cls Exportformate stehen in der folgenden Tabelle. Sie können direkt auf exportierten Modellen vorhersagen oder validieren, d.h. yolo predict model=yolov8n-cls.onnx
. Nutzungsexempel werden für Ihr Modell nach Abschluss des Exports angezeigt.
Format | format -Argument |
Modell | Metadaten | Argumente |
---|---|---|---|---|
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 |
Vollständige Details zum export
finden Sie auf der Seite Export.