Ultralytics YOLO27:

Rilevamento degli oggetti con Ultralytics YOLO#

Ultralytics YOLO object detection with bounding boxes

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.
Suggerimento

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.

Modellodimensione
(pixel)
mAPval
50-95
mAPval
50-95(e2e)
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.5
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.9
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.4
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.8
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7194.4
  • mAPval values are for single-model single-scale on COCO val2017 dataset.
    Reproduce by yolo val detect data=coco.yaml device=0. Add nms=False to reproduce the e2e column.
  • La velocità è calcolata come media sulle immagini COCO val utilizzando un'istanza Amazon EC2 P4d.
    Riproduci con yolo 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.

Esempio
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.

Esempio
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 FN

Predizione#

Utilizza un modello YOLO26n addestrato per eseguire previsioni sulle immagini.

Esempio
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 box

Consulta 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.

AttributoTipoFormaDescrizione
result.boxesBoxes(N)Box di rilevamento.
result.boxes.datatorch.float32(N,6/7)[x1,y1,x2,y2,conf,cls] grezzi, oltre all'ID di tracciamento opzionale.
result.boxes.xyxytorch.float32(N,4)Box dei pixel xyxy.
result.boxes.conftorch.float32(N,)Punteggi di confidenza.
result.boxes.clstorch.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.

Esempio
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.

FormatoArgomento formatModelloMetadatiArgomenti
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, quantize, dynamic, nms, batch, device
ONNXonnxyolo26n.onnximgsz, quantize, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, quantize, dynamic, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, quantize, dynamic, simplify, opset, workspace, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, quantize, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, quantize, opset, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, opset, batch, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, quantize, opset, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, dynamic, quantize, simplify, opset, nms, device
NCNNncnnyolo26n_ncnn_model/imgsz, quantize, batch, device
IMX500imxyolo26n_imx_model/imgsz, quantize, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, quantize, simplify, opset, data, fraction, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, quantize, data, fraction, device
DEEPXdeepxyolo26n_deepx_model/imgsz, quantize, simplify, opset, data, optimize, device
Qualcomm QNNqnnyolo26n_qnn.onnximgsz, batch, name, quantize, simplify, opset, data, fraction, device
LiteRTlitertyolo26n.tfliteimgsz, quantize, batch, data, fraction, device
Hailohailoyolo26n_hailo_model/imgsz, name, quantize, data, fraction, simplify, conf, iou
Huawei Ascendascendyolo26n_ascend_model/imgsz, batch, name, quantize, opset, simplify, nms
Apple Core AIcoreaiyolo26n.aimodelimgsz, 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:

    1. Prepara il dataset: assicurati che il tuo dataset sia nel formato YOLO. Per indicazioni, consulta la nostra Guida ai dataset.
    2. Carica il modello: utilizza la libreria Ultralytics YOLO per caricare un modello preaddestrato o creare un nuovo modello da un file YAML.
    3. Addestra il modello: esegui il metodo train in Python o il comando yolo detect train nella CLI.
    Esempio
    from 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 comando yolo detect val nella CLI. Otterrai metriche come mAP50-95, mAP50 e altre.

    Esempio
    from ultralytics import YOLO
    
    # Load the model
    model = YOLO("path/to/best.pt")
    
    # Validate the model
    metrics = model.val()
    print(metrics.box.map)  # mAP50-95

    Per 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.

    Esempio
    from 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:

    1. Modelli preaddestrati: utilizza modelli preaddestrati su dataset popolari come COCO e ImageNet per velocizzare lo sviluppo.
    2. Elevata accuratezza: raggiunge punteggi mAP notevoli, garantendo un rilevamento affidabile degli oggetti.
    3. Velocità: ottimizzato per l'inferenza in tempo reale, è ideale per le applicazioni che richiedono un'elaborazione rapida.
    4. 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.

Commenti