Guida rapida a YOLOv5 🚀#
Inizia il tuo viaggio nell'affascinante mondo del rilevamento degli oggetti in tempo reale con Ultralytics YOLOv5! Questa guida è pensata come punto di partenza completo per appassionati e professionisti dell'IA che vogliono padroneggiare YOLOv5. Dalla configurazione iniziale alle tecniche di addestramento avanzate, troverai tutto ciò che ti serve. Al termine di questa guida, avrai le conoscenze necessarie per implementare YOLOv5 nei tuoi progetti con sicurezza, utilizzando metodi di deep learning all'avanguardia. Accendiamo i motori e lanciamoci alla scoperta di YOLOv5!
Installazione#
Preparati al lancio clonando il repository di YOLOv5 e configurando l'ambiente. In questo modo ti assicuri che tutti i requisiti necessari siano installati. Verifica di avere Python>=3.8.0 e PyTorch>=1.8 pronti al decollo. Questi strumenti fondamentali sono indispensabili per eseguire YOLOv5 in modo efficace.
git clone https://github.com/ultralytics/yolov5 # clone repository
cd yolov5
pip install -r requirements.txt # install dependenciesInferenza con PyTorch Hub#
Scopri la semplicità dell'inferenza di YOLOv5 con PyTorch Hub, dove i modelli vengono scaricati automaticamente dall'ultima release di YOLOv5. Questo metodo sfrutta la potenza di PyTorch per caricare ed eseguire facilmente i modelli, rendendo semplice ottenere le predizioni.
import torch
# Model loading
model = torch.hub.load("ultralytics/yolov5", "yolov5s") # Can be 'yolov5n' - 'yolov5x6', or 'custom'
# Inference on images
img = "https://ultralytics.com/images/zidane.jpg" # Can be a file, Path, PIL, OpenCV, numpy, or list of images
# Run inference
results = model(img)
# Display results
results.print() # or .show(), .save(), .crop(), .pandas(), etc.Inferenza con detect.py#
Sfrutta detect.py per un'inferenza versatile su varie origini. Lo script recupera automaticamente i modelli dall'ultima versione di YOLOv5 e salva facilmente i risultati. Questo script è ideale per l'uso da riga di comando e per integrare YOLOv5 in sistemi più grandi, supportando input come immagini, video, directory, webcam e persino streaming live.
python detect.py --weights yolov5s.pt --source 0 # webcam
python detect.py --weights yolov5s.pt --source image.jpg # image
python detect.py --weights yolov5s.pt --source video.mp4 # video
python detect.py --weights yolov5s.pt --source screen # screenshot
python detect.py --weights yolov5s.pt --source path/ # directory
python detect.py --weights yolov5s.pt --source list.txt # list of images
python detect.py --weights yolov5s.pt --source list.streams # list of streams
python detect.py --weights yolov5s.pt --source 'path/*.jpg' # glob pattern
python detect.py --weights yolov5s.pt --source 'https://youtu.be/LNwODJXcvt4' # YouTube video
python detect.py --weights yolov5s.pt --source 'rtsp://example.com/media.mp4' # RTSP, RTMP, HTTP streamAddestramento#
Replica i benchmark del dataset COCO di YOLOv5 seguendo le istruzioni di addestramento sottostanti. I modelli e i dataset necessari (come coco128.yaml o il completo coco.yaml) vengono prelevati direttamente dall'ultima versione di YOLOv5. L'addestramento di YOLOv5n/s/m/l/x su una GPU V100 richiede tipicamente rispettivamente 1/2/4/6/8 giorni (nota che le configurazioni di addestramento multi-GPU funzionano più velocemente). Massimizza le prestazioni usando il --batch-size più alto possibile oppure usa --batch-size -1 per la funzione AutoBatch di YOLOv5, che trova automaticamente la dimensione del batch ottimale. Le seguenti dimensioni del batch sono ideali per le GPU V100-16GB. Vedi il riepilogo dell'architettura per i dettagli sui file di configurazione dei modelli (*.yaml).
# Train YOLOv5n on COCO128 for 3 epochs
python train.py --data coco128.yaml --epochs 3 --weights yolov5n.pt --batch-size 128
# Train YOLOv5s on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5s.yaml --batch-size 64
# Train YOLOv5m on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5m.yaml --batch-size 40
# Train YOLOv5l on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5l.yaml --batch-size 24
# Train YOLOv5x on COCO for 300 epochs
python train.py --data coco.yaml --epochs 300 --weights '' --cfg yolov5x.yaml --batch-size 16
In conclusione, YOLOv5 non è solo uno strumento all'avanguardia per il rilevamento degli oggetti, ma anche una testimonianza della potenza del machine learning nel trasformare il modo in cui interagiamo con il mondo attraverso la comprensione visiva. Mentre prosegui con questa guida e inizi ad applicare YOLOv5 ai tuoi progetti, ricorda che sei in prima linea in una rivoluzione tecnologica, con la capacità di realizzare risultati straordinari nella computer vision. Se hai bisogno di ulteriori informazioni o del supporto di altri esperti del settore, ti invitiamo a visitare il nostro repository su GitHub, sede di una vivace community di sviluppatori e ricercatori. Esplora ulteriori risorse, come Ultralytics Platform, per gestire dataset e addestrare modelli senza scrivere codice, oppure consulta la nostra pagina Soluzioni per applicazioni reali e nuove idee. Continua a esplorare, continua a innovare e goditi le meraviglie di YOLOv5. Buon rilevamento! 🌠🔍
FAQ#
Non per l'inferenza. PyTorch Hub scarica il codice e i pesi su richiesta con
torch.hub.load("ultralytics/yolov5", "yolov5s"). La clonazione è necessaria per eseguire gli scripttrain.py,val.py,detect.pyeexport.py.yolov5s.ptoffre il miglior equilibrio tra velocità e precisione per la maggior parte dei progetti. Usayolov5n.ptper i dispositivi edge, dayolov5m.ptayolov5x.ptquando la precisione conta più della velocità, e le varianti P6 comeyolov5s6.ptper l'addestramento a 1280 pixel. Vedi la tabella dei checkpoint preaddestrati per l'elenco completo.Inserisci le immagini e le etichette in formato YOLO nelle cartelle parallele
images/elabels/, descrivile in undataset.yamled eseguipython train.py --data dataset.yaml --weights yolov5s.pt. Il tutorial Addestramento su dati personalizzati guida passo dopo passo.YOLOv5 è stabile e rimane pienamente supportato nel repository indipendente, ma non è più il modello più recente. Per il nuovo lavoro, YOLO26 nel pacchetto
ultralyticsè più veloce, più preciso ed esporta end-to-end senza NMS, usando lo stesso flusso di lavoropip install ultralyticsdescritto nella Guida rapida.