Passer au contenu

YOLO-NAS

Mise à jour importante

Veuillez noter que Deci, les créateurs originaux de YOLO-NAS, ont été acquis par NVIDIA. Par conséquent, ces modèles ne sont plus activement maintenus par Deci. Ultralytics continue de prendre en charge l’utilisation de ces modèles, mais aucune autre mise à jour de l’équipe d’origine n’est prévue.

Aperçu

Développé par Deci AI, YOLO-NAS est un modèle de base révolutionnaire de détection d'objets. Il est le produit d'une technologie avancée de recherche d'architecture neuronale, méticuleusement conçue pour pallier les limites des modèles YOLO précédents. Grâce à des améliorations significatives de la prise en charge de la quantification et des compromis précision-latence, YOLO-NAS représente un progrès majeur dans la détection d'objets.

Exemple d'image du modèle Aperçu de YOLO-NAS. YOLO-NAS utilise des blocs sensibles à la quantification et une quantification sélective pour des performances optimales. Le modèle, une fois converti en sa version quantifiée INT8, subit une perte de précision minimale, une amélioration significative par rapport aux autres modèles. Ces avancées aboutissent à une architecture supérieure avec des capacités de détection d'objets sans précédent et des performances exceptionnelles.

Principales caractéristiques

  • Bloc de base compatible avec la quantification : YOLO-NAS introduit un nouveau bloc de base compatible avec la quantification, qui s’attaque à l’une des principales limites des modèles YOLO précédents.
  • Formation et quantification sophistiquées : YOLO-NAS exploite des schémas de formation avancés et une quantification post-formation pour améliorer les performances.
  • Optimisation AutoNAC et pré-entraînement : YOLO-NAS utilise l'optimisation AutoNAC et est pré-entraîné sur des ensembles de données importants tels que COCO, Objects365 et Roboflow 100. Ce pré-entraînement le rend extrêmement approprié pour les tâches de détection d'objets en aval dans les environnements de production.

Modèles pré-entraînés

Découvrez la puissance de la détection d'objets de nouvelle génération avec les modèles YOLO-NAS pré-entraînés fournis par Ultralytics. Ces modèles sont conçus pour offrir des performances de premier ordre en termes de vitesse et de précision. Choisissez parmi une variété d'options adaptées à vos besoins spécifiques :

Performance

Modèle mAP Latence (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

Chaque variante de modèle est conçue pour offrir un équilibre entre la précision moyenne moyenne (mAP) et la latence, vous aidant à optimiser vos tâches de détection d'objets pour la performance et la vitesse.

Exemples d'utilisation

Ultralytics a rendu les modèles YOLO-NAS faciles à intégrer dans vos applications python via notre ultralytics package python. Ce package fournit une API Python conviviale pour simplifier le processus.

Les exemples suivants montrent comment utiliser les modèles YOLO-NAS avec le ultralytics paquet pour l'inférence et la validation :

Exemples d'inférence et de validation

Dans cet exemple, nous validons YOLO-NAS-s sur l'ensemble de données COCO8.

Exemple

Cet exemple fournit un code simple d'inférence et de validation pour YOLO-NAS. Pour la gestion des résultats d'inférence, voir Prédire mode. Pour utiliser YOLO-NAS avec des modes supplémentaires, voir Valider et Exporter. YOLO-NAS sur le ultralytics le paquet ne prend pas en charge l'entraînement.

PyTorch pré-entraînés *.pt les fichiers de modèles peuvent être transmis au NAS() class pour créer une instance de modèle en 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")

Des commandes CLI sont disponibles pour exécuter directement les modèles :

# 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

Tâches et modes pris en charge

Nous proposons trois variantes des modèles YOLO-NAS : Small (s), Medium (m) et Large (l). Chaque variante est conçue pour répondre à différents besoins en matière de calcul et de performance :

  • YOLO-NAS-s : Optimisé pour les environnements où les ressources de calcul sont limitées, mais où l’efficacité est essentielle.
  • YOLO-NAS-m : Offre une approche équilibrée, adaptée à la détection d’objets à usage général avec une plus grande précision.
  • YOLO-NAS-l : Conçu pour les scénarios nécessitant la plus grande précision, où les ressources de calcul sont moins une contrainte.

Vous trouverez ci-dessous un aperçu détaillé de chaque modèle, y compris des liens vers leurs poids pré-entraînés, les tâches qu'ils prennent en charge et leur compatibilité avec différents modes de fonctionnement.

Type de modèle Poids pré-entraînés Tâches prises en charge Inférence Validation Entraînement Exporter
YOLO-NAS-s yolo_nas_s.pt Détection d'objets
YOLO-NAS-m yolo_nas_m.pt Détection d'objets
YOLO-NAS-l yolo_nas_l.pt Détection d'objets

Citations et remerciements

Si vous utilisez YOLO-NAS dans vos travaux de recherche ou de développement, veuillez citer 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},
}

Nous exprimons notre gratitude à l'équipe SuperGradients de Deci AI pour ses efforts dans la création et la maintenance de cette ressource précieuse pour la communauté de la vision par ordinateur. Nous pensons que YOLO-NAS, avec son architecture innovante et ses capacités supérieures de détection d'objets, deviendra un outil essentiel pour les développeurs et les chercheurs.

FAQ

Qu'est-ce que YOLO-NAS et comment améliore-t-il les modèles YOLO précédents ?

YOLO-NAS, développé par Deci AI, est un modèle de détection d'objets à la pointe de la technologie qui exploite la technologie avancée de recherche d'architecture neuronale (NAS). Il corrige les limitations des modèles YOLO précédents en introduisant des fonctionnalités telles que des blocs de base adaptés à la quantification et des schémas d'entraînement sophistiqués. Cela se traduit par des améliorations significatives des performances, en particulier dans les environnements où les ressources de calcul sont limitées. YOLO-NAS prend également en charge la quantification, en conservant une haute précision même lorsqu'il est converti en sa version INT8, ce qui améliore son aptitude aux environnements de production. Pour plus de détails, consultez la section Aperçu.

Comment puis-je intégrer des modèles YOLO-NAS dans mon application Python ?

Vous pouvez facilement intégrer des modèles YOLO-NAS dans votre application Python en utilisant le ultralytics package. Voici un exemple simple de la façon de charger un modèle YOLO-NAS pré-entraîné et d'effectuer une inférence :

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")

Pour plus d'informations, consultez les Exemples d'inférence et de validation.

Quelles sont les principales caractéristiques de YOLO-NAS et pourquoi devrais-je envisager de l'utiliser ?

YOLO-NAS introduit plusieurs fonctionnalités clés qui en font un choix supérieur pour les tâches de détection d'objets :

  • Bloc de base compatible avec la quantification : Architecture améliorée qui améliore les performances du modèle avec une perte de précision minimale après la quantification.
  • Formation et quantification sophistiquées : Utilise des schémas de formation avancés et des techniques de quantification post-formation.
  • Optimisation AutoNAC et pré-entraînement : Utilise l'optimisation AutoNAC et est pré-entraîné sur des ensembles de données importants tels que COCO, Objects365 et Roboflow 100.

Ces caractéristiques contribuent à sa haute précision, à son efficacité et à son aptitude au déploiement dans des environnements de production. Pour en savoir plus, consultez la section Fonctionnalités clés.

Quelles tâches et modes sont pris en charge par les modèles YOLO-NAS ?

Les modèles YOLO-NAS prennent en charge diverses tâches et modes de détection d'objets tels que l'inférence, la validation et l'exportation. Ils ne prennent pas en charge l'entraînement. Les modèles pris en charge incluent YOLO-NAS-s, YOLO-NAS-m et YOLO-NAS-l, chacun étant adapté à différentes capacités de calcul et besoins de performance. Pour une présentation détaillée, reportez-vous à la section Tâches et modes pris en charge.

Existe-t-il des modèles YOLO-NAS pré-entraînés et comment puis-je y accéder ?

Oui, Ultralytics fournit des modèles YOLO-NAS pré-entraînés auxquels vous pouvez accéder directement. Ces modèles sont pré-entraînés sur des ensembles de données tels que COCO, ce qui garantit des performances élevées en termes de vitesse et de précision. Vous pouvez télécharger ces modèles à l'aide des liens fournis dans la section Modèles pré-entraînés. Voici quelques exemples :



📅 Créé il y a 1 an ✏️ Mis à jour il y a 5 mois

Commentaires