YOLO-NAS

Aggiornamento Importante

Ti preghiamo di notare che Deci, i creatori originali di YOLO-NAS, sono stati acquisiti da NVIDIA. Di conseguenza, questi modelli non sono più attivamente mantenuti 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 fondamentale all'avanguardia per il rilevamento di oggetti. È il prodotto di una tecnologia avanzata di Neural Architecture Search, progettata meticolosamente per affrontare i limiti dei precedenti modelli YOLO. Con miglioramenti significativi nel supporto alla quantizzazione e nei compromessi tra accuratezza e latenza, YOLO-NAS rappresenta un grande passo avanti nel rilevamento di oggetti.

Confronto dell'accuratezza del modello YOLO-NAS sul benchmark COCO Panoramica di YOLO-NAS. YOLO-NAS impiega blocchi sensibili alla quantizzazione e una quantizzazione selettiva per prestazioni ottimali. Il modello, una volta convertito nella sua versione quantizzata INT8, subisce una minima perdita di precisione, un miglioramento significativo rispetto ad altri modelli. Questi progressi culminano in un'architettura superiore con capacità di rilevamento oggetti senza precedenti e prestazioni eccezionali.

Caratteristiche principali

  • Blocco di base adatto alla quantizzazione: YOLO-NAS introduce un nuovo blocco di base adatto alla 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 AutoNAC e pre-addestramento: YOLO-NAS utilizza l'ottimizzazione AutoNAC ed è pre-addestrato su set di dati di rilievo come COCO, Objects365 e Roboflow 100. Questo pre-addestramento lo rende estremamente adatto per attività di rilevamento di oggetti a valle in ambienti di produzione.

Modelli Pre-addestrati

Sperimenta la potenza del rilevamento di oggetti di prossima 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 accuratezza. Scegli tra una varietà di opzioni su misura per le tue esigenze specifiche:

Prestazioni
ModellomAPLatenza (ms)
YOLO-NAS S47.53.21
YOLO-NAS M51.555.85
YOLO-NAS L52.227.87
YOLO-NAS S INT-847.032.36
YOLO-NAS M INT-851.03.78
YOLO-NAS L INT-852.14.78

Ogni variante del modello è progettata per offrire un equilibrio tra Mean Average Precision (mAP) e latenza, aiutandoti a ottimizzare le tue attività di rilevamento di oggetti 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 pacchetto python ultralytics. Il pacchetto fornisce un'API Python intuitiva per semplificare il processo.

I seguenti esempi 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 set di dati COCO8.

Esempio

Questo esempio fornisce un semplice codice di inferenza e validazione per YOLO-NAS. Per gestire i risultati dell'inferenza, vedi la modalità Predict. Per utilizzare YOLO-NAS con modalità aggiuntive, vedi Val ed Export. YOLO-NAS sul pacchetto ultralytics non supporta l'addestramento.

I file dei modelli pre-addestrati in PyTorch *.pt possono essere passati alla classe NAS() 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")

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 computazionali e di prestazioni:

  • YOLO-NAS-s: Ottimizzato per ambienti in cui le risorse computazionali sono limitate ma l'efficienza è fondamentale.
  • YOLO-NAS-m: Offre un approccio equilibrato, adatto al rilevamento di oggetti per scopi generali con maggiore accuratezza.
  • YOLO-NAS-l: Ideale per scenari che richiedono la massima accuratezza, dove le risorse computazionali rappresentano un vincolo minore.

Di seguito è riportata una panoramica dettagliata di ogni modello, inclusi i link ai loro pesi pre-addestrati, le attività che supportano e la loro compatibilità con le diverse modalità operative.

Tipo di modelloPesi preaddestratiAttività supportateInferenza (Inference)ValidazioneAddestramentoExport
YOLO-NAS-syolo_nas_s.ptRilevamento oggetti
YOLO-NAS-myolo_nas_m.ptRilevamento oggetti
YOLO-NAS-lyolo_nas_l.ptRilevamento oggetti

Citazioni e ringraziamenti

Se utilizzi YOLO-NAS nel tuo lavoro di ricerca o sviluppo, ti preghiamo di citare SuperGradients:

Citazione
@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 di SuperGradients di Deci AI per il loro impegno nel creare e mantenere questa preziosa risorsa per la comunità della computer vision. Crediamo che YOLO-NAS, con la sua architettura innovativa e le sue superiori capacità di rilevamento di oggetti, diventerà uno strumento fondamentale per sviluppatori e ricercatori allo stesso modo.

FAQ

Cos'è YOLO-NAS e come migliora rispetto ai precedenti modelli YOLO?

YOLO-NAS, sviluppato da Deci AI, è un modello di rilevamento di oggetti all'avanguardia che sfrutta la tecnologia avanzata di Neural Architecture Search (NAS). Risolve le limitazioni dei precedenti modelli YOLO introducendo funzionalità come blocchi di base adatti alla quantizzazione e schemi di addestramento 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, migliorando la sua idoneità per gli ambienti di produzione. Per maggiori dettagli, consulta 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 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, fai riferimento agli Esempi di Inferenza e Validazione.

Quali sono le caratteristiche principali di YOLO-NAS e perché dovrei considerare di usarlo?

YOLO-NAS introduce diverse caratteristiche chiave che lo rendono una scelta superiore per le attività di rilevamento di oggetti:

  • Blocco di base adatto alla quantizzazione: Architettura migliorata che incrementa le prestazioni del modello con una minima perdita di precision dopo la quantizzazione.
  • Addestramento e quantizzazione sofisticati: Impiega schemi di addestramento avanzati e tecniche di quantizzazione post-addestramento.
  • Ottimizzazione AutoNAC e pre-addestramento: Utilizza l'ottimizzazione AutoNAC ed è pre-addestrato su set di dati di rilievo come COCO, Objects365 e Roboflow 100.

Queste caratteristiche contribuiscono alla sua elevata accuratezza, alle prestazioni efficienti e all'idoneità per l'implementazione in ambienti di produzione. Scopri di più nella sezione Caratteristiche Chiave.

Quali attività e modalità sono supportate dai modelli YOLO-NAS?

I modelli YOLO-NAS supportano varie attività di rilevamento di oggetti e modalità come inferenza, validazione ed esportazione. Non supportano l'addestramento. I modelli supportati includono YOLO-NAS-s, YOLO-NAS-m e YOLO-NAS-l, ognuno adattato a diverse capacità computazionali ed esigenze di prestazioni. Per una panoramica dettagliata, fai 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 set di dati come COCO, garantendo prestazioni elevate in termini sia di velocità che di accuratezza. Puoi scaricare questi modelli utilizzando i link forniti nella sezione Modelli Pre-addestrati. Ecco alcuni esempi:

Commenti