YOLOv5 vs YOLOv10#
Le domaine de la vision par ordinateur en temps réel a connu une croissance exponentielle au cours des dernières années, 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 analyse technique approfondie explore leurs paradigmes architecturaux, les compromis de performance et la manière dont tu peux exploiter ces outils dans des environnements de production.
Plongée architecturale#
Comprendre les différences structurelles entre ces modèles est crucial pour les déployer efficacement dans le monde réel.
Ultralytics YOLOv5 : La norme 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 : 2020-06-26
- GitHub : YOLOv5 Repository
- Documentation : YOLOv5 Docs
YOLOv5 s'appuie sur un mécanisme de détection basé sur des ancres combiné à un backbone CSPDarknet profondément optimisé. Cette architecture repose fortement sur des opérations standard prises en charge par la quasi-totalité des moteurs d'inférence, ce qui la rend incroyablement polyvalente. Sa force majeure réside dans le Ultralytics Python SDK, qui offre une expérience utilisateur rationalisée, une API simple et une documentation complète. De plus, les exigences de mémoire plus faibles de YOLOv5 par rapport aux modèles basés sur des Transformer signifient qu'il s'entraîne rapidement sur des GPU grand public sans la lourde surcharge de VRAM.
YOLOv10 : Faire avancer le paradigme#
Développé par des chercheurs de l'Université Tsinghua, YOLOv10 visait à résoudre les 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 : Tsinghua University
- Date : 23/05/2024
- ArXiv : 2405.14458
- GitHub : YOLOv10 Repository
- Documentation : YOLOv10 Docs
La caractéristique déterminante de YOLOv10 est sa conception nativement sans NMS (Non-Maximum Suppression). En utilisant des attributions duales 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.
Bien que YOLOv10 propose des nouveautés architecturales intéressantes, les modèles Ultralytics tels que YOLOv5 et le plus récent YOLO26 sont pris en charge nativement au sein de la Ultralytics Platform, offrant une efficacité d'entraînement supérieure, une évolution automatique des hyperparamètres et de nombreuses options d'exportation prêts à l'emploi.
Analyse des performances#
Lors de la comparaison de ces modèles, l'équilibre entre la précision (mAP) et le coût de calcul (latence et paramètres) dicte le meilleur cas d'utilisation. Ci-dessous se trouve la comparaison des performances techniques sur le COCO dataset.
| 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 axée sur l'efficacité et la précision modernisées. Cependant, YOLOv5 maintient une latence incroyablement compétitive, en particulier aux niveaux Nano et Small, ce qui le rend haut de gamme et 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 object detection 2D, Ultralytics prend en charge nativement la instance segmentation, la image classification, la pose estimation et les oriented bounding boxes (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 Transformer, ce qui maintient le cycle de développement rapide et rentable.
Exécution de code transparente#
L'entraînement, la validation et l'exportation de 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 des exigences spécifiques de ton projet, des contraintes de déploiement et des préférences d'écosystème.
Quand choisir YOLOv5#
YOLOv5 est un choix solide 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 YOLOv10#
YOLOv10 est recommandé pour :
- Détection temps réel sans NMS : Applications bénéficiant d'une détection de bout en bout sans NMS (Non-Maximum Suppression), ce qui réduit la complexité du déploiement.
- Compromis vitesse-précision équilibré : Projets nécessitant un bon équilibre entre la vitesse d'inférence et la précision de détection pour différentes tailles de modèles.
- Applications à latence constante : Les scénarios de déploiement où des temps d'inférence prévisibles sont essentiels, tels que la robotique ou les systèmes autonomes.
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.
L'avenir : Ultralytics YOLO26#
Bien que YOLOv5 ait révolutionné l'accessibilité et que YOLOv10 ait repoussé les limites de l'architecture sans NMS, l'état de l'art continue d'évoluer. Pour les nouveaux projets, nous recommandons vivement le très avancé Ultralytics YOLO26, publié 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 : En 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 Ultralytics Platform.
Conclusion#
Choisir entre YOLOv5 et YOLOv10 se résume souvent à des contraintes de projet spécifiques. YOLOv10 offre un excellent mAP pour les chercheurs et les applications exploitant le débit brut des GPU. Inversement, 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 absolu en matière de performances, de polyvalence et de facilité d'utilisation, tu devrais t'intéresser à 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 de vision par IA sont pérennes. 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.