YOLOv7 vs YOLOv5 : Une comparaison technique des détecteurs en temps réel
Lors de la création de pipelines de vision par ordinateur modernes, il est essentiel de choisir la bonne architecture de détection d'objets pour équilibrer la précision, la vitesse d'inférence et l'utilisation des ressources. Cette comparaison complète examine deux modèles très influents dans le domaine de la vision par ordinateur : YOLOv7 et Ultralytics YOLOv5.
En analysant leurs différences architecturales, leurs métriques de performance et leurs scénarios de déploiement idéaux, nous visons à aider les développeurs et les chercheurs à choisir le meilleur modèle pour leurs besoins spécifiques.
Historique et origines des modèles
Comprendre les origines de ces modèles permet de contextualiser leurs philosophies de conception et leurs cas d'utilisation ciblés.
YOLOv5
Publié par Glenn Jocher et l'équipe d'Ultralytics le 26 juin 2020, YOLOv5 a révolutionné le domaine en fournissant une implémentation native PyTorch qui privilégie la facilité d'utilisation sans sacrifier les performances. Il est rapidement devenu une norme industrielle grâce à son écosystème incroyablement simplifié et à ses dynamiques d'entraînement fiables. Tu peux explorer le code source sur le dépôt GitHub de YOLOv5 ou accéder au modèle directement via la plateforme Ultralytics.
YOLOv7
Introduit par Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao de l'Institut des sciences de l'information, Academia Sinica, à Taïwan, le 6 juillet 2022. YOLOv7 s'est fortement concentré sur des innovations architecturales telles que les réseaux d'agrégation de couches efficaces étendues (E-ELAN) et un "bag-of-freebies" entraînable pour repousser les limites de l'état de l'art en matière de précision. Les détails se trouvent dans leur papier officiel sur Arxiv et sur le dépôt GitHub de YOLOv7. Pour une intégration fluide, consulte la documentation Ultralytics YOLOv7.
Ces deux modèles sont entièrement intégrés dans le package Python Ultralytics, te permettant de passer de l'un à l'autre simplement en changeant la chaîne de caractères du modèle dans ton code !
Innovations architecturales
Conception d'Ultralytics YOLOv5
YOLOv5 utilise une dorsale CSPDarknet53 modifiée associée à un cou de type Path Aggregation Network (PANet). Cette conception est hautement optimisée pour une extraction de caractéristiques rapide et une efficacité mémoire. Contrairement aux anciennes architectures ou aux modèles de type Transformer lourds, YOLOv5 nécessite beaucoup moins de mémoire CUDA pendant l'entraînement, permettant des tailles de batch plus importantes sur des GPU grand public standard. De plus, le framework Ultralytics prend intrinsèquement en charge une grande variété de tâches au-delà des boîtes englobantes standard, incluant la segmentation d'image et la classification d'image.
Conception de YOLOv7
YOLOv7 a introduit plusieurs reparamétrages structurels et l'architecture E-ELAN, qui permet au réseau d'apprendre des caractéristiques plus diversifiées sans détruire le chemin de gradient original. Il implémente également une tête auxiliaire pour une supervision intermédiaire pendant l'entraînement. Bien que ces avancées produisent une mAP élevée, elles introduisent souvent des structures de tenseurs complexes qui peuvent rendre l'exportation vers des formats edge comme ONNX ou TensorRT légèrement plus difficile par rapport aux exportations rationalisées natives des modèles Ultralytics.
Analyse des performances
Lors de la comparaison de ces modèles, les développeurs doivent trouver un équilibre entre mAPval, vitesse d'inférence et complexité computationnelle (FLOPs). Le tableau ci-dessous démontre les performances des deux architectures évaluées sur le jeu de données COCO.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Points clés à retenir
- Plafond de précision : YOLOv7x atteint la précision globale la plus élevée avec un impressionnant 53.1 mAPval, ce qui le rend très compétitif pour les scénarios où maximiser la performance de détection est l'objectif principal.
- Vitesse et efficacité : Ultralytics YOLOv5n est une merveille d'efficacité, offrant une latence d'inférence ultra-rapide (1.12 ms sur T4 TensorRT) avec une empreinte mémoire minuscule de seulement 2.6M de paramètres. Cela en fait un choix sans égal pour les déploiements edge fortement contraints.
- Équilibre des performances : La série YOLOv5 offre un gradient de modèles exceptionnel. YOLOv5l offre un excellent juste milieu, devancé par YOLOv7l d'une faible marge de précision mais proposant un pipeline de déploiement hautement mature.
L'avantage de l'écosystème Ultralytics
L'architecture d'un modèle n'est que la moitié de l'équation ; l'écosystème qui l'entoure dicte sa viabilité dans le monde réel. C'est là que les modèles Ultralytics brillent vraiment.
Facilité d'utilisation : Ultralytics fournit une API Python unifiée et très intuitive. Tu peux entraîner, valider et déployer des modèles avec un minimum de code répétitif, soutenu par une documentation officielle étendue. Écosystème bien maintenu : Un développement actif garantit des mises à jour constantes, des corrections de bugs et une intégration transparente avec des outils de suivi modernes comme Weights & Biases. Efficacité de l'entraînement : Utilisant des chargeurs de données optimisés et une mise en cache intelligente, YOLOv5 réduit considérablement les temps d'entraînement. De plus, des poids pré-entraînés prêts à l'emploi accélèrent l'apprentissage par transfert dans divers domaines.
Exemple de code : Entraînement simplifié
Avec le package Ultralytics, lancer un entraînement est pratiquement identique, quelle que soit l'architecture que tu choisis.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model (can easily swap to "yolov7.pt")
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Export the trained model to ONNX format for deployment
success = model.export(format="onnx")Cas d'utilisation idéaux
Quand choisir YOLOv7
- Benchmarks académiques : Parfait pour les chercheurs ayant besoin de comparer de nouvelles techniques par rapport à une référence bien documentée de 2022.
- Traitement Cloud GPU haut de gamme : Lors du déploiement sur du matériel serveur puissant où l'obtention de la plus haute mAP sur des scènes denses l'emporte sur la simplicité d'exportation.
Quand choisir YOLOv5
- Déploiements en production : Idéal pour les applications commerciales nécessitant une haute stabilité, des options de déploiement de modèles simples et une large compatibilité multiplateforme.
- Appareils Edge : Les variantes plus petites (YOLOv5n et YOLOv5s) fonctionnent exceptionnellement bien sur les téléphones mobiles et les systèmes embarqués.
- Besoins multi-tâches : Si ton projet doit évoluer d'une simple détection vers l'estimation de pose ou la segmentation en utilisant un framework unifié.
Tu cherches des itérations plus récentes ? Envisage d'explorer Ultralytics YOLOv8 ou Ultralytics YOLO11 pour de nouvelles avancées en détection sans ancres et en capacités d'apprentissage multi-tâches.
La nouvelle génération : Ultralytics YOLO26
Bien que YOLOv5 et YOLOv7 occupent une place essentielle dans l'histoire de la vision par IA, le paysage évolue constamment. Publié en janvier 2026, Ultralytics YOLO26 représente la pointe absolue de la technologie de détection d'objets, surpassant les générations précédentes sur toutes les métriques.
YOLO26 introduit plusieurs fonctionnalités qui changent de paradigme :
- Conception de bout en bout sans NMS : En s'appuyant sur des concepts introduits dans les itérations précédentes, YOLO26 est nativement de bout en bout. Cela élimine complètement le post-traitement par suppression des non-maxima (NMS), réduisant les goulots d'étranglement liés à la latence et simplifiant considérablement la logique de déploiement.
- Optimiseur MuSGD : Inspiré par Kimi K2 de Moonshot AI, cet optimiseur révolutionnaire fusionne la stabilité du SGD standard avec le momentum accéléré de Muon, apportant des innovations d'entraînement LLM avancées directement dans la vision par ordinateur.
- Vitesse CPU améliorée : En supprimant stratégiquement la Distribution Focal Loss (DFL), YOLO26 atteint jusqu'à 43 % d'inférence CPU plus rapide, ce qui en fait le champion incontesté pour le déploiement sur les appareils IoT edge et à faible consommation.
- ProgLoss + STAL : Ces fonctions de perte avancées permettent des améliorations massives dans la reconnaissance des petits objets, ce qui est critique pour l'imagerie aérienne et la robotique de précision.
- Améliorations spécifiques aux tâches : Doté d'une perte de segmentation sémantique pour la génération de masques, d'une estimation de log-vraisemblance résiduelle (RLE) pour le suivi de pose, et d'une perte d'angle spécialisée pour résoudre les problèmes complexes de limites de boîtes englobantes orientées (OBB).
Conclusion
YOLOv5 et YOLOv7 offrent tous deux des solutions robustes pour la détection d'objets en temps réel. YOLOv7 reste un choix solide pour une précision brute sur du matériel à haute capacité de calcul, tandis que YOLOv5 s'impose comme l'outil ultime convivial pour les développeurs, offrant un équilibre exceptionnel entre vitesse, efficacité et un écosystème de classe mondiale.
Cependant, pour les développeurs cherchant à pérenniser leurs pipelines et à obtenir la combinaison ultime de vitesse, de simplicité et de précision à l'état de l'art, nous recommandons vivement de migrer vers Ultralytics YOLO26. Il encapsule la légendaire facilité d'utilisation de la plateforme Ultralytics tout en offrant des innovations architecturales révolutionnaires.