YOLO-NAS
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 mise à jour supplémentaire de la part de l'équipe d'origine n'est attendue.
Présentation
Développé par Deci AI, YOLO-NAS est un modèle fondamental révolutionnaire de détection d'objets. Il est le produit d'une technologie avancée de Neural Architecture Search, méticuleusement conçue pour remédier aux limitations des modèles YOLO précédents. Avec des améliorations significatives en matière de support de quantification et de compromis précision-latence, YOLO-NAS représente un bond en avant majeur 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 une performance optimale. Le modèle, lorsqu'il est converti en version quantifiée INT8, subit une baisse de précision minimale, une amélioration significative par rapport aux autres modèles. Ces avancées aboutissent à une architecture supérieure dotée de capacités de détection d'objets sans précédent et de performances exceptionnelles.
Fonctionnalités clés
- Bloc de base optimisé pour la quantification : YOLO-NAS introduit un nouveau bloc de base adapté à la quantification, corrigeant l'une des limitations significatives des modèles YOLO précédents.
- Entraînement et quantification sophistiqués : YOLO-NAS tire parti de schémas d'entraînement avancés et de la quantification post-entraînement pour améliorer les performances.
- Optimisation AutoNAC et pré-entraînement : 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 extrêmement adapté aux tâches de détection d'objets en aval dans des 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 en termes de vitesse et de précision. Choisis parmi une variété d'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 Mean Average Precision (mAP) et latence, t'aidant à optimiser tes 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 tes applications Python via notre paquet python ultralytics. Le paquet fournit une API Python conviviale pour rationaliser le processus.
Les exemples suivants montrent comment utiliser les modèles YOLO-NAS avec le paquet 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 un code simple d'inférence et de validation pour YOLO-NAS. Pour gérer les résultats d'inférence, voir le mode Predict. Pour utiliser YOLO-NAS avec des modes supplémentaires, voir Val et Export. YOLO-NAS sur le paquet ultralytics ne prend pas en charge l'entraînement.
Les fichiers de modèles pré-entraînés PyTorch *.pt 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 informatiques et de performance :
- YOLO-NAS-s : Optimisé pour les environnements où les ressources informatiques sont limitées, mais où l'efficacité est primordiale.
- YOLO-NAS-m : Offre une approche équilibrée, adaptée à la détection d'objets générale avec une plus grande précision.
- YOLO-NAS-l : Conçu pour les scénarios nécessitant la plus haute précision, où les ressources informatiques sont moins une contrainte.
Tu trouveras ci-dessous un aperçu détaillé de chaque modèle, incluant des liens vers leurs poids pré-entraînés, les tâches qu'ils supportent 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 | 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, merci de 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 de détection d'objets supérieures, deviendra un outil critique tant pour les développeurs que pour 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 de pointe exploitant la technologie avancée Neural Architecture Search (NAS). Il répond aux 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 aux ressources informatiques limitées. YOLO-NAS prend également en charge la quantification, maintenant une grande précision même lorsqu'il est converti en version INT8, ce qui renforce son adéquation aux environnements de production. Pour plus de détails, voir la section Présentation.
Comment puis-je intégrer les modèles YOLO-NAS dans mon application Python ?
Tu peux facilement intégrer les modèles YOLO-NAS dans ton application Python en utilisant le paquet ultralytics. Voici un exemple simple montrant comment charger un modèle YOLO-NAS pré-entraîné et 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, reporte-toi aux 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 optimisé pour la quantification : Architecture améliorée qui améliore les performances du modèle avec une perte de précision minimale après quantification.
- Entraînement et quantification sophistiqués : Utilise des schémas d'entraînement avancés et des techniques de quantification post-entraînement.
- Optimisation AutoNAC et pré-entraînement : 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 aptitude au déploiement en environnements de production. Apprends-en plus dans la section Fonctionnalités clés.
Quelles tâches et quels 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, reporte-toi à la section Tâches et modes pris en charge.
Existe-t-il des modèles YOLO-NAS pré-entraînés et comment y accéder ?
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, garantissant des performances élevées 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. Voici quelques exemples :