YOLOv9 vs. YOLOv5 : une comparaison technique
Dans le paysage en évolution rapide de la vision par ordinateur, le choix du bon modèle de détection d'objets est essentiel pour la réussite d'un projet. Cette analyse fournit une comparaison technique détaillée entre YOLOv9, une architecture axée sur la recherche qui repousse les limites de la précision, et Ultralytics YOLOv5, le modèle standard de l'industrie, réputé pour sa fiabilité, sa vitesse et sa polyvalence. Nous explorons leurs différences architecturales, leurs benchmarks de performance et leurs cas d'utilisation idéaux pour vous aider à prendre une décision éclairée.
YOLOv9 : Innovation architecturale pour une précision maximale
Lancé début 2024, YOLOv9 cible les limites théoriques de la détection d'objets en s'attaquant aux problèmes fondamentaux du flux d'informations dans l'apprentissage profond. Il est conçu pour les scénarios où la précision est primordiale.
Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
Organisation :Institute of Information Science, Academia Sinica, Taïwan
Date : 2024-02-21
Arxiv :arXiv:2402.13616
GitHub :WongKinYiu/yolov9
Docs :Documentation YOLOv9
Architecture centrale
YOLOv9 introduit deux concepts révolutionnaires : l'Information de Gradient Programmable (PGI) et le Réseau d'Agrégation de Couches Efficace Généralisé (GELAN). Le PGI lutte contre le problème du goulot d'étranglement de l'information inhérent aux réseaux neuronaux profonds en garantissant que toutes les informations d'entrée sont conservées pour la fonction de perte, améliorant ainsi la fiabilité du gradient. GELAN optimise l'efficacité des paramètres, permettant au modèle d'atteindre une plus grande précision avec moins de ressources de calcul par rapport aux architectures précédentes utilisant la convolution depth-wise.
Points forts et faiblesses
Le principal atout de YOLOv9 est sa précision de pointe sur des critères de référence tels que l'ensemble de donnéesCOCO . Il excelle dans la détection d'objets de petite taille ou occultés, là où d'autres modèles pourraient échouer. Cependant, l'accent mis sur la précision de la détection s'accompagne de compromis. Le processus de formation peut être plus gourmand en ressources et, bien qu'il soit intégré à l'écosystème Ultralytics , le soutien de la communauté élargie et les outils tiers sont encore en cours de maturation par rapport aux modèles établis depuis plus longtemps. En outre, il se concentre principalement sur la détection, alors que d'autres modèles offrent une prise en charge native multitâche plus large.
Ultralytics YOLOv5 : La norme industrielle polyvalente
Depuis sa sortie en 2020, YOLOv5 Ultralytics a défini la norme en matière de déploiement pratique de l'IA dans le monde réel. Il établit un équilibre précis entre performance et facilité d'utilisation, ce qui en fait l'un des modèles les plus utilisés de l'histoire.
Auteur: Glenn Jocher
Organisation:Ultralytics
Date: 2020-06-26
GitHub:ultralytics/yolov5
Docs:Documentation YOLOv5
Architecture centrale
YOLOv5 utilise une architecture anchor-based raffinée comprenant un backbone CSPDarknet53 et un neck PANet pour une agrégation robuste des caractéristiques. Sa conception privilégie la vitesse d’inférence et l’optimisation de l’ingénierie. Le modèle est disponible en différentes échelles (Nano à Extra Large), ce qui permet aux développeurs d’adapter parfaitement le modèle à leurs contraintes matérielles, des edge devices embarqués aux GPU cloud.
L'avantage Ultralytics
Bien que YOLOv9 repousse les limites académiques, YOLOv5 excelle dans la praticité de l'ingénierie.
- Facilité d'utilisation : YOLOv5 est réputé pour son expérience d'« installation et d'exécution » immédiate. L'API Python simplifiée et la documentation complète réduisent considérablement le temps de développement.
- Écosystème bien maintenu : Soutenu par Ultralytics, YOLOv5 bénéficie d’une maintenance active, d’une communauté massive sur GitHub et d’une intégration transparente avec les outils MLOps.
- Polyvalence : Au-delà de la détection, YOLOv5 prend en charge nativement la segmentation d’instance et la classification d’images, offrant une solution unifiée pour diverses tâches de vision.
- Efficacité de la mémoire : Les modèles Ultralytics sont optimisés pour des empreintes mémoire plus faibles pendant l’entraînement et l’inférence, contrastant avec les exigences élevées des alternatives basées sur transformateur.
Métriques de performance : vitesse vs. précision
La comparaison ci-dessous met en évidence les rôles distincts de ces modèles. YOLOv9 atteint généralement un mAP (précision moyenne moyenne) plus élevé, en particulier dans les modèles de plus grande taille (c et e). Cela le rend supérieur pour les tâches nécessitant des détails précis.
À l'inverse, YOLOv5 offre des vitesses d'inférence inégalables, en particulier avec ses variantes Nano (n) et Small (s). Pour les applications en temps réel sur du matériel Edge comme le NVIDIA Jetson ou le Raspberry Pi, YOLOv5 reste un concurrent de premier plan en raison de sa nature légère et de la maturité de l'optimisation TensorRT.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (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 |
Conseil de déploiement
Pour une flexibilité de déploiement maximale, les deux modèles peuvent être exportés vers des formats tels que ONNX, TensorRT et CoreML à l'aide du mode d'exportation Ultralytics. Cela garantit que vos modèles fonctionnent efficacement sur n'importe quel matériel cible.
Entraînement et convivialité
Les méthodologies d'entraînement diffèrent considérablement en termes d'expérience utilisateur. Ultralytics YOLOv5 est conçu pour l'efficacité de l'entraînement, offrant des préréglages robustes qui fonctionnent immédiatement pour les ensembles de données personnalisés. Il dispose d'un calcul automatique des ancres, d'une évolution des hyperparamètres et d'intégrations d'enregistrement riches.
YOLOv9, bien que puissant, peut nécessiter un réglage plus précis des hyperparamètres pour atteindre la stabilité et la convergence, en particulier sur les petits ensembles de données. Cependant, grâce à son intégration dans le ultralytics Package Python, les développeurs peuvent désormais entraîner YOLOv9 en utilisant la même syntaxe simple que YOLOv5, comblant ainsi le fossé en matière de convivialité.
Exemple de code
Avec la bibliothèque Ultralytics, passer d’une architecture à l’autre est aussi simple que de modifier le nom du modèle. Cet extrait montre comment charger et exécuter l’inférence avec les deux modèles :
from ultralytics import YOLO
# Load the established industry standard YOLOv5 (nano version)
model_v5 = YOLO("yolov5nu.pt")
# Run inference on an image
results_v5 = model_v5("path/to/image.jpg")
# Load the high-accuracy YOLOv9 (compact version)
model_v9 = YOLO("yolov9c.pt")
# Run inference on the same image for comparison
results_v9 = model_v9("path/to/image.jpg")
Cas d'utilisation idéaux
Quand choisir YOLOv9
- Inspection de haute précision : Détection de défauts infimes dans les chaînes de montage de fabrication où chaque pixel compte.
- Recherche avancée : Projets explorant de nouvelles architectures de deep learning comme Programmable Gradient Information.
- Environnements complexes : Scénarios avec une occlusion ou un encombrement élevé où l'agrégation avancée de caractéristiques de GELAN offre un avantage décisif.
Quand choisir YOLOv5
- Déploiement Edge : Fonctionnement sur des appareils alimentés par batterie ou des microcontrôleurs où la consommation d’énergie et l’empreinte mémoire sont essentielles.
- Prototypage rapide : Lorsque vous devez passer de la collecte de données à une démonstration fonctionnelle en quelques heures, et non en quelques jours, en tirant parti des nombreux tutoriels et des ressources de la communauté.
- Systèmes multi-tâches : Applications nécessitant une estimation de pose ou une classification en plus de la détection dans un seul codebase.
- Stabilité de la production : Environnements d'entreprise nécessitant une solution éprouvée avec des années de fiabilité éprouvée.
Conclusion
Le choix entre YOLOv9 et YOLOv5 dépend de vos contraintes spécifiques. YOLOv9 est le choix supérieur pour maximiser la précision, offrant des améliorations architecturales de pointe. YOLOv5 reste le champion de la polyvalence et de la facilité d'utilisation, fournissant un écosystème robuste et bien pris en charge qui simplifie l'ensemble du cycle de vie de l'IA.
Pour les développeurs qui recherchent le meilleur des deux mondes—combinant la facilité d'utilisation de YOLOv5 avec des performances supérieures à YOLOv9—nous recommandons d'explorer YOLO11. En tant que dernière itération d'Ultralytics, YOLO11 offre une vitesse et une précision de pointe pour toutes les tâches de vision, représentant l'avenir de la famille YOLO.
Explorer d'autres modèles
- YOLO11: Le modèle le plus récent et le plus puissant d'Ultralytics pour la detect, la segmentation et la pose.
- YOLOv8 : Un prédécesseur puissant de YOLO11 offrant un excellent équilibre de fonctionnalités.
- RT-DETR : Un détecteur basé sur un transformateur optimisé pour les performances en temps réel.