YOLO-NAS#
Veuillez noter que Deci, les créateurs d'origine de YOLO-NAS, a été racheté 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.
Présentation#
Développé par Deci AI, YOLO-NAS est un modèle fondamental révolutionnaire de détection d'objets. Il est issu d'une technologie avancée de recherche d'architecture neuronale, conçue avec minutie pour remédier aux 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 entre précision et latence, YOLO-NAS représente une avancée majeure dans la détection d'objets.
Présentation de YOLO-NAS. YOLO-NAS utilise des blocs sensibles à la quantification et une quantification sélective pour offrir des performances optimales. Lorsque le modèle est converti en version quantifiée INT8, la baisse de précision est minime, ce qui constitue une amélioration significative par rapport aux autres modèles. Ces avancées aboutissent à une architecture supérieure, dotée de capacités inédites de détection d'objets et de performances exceptionnelles.
Fonctionnalités clés#
- Bloc de base adapté à la quantification : YOLO-NAS introduit un nouveau bloc de base adapté à la quantification, qui remédie à l'une des principales limites des modèles YOLO précédents.
- Entraînement et quantification sophistiqués : YOLO-NAS exploite des schémas d'entraînement avancés et une quantification après entraînement pour améliorer ses performances.
- Optimisation et préentraînement AutoNAC : YOLO-NAS utilise l'optimisation AutoNAC et est préentraîné sur des jeux de données de premier plan tels que COCO, Objects365 et Roboflow 100. Ce préentraînement le rend particulièrement adapté aux tâches de détection d'objets en aval dans les environnements de production.
Modèles préentraînés#
Découvre 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, tant en vitesse qu'en précision. Choisis parmi différentes options adaptées à tes besoins spécifiques :
| 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 (mAP) et la latence, afin de t'aider à optimiser tes tâches de détection d'objets à la fois pour les performances et la vitesse.
Exemples d’utilisation#
Ultralytics a rendu les modèles YOLO-NAS faciles à intégrer dans tes applications Python via notre paquet Python ultralytics. Le paquet fournit une API Python conviviale pour simplifier le processus.
Les exemples suivants montrent comment utiliser les modèles YOLO-NAS avec le package ultralytics pour l'inférence et la validation :
Exemples d'inférence et de validation#
Dans cet exemple, nous validons YOLO-NAS-s sur le jeu de données COCO8.
Cet exemple fournit du code simple d'inférence et de validation pour YOLO-NAS. Pour gérer les résultats de l'inférence, consulte le mode Predict. Pour utiliser YOLO-NAS avec des modes supplémentaires, consulte Val et Export. YOLO-NAS dans le package ultralytics ne prend pas en charge l'entraînement.
Les fichiers de modèles *.pt pré-entraînés avec PyTorch peuvent être transmis à la classe NAS() 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")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 performances :
- 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 précision supérieure.
- YOLO-NAS-l : adapté aux scénarios nécessitant la plus grande précision, où les ressources de calcul constituent une contrainte moindre.
Voici une présentation détaillée de chaque modèle, comprenant 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 | Entraînement | Validation | Inférence | Exportation |
|---|---|---|---|---|---|---|
| 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 tu utilises YOLO-NAS dans tes travaux de recherche ou de développement, cite 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 remercions 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 comme pour les chercheurs.
FAQ#
YOLO-NAS, développé par Deci AI, est un modèle de pointe de détection d'objets qui exploite une technologie avancée de recherche d'architecture neuronale (NAS). Il remédie aux limites 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. Il en résulte 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 et conserve une grande précision même après sa conversion en version INT8, ce qui renforce son adéquation aux environnements de production. Pour plus de détails, consulte la section Présentation.
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 adapté à la quantification : architecture améliorée qui augmente les performances du modèle avec une baisse minimale de la précision après la quantification.
- Entraînement et quantification sophistiqués : utilise des schémas d'entraînement avancés et des techniques de quantification après entraînement.
- Optimisation et préentraînement AutoNAC : utilise l'optimisation AutoNAC et est préentraîné sur des jeux de données de premier plan tels que COCO, Objects365 et Roboflow 100.
Ces fonctionnalités contribuent à sa grande précision, à ses performances efficaces et à son adéquation au déploiement dans les environnements de production. Pour en savoir plus, consulte la section Fonctionnalités clés.
Les modèles YOLO-NAS prennent en charge différentes tâches et différents 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 comprennent YOLO-NAS-s, YOLO-NAS-m et YOLO-NAS-l, chacun étant adapté à différentes capacités de calcul et exigences de performance. Pour une présentation détaillée, consulte la section Tâches et modes pris en charge.
Oui, Ultralytics fournit des modèles YOLO-NAS préentraînés auxquels tu peux accéder directement. Ces modèles sont préentraînés sur des jeux de données tels que COCO, ce qui garantit de hautes performances en termes de vitesse et de précision. Tu peux télécharger ces modèles en utilisant les liens fournis dans la section Modèles préentraînés. En voici quelques exemples :
Tu peux facilement intégrer les modèles YOLO-NAS dans ton application Python à l'aide du package
ultralytics. Voici un exemple simple montrant comment charger un modèle YOLO-NAS préentraîné et effectuer une inférence :Pour plus d'informations, consulte les Exemples d'inférence et de validation.