YOLOv8 vs. YOLOv5 : une comparaison technique complète

Choisir la bonne architecture de vision par ordinateur est une étape cruciale dans la construction de pipelines d'apprentissage automatique robustes. Dans cette comparaison technique détaillée, nous explorons les différences entre deux des modèles les plus populaires de l'écosystème de vision par IA : YOLOv8 et YOLOv5. Les deux modèles ont été développés par Ultralytics et ont façonné de manière significative le paysage de la détection d'objets en temps réel, établissant les normes de l'industrie en termes de vitesse, de précision et de facilité d'utilisation.

Que tu déploies sur des appareils en périphérie (edge devices) ou que tu mettes à l'échelle l'inférence dans le cloud, comprendre les changements architecturaux, les mesures de performance et les méthodologies d'entraînement de ces modèles t'aidera à prendre une décision éclairée pour tes projets de vision par ordinateur.

Ultralytics YOLOv8 : La norme polyvalente

Sorti début 2023, YOLOv8 a représenté un changement architectural majeur par rapport à ses prédécesseurs. Il a été conçu dès le départ pour servir de cadre unifié capable de gérer nativement plusieurs tâches de vision, notamment la segmentation d'instances, la classification d'images et l'estimation de pose.

Architecture et méthodologies

YOLOv8 a introduit une tête de détection sans ancres (anchor-free), ce qui simplifie le processus d'entraînement en éliminant le besoin de configurer manuellement des boîtes d'ancrage en fonction de la distribution du jeu de données. Cela rend le modèle plus robuste lors de la généralisation à des jeux de données personnalisés et réduit le nombre de prédictions de boîtes, accélérant ainsi la Non-Maximum Suppression (NMS).

L'architecture comporte un module C2f (Cross-Stage Partial bottleneck avec deux convolutions), qui remplace le module C3 présent dans YOLOv5. Le module C2f améliore le flux de gradient et permet au modèle d'apprendre des représentations de caractéristiques plus riches sans augmentation significative du coût de calcul. De plus, YOLOv8 utilise une structure de tête découplée, séparant les tâches d'objectness, de classification et de régression, ce qui s'est avéré améliorer la vitesse de convergence et la précision.

Efficacité mémoire

Les modèles Ultralytics YOLO, y compris YOLOv8, sont optimisés pour une utilisation moindre de la mémoire CUDA pendant l'entraînement par rapport à de nombreuses alternatives basées sur les Transformer comme RT-DETR. Cela permet aux développeurs d'utiliser des tailles de batch plus importantes sur des GPU grand public standard comme la série NVIDIA RTX.

Forces et faiblesses

Points forts :

  • Une polyvalence inégalée sur de multiples tâches au-delà de la simple détection de boîtes englobantes (bounding box).
  • API Python rationalisée via le package ultralytics, rendant l'entraînement et l'exportation très intuitifs.
  • Une mean Average Precision (mAP) plus élevée sur toutes les variantes de taille par rapport à YOLOv5.

Points faibles :

  • La tête découplée et le module C2f introduisent une légère augmentation du nombre de paramètres et de FLOPs pour certaines variantes par rapport à leurs homologues exacts de YOLOv5.

En savoir plus sur YOLOv8

Ultralytics YOLOv5 : le pionnier agile

Introduit en 2020, YOLOv5 a apporté YOLO à l'écosystème PyTorch, améliorant considérablement l'accessibilité pour les développeurs. Il est rapidement devenu la norme industrielle pour des modèles de détection d'objets rapides, fiables et facilement déployables.

Architecture et méthodologies

YOLOv5 repose sur une architecture basée sur les ancres (anchor-based) et utilise un backbone CSPDarknet53 modifié. Bien que les approches basées sur les ancres nécessitent un regroupement minutieux des boîtes englobantes du jeu de données pour définir des ancres optimales avant l'entraînement, elles sont très efficaces pour des jeux de données spécifiques et bien définis.

YOLOv5 intègre le module C3, qui extrait efficacement les caractéristiques tout en maintenant une faible empreinte de paramètres. Sa fonction de perte repose fortement sur la perte d'Objectness combinée aux pertes de classification et de régression des boîtes englobantes pour guider le réseau vers des prédictions précises.

Forces et faiblesses

Points forts :

  • Extrêmement léger, rendant les variantes Nano (YOLOv5n) et Small (YOLOv5s) très adaptées aux déploiements d'Edge AI aux ressources limitées.
  • Vitesses d'inférence exceptionnellement rapides, surtout sur les CPU.
  • Un écosystème profondément établi avec de vastes tutoriels communautaires et des intégrations tierces.

Points faibles :

  • Nécessite une configuration des boîtes d'ancrage, ce qui peut compliquer la mise en place pour des jeux de données très variés ou personnalisés.
  • Précision globale (mAP) inférieure par rapport aux architectures modernes sans ancres comme YOLOv8 et YOLO26.

En savoir plus sur YOLOv5

Comparaison des performances

Lors de l'évaluation de ces modèles, atteindre un compromis favorable entre vitesse et précision est primordial. Le tableau ci-dessous présente les mesures de performance des deux architectures évaluées sur le jeu de données COCO. Les vitesses CPU ont été mesurées en utilisant ONNX, tandis que les vitesses GPU ont été testées en utilisant TensorRT.

Modèletaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
params
(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
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045,4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

Bien que YOLOv5 conserve un léger avantage en nombre de paramètres et en vitesse brute absolue pour sa variante Nano, YOLOv8 offre un bond massif en mAP sur toute la ligne, offrant un équilibre de performance beaucoup plus solide pour les scénarios de déploiement exigeants dans le monde réel.

Facilité d'utilisation et l'écosystème Ultralytics

Une caractéristique déterminante des modèles Ultralytics modernes est l'écosystème bien entretenu qui les entoure. La transition de YOLOv5 à YOLOv8 a apporté l'introduction du package pip unifié ultralytics, créant une expérience utilisateur hautement rationalisée.

Les développeurs peuvent gérer de manière transparente l'entraînement de modèle, la validation, la prédiction et l'exportation avec seulement quelques lignes de code Python, en contournant les scripts boilerplate complexes historiquement requis dans les projets d'apprentissage profond.

from ultralytics import YOLO

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

# Train the model on custom data efficiently
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, device=0)

# Export the model to ONNX for production deployment
path = model.export(format="onnx")

De plus, l'intégration avec des outils comme Ultralytics Platform simplifie la gestion des jeux de données, l'entraînement dans le cloud et le déploiement, garantissant un développement actif et un fort soutien de la communauté.

Cas d'utilisation idéaux

Quand choisir YOLOv5 : Si tu maintiens des systèmes hérités (legacy), que tu exécutes l'inférence sur des CPU sévèrement limités comme un Raspberry Pi, ou que tu travailles sur un projet où économiser chaque fraction de mégaoctet dans la taille du modèle est critique, YOLOv5 reste un cheval de bataille fiable.

Quand choisir YOLOv8 : Pour pratiquement tous les nouveaux projets commençant aujourd'hui, YOLOv8 est fortement recommandé par rapport à YOLOv5. Son architecture avancée gère sans effort le suivi complexe, les boîtes englobantes orientées (OBB) et la segmentation. Il est idéal pour les applications modernes allant de la robotique autonome à l'analyse d'images médicales et aux infrastructures de ville intelligente.

À la recherche de la toute dernière pointe de la technologie ?

Bien que YOLOv8 soit incroyablement performant, les développeurs cherchant la frontière absolue de la performance devraient considérer YOLO26. Sorti en 2026, il introduit plusieurs avancées révolutionnaires :

  • Conception de bout en bout sans NMS : Élimine le post-traitement NMS pour un déploiement plus rapide et plus simple, un concept pionnier dans YOLOv10.
  • Optimiseur MuSGD : Un hybride de SGD et Muon qui apporte les innovations d'entraînement des LLM à la vision par ordinateur, permettant un entraînement plus stable et une convergence plus rapide.
  • Inférence CPU jusqu'à 43 % plus rapide : Fortement optimisé pour les environnements de calcul en périphérie sans GPU dédiés.
  • Suppression du DFL : La Distribution Focal Loss a été supprimée pour une exportation simplifiée et une compatibilité améliorée avec les appareils en périphérie.
  • ProgLoss + STAL : Des fonctions de perte avancées qui entraînent des améliorations notables dans la reconnaissance de petits objets, ce qui est critique pour l'imagerie aérienne et l'IoT.

En tirant parti de la documentation complète et des outils fournis par Ultralytics, tu peux facilement déployer YOLOv8, ou explorer le YOLO26 de pointe, pour résoudre des défis visuels complexes avec une vitesse et une précision sans précédent. Pour un apprentissage ultérieur, pense à explorer nos guides sur le réglage des hyperparamètres et les pratiques de déploiement de modèles.

Commentaires