YOLOv9 : Une avancée majeure dans la technologie de détection d’objets#
YOLOv9 marque une avancée significative dans la détection d’objets en temps réel, en introduisant des techniques révolutionnaires telles que l’information de gradient programmable (PGI) et le réseau généralisé d’agrégation efficace des couches (GELAN). Ce modèle démontre des améliorations remarquables en matière d’efficacité, de précision et d’adaptabilité, établissant de nouvelles références sur le jeu de données MS COCO. Le projet YOLOv9, bien que développé par une équipe open source distincte, s’appuie sur la base de code robuste fournie par Ultralytics YOLOv5, illustrant l’esprit de collaboration de la communauté de recherche en IA.
Watch: YOLOv9 Training on Custom Data using Ultralytics | Industrial Package Dataset

Introduction à YOLOv9#
Dans la recherche d’une détection d’objets en temps réel optimale, YOLOv9 se distingue par son approche innovante pour relever les défis liés à la perte d’information inhérente aux réseaux neuronaux profonds. En intégrant PGI et l’architecture polyvalente GELAN, YOLOv9 améliore non seulement la capacité d’apprentissage du modèle, mais garantit également la conservation des informations essentielles tout au long du processus de détection, ce qui permet d’atteindre une précision et des performances exceptionnelles.
Innovations principales de YOLOv9#
Les avancées de YOLOv9 reposent principalement sur la résolution des problèmes liés à la perte d’information dans les réseaux neuronaux profonds. Le principe du goulot d’étranglement de l’information et l’utilisation innovante de fonctions réversibles sont au cœur de sa conception, garantissant à YOLOv9 une efficacité et une précision élevées.
Principe du goulot d’étranglement de l’information#
Le principe du goulot d’étranglement de l’information révèle un défi fondamental de l’apprentissage profond : lorsque les données traversent les couches successives d’un réseau, le risque de perte d’information augmente. Ce phénomène est représenté mathématiquement comme suit :
I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))où I désigne l’information mutuelle, et f et g représentent des fonctions de transformation ayant respectivement pour paramètres theta et phi. YOLOv9 répond à ce défi en implémentant l’information de gradient programmable (PGI), qui contribue à préserver les données essentielles à travers la profondeur du réseau, garantissant ainsi une génération plus fiable des gradients et, par conséquent, une meilleure convergence et de meilleures performances du modèle.
Fonctions réversibles#
Le concept de fonctions réversibles constitue un autre pilier de la conception de YOLOv9. Une fonction est considérée comme réversible si elle peut être inversée sans perte d’information, comme l’exprime la formule suivante :
X = v_zeta(r_psi(X))avec psi et zeta comme paramètres de la fonction réversible et de sa fonction inverse, respectivement. Cette propriété est essentielle pour les architectures d’apprentissage profond, car elle permet au réseau de conserver un flux d’information complet et donc d’effectuer des mises à jour plus précises des paramètres du modèle. YOLOv9 intègre des fonctions réversibles dans son architecture afin d’atténuer le risque de dégradation de l’information, en particulier dans les couches profondes, et de garantir la préservation des données critiques pour les tâches de détection d’objets.
Impact sur les modèles légers#
La résolution de la perte d’information est particulièrement importante pour les modèles légers, qui sont souvent sous-paramétrés et susceptibles de perdre des informations significatives pendant le processus de propagation avant. L’architecture de YOLOv9, grâce à l’utilisation de PGI et de fonctions réversibles, garantit que même avec un modèle simplifié, les informations essentielles nécessaires à une détection précise des objets sont conservées et exploitées efficacement.
Information de gradient programmable (PGI)#
PGI est un concept novateur introduit dans YOLOv9 pour lutter contre le problème du goulot d’étranglement de l’information, en garantissant la préservation des données essentielles à travers les couches profondes du réseau. Cela permet de générer des gradients fiables, de faciliter les mises à jour précises du modèle et d’améliorer les performances globales de détection.
Réseau généralisé d’agrégation efficace des couches (GELAN)#
GELAN représente une avancée architecturale stratégique qui permet à YOLOv9 d’optimiser l’utilisation des paramètres et l’efficacité des calculs. Sa conception autorise l’intégration flexible de divers blocs de calcul, ce qui rend YOLOv9 adaptable à un large éventail d’applications sans sacrifier la vitesse ni la précision.

Benchmarks de YOLOv9#
L’évaluation comparative de YOLOv9 avec Ultralytics consiste à évaluer les performances de ton modèle entraîné et validé dans des scénarios réels. Ce processus comprend :
- Évaluation des performances : évaluer la vitesse et la précision du modèle.
- Formats d’exportation : tester le modèle avec différents formats d’exportation afin de vérifier qu’il respecte les normes nécessaires et fonctionne correctement dans divers environnements.
- Prise en charge du framework : Fournir un framework complet au sein du package Ultralytics pour faciliter ces évaluations et garantir des résultats cohérents et fiables.
Grâce à l’évaluation comparative, tu peux vérifier que ton modèle fonctionne bien non seulement dans des environnements de test contrôlés, mais aussi dans des applications pratiques du monde réel.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Performances sur le jeu de données MS COCO#
Les performances de YOLOv9 sur le jeu de données COCO illustrent ses avancées significatives en matière de détection d’objets en temps réel, en établissant de nouvelles références pour différentes tailles de modèles. Le tableau 1 présente une comparaison complète des détecteurs d’objets en temps réel à la pointe de la technologie, illustrant l’efficacité et la précision supérieures de YOLOv9.
Les différentes versions de YOLOv9, de la variante minuscule t au modèle complet e, démontrent des améliorations non seulement en matière de précision (métriques mAP), mais aussi d’efficacité, avec un nombre réduit de paramètres et de besoins de calcul (FLOPs). Ce tableau souligne la capacité de YOLOv9 à offrir une précision élevée tout en maintenant ou en réduisant la charge de calcul par rapport aux versions précédentes et aux modèles concurrents.
En comparaison, YOLOv9 affiche des gains remarquables :
- Modèles légers : YOLOv9s surpasse YOLO MS-S en matière d’efficacité des paramètres et de charge de calcul, tout en obtenant une amélioration de 0,4∼0,6 % de l’AP.
- Modèles moyens à grands : YOLOv9m et YOLOv9e affichent des avancées notables dans l’équilibre entre la complexité du modèle et les performances de détection, en offrant des réductions significatives du nombre de paramètres et des calculs tout en améliorant la précision.
Le modèle YOLOv9c met particulièrement en évidence l’efficacité des optimisations de l’architecture. Il fonctionne avec 42 % de paramètres en moins et nécessite 21 % de calculs en moins que YOLOv7 AF, tout en atteignant une précision comparable, ce qui démontre les améliorations significatives d’efficacité de YOLOv9. En outre, le modèle YOLOv9e établit une nouvelle référence pour les grands modèles, avec 15 % de paramètres en moins et 25 % de besoins de calcul en moins que YOLOv8x, ainsi qu’une amélioration progressive de 1,7 % de l’AP.
Ces résultats mettent en évidence les avancées stratégiques de YOLOv9 dans la conception des modèles, en soulignant son efficacité accrue sans compromettre la précision essentielle aux tâches de détection d’objets en temps réel. Le modèle repousse non seulement les limites des métriques de performance, mais souligne également l’importance de l’efficacité des calculs, ce qui en fait une avancée majeure dans le domaine de la vision par ordinateur.
Conclusion#
YOLOv9, publié en février 2024, a constitué une avancée majeure dans la détection d’objets en temps réel, en offrant des améliorations significatives en matière d’efficacité, de précision et d’adaptabilité. En relevant des défis critiques grâce à des solutions innovantes telles que PGI et GELAN, YOLOv9 a établi de nouvelles références lors de sa sortie. Bien que des modèles plus récents comme YOLO11 et YOLO26 soient depuis sortis avec des améliorations supplémentaires, les innovations architecturales de YOLOv9 continuent d’influencer le domaine.
Exemples d’utilisation#
Cet exemple fournit des exemples simples d’entraînement et d’inférence avec YOLOv9. Pour consulter la documentation complète sur ces modes et les autres, voir les pages de documentation Predict, Train, Val et Export.
Les modèles *.pt préentraînés avec PyTorch, ainsi que les fichiers de configuration *.yaml, peuvent être transmis à la classe YOLO() pour créer une instance de modèle en Python :
from ultralytics import YOLO
# Build a YOLOv9c model from scratch
model = YOLO("yolov9c.yaml")
# Build a YOLOv9c model from pretrained weight
model = YOLO("yolov9c.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv9c model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Tâches et modes pris en charge#
La série YOLOv9 propose une gamme de modèles, chacun optimisé pour une détection d’objets haute performance. Ces modèles répondent à différents besoins en matière de calcul et de précision, ce qui les rend polyvalents pour un large éventail d’applications.
| Modèle | Noms de fichiers | Tâches | Entraînement | Validation | Inférence | Exportation |
|---|---|---|---|---|---|---|
| YOLOv9 | yolov9t.pt yolov9s.pt yolov9m.pt yolov9c.pt yolov9e.pt | Détection d’objets | ✅ | ✅ | ✅ | ✅ |
| YOLOv9-seg | yolov9c-seg.pt yolov9e-seg.pt | Segmentation d'instances | ✅ | ✅ | ✅ | ✅ |
Ce tableau présente une vue d’ensemble détaillée des variantes de modèles YOLOv9, en mettant en évidence leurs capacités pour les tâches de détection d’objets et leur compatibilité avec différents modes opérationnels tels que l’inférence, la validation, l’entraînement et l’exportation. Cette prise en charge complète garantit que tu peux exploiter pleinement les capacités des modèles YOLOv9 dans un large éventail de scénarios de détection d’objets.
L’entraînement des modèles YOLOv9 nécessite plus de ressources et prend plus de temps que celui d’un modèle YOLOv8 de taille équivalente.
Citations et remerciements#
Nous souhaitons saluer les auteurs de YOLOv9 pour leurs contributions significatives dans le domaine de la détection d’objets en temps réel :
@inproceedings{wang2024yolov9,
title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
author={Wang, Chien-Yao and Yeh, I-Hau and Liao, Hong-Yuan Mark},
booktitle={Computer Vision -- ECCV 2024},
pages={1--21},
year={2024},
organization={Springer Nature Switzerland}
}L’article officiel sur YOLOv9 a été publié dans les actes de Springer ECCV 2024, avec une prépublication sur arXiv. Les auteurs ont rendu leurs travaux accessibles au public, et la base de code est disponible sur GitHub. Nous apprécions leurs efforts pour faire progresser le domaine et rendre leurs travaux accessibles à une communauté plus large.
FAQ#
YOLOv9 introduit des techniques révolutionnaires telles que l’information de gradient programmable (PGI) et le réseau généralisé d’agrégation efficace des couches (GELAN). Ces innovations répondent aux problèmes de perte d’information dans les réseaux neuronaux profonds, garantissant une efficacité, une précision et une adaptabilité élevées. PGI préserve les données essentielles à travers les couches du réseau, tandis que GELAN optimise l’utilisation des paramètres et l’efficacité des calculs. Découvre-en plus sur les innovations principales de YOLOv9 qui ont établi de nouvelles références sur le jeu de données MS COCO.
Tu peux entraîner un modèle YOLOv9 avec des commandes Python et CLI. En Python, instancie un modèle à l’aide de la classe
YOLO, puis appelle la méthodetrain:from ultralytics import YOLO # Build a YOLOv9c model from pretrained weights and train model = YOLO("yolov9c.pt") results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Pour l’entraînement avec la CLI, exécute :
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640En savoir plus sur les exemples d’utilisation pour l’entraînement et l’inférence.
YOLOv9 est conçu pour limiter la perte d’information, ce qui est particulièrement important pour les modèles légers, souvent susceptibles de perdre des informations significatives. En intégrant l’information de gradient programmable (PGI) et des fonctions réversibles, YOLOv9 garantit la conservation des données essentielles, ce qui améliore la précision et l’efficacité du modèle. Il convient donc particulièrement aux applications nécessitant des modèles compacts et performants. Pour plus de détails, consulte la section sur l’impact de YOLOv9 sur les modèles légers.
YOLOv9 prend en charge diverses tâches, notamment la détection d’objets et la segmentation d’instances. Il est compatible avec plusieurs modes opérationnels tels que l’inférence, la validation, l’entraînement et l’exportation. Cette polyvalence rend YOLOv9 adaptable à diverses applications de vision par ordinateur en temps réel. Consulte la section sur les tâches et modes pris en charge pour plus d’informations.
YOLOv9 surpasse les détecteurs d’objets en temps réel à la pointe de la technologie en atteignant une précision et une efficacité supérieures. Sur le jeu de données COCO, les modèles YOLOv9 affichent des scores mAP supérieurs pour différentes tailles tout en maintenant ou en réduisant la charge de calcul. Par exemple, YOLOv9c atteint une précision comparable avec 42 % de paramètres en moins et 21 % de besoins de calcul en moins que YOLOv7 AF. Consulte les comparaisons de performances pour obtenir les métriques détaillées.