Skip to content

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 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.

YOLOv10 : une double affectation cohérente pour une formation sans NMS

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 :

  1. 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.
  2. Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
  3. 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.
  4. 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

  1. 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.
  2. 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.
  3. 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

Latence mesurée avec TensorRT FP16 sur le GPU T4.

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.

Conception de modèles holistiques axés sur l'efficacité et la précision

Amélioration de l'efficacité

  1. 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.
  2. É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.
  3. 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

  1. Convolution à gros noyau: Élargit le champ réceptif pour améliorer la capacité d'extraction des caractéristiques.
  2. 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

Comparaison de YOLOv10 avec les détecteurs d'objets SOTA

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) APval (%) Temps de latence (ms) Temps de 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

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

Pour former YOLOv10 sur un ensemble de données personnalisé :

Exemple

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)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

Tâches et modes pris en charge

The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of 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 âś… âś… âś… âś…

Exporting YOLOv10

Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.

Export Format Supported
TorchScript âś…
ONNX âś…
OpenVINO âś…
TensorRT âś…
CoreML ❌
TF SavedModel ❌
TF GraphDef ❌
TF Lite ❌
TF Bord TPU ❌
TF.js ❌
PaddlePaddle ❌
NCNN ❌

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 :

@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 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.



Created 2024-05-25, Updated 2024-06-24
Authors: RizwanMunawar (3), Burhan-Q (1), glenn-jocher (3)

Commentaires