Skip to content

YOLOv9: A Leap Forward in Object Detection Technology

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

In the quest for optimal real-time object detection, YOLOv9 stands out with its innovative approach to overcoming information loss challenges inherent in deep neural networks. By integrating PGI and the versatile GELAN architecture, YOLOv9 not only enhances the model's learning capacity but also ensures the retention of crucial information throughout the detection process, thereby achieving exceptional accuracy and performance.

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 as parameters for the reversible and its inverse function, respectively. This property is crucial for deep learning architectures, as it allows the network to retain a complete information flow, thereby enabling more accurate updates to the model's parameters. YOLOv9 incorporates reversible functions within its architecture to mitigate the risk of information degradation, especially in deeper layers, ensuring the preservation of critical data for object detection tasks.

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 susceptibles de perdre des informations importantes 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

The performance of YOLOv9 on the COCO dataset exemplifies its significant advancements in real-time object detection, setting new benchmarks across various model sizes. Table 1 presents a comprehensive comparison of state-of-the-art real-time object detectors, illustrating YOLOv9's superior efficiency and accuracy.

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

Performance

Modèle taille
(pixels)
mAPval
50-95
mAPval
50
params
(M)
FLOPs
(B)
YOLOv9t 640 38.3 53.1 2.0 7.7
YOLOv9s 640 46.8 63.4 7.2 26.7
YOLOv9m 640 51.4 68.1 20.1 76.8
YOLOv9c 640 53.0 70.2 25.5 102.8
YOLOv9e 640 55.6 72.8 58.1 192.5
Modèle taille
(pixels)
mAPbox
50-95
mAPmask
50-95
params
(M)
FLOPs
(B)
YOLOv9c-seg 640 52.4 42.2 27.9 159.4
YOLOv9e-seg 640 55.1 44.3 60.5 248.4

Les itérations de YOLOv9, allant de la minuscule t variante de la vaste e model, demonstrate improvements not only in accuracy (mAP metrics) but also in efficiency with a reduced number of parameters and computational needs (FLOPs). This table underscores YOLOv9's ability to deliver high precision while maintaining or reducing the computational overhead compared to prior versions and competing models.

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.

These results showcase YOLOv9's strategic advancements in model design, emphasizing its enhanced efficiency without compromising on the precision essential for real-time object detection tasks. The model not only pushes the boundaries of performance metrics but also emphasizes the importance of computational efficiency, making it a pivotal development in the field of computer vision.

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 pretrained *.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èle Noms de fichiers Tâches Inférence Validation Formation Exporter
YOLOv9 yolov9t yolov9s yolov9m yolov9c.pt yolov9e.pt Détection d'objets
YOLOv9-seg yolov9c-seg.pt yolov9e-seg.pt Segmentation 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 supports various tasks including object detection and instance segmentation. It is compatible with multiple operational modes such as inference, validation, training, and export. This versatility makes YOLOv9 adaptable to diverse real-time computer vision applications. Refer to the supported tasks and modes section for more information.


📅 Created 7 months ago ✏️ Updated 16 days ago

Commentaires