Vai al contenuto

Rilevamento degli oggetti

Esempi di rilevamento di oggetti

Il rilevamento degli oggetti è un'attività che prevede l'identificazione della posizione e della classe degli oggetti in un'immagine o in un flusso video.

L'output di un rilevatore di oggetti è un insieme di caselle di delimitazione che racchiudono gli oggetti nell'immagine, insieme alle etichette di classe e ai punteggi di confidenza per ogni casella. Il rilevamento degli oggetti è una buona scelta quando devi identificare gli oggetti di interesse in una scena, ma non hai bisogno di sapere esattamente dove si trova l'oggetto o la sua forma esatta.



Guarda: Rilevamento di oggetti con un modello preaddestrato Ultralytics YOLOv8 .

Suggerimento

YOLOv8 I modelli di rilevamento sono i modelli predefiniti di YOLOv8 , vale a dire yolov8n.pt e sono preaddestrati su COCO.

Modelli

YOLOv8 I modelli Detect pre-addestrati sono mostrati qui. I modelli Detect, Segment e Pose sono stati preaddestrati sul dataset COCO, mentre i modelli Classify sono stati preaddestrati sul dataset ImageNet.

I modelli vengono scaricati automaticamente dall'ultimarelease di Ultralytics al primo utilizzo.

Modello dimensione
(pixel)
mAPval
50-95
Velocità
CPU ONNX
(ms)
Velocità
A100 TensorRT
(ms)
params
(M)
FLOP
(B)
YOLOv8n 640 37.3 80.4 0.99 3.2 8.7
YOLOv8s 640 44.9 128.4 1.20 11.2 28.6
YOLOv8m 640 50.2 234.7 1.83 25.9 78.9
YOLOv8l 640 52.9 375.2 2.39 43.7 165.2
YOLOv8x 640 53.9 479.1 3.53 68.2 257.8
  • mAPval I valori si riferiscono a un modello a scala singola su COCO val2017 set di dati.
    Riproduci da yolo val detect data=coco.yaml device=0
  • Velocità mediata sulle immagini COCO val utilizzando un Amazon EC2 P4d istanza.
    Riproduci da yolo val detect data=coco8.yaml batch=1 device=0|cpu

Treno

Addestra YOLOv8n sul set di dati COCO8 per 100 epoche con dimensioni dell'immagine pari a 640. Per un elenco completo degli argomenti disponibili, consulta la pagina di configurazione.

Esempio

from ultralytics import YOLO

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

# Train the model
results = model.train(data='coco8.yaml', epochs=100, imgsz=640)
# Build a new model from YAML and start training from scratch
yolo detect train data=coco8.yaml model=yolov8n.yaml epochs=100 imgsz=640

# Start training from a pretrained *.pt model
yolo detect train data=coco8.yaml model=yolov8n.pt epochs=100 imgsz=640

# Build a new model from YAML, transfer pretrained weights to it and start training
yolo detect train data=coco8.yaml model=yolov8n.yaml pretrained=yolov8n.pt epochs=100 imgsz=640

Formato del set di dati

YOLO Il formato del set di dati per il rilevamento è riportato in dettaglio nella Guida ai set di dati. Per convertire il tuo set di dati esistente da altri formati (come COCO ecc.) al formato YOLO , utilizza lo strumento JSON2YOLO di Ultralytics.

Val

Convalida l'accuratezza del modello YOLOv8n addestrato sul set di dati COCO8. Non è necessario passare alcun argomento come il parametro model mantiene la formazione data e gli argomenti come attributi del modello.

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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.box.map    # map50-95
metrics.box.map50  # map50
metrics.box.map75  # map75
metrics.box.maps   # a list contains map50-95 of each category
yolo detect val model=yolov8n.pt  # val official model
yolo detect val model=path/to/best.pt  # val custom model

Prevedere

Utilizza un modello YOLOv8n addestrato per eseguire previsioni sulle immagini.

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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 detect predict model=yolov8n.pt source='https://ultralytics.com/images/bus.jpg'  # predict with official model
yolo detect predict model=path/to/best.pt source='https://ultralytics.com/images/bus.jpg'  # predict with custom model

Vedi tutto predict i dettagli della modalità nella sezione Prevedere pagina.

Esportazione

Esporta un modello YOLOv8n in un formato diverso come ONNX, CoreML, ecc.

Esempio

from ultralytics import YOLO

# Load a model
model = YOLO('yolov8n.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.pt format=onnx  # export official model
yolo export model=path/to/best.pt format=onnx  # export custom trained model

I formati di esportazione disponibili su YOLOv8 sono riportati nella tabella seguente. Puoi esportare in qualsiasi formato utilizzando l'opzione format argomento, vale a dire format='onnx' o format='engine'. Puoi prevedere o convalidare direttamente i modelli esportati, ad es. yolo predict model=yolov8n.onnx. Al termine dell'esportazione vengono mostrati degli esempi di utilizzo per il tuo modello.

Formato format Argomento Modello Metadati Argomenti
PyTorch - yolov8n.pt -
TorchScript torchscript yolov8n.torchscript imgsz, optimize, batch
ONNX onnx yolov8n.onnx imgsz, half, dynamic, simplify, opset, batch
OpenVINO openvino yolov8n_openvino_model/ imgsz, half, int8, batch
TensorRT engine yolov8n.engine imgsz, half, dynamic, simplify, workspace, batch
CoreML coreml yolov8n.mlpackage imgsz, half, int8, nms, batch
TF SavedModel saved_model yolov8n_saved_model/ imgsz, keras, int8, batch
TF GraphDef pb yolov8n.pb imgsz, batch
TF Lite tflite yolov8n.tflite imgsz, half, int8, batch
TF Bordo TPU edgetpu yolov8n_edgetpu.tflite imgsz, batch
TF.js tfjs yolov8n_web_model/ imgsz, half, int8, batch
PaddlePaddle paddle yolov8n_paddle_model/ imgsz, batch
NCNN ncnn yolov8n_ncnn_model/ imgsz, half, batch

Vedi tutto export dettagli nella sezione Esportazione pagina.



Creato 2023-11-12, Aggiornato 2024-04-27
Autori: glenn-jocher (14), Burhan-Q (1), Laughing-q (1), AyushExel (1)

Commenti