YOLOv8 vs YOLOv10#
La détection d’objets en temps réel a beaucoup évolué. Alors que les développeurs et les chercheurs cherchent à intégrer à leurs pipelines les modèles de vision par ordinateur les plus efficaces et précis, il devient essentiel de comparer les principales architectures. Ce guide compare Ultralytics YOLOv8 et YOLOv10, en examinant leurs différences architecturales, leurs métriques de performance et leurs scénarios de déploiement idéaux, afin de t’aider à faire un choix éclairé pour ton prochain projet d’IA.
Présentation du modèle : YOLOv8#
Étape importante dans l’évolution de YOLO, YOLOv8 a établi une nouvelle référence avec un framework unifié et polyvalent. Conçu dès le départ pour prendre en charge de nombreuses tâches au-delà des boîtes englobantes standard, il constitue un outil flexible pour la vision par ordinateur moderne.
Détails sur YOLOv8 :
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation : Ultralytics
- Date : 2023-01-10
- GitHub : https://github.com/ultralytics/ultralytics
- Documentation : https://docs.ultralytics.com/models/yolov8
Architecture et points forts#
YOLOv8 a introduit une tête de détection sans ancres et un backbone CSPDarknet remanié, améliorant considérablement la précision et la latence d’inférence. En supprimant les boîtes d’ancrage, le modèle réduit le nombre de prédictions de boîtes, ce qui accélère la suppression non maximale (NMS) pendant le post-traitement.
L’un des principaux avantages de YOLOv8 est sa polyvalence. Alors que de nombreux modèles se concentrent uniquement sur la détection d’objets, YOLOv8 prend nativement en charge la segmentation d’instances, la classification d’images, l’estimation de pose et les boîtes englobantes orientées (OBB). Il convient donc parfaitement aux pipelines en plusieurs étapes qui nécessitent simultanément différents types d’analyse visuelle. Il nécessite également moins de mémoire à l’entraînement que les architectures à base de Transformer comme RT-DETR, ce qui permet aux chercheurs d’entraîner de grands modèles sur des GPU grand public standard.
Présentation du modèle : YOLOv10#
Développé par des chercheurs de l’université Tsinghua, YOLOv10 visait à résoudre l’un des goulots d’étranglement les plus persistants de la famille YOLO : la dépendance au post-traitement NMS.
Détails de YOLOv10 :
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 2024-05-23
- arXiv : https://arxiv.org/abs/2405.14458
- GitHub : https://github.com/THU-MIG/yolov10
- Docs : https://docs.ultralytics.com/models/yolov10
Architecture et points forts#
La principale innovation de YOLOv10 est sa stratégie d’assignations doubles cohérentes, qui permet un entraînement sans NMS et un déploiement de bout en bout. En éliminant l’étape NMS, YOLOv10 réduit la latence d’inférence, en particulier sur les appareils edge où les opérations de post-traitement peuvent être coûteuses en calcul.
De plus, YOLOv10 intègre une conception globale du modèle axée sur l’efficacité et la précision, en ajustant soigneusement le coût de calcul de chaque couche. Il en résulte un modèle qui nécessite moins de paramètres et de FLOPs, tout en obtenant une précision moyenne (mAP) compétitive. C’est une option solide pour les cas d’utilisation qui exigent une latence minimale dans les tâches de détection pure.
Comparaison des performances et des métriques#
Pour comparer ces deux architectures, il est essentiel d’examiner les compromis entre le nombre de paramètres, les FLOPs et la précision. Voici leur comparaison exacte en matière de 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) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.1 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| 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 |
Bien que YOLOv10 obtienne une mAP supérieure avec moins de paramètres à toutes les échelles de ce tableau, YOLOv8 bénéficie d’un écosystème plus mature et d’une prise en charge plus large des tâches. Il est donc généralement plus fiable dans les environnements de production qui exigent davantage que de simples boîtes englobantes.
Écosystème et méthodologie d’entraînement#
Dans les workflows modernes de ML, l’écosystème qui entoure l’architecture est souvent le véritable facteur de différenciation. Choisir un modèle Ultralytics comme YOLOv8 offre une grande facilité d’utilisation et une expérience développeur cohérente.
Grâce à un SDK Python intuitif, les développeurs peuvent gérer l’entraînement, la validation et le déploiement en toute simplicité. L’écosystème Ultralytics est activement entretenu et propose des mises à jour fréquentes, une documentation complète sur le réglage d’hyperparamètres et un solide soutien communautaire sur des plateformes comme Discord et GitHub.
Exemple de code : entraînement simplifié#
L’API Python Ultralytics permet d’instancier, d’entraîner et de valider facilement l’un ou l’autre modèle. Le même workflow s’applique quelle que soit l’architecture sous-jacente.
from ultralytics import YOLO
# Load a pretrained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model efficiently with automated learning rate scheduling
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
device=0, # optimized CUDA memory usage
batch=16,
)
# Validate the model to check mAP metrics
metrics = model.val()
print(f"Validation mAP: {metrics.box.map}")
# Export to ONNX for edge deployment
model.export(format="onnx")Cas d’utilisation et recommandations#
Le choix entre YOLOv8 et YOLOv10 dépend des exigences de ton projet, de tes contraintes de déploiement et de tes préférences en matière d’écosystème.
Quand choisir YOLOv8#
YOLOv8 est un bon choix pour :
- Déploiement polyvalent multi-tâches : Les projets qui nécessitent un modèle éprouvé pour la détection, la segmentation, la classification et l'estimation de pose au sein de l'écosystème Ultralytics.
- Systèmes de production établis : les environnements de production existants déjà basés sur l’architecture YOLOv8 et dotés de pipelines de déploiement stables et bien testés.
- Large soutien de la communauté et de l’écosystème : les applications qui tirent parti des nombreux tutoriels, intégrations tierces et ressources communautaires actives de YOLOv8.
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 utilisant uniquement le CPU : les appareils dépourvus d’accélération GPU dédiée bénéficient d’un avantage décisif grâce à l’inférence CPU de YOLO26n, jusqu’à 43 % plus rapide que celle de YOLO11n.
- Détection de petits objets : scénarios difficiles comme les images aériennes capturées par drone ou l’analyse de capteurs IoT, où ProgLoss et STAL améliorent la précision sur les objets minuscules.
L’avenir : passer à YOLO26#
YOLOv8 est un modèle polyvalent et YOLOv10 apporte des pistes intéressantes sur les architectures sans NMS, mais le domaine a évolué. Pour obtenir le meilleur équilibre entre vitesse, précision et simplicité de déploiement, Ultralytics recommande YOLO26 pour les nouveaux projets.
Sorti en janvier 2026, YOLO26 combine les atouts de ses prédécesseurs et plusieurs nouvelles fonctionnalités :
- Conception de bout en bout sans NMS : en s’appuyant sur l’entraînement sans NMS que YOLOv10 a introduit dans les modèles YOLO, YOLO26 propose une inférence facultative sans NMS (
nms=False) pour un déploiement plus rapide et plus simple. - Suppression de la DFL : la suppression de Distribution Focal Loss facilite l’exportation du modèle vers CoreML et les appareils edge.
- Optimiseur MuSGD : inspiré de l’entraînement des grands modèles de langage (LLM), cet hybride de SGD et de Muon accélère la convergence et stabilise l’entraînement.
- Inférence CPU plus rapide : YOLO26n offre une inférence CPU jusqu’à 43 % plus rapide que YOLO11n, ce qui le rend particulièrement adapté au Raspberry Pi et aux applications IoT.
- ProgLoss + STAL : Progressive Loss et Small-Target-Aware Label Assignment (STAL) améliorent la détection des petits objets, essentielle pour l’imagerie aérienne et la robotique.
Si tu évalues actuellement des modèles, tu peux aussi envisager YOLO11, le prédécesseur direct de YOLO26, qui reste un modèle prêt pour la production et largement utilisé dans les solutions d’entreprise. Pour les nouveaux projets, YOLO26 associé à Ultralytics Platform est la solution recommandée pour annoter, entraîner et déployer des systèmes d’IA visuelle.