Overslaan naar inhoud

Beeldclassificatie

Voorbeelden voor beeldclassificatie

Beeldclassificatie is de eenvoudigste van de drie taken en bestaat uit het classificeren van een volledige afbeelding in een van een reeks vooraf gedefinieerde klassen.

De uitvoer van een beeldclassificator is een enkel klassenlabel en een vertrouwensscore. Beeldclassificatie is handig als je alleen moet weten tot welke klasse een afbeelding behoort en niet hoeft te weten waar objecten van die klasse zich bevinden of wat hun exacte vorm is.



Kijken: YOLO Verken Ultralytics Taken: Beeldclassificatie met Ultralytics HUB

Tip

YOLOv8 Classificeer modellen gebruiken de -cls achtervoegsel, dus yolov8n-cls.pt en zijn voorgetraind op ImageNet.

Modellen

YOLOv8 voorgetrainde Classify-modellen worden hier getoond. Detect, Segment en Pose modellen zijn voorgetraind op de COCO dataset, terwijl Classify modellen zijn voorgetraind op de ImageNet dataset.

Modellen worden bij het eerste gebruik automatisch gedownload van de nieuwste Ultralytics release.

Model grootte
(pixels)
acc
top1
acc
top5
Snelheid
CPU ONNX
(ms)
Snelheid
A100 TensorRT
(ms)
params
(M)
FLOP's
(B) bij 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 waarden zijn modelnauwkeurigheden op de ImageNet dataset validatieset.
    Reproduceren door yolo val classify data=path/to/ImageNet device=0
  • Snelheid gemiddeld over ImageNet-validebeelden met behulp van een Amazon EC2 P4d voorbeeld.
    Reproduceren door yolo val classify data=path/to/ImageNet batch=1 device=0|cpu

Trein

Train YOLOv8n-cls op de MNIST160 dataset voor 100 epochs bij afbeeldingsgrootte 64. Zie de configuratiepagina voor een volledige lijst met beschikbare argumenten.

Voorbeeld

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

Formaat dataset

YOLO Het formaat van de classificatie dataset is in detail te vinden in de Dataset Gids.

Val

Valideer de nauwkeurigheid van het getrainde YOLOv8n-cls model op de MNIST160 dataset. Er hoeft geen argument te worden doorgegeven als de model behoudt zijn opleiding data en argumenten als modelattributen.

Voorbeeld

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

Voorspel

Gebruik een getraind YOLOv8n-cls model om voorspellingen op afbeeldingen uit te voeren.

Voorbeeld

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

Bekijk volledig predict details over de modus in de Voorspel pagina.

Exporteer

Exporteer een YOLOv8n-cls model naar een ander formaat zoals ONNX, CoreML, enz.

Voorbeeld

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

Beschikbare YOLOv8-cls exportformaten staan in de tabel hieronder. Je kunt naar elk formaat exporteren met de format argument, d.w.z. format='onnx' of format='engine'. Je kunt direct voorspellen of valideren op geëxporteerde modellen, d.w.z. yolo predict model=yolov8n-cls.onnx. Gebruiksvoorbeelden worden getoond voor je model nadat het exporteren is voltooid.

Formaat format Argument Model Metagegevens Argumenten
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 Lite tflite yolov8n-cls.tflite imgsz, half, int8, batch
TF Rand 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

Bekijk volledig export details in de Exporteer pagina.

FAQ

Wat is het doel van YOLOv8 bij beeldclassificatie?

YOLOv8 modellen, zoals yolov8n-cls.ptzijn ontworpen voor efficiënte beeldclassificatie. Ze kennen een enkel klassenlabel toe aan een hele afbeelding, samen met een betrouwbaarheidsscore. Dit is vooral nuttig voor toepassingen waarbij het kennen van de specifieke klasse van een afbeelding voldoende is, in plaats van het identificeren van de locatie of vorm van objecten in de afbeelding.

Hoe train ik een YOLOv8 model voor beeldclassificatie?

Om een YOLOv8 model te trainen, kun je de commando's Python of CLI gebruiken. Om bijvoorbeeld een yolov8n-cls model op de MNIST160 dataset voor 100 epochs bij een afbeeldingsgrootte van 64:

Voorbeeld

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="mnist160", epochs=100, imgsz=64)
yolo classify train data=mnist160 model=yolov8n-cls.pt epochs=100 imgsz=64

Ga voor meer configuratieopties naar de pagina Configuratie.

Waar kan ik voorgetrainde YOLOv8 classificatiemodellen vinden?

Voorgetrainde YOLOv8 classificatiemodellen zijn te vinden in de Modellen sectie. Modellen zoals yolov8n-cls.pt, yolov8s-cls.pt, yolov8m-cls.ptenzovoort, zijn voorgetraind op de ImageNet dataset en kan eenvoudig worden gedownload en gebruikt voor verschillende beeldclassificatietaken.

Hoe kan ik een getraind YOLOv8 model exporteren naar verschillende indelingen?

Je kunt een getraind YOLOv8 model exporteren naar verschillende indelingen met de commando's Python of CLI . Bijvoorbeeld, om een model te exporteren naar ONNX formaat:

Voorbeeld

from ultralytics import YOLO

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

# Export the model to ONNX
model.export(format="onnx")
yolo export model=yolov8n-cls.pt format=onnx  # export the trained model to ONNX format

Raadpleeg de pagina Exporteren voor gedetailleerde exportopties.

Hoe valideer ik een getraind YOLOv8 classificatiemodel?

Om de nauwkeurigheid van een getraind model te valideren op een dataset als MNIST160, kun je de volgende opdrachten Python of CLI gebruiken:

Voorbeeld

from ultralytics import YOLO

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

# Validate the model
metrics = model.val()  # no arguments needed, uses the dataset and settings from training
metrics.top1  # top1 accuracy
metrics.top5  # top5 accuracy
yolo classify val model=yolov8n-cls.pt  # validate the trained model

Ga voor meer informatie naar Valideren.



Aangemaakt 2023-11-12, Bijgewerkt 2024-07-04
Auteurs: glenn-jocher (18), Burhan-Q (4), RizwanMunawar (2), fcakyon (1), Laughing-q (1)

Reacties