Passer au contenu

YOLOv10 vs. YOLOv5 : Analyse approfondie de l’architecture et des performances

Dans le paysage en évolution rapide de la vision par ordinateur, le choix du bon modèle de détection d'objets est essentiel pour la réussite d'un projet. Cette comparaison explore les différences techniques entre YOLOv10, une récente publication académique axée sur la formation sans NMS, et YOLOv5, le modèle légendaire d'Ultralytics connu pour sa robustesse et son adoption à l'échelle de l'industrie. Bien que les deux modèles soient issus de la lignée You Only Look Once, ils répondent à différentes priorités d'ingénierie et environnements de déploiement.

Aperçus des modèles

YOLOv10 : Le spécialiste de l'efficacité

Lancé en mai 2024 par des chercheurs de l’université de Tsinghua, YOLOv10 introduit des mécanismes architecturaux conçus pour éliminer le besoin de suppression non maximale (NMS) pendant l’inférence. En utilisant des affectations doubles cohérentes pendant l’entraînement, YOLOv10 vise à réduire la latence de bout en bout, ce qui en fait un candidat idéal pour les applications périphériques où chaque milliseconde de latence d’inférence compte.

En savoir plus sur YOLOv10

Ultralytics YOLOv5 : La norme de l’industrie

Depuis sa sortie en 2020 par Ultralytics, YOLOv5 a défini la facilité d'utilisation dans la communauté de l'IA. Il privilégie un équilibre entre la vitesse, la précision et l'utilité de l'ingénierie. Au-delà des mesures brutes, YOLOv5 offre un écosystème mature, s'intégrant de manière transparente avec les outils de déploiement mobile, les plateformes de suivi d'expériences et les flux de travail de gestion des ensembles de données. Sa polyvalence s'étend au-delà de la détection pour inclure la classification d'images et la segmentation d'instances.

  • Auteur : Glenn Jocher
  • Organisation : Ultralytics
  • Date : 2020-06-26
  • GitHub :ultralytics/yolov5

En savoir plus sur YOLOv5

Différences architecturales

La divergence principale réside dans la façon dont les prédictions sont traitées. YOLOv5 utilise une architecture basée sur des ancres hautement optimisée qui repose sur NMS pour filtrer les boîtes englobantes qui se chevauchent. Cette méthode est éprouvée et robuste sur divers ensembles de données.

En revanche, YOLOv10 emploie une stratégie d'affectation double cohérente. Cela permet au modèle de prédire une seule meilleure boîte pour chaque objet pendant l'Inference, supprimant théoriquement complètement l'étape NMS. Cette réduction de la surcharge de post-traitement est le principal argument de vente de YOLOv10, offrant une latence plus faible sur les appareils périphériques comme le NVIDIA Jetson Orin Nano. De plus, YOLOv10 intègre des conceptions d'efficacité holistiques dans son backbone et sa tête pour minimiser les paramètres (params) et les opérations en virgule flottante (FLOPs).

Efficacité de la mémoire

L'une des caractéristiques des modèles Ultralytics comme YOLOv5 (et le nouveau YOLO11) est leur empreinte mémoire optimisée. Contrairement à certains détecteurs basés sur des transformateurs qui consomment de grandes quantités de mémoire CUDA, les modèles Ultralytics sont conçus pour s'entraîner efficacement sur du matériel grand public, démocratisant ainsi l'accès à l'IA de pointe.

Mesures de performance

Le tableau ci-dessous met en évidence les compromis en matière de performances. YOLOv10 atteint généralement une précision moyenne (mAP) plus élevée avec moins de paramètres par rapport à l'ancienne architecture YOLOv5. Cependant, YOLOv5 reste compétitif en termes de vitesse d'inférence brute sur certaines configurations matérielles, en particulier lors de l'utilisation de formats d'exportation optimisés tels que TensorRT ou ONNX.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
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
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

Points forts et faiblesses

Analyse de YOLOv10

Points forts :

  • Sans NMS : La suppression de l'étape de suppression non maximale simplifie le pipeline de déploiement et stabilise la latence d'inférence.
  • Efficacité des paramètres : Atteint une grande précision avec des poids de modèle plus petits, ce qui est avantageux pour les appareils à stockage limité.
  • Précision de pointe : Surpasse les anciennes versions de YOLO dans les mesures mAP pures sur le banc d’essai COCO.

Faiblesses :

  • Polyvalence limitée : Principalement axé sur la détection d'objets, manquant de support natif pour les tâches complexes comme l'estimation de pose ou la détection de boîtes englobantes orientées (OBB) que l'on trouve dans les modèles Ultralytics plus récents.
  • Écosystème en développement : En tant que modèle axé sur la recherche, il peut manquer des plugins communautaires étendus, des intégrations éprouvées et du support d’entreprise disponibles pour les modèles natifs d’Ultralytics.

Analyse YOLOv5

Points forts :

  • Polyvalence inégalée : Prend en charge la detect, la segment et la classify prêtes à l’emploi.
  • Écosystème robuste : Soutenu par Ultralytics, il s'intègre sans effort avec des outils tels que Ultralytics HUB, Roboflow et Comet ML.
  • Prêt pour le déploiement : Une documentation complète est disponible pour l'exportation vers CoreML, TFLite, TensorRT et OpenVINO, garantissant des déploiements de production fluides.
  • Efficacité de l'entraînement : Reconnu pour sa dynamique d'entraînement stable et sa faible utilisation de la mémoire, ce qui le rend accessible aux développeurs disposant de configurations à GPU unique.

Faiblesses :

  • Architecture vieillissante : Bien qu’il soit toujours puissant, son ratio mAP/FLOPs pur a été dépassé par les itérations plus récentes comme YOLOv8 et YOLO11.
  • Dépendance de l’ancre : Repose sur des boîtes d’ancrage qui peuvent nécessiter un réglage manuel pour les ensembles de données avec des rapports d’aspect d’objet extrêmes.

Cas d'utilisation idéaux

Le choix entre ces deux se résume souvent aux contraintes spécifiques de votre environnement de déploiement.

  • Choisissez YOLOv10 si : Vous construisez un système de détection d'objets dédié pour un appareil embarqué où l'élimination de la surcharge de calcul du NMS offre un avantage de vitesse critique, ou si vous avez besoin du mAP le plus élevé possible à partir d'un faible encombrement de modèle.
  • Choisissez YOLOv5 si : Vous avez besoin d'un modèle multitâche fiable pour un pipeline de production. Sa capacité à gérer la segmentation d'instance et la classification en fait un « couteau suisse » pour l'IA de vision. De plus, si votre équipe s'appuie sur des flux de travail MLOps standard, l'intégration transparente de YOLOv5 dans l'écosystème Ultralytics réduit considérablement le temps de développement.

Expérience utilisateur et écosystème

L'une des caractéristiques déterminantes des modèles Ultralytics est l'accent mis sur l'expérience développeur. YOLOv5 a établi la norme pour "ça marche tout simplement", et cette philosophie se poursuit. Les utilisateurs peuvent entraîner un modèle YOLOv5 sur des données personnalisées avec seulement quelques lignes de code, en tirant parti des poids pré-entraînés pour accélérer la convergence.

En revanche, bien que YOLOv10 fournisse d'excellents résultats académiques, son intégration dans des pipelines de production complexes pourrait nécessiter davantage d'ingénierie personnalisée. Ultralytics maintient une communauté open source dynamique, garantissant que les bugs sont corrigés rapidement et que des fonctionnalités sont ajoutées en fonction des commentaires des utilisateurs du monde réel.

Comparaison de code

L'exécution de ces modèles est simple. Vous trouverez ci-dessous des exemples de chargement et de prédiction avec chacun d'eux en utilisant python.

Utilisation de YOLOv10 :

from ultralytics import YOLO

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

# Perform inference on an image
results = model("path/to/image.jpg")
results[0].show()

Utilisation de YOLOv5 (via PyTorch Hub) :

import torch

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

# Perform inference
results = model("path/to/image.jpg")
results.show()

Conclusion

Les deux modèles représentent des avancées significatives en vision par ordinateur. YOLOv10 repousse les limites de l'optimisation de la latence grâce à sa conception sans NMS, ce qui en fait un choix intéressant pour les tâches de détection spécialisées à haute vitesse.

Cependant, pour la plupart des développeurs et des entreprises, l'écosystème Ultralytics (représenté ici par la fiabilité durable de YOLOv5 et les performances de pointe de YOLO11) offre une solution plus complète. La combinaison de la facilité d'utilisation, de la documentation exhaustive et des capacités multitâches vous permet de passer moins de temps à déboguer et plus de temps à déployer de la valeur.

Pour ceux qui cherchent à passer de YOLOv5 tout en conservant les avantages de l'écosystème, nous recommandons vivement d'explorer YOLO11, qui offre des performances de pointe, une détection sans ancrage et une prise en charge de l'ensemble des tâches de vision, y compris OBB et l'estimation de pose.

Lectures complémentaires


Commentaires