Passer au contenu

YOLOv5 vs YOLOv10 : Évolution de la détection d'objets en temps réel

Le paysage de la object detection a été considérablement façonné par la série You Only Look Once (YOLO). Depuis sa création, YOLO a trouvé un équilibre entre vitesse et précision, devenant ainsi l'architecture de référence pour les développeurs de vision par ordinateur. Cette comparaison explore deux moments clés de cette histoire : Ultralytics YOLOv5, la norme industrielle en matière de fiabilité et de polyvalence, et YOLOv10, une récente publication universitaire de l'université de Tsinghua qui introduit la détection sans NMS pour une efficacité accrue.

Aperçu du modèle

Ultralytics YOLOv5

Lancé en juin 2020 par Glenn Jocher et Ultralytics, YOLOv5 a fondamentalement changé la façon dont les modèles d'IA étaient déployés. Il a privilégié la convivialité, l'exportation vers divers formats (CoreML, ONNX, TFLite) et des performances robustes sur le matériel de périphérie. Il reste l'un des modèles de vision les plus populaires et les plus largement déployés au monde en raison de sa philosophie « ça marche tout simplement » et de son vaste soutien communautaire.

Auteurs principaux : Glenn Jocher
Organisation :Ultralytics
Date de publication : 2020-06-26
GitHub :ultralytics/yolov5

En savoir plus sur YOLOv5

YOLOv10

Lancé en mai 2024 par des chercheurs de l’université de Tsinghua, YOLOv10 vise à éliminer les goulots d’étranglement de post-traitement présents dans les versions précédentes. En introduisant des affectations doubles cohérentes pour l’entraînement sans NMS, il optimise le pipeline d’inférence, réduisant ainsi la latence et la surcharge de calcul.

Auteurs principaux : Ao Wang, Hui Chen, et al.
Organisation : Université de Tsinghua
Date de publication : 2024-05-23
arXiv :YOLOv10 : Détection d'objets de bout en bout en temps réel

En savoir plus sur YOLOv10

Dernière innovation

Tout en comparant ces architectures robustes, les développeurs qui démarrent de nouveaux projets devraient également évaluer YOLO11. Il s'appuie sur les forces des deux, offrant une précision de pointe, une extraction de caractéristiques améliorée et une prise en charge native de diverses tâches telles que l'estimation de pose et la détection d'objets orientés.

Architecture et innovation technique

Les différences architecturales entre YOLOv5 et YOLOv10 mettent en évidence le passage d'une fiabilité éprouvée basée sur des ancres à une efficacité de pointe sans ancres.

YOLOv5 : la norme basée sur l'ancrage

YOLOv5 utilise un backbone CSPNet (Cross Stage Partial Network) qui équilibre la profondeur et la largeur du modèle afin de minimiser les FLOPS tout en conservant la précision. Il s’appuie sur des anchor boxes : des formes prédéfinies qui aident le modèle à prédire les dimensions des objets.

  • Backbone : CSP-Darknet53 axé sur le flux de gradients.
  • Tête : Tête couplée avec prédiction basée sur des ancres.
  • Post-traitement : Nécessite une suppression non maximale (NMS) pour filtrer les détections en double.

YOLOv10 : Efficacité sans NMS

YOLOv10 introduit une conception holistique axée sur l'efficacité et la précision. Sa caractéristique principale est la stratégie d'entraînement sans NMS utilisant des attributions doubles cohérentes. Cela permet au modèle de prédire exactement une boîte englobante par objet pendant l'inférence, supprimant ainsi complètement l'étape NMS qui induit une latence.

  • Backbone : Amélioré avec des convolutions à grand noyau et une auto-attention partielle.
  • Tête : Tête unifiée combinant les assignations d'étiquettes un-à-plusieurs et un-à-un.
  • Optimisation : Conception de blocs guidée par le rang pour réduire la redondance.

Analyse des performances

Le tableau suivant compare les métriques de performance sur le jeu de données COCO. Bien que YOLOv5 reste compétitif, en particulier en termes de vitesse CPU pour sa variante Nano, YOLOv10 démontre une efficacité supérieure en termes de paramètres et de précision (mAP).

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Répartition des métriques

  • Précision (mAP) : YOLOv10 montre un saut significatif dans la précision moyenne moyenne. Par exemple, YOLOv10n atteint 39,5 mAP comparativement à 28,0 mAP pour YOLOv5n, ce qui le rend beaucoup plus capable de detecter les objets difficiles.
  • Efficacité : YOLOv10 atteint ces résultats avec moins de paramètres (2,3M contre 2,6M pour le modèle Nano), ce qui met en évidence les avantages de sa conception architecturale optimisée.
  • Vitesse d'inférence : YOLOv5n reste incroyablement rapide sur les CPU (73,6 ms), ce qui est essentiel pour les appareils périphériques sans GPU comme les anciennes unités Raspberry Pi. Cependant, sur le matériel GPU (TensorRT), YOLOv10 maintient des vitesses compétitives malgré sa plus grande précision.

Points forts et faiblesses

Ultralytics YOLOv5

  • Écosystème inégalé : Soutenu par des années de développement, il possède l’une des plus grandes communautés actives. Les problèmes sont résolus rapidement et les ressources sont abondantes.
  • Polyvalence : Au-delà de la détection, il prend en charge nativement la segmentation d’image et la classification.
  • Facilité d'utilisation : L'API est conçue pour la simplicité. Le chargement d'un modèle à partir de PyTorch Hub ne nécessite qu'une seule ligne de code.
  • Déploiement : La prise en charge étendue des formats d’exportation garantit son fonctionnement sur tous les supports, des téléphones mobiles aux serveurs cloud.

YOLOv10

  • Faible latence : La suppression de la NMS réduit considérablement le temps de post-traitement, ce qui est essentiel pour les applications en temps réel où chaque milliseconde compte.
  • Efficacité des paramètres : Il offre une plus grande précision par paramètre, ce qui en fait un candidat solide pour les appareils avec un stockage ou une mémoire limités.
  • Priorité : Bien que puissant, il est principalement spécialisé dans la détection d’objets, sans la polyvalence multitâche native (comme l’estimation de pose) que l’on retrouve dans la série Ultralytics YOLO (v8, 11).

Besoins en mémoire

Les deux modèles sont conçus pour être légers. Contrairement aux grands modèles de transformateurs qui consomment de grandes quantités de mémoire CUDA pendant l'entraînement, les modèles Ultralytics YOLO sont optimisés pour l'efficacité de la mémoire, ce qui leur permet d'être entraînés sur des GPU grand public avec une VRAM modeste.

Cas d'utilisation concrets

Quand choisir YOLOv5

YOLOv5 est le choix pragmatique pour les systèmes de production nécessitant une stabilité et une large prise en charge des plateformes.

  • Automatisation Industrielle : Largement utilisé dans la fabrication pour le contrôle de la qualité où la fiabilité est primordiale.
  • Applications mobiles : Sa compatibilité éprouvée avec iOS (CoreML) et Android (TFLite) le rend idéal pour l'intégration d'applications sur l'appareil.
  • Prototypage rapide : Le volume considérable de tutoriels et de documentation permet aux développeurs de passer du concept à la preuve de concept en quelques heures.

Quand choisir YOLOv10

YOLOv10 est excellent pour les scénarios exigeant le rapport précision/efficacité le plus élevé.

  • Robotique à haute vitesse : L’architecture sans NMS réduit la variance de la latence, ce qui est essentiel pour les boucles de contrôle des robots autonomes.
  • Recherche académique : Les chercheurs qui cherchent à effectuer une évaluation comparative par rapport aux paradigmes de détection de bout en bout les plus récents trouveront l’architecture de YOLOv10 novatrice et efficace.
  • Surveillance à distance : Une mAP élevée avec un faible nombre de paramètres convient aux systèmes de sécurité fonctionnant avec une bande passante ou un stockage limités.

Entraînement et facilité d'utilisation

Ultralytics privilégie une expérience de développement simplifiée. Que vous utilisiez le référentiel classique YOLOv5 ou le plus récent ultralytics package pour les modèles plus récents, le processus est intuitif.

Utilisation de YOLOv5

YOLOv5 est réputé pour sa facilité de chargement via PyTorch Hub pour une inférence instantanée.

import torch

# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")

# Perform inference on an image
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)

# Display results
results.show()

Utilisation de YOLOv10

YOLOv10 peut être intégré à l'aide de ultralytics Package Python, bénéficiant de la même API puissante.

from ultralytics import YOLO

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

# Train the model on COCO data
model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference
model.predict("https://ultralytics.com/images/bus.jpg", save=True)

Conclusion

Les deux architectures représentent des étapes importantes dans la vision par ordinateur. YOLOv5 reste le cheval de bataille fiable de l'industrie—robuste, polyvalent et soutenu par un écosystème massif. C'est le choix sûr et "incontournable" pour divers besoins de déploiement. YOLOv10 repousse les limites de l'efficacité avec sa conception sans NMS, offrant une mise à niveau intéressante pour les utilisateurs spécifiquement axés sur les tâches de détection qui ont besoin de maximiser la précision sur du matériel contraint.

Pour les développeurs qui recherchent le meilleur des deux mondes—combinant la maturité de l'écosystème d'Ultralytics avec une précision et une vitesse de pointe—nous recommandons d'explorer YOLO11. Il unifie ces avancées dans un cadre unique et puissant, prêt pour toute tâche de vision.

Pour explorer d'autres comparaisons, consultez YOLOv5 vs. YOLOv8 ou YOLOv10 vs. YOLO11.


Commentaires