Skip to content

YOLOv9 : un bond en avant 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 d'agrégation de couches efficace généralisé (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 l'ensemble 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 YOLOv5Le projet YOLOv9, bien que développé par une équipe open-source distincte, s'appuie sur la base de code robuste fournie par YOLOv9, mettant en évidence l'esprit de collaboration de la communauté de recherche en IA.



Regarde : Formation YOLOv9 sur des données personnalisées à l'aide de Ultralytics | Ensemble de données sur les emballages industriels

Comparaison des performances de YOLOv9

Introduction à YOLOv9

Dans la quête d'une détection optimale des objets en temps réel, YOLOv9 se distingue par son approche innovante pour surmonter les défis liés à la perte d'informations inhérents aux réseaux neuronaux profonds. En intégrant l'IGP et l'architecture polyvalente GELAN, YOLOv9 améliore non seulement la capacité d'apprentissage du modèle, mais assure également la rétention des informations cruciales tout au long du processus de détection, ce qui permet d'obtenir une précision et des performances exceptionnelles.

Principales innovations 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 neuronaux profonds. Le principe du goulot d'étranglement de l'information et l'utilisation innovante des fonctions réversibles sont au cœur de sa conception, ce qui permet à YOLOv9 de maintenir 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 passent par les couches successives d'un réseau, le potentiel de perte d'informations augmente. Ce phénomène est représenté mathématiquement par :

I(X, X) >= I(X, f_theta(X)) >= I(X, g_phi(f_theta(X)))

I représente l'information mutuelle, et f et g représentent des fonctions de transformation avec des paramètres theta et phirespectivement. YOLOv9 relève ce défi en mettant en œuvre l'information de gradient programmable (PGI), qui aide à préserver les données essentielles à travers la profondeur du réseau, assurant une génération de gradient plus fiable et, par conséquent, une meilleure convergence du modèle et de meilleures performances.

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 perte d'information, comme l'exprime :

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 cruciale pour apprentissage profond Les architectures de YOLOv9 sont plus performantes, car elles permettent au réseau de conserver un flux d'informations complet, ce qui permet 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, ce qui garantit la préservation des données critiques pour les tâches de détection d'objets.

Impact sur les modèles légers

La prise en compte de la perte d'informations est particulièrement vitale pour les modèles légers, qui sont souvent sous-paramétrés et enclins à perdre des informations significatives au cours du processus de feedforward. L'architecture de YOLOv9, grâce à l'utilisation d'IGP et de fonctions réversibles, garantit que même avec un modèle allégé, les informations essentielles requises pour une détection précise des objets sont conservées et utilisées efficacement.

Information programmable sur le gradient (PGI)

L'IGP est un nouveau concept 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, facilitant les mises à jour précises du modèle et améliorant les performances globales 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 des paramètres et une efficacité de calcul supérieures. Sa conception permet une intégration souple de divers blocs de calcul, ce qui rend YOLOv9 adaptable à un large éventail d'applications sans sacrifier la vitesse ou la précision.

Comparaison de l'architecture de YOLOv9

YOLOv9 Benchmarks

L'analyse comparative dans YOLOv9 à l'aide de 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 à travers différents formats d'exportation pour s'assurer qu'il répond aux normes nécessaires et qu'il fonctionne bien dans divers environnements.
  • Soutien au cadre de travail : Fournir un cadre complet au sein de Ultralytics YOLOv8 pour faciliter ces évaluations et garantir des résultats cohérents et fiables.

Grâce à l'analyse comparative, tu peux t'assurer que ton modèle est non seulement performant dans des environnements de test contrôlés, mais qu'il conserve également des performances élevées dans les applications pratiques du monde réel.



Regarde : Comment évaluer le modèle YOLOv9 à l'aide du paquet Ultralytics Python

Performance sur l'ensemble de données MS COCO

Les performances de YOLOv9 sur l'ensemble de données COCO illustrent ses avancées significatives en matière de détection d'objets en temps réel, é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 les plus récents, illustrant l'efficacité et la précision supérieures de YOLOv9.

Tableau 1. Comparaison des détecteurs d'objets en temps réel les plus récents

Performance

Modèletaille
(pixels)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t64038.353.12.07.7
YOLOv9s64046.863.47.226.7
YOLOv9m64051.468.120.176.8
YOLOv9c64053.070.225.5102.8
YOLOv9e64055.672.858.1192.5
Modèletaille
(pixels)
mAPbox
50-95
mAPmask
50-95
params
(M)
FLOPs
(B)
YOLOv9c-seg64052.442.227.9159.4
YOLOv9e-seg64055.144.360.5248.4

Les itérations de YOLOv9, allant de la minuscule t variante de la vaste e Les modèles de YOLOv9 et de YOLOv9, démontrent des améliorations non seulement en termes de précision (métriques mAP) mais aussi en termes d'efficacité avec un nombre réduit de paramètres et de besoins de calcul (FLOP). Ce tableau souligne la capacité de YOLOv9 à fournir des résultats de haute qualité. précision tout en maintenant ou en réduisant la surcharge de calcul par rapport aux versions précédentes et aux modèles concurrents.

Comparativement, YOLOv9 présente des gains remarquables :

  • Modèles légers: YOLOv9s surpasse le YOLO MS-S en matière d'efficacité des paramètres et de charge de calcul, tout en réalisant une amélioration de 0,4∼0,6 % en AP.
  • Modèles de taille moyenne à grande: YOLOv9m et YOLOv9e présentent des avancées notables dans l'équilibre entre la complexité du modèle et les performances de détection, offrant des réductions significatives des paramètres et des calculs sur fond d'amélioration de la précision.

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 demande de calcul en moins que YOLOv7 AF, tout en atteignant une précision comparable, ce qui démontre les améliorations significatives de YOLOv9 en matière d'efficacité. En outre, le modèle YOLOv9e établit une nouvelle norme pour les grands modèles, avec 15 % de paramètres en moins et 25 % de besoins en calcul en moins par rapport à YOLOv7 AF, ainsi qu'une augmentation de 1,7 % par rapport à YOLOv7 AF. YOLOv8xLe modèle YOLOv9e établit une nouvelle norme pour les grands modèles, avec 15 % de paramètres en moins et 25 % de calculs en moins que le modèle YOLOv9e, ainsi qu'une amélioration supplémentaire de 1,7 % du PA.

Ces résultats mettent en évidence les avancées stratégiques de YOLOv9 dans la conception du modèle, en 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 mesures de performance, mais souligne également l'importance de l'efficacité informatique, ce qui en fait un développement pivot dans le domaine de la vision par ordinateur.

Conclusion

YOLOv9 représente un développement pivot 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 relevant des défis cruciaux grâce à des solutions innovantes comme PGI et GELAN, YOLOv9 crée un nouveau précédent pour les recherches et les applications futures dans ce domaine. Alors que la communauté de l'IA continue d'évoluer, YOLOv9 témoigne du pouvoir de la collaboration et de l'innovation pour stimuler le progrès technologique.

Exemples d'utilisation

Cet exemple fournit des exemples simples de formation et d'inférence de YOLOv9. Pour une documentation complète sur ces modes et d'autres , voir les pages Predict, Train, Val et Export docs.

Exemple

PyTorch préformé *.pt ainsi que la configuration *.yaml peuvent être transmis à l'outil YOLO() pour créer une instance de modèle dans 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")

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

# Build a YOLOv9c model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv9c model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov9c.yaml source=path/to/bus.jpg

Tâches et modes pris en charge

La série YOLOv9 offre une gamme de modèles, chacun optimisé pour la détection d'objets de 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èleNoms de fichiersTâchesInférenceValidationFormationExporter
YOLOv9yolov9t yolov9s yolov9m yolov9c.pt yolov9e.ptDétection d'objets
YOLOv9-segyolov9c-seg.pt yolov9e-seg.ptSegmentation des instances

Ce tableau fournit un aperçu détaillé des variantes du modèle YOLOv9, en soulignant leurs capacités dans les tâches de détection d'objets et leur compatibilité avec divers modes opérationnels tels que l'Inférence, la Validation, l'Entraînement et l'Exportation. Cette prise en charge complète garantit que les utilisateurs peuvent exploiter pleinement les capacités des modèles YOLOv9 dans un large éventail de scénarios de détection d'objets.

Note

La formation des modèles YOLOv9 nécessitera plus de ressources et prendra plus de temps que celle d'un modèle de taille équivalente YOLOv8 .

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 :

@article{wang2024yolov9,
  title={YOLOv9: Learning What You Want to Learn Using Programmable Gradient Information},
  author={Wang, Chien-Yao  and Liao, Hong-Yuan Mark},
  booktitle={arXiv preprint arXiv:2402.13616},
  year={2024}
}

L'article original sur YOLOv9 peut être consulté sur arXiv. Les auteurs ont mis leur travail à la disposition du public, et la base de code est accessible sur GitHub. Nous apprécions leurs efforts pour faire avancer le domaine et rendre leur travail accessible à la communauté élargie.

FAQ

Quelles innovations YOLOv9 introduit-il pour la détection d'objets en temps réel ?

YOLOv9 introduit des techniques révolutionnaires telles que l'information de gradient programmable (PGI) et le réseau d'agrégation de couches efficace généralisé (GELAN). Ces innovations permettent de relever les défis liés à la perte d'informations dans les réseaux neuronaux profonds, en 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é du calcul. En savoir plus sur les principales innovations de YOLOv9 qui établissent de nouvelles références sur l'ensemble de données MS COCO.

Quelles sont les performances de YOLOv9 sur l'ensemble de données MS COCO par rapport à d'autres modèles ?

YOLOv9 surpasse les détecteurs d'objets en temps réel de l'état de l'art en atteignant une précision et une efficacité plus élevées. Sur l'ensemble 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 demande de calcul en moins que YOLOv7 AF. Explore les comparaisons de performances pour obtenir des mesures détaillées.

Comment puis-je former un modèle YOLOv9 en utilisant Python et CLI?

Tu peux entraîner un modèle YOLOv9 en utilisant les commandes Python et CLI . Pour Python, instancie un modèle à l'aide de la commande YOLO et appelle la classe train méthode :

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 CLI , exécute :

yolo train model=yolov9c.yaml data=coco8.yaml epochs=100 imgsz=640

En savoir plus sur les exemples d'utilisation de formation et d'inférence.

Quels sont les avantages de l'utilisation de Ultralytics YOLOv9 pour les modèles légers ?

YOLOv9 est conçu pour atténuer la perte d'informations, ce qui est particulièrement important pour les modèles légers souvent enclins à perdre des informations importantes. En intégrant l'information de gradient programmable (PGI) et les fonctions réversibles, YOLOv9 assure la conservation des données essentielles, améliorant ainsi la précision et l'efficacité du modèle. Il est donc tout à fait adapté aux applications nécessitant des modèles compacts et très performants. Pour plus de détails, explore la section sur l'impact de YOLOv9 sur les modèles légers.

Quelles tâches et quels modes YOLOv9 prend-il en charge ?

YOLOv9 prend en charge diverses tâches, notamment la détection d'objets et la segmentation d'instances. Il est compatible avec de multiples modes opérationnels tels que l'inférence, la validation, l'entraînement et l'exportation. Cette polyvalence permet à YOLOv9 de s'adapter à diverses applications de vision par ordinateur en temps réel. Reporte-toi à la section des tâches et modes pris en charge pour plus d'informations.

📅 C réé il y a 8 mois ✏️ Mis à jour il y a 1 mois

Commentaires