YOLO YOLOv8: évolution architecturale dans la détection d'objets
La recherche de la détection d'objets en temps réel a donné lieu à des innovations importantes dans la conception des réseaux neuronaux. Deux architectures de premier plan ont façonné ce paysage :YOLO, développée par l'équipe de recherche d'Alibaba, et YOLOv8, créée par Ultralytics. Cette comparaison explore les différences techniques entre ces modèles, en examinant leurs stratégies d'entraînement, leur efficacité architecturale et leur adéquation au déploiement.
DAMO-YOLO
Auteurs : Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang et Xiuyu Sun
Organisation : Alibaba Group
Date : 23 novembre 2022
Arxiv : https://arxiv.org/abs/2211.15444v2
GitHub : YOLO
YOLOv8
Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation : Ultralytics
Date : 10/01/2023
GitHub : ultralytics
Documentation : yolov8
Philosophies architecturales
La différence fondamentale entre ces deux modèles réside dans leur origine conceptuelle.YOLO fortement sur des stratégies de recherche automatisées, tandis que YOLOv8 la conception architecturale manuelle grâce à des tests empiriques approfondis.
YOLO: Recherche d'architecture neuronale (NAS)
YOLO une approche technologique appelée MAE-NAS (Method-Automated Efficiency Neural Architecture Search, recherche automatisée d'architecture neuronale efficace). Au lieu de concevoir manuellement des blocs, les auteurs ont utilisé la recherche d'architecture neuronale pour découvrir une structure efficace sous des contraintes de latence spécifiques.
Les principaux éléments architecturaux comprennent :
- MAE-NAS Backbone : une structure optimisée automatiquement pour équilibrer la précision de détection et la vitesse d'inférence.
- RepGFPN efficace : un réseau pyramidal généralisé (FPN) qui utilise la reparamétrisation pour améliorer la fusion des caractéristiques sans augmenter le coût de l'inférence.
- ZeroHead : une tête de détection légère conçue pour réduire la charge de calcul sur les couches de sortie finales.
- 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.
YOLOv8: conception manuelle affinée
YOLOv8 sur l'héritage de la YOLO et introduit le module C2f (Cross-Stage Partial Bottleneck avec deux convolutions). Ce module est conçu pour améliorer les informations de flux de gradient, permettant au réseau d'apprendre des caractéristiques plus complexes tout en restant léger.
Les principales caractéristiques architecturales sont les suivantes :
- Détection sans ancrage : YOLOv8 les boîtes d'ancrage et prédit directement les centres des objets. Cela simplifie le NMS et réduit le nombre d'hyperparamètres que les utilisateurs doivent régler.
- Tête découplée : elle sépare les branches de classification et de régression, permettant à chacune de converger plus efficacement.
- Augmentation par mosaïque : technique d'entraînement avancée qui combine quatre images en une seule, forçant le modèle à apprendre l'invariance de contexte et d'échelle.
Mesures de performance
Le tableau suivant compare les performances deYOLO YOLOv8 l'COCO . Alors queYOLO mAP impressionnant mAP une distillation intensive, YOLOv8 offre YOLOv8 des vitesses d'inférence supérieures et une complexité de déploiement moindre.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| DAMO-YOLOt | 640 | 42.0 | - | 2.32 | 8.5 | 18.1 |
| DAMO-YOLOs | 640 | 46.0 | - | 3.45 | 16.3 | 37.8 |
| DAMO-YOLOm | 640 | 49.2 | - | 5.09 | 28.2 | 61.8 |
| DAMO-YOLOl | 640 | 50.8 | - | 7.18 | 42.1 | 97.3 |
| 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 |
Efficacité et complexité de la formation
Une distinction essentielle pour les développeurs réside dans le pipeline de formation.YOLO une stratégie de distillation sophistiquée. Pour obtenir des résultats de premier ordre, un grand modèle « enseignant » doit d'abord être formé afin de guider les modèles « élèves » plus petits. Bien que cela permette d'obtenir une grande précision, cela complique considérablement le flux de travail de formation, augmente les besoins GPU et allonge la durée de la formation.
En revanche, Ultralytics privilégient l'efficacité de l'entraînement. YOLOv8 une approche « Bag of Freebies » (sac de cadeaux) dans laquelle les choix architecturaux et les stratégies d'augmentation (comme MixUp Mosaic) permettent d'améliorer la précision sans nécessiter de pipeline de distillation en plusieurs étapes. Cela rend YOLOv8 plus rapide à entraîner sur du matériel grand public, ce qui réduit les obstacles à l'entrée pour les ensembles de données personnalisés.
Efficacité des ressources
YOLO Ultralytics présentent généralement des besoins en mémoire moins importants pendant l'entraînement et l'inférence que les modèles complexes basés sur Transformer ou les pipelines de distillation. Cela permet d'utiliser des lots plus volumineux et d'accélérer les expérimentations sur des GPU standard.
L'avantage de l'écosystème Ultralytics
SiYOLO des contributions académiques novatrices, Ultralytics offre un avantage distinct pour le développement d'applications concrètes.
Une polyvalence indétectable
YOLO principalement conçu pour la détection de boîtes englobantes. À l'inverse, le Ultralytics est nativement multitâche. Une seule API permet aux développeurs d'effectuer :
- Segmentation d'instance pour un masquage précis au niveau des pixels.
- Estimation de la pose pour le suivi du squelette.
- Boîte englobante orientée (OBB) pour la détection d'objets aériens et pivotés.
- Classification d'images pour la catégorisation d'images entières.
Facilité d'utilisation et de déploiement
Ultralytics une expérience utilisateur simplifiée. Le Python permet la formation, la validation et le déploiement en moins de cinq lignes de code. De plus, les nombreuses options d'exportation permettent une conversion transparente vers ONNX, TensorRT, CoreML, TFLite et OpenVINO, garantissant ainsi que les modèles peuvent être déployés sur tous les supports, des serveurs cloud aux Raspberry Pi.
L'avenir de l'IA visuelle : YOLO26
Pour les développeurs à la recherche de la technologie de pointe absolue pour 2026, Ultralytics YOLO26. S'appuyant sur les succès de YOLOv8 YOLO11, YOLO26 introduit des changements fondamentaux dans l'architecture pour plus de rapidité et de stabilité.
Conception de bout en bout sans NMS
Contrairement àYOLO YOLOv8, qui nécessitent un post-traitement par suppression non maximale (NMS) pour filtrer les boîtes qui se chevauchent, YOLO26 est nativement de bout en bout. Cette avancée révolutionnaire, mise au point dans YOLOv10, élimine NMS . Il en résulte des pipelines de déploiement simplifiés et une latence réduite, en particulier dans les scénarios où de nombreux objets sont détectés.
Optimisation avancée et fonctions de perte
YOLO26 intègre l'optimiseur MuSGD, un hybride de SGD Muon (inspiré des innovations en matière de formation LLM de Kimi K2 de Moonshot AI). Cela apporte la stabilité de la formation des grands modèles linguistiques à la vision par ordinateur, ce qui se traduit par une convergence plus rapide. De plus, la suppression de la perte focale de distribution (DFL) et l'introduction de ProgLoss et STAL (Soft Task-Aligned Loss) améliorent considérablement les performances sur les petits objets, un défi courant en robotique et dans l'IoT.
Équilibre des performances
YOLO26 est optimisé pour l'informatique en périphérie, offrant CPU jusqu'à 43 % plus rapide que les générations précédentes. Cela en fait le choix idéal pour les applications fonctionnant sur des appareils sans GPU dédiés, surpassant l'efficacité des anciennes approches basées sur le NAS.
Exemple de code : Ultralytics
L'exemple suivant montre à quel point il est facile pour un développeur de passer d'une génération de modèle à l'autre à l'aide de Ultralytics . Cette flexibilité permet de comparer rapidement YOLOv8 nouveau YOLO26 sur un ensemble de données personnalisé.
from ultralytics import YOLO
# Load the models
model_v8 = YOLO("yolov8n.pt")
model_v26 = YOLO("yolo26n.pt") # Recommended for new projects
# Train YOLO26 on a custom dataset
# The MuSGD optimizer and ProgLoss are handled automatically
results = model_v26.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the NMS-free architecture
# No post-processing tuning required
prediction = model_v26("https://ultralytics.com/images/bus.jpg")
prediction[0].show()
Résumé
YOLO YOLOv8 tous deux des étapes importantes dans le domaine de la vision par ordinateur.YOLO la puissance de la recherche d'architecture neuronale et de la distillation pour atteindre une grande précision. Cependant, pour la plupart des développeurs, chercheurs et entreprises, Ultralytics YOLOv8, et plus particulièrement la nouvelle version YOLO26, offre un équilibre supérieur.
La combinaison d'un écosystème bien entretenu, d'une facilité d'utilisation, d'une prise en charge polyvalente des tâches et de fonctionnalités de pointe telles que la détection NMS fait Ultralytics choix privilégié pour les solutions d'IA évolutives et pérennes. Les développeurs à la recherche d'autres options hautes performances peuvent également explorer RT-DETR pour une précision basée sur les transformateurs ou YOLO11 pour une robustesse éprouvée.