Python Utilizzo
Benvenuti nella documentazione sull'uso di YOLO11 Python ! Questa guida è stata pensata per aiutarvi a integrare perfettamente YOLO11 nei vostri progetti Python per il rilevamento, la segmentazione e la classificazione degli oggetti. Qui imparerete come caricare e utilizzare i modelli preaddestrati, addestrare nuovi modelli ed eseguire previsioni sulle immagini. L'interfaccia di facile utilizzo di Python è una risorsa preziosa per chiunque voglia incorporare YOLO11 nei propri progetti Python , consentendo di implementare rapidamente funzionalità avanzate di rilevamento degli oggetti. Cominciamo!
Guarda: Mastering Ultralytics YOLO11 : Python
Ad esempio, gli utenti possono 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("yolo11n.yaml")
# Load a pretrained YOLO model (recommended for training)
model = YOLO("yolo11n.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")
Treno
La modalità Train è utilizzata per addestrare un modello YOLO11 su un set di dati personalizzato. In questa modalità, il modello viene addestrato utilizzando il set di dati e gli iperparametri specificati. 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.
Treno
Val
La modalità Val è utilizzata per convalidare un modello YOLO11 dopo che è stato addestrato. 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 mettere a punto gli iperparametri del modello per migliorarne le prestazioni.
Val
Prevedere
La modalità Predict è utilizzata per fare previsioni utilizzando un modello YOLO11 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 predice le classi e le posizioni degli oggetti nelle immagini o nei video in ingresso.
Prevedere
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])
# results would be a list of Results object including all the predictions by default
# but be careful as it could occupy a lot memory when there're many images,
# especially the task is segmentation.
# 1. return as a list
results = model.predict(source="folder")
# results would be a generator which is more friendly to memory by setting stream=True
# 2. return as a generator
results = model.predict(source=0, stream=True)
for result in results:
# Detection
result.boxes.xyxy # box with xyxy format, (N, 4)
result.boxes.xywh # box with xywh format, (N, 4)
result.boxes.xyxyn # box with xyxy format but normalized, (N, 4)
result.boxes.xywhn # box with xywh format but normalized, (N, 4)
result.boxes.conf # confidence score, (N, 1)
result.boxes.cls # cls, (N, 1)
# Segmentation
result.masks.data # masks, (N, H, W)
result.masks.xy # x,y segments (pixels), List[segment] * N
result.masks.xyn # x,y segments (normalized), List[segment] * N
# Classification
result.probs # cls prob, (num_class, )
# Each result is composed of torch.Tensor by default,
# in which you can easily use following functionality:
result = result.cuda()
result = result.cpu()
result = result.to("cpu")
result = result.numpy()
Esportazione
La modalità di esportazione è utilizzata per esportare un modello YOLO11 in un formato utilizzabile per la distribuzione. In questa modalità, il modello viene convertito in un formato che può essere utilizzato da altre applicazioni software o dispositivi hardware. Questa modalità è utile quando si distribuisce il modello in ambienti di produzione.
Esportazione
Esportazione di un modello ufficiale YOLO11n in ONNX con dimensioni dinamiche del lotto e dell'immagine.
Traccia
La modalità Track viene utilizzata per tracciare gli oggetti in tempo reale utilizzando un modello YOLO11 . 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 i sistemi di sorveglianza o le auto a guida autonoma.
Traccia
from ultralytics import YOLO
# Load a model
model = YOLO("yolo11n.pt") # load an official detection model
model = YOLO("yolo11n-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 tracciare un profilo della velocità e della precisione di vari formati di esportazione per YOLO11. I benchmark forniscono informazioni sulle dimensioni del formato esportato, sulla sua velocità e sulla sua precisione. mAP50-95
metriche (per il rilevamento e la segmentazione degli oggetti) o accuracy_top5
metriche (per la classificazione) e il 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 loro caso d'uso specifico, in base ai requisiti di velocità e precisione.
Benchmark
Utilizzo dei formatori
YOLO
La classe Model è un wrapper di alto livello per le classi Trainer. Ogni task di YOLO ha il proprio trainer che eredita da BaseTrainer
.
Esempio di addestramento al rilevamento
from ultralytics.models.yolo 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 = detect.DetectionTrainer(overrides=overrides)
È possibile personalizzare facilmente Trainers per supportare attività personalizzate o per esplorare idee di ricerca e sviluppo. Per saperne di più sulla personalizzazione Trainers
, Validators
e Predictors
per soddisfare le esigenze del progetto nella sezione Personalizzazione.
FAQ
Come posso integrare YOLO11 nel mio progetto Python per il rilevamento degli oggetti?
Integrare Ultralytics YOLO11 nei progetti Python è semplice. È possibile 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("yolo11n.pt")
# Perform object detection on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Visualize the results
for result in results:
result.show()
Per esempi più dettagliati, consultare la sezione Modalità di previsione.
Quali sono le diverse modalità disponibili in YOLO11?
Ultralytics YOLO11 offre varie modalità per soddisfare i diversi flussi di lavoro dell 'apprendimento automatico. Queste includono:
- Treno: Addestra un modello utilizzando set di dati personalizzati.
- Val: Convalida delle prestazioni del modello su un set di convalida.
- Prevedere: Fare previsioni su nuove immagini o flussi video.
- Esportazione: Esportazione di modelli in vari formati come ONNX, TensorRT.
- Traccia: 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 di sviluppo e distribuzione dei modelli.
Come si addestra un modello YOLO11 personalizzato utilizzando il mio set di dati?
Per addestrare un modello YOLO11 personalizzato, è necessario specificare il dataset e altri iperparametri. Ecco un rapido esempio:
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.yaml")
# Train the model with custom dataset
model.train(data="path/to/your/dataset.yaml", epochs=10)
Per ulteriori dettagli sulla formazione e collegamenti ipertestuali a esempi di utilizzo, visitate la nostra pagina Modalità di formazione.
Come si esportano i modelli YOLO11 per la distribuzione?
L'esportazione dei modelli di YOLO11 in un formato adatto alla distribuzione è semplice con l'opzione export
funzione. Ad esempio, è possibile esportare un modello in formato ONNX :
from ultralytics import YOLO
# Load the YOLO model
model = YOLO("yolo11n.pt")
# Export the model to ONNX format
model.export(format="onnx")
Per le varie opzioni di esportazione, consultare la documentazione sulla modalità di esportazione.
Posso validare il mio modello YOLO11 su diversi set di dati?
Sì, è possibile convalidare i modelli di YOLO11 su diversi set di dati. Dopo l'addestramento, è possibile utilizzare la modalità di validazione per valutare le prestazioni:
from ultralytics import YOLO
# Load a YOLO11 model
model = YOLO("yolo11n.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")
Per esempi dettagliati e per l'utilizzo, consultare la pagina Modalità Val.