Rilevamento degli oggetti con Ultralytics YOLO#
Il rilevamento degli oggetti è un'attività che consiste nell'identificare la posizione e la classe degli oggetti in un'immagine o in un flusso video.
L'output di un rilevatore di oggetti è un insieme di riquadri delimitatori che racchiudono gli oggetti nell'immagine, insieme alle etichette delle classi e ai punteggi di confidenza per ogni riquadro. 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 quale sia la sua forma precisa.
Watch: Object Detection with Pretrained Ultralytics YOLO Model.
I modelli Detect YOLO26 sono i modelli YOLO26 predefiniti, ovvero yolo26n.pt, e sono preaddestrati su COCO.
Modelli#
Qui sono mostrati i modelli Detect YOLO26 preaddestrati. I modelli Detect, Segment e Pose sono preaddestrati sul dataset COCO, i modelli Semantic sono preaddestrati su Cityscapes e i modelli Classify sono preaddestrati sul dataset ImageNet.
I modelli vengono scaricati automaticamente dalla release più recente di Ultralytics al primo utilizzo.
| Modello | dimensione (pixel) | mAPval 50-95 | mAPval 50-95(e2e) | Velocità CPU ONNX (ms) | Velocità T4 TensorRT10 (ms) | parametri (M) | FLOPs (B) |
|---|---|---|---|---|---|---|---|
| YOLO26n | 640 | 40.9 | 40.1 | 38.9 ± 0.7 | 1.7 ± 0.0 | 2.4 | 5.5 |
| YOLO26s | 640 | 48.6 | 47.8 | 87.2 ± 0.9 | 2.5 ± 0.0 | 9.5 | 20.9 |
| YOLO26m | 640 | 53.1 | 52.5 | 220.0 ± 1.4 | 4.7 ± 0.1 | 20.4 | 68.4 |
| YOLO26l | 640 | 55.0 | 54.4 | 286.2 ± 2.0 | 6.2 ± 0.2 | 24.8 | 86.8 |
| YOLO26x | 640 | 57.5 | 56.9 | 525.8 ± 4.0 | 11.8 ± 0.2 | 55.7 | 194.4 |
- mAPval values are for single-model single-scale on COCO val2017 dataset.
Reproduce byyolo val detect data=coco.yaml device=0. Addnms=Falseto reproduce the e2e column. - La velocità è calcolata come media sulle immagini COCO val utilizzando un'istanza Amazon EC2 P4d.
Riproduci conyolo val detect data=coco.yaml batch=1 device=0|cpu nms=False - I valori di Params e FLOPs si riferiscono a modelli fusi dopo il folding di Conv/BatchNorm e la rimozione del ramo di rilevamento non utilizzato. I checkpoint preaddestrati mantengono l'intera architettura di addestramento e potrebbero mostrare conteggi superiori.
Consulta l'anteprima inedita di YOLO27 per i risultati preliminari di rilevamento su COCO.
Addestramento#
Addestra YOLO26n sul dataset COCO8 per 100 epoche con una dimensione delle immagini pari a 640. Per un elenco completo degli argomenti disponibili, consulta la pagina Configurazione.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.yaml") # build a new model from YAML
model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training)
model = YOLO("yolo26n.yaml").load("yolo26n.pt") # build from YAML and transfer weights
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Consulta tutti i dettagli della modalità train nella pagina Train. I modelli di rilevamento possono essere addestrati anche con l'addestramento cloud di Ultralytics Platform.
Formato del dataset#
Il formato del dataset di rilevamento YOLO è disponibile in dettaglio nella Guida ai dataset. Per convertire un dataset JSON COCO esistente nel formato YOLO, usa la funzione integrata convert_coco descritta nella Guida da COCO a YOLO. Puoi anche annotare e gestire i dataset di rilevamento con gli strumenti di annotazione assistiti da IA della Piattaforma Ultralytics.
Val#
Valida l'accuratezza del modello YOLO26n addestrato sul dataset COCO8. Non sono necessari argomenti, poiché model conserva i relativi data e argomenti di addestramento come attributi del modello.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.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 containing mAP50-95 for each category
metrics.box.image_metrics # per-image metrics dictionary with precision, recall, F1, TP, FP, and FNPredizione#
Utilizza un modello YOLO26n addestrato per eseguire previsioni sulle immagini.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.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
# Access the results
for result in results:
xywh = result.boxes.xywh # center-x, center-y, width, height
xywhn = result.boxes.xywhn # normalized
xyxy = result.boxes.xyxy # top-left-x, top-left-y, bottom-right-x, bottom-right-y
xyxyn = result.boxes.xyxyn # normalized
names = [result.names[cls.item()] for cls in result.boxes.cls.int()] # class name of each box
confs = result.boxes.conf # confidence score of each boxConsulta la pagina Predict per tutti i dettagli sulla modalità predict.
Output dei risultati#
Il rilevamento degli oggetti restituisce un oggetto Results per ogni immagine. Il campo principale della previsione è result.boxes, che contiene
le coordinate dei riquadri, gli ID delle classi e i punteggi di confidenza per ogni oggetto rilevato.
| Attributo | Tipo | Forma | Descrizione |
|---|---|---|---|
result.boxes | Boxes | (N) | Box di rilevamento. |
result.boxes.data | torch.float32 | (N,6/7) | [x1,y1,x2,y2,conf,cls] grezzi, oltre all'ID di tracciamento opzionale. |
result.boxes.xyxy | torch.float32 | (N,4) | Box dei pixel xyxy. |
result.boxes.conf | torch.float32 | (N,) | Punteggi di confidenza. |
result.boxes.cls | torch.float32 | (N,) | ID delle classi; converti in int per ottenere i nomi. |
Per i campi Results specifici dell'attività in tutte le attività, consulta la sezione Risultati delle predizioni per attività.
Esportazione#
Esporta un modello YOLO26n in un formato diverso, come ONNX, CoreML ecc.
from ultralytics import YOLO
# Load a model
model = YOLO("yolo26n.pt") # load an official model
model = YOLO("path/to/best.pt") # load a custom-trained model
# Export the model
model.export(format="onnx")I formati di esportazione YOLO26 disponibili sono riportati nella tabella seguente. Puoi esportare in qualsiasi formato utilizzando l'argomento format, ovvero format='onnx' o format='engine'. Puoi eseguire previsioni o validare direttamente sui modelli esportati, ovvero yolo predict model=yolo26n.onnx. Al termine dell'esportazione, per il tuo modello vengono mostrati esempi di utilizzo.
| Formato | Argomento format | Modello | Metadati | Argomenti |
|---|---|---|---|---|
| PyTorch | - | yolo26n.pt | ✅ | - |
| TorchScript | torchscript | yolo26n.torchscript | ✅ | imgsz, quantize, dynamic, nms, batch, device |
| ONNX | onnx | yolo26n.onnx | ✅ | imgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device |
| OpenVINO | openvino | yolo26n_openvino_model/ | ✅ | imgsz, quantize, dynamic, nms, batch, data, fraction, device |
| TensorRT | engine | yolo26n.engine | ✅ | imgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device |
| CoreML | coreml | yolo26n.mlpackage | ✅ | imgsz, dynamic, quantize, nms, batch, device |
| TF SavedModel | saved_model | yolo26n_saved_model/ | ✅ | imgsz, keras, quantize, opset, nms, batch, data, fraction, device |
| TF GraphDef | pb | yolo26n.pb | ❌ | imgsz, opset, batch, device |
| TF Edge TPU | edgetpu | yolo26n_edgetpu.tflite | ✅ | imgsz, quantize, opset, data, fraction, device |
| PaddlePaddle | paddle | yolo26n_paddle_model/ | ✅ | imgsz, batch, device |
| MNN | mnn | yolo26n.mnn | ✅ | imgsz, batch, dynamic, quantize, simplify, opset, nms, device |
| NCNN | ncnn | yolo26n_ncnn_model/ | ✅ | imgsz, quantize, batch, device |
| IMX500 | imx | yolo26n_imx_model/ | ✅ | imgsz, quantize, data, fraction, nms, device |
| RKNN | rknn | yolo26n_rknn_model/ | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| ExecuTorch | executorch | yolo26n_executorch_model/ | ✅ | imgsz, batch, device |
| Axelera | axelera | yolo26n_axelera_model/ | ✅ | imgsz, batch, quantize, data, fraction, device |
| DEEPX | deepx | yolo26n_deepx_model/ | ✅ | imgsz, quantize, simplify, opset, data, optimize, device |
| Qualcomm QNN | qnn | yolo26n_qnn.onnx | ✅ | imgsz, batch, name, quantize, simplify, opset, data, fraction, device |
| LiteRT | litert | yolo26n.tflite | ✅ | imgsz, quantize, batch, data, fraction, device |
| Hailo | hailo | yolo26n_hailo_model/ | ✅ | imgsz, name, quantize, data, fraction, simplify, conf, iou |
| Huawei Ascend | ascend | yolo26n_ascend_model/ | ✅ | imgsz, batch, name, quantize, opset, simplify, nms |
| Apple Core AI | coreai | yolo26n.aimodel | ✅ | imgsz, batch, quantize |
nms=None utilizza i valori predefiniti per gli output grezzi per la NMS esterna. Imposta nms=False per selezionare una testa senza NMS disponibile; i formati non supportati ricorrono al loro percorso di output nativo. Le voci nms sopra indicano i formati che possono incorporare la NMS con nms=True.
Consulta la pagina Export per tutti i dettagli su export.
FAQ#
Sì. La guida rapida di Ultralytics Platform descrive un flusso di lavoro basato sul browser per annotare i dataset, addestrare modelli di rilevamento su GPU cloud e distribuirli su endpoint di inferenza.
L'addestramento di un modello YOLO26 su un dataset personalizzato prevede alcuni passaggi:
- Prepara il dataset: assicurati che il tuo dataset sia nel formato YOLO. Per indicazioni, consulta la nostra Guida ai dataset.
- Carica il modello: utilizza la libreria Ultralytics YOLO per caricare un modello preaddestrato o creare un nuovo modello da un file YAML.
- Addestra il modello: esegui il metodo
trainin Python o il comandoyolo detect trainnella CLI.
Esempiofrom ultralytics import YOLO # Load a pretrained model model = YOLO("yolo26n.pt") # Train the model on your custom dataset model.train(data="my_custom_dataset.yaml", epochs=100, imgsz=640)Per opzioni di configurazione dettagliate, visita la pagina Configurazione.
Ultralytics YOLO26 offre diversi modelli preaddestrati per il rilevamento degli oggetti, la segmentazione delle istanze, la segmentazione semantica e la stima della posa. Questi modelli sono preaddestrati sul dataset COCO, su Cityscapes per la segmentazione semantica o su ImageNet per le attività di classificazione. Ecco alcuni dei modelli disponibili:
Per un elenco dettagliato e le metriche delle prestazioni, consulta la sezione Modelli.
Per convalidare l'accuratezza del tuo modello YOLO26 addestrato, puoi utilizzare il metodo
.val()in Python o il comandoyolo detect valnella CLI. Otterrai metriche come mAP50-95, mAP50 e altre.Esempiofrom ultralytics import YOLO # Load the model model = YOLO("path/to/best.pt") # Validate the model metrics = model.val() print(metrics.box.map) # mAP50-95Per ulteriori dettagli sulla convalida, visita la pagina Val.
Ultralytics YOLO26 consente di esportare i modelli in vari formati, come ONNX, TensorRT, CoreML e altri, per garantire la compatibilità con diverse piattaforme e dispositivi.
Esempiofrom ultralytics import YOLO # Load the model model = YOLO("yolo26n.pt") # Export the model to ONNX format model.export(format="onnx")Consulta l'elenco completo dei formati supportati e le istruzioni nella pagina Export.
Ultralytics YOLO26 è progettato per offrire prestazioni all'avanguardia per il rilevamento degli oggetti, la segmentazione delle istanze, la segmentazione semantica e la stima della posa. Ecco alcuni vantaggi chiave:
- Modelli preaddestrati: utilizza modelli preaddestrati su dataset popolari come COCO e ImageNet per velocizzare lo sviluppo.
- Elevata accuratezza: raggiunge punteggi mAP notevoli, garantendo un rilevamento affidabile degli oggetti.
- Velocità: ottimizzato per l'inferenza in tempo reale, è ideale per le applicazioni che richiedono un'elaborazione rapida.
- Flessibilità: esporta i modelli in vari formati, come ONNX e TensorRT, per la distribuzione su più piattaforme.
Esplora il nostro Blog per scoprire casi d'uso e storie di successo che mostrano YOLO26 in azione.