Rilevamento oggetti

YOLO object detection with bounding boxes

Il rilevamento oggetti è un'attività che consiste nell'identificare la posizione e la classe di oggetti all'interno di un'immagine o di un flusso video.

L'output di un rilevatore di oggetti è un insieme di bounding box che racchiudono gli oggetti nell'immagine, insieme alle etichette di classe e ai punteggi di confidenza per ogni riquadro. Il rilevamento oggetti è una buona scelta quando devi identificare oggetti di interesse in una scena, ma non hai bisogno di conoscere esattamente dove si trovi l'oggetto o la sua forma precisa.



Watch: Object Detection with Pretrained Ultralytics YOLO Model.
Suggerimento

I modelli YOLO26 Detect sono i modelli YOLO26 predefiniti, ovvero yolo26n.pt, e sono pre-addestrati su COCO.

Modelli

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

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

Modellodimensione
(pixel)
mAPval
50-95
mAPval
50-95(e2e)
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOP
(B)
YOLO26n64040.940.138.9 ± 0.71.7 ± 0.02.45.4
YOLO26s64048.647.887.2 ± 0.92.5 ± 0.09.520.7
YOLO26m64053.152.5220.0 ± 1.44.7 ± 0.120.468.2
YOLO26l64055.054.4286.2 ± 2.06.2 ± 0.224.886.4
YOLO26x64057.556.9525.8 ± 4.011.8 ± 0.255.7193.9
  • I valori mAPval si riferiscono a un singolo modello su scala singola sul dataset COCO val2017.
    Riproduci con yolo val detect data=coco.yaml device=0
  • Velocità calcolata come media sulle immagini di convalida COCO utilizzando un'istanza Amazon EC2 P4d.
    Riproduci con yolo val detect data=coco.yaml batch=1 device=0|cpu
  • I valori di Params e FLOPs si riferiscono al modello fuso dopo model.fuse(), che unisce i livelli Conv e BatchNorm e, per i modelli end2end, rimuove l'head di rilevamento ausiliario one-to-many. I checkpoint pre-addestrati mantengono l'architettura di addestramento completa e potrebbero mostrare conteggi più elevati.

Train

Addestra YOLO26n sul dataset COCO8 per 100 epoche con dimensione immagine 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)

Vedi i dettagli completi della modalità train nella pagina Addestramento. I modelli di rilevamento possono anche essere addestrati su GPU cloud tramite Ultralytics Platform.

Formato del dataset

Il formato del dataset di rilevamento YOLO è descritto in dettaglio nella Guida ai dataset. Per convertire il tuo dataset esistente da altri formati (come COCO ecc.) al formato YOLO, utilizza lo strumento JSON2YOLO di Ultralytics. Puoi anche annotare e gestire i dataset di rilevamento direttamente su Ultralytics Platform con strumenti di etichettatura assistiti dall'IA.

Val

Validate trained YOLO26n model accuracy on the COCO8 dataset. No arguments are needed as the model retains its training data and arguments as model attributes.

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

Predict

Usa 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

Vedi i dettagli completi della modalità predict nella pagina Previsione.

Export

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 disponibili per YOLO26 sono nella tabella sottostante. Puoi esportare in qualsiasi formato utilizzando l'argomento format, ad esempio format='onnx' o format='engine'. Puoi eseguire previsioni o validazioni direttamente sui modelli esportati, ad esempio yolo predict model=yolo26n.onnx. Esempi di utilizzo vengono mostrati per il tuo modello al termine dell'esportazione.

FormatoArgomento formatModelloMetadatiArgomenti
PyTorch-yolo26n.pt-
TorchScripttorchscriptyolo26n.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n.onnximgsz, half, dynamic, simplify, opset, nms, batch, device
OpenVINOopenvinoyolo26n_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n.pbimgsz, batch, device
TF Litetfliteyolo26n.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n_paddle_model/imgsz, batch, device
MNNmnnyolo26n.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n_rknn_model/imgsz, batch, name, device
ExecuTorchexecutorchyolo26n_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n_axelera_model/imgsz, batch, int8, data, fraction, device
DeepXdeepxyolo26n_deepx_model/imgsz, int8, data, optimize, device

Vedi i dettagli completi su export nella pagina Esportazione.

FAQ

Posso addestrare e distribuire modelli di rilevamento senza programmare?

Sì. Ultralytics Platform fornisce un flusso di lavoro basato su browser per annotare dataset, addestrare modelli di rilevamento su GPU cloud e distribuirli su endpoint di inferenza. Consulta la Guida rapida alla piattaforma per iniziare.

Come posso addestrare un modello YOLO26 sul mio dataset personalizzato?

L'addestramento di un modello YOLO26 su un dataset personalizzato richiede alcuni passaggi:

  1. Prepara il dataset: Assicurati che il tuo dataset sia nel formato YOLO. Per una guida, fai riferimento alla nostra Guida ai dataset.
  2. Carica il modello: Usa la libreria Ultralytics YOLO per caricare un modello pre-addestrato o crearne uno nuovo 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.

Quali modelli pre-addestrati sono disponibili in YOLO26?

Ultralytics YOLO26 offre vari modelli pre-addestrati per il rilevamento oggetti, la segmentazione e la stima della posa. Questi modelli sono pre-addestrati sul dataset COCO o su ImageNet per attività di classificazione. Ecco alcuni dei modelli disponibili:

Per un elenco dettagliato e le metriche di prestazione, consulta la sezione Modelli.

Come posso validare l'accuratezza del mio modello YOLO addestrato?

Per validare l'accuratezza del tuo modello YOLO26 addestrato, puoi usare il metodo .val() in Python o il comando yolo detect val nella CLI. Questo fornirà 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 validazione, visita la pagina Val.

In quali formati posso esportare un modello YOLO26?

Ultralytics YOLO26 consente di esportare modelli in vari formati come ONNX, TensorRT, CoreML e altri per garantire la compatibilità tra 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")

Controlla l'elenco completo dei formati supportati e le istruzioni sulla pagina Esportazione.

Perché dovrei usare Ultralytics YOLO26 per il rilevamento oggetti?

Ultralytics YOLO26 è progettato per offrire prestazioni all'avanguardia per il rilevamento oggetti, la segmentazione e la stima della posa. Ecco alcuni vantaggi chiave:

  1. Modelli pre-addestrati: Utilizza modelli pre-addestrati su dataset popolari come COCO e ImageNet per uno sviluppo più rapido.
  2. Alta accuratezza: Ottiene punteggi mAP impressionanti, garantendo un rilevamento oggetti affidabile.
  3. Velocità: Ottimizzato per l'inferenza in tempo reale, il che lo rende ideale per 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 casi d'uso e storie di successo che mostrano YOLO26 in azione.

Commenti