YOLOv6-3.0 et YOLOv10#
À mesure que la vision par ordinateur a mûri, le choix d’un modèle optimal est devenu une décision essentielle pour les développeurs et les ingénieurs en apprentissage automatique. Pour étudier l’évolution de la détection d’objets et des modèles Ultralytics YOLO, il est important de comprendre les compromis entre les différentes approches architecturales. Ce guide propose une comparaison technique complète entre YOLOv6-3.0 et YOLOv10, deux modèles présentant des avantages distincts pour les déploiements industriels et en périphérie.
Présentation de YOLOv6-3.0 : conçu pour le débit industriel#
Développé pour maximiser le débit des applications industrielles côté serveur, YOLOv6-3.0 privilégie l’inférence rapide sur les accélérateurs matériels, en particulier les GPU. Grâce à un backbone optimisé, il vise à concilier le traitement vidéo à grande vitesse et une précision compétitive.
- Auteurs : Chuyi Li, Lulu Li, Yifei Geng, et al.
- Organisation : Meituan
- Date : 2023-01-13
- arXiv : 2301.05586
- GitHub : meituan/YOLOv6
Points forts de l’architecture#
YOLOv6-3.0 repose essentiellement sur une conception adaptée au matériel. Son architecture intègre un module Bi-directional Concatenation (BiC) dans le cou afin d’améliorer la fusion des caractéristiques multi-échelles. En outre, le réseau utilise une stratégie d’Anchor-Aided Training (AAT), qui associe pendant l’entraînement la stabilité des détecteurs basés sur des ancres à la vitesse d’inférence d’un paradigme sans ancres.
Propulsé par un backbone EfficientRep, ce modèle convient aux tâches exigeantes d’automatisation industrielle, où le traitement par lots sur du matériel NVIDIA puissant (comme les GPU T4 ou A100) est la norme. Il est performant dans les grappes de serveurs, mais sa dépendance à des optimisations matérielles spécifiques peut réduire son efficacité sur les CPU périphériques à faible consommation.
Découvrir YOLOv10 : détection en temps réel sans NMS#
Introduit un an plus tard, YOLOv10 s’est attaqué à l’un des goulets d’étranglement les plus persistants des pipelines de détection traditionnels : le post-traitement par suppression non maximale (NMS).
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 2024-05-23
- arXiv : 2405.14458
- GitHub : THU-MIG/yolov10
Points forts de l’architecture#
La principale contribution de YOLOv10 est sa conception de bout en bout sans NMS. Grâce à des affectations doubles cohérentes pendant l’entraînement, la tête one-to-one apprend à produire une seule boîte englobante de haute qualité par objet, supprimant ainsi le besoin d’opérations NMS heuristiques pendant l’inférence (dans Ultralytics, définis nms=False pour utiliser cette tête). Cela réduit la latence d’inférence de bout en bout et simplifie la logique de déploiement sur les appareils périphériques, comme les unités de traitement neuronal (NPU).
De plus, le modèle adopte une conception globale axée sur l’efficacité et la précision. En optimisant divers composants, YOLOv10 réduit la redondance des calculs. Il convient ainsi particulièrement aux environnements soumis à des contraintes de ressources, notamment aux véhicules autonomes et à la robotique en périphérie.
Comparaison détaillée des performances#
Lors de l’évaluation comparative de ces modèles, les performances se mesurent généralement selon la précision, la vitesse et l’efficacité des paramètres. Le tableau ci-dessous montre les performances des différentes tailles de ces architectures.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.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 |
Analyse#
YOLOv10 atteint une précision moyenne moyenne (mAP) supérieure à celle de YOLOv6-3.0 à chaque taille comparable. Par exemple, YOLOv10n atteint une mAP de 38,5 % avec seulement 2,3 millions de paramètres, tandis que YOLOv6-3.0n obtient 37,5 % avec plus de deux fois plus de paramètres. Toutefois, YOLOv6-3.0n offre une latence d’inférence TensorRT pure plus faible sur GPU T4 (1,17 ms), ce qui reflète son optimisation pour le matériel de traitement parallèle.
Même si les mesures brutes de latence sur GPU peuvent légèrement favoriser YOLOv6 lors des micro-benchmarks, l’absence de NMS de YOLOv10 permet souvent d’accélérer les pipelines de bout en bout en conditions réelles, en particulier sur le matériel périphérique, où le post-traitement peut saturer le CPU.
Cas d’utilisation et recommandations#
Le choix entre YOLOv6 et YOLOv10 dépend des exigences de ton projet, des contraintes de déploiement et de tes préférences en matière d’écosystème.
Quand choisir YOLOv6#
YOLOv6 est un excellent choix pour :
- Déploiement adapté au matériel industriel : les scénarios où la conception de YOLOv6, adaptée au matériel, et son reparamétrage efficace optimisent les performances sur un matériel cible spécifique.
- Détection rapide à un seul étage : les applications qui privilégient la vitesse d’inférence brute sur GPU pour le traitement vidéo en temps réel dans des environnements contrôlés.
- Intégration à l’écosystème Meituan : les équipes qui travaillent déjà dans la pile technologique et l’infrastructure de déploiement de Meituan.
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 : appareils sans accélération GPU dédiée, sur lesquels YOLO26n est jusqu’à 43 % plus rapide que YOLO11n sur CPU.
- 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’avantage Ultralytics : pourquoi choisir YOLO26#
YOLOv6-3.0 et YOLOv10 fournissent des architectures de base solides, mais les environnements de production modernes exigent des modèles qui allient précision élevée et facilité d’utilisation. C’est là qu’Ultralytics YOLO26 surpasse les versions académiques autonomes.
Sorti en janvier 2026, YOLO26 s’appuie sur les innovations des modèles précédents au sein d’un écosystème activement maintenu.
Principales innovations de YOLO26#
- Conception de bout en bout sans NMS : s’appuyant sur l’entraînement sans NMS que YOLOv10 a introduit dans les modèles YOLO, la tête facultative à correspondance un-à-un de YOLO26 (
nms=False) ignore le post-traitement NMS, ce qui produit des temps d’inférence plus réguliers et prévisibles, plus faciles à mettre en production. - Optimiseur MuSGD : Inspiré des optimisations des grands modèles de langage (LLM), comme Kimi K2 de Moonshot AI, cet hybride de SGD et de Muon assure un entraînement stable et une convergence plus rapide.
- Inférence CPU jusqu’à 43 % plus rapide : Les simplifications architecturales permettent à YOLO26n de s’exécuter jusqu’à 43 % plus rapidement sur CPU que YOLO11n, ce qui favorise le déploiement sur les puces IoT et les CPU grand public.
- Suppression du DFL : La suppression de la perte focale de distribution simplifie l’exportation de la tête et améliore la compatibilité avec les moteurs de déploiement à faible consommation comme OpenVINO ou NCNN.
- ProgLoss + STAL : La perte progressive et l’affectation des étiquettes tenant compte des petites cibles améliorent la reconnaissance des petits objets, un aspect essentiel pour les opérations de drones UAV et le suivi de sujets éloignés.
De plus, contrairement aux dépôts dédiés à une seule tâche, l’écosystème Ultralytics prend en charge immédiatement un large éventail de tâches de vision, notamment la détection, la segmentation d’instances, la segmentation sémantique, l’estimation de profondeur, la classification d’images, l’estimation de pose et la détection par boîtes englobantes orientées (OBB).
Efficacité de l’entraînement et optimisation de la mémoire#
Un avantage majeur des modèles Ultralytics YOLO par rapport aux architectures complexes basées sur des Transformers, comme RT-DETR, est leur consommation réduite de mémoire CUDA pendant l’entraînement. Les développeurs peuvent affiner YOLO26 sur un GPU grand public ou utiliser des ressources cloud gratuites.
Exemple de code : démarrer avec YOLO26#
La facilité d’utilisation de l’API Python Ultralytics te permet de charger, d’entraîner et de tester des modèles en quelques lignes de code seulement.
from ultralytics import YOLO
# Initialise le modèle YOLO26 nano
model = YOLO("yolo26n.pt")
# Entraîner le modèle sur le jeu de données COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)
# Évaluer les performances du modèle sur les données de validation
metrics = model.val()
# Effectuer une inférence en temps réel sans NMS sur une image cible
predictions = model.predict("https://ultralytics.com/images/bus.jpg", nms=False)
# Exporter au format ONNX pour un déploiement multiplateforme
model.export(format="onnx")Conclusion et autres options#
Pour choisir entre YOLOv6-3.0 et YOLOv10, la décision dépend de l’environnement de déploiement. YOLOv6-3.0 reste viable pour les serveurs à haut débit dotés de nombreux GPU et axés sur le traitement vidéo par lots. YOLOv10 propose une architecture sans NMS mieux adaptée à un équilibre entre précision et intégration complexe en périphérie.
Toutefois, pour les développeurs qui recherchent de bonnes performances accompagnées d’une documentation complète, de la journalisation cloud via la plateforme Ultralytics et d’une polyvalence multi-tâches, YOLO26 est le choix recommandé.
Pour répondre aux besoins d’infrastructures héritées, les équipes peuvent aussi examiner la génération précédente, Ultralytics YOLO11, ou découvrir YOLO-World pour la détection à vocabulaire ouvert.