YOLOv5 vs. YOLOv10 : une comparaison technique complète
Le domaine de la vision par ordinateur en temps réel a connu une croissance exponentielle au cours des dernières années, avec diverses architectures repoussant les limites de ce qui est possible sur le matériel moderne. Lors de l'évaluation des architectures de pointe, la comparaison entre YOLOv5 et YOLOv10 met en lumière une étape évolutive significative dans le domaine de la détection d'objets. Cette plongée technique explore leurs paradigmes architecturaux, les compromis de performance et la manière dont tu peux tirer parti de ces outils dans des environnements de production.
Plongée architecturale approfondie
Comprendre les différences structurelles entre ces modèles est crucial pour les déployer efficacement dans le monde réel.
Ultralytics YOLOv5 : le standard de l'industrie
Introduit par Ultralytics, YOLOv5 est reconnu depuis longtemps pour son équilibre inégalé entre vitesse, précision et accessibilité.
- Auteur : Glenn Jocher
- Organisation : Ultralytics
- Date : 26-06-2020
- GitHub : Dépôt YOLOv5
- Documentation : Docs YOLOv5
YOLOv5 repose sur un mécanisme de détection basé sur des ancres combiné à une dorsale CSPDarknet profondément optimisée. Cette architecture s'appuie fortement sur des opérations standard prises en charge par pratiquement tous les moteurs d'inférence, ce qui la rend incroyablement polyvalente. Sa force majeure réside dans le SDK Python Ultralytics, qui offre une expérience utilisateur simplifiée, une API simple et une documentation complète. De plus, les besoins en mémoire moindres de YOLOv5 par rapport aux modèles basés sur les Transformer signifient qu'il s'entraîne rapidement sur des GPU grand public sans la lourde charge de VRAM.
YOLOv10 : faire progresser le paradigme
Développé par des chercheurs de l'Université Tsinghua, YOLOv10 visait à résoudre des goulots d'étranglement de latence spécifiques trouvés dans les architectures précédentes.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 23/05/2024
- ArXiv : 2405.14458
- GitHub : Dépôt YOLOv10
- Documentation : Docs YOLOv10
La caractéristique déterminante de YOLOv10 est sa conception native sans NMS (Non-Maximum Suppression). En utilisant des assignations doubles cohérentes pendant l'entraînement, le modèle élimine le besoin de post-traitement NMS pendant l'inférence. Cette réduction théorique de la latence est très bénéfique pour les déploiements s'exécutant sur du matériel haut de gamme avec une puissante accélération NVIDIA TensorRT, bien qu'elle puisse introduire des complexités structurelles pour les appareils de périphérie.
Alors que YOLOv10 offre des nouveautés architecturales intéressantes, les modèles Ultralytics comme YOLOv5 et le plus récent YOLO26 sont pris en charge nativement au sein de la Plateforme Ultralytics, offrant une efficacité d'entraînement supérieure, une évolution automatique des hyperparamètres et de nombreuses options d'exportation prêtes à l'emploi.
Analyse des performances
Lors de la comparaison de ces modèles, l'équilibre entre la précision (mAP) et le coût computationnel (latence et paramètres) dicte le meilleur cas d'utilisation. Tu trouveras ci-dessous la comparaison des performances techniques 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) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2,3 | 6,7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21,6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59,1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92,0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120,3 |
| YOLOv10x | 640 | 54,4 | - | 12.2 | 56.9 | 160,4 |
YOLOv10 atteint clairement un mAP50-95 plus élevé à des échelles de taille équivalentes, en tirant parti de sa conception de modèle modernisée axée sur l'efficacité et la précision. Cependant, YOLOv5 maintient une latence incroyablement compétitive, en particulier aux niveaux Nano et Small, ce qui le rend très fiable pour les environnements embarqués contraints comme la gamme NVIDIA Jetson ou les CPU standard via OpenVINO.
Méthodologies d'entraînement et écosystème
La valeur d'un modèle est profondément liée à l'écosystème qui l'entoure. Ultralytics maintient un écosystème exceptionnellement bien entretenu qui prend en charge une gamme incroyablement large de tâches. Alors que YOLOv10 se concentre strictement sur la détection d'objets 2D, Ultralytics prend nativement en charge la segmentation d'instance, la classification d'images, l'estimation de pose et les boîtes englobantes orientées (OBB).
De plus, l'entraînement d'un modèle Ultralytics nécessite une charge mémoire nettement inférieure à celle des méthodes concurrentes basées sur les Transformer, ce qui maintient le cycle de développement rapide et rentable.
Exécution de code fluide
L'entraînement, la validation et l'exportation des modèles sont unifiés sous une seule API. Tu peux basculer entre les modèles simplement en modifiant une chaîne de caractères.
from ultralytics import YOLO
# Load a pre-trained YOLOv5 model for baseline testing
model_v5 = YOLO("yolov5s.pt")
# Load a YOLOv10 model for comparison
model_v10 = YOLO("yolov10s.pt")
# Train the model on the COCO8 dataset efficiently
results = model_v5.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device="0", # Automatically utilizes PyTorch CUDA acceleration
batch=16,
)
# Export to ONNX for CPU inference deployment
model_v5.export(format="onnx", simplify=True)Cas d'utilisation et recommandations
Le choix entre YOLOv5 et YOLOv10 dépend de tes exigences de projet spécifiques, de tes contraintes de déploiement et de tes préférences en matière d'écosystème.
Quand choisir YOLOv5
YOLOv5 est un choix solide pour :
- Systèmes de production éprouvés : Déploiements existants où l'historique de stabilité de YOLOv5, sa documentation étendue et son immense soutien communautaire sont valorisés.
- Entraînement avec ressources limitées : Environnements dotés de ressources GPU limitées où le pipeline d'entraînement efficace et les exigences en mémoire plus faibles de YOLOv5 sont avantageux.
- Support étendu des formats d'exportation : Projets nécessitant un déploiement sur de nombreux formats, notamment ONNX, TensorRT, CoreML et TFLite.
Quand choisir YOLOv10
YOLOv10 est recommandé pour :
- Détection en temps réel sans NMS : Applications bénéficiant d'une détection de bout en bout sans suppression des non-maximums, réduisant la complexité de déploiement.
- Compromis vitesse-précision équilibrés : Projets nécessitant un bon équilibre entre la vitesse d'inférence et la précision de détection sur différentes échelles de modèles.
- Consistent-Latency Applications: Deployment scenarios where predictable inference times are critical, such as robotics or autonomous systems.
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 Edge sans NMS : Applications nécessitant une inférence cohérente et à faible latence sans la complexité du post-traitement par suppression des non-maximums.
- Environnements 100 % CPU : 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 : Scénarios difficiles comme l'imagerie par drone aérien ou l'analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision sur les objets minuscules.
Le futur : Ultralytics YOLO26
Alors que YOLOv5 a révolutionné l'accessibilité et que YOLOv10 a repoussé les limites de l'architecture sans NMS, l'état de l'art continue d'évoluer. Pour les nouveaux projets, nous te recommandons vivement l'avant-gardiste Ultralytics YOLO26, sorti en janvier 2026.
YOLO26 fusionne la fiabilité de l'écosystème Ultralytics avec des avancées révolutionnaires :
- Conception de bout en bout sans NMS : Intégrant le paradigme sans NMS directement dans le framework Ultralytics, YOLO26 simplifie le déploiement et garantit une latence plus faible.
- Inférence CPU jusqu'à 43 % plus rapide : Avec la suppression de la Distribution Focal Loss (DFL), YOLO26 est remarquablement plus rapide sur les appareils de périphérie sans GPU.
- Optimiseur MuSGD : Inspiré par les innovations d'entraînement LLM de Moonshot AI, l'optimiseur MuSGD offre une stabilité sans précédent et une convergence rapide.
- ProgLoss + STAL : Ces nouvelles fonctions de perte améliorent considérablement la reconnaissance des petits objets, vitale pour des domaines comme l'imagerie par drone et la robotique.
Tu peux gérer, entraîner et déployer YOLO26 directement via la Plateforme Ultralytics.
Conclusion
Le choix entre YOLOv5 et YOLOv10 revient souvent à des contraintes de projet spécifiques. YOLOv10 offre un excellent mAP pour les chercheurs et les applications tirant parti du débit brut des GPU. À l'inverse, YOLOv5 reste un cheval de bataille inébranlable et hautement compatible pour les déploiements standard.
Cependant, le domaine de la vision par ordinateur est dynamique. Pour exploiter le meilleur équilibre de performance, de polyvalence et de facilité d'utilisation, tu devrais te tourner vers Ultralytics YOLO26. Il encapsule la vitesse de l'inférence sans NMS avec l'écosystème robuste et bien documenté d'Ultralytics, garantissant que tes solutions d'IA visuelle sont prêtes pour le futur. Pour des cas d'utilisation spécialisés, tu peux également explorer YOLO11 pour une robustesse générale, ou RT-DETR pour une précision basée sur les Transformer.