YOLOv5 vs YOLOv10#
Le domaine de la vision par ordinateur en temps réel a connu une croissance exponentielle ces dernières années, tandis que diverses architectures repoussent les limites de ce que le matériel moderne peut accomplir. La comparaison entre YOLOv5 et YOLOv10, deux architectures de pointe, met en évidence une étape importante de l’évolution de la détection d’objets. Cette analyse technique approfondie examine leurs paradigmes architecturaux, les compromis en matière de performance et la façon dont les développeurs peuvent exploiter ces outils en production.
Analyse approfondie de l’architecture#
Comprendre les différences structurelles entre ces modèles est essentiel pour les déployer efficacement dans des conditions réelles.
Ultralytics YOLOv5 : la référence du secteur#
Lancé par Ultralytics, YOLOv5 est depuis longtemps reconnu pour son équilibre inégalé entre vitesse, précision et accessibilité.
- Auteur : Glenn Jocher
- Organisation : Ultralytics
- Date : 2020-06-26
- GitHub : Dépôt YOLOv5
- Documentation : Documentation YOLOv5
YOLOv5 s'appuie sur un mécanisme de détection avec ancres associé à un backbone CSPDarknet fortement optimisé. Cette architecture repose largement sur des opérations standard prises en charge par presque tous les moteurs d'inférence, ce qui la rend extrêmement polyvalente. Son principal atout 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, ses besoins en mémoire inférieurs à ceux des modèles basés sur des Transformers permettent à YOLOv5 de s'entraîner rapidement sur des GPU grand public sans nécessiter une quantité excessive de VRAM.
YOLOv10 : faire évoluer le paradigme#
Développé par des chercheurs de l'université Tsinghua, YOLOv10 visait à résoudre certains problèmes de latence présents dans les architectures précédentes.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 2024-05-23
- ArXiv : 2405.14458
- GitHub : Dépôt YOLOv10
- Documentation : Documentation YOLOv10
La caractéristique distinctive de YOLOv10 est sa conception native sans NMS (suppression non maximale). Grâce à des assignations doubles cohérentes pendant l'entraînement, le modèle élimine le besoin d'un post-traitement NMS lors de l'inférence. Cette réduction théorique de la latence est très avantageuse pour les déploiements sur du matériel haut de gamme bénéficiant de l'accélération NVIDIA TensorRT, mais elle peut introduire des complexités structurelles sur les appareils en périphérie.
Bien que YOLOv10 présente des nouveautés architecturales intéressantes, les modèles Ultralytics comme YOLOv5 et le plus récent YOLO26 sont pris en charge nativement sur la plateforme Ultralytics. Ils offrent une meilleure efficacité d'entraînement, une évolution automatique des hyperparamètres et de nombreuses options d'exportation dès le départ.
Analyse des performances#
Pour comparer ces modèles, il faut trouver le bon équilibre entre précision (mAP) et coût de calcul (latence et nombre de paramètres) afin de déterminer le cas d'utilisation le plus adapté. Voici une comparaison technique des performances sur le jeu de données COCO.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| YOLOv10n | 640 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
YOLOv10 atteint clairement une valeur mAP50-95 supérieure à taille équivalente, grâce à la conception modernisée de son modèle, qui vise à équilibrer efficacité et précision. YOLOv5 conserve toutefois une latence extrêmement compétitive, en particulier dans les catégories Nano et Small, ce qui en fait un choix très fiable pour les environnements embarqués soumis à des contraintes, comme la gamme NVIDIA Jetson ou les CPU standard avec OpenVINO.
Méthodes d’entraînement et écosystème#
La valeur d'un modèle est étroitement liée à l'écosystème qui l'entoure. Ultralytics dispose d'un écosystème exceptionnellement bien entretenu, qui prend en charge une très grande variété de tâches. Alors que YOLOv10 se concentre strictement sur la détection d'objets en 2D, Ultralytics prend en charge nativement la segmentation d'instances, la classification d'images, l'estimation de pose et les boîtes englobantes orientées (OBB).
En outre, l'entraînement d'un modèle Ultralytics nécessite nettement moins de mémoire que les méthodes concurrentes basées sur des Transformers, ce qui accélère le cycle de développement et en réduit le coût.
Exécution fluide du code#
L'entraînement, la validation et l'exportation des modèles sont réunis dans une seule API. Tu peux passer d'un modèle à un autre en modifiant simplement une chaîne de caractères.
from ultralytics import YOLO
# Charger un modèle YOLOv5 préentraîné pour les tests de référence
model_v5 = YOLO("yolov5su.pt") # YOLOv5u : poids YOLOv5 sans ancres pour le package ultralytics
# Charger un modèle YOLOv10 pour comparaison
model_v10 = YOLO("yolov10s.pt")
# Entraîner efficacement le modèle sur le jeu de données COCO8
results = model_v5.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device="0", # Utilise automatiquement l'accélération CUDA de PyTorch
batch=16,
)
# Exporter vers ONNX pour un déploiement d'inférence sur CPU
model_v5.export(format="onnx", simplify=True)Cas d’utilisation et recommandations#
Le choix entre YOLOv5 et YOLOv10 dépend des exigences propres à ton projet, des contraintes de déploiement et de tes préférences en matière d'écosystème.
Quand choisir YOLOv5#
YOLOv5 est un excellent choix pour :
- Systèmes de production éprouvés : les déploiements existants où la longue expérience de stabilité de YOLOv5, sa documentation exhaustive et le soutien important de sa communauté sont appréciés.
- Entraînement avec des ressources limitées : les environnements disposant de ressources GPU limitées, où le pipeline d’entraînement efficace de YOLOv5 et ses besoins en mémoire réduits sont avantageux.
- Prise en charge étendue des formats d’exportation : les projets qui nécessitent un déploiement dans de nombreux formats, notamment ONNX, TensorRT, CoreML et LiteRT.
Quand choisir YOLOv10#
YOLOv10 est recommandé pour :
- Détection en temps réel sans NMS : les applications qui tirent parti de la détection de bout en bout sans suppression non maximale, ce qui réduit la complexité du déploiement.
- Équilibre entre vitesse et précision : les projets qui nécessitent un bon compromis entre vitesse d’inférence et 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, comme en robotique ou dans les systèmes autonomes.
Quand choisir Ultralytics (YOLO26)#
Pour la plupart des nouveaux projets, Ultralytics YOLO26 offre le meilleur équilibre entre performances et expérience développeur :
- Déploiement en périphérie sans NMS : les applications qui exigent des inférences à faible latence et constantes, sans la complexité du post-traitement par suppression non maximale.
- Environnements exclusivement CPU : les appareils dépourvus d’accélération GPU dédiée, où l’inférence CPU jusqu’à 43 % plus rapide de YOLO26 constitue un avantage décisif.
- Détection de petits objets : les situations difficiles, comme l’imagerie aérienne par drone ou l’analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision pour les objets minuscules.
L'avenir : Ultralytics YOLO26#
YOLOv5 a démocratisé l'accès à la technologie et YOLOv10 a repoussé les limites des architectures sans NMS, mais l'état de l'art continue d'évoluer. Pour les nouveaux projets, nous recommandons vivement Ultralytics YOLO26, à la pointe de la technologie et sorti en janvier 2026.
YOLO26 allie la fiabilité de l'écosystème Ultralytics à des avancées majeures :
- Conception de bout en bout sans NMS : En intégrant le paradigme sans NMS directement au framework Ultralytics sous la forme d'une tête un-à-un facultative (
nms=False), YOLO26 simplifie le déploiement et réduit la latence. - Jusqu'à 43 % plus rapide en inférence sur CPU : Grâce à la suppression de Distribution Focal Loss (DFL), YOLO26 est remarquablement plus rapide sur les appareils en périphérie dépourvus de GPU.
- Optimiseur MuSGD : Inspiré des innovations en matière d'entraînement des 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, essentielle dans des domaines comme l'imagerie par drone et la robotique.
Tu peux gérer, entraîner et déployer YOLO26 directement depuis la plateforme Ultralytics.
Conclusion#
Le choix entre YOLOv5 et YOLOv10 dépend souvent des contraintes propres au projet. YOLOv10 offre un excellent mAP aux chercheurs et aux applications qui tirent parti de la puissance brute des GPU. À l'inverse, YOLOv5 reste un modèle robuste et très compatible pour les déploiements standard.
Cependant, le domaine de la vision par ordinateur évolue rapidement. Pour profiter du meilleur équilibre possible entre performances, polyvalence et facilité d'utilisation, les développeurs devraient se tourner vers Ultralytics YOLO26. Il associe la rapidité de l'inférence sans NMS à l'écosystème Ultralytics robuste et bien documenté, pour que tes solutions d'IA visuelle restent pérennes. Pour des cas d'utilisation spécialisés, les développeurs peuvent également explorer YOLO11 pour sa robustesse générale, ou RT-DETR pour la précision basée sur les Transformers.