YOLOv9 : Une avancée majeure dans la technologie de Object Detection#
YOLOv9 marque une avancée significative dans la détection d'objets en temps réel, en introduisant des techniques novatrices telles que l'information de gradient programmable (PGI) et le réseau généralisé d'agrégation efficace de couches (GELAN). Ce modèle démontre des améliorations remarquables en termes 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 quête d'une détection d'objets en temps réel optimale, YOLOv9 se distingue par son approche innovante pour surmonter les problèmes de perte d'information inhérents aux neural networks profonds. En intégrant la 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 cruciales tout au long du processus de détection, atteignant ainsi une précision et des performances exceptionnelles.
Innovations majeures de YOLOv9#
Les avancées de YOLOv9 sont profondément ancrées dans la résolution des défis posés par la perte d'informations dans les réseaux de neurones profonds. Le principe du goulot d'étranglement de l'information (Information Bottleneck Principle) et l'utilisation innovante des fonctions réversibles sont au cœur de sa conception, garantissant que YOLOv9 maintient 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 dans l'apprentissage profond : à mesure que les données traversent les couches successives d'un réseau, le potentiel de perte d'informations 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 avec les paramètres theta et phi, respectivement. YOLOv9 contrecarre ce défi en implémentant l'information de gradient programmable (PGI), qui aide à préserver les données essentielles à travers la profondeur du réseau, garantissant une génération de gradients plus fiable et, par conséquent, une meilleure convergence et de meilleures performances du modèle.
Fonctions réversibles#
Le concept de fonctions réversibles est une autre pierre angulaire de la conception de YOLOv9. Une fonction est considérée comme réversible si elle peut être inversée sans aucune perte d'information, comme exprimé par :
X = v_zeta(r_psi(X))avec psi et zeta comme paramètres pour la fonction réversible et sa fonction inverse, respectivement. Cette propriété est cruciale pour les architectures de deep learning, car elle permet au réseau de conserver un flux d'informations complet, permettant ainsi des mises à jour plus précises des paramètres du modèle. YOLOv9 intègre des fonctions réversibles dans son architecture pour atténuer le risque de dégradation des informations, en particulier dans les couches plus profondes, garantissant 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'informations est particulièrement vitale pour les modèles légers, qui sont souvent sous-paramétrés et sujets à la perte d'informations significatives pendant le processus de propagation directe (feedforward). L'architecture de YOLOv9, grâce à l'utilisation du PGI et des fonctions réversibles, garantit que même avec un modèle simplifié, les informations essentielles requises pour une détection d'objets précise sont conservées et utilisées efficacement.
Informations de gradient programmables (PGI)#
Le PGI est un concept novateur introduit dans YOLOv9 pour combattre le problème du goulot d'étranglement de l'information, assurant la préservation des données essentielles à travers les couches profondes du réseau. Cela permet la génération de gradients fiables, facilitant des mises à jour précises du modèle et améliorant la performance globale de détection.
Réseau d'agrégation de couches efficace généralisé (GELAN)#
GELAN représente une avancée architecturale stratégique, permettant à YOLOv9 d'atteindre une utilisation supérieure des paramètres et une efficacité computationnelle. Sa conception permet une intégration flexible de divers blocs computationnels, rendant YOLOv9 adaptable à une large gamme d'applications sans sacrifier la vitesse ou la précision.

Benchmarks de YOLOv9#
L'évaluation comparative dans YOLOv9 à l'aide d'Ultralytics consiste à évaluer les performances de ton modèle entraîné et validé dans des scénarios du monde réel. Ce processus comprend :
- Évaluation des performances : Évaluer la vitesse et la précision du modèle.
- Formats d'exportation : Tester le modèle sur différents formats d'exportation pour s'assurer qu'il répond aux normes nécessaires et qu'il fonctionne bien dans divers environnements.
- Support de framework : Fournir un cadre complet au sein d'Ultralytics YOLOv8 pour faciliter ces évaluations et garantir des résultats cohérents et fiables.
En effectuant des benchmarks, tu peux t'assurer que ton modèle non seulement fonctionne bien dans des environnements de test contrôlés, mais maintient également des performances élevées dans des applications pratiques et réelles.
Watch: How to Benchmark the YOLOv9 Model Using the Ultralytics Python Package
Performance sur le jeu de données MS COCO#
Les performances de YOLOv9 sur le COCO dataset illustrent ses avancées significatives dans la détection d'objets en temps réel, établissant de nouvelles références à travers différentes tailles de modèles. Le tableau 1 présente une comparaison complète des détecteurs d'objets en temps réel de pointe, illustrant l'efficacité et la accuracy supérieures de YOLOv9.
Les itérations de YOLOv9, allant de la variante minuscule t au modèle étendu e, démontrent des améliorations non seulement en termes 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 precision élevée tout en maintenant ou en réduisant la charge de calcul par rapport aux versions antérieures et aux modèles concurrents.
À titre comparatif, YOLOv9 présente des gains remarquables :
- Modèles légers : YOLOv9s surpasse le YOLO MS-S en termes d'efficacité des paramètres et de charge computationnelle tout en réalisant une amélioration de 0,4∼0,6 % en AP.
- Modèles moyens à grands : YOLOv9m et YOLOv9e montrent des avancées notables dans l'équilibre entre la complexité du modèle et la performance de détection, offrant des réductions significatives des paramètres et des calculs dans un contexte de précision améliorée.
Le modèle YOLOv9c, en particulier, met en évidence l'efficacité des optimisations de l'architecture. Il fonctionne avec 42 % de paramètres en moins et 21 % de demandes de calcul en moins que YOLOv7 AF, tout en atteignant une précision comparable, démontrant les améliorations d'efficacité significatives de YOLOv9. De plus, le modèle YOLOv9e établit une nouvelle norme 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 incrémentielle de 1,7 % de l'AP.
Ces résultats illustrent les avancées stratégiques de YOLOv9 dans la conception de modèles, soulignant son efficacité accrue sans compromettre la précision essentielle pour les 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 insiste également sur l'importance de l'efficacité informatique, ce qui en fait un développement central dans le domaine de la computer vision.
Conclusion#
YOLOv9, sorti en février 2024, a représenté un développement crucial dans la détection d'objets en temps réel, offrant des améliorations significatives en termes d'efficacité, de précision et d'adaptabilité. En résolvant des problèmes critiques grâce à des solutions innovantes telles que PGI et GELAN, YOLOv9 a établi de nouvelles références au moment de sa sortie. Bien que des modèles plus récents comme YOLO11 et YOLO26 aient été commercialisés depuis 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 pour YOLOv9. Pour une documentation complète sur ces modes et d'autres, consulte les pages de documentation Predict, Train, Val et Export.
Des modèles pré-entraînés PyTorch *.pt ainsi que des fichiers de configuration *.yaml peuvent être passés à 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 la Object Detection haute performance. Ces modèles répondent à des besoins de calcul et à des exigences de précision variables, ce qui les rend polyvalents pour un large éventail d'applications.
| Modèle | Noms de fichiers | Tâches | Entraînement | Validation | Inférence | Exporter (Export) |
|---|---|---|---|---|---|---|
| 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 fournit un aperçu détaillé des variantes du modèle YOLOv9, mettant en évidence leurs capacités dans les tâches de détection d'objets et leur compatibilité avec divers modes opérationnels tels que Inference, Validation, Training et Export. 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écessitera plus de ressources et prendra plus de temps que le YOLOv8 model de taille équivalente.
Citations et remerciements#
Nous tenons à remercier 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 Springer ECCV 2024 proceedings, avec une pré-publication sur arXiv. Les auteurs ont rendu leur travail accessible au public, et la base de code est accessible sur GitHub. Nous saluons leurs efforts pour faire progresser le domaine et rendre leur travail accessible à la communauté au sens large.
FAQ#
YOLOv9 introduit des techniques novatrices telles que l'information de gradient programmable (PGI) et le réseau généralisé d'agrégation efficace de couches (GELAN). Ces innovations répondent aux problèmes de perte d'information dans les réseaux de neurones profonds, garantissant une efficacité, une précision et une adaptabilité élevées. La 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é informatique. Apprends-en plus sur YOLOv9's core innovations qui établissent de nouvelles références sur le jeu de données MS COCO.
Tu peux entraîner un modèle YOLOv9 en utilisant à la fois Python et des commandes CLI. Pour Python, instancie un modèle en utilisant la classe
YOLOet 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 un entraînement via CLI, exécute :
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640Apprends-en plus sur les usage examples pour l'entraînement et l'inférence.
YOLOv9 est conçu pour atténuer la perte d'information, ce qui est particulièrement important pour les modèles légers souvent sujets à la perte d'informations significatives. En intégrant l'information de gradient programmable (PGI) et des fonctions réversibles, YOLOv9 garantit la rétention des données essentielles, améliorant ainsi la précision et l'efficacité du modèle. Cela le rend parfaitement adapté aux applications nécessitant des modèles compacts et performants. Pour plus de détails, explore la section sur YOLOv9's impact on lightweight models.
YOLOv9 prend en charge diverses tâches, y compris la détection d'objets et l'instance segmentation. 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. Reporte-toi à la section supported tasks and modes pour plus d'informations.
YOLOv9 surpasse les détecteurs d'objets en temps réel de pointe en obtenant une précision et une efficacité supérieures. Sur le COCO dataset, 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 demandes de calcul en moins que YOLOv7 AF. Explore les performance comparisons pour des métriques détaillées.