YOLO-NAS
Aggiornamento importante
Si prega di notare che Deci, i creatori originali di YOLO-NAS, sono stati acquisiti da NVIDIA. Di conseguenza, questi modelli non sono più attivamente gestiti 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 base rivoluzionario per il rilevamento di oggetti. È il prodotto di una tecnologia avanzata di Ricerca di architetture neurali, meticolosamente progettata per affrontare i limiti dei precedenti modelli YOLO. Con significativi miglioramenti nel supporto della quantizzazione e nei compromessi tra precisione e latenza, YOLO-NAS rappresenta un importante passo avanti nel rilevamento di oggetti.
Panoramica di YOLO-NAS. YOLO-NAS utilizza blocchi quantization-aware e quantizzazione selettiva per prestazioni ottimali. Quando il modello viene convertito nella sua versione quantizzata INT8, si verifica una minima perdita di precisione, un miglioramento significativo rispetto ad altri modelli. Questi progressi culminano in un'architettura superiore con capacità di object detection senza precedenti e prestazioni eccezionali.
Caratteristiche principali
- Blocco base adatto alla quantizzazione: YOLO-NAS introduce un nuovo blocco base adatto alla quantizzazione, affrontando una delle limitazioni significative dei precedenti modelli YOLO.
- Training e Quantizzazione Sofisticati: YOLO-NAS sfrutta schemi di training avanzati e la quantizzazione post-training per migliorare le prestazioni.
- Ottimizzazione AutoNAC e pre-addestramento: 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 per attività di object detection downstream in ambienti di produzione.
Modelli pre-addestrati
Prova la potenza del rilevamento di oggetti di nuova generazione con i modelli YOLO-NAS pre-addestrati forniti da Ultralytics. Questi modelli sono progettati per offrire prestazioni di alto livello in termini di velocità e precisione. Scegli tra una varietà di opzioni adatte alle tue esigenze specifiche:
Prestazioni
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 Mean Average Precision (mAP) e latenza, aiutandoti a ottimizzare le tue attività di object detection sia per le prestazioni che per la velocità.
Esempi di utilizzo
Ultralytics ha reso i modelli YOLO-NAS facili da integrare nelle tue applicazioni python tramite il nostro ultralytics
pacchetto python. Il pacchetto fornisce un'API Python intuitiva per semplificare il processo.
Gli esempi seguenti mostrano come utilizzare i modelli YOLO-NAS con ultralytics
pacchetto per l'inferenza e la convalida:
Esempi di inferenza e convalida
In questo esempio validiamo YOLO-NAS-s sul dataset COCO8.
Esempio
Questo esempio fornisce un semplice codice di inferenza e convalida per YOLO-NAS. Per la gestione dei risultati dell'inferenza, vedere Predizione mode. Per utilizzare YOLO-NAS con modalità aggiuntive, consulta Valutazione e Esportazione. YOLO-NAS sul ultralytics
il pacchetto non supporta l'addestramento.
PyTorch pre-addestrato *.pt
I file models possono essere passati al NAS()
classe per creare un'istanza del 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")
Sono disponibili comandi CLI per eseguire direttamente i modelli:
# Load a COCO-pretrained YOLO-NAS-s model and validate it's performance on the COCO8 example dataset
yolo val model=yolo_nas_s.pt data=coco8.yaml
# Load a COCO-pretrained YOLO-NAS-s model and run inference on the 'bus.jpg' image
yolo predict model=yolo_nas_s.pt source=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 diverse esigenze di calcolo e prestazioni:
- YOLO-NAS-s: Ottimizzato per ambienti in cui le risorse computazionali sono limitate, ma l'efficienza è fondamentale.
- YOLO-NAS-m: Offre un approccio bilanciato, adatto per l'object detection generico con maggiore precisione.
- YOLO-NAS-l: Progettato per scenari che richiedono la massima precisione, dove le risorse computazionali sono meno limitanti.
Di seguito è riportata una panoramica dettagliata di ciascun modello, inclusi i collegamenti ai loro pesi pre-addestrati, le attività che supportano e la loro compatibilità con diverse modalità operative.
Tipo di modello | Pesi pre-addestrati | Task supportati | Inferenza | Validazione | Training | Esportazione |
---|---|---|---|---|---|---|
YOLO-NAS-s | yolo_nas_s.pt | Rilevamento di oggetti | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-m | yolo_nas_m.pt | Rilevamento di oggetti | ✅ | ✅ | ❌ | ✅ |
YOLO-NAS-l | yolo_nas_l.pt | Rilevamento di oggetti | ✅ | ✅ | ❌ | ✅ |
Citazioni e riconoscimenti
Se utilizzi YOLO-NAS nel tuo lavoro 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 i loro sforzi nella creazione e manutenzione di questa preziosa risorsa per la comunità di computer vision. Riteniamo che YOLO-NAS, con la sua architettura innovativa e le superiori capacità di rilevamento degli oggetti, diventerà uno strumento fondamentale per sviluppatori e ricercatori.
FAQ
Cos'è YOLO-NAS e in che modo migliora i precedenti modelli YOLO?
YOLO-NAS, sviluppato da Deci AI, è un modello di object detection all'avanguardia che sfrutta la tecnologia avanzata Neural Architecture Search (NAS). Affronta i limiti dei precedenti modelli YOLO introducendo funzionalità come blocchi di base quantization-friendly e schemi di training sofisticati. Ciò si traduce in miglioramenti significativi delle prestazioni, in particolare in ambienti con risorse computazionali limitate. YOLO-NAS supporta anche la quantizzazione, mantenendo un'elevata accuratezza anche quando convertito nella sua versione INT8, migliorandone l'idoneità per gli ambienti di produzione. Per maggiori dettagli, vedere la sezione Panoramica.
Come posso integrare i modelli YOLO-NAS nella mia applicazione Python?
Puoi integrare facilmente i modelli YOLO-NAS nella tua applicazione python usando il ultralytics
package. 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 maggiori informazioni, consultare gli Esempi di Inferenza e Validazione.
Quali sono le caratteristiche principali di YOLO-NAS e perché dovrei considerare di utilizzarlo?
YOLO-NAS introduce diverse caratteristiche chiave che lo rendono una scelta superiore per le attività di object detection:
- Blocco base adatto alla quantizzazione: Architettura migliorata che incrementa le prestazioni del modello con una minima perdita di precisione post quantizzazione.
- Addestramento e quantizzazione sofisticati: Impiega schemi di addestramento avanzati e tecniche di quantizzazione post-addestramento.
- Ottimizzazione AutoNAC e pre-training: Utilizza l'ottimizzazione AutoNAC ed è pre-addestrato su set di dati importanti come COCO, Objects365 e Roboflow 100.
Queste caratteristiche contribuiscono alla sua elevata precisione, alle prestazioni efficienti e all'idoneità per l'implementazione in ambienti di produzione. Scopri di più nella sezione Caratteristiche Principali.
Quali task e modalità sono supportati dai modelli YOLO-NAS?
I modelli YOLO-NAS supportano varie attività e modalità di object detection come inference, convalida ed esportazione. Non supportano il training. I modelli supportati includono YOLO-NAS-s, YOLO-NAS-m e YOLO-NAS-l, ciascuno adattato a diverse capacità computazionali ed esigenze di prestazioni. Per una panoramica dettagliata, fare riferimento alla sezione Attività e modalità supportate.
Sono disponibili modelli YOLO-NAS pre-addestrati e come posso accedervi?
Sì, Ultralytics fornisce modelli YOLO-NAS pre-addestrati a cui puoi accedere direttamente. Questi modelli sono pre-addestrati su dataset come COCO, garantendo elevate prestazioni in termini di velocità e precisione. Puoi scaricare questi modelli utilizzando i link forniti nella sezione Pre-trained Models. Ecco alcuni esempi: