Passer au contenu

YOLOv8 vs YOLOv6-3.0 : une comparaison technique

Le choix du modèle de détection d'objets optimal est une étape cruciale dans la construction d'applications de vision par ordinateur robustes. Cette comparaison détaillée explore les différences architecturales, les métriques de performance et les cas d'utilisation idéaux pour Ultralytics YOLOv8 et YOLOv6-3.0. Bien que les deux modèles soient apparus à 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 prennent en charge.

Ultralytics YOLOv8

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

Ultralytics YOLOv8 représente un bond en avant significatif 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 par ordinateur au-delà de la simple détection, y compris la segmentation d’instance, l’estimation de 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 ancres, ce qui simplifie la tête du modèle et réduit le nombre d'hyperparamètres requis pour l'entraînement. Cette approche améliore la généralisation à travers différentes formes et tailles d'objets. L'architecture comprend un backbone et un neck à la pointe de la technologie 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

  • Polyvalence inégalée : Contrairement à de nombreux concurrents, YOLOv8 ne se limite pas à la detect d’objets. Il prend en charge nativement la segment d’instance, la classify d’images, l’estimation de pose et les tâches de boîtes englobantes orientées (OBB) dans une seule base de code.
  • Efficacité supérieure : comme le soulignent les benchmarks de performance, YOLOv8 atteint une plus grande précision (mAP) avec moins de paramètres et de FLOP. Cela se traduit par des besoins de mémoire plus faibles pendant l’entraînement et l’inférence, un avantage essentiel par rapport aux modèles plus lourds basés sur les transformateurs.
  • Facilité d'utilisation : Le modèle est intégré dans une API Python et une interface de ligne de commande (CLI) simplifiées, permettant aux utilisateurs d'entraîner, de valider et de déployer des modèles avec un minimum de code.
  • Écosystème robuste : Soutenu par Ultralytics, YOLOv8 bénéficie de mises à jour continues, d’une documentation complète et d’une communauté dynamique. Cela garantit la viabilité à long terme et la prise en charge des déploiements en entreprise.

Faiblesses

  • Détection de petits objets : Bien que très performants, les détecteurs à une étape comme YOLOv8 peuvent parfois avoir des difficultés avec les objets extrêmement petits ou occlus par rapport aux détecteurs à deux étapes spécialisés et coûteux en calcul.

En savoir plus sur YOLOv8

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 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 la vitesse et la 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 tenant compte du matériel, utilisant des structures Rep-Block (reparamétrisation) qui permettent au réseau d'avoir des branches complexes pendant l'entraînement, mais se replient dans une structure plus simple et plus rapide pendant l'inférence. Elle utilise également une stratégie d'auto-distillation pour augmenter la précision sans entraîner de coûts d'inférence supplémentaires.

Points forts

  • Vitesse d'inférence du GPU : Le modèle est hautement optimisé pour les performances du GPU, en particulier sur le matériel NVIDIA, ce qui en fait un candidat idéal 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 comme YOLOv6Lite, le framework offre des solutions adaptées aux terminaux mobiles et basés sur le CPU.

Faiblesses

  • Portée de tâche limitée : YOLOv6 est principalement axé sur la détection d'objets. Il lui manque le support natif et prêt à l'emploi pour la segmentation, l'estimation de pose et le tracking 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 FLOPs, ce qui entraîne une surcharge de calcul plus importante pendant l'entraînement.
  • Communauté et maintenance : Bien qu’il soit open source, l’écosystème est moins actif qu’Ultralytics, ce qui peut entraîner une résolution plus lente des problèmes et moins de ressources fournies par la communauté.

En savoir plus sur YOLOv6

Comparaison des performances

Le tableau suivant présente une comparaison directe des indicateurs de performance sur le jeu de données COCO. Ces données soulignent l'efficacité d'Ultralytics YOLOv8, qui offre constamment une précision moyenne (mAP) élevée avec une complexité de modèle réduite.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
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
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

Analyse des métriques

  • Efficacité : YOLOv8 démontre une efficacité de paramétrage supérieure. Par exemple, YOLOv8s atteint un mAP compétitif de 44,9 avec seulement 11,2 millions de paramètres, tandis que YOLOv6-3.0s nécessite 18,5 millions de paramètres, soit 65 % de plus, pour atteindre un mAP pratiquement identique de 45,0. Cela se traduit par des coûts de stockage inférieurs et des mises à jour plus rapides sur les appareils edge.
  • Charge de calcul : De même, en termes de FLOPs (opérations en virgule flottante), YOLOv8m fonctionne à 78,9 milliards de FLOPs comparativement à 85,8 milliards pour YOLOv6-3.0m, ce qui rend le modèle Ultralytics plus léger en termes de calcul tout en atteignant un mAP plus élevé (50,2 contre 50,0).
  • Vitesse : Bien que YOLOv6-3.0 affiche des vitesses d’inférence brutes légèrement plus rapides sur les GPU T4 en raison de sa conception spécialisée tenant compte du matériel, YOLOv8 offre d’excellentes performances du CPU via ONNX, ce qui est essentiel pour les déploiements où les GPU ne sont pas disponibles.

Entraînement et convivialité

L'une des principales différences entre ces modèles est l'expérience développeur. Ultralytics privilégie un flux de travail sans friction, ce qui est évident dans la façon dont les modèles sont entraînés et déployés.

Flux de travail unifié

Ultralytics fournit une API cohérente pour toutes les tâches. Que vous effectuiez de la détection, de la segmentation ou de l'estimation de 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 d'entraînement.

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, bien que YOLOv6 soit efficace, il nécessite souvent plus de configuration manuelle et de gestion des dépendances, ce qui est typique des référentiels académiques, ce qui peut ralentir le prototypage rapide et l'intégration MLOps.

Cas d'utilisation idéaux

Quand choisir Ultralytics YOLOv8

  • Applications diverses : Lorsque votre projet nécessite plus que de simples boîtes englobantes, comme la segmentation d’objets ou l’estimation de points clés, les capacités multitâches de YOLOv8 sont indispensables.
  • Déploiement en périphérie et dans le cloud : Grâce à ses modes d’exportation, YOLOv8 se déploie de manière transparente sur TFLite, ONNX, CoreML et TensorRT, couvrant tous les appareils, des téléphones mobiles aux serveurs cloud.
  • 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-3.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 où la refactorisation n’est pas réalisable.

Conclusion

Alors que YOLOv6-3.0 reste un concurrent de taille dans le créneau spécifique de la détection d'objets industriels, Ultralytics YOLOv8 offre une solution plus complète, efficace et à l'épreuve du temps pour la grande majorité des projets de vision par ordinateur. Sa capacité à offrir une précision supérieure avec moins de paramètres, combinée à un écosystème florissant et à la prise en charge de plusieurs tâches de vision, en fait le choix recommandé pour les développeurs et les chercheurs.

Pour ceux qui cherchent à explorer les toutes dernières technologies en matière de vision par ordinateur, pensez à consulter YOLO11, qui affine encore l'efficacité et les performances établies par YOLOv8. De plus, les comparaisons avec des modèles basés sur des transformateurs comme RT-DETR peuvent fournir des informations supplémentaires sur les architectures de détection modernes.


Commentaires