Passer au contenu

YOLOv6-3.0 vs YOLOv8 : Une comparaison technique complète

Le choix de l'architecture de détection d'objets optimale est une décision cruciale dans le développement de la vision par ordinateur, influençant tout, de la latence d'inférence à la flexibilité de déploiement. Ce guide fournit une analyse technique approfondie comparant YOLOv6-3.0, développé par Meituan, et Ultralytics YOLOv8, un modèle de pointe d'Ultralytics. Nous examinons leurs particularités architecturales, leurs mesures de performance et leur adéquation aux applications du monde réel pour vous aider à faire un choix éclairé.

Bien que les deux frameworks offrent des résultats impressionnants, YOLOv8 se distingue par une polyvalence inégalée, un écosystème centré sur le développeur et un équilibre supérieur entre vitesse et précision sur diverses plateformes matérielles.

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 est un framework de détection d'objets en une seule étape, conçu principalement pour les applications industrielles. En privilégiant les conceptions de réseau compatibles avec le matériel, il vise à maximiser le débit d'inférence sur les GPU dédiés, ce qui en fait un concurrent de taille pour les environnements où la latence est strictement limitée par la vitesse des chaînes de production.

Architecture et principales fonctionnalités

L'architecture de YOLOv6-3.0 est construite autour du concept de re-paramétrisation. Elle utilise un EfficientRep backbone et un Rep-PAN neck, qui permettent au réseau d'avoir des structures complexes pendant l'entraînement, mais se simplifient en couches convolutionnelles rationalisées pendant l'inférence. Cette "re-paramétrisation structurelle" aide à réduire la latence sans sacrifier la capacité d'extraction des caractéristiques.

De plus, YOLOv6-3.0 utilise une conception de tête découplée, séparant les tâches de classification et de régression, et intègre les stratégies d'attribution d'étiquettes SimOTA. Le framework met également l'accent sur l'apprentissage tenant compte de la quantification (QAT) pour faciliter le déploiement sur les appareils périphériques nécessitant une arithmétique de plus faible précision.

Points forts et faiblesses

Le modèle excelle dans les scénarios de fabrication industrielle où des GPU haut de gamme sont disponibles, offrant des vitesses d'inférence compétitives. L'accent mis sur la quantification facilite également le déploiement sur des accélérateurs matériels spécifiques. Cependant, YOLOv6 est principalement conçu pour la détection d'objets, sans prise en charge native et transparente des tâches de vision par ordinateur plus larges, telles que l'estimation de pose ou les boîtes englobantes orientées que l'on trouve dans les frameworks plus complets. De plus, l'écosystème est moins étendu, ce qui peut entraîner davantage de frictions lors de l'intégration avec des outils MLOps tiers ou de la recherche d'un soutien communautaire.

En savoir plus sur YOLOv6

Ultralytics YOLOv8

Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation : Ultralytics
Date : 2023-01-10
Arxiv : Aucun
GitHub : https://github.com/ultralytics/ultralytics
Docs : https://docs.ultralytics.com/models/yolov8/

Ultralytics YOLOv8 représente un bond en avant significatif dans la série YOLO, conçu non pas seulement comme un modèle, mais comme un cadre unifié pour l’IA pratique. Il redéfinit les performances de pointe (SOTA) en combinant l’efficacité architecturale avec une expérience utilisateur intuitive, rendant la vision par ordinateur avancée accessible aux chercheurs et aux développeurs.

Architecture et principales fonctionnalités

YOLOv8 introduit un mécanisme de détection sans ancres très efficace, qui élimine le besoin de calculs manuels des boîtes d'ancrage et améliore la généralisation sur divers ensembles de données. Son architecture comprend un nouveau backbone utilisant des modules C2f (connexions partielles cross-stage avec fusion), qui améliorent le flux de gradient et la richesse des caractéristiques tout en maintenant un faible encombrement.

La tête découplée dans YOLOv8 traite l'objectivité, la classification et la régression indépendamment, ce qui conduit à une plus grande précision de convergence. Il est crucial de noter que le modèle prend en charge un spectre complet de tâches—détection d'objets, segmentation d'instance, classification d'image, estimation de pose et boîtes englobantes orientées (OBB)—au sein d'un seul package python installable.

Pourquoi choisir YOLOv8 ?

  • Facilité d'utilisation : Avec une simple pip install ultralytics, les développeurs ont accès à une puissante API CLI et python. Cette approche simplifiée expérience utilisateur réduit le temps entre l'installation et le premier entraînement de quelques heures à quelques minutes.
  • Écosystème bien maintenu : Ultralytics fournit un écosystème robuste comprenant Ultralytics HUB pour la gestion des modèles, des discussions GitHub actives et des intégrations transparentes avec des outils tels que TensorBoard et MLflow.
  • Équilibre des performances : Comme l'illustrent les mesures ci-dessous, YOLOv8 atteint un mAP supérieur avec moins de paramètres et de FLOP, offrant un compromis optimal pour le déploiement en temps réel à la fois sur les appareils périphériques et les serveurs en nuage.
  • Polyvalence : Contrairement à ses concurrents qui se concentrent uniquement sur la détection, YOLOv8 gère nativement la segmentation, le suivi et la classification, ce qui vous permet de passer d’une tâche à l’autre sans avoir à apprendre un nouveau framework.

En savoir plus sur YOLOv8

Comparaison des performances

Le tableau suivant présente une comparaison détaillée des métriques de performance sur le jeu de données COCO val2017. Les points forts indiquent les meilleures performances dans chaque catégorie.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv6-3.0n64037.5-1.174.711.4
YOLOv6-3.0s64045.0-2.6618.545.3
YOLOv6-3.0m64050.0-5.2834.985.8
YOLOv6-3.0l64052.8-8.9559.6150.7
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Analyse critique

Les données révèlent des avantages distincts pour l'architecture Ultralytics :

  1. Efficacité et utilisation des ressources : YOLOv8 utilise systématiquement beaucoup moins de paramètres et de FLOP pour atteindre une précision comparable ou supérieure. Par exemple, YOLOv8s correspond à la précision de YOLOv6-3.0s (environ 45 mAP), mais nécessite environ 40 % moins de paramètres et environ 37 % moins de FLOP. Cette réduction se traduit directement par une consommation de mémoire plus faible et des temps d’entraînement plus rapides.
  2. Leadership en matière de précision : Dans le haut du spectre, les modèles YOLOv8 (M, L, X) repoussent les limites de la précision, YOLOv8x atteignant un mAP de 53,9, surpassant les plus grandes variantes YOLOv6 répertoriées.
  3. Inférence CPU : YOLOv8 fournit des benchmarks transparents pour l’inférence CPU via ONNX, démontrant sa viabilité pour le déploiement sur du matériel standard sans accélérateurs spécialisés. Ceci est crucial pour les applications évolutives dans la logistique ou la vente au détail où les GPU peuvent ne pas toujours être disponibles.

Efficacité de la mémoire

L’architecture efficace de YOLOv8 réduit les besoins en mémoire GPU pendant l’entraînement par rapport à de nombreux modèles basés sur des transformateurs ou à des réseaux convolutionnels plus lourds. Cela permet aux développeurs d’entraîner des tailles de lots plus importantes ou d’utiliser des résolutions plus élevées sur du matériel grand public.

Cas d'utilisation et applications

Le choix entre ces modèles dépend souvent de l'environnement de déploiement spécifique et des exigences de la tâche.

Où YOLOv8 excelle

YOLOv8 est le choix recommandé pour la grande majorité des projets de vision par ordinateur en raison de son adaptabilité :

  • Edge AI & IoT : En raison de son faible nombre de paramètres et de sa grande efficacité, YOLOv8 est idéal pour les appareils tels que le Raspberry Pi ou NVIDIA Jetson.
  • Systèmes multi-tâches : Les projets nécessitant le suivi d'objets (par exemple, la surveillance du trafic) ou la segmentation (par exemple, l'imagerie médicale) bénéficient du codebase unifié de YOLOv8.
  • Prototypage rapide : La facilité d’utilisation et les nombreux poids pré-entraînés permettent aux startups et aux équipes de recherche d’itérer rapidement.
  • Solutions d'entreprise : Grâce à l'intégration dans des plateformes telles que Roboflow et à la prise en charge de formats tels que CoreML et TFLite, YOLOv8 évolue de manière transparente du prototype à la production.

Où YOLOv6-3.0 s'intègre

YOLOv6-3.0 reste une option intéressante pour des scénarios industriels de niche :

  • Lignes GPU dédiées : Dans les usines dotées de pipelines établis utilisant des GPU NVIDIA T4/A10 exécutant TensorRT, les optimisations matérielles spécifiques de YOLOv6 peuvent permettre de gagner en latence de manière marginale.
  • Intégration existante : Pour les systèmes déjà construits autour des backbones de style RepVGG, l’intégration de YOLOv6 pourrait nécessiter moins d’ajustements architecturaux.

Entraînement et expérience développeur

L'un des différenciateurs les plus importants est l'expérience développeur. Ultralytics privilégie une approche low-code et haute fonctionnalité.

Entraînement simplifié avec YOLOv8

L'entraînement d'un modèle YOLOv8 est simple. Le framework gère automatiquement l'augmentation des données, l'évolution des hyperparamètres et le traçage.

from ultralytics import YOLO

# Load a model
model = YOLO("yolov8n.pt")  # load a pretrained model

# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference
results = model("path/to/image.jpg")

En revanche, bien que YOLOv6 propose des scripts pour la formation, cela implique souvent une configuration plus manuelle des variables d'environnement et des dépendances. L'intégration de YOLOv8 avec Ultralytics HUB simplifie davantage cela en offrant une gestion des ensembles de données basée sur le web et une formation de modèle en un clic.

Support de l'écosystème

La communauté Ultralytics est l'une des plus actives dans le domaine de l'IA. Que vous ayez besoin d'aide pour les ensembles de données personnalisés ou les options d'exportation avancées, des ressources sont facilement disponibles via des documents complets et des forums communautaires.

Conclusion

Bien que YOLOv6-3.0 offre une solution robuste pour des tâches spécifiques de détection industrielle basées sur GPU, Ultralytics YOLOv8 se distingue comme la solution supérieure et globale pour la vision par ordinateur moderne. Son efficacité architecturale offre une plus grande précision par paramètre, et sa polyvalence dans les tâches de détection, de segmentation et de classification la rend pérenne. Associé à un écosystème inégalé et à une facilité d'utilisation, YOLOv8 permet aux développeurs de créer, de déployer et de faire évoluer des solutions d'IA en toute confiance.

Explorer d'autres modèles

Pour ceux qui s'intéressent au paysage plus large de la detect d'objets, Ultralytics prend en charge un large éventail de modèles. Vous pouvez comparer YOLOv8 à l'ancien YOLOv5 pour comprendre l'évolution de l'architecture, ou explorer le YOLO11 de pointe pour ce qui se fait de plus récent en matière de performances. De plus, pour les approches basées sur les transformateurs, le modèle RT-DETR offre des avantages uniques en matière de detect en temps réel.


Commentaires