Passer au contenu

YOLOv9 vs. YOLOv7 : un examen approfondi de l’évolution de la détection d’objets

Le paysage de la computer vision est caractérisé par une innovation rapide, où les avancées architecturales redéfinissent continuellement les limites de la vitesse et de la précision. YOLOv9 et YOLOv7 sont deux étapes importantes de ce parcours. Les deux modèles sont issus des recherches de Chien-Yao Wang et de ses collègues, et représentent différentes générations de la famille « You Only Look Once ».

Alors que YOLOv7 a établi la norme en matière de détection d'objets en temps réel lors de sa sortie en 2022, YOLOv9 a émergé en 2024 avec de nouveaux mécanismes pour remédier à la perte d'informations dans les réseaux profonds. Cette comparaison explore leurs spécifications techniques, leurs différences architecturales et leurs applications pratiques pour aider les développeurs à sélectionner le modèle optimal pour leurs besoins.

Métriques de performance et efficacité

L'évolution de YOLOv7 à YOLOv9 est plus visible dans le compromis entre le coût de calcul et la performance de détection. YOLOv9 introduit des gains d'efficacité significatifs, lui permettant d'atteindre une précision moyenne moyenne (mAP) plus élevée avec moins de paramètres par rapport à son prédécesseur.

Par exemple, le modèle YOLOv9m atteint le même mAP de 51,4 %val que YOLOv7l, mais utilise près de la moitié moins de paramètres (20,0M contre 36,9M) et beaucoup moins de FLOPs. Cette efficacité rend YOLOv9 particulièrement intéressant pour les applications d'IA en périphérie où les ressources matérielles sont limitées.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

YOLOv9 : Informations de gradient programmables

YOLOv9 représente un changement de paradigme dans la façon dont les réseaux neuronaux profonds gèrent la transmission de données à travers les couches. Lancé début 2024, il cible spécifiquement le problème du "goulot d'étranglement de l'information", où les données sont perdues lorsqu'elles traversent les couches successives d'un réseau profond.

Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
Organisation :Institute of Information Science, Academia Sinica
Date : 2024-02-21
Arxiv :2402.13616
GitHub :WongKinYiu/yolov9
Docs :Ultralytics YOLOv9

Innovation architecturale

L'innovation principale de YOLOv9 est l'introduction de l'information de gradient programmable (PGI). PGI fournit un cadre de supervision auxiliaire qui garantit que les gradients sont propagés de manière fiable vers les couches initiales, préservant ainsi les informations d'entrée essentielles qui pourraient autrement être perdues lors de l'extraction de caractéristiques.

Le Generalized Efficient Layer Aggregation Network (GELAN) complète PGI. Cette architecture permet aux développeurs d'empiler divers blocs de calcul (comme CSP ou ResBlocks) de manière flexible, optimisant ainsi les poids du modèle pour des contraintes matérielles spécifiques sans sacrifier la précision.

Points forts et faiblesses

  • Points forts :
    • Précision supérieure : Obtient des résultats à la pointe de la technologie sur l'ensemble de données COCO, avec le modèle YOLOv9-E atteignant 55,6 % de mAP.
    • Efficacité des paramètres : Offre des performances comparables aux anciens modèles en utilisant beaucoup moins de paramètres, ce qui réduit les besoins en mémoire pendant l’inférence.
    • Préservation de l'information : Les améliorations théoriques du flux de gradient conduisent à une meilleure convergence et à une meilleure représentation des caractéristiques.
  • Faiblesses :
    • Complexité de l’entraînement : Les branches auxiliaires utilisées pendant l’entraînement (et supprimées pour l’inférence) peuvent augmenter l’utilisation de la mémoire GPU pendant la phase d’entraînement par rapport aux architectures plus simples.

En savoir plus sur YOLOv9

YOLOv7 : La norme Bag-of-Freebies

Avant YOLOv9, YOLOv7 était le champion en titre de la famille YOLO. Il a introduit des améliorations architecturales axées sur l'optimisation du processus d'entraînement sans augmenter les coûts d'inférence, un concept connu sous le nom de "bag-of-freebies".

Auteurs : Chien-Yao Wang, Alexey Bochkovskiy, Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica
Date : 2022-07-06
Arxiv :2207.02696
GitHub :WongKinYiu/yolov7
Docs :Ultralytics YOLOv7

Aperçu architectural

YOLOv7 a introduit E-ELAN (Extended Efficient Layer Aggregation Network), qui contrôle les chemins de gradient les plus courts et les plus longs pour améliorer la capacité d'apprentissage du réseau. Il a également utilisé des techniques de mise à l'échelle du modèle qui modifient simultanément la profondeur et la largeur du réseau, assurant ainsi une architecture optimale pour différents appareils cibles.

Points forts et faiblesses

  • Points forts :
    • Fiabilité éprouvée : L'utilisation et la validation étendues par la communauté au cours de plusieurs années en font un choix stable pour les systèmes existants.
    • Haute vitesse : Optimisé spécifiquement pour l'inférence en temps réel sur du matériel GPU standard.
  • Faiblesses :
    • Efficacité inférieure : Nécessite plus de paramètres et de FLOPs pour égaler les niveaux de précision que les modèles plus récents comme YOLOv9 ou YOLO11 peuvent atteindre avec des architectures plus légères.
    • Anciens outils : Manque certaines des intégrations natives et des fonctionnalités de facilité d’utilisation que l’on trouve dans l’écosystème Ultralytics moderne.

En savoir plus sur YOLOv7

Cas d'utilisation et applications idéaux

Le choix entre ces deux modèles dépend souvent des contraintes spécifiques de l'environnement de déploiement et de la précision requise de la tâche.

Quand choisir YOLOv9

YOLOv9 est excellent pour les scénarios exigeant le rapport précision/efficacité le plus élevé.

  • Navigation autonome : Dans les voitures autonomes, la détection de petits objets à de longues distances est essentielle. La capacité de YOLOv9 à préserver les informations aide à reconnaître les dangers éloignés.
  • Imagerie médicale : Pour les tâches telles que la détection de tumeurs, où le fait de manquer une détection positive est critique, le rappel et la précision élevés de YOLOv9 sont avantageux.
  • Appareils périphériques : L'argument yolov9t variante fournit une solution robuste pour Appareils IoT comme les Raspberry Pi, offrant une bonne précision avec une surcharge de calcul minimale.

Quand choisir YOLOv7

YOLOv7 reste pertinent pour les pipelines existants qui sont déjà optimisés pour son architecture.

  • Systèmes existants : Les chaînes de fabrication industrielles qui ont validé YOLOv7 pour le contrôle qualité peuvent préférer maintenir la cohérence plutôt que de mettre à niveau immédiatement.
  • Bases de référence pour la recherche : Il constitue une excellente référence pour comparer les nouvelles stratégies de detection aux normes établies dans la recherche universitaire.

Équilibre des performances avec Ultralytics

Bien que YOLOv9 et YOLOv7 soient puissants, les développeurs à la recherche de l'équilibre ultime entre vitesse, précision et expérience de développement devraient envisager Ultralytics YOLO11. YOLO11 intègre les meilleures caractéristiques des générations précédentes avec une API rationalisée, prenant en charge la détection, la segmentation, l'estimation de pose et la classification dans un seul framework.

L'avantage Ultralytics

L'utilisation de ces modèles au sein de l'écosystème Ultralytics offre des avantages distincts par rapport à l'utilisation de référentiels de recherche bruts. L'API python Ultralytics fait abstraction du code boilerplate complexe, ce qui permet aux chercheurs et aux ingénieurs de se concentrer sur les données et les résultats.

  1. Facilité d’utilisation : Une interface unifiée vous permet de basculer entre YOLOv8, YOLOv9 et YOLO11 avec une seule ligne de code.
  2. Efficacité de l'entraînement : Les modèles Ultralytics sont optimisés pour une convergence plus rapide, nécessitant souvent moins de données d'entraînement pour atteindre une grande précision.
  3. Exigences de mémoire : Le framework est conçu pour minimiser l’utilisation de la mémoire CUDA, ce qui permet d’entraîner des tailles de lots plus importantes sur du matériel grand public par rapport aux modèles transformateurs gourmands en mémoire.
  4. Polyvalence : Au-delà des simples boîtes englobantes, l’écosystème prend en charge les tâches de segmentation d’instance, d’estimation de pose et de boîte englobante orientée (OBB), ce qui en fait un outil complet pour divers défis d’IA.

Exemple d'implémentation

L'exécution de ces modèles est simple avec la bibliothèque Ultralytics. L'extrait de code suivant montre comment charger un modèle pré-entraîné et exécuter l'inférence sur une image.

from ultralytics import YOLO

# Load a pre-trained YOLOv9 model
model = YOLO("yolov9c.pt")

# Run inference on a local image
results = model.predict("path/to/image.jpg", save=True, conf=0.5)

# Process results
for result in results:
    result.show()  # Display predictions

Pour ceux qui sont intéressés par l'entraînement sur des ensembles de données personnalisés, le processus est tout aussi simple, utilisant les stratégies robustes de réglage des hyperparamètres et d'augmentation des données intégrées au framework.

# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Conclusion

YOLOv9 et YOLOv7 représentent tous deux des réalisations importantes dans le domaine de la vision par ordinateur. YOLOv9 est le successeur technique évident, offrant une efficacité et une précision des paramètres supérieures grâce à ses architectures PGI et GELAN innovantes. C'est le choix recommandé pour les utilisateurs recherchant des performances élevées de la lignée de recherche spécifique de Wang et al.

Cependant, pour les développeurs à la recherche de l'expérience de développement d'IA la plus holistique, Ultralytics YOLO11 reste la meilleure recommandation. Grâce à sa maintenance active, à sa documentation exhaustive et à sa large prise en charge des tâches multimodales, YOLO11 garantit que vos projets sont évolutifs et prêts pour la production.

Explorer d'autres modèles

Pour élargir davantage votre compréhension du paysage de la détection d'objets, vous pouvez explorer ces modèles et comparaisons connexes :

  • YOLO11 vs. YOLOv9 - Comparaison du dernier modèle Ultralytics avec YOLOv9.
  • YOLOv8 vs. YOLOv7 - Voyez comment la génération précédente se compare.
  • RT-DETR vs. YOLOv9 - Un regard sur la détection basée sur les transformateurs par rapport aux CNN.
  • YOLOv10 - Explorez le modèle de détection d'objets en temps réel et de bout en bout.
  • Ultralytics HUB : la façon la plus simple d’entraîner et de déployer vos modèles.

Commentaires