Rilevamento degli 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 dayolo val detect data=coco.yaml device=0
- Velocità mediata sulle immagini COCO val utilizzando un Amazon EC2 P4d istanza.
Riproduci dayolo 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
Prevedere
Utilizza un modello YOLOv8n addestrato per eseguire previsioni sulle immagini.
Esempio
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
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)