Domande frequenti su Ultralytics YOLO (FAQ)#
Questa sezione delle FAQ affronta le domande e i problemi comuni che potresti incontrare mentre lavori con i repository di Ultralytics YOLO.
FAQ#
Ultralytics è un'azienda di AI specializzata nella computer vision e nei modelli all'avanguardia per il rilevamento degli oggetti e la segmentazione delle immagini, con particolare attenzione alla famiglia YOLO (rilevamento in un solo passaggio). Le sue offerte includono:
- Implementazioni open source di YOLO26 (l'ultima versione) e YOLO11 (la generazione precedente)
- Un'ampia gamma di modelli preaddestrati per diverse attività di computer vision
- Un pacchetto Python completo per integrare facilmente i modelli YOLO nei tuoi progetti
- Strumenti versatili per addestrare, testare e distribuire i modelli
- Documentazione completa e una community di supporto
Installare il pacchetto Ultralytics è semplice usando pip:
pip install ultralyticsPer installare l'ultima versione di sviluppo, esegui l'installazione direttamente dal repository GitHub:
pip install git+https://github.com/ultralytics/ultralytics.gitPuoi trovare istruzioni dettagliate per l'installazione nella guida rapida.
Requisiti minimi:
- Python 3.8+
- PyTorch 1.8+
- GPU compatibile con CUDA (per l'accelerazione GPU)
Configurazione consigliata:
- Python 3.8+
- PyTorch 1.10+
- GPU NVIDIA con CUDA 11.2+
- 8 GB+ di RAM
- 50 GB+ di spazio libero su disco (per archiviare i dataset e addestrare i modelli)
Per risolvere i problemi comuni, visita la pagina Problemi comuni di YOLO.
Per addestrare un modello YOLO personalizzato:
-
Prepara il tuo dataset nel formato YOLO (immagini e relativi file txt delle etichette).
-
Crea un file YAML che descriva la struttura e le classi del tuo dataset (vedi l'esempio di YAML per il dataset).
-
Usa il seguente codice Python per avviare l'addestramento:
from ultralytics import YOLO # Load a model model = YOLO("yolo26n.yaml") # build a new model from scratch model = YOLO("yolo26n.pt") # load a pretrained model (recommended for training) # Train the model results = model.train(data="path/to/your/data.yaml", epochs=100, imgsz=640)
Per una guida più approfondita, che includa la preparazione dei dati e le opzioni avanzate di addestramento, consulta la guida completa all'addestramento.
-
Ultralytics offre una vasta gamma di modelli preaddestrati per diverse attività:
- Rilevamento degli oggetti: YOLO26n, YOLO26s, YOLO26m, YOLO26l, YOLO26x
- Segmentazione delle istanze: YOLO26n-seg, YOLO26s-seg, YOLO26m-seg, YOLO26l-seg, YOLO26x-seg
- Segmentazione semantica: YOLO26n-sem, YOLO26s-sem, YOLO26m-sem, YOLO26l-sem, YOLO26x-sem
- Stima della profondità: YOLO26n-depth, YOLO26s-depth, YOLO26m-depth, YOLO26l-depth, YOLO26x-depth
- Classificazione: YOLO26n-cls, YOLO26s-cls, YOLO26m-cls, YOLO26l-cls, YOLO26x-cls
- Stima della posa: YOLO26n-pose, YOLO26s-pose, YOLO26m-pose, YOLO26l-pose, YOLO26x-pose
- Rilevamento orientato (OBB): YOLO26n-obb, YOLO26s-obb, YOLO26m-obb, YOLO26l-obb, YOLO26x-obb
Questi modelli variano per dimensioni e complessità, offrendo diversi compromessi tra velocità e accuratezza. Esplora l'intera gamma di modelli preaddestrati per trovare quello più adatto al tuo progetto.
Per eseguire l'inferenza con un modello addestrato:
from ultralytics import YOLO # Load a model model = YOLO("path/to/your/model.pt") # Perform inference results = model("path/to/image.jpg") # Process results for r in results: print(r.boxes) # print bbox predictions print(r.masks) # print mask predictions print(r.probs) # print class probabilitiesPer le opzioni avanzate di inferenza, tra cui l'elaborazione batch e l'inferenza sui video, consulta la guida dettagliata alla predizione.
Certamente! I modelli Ultralytics sono progettati per una distribuzione flessibile su diverse piattaforme:
- Dispositivi edge: ottimizza l'inferenza su dispositivi come NVIDIA Jetson o Raspberry Pi utilizzando TensorRT, ONNX o OpenVINO.
- Mobile: distribuisci i modelli su dispositivi Android o iOS convertendoli in LiteRT o Core ML.
- Cloud: sfrutta framework come TensorFlow Serving o TorchServe per distribuzioni cloud scalabili.
- Web: implementa l'inferenza direttamente nel browser utilizzando ONNX Runtime Web.
Ultralytics fornisce funzioni di esportazione per convertire i modelli in diversi formati per la distribuzione. Esplora l'ampia gamma di opzioni di distribuzione per trovare la soluzione più adatta al tuo caso d'uso.
Le principali differenze includono:
- Inference End-to-End Senza NMS: YOLO26 offre un'inferenza senza NMS con
nms=False. Il suo percorso predefinito uno-a-molti utilizza NMS per garantire l'accuratezza. - Rimozione di DFL: YOLO26 rimuove il modulo Distribution Focal Loss, semplificando l'esportazione e migliorando la compatibilità con dispositivi edge e a basso consumo.
- Ottimizzatore MuSGD: una combinazione ibrida di SGD e Muon (ispirata a Kimi K2 di Moonshot AI) per un addestramento più stabile e una convergenza più rapida.
- Prestazioni sulla CPU: YOLO26n è fino al 43% più veloce di YOLO11n nell'inferenza ONNX su CPU (Intel Xeon CPU @ 2.00 GHz), il che lo rende ideale per i dispositivi privi di GPU.
- Ottimizzazioni specifiche per attività: segmentazione migliorata con loss semantica e prototipi multi-scala, RLE per una stima precisa della posa e decodifica OBB migliorata con loss dell'angolo.
- Attività: entrambi i modelli supportano il rilevamento degli oggetti e la segmentazione delle istanze, mentre YOLO26 aggiunge la segmentazione semantica per predizioni dense a livello di pixel e la stima monoculare della profondità per la profondità di ogni pixel. Entrambi i modelli supportano inoltre la classificazione, la stima della posa e il rilevamento di oggetti orientati (OBB) in un framework unificato.
Per un confronto approfondito delle funzionalità e delle metriche delle prestazioni, visita la pagina della documentazione di YOLO26.
- Inference End-to-End Senza NMS: YOLO26 offre un'inferenza senza NMS con
Contribuire a Ultralytics è un ottimo modo per migliorare il progetto e ampliare le tue competenze. Ecco come puoi partecipare:
- Crea un fork del repository Ultralytics su GitHub.
- Crea un nuovo branch per la tua funzionalità o correzione di bug.
- Apporta le modifiche e assicurati che tutti i test vengano superati.
- Invia una pull request con una descrizione chiara delle modifiche.
- Partecipa al processo di revisione del codice.
Puoi contribuire anche segnalando bug, suggerendo funzionalità o migliorando la documentazione. Per linee guida dettagliate e best practice, consulta la guida alla contribuzione.
Ultralytics YOLO offre un ricco insieme di funzionalità per attività avanzate di computer vision:
- Rilevamento in tempo reale: rileva e classifica in modo efficiente gli oggetti in scenari in tempo reale.
- Funzionalità multi-attività: esegui il rilevamento degli oggetti, la segmentazione delle istanze, la segmentazione semantica, la stima monoculare della profondità, la classificazione, la stima della posa e il rilevamento di oggetti orientati (OBB) con un framework unificato.
- Modelli preaddestrati: accedi a una varietà di modelli preaddestrati che bilanciano velocità e accuratezza per diversi casi d'uso.
- Addestramento personalizzato: esegui facilmente il fine-tuning dei modelli su dataset personalizzati con la pipeline di addestramento flessibile.
- Ampie opzioni di distribuzione: esporta i modelli in diversi formati, come TensorRT, ONNX e CoreML, per distribuirli su varie piattaforme.
- Documentazione completa: usufruisci di una documentazione completa e di una community di supporto per i tuoi flussi di lavoro di computer vision.
Puoi migliorare le prestazioni del tuo modello YOLO con diverse tecniche:
- Ottimizzazione degli iperparametri: sperimenta diversi iperparametri usando la Guida all'ottimizzazione degli iperparametri per ottimizzare le prestazioni del modello.
- Data augmentation: implementa tecniche come ribaltamento, ridimensionamento, rotazione e regolazione del colore per arricchire il dataset di addestramento e migliorare la capacità di generalizzazione del modello.
- Transfer learning: sfrutta i modelli preaddestrati ed esegui il fine-tuning sul tuo dataset specifico usando la guida all'addestramento.
- Esporta in formati efficienti: converti il modello in formati ottimizzati come TensorRT o ONNX per un'inferenza più rapida usando la guida all'esportazione.
- Benchmark: usa la modalità Benchmark per misurare e migliorare sistematicamente la velocità e l'accuratezza dell'inferenza.
Ultralytics mette a disposizione numerose risorse per aiutarti a iniziare e a padroneggiare i suoi strumenti:
- 📚 Documentazione ufficiale: guide complete, riferimenti API e best practice.
- 💻 Repository GitHub: codice sorgente, script di esempio e contributi della community.
- ✍️ Blog di Ultralytics: articoli approfonditi, casi d'uso e approfondimenti tecnici.
- 💬 Forum della community: entra in contatto con altri utenti, fai domande e condividi le tue esperienze.
- 🎥 Canale YouTube: video tutorial, demo e webinar su vari argomenti di Ultralytics.
Queste risorse forniscono esempi di codice, casi d'uso reali e guide dettagliate per varie attività utilizzando i modelli Ultralytics.
Se hai bisogno di ulteriore assistenza, consulta la documentazione di Ultralytics o contatta la community tramite le Issue di GitHub o il forum ufficiale di discussione.