YOLOv9 vs YOLOv5#
Le domaine de la vision par ordinateur a connu une croissance fulgurante, la détection d'objets servant de pilier à d'innombrables applications industrielles et de recherche. Choisir la bonne architecture nécessite souvent une évaluation minutieuse de la précision moyenne (mAP), de la vitesse d'inférence et de l'empreinte mémoire. Dans cette comparaison, nous explorons deux modèles très influents : YOLOv9, célébré pour ses percées architecturales dans la rétention des informations de gradient, et Ultralytics YOLOv5, le standard de l'industrie éprouvé au combat, connu pour sa facilité d'utilisation incroyable et sa polyvalence de déploiement inégalée.
Innovations architecturales et origines techniques#
Comprendre les mécanismes sous-jacents de ces deux modèles fournit un contexte crucial pour leurs profils de performance respectifs.
YOLOv9 : Programmable Gradient Information#
Développé par les chercheurs Chien-Yao Wang et Hong-Yuan Mark Liao à l'Institute of Information Science de l'Academia Sinica à Taïwan, YOLOv9 a été publié le 21 février 2024. Le modèle introduit deux concepts révolutionnaires pour résoudre le goulot d'étranglement de l'information courant dans les réseaux neuronaux profonds : Programmable Gradient Information (PGI) et Generalized Efficient Layer Aggregation Network (GELAN).
En utilisant PGI, YOLOv9 garantit que les informations vitales sont conservées tout au long du processus d'alimentation directe (feed-forward), ce qui conduit à des mises à jour de gradient hautement précises. Pendant ce temps, l'architecture GELAN maximise l'efficacité des paramètres, permettant au modèle d'atteindre une précision de pointe avec une surcharge de calcul étonnamment faible. Tu peux explorer les détails techniques dans le papier de recherche Arxiv de YOLOv9 ou consulter le dépôt GitHub de YOLOv9.
Ultralytics YOLOv5 : Le standard de production#
Créé par Glenn Jocher et publié par Ultralytics le 26 juin 2020, YOLOv5 a révolutionné l'accessibilité de la vision par ordinateur. En tant que l'un des premiers modèles de détection d'objets construits nativement sur le framework PyTorch, il a contourné les complexités de l'ancien framework C Darknet. YOLOv5 exploite un backbone CSPNet hautement optimisé et un neck PANet, priorisant un équilibre fluide entre vitesse et précision.
Son plus grand accomplissement, cependant, est son intégration dans l'écosystème Ultralytics plus large. YOLOv5 est fortement optimisé pour une efficacité d'entraînement rapide et des environnements à faible mémoire, ce qui le rend incroyablement stable pour les déploiements en périphérie (edge).
Lors de l'évaluation de modèles pour des appareils en périphérie, souviens-toi que les modèles Ultralytics YOLO exigent généralement beaucoup moins de mémoire GPU pendant l'entraînement et l'inférence par rapport aux architectures lourdes basées sur les Transformers.
Analyse de performance : Vitesse vs Précision#
Lors de la conception d'un pipeline de vision par ordinateur, les développeurs doivent peser les compromis entre précision et latence. Le tableau suivant illustre les différences de performance sur le jeu de données COCO standard.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Analyse des compromis#
YOLOv9 établit une domination absolue en matière de précision brute. Le YOLOv9e repousse les limites du mAP à 55,6 %, en utilisant ses couches GELAN pour préserver les détails fins. Cela en fait un choix exceptionnel pour l'imagerie médicale ou les scénarios exigeant une exactitude rigoureuse sur de petits objets.
À l'inverse, YOLOv5 brille par sa vitesse de déploiement brute et sa flexibilité matérielle. Le YOLOv5n (Nano) est notoirement léger, exécutant des inférences en seulement 1,12 ms sur un GPU T4 via TensorRT. Si tu fais des déploiements sur des appareils IoT contraints, des téléphones mobiles ou un Raspberry Pi, l'empreinte mémoire de YOLOv5 le rend extrêmement fiable.
L'avantage de l'écosystème Ultralytics#
Une considération majeure lors du choix d'un modèle est l'écosystème logiciel environnant. Alors que YOLOv9 fournit des benchmarks de recherche de premier plan, l'utilisation des deux modèles via l'API Python d'Ultralytics moderne comble le fossé, offrant aux développeurs une expérience unifiée et rationalisée.
Facilité d'utilisation et exportation#
Ultralytics abstrait les obstacles d'ingénierie complexes. Des fonctionnalités telles que l'augmentation de données automatique et le réglage des hyperparamètres sont prises en charge dès le départ. Le passage des modèles en production est tout aussi trivial, avec des commandes d'exportation intégrées pour convertir les modèles aux formats ONNX, OpenVINO ou TFLite.
Polyvalence des tâches#
Bien que les deux modèles excèlent dans la détection d'objets, les modèles Ultralytics modernes sont conçus pour relever divers défis de vision par ordinateur. Le framework global offre un support natif pour la classification d'images, la segmentation d'instances, l'estimation de pose et les boîtes englobantes orientées (OBB), permettant aux développeurs de résoudre de multiples problèmes de vision sans changer de base de code.
Cas d'utilisation et recommandations#
Le choix entre YOLOv9 et YOLOv5 dépend des exigences spécifiques de ton projet, des contraintes de déploiement et de tes préférences en matière d'écosystème.
Quand choisir YOLOv9#
YOLOv9 est un choix solide pour :
- Recherche sur le goulot d'étranglement de l'information : Projets académiques étudiant les architectures Programmable Gradient Information (PGI) et Generalized Efficient Layer Aggregation Network (GELAN).
- Études sur l'optimisation du flux de gradient : Recherche axée sur la compréhension et l'atténuation de la perte d'informations dans les couches profondes du réseau pendant l'entraînement.
- Benchmarks de détection haute précision : Scénarios où les performances solides de YOLOv9 sur le benchmark COCO sont nécessaires comme point de référence pour les comparaisons architecturales.
Quand choisir YOLOv5#
YOLOv5 est recommandé pour :
- Systèmes de production éprouvés : Déploiements existants où la longue expérience de stabilité de YOLOv5, sa documentation étendue et le soutien massif de la communauté sont valorisés.
- Entraînement aux ressources limitées : Environnements avec des ressources GPU limitées où le pipeline d'entraînement efficace et les exigences mémoire inférieures de YOLOv5 sont avantageux.
- Extensive Export Format Support : Projets nécessitant un déploiement sur de nombreux formats, notamment ONNX, TensorRT, CoreML et TFLite.
Quand choisir Ultralytics (YOLO26)#
Pour la plupart des nouveaux projets, Ultralytics YOLO26 offre la meilleure combinaison de performance et d'expérience développeur :
- Déploiement en périphérie sans NMS : Applications nécessitant une inférence cohérente et à faible latence sans la complexité du post-traitement par Non-Maximum Suppression.
- Environnements CPU uniquement : Appareils sans accélération GPU dédiée, où l'inférence CPU jusqu'à 43 % plus rapide de YOLO26 offre un avantage décisif.
- Détection de petits objets : Les scénarios complexes tels que l'imagerie par drone aérien ou l'analyse par capteurs IoT où ProgLoss et STAL améliorent considérablement la précision sur les minuscules objets.
Exemple d'implémentation#
La beauté de l'écosystème Ultralytics est que tu peux passer d'un modèle YOLOv5 à un modèle YOLOv9 simplement en changeant la chaîne de poids.
from ultralytics import YOLO
# Load a pretrained YOLOv9 model (swap to "yolov5s.pt" to use YOLOv5)
model = YOLO("yolov9c.pt")
# Train the model efficiently on a custom dataset
train_results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on new images
predictions = model.predict("https://ultralytics.com/images/zidane.jpg")
# Export to ONNX for seamless deployment
model.export(format="onnx")Explorer des architectures plus récentes#
Bien que YOLOv5 et YOLOv9 soient d'excellents modèles avec des avantages distincts, le domaine continue d'avancer. Les utilisateurs explorant de nouveaux projets pourraient également vouloir évaluer les dernières itérations d'Ultralytics.
- YOLO11: Une évolution puissante et raffinée de la lignée YOLOv8 offrant un excellent équilibre vitesse-précision pour toutes les tâches de vision.
- YOLO26: Sorti en 2026, YOLO26 est la recommandation ultime pour les pipelines modernes. Il introduit une conception sans NMS de bout en bout (End-to-End NMS-Free Design), éliminant complètement les goulots d'étranglement du post-traitement. Avec la suppression du DFL (Distribution Focal Loss supprimée pour une exportation simplifiée et une meilleure compatibilité avec les appareils de périphérie/faible consommation), il atteint jusqu'à 43 % d'inférence CPU plus rapide. La stabilité de l'entraînement est suralimentée via le nouvel optimiseur MuSGD, et ProgLoss + STAL offre des fonctions de perte améliorées avec des améliorations notables de la reconnaissance des petits objets, critique pour l'IoT, la robotique et l'imagerie aérienne, ce qui en fait l'architecture la plus robuste pour les déploiements en périphérie comme dans le cloud.
Pour les équipes gérant de grands ensembles de données et des pipelines de déploiement complexes, l'utilisation de la plateforme Ultralytics offre une solution sans code pour entraîner, suivre et déployer ces modèles de pointe sans effort.