Link to this sectionYOLOv10 : Détection d'objets en temps réel de bout en bout#
YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
Link to this sectionPrésentation#
La détection d'objets en temps réel vise à prédire avec précision les catégories et les positions des objets dans les images avec une faible latence. La série YOLO a été à la pointe de cette recherche en raison de son équilibre entre performance et efficacité. Cependant, la dépendance vis-à-vis du NMS et les inefficacités architecturales ont entravé une performance optimale. YOLOv10 résout ces problèmes en introduisant des assignations doubles cohérentes pour un entraînement sans NMS et une stratégie de conception de modèle holistique axée sur l'efficacité et la précision.
Link to this sectionArchitecture#
L'architecture de YOLOv10 s'appuie sur les points forts des modèles YOLO précédents tout en introduisant plusieurs innovations clés. L'architecture du modèle se compose des éléments suivants :
- Backbone : Responsable de l'extraction de caractéristiques, le backbone de YOLOv10 utilise une version améliorée de CSPNet (Cross Stage Partial Network) pour améliorer le flux de gradient et réduire la redondance de calcul.
- Neck : Le neck est conçu pour agréger les caractéristiques de différentes échelles et les transmettre à la tête (head). Il inclut des couches PAN (Path Aggregation Network) pour une fusion efficace des caractéristiques multi-échelles.
- One-to-Many Head : Génère plusieurs prédictions par objet pendant l'entraînement pour fournir des signaux de supervision riches et améliorer la précision de l'apprentissage.
- One-to-One Head : Génère une seule meilleure prédiction par objet pendant l'inférence pour éliminer le besoin de NMS, réduisant ainsi la latence et améliorant l'efficacité.
Link to this sectionFonctionnalités clés#
- Entraînement sans NMS : Utilise des assignations doubles cohérentes pour éliminer le besoin de NMS, réduisant la latence d'inférence.
- Conception de modèle holistique : Optimisation complète de divers composants du point de vue de l'efficacité et de la précision, incluant des têtes de classification légères, un sous-échantillonnage découplé spatial-canal et une conception de bloc guidée par le rang.
- Capacités de modèle améliorées : Intègre des convolutions à grand noyau et des modules d'auto-attention partielle pour améliorer les performances sans coût de calcul significatif.
Link to this sectionVariantes de modèle#
YOLOv10 est disponible en plusieurs échelles de modèles pour répondre aux différents besoins des applications :
- YOLOv10n : Version Nano pour les environnements extrêmement limités en ressources.
- YOLOv10s : Version Small équilibrant vitesse et précision.
- YOLOv10m : Version Medium pour une utilisation polyvalente.
- YOLOv10b : Version équilibrée avec une largeur accrue pour une meilleure précision.
- YOLOv10l : Version Large pour une plus grande précision au prix de ressources de calcul accrues.
- YOLOv10x : Version Extra-large pour une précision et des performances maximales.
Link to this sectionPerformance#
YOLOv10 surpasse les versions précédentes de YOLO et d'autres modèles de pointe en termes de précision et d'efficacité. Par exemple, YOLOv10s est 1,8 fois plus rapide que RT-DETR-R18 avec une AP similaire sur le jeu de données COCO, et YOLOv10b a 46 % de latence en moins et 25 % de paramètres en moins que YOLOv9-C avec les mêmes performances.
Latence mesurée avec TensorRT FP16 sur GPU T4.
| Modèle | Taille d'entrée | APval | FLOPs (G) | Latence (ms) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1,84 |
| [YOLOv10s][2] | 640 | 46,3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4,74 |
| [YOLOv10b][4] | 640 | 52,5 | 92.0 | 5,74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7,28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10,70 |
Link to this sectionMéthodologie#
Link to this sectionAssignations doubles cohérentes pour l'entraînement sans NMS#
YOLOv10 utilise des assignations d'étiquettes doubles, combinant des stratégies un-à-plusieurs et un-à-un pendant l'entraînement pour assurer une supervision riche et un déploiement efficace de bout en bout. La métrique de correspondance cohérente aligne la supervision entre les deux stratégies, améliorant la qualité des prédictions pendant l'inférence.
Link to this sectionConception de modèle holistique axée sur l'efficacité et la précision#
Link to this sectionAméliorations de l'efficacité#
- Tête de classification légère : Réduit la charge de calcul de la tête de classification en utilisant des convolutions séparables en profondeur.
- Sous-échantillonnage découplé spatial-canal : Découple la réduction spatiale et la modulation de canal pour minimiser la perte d'informations et le coût de calcul.
- Conception de bloc guidée par le rang : Adapte la conception du bloc en fonction de la redondance intrinsèque de l'étape, assurant une utilisation optimale des paramètres.
Link to this sectionAméliorations de la précision#
- Convolution à grand noyau : Agrandit le champ récepteur pour améliorer la capacité d'extraction de caractéristiques.
- Auto-attention partielle (PSA) : Intègre des modules d'auto-attention pour améliorer l'apprentissage de la représentation globale avec une charge minimale.
Link to this sectionExpériences et résultats#
YOLOv10 a été largement testé sur des benchmarks standards comme COCO, démontrant des performances et une efficacité supérieures. Le modèle atteint des résultats de pointe sur différentes variantes, affichant des améliorations significatives en termes de latence et de précision par rapport aux versions précédentes et à d'autres détecteurs contemporains.
Link to this sectionComparaisons#

Par rapport à d'autres détecteurs de pointe :
- YOLOv10s / x sont 1,8× / 1,3× plus rapides que RT-DETR-R18 / R101 avec une précision similaire
- YOLOv10b a 25 % de paramètres en moins et 46 % de latence en moins que YOLOv9-C à précision égale
- YOLOv10l / x surpassent YOLOv8l / x de 0,3 AP / 0,5 AP avec 1,8× / 2,3× moins de paramètres
Voici une comparaison détaillée des variantes de YOLOv10 avec d'autres modèles de pointe :
| Modèle | Paramètres (M) | FLOPs (G) | mAPval 50-95 | Latence (ms) | Latence-forward (ms) |
|---|---|---|---|---|---|
| YOLOv6-3.0-N | 4.7 | 11.4 | 37,0 | 2,69 | 1,76 |
| Gold-YOLO-N | 5.6 | 12,1 | 39,6 | 2,92 | 1,82 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6,16 | 1.77 |
| YOLOv10n | 2.3 | 6.7 | 39.5 | 1,84 | 1,79 |
| YOLOv6-3.0-S | 18,5 | 45,3 | 44.3 | 3,42 | 2,35 |
| Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3,82 | 2.73 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7,07 | 2,33 |
| YOLOv10s | 7,2 | 21,6 | 46,8 | 2,49 | 2,39 |
| RT-DETR-R18 | 20,0 | 60.0 | 46,5 | 4,58 | 4,49 |
| YOLOv6-3.0-M | 34,9 | 85,8 | 49,1 | 5.63 | 4,56 |
| Gold-YOLO-M | 41,3 | 87,5 | 49.8 | 6,38 | 5,45 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 15.4 | 59.1 | 51.3 | 4,74 | 4.63 |
| YOLOv6-3.0-L | 59,6 | 150,7 | 51.8 | 9.02 | 7.90 |
| Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53,1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68,2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Les valeurs de paramètres et de FLOPs concernent le modèle fusionné après model.fuse(), qui combine les couches Conv et BatchNorm et supprime la tête de détection auxiliaire one-to-many. Les checkpoints pré-entraînés conservent l'architecture d'entraînement complète et peuvent afficher des nombres plus élevés.
Link to this sectionExemples d'utilisation#
Pour prédire de nouvelles images avec YOLOv10. Les modèles peuvent également être entraînés sur des GPU cloud via la plateforme Ultralytics :
from ultralytics import YOLO
# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
# Perform object detection on an image
results = model("image.jpg")
# Display the results
results[0].show()Pour entraîner YOLOv10 sur un jeu de données personnalisé :
from ultralytics import YOLO
# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")
# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)Link to this sectionTâches et modes pris en charge#
La série de modèles YOLOv10 propose une gamme de modèles, chacun optimisé pour une détection d'objets haute performance. Ces modèles répondent à des besoins computationnels et à des exigences de précision variés, ce qui les rend polyvalents pour un large éventail d'applications.
| Modèle | Noms de fichiers | Tâches | Inférence | Validation | Entraînement | Exporter (Export) |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Détection d'objets | ✅ | ✅ | ✅ | ✅ |
Link to this sectionExporter YOLOv10#
En raison des nouvelles opérations introduites avec YOLOv10, tous les formats d'exportation fournis par Ultralytics ne sont pas actuellement pris en charge. Le tableau suivant indique les formats qui ont été convertis avec succès en utilisant Ultralytics pour YOLOv10. N'hésite pas à ouvrir une pull request si tu es en mesure de contribuer à un changement pour ajouter la prise en charge de l'exportation d'autres formats pour YOLOv10.
| Format d'exportation | Prise en charge de l'exportation | Inférence du modèle exporté | Notes |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Format de modèle standard PyTorch. |
| ONNX | ✅ | ✅ | Largement pris en charge pour le déploiement. |
| OpenVINO | ✅ | ✅ | Optimisé pour le matériel Intel. |
| TensorRT | ✅ | ✅ | Optimisé pour les GPU NVIDIA. |
| CoreML | ✅ | ✅ | Limité aux appareils Apple. |
| TF SavedModel | ✅ | ✅ | Format de modèle standard de TensorFlow. |
| TF GraphDef | ✅ | ✅ | Ancien format TensorFlow. |
| TF Lite | ✅ | ✅ | Optimisé pour le mobile et l'embarqué. |
| TF Edge TPU | ✅ | ✅ | Spécifique aux appareils Edge TPU de Google. |
| TF.js | ✅ | ✅ | Environnement JavaScript pour une utilisation dans le navigateur. |
| PaddlePaddle | ❌ | ❌ | Populaire en Chine ; moins de support mondial. |
| NCNN | ✅ | ❌ | La couche torch.topk n'existe pas ou n'est pas enregistrée |
Link to this sectionConclusion#
YOLOv10 a établi une nouvelle norme en matière de détection d'objets en temps réel lors de sa sortie en corrigeant les lacunes des versions précédentes de YOLO et en intégrant des stratégies de conception innovantes. Son approche sans NMS a ouvert la voie à la détection d'objets de bout en bout dans la famille YOLO. Pour le dernier modèle Ultralytics avec des performances améliorées et une inférence sans NMS, consulte YOLO26.
Link to this sectionCitations et remerciements#
Nous tenons à remercier les auteurs de YOLOv10 de l'Université Tsinghua pour leurs recherches approfondies et leurs contributions significatives au framework Ultralytics :
@article{THU-MIGyolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Ao Wang, Hui Chen, Lihao Liu, et al.},
journal={arXiv preprint arXiv:2405.14458},
year={2024},
institution={Tsinghua University},
license = {AGPL-3.0}
}Pour une implémentation détaillée, des innovations architecturales et des résultats expérimentaux, veuillez consulter le document de recherche YOLOv10 et le dépôt GitHub de l'équipe de l'Université Tsinghua.
Link to this sectionFAQ#
Link to this sectionQu'est-ce que YOLOv10 et en quoi diffère-t-il des versions précédentes de YOLO ?#
YOLOv10, développé par des chercheurs de l'Université Tsinghua, introduit plusieurs innovations clés dans la détection d'objets en temps réel. Il élimine le besoin de suppression non maximale (NMS) en utilisant des assignations doubles cohérentes pendant l'entraînement et des composants de modèle optimisés pour des performances supérieures avec une charge computationnelle réduite. Pour plus de détails sur son architecture et ses fonctionnalités clés, consulte la section Aperçu.
Link to this sectionComment puis-je commencer à effectuer une inférence avec YOLOv10 ?#
Pour une inférence facile, tu peux utiliser la bibliothèque Python Ultralytics YOLO ou l'interface de ligne de commande (CLI). Voici des exemples de prédiction de nouvelles images avec YOLOv10 :
from ultralytics import YOLO
# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()Pour plus d'exemples d'utilisation, visite notre section Exemples d'utilisation.
Link to this sectionQuelles variantes de modèles YOLOv10 propose-t-il et quels sont leurs cas d'utilisation ?#
YOLOv10 propose plusieurs variantes de modèles pour répondre à différents cas d'utilisation :
- YOLOv10n : Adapté aux environnements extrêmement limités en ressources
- YOLOv10s : Équilibre entre vitesse et précision
- YOLOv10m : Utilisation polyvalente
- YOLOv10b : Plus grande précision avec une largeur accrue
- YOLOv10l : Haute précision au prix de ressources computationnelles
- YOLOv10x : Précision et performances maximales
Chaque variante est conçue pour des besoins computationnels et des exigences de précision différents, ce qui les rend polyvalentes pour une variété d'applications. Explore la section Variantes de modèles pour plus d'informations.
Link to this sectionComment l'approche sans NMS dans YOLOv10 améliore-t-elle les performances ?#
YOLOv10 élimine le besoin de suppression non maximale (NMS) lors de l'inférence en utilisant des assignations doubles cohérentes pour l'entraînement. Cette approche réduit la latence d'inférence et améliore l'efficacité de la prédiction. L'architecture inclut également une tête un-à-un pour l'inférence, garantissant que chaque objet obtient une seule meilleure prédiction. Pour une explication détaillée, consulte la section Assignations doubles cohérentes pour un entraînement sans NMS.
Link to this sectionOù puis-je trouver les options d'exportation pour les modèles YOLOv10 ?#
YOLOv10 prend en charge plusieurs formats d'exportation, notamment TorchScript, ONNX, OpenVINO et TensorRT. Cependant, tous les formats d'exportation fournis par Ultralytics ne sont actuellement pas pris en charge pour YOLOv10 en raison de ses nouvelles opérations. Pour plus de détails sur les formats pris en charge et des instructions sur l'exportation, visite la section Exporter YOLOv10.
Link to this sectionQuels sont les benchmarks de performance pour les modèles YOLOv10 ?#
YOLOv10 surpasse les versions précédentes de YOLO et d'autres modèles de pointe en termes de précision et d'efficacité. Par exemple, YOLOv10s est 1,8x plus rapide que RT-DETR-R18 avec une AP similaire sur le jeu de données COCO. YOLOv10b affiche 46 % de latence en moins et 25 % de paramètres en moins que YOLOv9-C avec les mêmes performances. Des benchmarks détaillés se trouvent dans la section Comparaisons.