Passer au contenu

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 YOLOv5, mettant en valeur l'esprit de collaboration de la communauté de recherche en IA.



Regarder : Entraînement de YOLOv9 sur des données personnalisées avec Ultralytics | Jeu de données Industrial Package

Comparaison des performances de YOLOv9

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 défis de perte d'informations inhérents 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 assure également la conservation des informations cruciales tout au long du processus de détection, atteignant ainsi une précision et des performances exceptionnelles.

Innovations principales de YOLOv9

Les avancées de YOLOv9 sont profondément enracinées dans la résolution des défis posés par la perte d'informations dans les réseaux neuronaux profonds. Le principe de l'entonnoir d'information 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 goulet d'étranglement de l'information

Le principe de l'entonnoir d'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 mathématiquement représenté comme :

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

I désigne l'information mutuelle, et f et g représentent les fonctions de transformation avec les paramètres theta et phi, respectivement. YOLOv9 contrecarre 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 et performance 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'informations, 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 d'apprentissage profond , 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 de l'information, en particulier dans les couches plus profondes, assurant 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 susceptibles de perdre des informations importantes 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 rationalisé, les informations essentielles requises pour une détection d'objets précise sont conservées et utilisées efficacement.

Information de gradient programmable (PGI)

PGI est un concept novateur introduit dans YOLOv9 pour lutter contre le problème de l'entonnoir d'information, assurant la préservation des données essentielles à travers les couches de réseau profondes. Cela permet la génération de 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 supérieure des paramètres et une efficacité de calcul. Sa conception permet une intégration flexible de divers blocs de calcul, rendant YOLOv9 adaptable à un large éventail d'applications sans sacrifier la vitesse ou la précision.

Comparaison de l’architecture de YOLOv9

Bancs d'essai YOLOv9

L'évaluation comparative dans YOLOv9 à l'aide d'Ultralytics implique l'évaluation des performances de votre modèle entraîné et validé dans des scénarios réels. Ce processus comprend :

  • Évaluation des performances : Évaluation de la vitesse et de la précision du modèle.
  • Formats d'exportation : Test du modèle dans différents formats d'exportation pour s'assurer qu'il répond aux normes nécessaires et qu'il fonctionne bien dans divers environnements.
  • Prise en charge du framework : Fournir un framework complet au sein d'Ultralytics YOLOv8 pour faciliter ces évaluations et garantir des résultats cohérents et fiables.

En effectuant une évaluation comparative, vous pouvez vous assurer que votre modèle fonctionne non seulement bien dans des environnements de test contrôlés, mais qu'il maintient également des performances élevées dans des applications pratiques et réelles.



Regarder : Comment évaluer le modèle YOLOv9 à l'aide du package python Ultralytics

Performances sur l'ensemble de données MS COCO

Les performances de YOLOv9 sur l'ensemble de données COCO illustrent ses avancées significatives dans la détection d'objets en temps réel, établissant de nouvelles références dans 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 précision supérieures de YOLOv9.

Performance

Modèle Taille
(pixels)
mAPval
50-95
mAPval
50
paramètres
(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)
mAPboîte
50-95
mAPmasque
50-95
paramètres
(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 du minuscule t modèle au plus complet e 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 (FLOPs). Ce tableau souligne la capacité de YOLOv9 à fournir une haute précision tout en maintenant ou en réduisant la surcharge de calcul par rapport aux versions antérieures et aux modèles concurrents.

En comparaison, YOLOv9 présente des gains remarquables :

  • Modèles légers : YOLOv9s surpasse YOLO MS-S en termes 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 moyens à grands : YOLOv9m et YOLOv9e montrent des avancées notables dans l'équilibrage du compromis entre la complexité du modèle et les performances de détection, offrant des réductions significatives des paramètres et des calculs dans un contexte 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 l'efficacité 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émentale de 1,7 % en AP.

Ces résultats mettent en évidence les avancées stratégiques de YOLOv9 dans la conception de modèles, 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é de calcul, ce qui en fait un développement essentiel dans le domaine de la vision par ordinateur.

Conclusion

YOLOv9 représente un développement essentiel 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 critiques grâce à des solutions innovantes telles que PGI et GELAN, YOLOv9 établit un nouveau précédent pour la recherche et l'application futures dans le domaine. Alors que la communauté de l'IA continue d'évoluer, YOLOv9 témoigne de la puissance 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 YOLOv9. Pour une documentation complète sur ces modes et d'autres, consultez les pages de documentation Predict, Train, Val et Export.

Exemple

PyTorch pré-entraînés *.pt ainsi que la configuration des modèles *.yaml fichiers peuvent être passés aux YOLO() class 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")

Des commandes CLI 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 propose une gamme de modèles, chacun étant optimisé pour la détection d'objets à haute performance. Ces modèles répondent à divers besoins de calcul et exigences de précision, ce qui les rend polyvalents pour un large éventail d'applications.

Modèle Noms de fichiers Tâches Inférence Validation Entraînement Exporter
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'instance

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 de fonctionnement 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.

Remarque

L'entraînement des modèles YOLOv9 nécessitera plus de ressources et prendra plus de temps que le modèle YOLOv8 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 :

@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 de YOLOv9 est disponible sur arXiv. Les auteurs ont rendu leur travail public, et la base de code est accessible sur GitHub. Nous apprécions leurs efforts pour faire progresser le domaine et rendre leur travail accessible à la communauté au sens large.

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 Efficace Généralisé (GELAN). Ces innovations répondent aux défis de la perte d'informations 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é computationnelle. Apprenez-en davantage sur les innovations clés de YOLOv9 qui établissent de nouvelles références sur l'ensemble de données MS COCO.

Comment YOLOv9 fonctionne-t-il 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 pointe en atteignant une précision et une efficacité supérieures. Sur le jeu de données COCO, les modèles YOLOv9 présentent des scores mAP supérieurs dans différentes tailles tout en maintenant ou en réduisant la surcharge 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. Explorez les comparaisons de performances pour des mesures détaillées.

Comment puis-je entraîner un modèle YOLOv9 en utilisant Python et CLI ?

Vous pouvez entraîner un modèle YOLOv9 en utilisant à la fois des commandes Python et CLI. Pour Python, instanciez un modèle en utilisant la YOLO classe et appelez la 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écutez :

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

Apprenez-en davantage sur les exemples d'utilisation pour l'entraînement et l'inférence.

Quels sont les avantages de l'utilisation d'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 sujets à la perte d'informations importantes. En intégrant l'Information de Gradient Programmable (PGI) et les fonctions réversibles, YOLOv9 assure la rétention des données essentielles, améliorant ainsi la précision et l'efficacité du modèle. Cela le rend très approprié pour les applications nécessitant des modèles compacts avec des performances élevées. Pour plus de détails, explorez la section sur l'impact de YOLOv9 sur les modèles légers.

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

YOLOv9 prend en charge diverses tâches, notamment la détection d'objets et la segmentation d'instance. Il est compatible avec plusieurs modes de fonctionnement 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. Consultez la section tâches et modes pris en charge pour plus d'informations.



📅 Créé il y a 1 an ✏️ Mis à jour il y a 5 mois

Commentaires