Ultralytics YOLO27:
Get Started

Utilizzo di Python#

Benvenuto nella documentazione sull'utilizzo di Ultralytics YOLO con Python! Questa guida è pensata per aiutarti a integrare facilmente Ultralytics YOLO nei tuoi progetti Python per il rilevamento degli oggetti, la segmentazione delle istanze, la segmentazione semantica, la stima della profondità e la classificazione. Qui imparerai a caricare e usare modelli pretrained, addestrare nuovi modelli ed eseguire predizioni sulle immagini. L'interfaccia Python intuitiva è una risorsa preziosa per chiunque voglia integrare YOLO nei propri progetti Python e consente di implementare rapidamente funzionalità avanzate di rilevamento degli oggetti. Iniziamo!



Guarda: Padroneggiare Ultralytics YOLO: Python

Ad esempio, gli utenti possono caricare un modello, addestrarlo, valutarne le prestazioni su un set di convalida e persino esportarlo in formato ONNX con poche righe di codice.

Python
from ultralytics import YOLO

# Crea un nuovo modello YOLO da zero
model = YOLO("yolo26n.yaml")

# Carica un modello YOLO pretrained (consigliato per l'addestramento)
model = YOLO("yolo26n.pt")

# Addestra il modello usando il dataset 'coco8.yaml' per 3 epoche
results = model.train(data="coco8.yaml", epochs=3)

# Valuta le prestazioni del modello sul set di convalida
results = model.val()

# Esegui il rilevamento degli oggetti in un'immagine usando il modello
results = model("https://ultralytics.com/images/bus.jpg")

# Esporta il modello in formato ONNX
success = model.export(format="onnx")

Addestra#

La modalità Train serve ad addestrare un modello YOLO su un dataset personalizzato. In questa modalità, il modello viene addestrato usando il dataset e gli iperparametri specificati. Il processo di addestramento prevede l'ottimizzazione dei parametri del modello affinché possa prevedere con precisione le classi e le posizioni degli oggetti in un'immagine.

Addestra
from ultralytics import YOLO

model = YOLO("yolo26n.pt")  # passa qualsiasi tipo di modello
results = model.train(epochs=5)

Esempi di addestramento

Convalida#

La modalità Val viene usata per convalidare un modello YOLO dopo l'addestramento. In questa modalità, il modello viene valutato su un set di convalida per misurarne l'accuratezza e le prestazioni di generalizzazione. Questa modalità può essere usata per ottimizzare gli iperparametri del modello e migliorarne le prestazioni.

Convalida
from ultralytics import YOLO

# Carica un modello YOLO
model = YOLO("yolo26n.yaml")

# Addestra il modello
model.train(data="coco8.yaml", epochs=5)

# Convalida sulla suddivisione di convalida del set di dati di addestramento
model.val()

Esempi di convalida

Predici#

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

Predici
import cv2
from PIL import Image

from ultralytics import YOLO

model = YOLO("model.pt")
# accetta tutti i formati: immagine/directory/Path/URL/video/PIL/ndarray. 0 per la webcam
results = model.predict(source="0")
results = model.predict(source="folder", show=True)  # Visualizza le previsioni. Accetta tutti gli argomenti di YOLO Predict

# da PIL
im1 = Image.open("bus.jpg")
results = model.predict(source=im1, save=True)  # salva le immagini con i grafici

# da ndarray
im2 = cv2.imread("bus.jpg")
results = model.predict(source=im2, save=True, save_txt=True)  # salva le previsioni come etichette

# da un elenco di PIL/ndarray
results = model.predict(source=[im1, im2])

Esempi di previsione

Esporta#

La modalità Export viene usata per esportare un modello YOLO in un formato adatto alla distribuzione. In questa modalità, il modello viene convertito in un formato utilizzabile da altre applicazioni software o dispositivi hardware. Questa modalità è utile per distribuire il modello negli ambienti di produzione.

Esporta

Esporta un modello YOLO ufficiale in ONNX con dimensioni dinamiche del batch e dell'immagine.

from ultralytics import YOLO

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

Esempi di esportazione

Tracciamento#

La modalità Track viene usata per tracciare oggetti in tempo reale con un modello YOLO. In questa modalità, il modello viene caricato da un file 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 i sistemi di sorveglianza o le auto a guida autonoma.

Tracciamento
from ultralytics import YOLO

# Carica un modello
model = YOLO("yolo26n.pt")  # carica un modello di rilevamento ufficiale
model = YOLO("yolo26n-seg.pt")  # carica un modello di segmentazione ufficiale
model = YOLO("path/to/best.pt")  # carica un modello personalizzato

# Esegui il tracciamento con il modello
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 modalità Benchmark viene usata per profilare la velocità e l'accuratezza dei diversi formati di esportazione per YOLO. I benchmark forniscono informazioni sulle dimensioni del formato esportato, sulle metriche mAP50-95 (per il rilevamento e la segmentazione degli oggetti) o sulle metriche accuracy_top1 (per la classificazione) e sul tempo di inferenza in millisecondi per immagine nei 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 proprio caso d'uso, in base ai requisiti di velocità e accuratezza.

Benchmark

Esegui il benchmark di un modello YOLO ufficiale in 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

Uso dei trainer#

La classe del modello YOLO funge da wrapper di alto livello per le classi Trainer. Ogni attività YOLO ha il proprio trainer, che eredita da BaseTrainer. Questa architettura offre maggiore flessibilità e possibilità di personalizzazione nei tuoi flussi di lavoro di machine learning.

Esempio di trainer per il rilevamento
from ultralytics.models.yolo.detect import DetectionPredictor, DetectionTrainer, DetectionValidator

overrides = {"model": "yolo26n.pt", "data": "coco8.yaml", "epochs": 3}

# Trainer
trainer = DetectionTrainer(overrides=overrides)
trainer.train()
trained_model = trainer.best  # percorso di best.pt

# Validator
validator = DetectionValidator(args={"data": "coco8.yaml"})
validator(model=trained_model)

# Predictor
predictor = DetectionPredictor(overrides={"model": trained_model})
predictor(source="https://ultralytics.com/images/bus.jpg")

# Riprendi un'esecuzione di addestramento interrotta dall'ultimo checkpoint
trainer = DetectionTrainer(overrides={"resume": "path/to/last.pt"})
trainer.train()

Puoi personalizzare facilmente i Trainer per supportare attività personalizzate o esplorare idee di ricerca e sviluppo. La struttura modulare di Ultralytics YOLO ti consente di adattare il framework alle tue esigenze specifiche, sia che tu stia lavorando a una nuova attività di visione artificiale, sia che tu stia ottimizzando modelli esistenti per ottenere prestazioni migliori.

Tutorial sulla personalizzazione

Domande frequenti#

  • Integrare Ultralytics YOLO nei tuoi progetti Python è semplice. Puoi caricare un modello preaddestrato o addestrarne uno nuovo da zero. Ecco come iniziare:

    from ultralytics import YOLO
    
    # Carica un modello YOLO preaddestrato
    model = YOLO("yolo26n.pt")
    
    # Esegui il rilevamento degli oggetti su un'immagine
    results = model("https://ultralytics.com/images/bus.jpg")
    
    # Visualizza i risultati
    for result in results:
        result.show()

    Trovi altri esempi dettagliati nella sezione Modalità Predict.

  • Ultralytics YOLO offre diverse modalità per adattarsi ai vari flussi di lavoro di machine learning. Ecco quali:

    • Train: addestra un modello usando set di dati personalizzati.
    • Val: convalida le prestazioni del modello su un set di convalida.
    • Predict: esegui previsioni su nuove immagini o flussi video.
    • Export: esporta i modelli in vari formati, come ONNX e TensorRT.
    • Track: traccia gli oggetti in tempo reale nei flussi video.
    • Benchmark: valuta le prestazioni del modello con diverse configurazioni.

    Ogni modalità è progettata per offrire funzionalità complete nelle diverse fasi dello sviluppo e della distribuzione dei modelli.

  • Per addestrare un modello YOLO personalizzato, devi specificare il set di dati e gli altri iperparametri. Ecco un breve esempio:

    from ultralytics import YOLO
    
    # Carica il modello YOLO
    model = YOLO("yolo26n.yaml")
    
    # Addestra il modello con un set di dati personalizzato
    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 Modalità Train.

  • Esportare i modelli YOLO in un formato adatto alla distribuzione è semplice con la funzione export. Ad esempio, puoi esportare un modello in formato ONNX:

    from ultralytics import YOLO
    
    # Carica il modello YOLO
    model = YOLO("yolo26n.pt")
    
    # Esporta il modello in formato ONNX
    model.export(format="onnx")

    Per le varie opzioni di esportazione, consulta la documentazione della Modalità Export.

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

    from ultralytics import YOLO
    
    # Carica un modello YOLO
    model = YOLO("yolo26n.yaml")
    
    # Addestra il modello
    model.train(data="coco8.yaml", epochs=5)
    
    # Convalida il modello su un set di dati diverso
    model.val(data="path/to/separate/data.yaml")

    Consulta la pagina Modalità Val per esempi dettagliati e istruzioni d'uso.

Commenti