YOLOv7 contre YOLOv6-3.0 : Comparaison détaillée des modèles pour la détection d’objets
Choisir le modèle de détection d'objets optimal est une décision essentielle dans les projets de vision par ordinateur, nécessitant un équilibre entre la précision, la vitesse et l'utilisation des ressources. Cette page fournit une comparaison technique détaillée entre YOLOv7 et YOLOv6-3.0, deux modèles importants connus pour leurs capacités de détection d'objets. Nous allons examiner leurs architectures, leurs benchmarks de performance et leurs applications appropriées afin de guider votre processus de sélection de modèle.
YOLOv7 : Précision et techniques avancées
YOLOv7, développé par des chercheurs de l'Institute of Information Science, Academia Sinica, Taiwan, représente une étape importante dans la détection d'objets en temps réel, en se concentrant sur l'obtention d'une haute précision tout en maintenant l'efficacité.
Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
Organisation : Institut des sciences de l'information, Academia Sinica, Taïwan
Date : 2022-07-06
Arxiv : https://arxiv.org/abs/2207.02696
GitHub : https://github.com/WongKinYiu/yolov7
Docs : https://docs.ultralytics.com/models/yolov7/
Architecture et principales fonctionnalités
YOLOv7 introduit plusieurs innovations architecturales et stratégies d'entraînement visant à améliorer les performances sans augmenter considérablement les coûts d'inférence. Les principales caractéristiques comprennent :
- E-ELAN (Extended-Efficient Layer Aggregation Networks) : Ce composant central du backbone du modèle améliore la capacité du réseau à apprendre efficacement les caractéristiques, améliorant ainsi l’efficacité des paramètres et des calculs. Plus de détails sont disponibles dans le document original.
- Mise à l’échelle du modèle : Met en œuvre des méthodes de mise à l’échelle composées pour la profondeur et la largeur du modèle, optimisant les performances pour différentes tailles de modèles en fonction des principes du modèle basé sur la concaténation.
- Entraînement de la tête auxiliaire : Utilise des têtes auxiliaires pendant la phase d'entraînement pour renforcer l'apprentissage des caractéristiques, qui sont ensuite supprimées pour l'inférence afin de maintenir la vitesse. Ce concept est lié aux techniques de supervision profonde utilisées dans d'autres réseaux neuronaux.
- Améliorations "Sac de cadeaux gratuits" : Intègre des techniques d'entraînement avancées telles que l'augmentation des données et les améliorations de l'attribution des étiquettes qui améliorent la précision sans coût d'inférence supplémentaire.
Points forts
- Haute précision : Obtient une précision à la pointe de la technologie sur des bancs d'essai comme l'ensemble de données COCO.
- Efficacité : Équilibre une haute précision avec des vitesses d’inférence compétitives, adapté à l'inférence en temps réel.
- Polyvalence : Le dépôt officiel témoigne d'une prise en charge des tâches allant au-delà de la détection, notamment l'estimation de pose et la segmentation d'instance.
Faiblesses
- Complexité : Les caractéristiques architecturales avancées et les techniques d’entraînement peuvent rendre le modèle plus complexe à comprendre et à affiner que les architectures plus simples comme YOLOv5.
- Entraînement gourmand en ressources : Les variantes YOLOv7 plus grandes (par exemple, YOLOv7-E6E) nécessitent des ressources de calcul importantes pour l'entraînement.
YOLOv6-3.0 : efficacité et vitesse industrielles
YOLOv6-3.0, développé par Meituan, est conçu pour les applications industrielles exigeant une détection d'objets à haute performance avec un accent sur la vitesse et l'efficacité. La version 3.0 améliore considérablement ses prédécesseurs, offrant une précision améliorée et des temps d'inférence plus rapides.
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/
Architecture et principales fonctionnalités
YOLOv6-3.0 est conçu pour le déploiement, avec plusieurs choix architecturaux clés qui privilégient la vitesse d'inférence.
- Conception axée sur le matériel : L’architecture est conçue pour des performances efficaces sur diverses plateformes matérielles, en particulier les GPU, en utilisant des blocs reparamétrables de style RepVGG.
- Backbone EfficientRep et Neck Rep-PAN : Ces structures sont conçues pour réduire les goulets d'étranglement computationnels et les coûts d'accès à la mémoire, ce qui se traduit directement par une inférence plus rapide.
- Tête découplée : Sépare les têtes de classification et de localisation, ce qui a démontré améliorer la convergence et la précision finale du modèle, une technique également observée dans des modèles comme YOLOX.
Points forts
- Vitesse d’inférence élevée : Optimisé pour une inférence rapide, ce qui le rend parfaitement adapté aux applications en temps réel où la latence est un facteur essentiel.
- Orientation industrielle : Conçu pour des scénarios de déploiement industriel, assurant la robustesse et l’efficacité dans des contextes pratiques tels que la fabrication.
- Conception efficace : Les variantes plus petites de YOLOv6-3.0 ont un nombre de paramètres et de FLOP très faible, ce qui les rend idéales pour les environnements aux ressources limitées.
Faiblesses
- Compromis en matière de précision : Bien que très efficace, il peut présenter une précision légèrement inférieure sur les ensembles de données complexes par rapport aux modèles comme YOLOv7 qui privilégient la précision maximale par rapport à la vitesse.
- Écosystème et polyvalence : L'écosystème autour de YOLOv6 est moins complet que celui des modèles Ultralytics, et il est principalement axé sur la détection d'objets.
Cas d'utilisation
YOLOv6-3.0 excelle dans les applications où la vitesse et l'efficacité sont primordiales :
- Automatisation industrielle : Contrôle qualité et surveillance des processus dans la fabrication.
- Systèmes en temps réel : Applications avec des exigences de latence strictes comme la robotique et la surveillance.
- Edge Computing : Déploiement sur des appareils aux ressources limitées en raison de sa conception efficace. Consultez les guides sur le déploiement sur des appareils comme NVIDIA Jetson.
Comparaison des performances : YOLOv7 vs YOLOv6-3.0
Le tableau ci-dessous résume les indicateurs de performance pour les variantes comparables de YOLOv7 et YOLOv6-3.0 sur l'ensemble de données COCO.
Modèle | Taille (pixels) |
mAPval 50-95 |
Vitesse CPU ONNX (ms) |
Vitesse T4 TensorRT10 (ms) |
paramètres (M) |
FLOPs (B) |
---|---|---|---|---|---|---|
YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
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 |
Remarque : les benchmarks de vitesse peuvent varier en fonction du matériel, du logiciel (TensorRT, ONNX, OpenVINO), de la taille du lot et des configurations spécifiques. Les valeurs mAP sont généralement rapportées sur l'ensemble de données COCO val.
D'après le tableau, YOLOv7x atteint le mAP le plus élevé, ce qui indique une précision supérieure. Cependant, les modèles YOLOv6-3.0, en particulier les variantes plus petites comme YOLOv6-3.0n, offrent des vitesses d'inférence nettement plus rapides, en particulier sur GPU avec l'optimisation TensorRT, et ont moins de paramètres et de FLOPs, ce qui les rend très efficaces. Le choix dépend de la priorité accordée à la précision maximale (YOLOv7) ou à la vitesse/efficacité optimale (YOLOv6-3.0).
Pourquoi choisir les modèles Ultralytics YOLO ?
Pour les utilisateurs à la recherche de modèles de pointe au sein d'un écosystème complet et facile à utiliser, Ultralytics propose YOLOv8 et le dernier Ultralytics YOLO11. Ces modèles offrent des avantages significatifs par rapport à YOLOv7 et YOLOv6.
- Facilité d'utilisation : Les modèles Ultralytics sont fournis avec une API Python simplifiée, une documentation complète et des commandes CLI directes, ce qui simplifie l'entraînement, la validation et le déploiement.
- Écosystème bien maintenu : Bénéficiez d'un développement actif, d'une forte communauté open source, de mises à jour fréquentes et d'une intégration avec des outils tels que Ultralytics HUB pour un MLOps transparent.
- Équilibre des performances : Les modèles Ultralytics offrent un excellent compromis entre la vitesse et la précision, ce qui les rend adaptés à divers scénarios réels, des appareils périphériques aux serveurs cloud.
- Polyvalence : Les modèles tels que YOLOv8 et YOLO11 prennent en charge plusieurs tâches au-delà de la détection d’objets, notamment la segmentation, la classification, l’estimation de pose et la détection d’objets orientés (OBB), offrant une solution unifiée.
- Efficacité de l'entraînement : Bénéficiez de processus d'entraînement efficaces, de poids pré-entraînés facilement disponibles sur des ensembles de données tels que COCO, et de temps de convergence plus rapides.
Pour une exploration plus approfondie, vous pourriez également trouver des comparaisons avec d'autres modèles comme RT-DETR instructives.