Utilizzo di Python#
Benvenuto nella documentazione sull'utilizzo di Ultralytics YOLO con Python! Questa guida è progettata per aiutarti a integrare senza problemi 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 utilizzare modelli pretrained, addestrare nuovi modelli ed eseguire predizioni sulle immagini. L'interfaccia Python facile da usare è una risorsa preziosa per chiunque voglia integrare YOLO nei propri progetti Python, consentendoti di implementare rapidamente funzionalità avanzate di rilevamento degli oggetti. Iniziamo!
Watch: Mastering Ultralytics YOLO: Python
Ad esempio, puoi caricare un modello, addestrarlo, valutarne le prestazioni su un set di validazione e persino esportarlo nel formato ONNX con poche righe di codice.
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 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 consiste nell'ottimizzazione dei parametri del modello, affinché possa prevedere con precisione le classi e le posizioni degli oggetti in un'immagine.
from ultralytics import YOLO
model = YOLO("yolo26n.pt") # pass any model type
results = model.train(epochs=5)Val#
La modalità Val viene utilizzata per validare un modello YOLO dopo il suo addestramento. In questa modalità, il modello viene valutato su un set di validazione per misurarne l'accuratezza e le prestazioni di generalizzazione. Questa modalità può essere utilizzata per ottimizzare gli iperparametri del modello e migliorarne 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 on training data
model.val()Predizione#
La modalità Predict viene utilizzata per effettuare predizioni mediante un modello YOLO addestrato su nuove immagini o video. In questa modalità, il modello viene caricato da un file checkpoint e puoi 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.
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])Esportazione#
La modalità Export 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 esegue il deployment del modello in ambienti di produzione.
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)Tracking#
La modalità Track viene utilizzata per tracciare oggetti in tempo reale mediante un modello YOLO. In questa modalità, il modello viene caricato da un file checkpoint e puoi fornire uno streaming video dal vivo per eseguire il tracking degli oggetti in tempo reale. Questa modalità è utile per applicazioni come i sistemi di videosorveglianza o le auto a guida autonoma.
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")Benchmark#
La modalità Benchmark viene utilizzata per profilare la velocità e l'accuratezza dei vari formati di esportazione per YOLO. I benchmark forniscono informazioni sulle dimensioni del formato esportato, sulle relative metriche mAP50-95 (per il rilevamento degli oggetti e la segmentazione) o 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 aiutarti a scegliere il formato di esportazione ottimale per il tuo caso d'uso specifico in base ai requisiti di velocità e accuratezza.
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)Utilizzo dei trainer#
La classe del modello YOLO funge da wrapper di alto livello per le classi Trainer. Ogni task YOLO dispone di un proprio trainer, che eredita da BaseTrainer. Questa architettura consente una maggiore flessibilità e personalizzazione nei tuoi workflow di machine learning.
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 # path to 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")
# Resume from the last checkpoint
trainer = DetectionTrainer(overrides={**overrides, "resume": trainer.last})Puoi personalizzare facilmente 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, sia che stia ottimizzando modelli esistenti per ottenere prestazioni migliori.
Tutorial sulla personalizzazione
FAQ#
Integrare Ultralytics YOLO nei tuoi progetti Python è semplice. Puoi caricare un modello pretrained 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()Consulta esempi più dettagliati nella sezione Predict Mode.
Ultralytics YOLO offre diverse modalità per adattarsi a vari workflow di machine learning. Queste includono:
- Train: addestra un modello utilizzando dataset personalizzati.
- Val: valida le prestazioni del modello su un set di validazione.
- Predict: esegue predizioni su nuove immagini o stream video.
- Export: esporta i modelli in vari formati, come ONNX e TensorRT.
- Track: esegue il tracking degli oggetti in tempo reale negli stream video.
- Benchmark: valuta le prestazioni del modello in diverse configurazioni.
Ogni modalità è progettata per offrire funzionalità complete per le diverse fasi dello sviluppo e del deployment del modello.
Per addestrare un modello YOLO personalizzato, devi specificare il tuo dataset e gli 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 a esempi di utilizzo, visita la nostra pagina Train Mode.
Esportare i modelli YOLO in un formato adatto al deployment è semplice con la funzione
export. Ad esempio, puoi esportare un modello nel 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 le varie opzioni di esportazione, consulta la documentazione della modalità Export.
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")Consulta la pagina Val Mode per esempi dettagliati e informazioni sull'utilizzo.