DAMO-YOLO vs YOLOv10#
Le domaine de la vision par ordinateur a connu une évolution rapide des architectures de détection d’objets en temps réel. En comparant DAMO-YOLO et YOLOv10, on observe deux philosophies distinctes en matière de conception des modèles : la recherche automatisée d’architectures et l’optimisation de bout en bout sans NMS. Bien que les deux repoussent les limites de la précision et de la vitesse, leurs structures sous-jacentes et leurs cas d’utilisation idéaux diffèrent considérablement.
DAMO-YOLO : recherche d'architecture neuronale à grande échelle#
Développé par le groupe Alibaba, DAMO-YOLO s’est imposé comme un détecteur puissant axé sur l’exploitation de la découverte automatisée pour améliorer l’efficacité structurelle.
- Auteurs : Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang et Xiuyu Sun
- Date : 23 novembre 2022
- Arxiv : 2211.15444v2
- GitHub : tinyvision/DAMO-YOLO
Points forts de l'architecture#
DAMO-YOLO s'appuie fortement sur la recherche d'architecture neuronale pour équilibrer les performances et la latence. Son backbone, baptisé MAE-NAS, utilise une recherche guidée par l'entropie maximale sous des budgets de calcul stricts pour trouver la profondeur et la largeur de couche optimales.
Pour gérer la fusion des caractéristiques à différentes échelles, le modèle utilise un RepGFPN efficace (réseau pyramidal généralisé de caractéristiques reparamétré). Cette architecture de neck lourde est particulièrement adaptée à l’extraction de hiérarchies spatiales complexes, ce qui la rend utile dans des scénarios tels que l’analyse d’images aériennes. De plus, DAMO-YOLO introduit le ZeroHead, une tête de détection rationalisée qui réduit fortement la complexité des couches de prédiction finales, en s’appuyant sur un processus robuste d’amélioration par distillation pendant l’entraînement.
DAMO-YOLO utilise souvent un processus de distillation des connaissances en plusieurs étapes. Il nécessite l’entraînement d’un modèle « enseignant » plus lourd pour guider un modèle « étudiant » plus petit, lequel extrait une mAP (précision moyenne) plus élevée, mais augmente considérablement le temps de calcul requis sur le GPU.
YOLOv10 : pionnier de la détection d'objets de bout en bout#
Publié un an et demi plus tard, YOLOv10 a introduit un changement de paradigme en éliminant complètement le besoin de suppression des non-maxima (NMS) lors de l’inférence.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Tsinghua University
- Date : 23 mai 2024
- Arxiv : 2405.14458
- Documentation : Ultralytics YOLOv10
Points forts de l'architecture#
La fonctionnalité phare de YOLOv10 est son double mécanisme d’assignation cohérent pour l’entraînement sans NMS. Les détecteurs traditionnels prédisent plusieurs boîtes englobantes qui se chevauchent pour un même objet, ce qui nécessite la NMS pour filtrer les doublons. Cette étape de post-traitement crée un goulot d’étranglement, en particulier sur les appareils edge. YOLOv10 résout ce problème en permettant au modèle de prédire naturellement une seule boîte englobante précise par objet.
Les auteurs se sont également concentrés sur une conception globale du modèle guidée par l’efficacité et la précision. En analysant soigneusement la redondance computationnelle des architectures existantes, ils ont optimisé le backbone et la tête afin de réduire le nombre de FLOPs et de paramètres. Cette conception légère permet à YOLOv10 d’offrir une latence d’inférence exceptionnelle lors de l’exportation vers des formats tels que TensorRT ou OpenVINO.
En apprendre davantage sur YOLOv10
Performances et benchmarks#
Le tableau ci-dessous présente les métriques de performances brutes sur le jeu de données COCO. Les meilleures valeurs globales de chaque colonne sont mises en évidence en gras.
| 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 |
| 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 |
Bien que DAMO-YOLO reste compétitif en matière de précision, YOLOv10 offre systématiquement une latence plus faible et des poids de modèle nettement plus légers. Par exemple, YOLOv10s atteint une mAP légèrement supérieure (46,7 %) à celle de DAMO-YOLOs (46,0 %) tout en utilisant moins de la moitié des paramètres (7,2 M contre 16,3 M). Ses besoins en mémoire réduits font de YOLOv10 un choix particulièrement polyvalent pour les systèmes embarqués.
Efficacité de l'entraînement et facilité d'utilisation#
Lors du passage de la recherche universitaire à la production, la facilité d’utilisation est essentielle. Le processus de distillation en plusieurs étapes de DAMO-YOLO et ses configurations NAS complexes peuvent représenter une courbe d’apprentissage importante pour les équipes d’ingénierie.
À l’inverse, YOLOv10 bénéficie pleinement de son intégration au SDK Python d’Ultralytics. L’entraînement d’un modèle personnalisé nécessite très peu de code standard. Ultralytics gère automatiquement l’augmentation des données, l’optimisation des hyperparamètres et le suivi des expériences.
from ultralytics import YOLO
# Load a pretrained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train on a custom dataset with built-in validation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image seamlessly
prediction = model("path/to/image.jpg")
prediction[0].show()L’écosystème Ultralytics permet aux développeurs de passer d’un prototype à un modèle ONNX exporté en seulement quelques lignes de code, en évitant les configurations d’environnement complexes requises par les frameworks plus anciens.
Cas d’utilisation réels#
- Commerce intelligent (DAMO-YOLO) : la précision de DAMO-YOLO convient parfaitement aux environnements serveur à forte densité qui analysent le comportement des clients, où les GPU sont abondants et où les goulots d’étranglement liés à la NMS en temps réel restent maîtrisables.
- Véhicules autonomes (YOLOv10) : l’architecture sans NMS garantit une latence déterministe et prévisible, essentielle aux systèmes de sécurité de la conduite autonome.
- Automatisation industrielle (YOLOv10) : la détection des défauts sur des chaînes d’assemblage rapides nécessite des modèles qui maximisent les vitesses d’inférence en temps réel sans consommer une quantité excessive de VRAM, ce qui fait de YOLOv10 un excellent candidat pour un déploiement edge.
Cas d'utilisation et recommandations#
Le choix entre DAMO-YOLO et YOLOv10 dépend de tes exigences spécifiques, de tes contraintes de déploiement et de tes préférences en matière d’écosystème.
Quand choisir DAMO-YOLO#
DAMO-YOLO est un choix solide pour :
- Analyse vidéo à haut débit : Traitement de flux vidéo à FPS élevé sur une infrastructure GPU NVIDIA fixe, lorsque le débit avec une taille de lot de 1 est la métrique principale.
- Lignes de fabrication industrielles : Scénarios soumis à des contraintes strictes de latence GPU sur du matériel dédié, comme l'inspection qualité en temps réel sur les lignes d'assemblage.
- Recherche sur la recherche d'architecture neuronale : Étude des effets de la recherche automatisée d'architecture (MAE-NAS) et des backbones reparamétrés efficaces sur les performances de détection.
Quand choisir YOLOv10#
YOLOv10 est recommandé pour :
- Détection en temps réel sans NMS : les applications qui bénéficient d’une détection de bout en bout sans suppression des non-maxima, réduisant ainsi la complexité du déploiement.
- Compromis équilibré entre vitesse et précision : les projets nécessitant un équilibre solide entre la vitesse d’inférence et la précision de détection pour différentes tailles de modèles.
- Applications à latence constante : les scénarios de déploiement où des temps d’inférence prévisibles sont essentiels, comme la robotique ou les systèmes autonomes.
Quand choisir Ultralytics (YOLO26)#
Pour la plupart des nouveaux projets, Ultralytics YOLO26 offre le meilleur compromis entre performance et expérience développeur :
- Déploiement edge sans NMS : les applications nécessitant une inférence cohérente à faible latence, sans la complexité du post-traitement par suppression non maximale.
- Environnements exclusivement CPU : les appareils dépourvus d'accélération GPU dédiée, où l'inférence CPU jusqu'à 43 % plus rapide de YOLO26 constitue un avantage décisif.
- Détection de petits objets : les scénarios difficiles comme les images aériennes prises par drone ou l'analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision sur les objets minuscules.
La prochaine génération : découvre Ultralytics YOLO26#
Alors que YOLOv10 a posé les bases de la détection sans NMS, la technologie a rapidement évolué. Pour les applications modernes, le modèle Ultralytics YOLO26 offre des performances et une convivialité inégalées, en tirant le meilleur parti des générations précédentes tout en les perfectionnant pour la production.
YOLO26 présente une conception nativement de bout en bout, éliminant le post-traitement NMS pour des pipelines de déploiement plus simples sur les appareils de edge. De plus, la suppression de la perte focale de distribution a considérablement amélioré la compatibilité avec le matériel edge AI à faible consommation.
Du côté de l’entraînement, YOLO26 introduit l’optimiseur MuSGD, un hybride inspiré des techniques d’entraînement des grands modèles de langage (LLM). Il garantit un entraînement plus stable et une convergence plus rapide. Associé aux fonctions de perte ProgLoss + STAL, YOLO26 affiche des améliorations remarquables dans la reconnaissance des petits objets, une fonctionnalité essentielle pour la conservation de la faune et les opérations de drones.
Surtout, YOLO26 n’est pas seulement un détecteur d’objets. Il offre des améliorations spécifiques à chaque tâche, prenant nativement en charge la segmentation d’instances, l’estimation de pose à l’aide de l’estimation résiduelle de log-vraisemblance (RLE), ainsi que des fonctions de perte angulaire spécialisées pour les boîtes englobantes orientées (OBB). Avec une inférence sur CPU jusqu’à 43 % plus rapide que celle de ses prédécesseurs, c’est le choix idéal pour les équipes d’ingénierie agiles.
Pour la gestion centralisée, l’annotation et l’entraînement cloud des modèles YOLO26, l’Ultralytics Platform fournit une interface intuitive qui rationalise l’ensemble du cycle de vie de la vision par ordinateur.
Les développeurs souhaitant explorer d’autres avancées récentes peuvent également évaluer Ultralytics YOLO11 ou le framework RT-DETR basé sur un Transformer pour les scénarios nécessitant des solutions architecturales distinctes.