YOLO Vision 2026:

Utilizzo di Python#

Benvenuto nella documentazione sull'uso di Ultralytics YOLO Python! Questa guida è progettata per aiutarti a integrare senza problemi Ultralytics YOLO nei tuoi progetti Python per object detection, instance segmentation, semantic segmentation, depth estimation e classification. Qui imparerai a caricare e utilizzare modelli preaddestrati, ad addestrare nuovi modelli e a eseguire previsioni sulle immagini. L'interfaccia Python, facile da usare, è una risorsa preziosa per chiunque voglia incorporare YOLO nei propri progetti Python, permettendoti di implementare rapidamente funzionalità avanzate di rilevamento degli oggetti. Iniziamo!



Watch: Mastering Ultralytics YOLO: Python

Ad esempio, gli utenti possono caricare un modello, addestrarlo, valutarne le prestazioni su un set divalidazione e persino export it to ONNX format con poche righe di codice.

Python
from ultralytics import YOLO

# Create a new YOLO model from scratch
model = YOLO("yolo26n.yaml")

# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo26n.pt")

# Train the model using the 'coco8.yaml' dataset for 3 epochs
results = model.train(data="coco8.yaml", epochs=3)

# Evaluate the model's performance on the validation set
results = model.val()

# Perform object detection on an image using the model
results = model("https://ultralytics.com/images/bus.jpg")

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

Addestramento#

La Train mode viene utilizzata per addestrare un modello YOLO su un dataset personalizzato. In questa modalità, il modello viene addestrato utilizzando il dataset specificato e gli iperparametri. Il processo di addestramento prevede l'ottimizzazione dei parametri del modello in modo che possa prevedere con precisione le classi e le posizioni degli oggetti in un'immagine.

Addestramento
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # pass any model type
results = model.train(epochs=5)

Esempi di addestramento

Valutazione#

La Val mode viene utilizzata per convalidare un modello YOLO dopo che è stato addestrato. In questa modalità, il modello viene valutato su un set divalidazione per misurarne l'accuracy e le prestazioni di generalizzazione. Questa modalità può essere utilizzata per ottimizzare gli iperparametri del modello per migliorarne le prestazioni.

Valutazione
from ultralytics import YOLO

# Load a YOLO model
model = YOLO("yolo26n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=5)

# Validate on training data
model.val()

Esempi di validazione

Previsione#

La Predict mode viene utilizzata per effettuare previsioni utilizzando un modello YOLO addestrato su nuove immagini o video. In questa modalità, il modello viene caricato da un file di checkpoint e l'utente può fornire immagini o video per eseguire l'inferenza. Il modello prevede le classi e le posizioni degli oggetti nelle immagini o nei video di input.

Previsione
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# accepts all formats - image/dir/Path/URL/video/PIL/ndarray. 0 for webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Display preds. Accepts all YOLO predict arguments

# from PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # save plotted images

# from ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # save predictions as labels

# from list of PIL/ndarray
results = model.predict(source=[im1, im2])

Esempi di previsione

Esportazione#

La Export mode viene utilizzata per esportare un modello YOLO in un formato utilizzabile per il deployment. In questa modalità, il modello viene convertito in un formato utilizzabile da altre applicazioni software o dispositivi hardware. Questa modalità è utile quando si distribuisce il modello in ambienti di produzione.

Esportazione

Esporta un modello YOLO ufficiale in ONNX con batch-size e image-size dinamici.

from ultralytics import YOLO

model = YOLO("yolo26n.pt")
model.export(format="onnx", dynamic=True)

Esempi di esportazione

Track#

La Track mode viene utilizzata per tracciare oggetti in tempo reale utilizzando un modello YOLO. In questa modalità, il modello viene caricato da un file di checkpoint e l'utente può fornire un flusso video in diretta per eseguire il tracciamento degli oggetti in tempo reale. Questa modalità è utile per applicazioni come sistemi di sorveglianza o self-driving cars.

Track
from ultralytics import YOLO

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

# Track with the model
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True)
results = model.track(source="https://youtu.be/LNwODJXcvt4", show=True, tracker="bytetrack.yaml")

Esempi di tracciamento

Benchmark#

La Benchmark mode viene utilizzata per profilare la velocità e l'accuratezza di vari formati di esportazione per YOLO. I benchmark forniscono informazioni sulle dimensioni del formato esportato, sulle sue metriche mAP50-95 (per object detection e segmentation) o sulle metriche accuracy_top1 (per classification), e sul tempo di inferenza in millisecondi per immagine tra vari formati di esportazione come ONNX, OpenVINO, TensorRT e altri. Queste informazioni possono aiutare gli utenti a scegliere il formato di esportazione ottimale per il loro caso d'uso specifico in base ai requisiti di velocità e accuratezza.

Benchmark

Esegui il benchmark di un modello YOLO ufficiale su tutti i formati di esportazione.

from ultralytics.utils.benchmarks import benchmark

# Benchmark
benchmark(model="yolo26n.pt", data="coco8.yaml", imgsz=640, device=0)

Esempi di benchmark

Utilizzo dei Trainer#

La classe di modello YOLO funge da wrapper di alto livello per le classi Trainer. Ogni task YOLO ha il proprio trainer, che eredita da BaseTrainer. Questa architettura consente una maggiore flessibilità e personalizzazione nei tuoi machine learning workflows.

Esempio di Detection Trainer
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

# trainer
trainer = DetectionTrainer(overrides={})
trainer.train()
trained_model = trainer.best

# Validator
val = DetectionValidator(args=...)
val(model=trained_model)

# predictor
pred = DetectionPredictor(overrides={})
pred(source=SOURCE, model=trained_model)

# resume from last weight
overrides["resume"] = trainer.last
trainer = DetectionTrainer(overrides=overrides)

Puoi facilmente personalizzare i Trainer per supportare task personalizzati o esplorare idee di ricerca e sviluppo. Il design modulare di Ultralytics YOLO ti consente di adattare il framework alle tue esigenze specifiche, sia che tu stia lavorando a un nuovo task di computer vision o perfezionando modelli esistenti per ottenere prestazioni migliori.

Tutorial sulla personalizzazione

FAQ#

  • Integrare Ultralytics YOLO nei tuoi progetti Python è semplice. Puoi caricare un modello pre-addestrato o addestrare un nuovo modello da zero. Ecco come iniziare:

    from ultralytics import YOLO
    
    # Load a pretrained YOLO model
    model = YOLO("yolo26n.pt")
    
    # Perform object detection on an image
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualize the results
    for result in results:
        result.show()

    Visualizza esempi più dettagliati nella nostra sezione Predict Mode.

  • Ultralytics YOLO offre varie modalità per soddisfare diversi machine learning workflows. Queste includono:

    • Train: addestra un modello utilizzando dataset personalizzati.
    • Val: convalida le prestazioni del modello su un set divalidazione.
    • Predict: effettua previsioni su nuove immagini o flussi video.
    • Export: esporta i modelli in vari formati come ONNX e TensorRT.
    • Track: tracciamento degli oggetti in tempo reale nei flussi video.
    • Benchmark: esegue il benchmark delle prestazioni del modello su diverse configurazioni.

    Ogni modalità è progettata per fornire funzionalità complete per le diverse fasi dello model development and deployment.

  • Per addestrare un modello YOLO personalizzato, devi specificare il tuo dataset e altri hyperparameters. Ecco un rapido esempio:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model with custom dataset
    model.train(data="path/to/your/dataset.yaml", epochs=10)

    Per maggiori dettagli sull'addestramento e collegamenti ipertestuali a esempi d'uso, visita la nostra pagina Train Mode.

  • L'esportazione di modelli YOLO in un formato adatto al deployment è semplice con la funzione export. Ad esempio, puoi esportare un modello in formato ONNX:

    from ultralytics import YOLO
    
    # Load the YOLO model
    model = YOLO("yolo26n.pt")
    
    # Export the model to ONNX format
    model.export(format="onnx")

    Per varie opzioni di esportazione, fai riferimento alla documentazione di Export Mode.

  • Sì, è possibile convalidare i modelli YOLO su diversi dataset. Dopo l'addestramento, puoi utilizzare la modalità di convalida per valutare le prestazioni:

    from ultralytics import YOLO
    
    # Load a YOLO model
    model = YOLO("yolo26n.yaml")
    
    # Train the model
    model.train(data="coco8.yaml", epochs=5)
    
    # Validate the model on a different dataset
    model.val(data="path/to/separate/data.yaml")

    Consulta la pagina Val Mode per esempi dettagliati e utilizzo.

Commenti