YOLOv10 : Détection d'objets en temps réel de bout en bout
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 s'attaquant à la fois au post-traitement et aux lacunes de l'architecture du modèle constatées dans les versions précédentes de YOLO . 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 la supériorité du compromis entre précision et temps de latence à plusieurs échelles de modèle.
Regarder : 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 s'attaque à 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.
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 :
- L'épine dorsale: Responsable de l'extraction des caractéristiques, l'épine dorsale 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 des calculs.
- Le cou: Le cou est conçu pour agréger les caractéristiques 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.
- 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é.
Caractéristiques principales
- Formation sans NMS: Utilise des affectations doubles cohérentes pour éliminer le besoin de NMS, réduisant ainsi la 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.
- Amélioration des capacités 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 nanométrique pour les environnements à ressources extrêmement limitées.
- YOLOv10-S: Petite version équilibrant vitesse et précision.
- YOLOv10-M: version moyenne à usage général.
- YOLOv10-B: version équilibrée avec une largeur accrue pour une plus grande précision.
- YOLOv10-L : Version large 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 lors de l'inférence.
Conception de modèles holistiques axés sur l'efficacité et la précision
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'information 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 étages, garantissant ainsi une utilisation optimale des paramètres.
Amélioration de la précision
- Convolution à grand 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 fait l'objet de tests approfondis sur des bancs d'essai standard tels que COCO, démontrant des performances et une efficacité supérieures. Le modèle obtient des résultats de pointe dans ses différentes variantes, et présente 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
Par rapport à 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 surpasse 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) |
Temps de latence pour l'envoi de (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 l'entraînement de YOLOv10 sur un ensemble de données personnalisé :
Exemple
Tâches et modes pris en charge
La série de modèles YOLOv10 offre une gamme de modèles, chacun optimisé pour la détection d'objets de haute performance. Ces modèles répondent à des besoins de calcul et à des exigences de précision variables, ce qui les rend polyvalents pour un large éventail d'applications.
Modèle | Noms de fichiers | Tâches | Inférence | Validation | Formation | Exportation |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
DĂ©tection d'objets | âś… | âś… | âś… | âś… |
Exporter YOLOv10
En raison des nouvelles opérations introduites dans 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ésitez pas à ouvrir une demande de téléchargement si vous êtes en mesure de fournir un changement de contribution pour ajouter la prise en charge de l'exportation de formats supplémentaires pour YOLOv10.
Format d'exportation | Soutien à l'exportation | Inférence du modèle exporté | Notes |
---|---|---|---|
TorchScript | ✅ | ✅ | Format standard PyTorch format du modèle. |
ONNX | ✅ | ✅ | Largement soutenu pour le déploiement. |
OpenVINO | ✅ | ✅ | Optimisé pour le matériel Intel . |
TensorRT | ✅ | ✅ | Optimisé pour les GPU NVIDIA . |
CoreML | ✅ | ✅ | Limité aux appareils Apple. |
TF SavedModel | ✅ | ✅ | TensorFlowLe format du modèle standard de la Commission européenne. |
TF GraphDef | ✅ | ✅ | Format hérité de TensorFlow . |
TF Lite | ✅ | ✅ | Optimisé pour les téléphones portables et les applications embarquées. |
TF Bord TPU | ✅ | ✅ | Spécifique aux appareils Google's Edge TPU . |
TF.js | âś… | âś… | Environnement JavaScript pour l'utilisation du navigateur. |
PaddlePaddle | ❌ | ❌ | Populaire en Chine ; moins de soutien au niveau mondial. |
NCNN | ✅ | ❌ | Couche 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é à fournir 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 tenons à 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, les innovations architecturales et les résultats expérimentaux, veuillez vous 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 la nécessité d'une suppression non maximale (NMS) en utilisant des affectations doubles cohérentes pendant l'entraînement 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, consultez la section " YOLOv10 overview".
Comment puis-je commencer à faire de l'inférence avec YOLOv10 ?
Pour faciliter l'inférence, vous pouvez utiliser la bibliothèque Ultralytics YOLO Python ou l'interface de ligne de commande (CLI). Vous trouverez ci-dessous des exemples de prédiction de nouvelles images à l'aide de YOLOv10 :
Exemple
Pour plus d'exemples d'utilisation, consultez notre section Exemples d'utilisation.
Quelles sont les variantes du modèle YOLOv10 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 largeur accrue
- 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 répondre à des besoins de calcul et à des exigences de précision différents, ce qui les rend polyvalentes pour un grand nombre d'applications. Pour plus d'informations, consultez la section Variantes du modèle.
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 utilisant 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 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 plus de détails sur les formats pris en charge et les instructions relatives à l'exportation, consultez 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 montre 46% de latence en moins et 25% de paramètres en moins que YOLOv9-C avec la même performance. Des benchmarks détaillés sont disponibles dans la section Comparaisons.