Utilizzo di Python

Benvenuto nella documentazione sull'utilizzo di Python per Ultralytics YOLO! Questa guida è progettata per aiutarti a integrare facilmente Ultralytics YOLO nei tuoi progetti Python per object detection, segmentazione e classificazione. 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, consentendoti di implementare rapidamente funzionalità avanzate di object detection. Iniziamo!



Watch: Mastering Ultralytics YOLO: Python

Ad esempio, puoi caricare un modello, addestrarlo, valutarne le prestazioni su un set di validazione e persino esportarlo in formato ONNX 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")

Train

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

Train
from ultralytics import YOLO

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

Esempi di addestramento

Val

La modalità Val viene utilizzata per validare un modello YOLO dopo che è stato addestrato. In questa modalità, il modello viene valutato su un set di validazione per misurarne la precisione e le prestazioni di generalizzazione. Questa modalità può essere utilizzata per regolare gli iperparametri del modello per migliorarne le prestazioni.

Val
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 Val

Predict

La modalità Predict 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.

Predict
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

Export

La modalità Export viene utilizzata per esportare un modello YOLO in un formato che può essere utilizzato per la distribuzione. 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.

Export

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

from ultralytics import YOLO

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

Esempi di esportazione

Track

La modalità Track 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 live per eseguire il tracciamento degli oggetti in tempo reale. Questa modalità è utile per applicazioni come sistemi di sorveglianza o auto a guida autonoma.

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 modalità Benchmark viene utilizzata per profilare la velocità e la precisione di vari formati di esportazione per YOLO. I benchmark forniscono informazioni sulla dimensione del formato esportato, le sue metriche mAP50-95 (per object detection e segmentazione) o le metriche accuracy_top5 (per la classificazione) e il tempo di inferenza in millisecondi per immagine attraverso 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 precisione.

Benchmark

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, half=False, device=0)

Esempi di benchmark

Utilizzo 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 consente una maggiore flessibilità e personalizzazione nei tuoi flussi di lavoro di machine learning.

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 attività personalizzate o esplorare idee di ricerca e sviluppo. Il design modulare di Ultralytics YOLO ti consente di adattare il framework alle tue esigenze specifiche, che tu stia lavorando a una nuova attività di computer vision o ottimizzando modelli esistenti per ottenere prestazioni migliori.

Tutorial di personalizzazione

FAQ

Come posso integrare YOLO nel mio progetto Python per l'object detection?

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

# 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()

Vedi esempi più dettagliati nella nostra sezione modalità Predict.

Quali sono le diverse modalità disponibili in YOLO?

Ultralytics YOLO fornisce varie modalità per soddisfare diversi flussi di lavoro di machine learning. Queste includono:

  • Train: Addestra un modello utilizzando dataset personalizzati.
  • Val: Valuta le prestazioni del modello su un set di validazione.
  • Predict: Esegui previsioni su nuove immagini o flussi video.
  • Export: Esporta modelli in vari formati come ONNX e TensorRT.
  • Track: Tracciamento di oggetti in tempo reale in flussi video.
  • Benchmark: Benchmark delle prestazioni del modello su diverse configurazioni.

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

Come posso addestrare un modello YOLO personalizzato utilizzando il mio dataset?

Per addestrare un modello YOLO personalizzato, devi specificare il tuo dataset e altri iperparametri. 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 ulteriori dettagli sull'addestramento e collegamenti ipertestuali a esempi di utilizzo, visita la nostra pagina modalità Train.

Come posso esportare i modelli YOLO per la distribuzione?

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

# Load the YOLO model
model = YOLO("yolo26n.pt")

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

Per varie opzioni di esportazione, consulta la documentazione sulla modalità Export.

Posso validare il mio modello YOLO su dataset diversi?

Sì, è possibile validare i modelli YOLO su dataset diversi. Dopo l'addestramento, puoi utilizzare la modalità di validazione 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")

Controlla la pagina modalità Val per esempi dettagliati e utilizzo.

Commenti