YOLO-NAS#
Tieni presente che Deci, i creatori originali di YOLO-NAS, sono stati acquisiti da NVIDIA. Di conseguenza, questi modelli non sono più gestiti attivamente da Deci. Ultralytics continua a supportare l'utilizzo di questi modelli, ma non sono previsti ulteriori aggiornamenti dal team originale.
Panoramica#
Sviluppato da Deci AI, YOLO-NAS è un modello fondazionale innovativo per il rilevamento degli oggetti. È il prodotto di un'avanzata tecnologia di ricerca dell'architettura neurale, progettata meticolosamente per affrontare i limiti dei precedenti modelli YOLO. Grazie a miglioramenti significativi nel supporto alla quantizzazione e nei compromessi tra accuratezza e latenza, YOLO-NAS rappresenta un importante passo avanti nel rilevamento degli oggetti.
Panoramica di YOLO-NAS. YOLO-NAS utilizza blocchi consapevoli della quantizzazione e una quantizzazione selettiva per ottenere prestazioni ottimali. Quando il modello viene convertito nella versione quantizzata INT8, subisce una perdita di precisione minima, con un miglioramento significativo rispetto ad altri modelli. Questi progressi culminano in un'architettura superiore, con capacità di rilevamento degli oggetti senza precedenti e prestazioni eccellenti.
Funzionalità principali#
- Blocco di base ottimizzato per la quantizzazione: YOLO-NAS introduce un nuovo blocco di base ottimizzato per la quantizzazione, affrontando una delle limitazioni significative dei precedenti modelli YOLO.
- Addestramento e quantizzazione sofisticati: YOLO-NAS sfrutta schemi di addestramento avanzati e la quantizzazione post-addestramento per migliorare le prestazioni.
- Ottimizzazione e pre-addestramento AutoNAC: YOLO-NAS utilizza l'ottimizzazione AutoNAC ed è pre-addestrato su dataset importanti come COCO, Objects365 e Roboflow 100. Questo pre-addestramento lo rende estremamente adatto alle attività di rilevamento degli oggetti a valle negli ambienti di produzione.
Modelli pre-addestrati#
Sperimenta la potenza del rilevamento degli oggetti di nuova generazione con i modelli YOLO-NAS pre-addestrati forniti da Ultralytics. Questi modelli sono progettati per offrire prestazioni eccellenti sia in termini di velocità sia di accuratezza. Scegli tra diverse opzioni, adattate alle tue esigenze specifiche:
| Modello | mAP | Latenza (ms) |
|---|---|---|
| YOLO-NAS S | 47.5 | 3.21 |
| YOLO-NAS M | 51.55 | 5.85 |
| YOLO-NAS L | 52.22 | 7.87 |
| YOLO-NAS S INT-8 | 47.03 | 2.36 |
| YOLO-NAS M INT-8 | 51.0 | 3.78 |
| YOLO-NAS L INT-8 | 52.1 | 4.78 |
Ogni variante del modello è progettata per offrire un equilibrio tra precisione media media (mAP) e latenza, aiutandoti a ottimizzare le attività di rilevamento degli oggetti sia per le prestazioni sia per la velocità.
Esempi di utilizzo#
Ultralytics ha reso i modelli YOLO-NAS facili da integrare nelle tue applicazioni Python tramite il nostro pacchetto Python ultralytics. Il pacchetto fornisce un'API Python intuitiva per semplificare il processo.
Gli esempi seguenti mostrano come utilizzare i modelli YOLO-NAS con il pacchetto ultralytics per l'inferenza e la validazione:
Esempi di inferenza e validazione#
In questo esempio validiamo YOLO-NAS-s sul dataset COCO8.
Questo esempio fornisce codice semplice per l'inferenza e la validazione di YOLO-NAS. Per gestire i risultati dell'inferenza, consulta la modalità Predict. Per utilizzare YOLO-NAS con modalità aggiuntive, consulta Val ed Export. YOLO-NAS nel pacchetto ultralytics non supporta l'addestramento.
I file dei modelli preaddestrati di PyTorch *.pt possono essere passati alla classe NAS() per creare un'istanza di modello in Python:
from ultralytics import NAS
# Load a COCO-pretrained YOLO-NAS-s model
model = NAS("yolo_nas_s.pt")
# Display model information (optional)
model.info()
# Validate the model on the COCO8 example dataset
results = model.val(data="coco8.yaml")
# Run inference with the YOLO-NAS-s model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Attività e modalità supportate#
Offriamo tre varianti dei modelli YOLO-NAS: Small (s), Medium (m) e Large (l). Ogni variante è progettata per soddisfare esigenze diverse in termini di risorse computazionali e prestazioni:
- YOLO-NAS-s: ottimizzato per gli ambienti in cui le risorse computazionali sono limitate, ma l'efficienza è fondamentale.
- YOLO-NAS-m: offre un approccio equilibrato, adatto al rilevamento degli oggetti generico con maggiore accuratezza.
- YOLO-NAS-l: progettato per gli scenari che richiedono la massima accuratezza, in cui le risorse computazionali rappresentano un vincolo minore.
Di seguito è riportata una panoramica dettagliata di ciascun modello, inclusi i link ai relativi pesi pre-addestrati, le attività supportate e la compatibilità con diverse modalità operative.
| Tipo di modello | Pesi preaddestrati | Attività supportate | Addestramento | Convalida | Inferenza | Esportazione |
|---|---|---|---|---|---|---|
| YOLO-NAS-s | yolo_nas_s.pt | Rilevamento degli oggetti | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-m | yolo_nas_m.pt | Rilevamento degli oggetti | ❌ | ✅ | ✅ | ✅ |
| YOLO-NAS-l | yolo_nas_l.pt | Rilevamento degli oggetti | ❌ | ✅ | ✅ | ✅ |
Citazioni e ringraziamenti#
Se utilizzi YOLO-NAS nella tua attività di ricerca o sviluppo, cita SuperGradients:
@misc{supergradients,
doi = {10.5281/ZENODO.7789328},
url = {https://zenodo.org/records/7789328},
author = {Aharon, Shay and {Louis-Dupont} and {Ofri Masad} and Yurkova, Kate and {Lotem Fridman} and {Lkdci} and Khvedchenya, Eugene and Rubin, Ran and Bagrov, Natan and Tymchenko, Borys and Keren, Tomer and Zhilko, Alexander and {Eran-Deci}},
title = {Super-Gradients},
publisher = {GitHub},
journal = {GitHub repository},
year = {2021},
}Esprimiamo la nostra gratitudine al team SuperGradients di Deci AI per il lavoro svolto nella creazione e nella manutenzione di questa preziosa risorsa per la comunità della visione artificiale. Riteniamo che YOLO-NAS, con la sua architettura innovativa e le sue capacità superiori di rilevamento degli oggetti, diventerà uno strumento fondamentale tanto per gli sviluppatori quanto per i ricercatori.
FAQ#
YOLO-NAS, sviluppato da Deci AI, è un modello di rilevamento degli oggetti all'avanguardia che sfrutta un'avanzata tecnologia di ricerca dell'architettura neurale (NAS). Affronta i limiti dei precedenti modelli YOLO introducendo funzionalità come blocchi di base ottimizzati per la quantizzazione e sofisticati schemi di addestramento. Il risultato sono miglioramenti significativi delle prestazioni, soprattutto negli ambienti con risorse computazionali limitate. YOLO-NAS supporta inoltre la quantizzazione, mantenendo un'elevata accuratezza anche quando viene convertito nella versione INT8, e risultando così più adatto agli ambienti di produzione. Per ulteriori dettagli, consulta la sezione Panoramica.
Puoi integrare facilmente i modelli YOLO-NAS nella tua applicazione Python utilizzando il pacchetto
ultralytics. Ecco un semplice esempio di come caricare un modello YOLO-NAS pre-addestrato ed eseguire l'inferenza:from ultralytics import NAS # Load a COCO-pretrained YOLO-NAS-s model model = NAS("yolo_nas_s.pt") # Validate the model on the COCO8 example dataset results = model.val(data="coco8.yaml") # Run inference with the YOLO-NAS-s model on the 'bus.jpg' image results = model("path/to/bus.jpg")Per ulteriori informazioni, consulta gli Esempi di inferenza e validazione.
YOLO-NAS introduce diverse funzionalità chiave che lo rendono una scelta superiore per le attività di rilevamento degli oggetti:
- Blocco di base ottimizzato per la quantizzazione: architettura migliorata che aumenta le prestazioni del modello con una perdita minima di precisione dopo la quantizzazione.
- Addestramento e quantizzazione sofisticati: utilizza schemi di addestramento avanzati e tecniche di quantizzazione post-addestramento.
- Ottimizzazione e pre-addestramento AutoNAC: utilizza l'ottimizzazione AutoNAC ed è pre-addestrato su dataset importanti come COCO, Objects365 e Roboflow 100.
Queste funzionalità contribuiscono alla sua elevata accuratezza, alle prestazioni efficienti e all'idoneità per la distribuzione negli ambienti di produzione. Scopri di più nella sezione Funzionalità principali.
I modelli YOLO-NAS supportano diverse attività e modalità di rilevamento degli oggetti, come inferenza, validazione ed esportazione. Non supportano l'addestramento. I modelli supportati includono YOLO-NAS-s, YOLO-NAS-m e YOLO-NAS-l, ciascuno adattato a diverse capacità computazionali e requisiti prestazionali. Per una panoramica dettagliata, consulta la sezione Attività e modalità supportate.
Sì, Ultralytics fornisce modelli YOLO-NAS pre-addestrati a cui puoi accedere direttamente. Questi modelli sono pre-addestrati su dataset come COCO, garantendo prestazioni elevate sia in termini di velocità sia di accuratezza. Puoi scaricare questi modelli utilizzando i link forniti nella sezione Modelli pre-addestrati. Ecco alcuni esempi: