Passer au contenu

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

Le paysage de la détection d'objets a été considérablement façonné par la série You Only Look OnceYOLO). Depuis sa création, YOLO a su concilier vitesse et précision, devenant ainsi l'architecture de référence pour les développeurs de systèmes de vision par ordinateur. Cette comparaison explore deux moments clés de cette histoire : Ultralytics YOLOv5d'Ultralytics, la norme de l'industrie en matière de fiabilité et de polyvalence, et le système YOLOv10récemment publié par l'université de Tsinghua, qui introduit la détection NMS pour une efficacité accrue.

Aperçu du modèle

Ultralytics YOLOv5

Publié 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 donné la priorité à la convivialité, à l'exportation vers divers formatsCoreML, ONNX, TFLite) et à des performances robustes sur le matériel de pointe. Il reste l'un des modèles de vision les plus populaires et les plus largement déployés dans le monde grâce à sa philosophie "ça marche" et au soutien important de la communauté.

Principaux auteurs : Glenn Jocher
Organisation :Ultralytics
Date de publication : 2020-06-26
GitHub:yolov5

En savoir plus sur YOLOv5

YOLOv10

Publié en mai 2024 par des chercheurs de l'université de Tsinghua, YOLOv10 vise à éliminer les goulets d'étranglement du post-traitement constatés dans les versions précédentes. En introduisant des affectations doubles cohérentes pour l'entraînement NMS, il optimise le pipeline d'inférence, réduisant la latence et les frais généraux 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 solides, les développeurs qui démarrent de nouveaux projets devraient également évaluer YOLO11. Il s'appuie sur les points forts de ces deux architectures, offrant une précision de pointe, une meilleure extraction des caractéristiques et une prise en charge native de diverses tâches telles que l'estimation de la 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é mature, basée sur les ancres, à une efficacité de pointe, sans ancres.

YOLOv5: la norme ancrée dans la réalité

YOLOv5 utilise une épine dorsale CSPNet (Cross Stage Partial Network) qui équilibre la profondeur et la largeur du modèle afin de minimiser les FLOPS tout en maintenant la précision. Il s'appuie sur des boîtes d'ancrage - desformes prédéfiniesqui aident le modèle à prédire les dimensions de l'objet.

  • Dorsale : CSP-Darknet53 axé sur le flux de gradient.
  • Tête : tête couplée avec prédiction basée sur l'ancrage.
  • Post-traitement : Nécessite une suppression non maximale (NMS) pour filtrer les détections en double.

YOLOv10: Efficacité NMS

YOLOv10 présente une conception holistique axée sur l'efficacité et la précision. Sa caractéristique principale est la stratégie d'apprentissageNMS qui utilise des assignations doubles cohérentes. Cela permet au modèle de prédire exactement une boîte englobante par objet lors de l'inférence, en supprimant entièrement l'étape NMS qui induit une latence.

  • Epine dorsale : Amélioré par des convolutions à grand noyau et une auto-attention partielle.
  • Tête : tête unifiée combinant l'attribution d'étiquettes de type "un à plusieurs" et "un à un".
  • Optimisation : Conception de blocs guidée par les rangs pour réduire la redondance.

Analyse des performances

Le tableau suivant compare les mesures de performance sur l'ensemble de donnéesCOCO . Alors que YOLOv5 reste compétitif, notamment en termes de vitesse de CPU pour sa variante Nano, YOLOv10 fait preuve d'une efficacité supérieure en termes de paramètres et de précisionmAP.

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

Ventilation métrique

  • Précision (mAP) : YOLOv10 affiche une augmentation significative de la précision moyenne. Par exemple, YOLOv10n atteint 39,5 mAP contre 28,0 mAP pour YOLOv5n, ce qui le rend beaucoup plus apte à détecter des objets difficiles.
  • Efficacité : YOLOv10 obtient ces résultats avec moins de paramètres (2,3 millions contre 2,6 millions pour le modèle Nano), ce qui démontre 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 périphériques GPU GPU comme les anciens 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

  • Un é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 nativement en charge la segmentation et la classification des images.
  • Facilité d'utilisation : l'API est conçue pour être simple. 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 le fonctionnement de l'application sur tous les supports, des téléphones portables aux serveurs en nuage.

YOLOv10

  • Faible latence : La suppression du NMS réduit considérablement le temps de post-traitement, ce qui est vital 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 de choix pour les appareils dont le stockage ou la mémoire sont limités.
  • Focus : Bien que puissant, il est principalement spécialisé dans la détection d'objets et ne dispose pas de l'étendue multitâche native (comme l'estimation de la pose) que l'on trouve dans la sérieYOLO d'Ultralytics (v8, 11).

Exigences en matière de 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èlesYOLO d'Ultralytics sont optimisés pour l'efficacité de la mémoire, ce qui leur permet d'être entraînés sur des GPU grand public dotés d'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 un large support de plateforme.

  • Automatisation industrielle : Largement utilisé dans l'industrie manufacturière pour le contrôle de la qualité où la fiabilité est primordiale.
  • Applications mobiles : sa compatibilité éprouvée avec iOS CoreML) et Android TFLite) en fait un outil idéal pour l'intégration d'applications sur les appareils.
  • Prototypage rapide : Le volume de tutoriels et de documentation permet aux développeurs de passer du concept au POC en quelques heures.

Quand choisir YOLOv10

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

  • Robotique à grande vitesse : L'architecture NMS réduit la variance de la latence, ce qui est crucial pour les boucles de contrôle des robots autonomes.
  • Recherche universitaire : Les chercheurs qui cherchent à se comparer aux derniers paradigmes de détection de bout en bout trouveront l'architecture de YOLOv10 innovante et efficace.
  • Télésurveillance : Le nombre élevé de mAP avec un faible nombre de paramètres convient aux systèmes de sécurité fonctionnant avec une bande passante ou un espace de stockage limités.

Formation et facilité d'utilisation

Ultralytics donne la priorité à une expérience simplifiée pour les développeurs. Que vous utilisiez le référentiel classique YOLOv5 ou le référentiel moderne ultralytics pour les modèles plus récents, le processus est intuitif.

Utilisation de YOLOv5

YOLOv5 est célèbre 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 l'application ultralytics 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

Ces deux architectures représentent des étapes importantes dans le domaine de la vision par ordinateur. YOLOv5 reste le cheval de bataille fiable de l'industrie - robuste, polyvalent et soutenu par un écosystème massif. Il s'agit d'un choix sûr pour répondre à divers besoins de déploiement. YOLOv10 repousse les limites de l'efficacité avec sa conception NMS, offrant une mise à niveau convaincante pour les utilisateurs qui se concentrent spécifiquement sur les tâches de détection et qui ont besoin de maximiser la précision sur un matériel limité.

Pour les développeurs à la recherche du meilleur des deux mondes - combinant la maturité de l'écosystème d'Ultralytics avec une précision et une rapidité de pointe - nous recommandons d'explorer YOLO11. Il réunit ces avancées dans un cadre unique et puissant, prêt pour n'importe quelle tâche de vision.

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


Commentaires