YOLOv5 vs YOLOv8: évolution de la détection d'objets en temps réel
L'évolution de la détection d'objets a été largement influencée par la famille de modèles YOLO (You Only Look Once). Développée par UltralyticsYOLOv5 et YOLOv8 représentent des moments cruciaux dans l'histoire de la vision par ordinateur. Alors que YOLOv5 s'est imposé comme l'architecture de détection la plus appréciée et la plus utilisée au monde en raison de sa simplicité et de sa rapidité, YOLOv8 a introduit un cadre unifié avec des innovations architecturales de pointe pour prendre en charge un éventail plus large de tâches de vision.
Le choix entre ces deux puissances dépend des contraintes spécifiques de votre projet, de la disponibilité du matériel et de la nécessité de disposer de capacités multitâches. Ce guide propose une analyse technique approfondie pour aider les ingénieurs et les chercheurs en vision artificielle à prendre la bonne décision.
YOLOv5: la norme éprouvée de l'industrie
Auteur : Glenn Jocher
Organisation :Ultralytics
Date : 2020-06-26
GitHubyolov5
Docsyolov5
Sorti à la mi-2020, YOLOv5 a révolutionné l'accessibilité de la détection d'objets. Il s'agit du premier modèle YOLO implémenté nativement dans PyTorchs'éloignant ainsi du cadre Darknet utilisé par ses prédécesseurs. Cette évolution a permis aux développeurs d'entraîner, de déployer et d'expérimenter des ensembles de données personnalisés avec une facilité déconcertante.
YOLOv5 utilise un réseau de base CSPDarknet et est un détecteur basé sur les ancres. Cela signifie qu'il s'appuie sur des boîtes d'ancrage prédéfinies pour prédire l'emplacement des objets. Bien que cette approche nécessite un réglage des hyperparamètres pour des performances optimales sur des ensembles de données uniques, elle reste très efficace. Son architecture met l'accent sur la vitesse d'inférence et la faible capacité de mémoire, ce qui en fait un favori pour le déploiement sur du matériel à ressources limitées comme le Raspberry Pi et les premières générations de NVIDIA Jetson.
Principaux atouts de YOLOv5
- Stabilité héritée : Des années d'utilisation active dans des environnements de production en ont fait l'un des modèles de vision les plus stables et les plus exempts de bogues.
- Optimisation de la périphérie : L'architecture plus simple de YOLOv5 peut parfois offrir une latence d'inférence plus rapide, en particulier sur les anciens processeurs et les processeurs mobiles spécifiques.
- Vaste écosystème : Une communauté massive de tutoriels, d'intégrations tierces et de forums de discussion facilite le dépannage et le développement.
YOLOv8: la centrale multi-tâches
Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation :Ultralytics
Date : 2023-01-10
GitHubultralytics
Docsyolov8
YOLOv8 représente une avancée significative, conçu non seulement comme un détecteur d'objets mais aussi comme un cadre complet pour la segmentation d'images, l'estimation de la pose, la classification et la détection de boîtes de délimitation orientées (OBB).
Sur le plan architectural, YOLOv8 passe à une conception sans ancrage avec une tête découplée, séparant les tâches d'objectivation, de classification et de régression. Il introduit également le module C2f (Cross Stage Partial BottleNeck with 2 convolutions), qui remplace le module C3 de YOLOv5. Le module C2f améliore le flux de gradient et la fusion des caractéristiques, ce qui permet au modèle d'apprendre des modèles plus complexes sans augmentation massive des coûts de calcul.
Principaux atouts de YOLOv8
- Précision de pointe : Obtention systématique de scores mAP (Mean Average Precision) plus élevés sur les ensembles de données COCO et personnalisés par rapport à YOLOv5.
- Détection sans ancrage : Élimine la nécessité de calculer ou d'ajuster les boîtes d'ancrage, ce qui simplifie le pipeline d'apprentissage et améliore la généralisation sur les objets présentant des rapports d'aspect inhabituels.
- Polyvalence : La possibilité de passer de la détection à la segmentation et à l'estimation de la pose à l'aide de la même API réduit considérablement le temps de développement des projets complexes.
Approfondissement technique : Architecture et performances
Le passage de YOLOv5 à YOLOv8 est marqué par plusieurs changements "sous le capot" qui sont à l'origine des gains de performance.
Changements architecturaux
La différence la plus notable concerne la tête de détection. YOLOv5 utilise une tête couplée où la classification et la localisation partagent des caractéristiques. YOLOv8 utilise une tête découplée, permettant au réseau d'ajuster les poids indépendamment pour identifier ce qu'est un objet par rapport à l'endroit où il se trouve. Cela conduit généralement à une meilleure convergence et à une plus grande précision.
En outre, l'évolution de l'épine dorsale de C3 à C2f permet à YOLOv8 de capturer des informations de gradient plus riches. Bien que cela rende l'architecture légèrement plus complexe, Ultralytics a optimisé la mise en œuvre pour s'assurer que l'efficacité de la formation reste élevée.
Mesures de performance
Lorsque l'on compare les modèles sur l'ensemble de donnéesCOCO standard, YOLOv8 fait preuve d'un meilleur rapport précision/calcul.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| 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 |
Tel qu'illustré, YOLOv8n (Nano) atteint un mAP de 37,3, égalant pratiquement le YOLOv5s (Small), plus grand, qui obtient un score de 37,4, mais avec beaucoup moins de FLOP. Cette efficacité est essentielle pour les applications modernes d'intelligence artificielle.
Méthodologies de formation et écosystème
L'une des caractéristiques des modèles Ultralytics est l'accent mis sur l'expérience des développeurs. Les deux modèles bénéficient de l'écosystème complet d'Ultralytics , mais leur accès est légèrement différent.
Facilité d'utilisation et API
YOLOv8 a introduit le ultralytics Python , un CLI unifié et une interface Python . Ce paquetage gère efficacement les dépendances et fournit une API cohérente pour les applications de formation, validation, et prédiction. Il est intéressant de noter que les ultralytics peut également charger et utiliser des modèles YOLOv5 , comblant ainsi le fossé entre les générations.
from ultralytics import YOLO
# Load a YOLOv8 model (Official)
model_v8 = YOLO("yolov8n.pt")
# Load a YOLOv5 model (Legacy support via Ultralytics package)
model_v5 = YOLO("yolov5nu.pt")
# Training is identical for both
results = model_v8.train(data="coco8.yaml", epochs=100)
Mémoire et efficacité
Par rapport aux modèles basés sur des transformateurs tels que RT-DETRYOLOv5 et YOLOv8 sont exceptionnellement économes en mémoire. Les transformateurs nécessitent souvent une mémoire CUDA importante et des temps d'apprentissage plus longs pour converger. En revanche, les modèlesYOLO 'Ultralytics sont optimisés pour fonctionner sur des GPU et même des CPU grand public, démocratisant ainsi l'accès à l'IA haute performance.
Écosystème intégré
Les deux modèles sont entièrement compatibles avec Ultralytics HUB, ce qui permet une gestion transparente des ensembles de données, une visualisation des modèles et un déploiement en un clic sur des appareils réels.
Cas d'utilisation idéaux
Le choix du bon modèle dépend souvent de l'environnement spécifique dans lequel le modèle sera déployé.
Quand choisir YOLOv5
YOLOv5 reste un excellent choix pour :
- Systèmes existants : Mise à jour de systèmes existants dont l'infrastructure est déjà construite autour de l'architecture YOLOv5 .
- Matériel Edge spécifique : Certains pilotes NPU (Neural Processing Unit) plus anciens ont une prise en charge hautement optimisée spécifiquement pour l'architecture YOLOv5 .
- Latence ultra-faible : Dans les scénarios où chaque milliseconde d'inférence du CPU compte, la tête couplée plus simple de YOLOv5n peut parfois offrir un avantage de vitesse brute par rapport à v8n.
Quand choisir YOLOv8
YOLOv8 est le choix recommandé pour :
- Nouveaux développements : Si vous commencez un projet aujourd'hui, YOLOv8 (ou la version plus récente YOLO11) offre une meilleure sécurité pour l'avenir.
- Tâches complexes : Applications nécessitant la segmentation d'instances (par exemple, analyse de cellules médicales) ou la détection de points clés (par exemple, analyse sportive).
- Exigences de précision élevées : Scénarios dans lesquels l'absence de détection est critique, comme dans les systèmes de sécurité des véhicules autonomes ou la surveillance de la sécurité.
Conclusion
YOLOv5 et YOLOv8 témoignent de l'engagement d'Ultralytics en faveur de l'innovation open-source. YOLOv5 reste une légende dans le domaine - fiable, rapide et largement soutenu. En revanche, YOLOv5 reste une légende dans le domaine - fiable, rapide et largement supporté, YOLOv8 améliore cette base grâce à des avancées architecturales qui offrent une plus grande précision et une plus grande polyvalence sans sacrifier la facilité d'utilisation attendue par les développeurs.
Pour la majorité des nouveaux projets, nous recommandons de tirer parti des avancées de YOLOv8 ou de passer à la dernière version de YOLO11qui affine encore ces concepts pour un équilibre parfait entre vitesse et précision.
Explorer d'autres modèles
Si vous souhaitez découvrir les toutes dernières technologies de détection, n'hésitez pas à vous renseigner :
- YOLO11: La dernière évolution, qui offre un traitement plus rapide et une meilleure extraction des caractéristiques par rapport à YOLOv8.
- RT-DETR: Un modèle basé sur un transformateur qui offre une grande précision pour les applications en temps réel, idéal lorsque la mémoire du GPU n'est pas une contrainte.