YOLOv10 YOLO: évolution des architectures de détection d'objets en temps réel
Dans le domaine en constante évolution de la vision par ordinateur, la recherche d'un équilibre optimal entre latence et précision stimule l'innovation permanente. Deux étapes importantes dans cette évolution sont YOLOv10, connu pour son entraînement révolutionnaire NMS, et YOLO, qui a exploité la recherche d'architecture neuronale (NAS) pour repousser les limites de l'efficacité. Cette comparaison explore leurs distinctions architecturales, leurs mesures de performance et leur adéquation aux applications IA modernes.
Analyse des métriques de performance
Le tableau suivant présente une comparaison détaillée des indicateurs clés de performance. YOLOv10 fait preuve d'une efficacité supérieure en matière d'utilisation des paramètres et de vitesse d'inférence sur les GPU modernes, en particulier dans les variantes de modèles plus grands.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
YOLOv10 : Le pionnier de l'approche de bout en bout
Publié en mai 2024 par des chercheurs de l'université Tsinghua, YOLOv10 a introduit un changement de paradigme en éliminant le besoin de suppression non maximale (NMS). Cette architecture résout le problème de variance de latence souvent causé par les étapes de post-traitement dans les détecteurs traditionnels.
Principales caractéristiques architecturales
- FormationNMS: utilise des affectations doubles cohérentes pour la formation NMS, ce qui permet au modèle de prédire directement un seul cadre de sélection par objet. Cela est essentiel pour les applications nécessitant une latence prévisible, telles que les véhicules autonomes ou la robotique industrielle.
- Conception holistique alliant efficacité et précision : les auteurs, Ao Wang et al., ont optimisé divers composants, notamment la colonne vertébrale et la tête, afin de réduire la redondance informatique.
- Tête de classification légère : réduit la charge de la branche de classification, qui constitue souvent un goulot d'étranglement dans les détecteurs sans ancrage.
Vous pouvez exécuter YOLOv10 viaPython Ultralytics , en bénéficiant ainsi d'une interface standardisée.
from ultralytics import YOLO
# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
# Train the model on a custom dataset
model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
results[0].show()
YOLO: recherche d'architecture neuronale à grande échelle
Développé par le groupe Alibaba et lancé en novembre 2022, YOLO se concentre sur la découverte automatisée d'architectures efficaces. En utilisant la recherche d'architecture neuronale (NAS), l'équipe a cherché à trouver la profondeur et la largeur optimales pour les structures de détection dans le cadre de budgets informatiques stricts.
Principales caractéristiques architecturales
- MAE-NAS Backbone : utilise une recherche évolutive multi-objectifs pour trouver des backbones qui équilibrent la précision de détection et la vitesse d'inférence.
- RepGFPN efficace : une conception à cou lourd qui améliore la fusion des caractéristiques, essentielle pour détecter des objets à différentes échelles, comme dans l'analyse d'images aériennes.
- ZeroHead : Une tête de détection simplifiée qui réduit la complexité des couches de prédiction finales.
Bien queYOLO des performances élevées, son recours à des processus NAS complexes peut rendre difficile pour les développeurs moyens de réentraîner ou de modifier l'architecture pour des ensembles de données personnalisés, contrairement à la configuration conviviale des Ultralytics .
Ultralytics : entrez YOLO26
Si YOLOv10 YOLO des avancées significatives, le domaine a continué à progresser. Ultralytics s'appuie sur l'héritage NMS de YOLOv10 l'intègre dans un écosystème plus robuste et prêt pour la production.
Pourquoi choisir Ultralytics ?
Ultralytics un écosystème bien entretenu qui garantit que vos modèles ne fonctionnent pas seulement aujourd'hui, mais continuent à fonctionner à mesure que le matériel et les bibliothèques logicielles évoluent. Contrairement à de nombreux référentiels universitaires, Ultralytics des mises à jour régulières, une documentation complète et une intégration transparente avec des outils de déploiement tels que TensorRT et OpenVINO.
Innovations de YOLO26
Pour les développeurs à la recherche de la meilleure vitesse et précision possible, YOLO26 apporte plusieurs améliorations essentielles par rapport à ses prédécesseurs :
- NMS de bout en bout : tout comme YOLOv10, YOLO26 est nativement de bout en bout. Cependant, il affine encore davantage cette fonctionnalité en supprimant la perte focale de distribution (DFL), ce qui simplifie le graphe du modèle pour une meilleure compatibilité avec les appareils périphériques et les puces à faible consommation d'énergie.
- Optimiseur MuSGD : inspiré par les innovations dans la formation LLM (en particulier Kimi K2 de Moonshot AI), YOLO26 utilise l'optimiseur MuSGD. Cet hybride de SGD Muon apporte une stabilité sans précédent à la formation, permettant une convergence plus rapide et une réduction GPU .
- CPU : YOLO26 est spécialement optimisé pour l'informatique en périphérie, offrant une inférence jusqu'à 43 % plus rapide sur les processeurs. Cela en fait le choix idéal pour les applications IoT où les processeurs graphiques ne sont pas disponibles.
- Fonctions de perte améliorées : l'introduction de ProgLoss et STAL (Self-Taught Anchor Learning) améliore considérablement les performances sur les petits objets et les arrière-plans difficiles.
Cas d'utilisation comparatifs
Le choix du modèle approprié dépend fortement de vos contraintes de déploiement spécifiques et de vos exigences en matière de flux de travail.
Quand utiliserYOLO
YOLO un candidat sérieux pour les scénarios de recherche impliquant la recherche d'architecture neuronale (NAS). Si votre projet nécessite d'étudier l'impact des stratégies de recherche automatisées sur l'extraction de caractéristiques, ou si vous êtes profondément intégré à l'écosystème Alibaba, ce modèle fournit des informations précieuses. Son module RepGFPN constitue également une excellente référence pour les études sur la fusion de caractéristiques.
Quand utiliser YOLOv10
YOLOv10 idéal pour les applications où une faible variance de latence est essentielle. Sa conception NMS garantit une durée d'inférence stable, quel que soit le nombre d'objets détectés, ce qui est vital pour les systèmes de sécurité en temps réel.
- Surveillance en temps réel : fréquences d'images constantes pour les scènes très fréquentées.
- Robotique : synchronisation prévisible pour les boucles de contrôle.
Pourquoi YOLO26 est le choix idéal
Pour la majorité des développeurs et des applications commerciales, Ultralytics offre la solution la plus convaincante. Il combine les avantages NMS de YOLOv10 une efficacité de formation supérieure et une prise en charge matérielle étendue.
- Facilité d'utilisation : formez, validez et déployez à l'aide d'une seule Python .
- Polyvalence : contrairement àYOLO, YOLO26 prend en charge une gamme complète de tâches, notamment la segmentation d'instances, l'estimation de poses, la classification et les boîtes englobantes orientées (OBB).
- Efficacité mémoire : YOLO26 nécessite beaucoup moins CUDA pendant l'entraînement que les modèles hybrides à transformateur, ce qui permet l'entraînement sur des GPU grand public.
- Intégration de la plateforme : exportation transparente vers ONNX, CoreML et TFLite la Ultralytics , ce qui simplifie le passage du prototype à la production.
Exemple de code : Workflow YOLO26
Avec Ultralytics, passer à la technologie la plus récente est un jeu d'enfant. L'extrait de code suivant montre comment charger le modèle YOLO26 à la pointe de la technologie, exécuter l'inférence et l'exporter pour le déploiement.
from ultralytics import YOLO
# Load the YOLO26s model (Small version)
model = YOLO("yolo26s.pt")
# Train on COCO8 dataset
model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
# Export to ONNX for simplified deployment
model.export(format="onnx", opset=13)
Conclusion
YOLOv10 YOLO tous deux apporté des innovations précieuses dans le domaine de la vision par ordinateur. YOLOv10 a prouvé la viabilité de la détection NMS, tandis que YOLO a démontré la puissance du NAS. Cependant, Ultralytics synthétise ces avancées dans un outil complet, convivial et hautement performant. Avec sa vitesse supérieure, sa polyvalence et le soutien d'un écosystème robuste, YOLO26 s'impose comme la solution recommandée pour les développeurs qui créent la prochaine génération d'applications d'IA.
Pour approfondir le sujet, consultez la YOLO11 ou le document sur le modèle RT-DETR basé sur le transformateur. RT-DETR basé sur un transformateur.