Meet YOLO26: next-gen vision AI.

Link to this sectionRiquadri di delimitazione orientati (Oriented Bounding Boxes) per il Rilevamento di oggetti#

Il rilevamento di oggetti orientati fa un passo avanti rispetto al rilevamento standard, introducendo un angolo extra per localizzare gli oggetti con maggiore precisione in un'immagine.

L'output di un rilevatore di oggetti orientati è un insieme di riquadri di delimitazione ruotati che racchiudono con precisione gli oggetti nell'immagine, insieme a etichette di classe e punteggi di confidenza per ogni riquadro. I riquadri di delimitazione orientati sono particolarmente utili quando gli oggetti appaiono con varie angolazioni, come nelle immagini aeree, dove i tradizionali riquadri di delimitazione allineati agli assi possono includere uno sfondo superfluo.

Suggerimento

I modelli YOLO26 OBB utilizzano il suffisso -obb, ad esempio yolo26n-obb.pt, e sono preaddestrati su DOTAv1.



Watch: How to Detect & Track Objects with Ultralytics YOLO26 Oriented Bounding Boxes (OBB) | Ship Tracking 🚢

Link to this sectionEsempi visivi#

Rilevamento navi tramite OBBRilevamento veicoli tramite OBB
Rilevamento navi tramite OBBRilevamento veicoli tramite OBB

Link to this sectionModelli#

Qui vengono mostrati i modelli OBB preaddestrati YOLO26, che sono stati addestrati sul dataset DOTAv1.

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

Modellodimensione
(pixel)
mAPtest
50-95(e2e)
mAPtest
50(e2e)
Velocità
CPU ONNX
(ms)
Velocità
T4 TensorRT10
(ms)
parametri
(M)
FLOPs
(B)
YOLO26n-obb102452.478.997.7 ± 0.92.8 ± 0.02.514.0
YOLO26s-obb102454.880.9218.0 ± 1.44.9 ± 0.19.855.1
YOLO26m-obb102455.381.0579.2 ± 3.810.2 ± 0.321.2183.3
YOLO26l-obb102456.281.6735.6 ± 3.113.0 ± 0.225.6230.0
YOLO26x-obb102456.781.71485.7 ± 11.530.5 ± 0.957.6516.5
  • I valori di mAPtest si riferiscono a un singolo modello multiscala sul dataset DOTAv1.
    Riproducilo con yolo val obb data=DOTAv1.yaml device=0 split=test e invia i risultati uniti alla valutazione DOTA.
  • Velocità mediata sulle immagini di validazione DOTAv1 utilizzando un'istanza Amazon EC2 P4d.
    Riproducilo con yolo val obb data=DOTAv1.yaml batch=1 device=0|cpu
  • I valori di Parametri e FLOPs si riferiscono al modello fuso dopo model.fuse(), che unisce i livelli Conv e BatchNorm e, per i modelli end-to-end, rimuove l'head di rilevamento ausiliaria one-to-many. I checkpoint pre-addestrati conservano l'intera architettura di addestramento e potrebbero mostrare conteggi più elevati.

Link to this sectionAddestramento#

Addestra YOLO26n-obb sul dataset DOTA8 per 100 epoche con dimensione immagine 640. Per un elenco completo degli argomenti disponibili, consulta la pagina Configurazione.

Nota

Un OBB e la sua rotazione di 180° sono identici, quindi la rotazione è definita modulo 180° e il riquadro non ha una direzione. Internamente l'angolo viene memorizzato in radianti e normalizzato in [-π/4, 3π/4) ([-45°, 135°)), la larghezza w del riquadro è considerata il lato più lungo e l'angolo è definito come l'angolo orario dall'asse x positivo alla direzione di w. La forma [0°, 90°) è la convenzione standardizzata in stile DOTA e non viene applicata durante l'addestramento o l'inferenza.

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.yaml")  # build a new model from YAML
model = YOLO("yolo26n-obb.pt")  # load a pretrained model (recommended for training)
model = YOLO("yolo26n-obb.yaml").load("yolo26n-obb.pt")  # build from YAML and transfer weights

# Train the model
results = model.train(data="dota8.yaml", epochs=100, imgsz=640)


Watch: How to Train Ultralytics YOLO-OBB (Oriented Bounding Boxes) Models on DOTA Dataset using Ultralytics Platform

Link to this sectionFormato del dataset#

Il formato del dataset OBB può essere trovato in dettaglio nella Guida ai Dataset. Il formato YOLO OBB designa i riquadri di delimitazione tramite i loro quattro punti d'angolo con coordinate normalizzate tra 0 e 1, seguendo questa struttura. Ultralytics Platform supporta l'annotazione OBB con uno strumento dedicato per il disegno di riquadri di delimitazione orientati:

class_index x1 y1 x2 y2 x3 y3 x4 y4

Internamente, YOLO elabora le perdite (losses) e gli output nel formato xywhr, che rappresenta il punto centrale (xy), la larghezza, l'altezza e la rotazione del riquadro di delimitazione.

Link to this sectionValidazione#

Valida l'accuratezza del modello YOLO26n-obb addestrato sul dataset DOTA8. Non sono necessari argomenti poiché il model mantiene i suoi data di addestramento e gli argomenti come attributi del modello.

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")  # load an official model
model = YOLO("path/to/best.pt")  # load a custom model

# Validate the model
metrics = model.val(data="dota8.yaml")  # no arguments needed, dataset and settings remembered
metrics.box.map  # map50-95(B)
metrics.box.map50  # map50(B)
metrics.box.map75  # map75(B)
metrics.box.maps  # a list containing mAP50-95(B) for each category
metrics.box.image_metrics  # per-image metrics dictionary with precision, recall, F1, TP, FP, and FN

Link to this sectionPredizione#

Usa un modello YOLO26n-obb addestrato per eseguire previsioni sulle immagini.

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.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/boats.jpg")  # predict on an image

# Access the results
for result in results:
    xywhr = result.obb.xywhr  # center-x, center-y, width, height, angle (radians)
    xyxyxyxy = result.obb.xyxyxyxy  # polygon format with 4-points
    names = [result.names[cls.item()] for cls in result.obb.cls.int()]  # class name of each box
    confs = result.obb.conf  # confidence score of each box


Watch: How to Detect and Track Storage Tanks using Ultralytics YOLO-OBB | Oriented Bounding Boxes | DOTA

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

Link to this sectionOutput dei risultati#

Il rilevamento di riquadri di delimitazione orientati restituisce un oggetto Results per immagine. Il campo di previsione principale è result.obb, che contiene i riquadri ruotati, gli ID delle classi e i punteggi di confidenza per ogni oggetto rilevato.

AttributoTipoFormaDescrizione
result.obbOBB(N)Riquadri orientati.
result.obb.datatorch.float32(N,7/8)Riquadri ruotati grezzi con confidenza/classe.
result.obb.xywhrtorch.float32(N,5)Riquadri ruotati xywhr.
result.obb.xyxyxyxytorch.float32(N,4,2)Quattro punti d'angolo.
result.obb.conftorch.float32(N,)Punteggi di confidenza.

Per i campi Results specifici per attività in ogni compito, vedi la sezione Risultati di previsione per attività.

Link to this sectionEsportazione#

Esporta un modello YOLO26n-obb in un formato diverso come ONNX, CoreML, ecc.

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.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-obb sono nella tabella sottostante. Puoi esportare in qualsiasi formato usando 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-obb.onnx. Gli esempi di utilizzo vengono mostrati per il tuo modello al termine dell'esportazione.

FormatoArgomento formatModelloMetadatiArgomenti
PyTorch-yolo26n-obb.pt-
TorchScripttorchscriptyolo26n-obb.torchscriptimgsz, half, dynamic, optimize, nms, batch, device
ONNXonnxyolo26n-obb.onnximgsz, half, int8, dynamic, simplify, opset, nms, batch, data, fraction, device
OpenVINOopenvinoyolo26n-obb_openvino_model/imgsz, half, dynamic, int8, nms, batch, data, fraction, device
TensorRTengineyolo26n-obb.engineimgsz, half, dynamic, simplify, workspace, int8, nms, batch, data, fraction, device
CoreMLcoremlyolo26n-obb.mlpackageimgsz, dynamic, half, int8, nms, batch, device
TF SavedModelsaved_modelyolo26n-obb_saved_model/imgsz, keras, int8, nms, batch, data, fraction, device
TF GraphDefpbyolo26n-obb.pbimgsz, batch, device
TF Litetfliteyolo26n-obb.tfliteimgsz, half, int8, nms, batch, data, fraction, device
TF Edge TPUedgetpuyolo26n-obb_edgetpu.tfliteimgsz, int8, data, fraction, device
TF.jstfjsyolo26n-obb_web_model/imgsz, half, int8, nms, batch, data, fraction, device
PaddlePaddlepaddleyolo26n-obb_paddle_model/imgsz, batch, device
MNNmnnyolo26n-obb.mnnimgsz, batch, int8, half, device
NCNNncnnyolo26n-obb_ncnn_model/imgsz, half, batch, device
IMX500imxyolo26n-obb_imx_model/imgsz, int8, data, fraction, nms, device
RKNNrknnyolo26n-obb_rknn_model/imgsz, batch, name, int8, data, fraction, device
ExecuTorchexecutorchyolo26n-obb_executorch_model/imgsz, batch, device
Axeleraaxelerayolo26n-obb_axelera_model/imgsz, batch, int8, data, fraction, device
DEEPXdeepxyolo26n-obb_deepx_model/imgsz, int8, data, optimize, device
Qualcomm QNNqnnyolo26n-obb_qnn_model/imgsz, batch, name, int8, data, fraction, device

Consulta tutti i dettagli di export nella pagina Export.

Link to this sectionApplicazioni nel mondo reale#

Il rilevamento OBB con YOLO26 ha numerose applicazioni pratiche in vari settori:

  • Gestione marittima e portuale: Rilevamento di navi e imbarcazioni con varie angolazioni per la gestione della flotta e il monitoraggio.
  • Pianificazione urbana: Analisi di edifici e infrastrutture da immagini aeree.
  • Agricoltura: Monitoraggio delle colture e delle attrezzature agricole da riprese con droni.
  • Settore energetico: Ispezione di pannelli solari e turbine eoliche con diversi orientamenti.
  • Trasporti: Tracciamento di veicoli su strada e in parcheggi da varie prospettive.

Queste applicazioni traggono vantaggio dalla capacità delle OBB di adattarsi con precisione agli oggetti a qualsiasi angolazione, fornendo un rilevamento più accurato rispetto ai riquadri di delimitazione tradizionali.

Link to this sectionFAQ#

Link to this sectionCosa sono le Oriented Bounding Boxes (OBB) e in cosa differiscono dai normali riquadri di delimitazione?#

Le Oriented Bounding Boxes (OBB) includono un angolo aggiuntivo per migliorare l'accuratezza della localizzazione degli oggetti nelle immagini. A differenza dei normali riquadri di delimitazione, che sono rettangoli allineati agli assi, le OBB possono ruotare per adattarsi meglio all'orientamento dell'oggetto. Questo è particolarmente utile per le applicazioni che richiedono un posizionamento preciso degli oggetti, come nelle immagini aeree o satellitari (Guida ai dataset).

Link to this sectionCome addestro un modello YOLO26n-obb utilizzando un dataset personalizzato?#

Per addestrare un modello YOLO26n-obb con un dataset personalizzato, segui l'esempio seguente utilizzando Python o CLI:

Esempio
from ultralytics import YOLO

# Load a pretrained model
model = YOLO("yolo26n-obb.pt")

# Train the model
results = model.train(data="path/to/custom_dataset.yaml", epochs=100, imgsz=640)

Per ulteriori argomenti di addestramento, consulta la sezione Configurazione.

Link to this sectionQuali dataset posso utilizzare per addestrare i modelli YOLO26-OBB?#

I modelli YOLO26-OBB sono preaddestrati su dataset come DOTAv1, ma puoi utilizzare qualsiasi dataset formattato per OBB. Informazioni dettagliate sui formati dei dataset OBB sono disponibili nella Guida ai dataset.

Link to this sectionCome posso esportare un modello YOLO26-OBB in formato ONNX?#

Esportare un modello YOLO26-OBB in formato ONNX è semplice utilizzando Python o CLI:

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Export the model
model.export(format="onnx")

Per ulteriori formati di esportazione e dettagli, consulta la pagina Esportazione.

Link to this sectionCome convalido l'accuratezza di un modello YOLO26n-obb?#

Per convalidare un modello YOLO26n-obb, puoi utilizzare Python o i comandi CLI come mostrato di seguito:

Esempio
from ultralytics import YOLO

# Load a model
model = YOLO("yolo26n-obb.pt")

# Validate the model
metrics = model.val(data="dota8.yaml")

Vedi i dettagli completi sulla convalida nella sezione Val.

Commenti