YOLOv8 vs YOLOv6.0 : Une comparaison technique
La sélection du modèle optimal de détection d'objets est une étape cruciale dans la création d'applications robustes de vision par ordinateur. Cette comparaison détaillée explore les différences architecturales, les mesures de performance et les cas d'utilisation idéaux pour Ultralytics YOLOv8 et YOLOv6.0. Bien que les deux modèles aient vu le jour à peu près au même moment et visent à résoudre des problèmes similaires, ils diffèrent considérablement dans leur philosophie de conception, leur polyvalence et les écosystèmes qui les soutiennent.
Ultralytics YOLOv8
Auteurs: Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation: Ultralytics
Date: 2023-01-10
GitHub ultralyticshttps://github.com/ultralytics/ultralytics
Docs :yolov8
Ultralytics YOLOv8 représente une avancée significative dans l'évolution de l'architecture YOLO . Conçu comme un cadre unifié, il prend en charge un large éventail de tâches de vision artificielle au-delà de la simple détection, y compris la segmentation des instances, l'estimation de la pose et la classification. Sa conception centrée sur l'utilisateur privilégie la facilité d'utilisation, rendant l'IA de pointe accessible aux développeurs de tous niveaux.
Architecture et principales fonctionnalités
YOLOv8 introduit un mécanisme de détection sans ancrage, qui simplifie la tête du modèle et réduit le nombre d'hyperparamètres nécessaires à l'apprentissage. Cette approche améliore la généralisation pour différentes formes et tailles d'objets. L'architecture comporte une colonne vertébrale et un cou de pointe utilisant un module C2f, qui améliore le flux de gradient et l'intégration des caractéristiques par rapport aux itérations précédentes.
Points forts
- Une polyvalence inégalée: Contrairement à de nombreux concurrents, YOLOv8 ne se limite pas à la détection d'objets. Il prend en charge de manière native la segmentation d'instances, la classification d'images, l'estimation de la pose et les tâches liées à la boîte de délimitation orientée (OBB) au sein d'une base de code unique.
- Efficacité supérieure: Comme le montrent les repères de performance, YOLOv8 atteint une plus grande précisionmAP) avec moins de paramètres et de FLOP. Les besoins en mémoire sont donc moindres lors de l'apprentissage et de l'inférence, ce qui constitue un avantage décisif par rapport aux modèles plus lourds basés sur des transformateurs.
- Facilité d'utilisation: le modèle est intégré dans une APIPython rationalisée et une interface de ligne de commandeCLI, ce qui permet aux utilisateurs d'entraîner, de valider et de déployer des modèles avec un minimum de code.
- Un écosystème solide: Soutenu par UltralyticsYOLOv8 bénéficie de mises à jour continues, d'une documentation complète et d'une communauté dynamique. Cela garantit une viabilité à long terme et un soutien pour les déploiements en entreprise.
Faiblesses
- Détection des petits objets: Bien qu'ils soient très performants, les détecteurs à une étape comme YOLOv8 peuvent parfois avoir du mal à détecter des objets extrêmement petits ou occultés par rapport aux détecteurs à deux étapes spécialisés et coûteux en termes de calcul.
YOLOv6.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 YOLOv6https://github.com/meituan/YOLOv6
Docs :ultralytics
YOLOv6.0 est un cadre de détection d'objets développé par Meituan, spécialement conçu pour les applications industrielles où la vitesse d'inférence sur du matériel dédié est une priorité. Il se concentre sur l'optimisation du compromis entre vitesse et précision, en employant des techniques avancées pour maximiser l'utilisation du GPU .
Architecture et principales fonctionnalités
L'architecture YOLOv6 intègre une conception adaptée au matériel, utilisant des structures Rep-Block (re-paramétrage) qui permettent au réseau d'avoir des branches complexes pendant l'apprentissage, mais qui se replient en une structure plus simple et plus rapide pendant l'inférence. Elle utilise également une stratégie d'autodistillation pour améliorer la précision sans encourir de coûts d'inférence supplémentaires.
Points forts
- Vitesse d'inférenceGPU : le modèle est fortement optimisé pour les performances du GPU , en particulier sur le matériel NVIDIA , ce qui en fait un candidat de choix pour les scénarios industriels avec des budgets de latence stricts.
- Prise en charge de la quantification: YOLOv6 met l'accent sur la prise en charge de la quantification des modèles, en fournissant des outils permettant de déployer des modèles sur du matériel dont la précision de calcul est limitée.
- Optimisation mobile: Avec des variantes telles que YOLOv6Lite, le cadre offre des solutions adaptées aux points d'extrémité mobiles et CPU.
Faiblesses
- Portée limitée de la tâche: YOLOv6 est principalement axé sur la détection d'objets. Il ne dispose pas de la prise en charge native et prête à l'emploi de la segmentation, de l'estimation de la pose et du suivi qui caractérise l'écosystème Ultralytics .
- Intensité des ressources: Pour atteindre une précision comparable à YOLOv8, les modèles YOLOv6 nécessitent souvent beaucoup plus de paramètres et de FLOP, ce qui entraîne une surcharge de calcul pendant l'apprentissage.
- Communauté et maintenance: Bien qu'il s'agisse d'un logiciel libre, l'écosystème est moins actif que celui d'Ultralytics, ce qui peut entraîner une résolution plus lente des problèmes et une diminution des ressources fournies par la communauté.
Comparaison des performances
Le tableau suivant présente une comparaison directe des mesures de performance sur l'ensemble de donnéesCOCO . Ces données soulignent l'efficacité d'Ultralytics YOLOv8, qui fournit constamment une précision moyenne élevée (mAP) avec une complexité de modèle réduite.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv6.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
Analyse des indicateurs
- Efficacité: YOLOv8 fait preuve d'une efficacité supérieure en matière de paramètres. Par exemple, YOLOv8s atteint un mAP compétitif de 44,9 avec seulement 11,2 millions de paramètres, alors que YOLOv6.0s nécessite 18,5 millions de paramètres, soit 65 %de plus, pouratteindre un mAP pratiquement identique de 45,0. Cela se traduit par des coûts de stockage plus faibles et des mises à jour plus rapides sur les appareils périphériques.
- Charge de calcul: De même, en termes de FLOPs (Floating Point Operations), YOLOv8m fonctionne avec 78,9 milliards de FLOPs contre 85,8 milliards pour YOLOv6.0m, ce qui rend le modèle Ultralytics plus léger en termes de calcul tout en obtenant un mAP plus élevé (50,2 contre 50,0).
- Vitesse: Alors que YOLOv6.0 montre des vitesses d'inférence brutes légèrement plus élevées sur les GPU T4 en raison de sa conception matérielle spécialisée, YOLOv8 offre d'excellentes performances sur le CPU grâce à ONNXce qui est crucial pour les déploiements où les GPU ne sont pas disponibles.
Formation et facilité d'utilisation
L'une des différences déterminantes entre ces modèles est l'expérience du développeur. Ultralytics donne la priorité à un flux de travail sans friction, ce qui est évident dans la façon dont les modèles sont formés et déployés.
Flux de travail unifié
Ultralytics fournit une API cohérente pour toutes les tâches. Qu'il s'agisse de détection, de segmentation ou d'estimation de la pose, la syntaxe reste la même, ce qui réduit considérablement la courbe d'apprentissage.
Facilité d'utilisation avec Ultralytics
YOLOv8 peut être intégré dans un projet avec seulement quelques lignes de code. Le SDK Python gère automatiquement le chargement des données, l'augmentation et la configuration du pipeline de formation.
from ultralytics import YOLO
# Load a model
model = YOLO("yolov8n.pt") # load a pretrained model (recommended for training)
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
En revanche, si YOLOv6 est efficace, il nécessite souvent une configuration plus manuelle et une gestion des dépendances typiques des référentiels universitaires, ce qui peut ralentir le prototypage rapide et l'intégration de MLOps.
Cas d'utilisation idéaux
Quand choisir Ultralytics YOLOv8
- Des applications variées: Lorsque votre projet nécessite plus que de simples boîtes de délimitation, par exemple pour segmenter des objets ou estimer des points clés, les capacités multitâches de YOLOv8 sont indispensables.
- Déploiement en périphérie et dans le nuage: Grâce à ses modes d'exportation, YOLOv8 se déploie de manière transparente vers TFLite, ONNX, CoreML et TensorRT, couvrant ainsi tous les domaines, des téléphones mobiles aux serveurs en nuage.
- Développement rapide: Pour les équipes qui ont besoin d'itérer rapidement, la documentation complète et le support actif de la communauté minimisent les temps d'arrêt et de dépannage.
Quand choisir YOLOv6.0
- Matériel industriel spécifique: si votre environnement de déploiement est strictement contrôlé et utilise du matériel qui bénéficie spécifiquement des architectures Rep-Block (comme certaines configurations GPU , YOLOv6 peut offrir des gains de vitesse marginaux.
- Systèmes existants: Pour les pipelines existants déjà construits autour des formats d'entrée/sortie spécifiques de YOLOv6 et pour lesquels un remaniement n'est pas possible.
Conclusion
Alors que YOLOv6.0 reste un concurrent de taille dans le créneau spécifique de la détection d'objets industriels, Ultralytics YOLOv8 d'Ultralytics offre une solution plus complète, plus efficace et à l'épreuve du temps pour la grande majorité des projets de vision par ordinateur. Sa capacité à fournir une précision supérieure avec moins de paramètres, combinée à un écosystème florissant et à la prise en charge de multiples tâches de vision, en fait le choix recommandé pour les développeurs et les chercheurs.
Pour ceux qui souhaitent découvrir les toutes dernières technologies en matière de vision par ordinateur, n'hésitez pas à consulter les sites suivants YOLO11qui améliore encore l'efficacité et les performances établies par YOLOv8. En outre, des comparaisons avec des modèles basés sur des transformateurs tels que le RT-DETR peuvent fournir des informations supplémentaires sur les architectures de détection modernes.