YOLOv6-3.0 vs YOLOv5 : Une comparaison technique pour la détection d'objets
Le choix de la bonne architecture pour votre projet de vision par ordinateur est une décision cruciale qui a un impact sur les performances, la facilité de déploiement et la maintenance à long terme. Deux concurrents importants dans le domaine de la détection d'objets en temps réel sont YOLOv6-3.0 de Meituan et YOLOv5 d'Ultralytics. Ce guide fournit une comparaison technique détaillée pour aider les développeurs et les chercheurs à choisir le modèle qui correspond le mieux à leurs exigences spécifiques, qu'il s'agisse de privilégier le débit brut du GPU ou un écosystème polyvalent et facile à utiliser.
Analyse des métriques de performance
Le tableau ci-dessous présente une comparaison directe des mesures de performance sur l'ensemble de données COCO. Bien que YOLOv6-3.0 repousse les limites de la précision maximale sur les appareils GPU, Ultralytics YOLOv5 conserve une réputation d'efficacité exceptionnelle, en particulier sur le CPU, et une complexité de modèle (paramètres et FLOPs) considérablement plus faible pour ses variantes légères.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Analyse : Les données soulignent que le modèle YOLOv5n (Nano) est un modèle exceptionnel pour les environnements aux ressources limitées, avec le plus faible nombre de paramètres (2,6 M) et de FLOP (7,7B), ce qui se traduit par des vitesses d’inférence CPU supérieures. Cela le rend très approprié pour les applications d’IA en périphérie où la mémoire et la puissance sont rares. À l’inverse, YOLOv6-3.0 cible un mAPval plus élevé au prix d’une taille de modèle accrue, ce qui en fait un candidat idéal pour les configurations industrielles avec du matériel GPU dédié.
Meituan YOLOv6-3.0 : Précision industrielle
Auteurs : Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu et Xiangxiang Chu
Organisation : Meituan
Date : 2023-01-13
Arxiv : https://arxiv.org/abs/2301.05586
GitHub : https://github.com/meituan/YOLOv6
Docs : https://docs.ultralytics.com/models/yolov6/
Développé par Meituan, YOLOv6-3.0 est un framework de détection d'objets conçu pour les applications industrielles. Il se concentre sur l'obtention d'un compromis favorable entre la vitesse d'inférence et la précision, en optimisant spécifiquement les performances matérielles sur les GPU.
Architecture et principales fonctionnalités
YOLOv6 intègre une conception de backbone efficace et une structure reparamétrable (style RepVGG) qui simplifie le modèle pendant l'inférence tout en conservant des capacités complexes d'extraction de caractéristiques pendant l'entraînement. La version 3.0 a introduit des techniques telles que l'auto-distillation et une stratégie d'entraînement assistée par des ancres pour améliorer encore les performances.
Points forts et faiblesses
- Haute précision du GPU : Offre des scores de mAP concurrentiels sur l'ensemble de données COCO, ce qui le rend approprié pour les tâches de contrôle de la qualité dans la fabrication.
- Prise en charge de la quantification : Offre un support spécifique pour la quantification des modèles afin d'accélérer le déploiement.
- Polyvalence limitée : Principalement conçu pour la détection d'objets, il manque de support natif pour des tâches plus larges comme la segmentation d'instance ou l'estimation de pose que l'on trouve dans d'autres frameworks.
- Surcharge de ressources plus élevée : Les variantes plus grandes nécessitent plus de mémoire et de puissance de calcul que les modèles YOLOv5 légers équivalents.
Ultralytics YOLOv5 : La norme de l’écosystème
Auteurs : Glenn Jocher
Organisation : Ultralytics
Date : 2020-06-26
GitHub : https://github.com/ultralytics/yolov5
Docs : https://docs.ultralytics.com/models/yolov5/
Ultralytics YOLOv5 est un modèle légendaire dans le domaine de la vision par ordinateur, célébré pour sa conception centrée sur l’utilisateur, sa fiabilité et l’écosystème complet qui l’entoure. Il reste l’un des modèles les plus déployés au monde en raison de son équilibre entre vitesse, précision et facilité d’utilisation.
Architecture et principales fonctionnalités
YOLOv5 utilise un backbone CSPDarknet couplé à un neck PANet pour une fusion robuste des caractéristiques. Il emploie un mécanisme de détection basé sur des ancres, qui s'est avéré très stable sur différents ensembles de données. L'architecture est hautement modulaire, offrant cinq échelles (n, s, m, l, x) pour s'adapter à tout, des appareils embarqués aux serveurs cloud.
Pourquoi choisir YOLOv5 ?
- Facilité d'utilisation : Ultralytics privilégie l'expérience développeur avec une API python simple, une configuration automatique de l'environnement et une documentation complète.
- Polyvalence : Contrairement à de nombreux concurrents, YOLOv5 prend en charge la classification d’images et la segmentation d’instance prêtes à l’emploi.
- Efficacité de l'entraînement : Reconnu pour sa convergence rapide et sa faible utilisation de la mémoire pendant l'entraînement, ce qui permet de réduire les coûts liés aux ressources de calcul.
- Flexibilité de déploiement : Exportation transparente vers des formats tels que ONNX, TensorRT, CoreML et TFLite pour une intégration matérielle diversifiée.
Écosystème intégré
L'un des plus grands avantages de l'utilisation de YOLOv5 est l'écosystème Ultralytics. L'intégration avec des outils comme Ultralytics HUB permet l'entraînement et la prévisualisation de modèles sans code, tandis que la prise en charge intégrée du suivi des expériences via Comet et MLflow rationalise le flux de travail MLOps.
Comparaison Détaillée
Architecture et philosophie de conception
YOLOv6-3.0 s'appuie fortement sur la recherche d'architecture neuronale tenant compte du matériel et la reparamétrisation pour maximiser le débit sur des architectures GPU spécifiques (comme Tesla T4). En revanche, YOLOv5 se concentre sur une conception universelle qui fonctionne de manière fiable sur les CPU, les GPU et les NPU. Le détecteur basé sur l'ancre de YOLOv5 est souvent plus facile à régler pour les ensembles de données personnalisés avec de petits objets par rapport à certaines approches sans ancre.
Facilité d'utilisation et méthodologie de formation
Les modèles Ultralytics sont conçus pour être « prêts à être entraînés ». Avec YOLOv5, des fonctionnalités telles que AutoAnchor ajustent automatiquement les anchor boxes à vos étiquettes de jeu de données, et l'évolution intelligente des hyperparamètres permet de trouver les paramètres d'entraînement optimaux. YOLOv6 nécessite une configuration plus manuelle, caractéristique des référentiels de recherche traditionnels, ce qui peut présenter une courbe d'apprentissage plus abrupte pour les nouveaux utilisateurs.
Cas d'utilisation concrets
- Ultralytics YOLOv5 : idéal pour le prototypage rapide et les déploiements divers. Son modèle « Nano » léger est parfait pour la surveillance par drone ou les applications mobiles nécessitant une inférence en temps réel sur le CPU. Sa prise en charge de la segmentation le rend également précieux pour les tâches d’imagerie médicale telles que la segmentation cellulaire.
- YOLOv6-3.0 : Convient mieux aux environnements industriels fixes où des GPU haut de gamme sont disponibles et où la métrique principale est la mAP. Les exemples incluent l’inspection optique automatisée (AOI) dans la fabrication électronique.
Exemple de code : Exécution de YOLOv5
La simplicité de YOLOv5 est parfaitement illustrée par sa capacité à exécuter l'inférence avec seulement quelques lignes de code à l'aide de PyTorch Hub. Cela élimine les étapes d'installation complexes et permet aux développeurs de tester immédiatement le modèle.
import torch
# Load the YOLOv5s model from the official Ultralytics Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL (or local path)
img = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img)
# Display results
results.show()
# Print detailed results regarding detected objects
results.print()
Cette facilité d'accès est une marque de fabrique de la philosophie Ultralytics, permettant aux praticiens de la vision par ordinateur de se concentrer sur la résolution de problèmes plutôt que sur le débogage des problèmes d'environnement.
Conclusion
Les deux architectures jouent un rôle important dans le paysage de la vision moderne. Meituan YOLOv6-3.0 offre une option intéressante pour les utilisateurs qui se concentrent strictement sur la maximisation de la précision de la détection sur le matériel GPU.
Cependant, Ultralytics YOLOv5 reste le choix supérieur pour la plupart des développeurs en raison de sa polyvalence inégalée, de son efficacité d'entraînement et de son écosystème robuste. La capacité de se déployer facilement sur les appareils périphériques, associée à la prise en charge de la segmentation et de la classification, fait de YOLOv5 une solution complète pour les défis de l'IA dans le monde réel.
Pour ceux qui recherchent le nec plus ultra en matière de performances de pointe, nous vous recommandons d'explorer Ultralytics YOLO11. YOLO11 s'appuie sur l'héritage de YOLOv5 avec une précision, une vitesse et des capacités riches en fonctionnalités encore plus grandes, représentant l'avenir de l'IA de vision. D'autres modèles spécialisés comme RT-DETR sont également disponibles pour les applications basées sur les transformateurs.
Explorez toute la gamme d'outils et de modèles dans la Documentation des modèles Ultralytics.