YOLOv10 vs. YOLOv5: Architecture et performances en profondeur
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 YOLOv10une version académique récente qui se concentre sur la formation NMS, et YOLOv5le modèle légendaire d'Ultralytics connu pour sa robustesse et son adoption par l'ensemble de l'industrie. Bien que les deux modèles soient issus de la lignée You Only Look Once, ils répondent à des priorités d'ingénierie et à des environnements de déploiement différents.
Aperçu des modèles
YOLOv10: Le spécialiste de l'efficacité
Publié en mai 2024 par des chercheurs de l'Université 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 la formation, YOLOv10 vise à réduire la latence de bout en bout, ce qui en fait un candidat de choix pour les applications de pointe où chaque milliseconde de latence d'inférence compte.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université de Tsinghua
- Date : 2024-05-23
- Arxiv :YOLOv10: Détection d'objets de bout en bout en temps réel
- GitHub :THU-MIG/yolov10
Ultralytics YOLOv5: la norme de l'industrie
Depuis son lancement en 2020 par UltralyticsYOLOv5 a défini la facilité d'utilisation dans la communauté de l'IA. Il privilégie un équilibre entre vitesse, précision et utilité technique. Au-delà des mesures brutes, YOLOv5 offre un écosystème mature, s'intégrant de manière transparente aux outils de déploiement mobiles, aux plateformes de suivi des expériences et aux 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 :yolov5
Différences architecturales
La principale divergence réside dans la manière dont les prédictions sont traitées. YOLOv5 utilise une architecture à base d'ancres hautement optimisée qui s'appuie sur NMS pour filtrer les boîtes de délimitation qui se chevauchent. Cette méthode a fait ses preuves et est robuste dans divers ensembles de données.
En revanche, YOLOv10 utilise une stratégie d'assignation double cohérente. Cela permet au modèle de prédire une seule meilleure boîte pour chaque objet pendant l'inférence, ce qui supprime théoriquement l'étape du NMS . Cette réduction des frais généraux de post-traitement est le principal atout de YOLOv10, qui offre une latence plus faible sur les appareils périphériques tels que le NVIDIA Jetson Orin Nano. En outre, YOLOv10 incorpore des conceptions d'efficacité holistique dans sa colonne vertébrale 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 tels que YOLOv5 (et le plus récent 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 plus élevée (mAP) avec moins de paramètres que 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èle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
Points forts et faiblesses
Analyse YOLOv10
Points forts :
- NMS: La suppression de l'étape de suppression des valeurs non maximales simplifie le processus de déploiement et stabilise le temps de latence de l'inférence.
- Efficacité des paramètres : Permet d'obtenir une grande précision avec des poids de modèle plus faibles, ce qui est avantageux pour les appareils à stockage limité.
- Précision de pointe : Surpasse les anciennes versions de YOLO en termes de métriques mAP sur le benchmark COCO .
Faiblesses :
- Polyvalence limitée : Principalement axé sur la détection d'objets, il ne prend pas en charge les tâches complexes telles que l'estimation de la pose ou la détection de la boîte englobante orientée (OBB) que l'on trouve dans les modèles Ultralytics plus récents.
- Un écosystème en développement : En tant que modèle centré sur la recherche, il peut ne pas disposer des nombreux plugins de la communauté, des intégrations éprouvées et de l'assistance aux entreprises disponibles pour les modèles Ultralytics.
Analyse YOLOv5
Points forts :
- Polyvalence inégalée : Prise en charge de la détection, de la segmentation et de la classification dès le départ.
- Un écosystème solide : Soutenu par Ultralyticsil 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 existe pour l'exportation vers CoreML, TFLite, TensorRT et OpenVINO, ce qui garantit des déploiements de production sans heurts.
- Efficacité de l'entraînement : Connu pour sa dynamique d'entraînement stable et sa faible utilisation de la mémoire, ce qui le rend accessible aux développeurs disposant d'un seul GPU .
Faiblesses :
- Architecture vieillissante : Bien que toujours puissante, son ratio mAP pur a été dépassé par des itérations plus récentes telles que YOLOv8 et YOLO11.
- Dépendance à l'égard des ancres : S'appuie sur des boîtes d'ancrage qui peuvent nécessiter un réglage manuel pour les ensembles de données présentant des rapports d'aspect d'objet extrêmes.
Cas d'utilisation idéaux
Le choix entre ces deux solutions dépend souvent des 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 dispositif embarqué où l'élimination de la surcharge de calcul du NMS apporte un avantage critique en termes de vitesse, ou si vous avez besoin de la mAP la plus élevée possible à partir d'un modèle à faible encombrement.
- Choisissez YOLOv5 si : Vous avez besoin d'un modèle fiable et multitâche pour un pipeline de production. Sa capacité à gérer la segmentation et la classification des instances 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 de l'utilisateur et écosystème
L'une des caractéristiques des modèles Ultralytics est l'accent mis sur l'expérience des développeurs. YOLOv5 a établi la norme du " ça marche, c'est tout ", 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 utilisant des poids pré-entraînés pour accélérer la convergence.
En revanche, si YOLOv10 fournit 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 bogues sont éliminés rapidement et que les fonctionnalités sont ajoutées sur la base des commentaires des utilisateurs du monde réel.
Comparaison des codes
L'exécution de ces modèles est simple. Vous trouverez ci-dessous des exemples de chargement et de prédiction avec chacun d'entre 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
Ces deux modèles représentent des avancées significatives dans le domaine de la vision par ordinateur. YOLOv10 repousse les limites de l'optimisation de la latence grâce à sa conception NMS, ce qui en fait un choix intéressant pour les tâches de détection spécialisées à grande vitesse.
Cependant, pour la plupart des développeurs et des entreprises, l'écosystèmeUltralytics - 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 complète et des capacités multi-tâches garantit que vous passerez moins de temps à déboguer et plus de temps à déployer de la valeur.
Pour ceux qui souhaitent passer à YOLOv5 tout en conservant les avantages de l'écosystème, nous recommandons vivement de découvrir YOLO11qui 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 l'OBB et l'estimation de la pose.
Lectures complémentaires
- Comparaison entre YOLOv8 et YOLOv10
- Comparaison entre YOLO11 et YOLOv5
- Guide de la détection d'objets