YOLOv10: Real-Time End-to-End Object Detection
YOLOv10, construit sur le paquet Ultralytics Python par des chercheurs de l'Université de Tsinghua, introduit une nouvelle approche de la détection d'objets en temps réel, en comblant les lacunes des versions précédentes de YOLO en matière de post-traitement et d'architecture de modèle. En éliminant la suppression non maximale (NMS) et en optimisant divers composants du modèle, YOLOv10 atteint des performances de pointe avec une surcharge de calcul considérablement réduite. Des expériences approfondies démontrent qu'il offre un meilleur compromis entre la précision et la latence sur plusieurs échelles de modèles.
Regarde : Comment entraîner YOLOv10 sur l'ensemble de données SKU-110k à l'aide de Ultralytics | Ensemble de données sur la vente au détail
Vue d'ensemble
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é à l'avant-garde de cette recherche en raison de son équilibre entre performance et efficacité. Cependant, la dépendance à l'égard du NMS et les inefficacités architecturales ont empêché d'obtenir des performances optimales. YOLOv10 résout ces problèmes en introduisant des affectations doubles cohérentes pour une formation sans NMS et une stratégie de conception de modèle holistique axée sur l'efficacité et la précision.
L'architecture
L'architecture de YOLOv10 s'appuie sur les points forts des précédents modèles YOLO tout en introduisant plusieurs innovations clés. L'architecture du modèle se compose des éléments suivants :
- Backbone: Responsible for feature extraction, the backbone in YOLOv10 uses an enhanced version of CSPNet (Cross Stage Partial Network) to improve gradient flow and reduce computational redundancy.
- Cou: Le cou est conçu pour agréger les caractéristiques provenant de différentes échelles et les transmettre à la tête. Il comprend des couches PAN (Path Aggregation Network) pour une fusion efficace des caractéristiques à plusieurs échelles.
- One-to-Many Head: génère plusieurs prédictions par objet pendant la formation afin de fournir des signaux de supervision riches et d'améliorer la précision de l'apprentissage.
- Tête unique: génère une seule meilleure prédiction par objet pendant l'inférence pour éliminer le besoin de NMS, ce qui permet de réduire la latence et d'améliorer l'efficacité.
Caractéristiques principales
- Formation sans NMS: Utilise des affectations doubles cohérentes pour éliminer le besoin de NMS, réduisant ainsi le temps de latence de l'inférence.
- Conception holistique du modèle: Optimisation complète de divers composants du point de vue de l'efficacité et de la précision, y compris les têtes de classification légères, l'échantillonnage descendant découplé des canaux spatiaux et la conception de blocs guidés par les rangs.
- Capacités améliorées du modèle: Incorpore des convolutions à gros noyau et des modules d'auto-attention partielle pour améliorer les performances sans coût de calcul significatif.
Variantes du modèle
YOLOv10 se décline en plusieurs modèles pour répondre aux différents besoins d'application :
- YOLOv10-N: version nano pour les environnements à ressources extrêmement limitées.
- YOLOv10-S: Petite version équilibrant vitesse et précision.
- YOLOv10-M: version moyenne pour un usage général.
- YOLOv10-B: version équilibrée avec une largeur accrue pour une plus grande précision.
- YOLOv10-L: Grande version pour une plus grande précision au prix d'une augmentation des ressources informatiques.
- YOLOv10-X: Version extra-large pour une précision et des performances maximales.
Performance
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, YOLOv10-S est 1,8 fois plus rapide que RT-DETR-R18 avec un AP similaire sur l'ensemble de données COCO, et YOLOv10-B a 46 % de latence en moins et 25 % de paramètres en moins que YOLOv9-C avec la même performance.
Modèle | Taille de l'entrée | APval | FLOPs (G) | Temps de latence (ms) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 6.7 | 1.84 |
YOLOv10-S | 640 | 46.3 | 21.6 | 2.49 |
YOLOv10-M | 640 | 51.1 | 59.1 | 4.74 |
YOLOv10-B | 640 | 52.5 | 92.0 | 5.74 |
YOLOv10-L | 640 | 53.2 | 120.3 | 7.28 |
YOLOv10-X | 640 | 54.4 | 160.4 | 10.70 |
Temps de latence mesuré avec TensorRT FP16 sur T4 GPU.
MĂ©thodologie
Affectations doubles cohérentes pour une formation sans NMS
YOLOv10 utilise une double attribution d'étiquettes, combinant les stratégies one-to-many et one-to-one pendant la formation 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 ainsi la qualité des prédictions pendant l'inférence.
Holistic Efficiency-Accuracy Driven Model Design
Amélioration 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.
- Échantillonnage en aval découplé entre l'espace et le canal: Découple la réduction spatiale et la modulation du canal pour minimiser la perte d'informations et le coût de calcul.
- Conception de blocs guidée par les rangs: Adapte la conception des blocs en fonction de la redondance intrinsèque des étapes, garantissant ainsi une utilisation optimale des paramètres.
Amélioration de la précision
- Convolution à gros noyau: Élargit le champ réceptif pour améliorer la capacité d'extraction des caractéristiques.
- Auto-attention partielle (PSA) : incorpore des modules d'auto-attention pour améliorer l'apprentissage de la représentation globale avec un minimum de surcharge.
Expériences et résultats
YOLOv10 a été largement testé sur des critères de référence standard tels que COCO, démontrant des performances et une efficacité supérieures. Le modèle atteint des résultats de pointe dans les différentes variantes, mettant en avant 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.
Comparaisons
Comparé à d'autres détecteurs de pointe :
- YOLOv10-S / X est 1,8× / 1,3× plus rapide que RT-DETR-R18 / R101 avec une précision similaire.
- YOLOv10-B a 25 % de paramètres en moins et 46 % de latence en moins que YOLOv9-C, à précision égale.
- YOLOv10-L / X est plus performant que YOLOv8-L / 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 | Params (M) |
FLOPs (G) |
mAPval 50-95 |
Temps de latence (ms) |
Latence-avant (ms) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
Or-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
Or-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 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 |
Or -YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
Or -YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Exemples d'utilisation
Pour prédire de nouvelles images avec YOLOv10 :
Exemple
Pour former YOLOv10 sur un ensemble de données personnalisé :
Exemple
Tâches et modes pris en charge
La série de modèles YOLOv10 propose une gamme de modèles, chacun optimisé pour la détection d’objets haute performance. Ces modèles répondent à des besoins de calcul 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 | Formation | Exporter |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
Exporter YOLOv10
En raison des nouvelles opérations introduites avec YOLOv10, tous les formats d’exportation fournis par Ultralytics sont actuellement pris en charge. Le tableau suivant présente les formats qui ont été convertis avec succès à l’aide de Ultralytics pour YOLOv10. N’hésitez pas à ouvrir une pull request si vous êtes en mesure de fournir une modification de contribution pour ajouter la prise en charge de l’exportation de formats supplémentaires pour YOLOv10.
Format d’exportation | Export Support | Exported Model Inference | Notes |
---|---|---|---|
TorchScript | âś… | âś… | Standard PyTorch model format. |
ONNX | âś… | âś… | Widely supported for deployment. |
OpenVINO | âś… | âś… | Optimized for Intel hardware. |
TensorRT | âś… | âś… | Optimized for NVIDIA GPUs. |
CoreML | âś… | âś… | Limited to Apple devices. |
TF SavedModel | âś… | âś… | TensorFlow's standard model format. |
TF GraphDef | âś… | âś… | Legacy TensorFlow format. |
TF Lite | âś… | âś… | Optimized for mobile and embedded. |
TF Bord TPU | âś… | âś… | Specific to Google's Edge TPU devices. |
TF.js | âś… | âś… | JavaScript environment for browser use. |
PaddlePaddle | ❌ | ❌ | Popular in China; less global support. |
NCNN | ✅ | ❌ | Layer torch.topk n'existe pas ou n'est pas enregistré |
Conclusion
YOLOv10 établit une nouvelle norme en matière de détection d'objets en temps réel en comblant les lacunes des versions précédentes de YOLO et en intégrant des stratégies de conception novatrices. Sa capacité à offrir une grande précision avec un faible coût de calcul en fait un choix idéal pour un large éventail d'applications dans le monde réel.
Citations et remerciements
Nous aimerions remercier les auteurs de YOLOv10 de l'Université de Tsinghua pour leurs recherches approfondies et leurs contributions significatives au cadre de travail. Ultralytics cadre :
Pour une mise en œuvre détaillée, des innovations architecturales et des résultats expérimentaux, tu peux te référer au document de recherche YOLOv10 et au dépôt GitHub de l'équipe de l'Université de Tsinghua.
FAQ
Qu'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é de 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 affectations doubles cohérentes pendant la formation et des composants de modèle optimisés pour des performances supérieures avec une surcharge de calcul réduite. Pour plus de détails sur son architecture et ses principales caractéristiques, consulte la section YOLOv10 overview.
Comment puis-je commencer à faire de l'inférence avec YOLOv10 ?
Pour faciliter l'inférence, tu peux utiliser la bibliothèque Ultralytics YOLO Python ou l'interface de ligne de commande (CLI). Tu trouveras ci-dessous des exemples de prédiction de nouvelles images à l'aide de YOLOv10 :
Exemple
Pour plus d'exemples d'utilisation, visite notre section Exemples d'utilisation.
Quelles 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 :
- YOLOv10-N: adapté aux environnements où les ressources sont extrêmement limitées
- YOLOv10-S: équilibre entre vitesse et précision
- YOLOv10-M: Utilisation générale
- YOLOv10-B: Une plus grande précision avec une plus grande largeur
- YOLOv10-L: Une grande précision au détriment des ressources informatiques
- YOLOv10-X: Précision et performance maximales
Chaque variante est conçue pour des besoins de calcul et des exigences de précision différents, ce qui les rend polyvalentes pour une variété d'applications. Explore la section Variantes du modèle pour plus d'informations.
Comment l'approche sans NMS de YOLOv10 améliore-t-elle les performances ?
YOLOv10 élimine la nécessité d'une suppression non maximale (NMS) pendant l'inférence en employant des affectations doubles cohérentes pour la formation. Cette approche réduit la latence de l'inférence et améliore l'efficacité de la prédiction. L'architecture comprend également une tête biunivoque pour l'inférence, garantissant que chaque objet obtient une seule et unique meilleure prédiction. Pour une explication détaillée, voir la section Affectations doubles cohérentes pour une formation sans NMS.
Où 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 pas actuellement pris en charge par YOLOv10 en raison de ses nouvelles opérations. Pour obtenir des détails sur les formats pris en charge et des instructions sur l'exportation, consulte la section Exportation de YOLOv10.
Quels sont les critères de performance des 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, YOLOv10-S est 1,8 fois plus rapide que RT-DETR-R18 avec un AP similaire sur l'ensemble de données COCO. YOLOv10-B présente 46 % de latence en moins et 25 % de paramètres en moins que YOLOv9-C, à performances égales. Des benchmarks détaillés sont disponibles dans la section Comparaisons.