YOLOv7 vs. YOLOv9 : Une comparaison technique complète
L'évolution de la famille YOLO (You Only Look Once) a été marquée par une innovation continue dans l'architecture des réseaux neuronaux, équilibrant les compromis essentiels entre la vitesse d'inférence, la précision et l'efficacité computationnelle. Cette comparaison se penche sur YOLOv7, une version marquante de 2022 connue pour son "sac de cadeaux" entraînable, et YOLOv9, une architecture de 2024 introduisant l'information de gradient programmable (PGI) pour surmonter les goulots d'étranglement d'information dans les réseaux profonds.
Analyse de la performance et de l’efficacité
La transition de YOLOv7 à YOLOv9 représente un saut significatif en termes d'efficacité des paramètres. Alors que YOLOv7 a été optimisé pour repousser les limites de la détection d'objets en temps réel à l'aide des réseaux d'agrégation de couches efficaces étendus (E-ELAN), YOLOv9 introduit des modifications architecturales qui lui permettent d'atteindre une précision moyenne moyenne (mAP) plus élevée avec moins de paramètres et d'opérations en virgule flottante (FLOP).
Pour les développeurs axés sur le déploiement de l'IA en périphérie, cette efficacité est cruciale. Comme illustré dans le tableau ci-dessous, YOLOv9e atteint un mAP de 55,6 % dominant, dépassant le plus grand YOLOv7x tout en conservant une empreinte de calcul compétitive. Inversement, le plus petit YOLOv9t offre une solution légère pour les appareils très contraints, un niveau que YOLOv7 ne cible pas explicitement avec la même granularité.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
YOLOv7 : Optimisation du Bag-of-Freebies entraînable
Lancé en juillet 2022, YOLOv7 a introduit plusieurs réformes structurelles à l'architecture YOLO, en se concentrant sur l'optimisation du processus d'entraînement sans augmenter le coût d'inférence.
- Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
- Organisation :Institute of Information Science, Academia Sinica, Taïwan
- Date : 2022-07-06
- Arxiv:YOLOv7 : L’ensemble de techniques d’entraînement « bag-of-freebies » établit une nouvelle référence
- GitHub :WongKinYiu/yolov7
Points clés de l'architecture
YOLOv7 utilise E-ELAN (Extended Efficient Layer Aggregation Network), qui contrôle les chemins de gradient les plus courts et les plus longs pour permettre au réseau d'apprendre plus efficacement les caractéristiques. Il a également popularisé la mise à l'échelle du modèle pour les modèles basés sur la concaténation, ce qui permet de mettre à l'échelle la profondeur et la largeur simultanément. Une innovation clé a été la convolution reparamétrée planifiée, qui rationalise l'architecture du modèle pendant l'inférence pour augmenter la vitesse.
Statut Hérité
Bien que YOLOv7 reste un modèle performant, il lui manque le support natif des nouvelles optimisations que l'on trouve dans l'écosystème Ultralytics. Les développeurs peuvent trouver l'intégration avec les outils MLOps modernes plus difficile par rapport aux nouvelles itérations.
YOLOv9 : Résoudre le goulot d’étranglement de l’information
YOLOv9, introduit au début de 2024, s’attaque à un problème fondamental de l’apprentissage profond : la perte d’informations lorsque les données traversent des couches successives.
- Auteurs : Chien-Yao Wang et Hong-Yuan Mark Liao
- Organisation :Institute of Information Science, Academia Sinica, Taïwan
- Date : 2024-02-21
- Arxiv:YOLOv9 : Apprendre ce que vous voulez apprendre en utilisant PGI
- GitHub :WongKinYiu/yolov9
Points clés de l'architecture
L'innovation principale de YOLOv9 est l'information de gradient programmable (PGI). Dans les réseaux profonds, des informations utiles peuvent être perdues pendant le processus de propagation avant, ce qui entraîne des gradients peu fiables. PGI fournit un cadre de supervision auxiliaire qui garantit que les informations clés sont préservées pour la fonction de perte. De plus, le réseau d'agrégation de couches efficace généralisé (GELAN) étend les capacités d'ELAN en permettant un blocage arbitraire, maximisant ainsi l'utilisation des paramètres et des ressources de calcul.
Cette architecture rend YOLOv9 exceptionnellement performant pour les tâches de détection complexes, telles que la détection de petits objets dans des environnements encombrés ou l'analyse d'imagerie aérienne haute résolution.
Pourquoi les modèles Ultralytics (YOLO11 & YOLOv8) sont-ils le choix préféré ?
Bien que YOLOv7 et YOLOv9 soient des réalisations académiques impressionnantes, la série Ultralytics YOLO—incluant YOLOv8 et le YOLO11 à la pointe de la technologie—est spécifiquement conçue pour le développement d'applications pratiques et réelles. Ces modèles privilégient la facilité d'utilisation, l'intégration de l'écosystème et l'efficacité opérationnelle, ce qui en fait le choix idéal pour la plupart des équipes d'ingénierie.
Expérience utilisateur simplifiée
Les modèles Ultralytics sont intégrés dans une APIPython unifiée qui fait abstraction des complexités des pipelines d'apprentissage. Le passage d'une tâche à l'autre ( détection d'objet, segmentation d'instance, estimation de la pose et boîte englobante orientée (OBB)) ne nécessite qu'un seul changement d'argument, ce qui n'est pas le cas des implémentations standard de YOLOv7 ou YOLOv9 .
from ultralytics import YOLO
# Load a model (YOLO11 automatically handles architecture)
model = YOLO("yolo11n.pt") # Load a pretrained model
# Train the model with a single line of code
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Perform inference on an image
results = model("path/to/image.jpg")
Écosystème bien entretenu
Choisir un modèle Ultralytics donne accès à un écosystème robuste. Cela comprend une intégration transparente avec Ultralytics HUB (et la future plateforme Ultralytics) pour la formation dans le cloud et la gestion des ensembles de données. De plus, la communauté active et les mises à jour fréquentes garantissent la compatibilité avec les derniers matériels, comme l'exportation vers TensorRT ou OpenVINO pour des vitesses d'inférence optimales.
Mémoire et efficacité de l'apprentissage
Les modèles Ultralytics sont réputés pour leur efficacité en matière de formation. Contrairement aux modèles basés sur les transformateurs (comme RT-DETR) qui peuvent être gourmands en mémoire et lents à converger, les modèlesYOLO d'Ultralytics utilisent des chargeurs de données optimisés et l'augmentation Mosaic pour offrir des temps d'apprentissage rapides avec des besoins en mémoire CUDA moindres. Cela permet aux développeurs d'entraîner des modèles de pointe sur des GPU grand public.
Cas d'utilisation idéaux
Le choix du bon modèle dépend des contraintes spécifiques de votre projet.
Applications dans le monde réel pour YOLOv9
- Recherche et évaluation comparative : Idéal pour les études universitaires nécessitant la plus haute précision signalée sur l’ensemble de données COCO.
- Surveillance haute fidélité : Dans des scénarios comme les systèmes d’alarme de sécurité où un gain de précision de 1 à 2 % justifie une complexité de mise en œuvre plus élevée.
Applications dans le monde réel pour YOLOv7
- Systèmes existants : Projets déjà construits sur les écosystèmes Darknet ou PyTorch précoces qui nécessitent une quantité stable et connue sans refactoriser l’ensemble de la base de code.
Applications dans le monde réel pour Ultralytics YOLO11
- Villes intelligentes : Utilisation du suivi d'objets pour l'analyse du flux de trafic où la vitesse et la facilité de déploiement sont primordiales.
- Santé : Analyse d'images médicales où la segmentation et la détection sont souvent nécessaires simultanément.
- Fabrication : Déploiement de systèmes de contrôle qualité sur des appareils périphériques tels que NVIDIA Jetson ou Raspberry Pi, bénéficiant des options d'exportation simples vers TFLite et ONNX.
Conclusion
YOLOv7 et YOLOv9 représentent tous deux des étapes importantes dans l'histoire de la vision par ordinateur. YOLOv9 offre une mise à niveau convaincante par rapport à v7 avec son architecture PGI, offrant une meilleure efficacité et une meilleure précision. Cependant, pour les développeurs à la recherche d'une solution polyvalente, facile à utiliser et bien prise en charge, Ultralytics YOLO11 reste le choix recommandé. Son équilibre entre performances, documentation complète et capacités multi-tâches (detect, segment, classify, pose) offre le chemin le plus rapide du concept à la production.
Explorer d'autres modèles
Pour trouver la solution idéale pour vos tâches spécifiques de vision par ordinateur, vous pouvez explorer ces autres comparaisons :
- YOLOv8 vs. YOLOv9 - Comparez la version 8 largement adoptée avec la version 9 axée sur la recherche.
- YOLOv10 vs. YOLOv9 - Voyez comment le YOLOv10 de bout en bout se compare.
- YOLO11 vs. YOLOv8 - Comprendre les améliorations apportées à la dernière version d'Ultralytics.
- RT-DETR vs. YOLOv9 - Un regard sur la détection basée sur les transformateurs vs. les CNN.