YOLOv10 vs YOLO11#
Choisir un modèle de vision par ordinateur en temps réel nécessite de comprendre les compromis entre les architectures actuelles. Cette comparaison examine les différences techniques, les compromis de performances et les cas d’usage idéaux de YOLOv10 et Ultralytics YOLO11, deux frameworks performants de détection d’objets.
Les deux modèles obtiennent de bons résultats sur les jeux de données de référence, mais leurs philosophies de conception et leurs intégrations à l’écosystème diffèrent considérablement. L’examen de leurs architectures permet de déterminer lequel correspond le mieux à tes contraintes de déploiement et aux objectifs de ton projet.
YOLOv10 : détection en temps réel sans NMS#
Sorti au printemps 2024, YOLOv10 a proposé une nouvelle approche du pipeline traditionnel de détection d’objets en s’attaquant directement à la latence induite par le post-traitement.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 23 mai 2024
- Article de recherche : arXiv:2405.14458
- Code source : THU-MIG/yolov10 sur GitHub
- Documentation : Documentation YOLOv10
L’innovation phare de YOLOv10 est sa stratégie d’assignation double cohérente, qui permet un entraînement sans NMS. Les détecteurs d’objets traditionnels s’appuient sur la suppression non maximale (NMS) pour filtrer les prédictions redondantes de boîtes englobantes. En supprimant cette étape, YOLOv10 réalise une détection véritablement de bout en bout, réduit la latence d’inférence et simplifie le déploiement sur des accélérateurs matériels comme les unités de traitement neuronal (NPUs), sur lesquelles les opérations NMS personnalisées sont difficiles à optimiser.
YOLO11 : polyvalence et performances portées par l’écosystème#
Lancé plus tard la même année, YOLO11 a poursuivi l’amélioration de la famille de modèles Ultralytics, en mettant l’accent sur l’équilibre entre vitesse, précision et expérience développeur.
- Auteurs : Glenn Jocher et Jing Qiu
- Organisation : Ultralytics
- Date : 27 septembre 2024
- Code source : Ultralytics sur GitHub
- Intégration à la plateforme : Plateforme Ultralytics
YOLO11 est conçu pour la production. S’il excelle dans la détection classique de boîtes englobantes, sa véritable force réside dans sa polyvalence. Contrairement à YOLOv10, principalement axé sur la détection d’objets, YOLO11 prend nativement en charge les tâches de segmentation d’instances, de classification d’images, d’estimation de pose et de boîtes englobantes orientées (OBB) grâce à une architecture unifiée. Ses besoins en mémoire à l’entraînement sont faibles, ce qui le rend très accessible aux équipes utilisant des GPU grand public, comparativement aux architectures basées sur Transformer plus lourdes.
Comparaison des performances et des métriques#
Pour comparer ces modèles côte à côte, il est essentiel d’examiner leurs performances selon différentes variantes de taille sur des benchmarks standards comme le jeu de données COCO.
YOLO11 devance YOLOv10 en mAP à chaque taille équivalente, de 0,2 à 1,0 point, avec des vitesses TensorRT similaires : YOLO11 est nettement plus rapide aux échelles n et l, les modèles s et m sont presque à égalité, et YOLOv10x est plus rapide que YOLO11x tout en utilisant environ deux fois moins de paramètres.
| 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 |
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.6 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.1 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 87.2 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 195.3 |
Pour reproduire localement ces vitesses d’inférence, veille à exporter tes modèles vers des formats optimisés comme OpenVINO pour les CPU Intel ou TensorRT pour les GPU NVIDIA.
Analyse approfondie de l’architecture#
Méthodologie et efficacité de l’entraînement#
L’architecture de YOLOv10 met l’accent sur la réduction de la redondance des calculs. En optimisant les conceptions du backbone et du neck à l’aide d’une stratégie globale axée sur l’efficacité et la précision, les auteurs de l’Université Tsinghua ont réduit le nombre de paramètres des modèles de milieu de gamme (comme YOLOv10m) par rapport aux versions précédentes.
L’efficacité de l’entraînement est une caractéristique des modèles Ultralytics. YOLO11 utilise le package Python ultralytics, qui masque la complexité du réglage des hyperparamètres. Ce framework gère automatiquement, dès l’installation, les augmentations avancées des données, la planification du taux d’apprentissage et l’entraînement distribué sur plusieurs GPU. YOLO11 conserve également une faible utilisation de la VRAM pendant l’entraînement.
Facilité d’utilisation et atouts de l’écosystème#
Un facteur essentiel à l’adoption en entreprise est un écosystème bien maintenu. Les dépôts de recherche sont souvent moins actifs après la publication initiale de l’article. L’écosystème Ultralytics qui soutient YOLO11 propose une expérience développeur de bout en bout et activement maintenue.
En s’intégrant à des outils comme Weights & Biases pour le suivi des expériences et Roboflow pour la gestion des jeux de données, YOLO11 accélère le passage du prototype à la production. La facilité d’utilisation se manifeste dans son API simple, qui permet aux développeurs d’entraîner et d’exporter des modèles en quelques lignes de code.
from ultralytics import YOLO
# Initialiser le petit modèle YOLO11
model = YOLO("yolo11s.pt")
# Entraîne efficacement le modèle grâce à une gestion optimisée de la mémoire
results = model.train(data="coco8.yaml", epochs=50, imgsz=640, device="0")
# Exporte au format ONNX pour plus de flexibilité lors du déploiement
model.export(format="onnx")Cas d’utilisation et recommandations#
Le choix entre YOLOv10 et YOLO11 dépend des exigences propres à ton projet, de tes 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 YOLO11#
YOLO11 est recommandé pour :
- Déploiement en périphérie en production : applications commerciales sur des appareils comme Raspberry Pi ou NVIDIA Jetson, où la fiabilité et la maintenance active sont primordiales.
- Applications de vision multitâches : projets nécessitant la détection, la segmentation, la classification, l’estimation de pose et l’OBB au sein d’un framework unifié.
- Prototypage et déploiement rapides : équipes qui doivent passer rapidement de la collecte de données à la production à l’aide de l’API Python Ultralytics simplifiée.
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 sans GPU : Les appareils dépourvus d'accélération GPU dédiée, où l'inférence CPU jusqu'à 43 % plus rapide de YOLO26 (YOLO26n par rapport à YOLO11n) procure un avantage décisif.
- Détection de petits objets : dans des scénarios exigeants comme les images aériennes prises par drone ou l’analyse de capteurs IoT, ProgLoss et STAL améliorent la précision sur les petits objets.
Explorer d’autres architectures#
YOLOv10 et YOLO11 sont d’excellents choix, mais ton cas d’usage pourrait bénéficier d’autres architectures présentées dans la documentation. Pour la détection basée sur l’attention, les modèles Transformer comme RT-DETR offrent une grande précision, mais nécessitent généralement davantage de mémoire. Si tu as besoin de capacités zero-shot pour identifier de nouvelles classes sans réentraînement, YOLO-World propose une approche à vocabulaire ouvert guidée par des invites en langage naturel.
La nouvelle génération : YOLO26#
Sorti en janvier 2026, Ultralytics YOLO26 réunit les atouts des deux modèles présentés ci-dessus et constitue le choix recommandé pour les nouveaux déploiements.
S’appuyant sur les bases établies par ses prédécesseurs, YOLO26 propose une conception de bout en bout facultativement sans NMS (nms=False) qui supprime, dans le framework Ultralytics, le goulot d’étranglement du post-traitement auquel YOLOv10 s’était attaqué en premier. YOLO26 supprime également DFL (Distribution Focal Loss), ce qui simplifie les graphes d’exportation des modèles et améliore la compatibilité avec les appareils edge et les appareils IoT basse consommation.
La stabilité de l’entraînement s’améliore avec l’optimiseur MuSGD, un hybride de SGD et de Muon inspiré des méthodes d’entraînement des grands modèles de langage (LLM), qui accélère la convergence. Avec ProgLoss + STAL (perte progressive et assignation des étiquettes adaptée aux petites cibles), YOLO26 améliore la reconnaissance des petits objets. Sur les appareils edge courants, ces améliorations rendent YOLO26n jusqu’à 43 % plus rapide sur CPU que YOLO11n, et YOLO26 prend en charge la détection, la segmentation, la segmentation sémantique, l’estimation de profondeur, la classification, l’estimation de pose et les OBB.