Passer au contenu

YOLOv8 vs. YOLO: une comparaison technique complète

Dans le paysage en évolution rapide de la vision par ordinateur, le choix du bon modèle de détection d'objets est essentiel pour la réussite du projet. Cette comparaison examine les nuances techniques entre Ultralytics YOLOv8 et YOLO, deux architectures de premier plan qui ont eu un impact significatif dans ce domaine. Bien que les deux modèles repoussent les limites de la vitesse et de la précision, ils répondent à des besoins et à des bases d'utilisateurs différents, allant de la recherche universitaire au déploiement en production.

Résumé

YOLOv8développé par UltralyticsYOLO , développé par Ultralytics, représente une évolution polyvalente et centrée sur l'utilisateur dans la famille YOLO . Lancé au début de l'année 2023, il donne la priorité à un cadre unifié prenant en charge de multiples tâches - détection, segmentation, classification, estimation de la pose et OBB - soutenu par un écosystème robuste et bien entretenu.

YOLO, lancé par Alibaba Group fin 2022, se concentre fortement sur les innovations architecturales dérivées de la recherche d'architecture neuronale (NAS) et des techniques avancées de fusion des caractéristiques. Elle est conçue principalement pour la détection d'objets à haut débit sur les GPU.

Innovations architecturales

Les principales différences entre ces deux modèles résident dans leur philosophie de conception. YOLOv8 met l'accent sur la facilité d'utilisation et la généralisation, tandis que YOLO vise l'optimisation architecturale pour des mesures de performance spécifiques.

Ultralytics YOLOv8: raffiné et unifié

YOLOv8 s'appuie sur le succès de ses prédécesseurs en introduisant une tête de détection sans ancrage à la pointe de la technologie. Cette tête découplée traite les tâches d'objectivité, de classification et de régression de manière indépendante, ce qui améliore la vitesse de convergence et la précision.

Les principales caractéristiques architecturales sont les suivantes

  • Module C2f : Remplaçant le module C3, le bloc C2f (Cross-Stage Partial with 2 bottlenecks) améliore le flux de gradient et la représentation des caractéristiques tout en conservant une empreinte légère.
  • Conception sans ancrage : L'élimination du besoin de boîtes d'ancrage prédéfinies réduit le nombre d'hyperparamètres, ce qui simplifie le processus d'apprentissage et améliore la généralisation dans divers ensembles de données.
  • Augmentation des données Mosaic : Un pipeline optimisé qui améliore la capacité du modèle à detect objets dans des scènes complexes et à différentes échelles.

En savoir plus sur YOLOv8

YOLO: Optimisation basée sur la recherche

YOLO ("Discovery, Adventure, Momentum, and Outlook") intègre plusieurs concepts de recherche avancée afin de tirer le maximum de performances de l'architecture.

Les principales technologies sont les suivantes :

  • MAE-NAS Backbone : Il utilise la recherche d'architecture neuronale (NAS) pour découvrir automatiquement une structure dorsale efficace, en optimisant le compromis entre la latence et la précision.
  • RepGFPN Neck : Le réseau efficace RepGFPN (Generalized Feature Pyramid Network) améliore la fusion des caractéristiques à différentes échelles, ce qui est essentiel pour détecter des objets de différentes tailles.
  • ZeroHead : une conception de tête légère qui réduit la complexité de calcul (FLOPs) sans sacrifier de manière significative les performances de détection.
  • AlignedOTA : une stratégie dynamique d'attribution d'étiquettes qui résout le problème de désalignement entre les tâches de classification et de régression pendant la formation.

En savoir plus sur DAMO-YOLO

Mesures de performance

La performance est souvent le facteur décisif pour les ingénieurs. Le tableau ci-dessous présente une comparaison détaillée des principaux paramètres de l'ensemble de donnéesCOCO .

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
DAMO-YOLOt64042.0-2.328.518.1
DAMO-YOLOs64046.0-3.4516.337.8
DAMO-YOLOm64049.2-5.0928.261.8
DAMO-YOLOl64050.8-7.1842.197.3

Analyse

  • Une précision de premier ordre : La plus grande YOLOv8x atteint la plus grande précision avec 53,9 mAP, dépassant ainsi la plus grande variante YOLO . Cela fait de YOLOv8 le choix privilégié pour les applications où la précision est primordiale, comme l'analyse d'images médicales ou les systèmes de sécurité critiques.
  • Vitesse d'inférence :YOLOv8n (Nano) domine en termes de vitesse, avec seulement 1,47 ms sur le GPU T4 et 80,4 ms sur le CPU. Cette vitesse exceptionnelle est essentielle pour l'inférence en temps réel sur les appareils périphériques.
  • Efficacité : YOLOv8 fait preuve d'une efficacité supérieure en matière de paramètres. Par exemple, YOLOv8n n'utilise que 3,2 millions de paramètres, contre 8,5 millions pour DAMO-YOLOt, tout en offrant des performances très compétitives. Cette empreinte mémoire réduite est cruciale pour le déploiement sur du matériel à ressources limitées comme le Raspberry Pi.
  • Performance de lCPU : Ultralytics fournit des benchmarks CPU transparents, alors que YOLO ne dispose pas de données CPU officielles. Pour de nombreuses entreprises qui n'ont pas accès à des GPU dédiés, la performance CPU prouvée de YOLOv8 est un avantage significatif.

Flexibilité du déploiement

Les modèles YOLOv8 peuvent être facilement exportés vers différents formats, notamment ONNX, TensorRT, CoreML et TFLite , à l'aide de la commande yolo export commande. Cette commande déploiement du modèle garantit une intégration transparente dans divers environnements de production.

Facilité d'utilisation et écosystème

L'écart entre un modèle de recherche et un outil de production est souvent défini par son écosystème et sa facilité d'utilisation.

Avantage de l'écosystème Ultralytics

YOLOv8 n'est pas un simple modèle, il fait partie d'une plateforme complète. L'écosystème Ultralytics fournit :

  • API simple : Une interfacePython unifiée permet aux développeurs d'entraîner, de valider et de déployer des modèles avec moins de cinq lignes de code.
  • Documentation complète : Des guides détaillés, des didacticiels et un glossaire aident les utilisateurs à s'y retrouver dans les concepts complexes de la vision par ordinateur.
  • Soutien de la communauté : Une communauté active sur GitHub et Discord garantit la résolution rapide des problèmes.
  • Intégrations : Prise en charge native d'outils tels que Weights & Biases, Cometet Roboflow rationalise le pipeline MLOps.

Facilité d'utilisation de YOLO

YOLO est avant tout un référentiel de recherche. Bien qu'il offre une technologie impressionnante, il nécessite une courbe d'apprentissage plus raide. Les utilisateurs doivent souvent configurer manuellement des environnements et naviguer dans des bases de code complexes pour adapter le modèle à des ensembles de données personnalisés. Il ne dispose pas du support multi-tâches étendu (segmentation, pose, etc.) que l'on trouve dans le cadre Ultralytics .

Cas d'utilisation et applications

Scénarios idéaux pour YOLOv8

  • Systèmes de vision multitâches : Projets nécessitant simultanément la détection d'objets, la segmentation d'instances et l'estimation de la pose.
  • Edge AI : déploiements sur des appareils tels que les NVIDIA Jetson ou les téléphones mobiles où l'efficacité de la mémoire et la faible latence sont essentielles.
  • Prototypage rapide : Startups et équipes de R&D qui ont besoin d'itérer rapidement de la collecte de données au déploiement du modèle.
  • Automatisation industrielle : Lignes de fabrication utilisant l'inspection de la qualité où la fiabilité et les intégrations standard sont nécessaires.

Scénarios idéaux pour YOLO

  • ServeursGPU: Services en nuage à haut débit où des lots massifs d'images sont traités sur de puissants GPU.
  • Recherche universitaire : Chercheurs étudiant l'efficacité des techniques NAS et de distillation dans les architectures de détection d'objets.

Exemple de formation : YOLOv8

Découvrez la simplicité de l'API Ultralytics . L'extrait de code suivant montre comment charger un modèle YOLOv8 pré-entraîné et l'affiner sur un ensemble de données personnalisé.

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on your custom data
# The data argument points to a YAML file describing your dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

Ce flux de travail simple contraste avec la configuration plus lourde généralement requise pour les modèles orientés vers la recherche tels que YOLO.

Conclusion

Ces deux architectures représentent des avancées significatives dans le domaine de la vision par ordinateur. YOLO introduit des innovations intéressantes telles que ZeroHead et MAE-NAS, ce qui en fait un concurrent de taille pour les tâches GPU spécifiques à haute performance.

Cependant, pour la grande majorité des développeurs et des organisations, Ultralytics YOLOv8 reste le meilleur choix. Sa polyvalence inégalée, sa documentation complète et son écosystème dynamique réduisent les difficultés liées à l'adoption de l'IA. Qu'il s'agisse d'optimiser l'estimation de la vitesse sur une autoroute ou d'effectuer une segmentation granulaire des tissus dans un laboratoire, YOLOv8 fournit les performances équilibrées et l'outillage nécessaire pour mettre votre solution en production de manière efficace.

Explorer d'autres modèles

Comparer les modèles est le meilleur moyen de trouver l'outil adapté à vos besoins spécifiques. Consultez ces autres comparaisons :


Commentaires