YOLOv10 contre YOLOv5#
Le choix de la bonne architecture de réseau neuronal est essentiel pour déployer avec succès des pipelines de vision par ordinateur en production. Cette page propose une analyse technique approfondie comparant YOLOv10 et YOLOv5, deux modèles qui ont fortement influencé l’évolution de la détection d’objets en temps réel. Bien que ces deux modèles aient eu un impact considérable sur la communauté de l’intelligence artificielle, ils représentent des époques et des philosophies différentes en matière de conception d’architectures d’apprentissage profond.
Ce guide évalue ces architectures selon la précision moyenne (mAP), la latence d’inférence, l’efficacité des paramètres et le soutien de l’écosystème, afin de t’aider à choisir le meilleur modèle pour tes besoins de déploiement.
Présentation des modèles#
YOLOv10 : détection d’objets de bout en bout en temps réel#
Développé par des chercheurs de l’université Tsinghua, YOLOv10 a introduit une nouvelle approche de la détection d’objets en supprimant le besoin de post-traitement.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 2024-05-23
- Article de recherche : arXiv:2405.14458
- Code source : Dépôt GitHub de YOLOv10
La percée déterminante de YOLOv10 est sa conception de bout en bout sans NMS. Historiquement, les modèles YOLO s’appuyaient sur la suppression non maximale (NMS) pour filtrer les boîtes englobantes redondantes. YOLOv10 utilise des assignations doubles cohérentes pour l’entraînement sans NMS, ce qui réduit considérablement la variabilité de la latence d’inférence et simplifie la logique de déploiement. De plus, l’architecture adopte une conception globale axée sur l’efficacité et la précision, qui optimise en profondeur divers composants afin de réduire la redondance des calculs.
YOLOv5 : la référence industrielle en matière de facilité d’utilisation#
Sorti peu après la création du dépôt PyTorch d’Ultralytics, YOLOv5 a redéfini les attentes des développeurs envers un framework d’IA visuelle open source. Il demeure l’une des architectures les plus largement déployées au monde.
- Auteur : Glenn Jocher
- Organisation : Ultralytics
- Date : 2020-06-26
- Code source : Dépôt GitHub de YOLOv5
YOLOv5 est réputé pour sa facilité d’utilisation et son écosystème bien entretenu. Entièrement écrit en PyTorch, il offrait une expérience fluide, de débutant à expert, avec une prise en charge intégrée de l’entraînement, de la validation et de l’exportation vers des formats comme ONNX et TensorRT. Contrairement à YOLOv10, qui se concentre principalement sur la détection d’objets, YOLOv5 fait preuve d’une polyvalence exceptionnelle en prenant en charge la segmentation d’instances et la classification d’images dans la même API Python unifiée.
Comparaison des performances et des métriques#
Visualiser le rapport entre vitesse et précision est essentiel pour repérer les modèles qui offrent la meilleure précision sous une contrainte de vitesse donnée. Comprendre ces métriques de performance est fondamental pour choisir un modèle adapté aux contraintes propres à ton matériel.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Analyse technique#
- Précision (mAP) : YOLOv10 présente un avantage générationnel évident en matière de précision. Par exemple, le modèle YOLOv10-X atteint une mAP de 54,4 %val, dépassant YOLOv5x (50,7 % de mAP). Ce bond s’explique en grande partie par la stratégie d’entraînement sans NMS et les améliorations architecturales introduites en 2024.
- Latence d’inférence : les modèles YOLOv5 sont particulièrement rapides dans les tests TensorRT bruts sur T4 (par exemple, YOLOv5n à 1,12 ms), mais YOLOv10 élimine entièrement l’étape de post-traitement NMS. Dans les déploiements pratiques de bout en bout, sa conception sans NMS offre une latence plus constante et déterministe, ce qui est essentiel pour les applications en temps réel comme les véhicules autonomes et la robotique.
- Efficacité des paramètres : les modèles YOLOv10 maintiennent un équilibre des performances très compétitif. YOLOv10-S atteint une mAP de 46,3 % avec 7,2 M de paramètres, soit le même nombre que YOLOv5s, qui atteint une mAP de 37,4 %.
Lors du déploiement sur des appareils d’IA edge comme le NVIDIA Jetson, les modèles sans logique NMS (comme YOLOv10 ou YOLO26 exporté avec nms=False) se compilent souvent plus facilement avec TensorRT, évitant ainsi les opérations de repli sur CPU.
Cas d’utilisation et recommandations#
Le choix entre YOLOv10 et YOLOv5 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 YOLOv10#
YOLOv10 est un excellent choix 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 YOLOv5#
YOLOv5 est recommandé 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 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’avantage Ultralytics#
YOLOv10 offre d’excellentes capacités de détection, mais s’appuyer sur des dépôts universitaires peut parfois compliquer les pipelines de production. En utilisant le package Python officiel d’Ultralytics, tu accèdes à un écosystème unifié qui prend en charge YOLOv5 et YOLOv10, ainsi que des fonctionnalités avancées.
- Efficacité de l’entraînement : les architectures Ultralytics YOLO sont fortement optimisées pour réduire les besoins en mémoire pendant l’entraînement. Contrairement aux modèles Transformer lourds (comme RT-DETR), qui nécessitent beaucoup de mémoire CUDA, tu peux entraîner YOLOv5 et YOLOv10 sans difficulté sur des GPU grand public standards.
- Intégration à l’écosystème : l’intégration à la plateforme Ultralytics permet aux développeurs de gérer visuellement les jeux de données, de suivre les expériences avec Weights & Biases et d’ajuster automatiquement les hyperparamètres.
Exemple de code : entraînement simplifié#
Avec la bibliothèque Ultralytics, passer d’une architecture à l’autre est aussi simple que de modifier la chaîne du modèle. Le pipeline d’entraînement gère automatiquement l’augmentation des données, la mise à l’échelle et la configuration de l’optimiseur.
from ultralytics import YOLO
# Pour utiliser YOLOv5 :
# model = YOLO("yolov5su.pt")
# Pour utiliser YOLOv10 :
model = YOLO("yolov10s.pt")
# Entraîner le modèle sur un jeu de données personnalisé
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device=0, # Utiliser le GPU 0
)
# Exporter le modèle entraîné au format ONNX
path = model.export(format="onnx")La prochaine génération : Ultralytics YOLO26#
Si tu démarres aujourd’hui un nouveau projet de machine learning, nous te recommandons vivement d’évaluer le dernier-né, Ultralytics YOLO26. Sorti en janvier 2026, il représente l’état de l’art absolu en réunissant les meilleures innovations des cinq dernières années.
YOLO26 intègre nativement la conception de bout en bout sans NMS, inaugurée par YOLOv10, sous la forme d’une tête one-to-one facultative (nms=False), qui permet un déploiement rapide et déterministe. De plus, YOLO26 apporte plusieurs avancées majeures :
- Inférence CPU jusqu’à 43 % plus rapide : en supprimant le module Distribution Focal Loss (DFL), YOLO26 accélère considérablement l’exécution sur les CPU standards, ce qui en fait le meilleur choix pour le déploiement mobile et les capteurs IoT à faible consommation.
- Optimiseur MuSGD : inspiré des techniques d’entraînement des grands modèles de langage (LLM), comme Kimi K2 de Moonshot AI, YOLO26 utilise un hybride de SGD et de Muon. Cela garantit des entraînements extrêmement stables et une convergence beaucoup plus rapide que les optimiseurs SGD et AdamW standards utilisés dans les premiers modèles YOLO.
- ProgLoss + STAL : ces fonctions de perte avancées améliorent nettement la reconnaissance des petits objets, essentielle pour l’imagerie par drone et les applications de sécurité aérienne.
- Maîtrise de tâches spécifiques : alors que YOLOv10 est strictement un détecteur de boîtes englobantes, YOLO26 propose des améliorations architecturales dédiées à toutes les tâches, notamment Residual Log-Likelihood Estimation (RLE) pour la pose et des fonctions de perte angulaire spécialisées pour les boîtes englobantes orientées (OBB).
Si tu explores le vaste domaine de la détection d’objets, tu voudras peut-être aussi comparer ces architectures à d’autres frameworks. Consulte nos analyses détaillées de YOLO11 contre EfficientDet ou de RT-DETR contre YOLOv8 pour des comparaisons plus complètes.
Que tu t’appuies sur la solide expérience de YOLOv5, l’innovation sans NMS de YOLOv10 ou les performances de pointe inégalées de YOLO26, l’écosystème Ultralytics fournit les outils nécessaires pour concrétiser rapidement et efficacement tes applications d’IA visuelle.