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 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, 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, batch
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.



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

Reacties