YOLOv5 vs YOLOv6-3.0 : Équilibrer la maturité de l'écosystème et la précision industrielle
Dans le paysage en rapide évolution de la vision par ordinateur, le choix de l'architecture de détection d'objets appropriée est une décision cruciale pour les développeurs et les chercheurs. Cette comparaison se penche sur les distinctions techniques entre Ultralytics YOLOv5, un modèle légendaire réputé pour son accessibilité et son écosystème robuste, et Meituan YOLOv6-3.0, un framework conçu spécifiquement pour les applications industrielles. Bien que les deux modèles excellent dans la détection d'objets, ils répondent à différents besoins de déploiement et préférences de flux de travail.
Ultralytics YOLOv5
Auteurs : Glenn Jocher
Organisation : Ultralytics
Date : 2020-06-26
GitHub : https://github.com/ultralytics/yolov5
Docs : https://docs.ultralytics.com/models/yolov5/
Depuis sa sortie en 2020, YOLOv5 s'est imposé comme l'un des modèles d'IA les plus populaires et les plus fiables au monde. Construit sur le framework PyTorch, il a privilégié la facilité d'utilisation, l'exportabilité et les performances "prêtes à l'emploi", démocratisant ainsi l'accès à l'IA de vision de pointe.
Architecture et écosystème
YOLOv5 utilise un backbone CSPDarknet combiné à un neck PANet et à un head de style YOLOv3. Son architecture est basée sur des ancres, utilisant des anchor boxes pour prédire les emplacements des objets. Un élément clé de différenciation est son intégration dans un écosystème mature. Contrairement à de nombreuses bases de code de recherche, YOLOv5 a été conçu comme un produit pour les ingénieurs, avec une exportation transparente vers des formats tels que ONNX, CoreML et TFLite, ce qui le rend exceptionnellement polyvalent pour le déploiement mobile et edge.
Principaux atouts
- Facilité d'utilisation : L'« expérience YOLOv5 » se définit par sa simplicité. De l'entraînement d'ensembles de données personnalisés à l'exécution de l'inférence, les flux de travail sont rationalisés et bien documentés.
- Écosystème bien maintenu : Les utilisateurs bénéficient d’une maintenance active, de mises à jour fréquentes et d’une communauté massive. Les intégrations avec les outils MLOps comme Weights & Biases et Comet sont natives.
- Polyvalence : Au-delà de la détection standard, le référentiel prend en charge la segmentation d’instance et la classification d’images, offrant une solution multitâche dans un seul code.
- Efficacité de la mémoire : YOLOv5 est connu pour sa faible empreinte mémoire relative pendant l’entraînement par rapport aux modèles basés sur des transformateurs, ce qui le rend accessible sur les GPU grand public.
Déploiement transparent
L'accent mis par YOLOv5 sur l'exportabilité permet aux développeurs de déployer facilement des modèles dans divers environnements, des serveurs cloud aux appareils périphériques tels que Raspberry Pi ou NVIDIA Jetson.
Meituan YOLOv6-3.0
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/
YOLOv6-3.0, développé par l'équipe de vision IA de Meituan, se positionne comme un concurrent industriel axé sur l'équilibre entre la vitesse et la précision, en particulier pour les applications tenant compte du matériel. Il a été conçu pour maximiser le débit sur les GPU en utilisant l'optimisation TensorRT.
Architecture et orientation industrielle
YOLOv6 utilise un backbone EfficientRep et un neck Rep-PAN, tirant parti des techniques de reparamétrisation (style RepVGG) pour améliorer la vitesse d'inférence sans sacrifier la précision. Pendant l'entraînement, le modèle utilise une structure multi-branches, qui s'effondre en une structure à branche unique pendant l'inférence. La version 3.0 a introduit des stratégies telles que l'auto-distillation pour améliorer encore la précision moyenne (mAP).
Points forts et faiblesses
- Optimisation du GPU : L'architecture est fortement optimisée pour l'inférence GPU standard, atteignant souvent des benchmarks FPS élevés sur les cartes NVIDIA T4 lors de l'utilisation de TensorRT.
- Adapté à la quantification : Meituan offre une prise en charge spécifique de la quantification post-formation (PTQ) et de la formation tenant compte de la quantification (QAT), ce qui est crucial pour certains scénarios de déploiement industriels.
- Polyvalence limitée : Bien qu'excellent en détection, YOLOv6 manque du support multi-tâches natif et étendu (comme l'estimation de pose ou l'OBB) que l'on trouve dans la suite complète Ultralytics.
- Complexité : Les étapes de reparamétrisation et les pipelines d’entraînement spécifiques peuvent introduire de la complexité par rapport à la nature plug-and-play des modèles Ultralytics.
Comparaison directe des performances
La comparaison ci-dessous met en évidence les compromis en matière de performances. YOLOv6-3.0 vise une précision maximale sur du matériel puissant, sacrifiant souvent l'efficacité des paramètres. En revanche, Ultralytics YOLOv5 maintient un équilibre remarquable, offrant des modèles légers qui excellent dans les environnements basés sur le CPU et l'inférence en temps réel sur les appareils périphériques.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Analyse
YOLOv5n se distingue comme une solution extrêmement efficace pour les applications mobiles, nécessitant beaucoup moins de paramètres (2,6 M) par rapport à la plus petite variante de YOLOv6 (4,7 M). Bien que YOLOv6-3.0 atteigne un mAP de crête plus élevé dans les grandes tailles, il le fait au prix d'une taille de modèle accrue (FLOP et paramètres). Pour les développeurs ciblant le déploiement sur CPU (courant dans la robotique ou la surveillance à faible consommation), les vitesses CPU de YOLOv5 sont explicitement évaluées et optimisées, tandis que YOLOv6 se concentre fortement sur l'accélération GPU.
Méthodologies d'entraînement et expérience
L'expérience d'entraînement diffère considérablement entre les deux écosystèmes. Ultralytics privilégie une approche à faible code et à grande flexibilité.
Flux de travail Ultralytics
YOLOv5 peut être intégré directement via PyTorch Hub, ce qui permet aux utilisateurs de charger et d’exécuter des modèles avec un minimum de code boilerplate. Le script de formation gère automatiquement tout, de la data augmentation à la journalisation.
import torch
# Load YOLOv5s from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s")
# Perform inference
img = "https://ultralytics.com/images/zidane.jpg"
results = model(img)
results.print()
Flux de travail industriel
YOLOv6 requiert généralement une configuration plus manuelle impliquant le clonage du dépôt, la mise en place de fichiers de configuration spécifiques pour le backbone de reparamétrisation, et l'exécution de scripts qui sont moins intégrés avec les outils MLOps externes dès le départ. Bien que puissant, il exige une compréhension plus approfondie des contraintes architecturales spécifiques (comme les paramètres d'auto-distillation) pour atteindre les benchmarks rapportés.
Cas d'utilisation idéaux
Le choix entre ces modèles dépend de vos contraintes spécifiques en matière de matériel, de précision et de vitesse de développement.
- Ultralytics YOLOv5 : Le choix idéal pour le prototypage rapide, le déploiement en périphérie et le support communautaire. Si vous avez besoin de déployer sur un Raspberry Pi, un téléphone mobile ou un serveur CPU, la nature légère de YOLOv5 et sa prise en charge de l’exportation sont inégalées. Il est également idéal pour les chercheurs qui ont besoin d’une base de code polyvalente qui prend en charge la segmentation et la classification en plus de la détection.
- Meituan YOLOv6-3.0 : Convient mieux aux environnements industriels fixes où des GPU haut de gamme sont disponibles et où la maximisation du mAP est la seule priorité. Si vous construisez un système d’assurance qualité en usine fonctionnant sur des serveurs NVIDIA T4/A10 et que vous disposez des ressources d’ingénierie nécessaires pour affiner les modèles reparamétrés, YOLOv6 est un candidat solide.
Conclusion
Ultralytics YOLOv5 reste une pierre angulaire de la communauté de la vision artificielle, célébrée pour son équilibre de performance, sa facilité d’utilisation et son écosystème florissant. Sa capacité à fournir des résultats fiables sur un vaste éventail de matériel, de la périphérie au cloud, en fait un choix supérieur pour la plupart des développeurs qui privilégient la polyvalence et la rapidité de mise sur le marché.
Bien que YOLOv6-3.0 introduise des innovations architecturales impressionnantes pour l'inférence GPU industrielle, il lui manque l'écosystème complet et l'adaptabilité multiplateforme des modèles Ultralytics. Pour ceux qui recherchent le nec plus ultra en matière de performances et d'efficacité, nous recommandons d'explorer Ultralytics YOLO11, qui surpasse YOLOv5 et YOLOv6 en précision et en vitesse tout en conservant l'API Ultralytics conviviale.
Pour les tâches spécialisées, les développeurs peuvent également envisager d'autres modèles dans la documentation Ultralytics, tels que YOLOv8, YOLOv9, YOLOv10 ou le RT-DETR basé sur un transformateur.
Explorez tout le potentiel de l'IA de vision dans la Documentation des modèles Ultralytics.