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. La comparaison entre DAMO-YOLO et YOLOv10 révèle deux philosophies distinctes de conception des modèles : la recherche d’architecture automatisée 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 optimiser sa structure.
- 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 (NAS) pour équilibrer performances et latence. Son backbone, baptisé MAE-NAS, utilise une recherche guidée par l’entropie maximale dans le cadre de budgets de calcul stricts afin de déterminer la profondeur et la largeur optimales des couches.
Pour fusionner les caractéristiques à différentes échelles, le modèle utilise un RepGFPN (réseau pyramidal généralisé de caractéristiques reparamétré) efficace. Cette conception de neck volumineuse excelle particulièrement dans l’extraction de hiérarchies spatiales complexes, ce qui la rend utile dans des cas comme l’analyse d’images aériennes. DAMO-YOLO introduit également ZeroHead, une tête de détection simplifiée qui réduit fortement la complexité des couches de prédiction finales et s’appuie sur un processus d’amélioration par distillation robuste pendant l’entraînement.
DAMO-YOLO utilise souvent un processus de distillation des connaissances en plusieurs étapes. Il faut entraîner un modèle « enseignant » plus lourd pour guider le modèle « élève » plus petit, ce qui permet d’obtenir un mAP (précision moyenne) plus élevé, mais augmente considérablement le temps de calcul sur GPU nécessaire.
YOLOv10 : pionnier de la détection d’objets de bout en bout#
Sorti un an et demi plus tard, YOLOv10 a marqué un changement de paradigme en éliminant complètement la nécessité d’appliquer la suppression non maximale (NMS) pendant l’inférence.
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 23 mai 2024
- Arxiv : 2405.14458
- Documentation : Ultralytics YOLOv10
Points forts de l’architecture#
La caractéristique phare de YOLOv10 est son double assignation cohérente pour un 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 supprimer 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 visant à concilier efficacité et précision. En analysant soigneusement les calculs redondants dans les 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 après exportation dans des formats comme TensorRT ou OpenVINO.
Performances et benchmarks#
Le tableau ci-dessous présente les métriques de performance 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 | 38.5 | - | 1.84 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.3 | - | 2.49 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.1 | - | 4.74 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.5 | - | 5.74 | 19.1 | 92.0 |
| YOLOv10l | 640 | 53.2 | - | 7.28 | 24.4 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 10.70 | 29.5 | 160.4 |
DAMO-YOLO reste performant en matière de précision, mais YOLOv10 offre une meilleure précision à échelle comparable et des poids de modèle nettement plus légers. Par exemple, YOLOv10s atteint un mAP légèrement supérieur à celui de DAMO-YOLOs (46,3 % contre 46,0 %) tout en utilisant moins de la moitié du nombre de paramètres (7,2 M contre 16,3 M). Ses besoins en mémoire plus faibles font de YOLOv10 un choix particulièrement polyvalent pour les systèmes embarqués.
Efficacité de l’entraînement et facilité d’utilisation#
Lorsqu’on passe 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 complète au SDK Python Ultralytics. Entraîner un modèle personnalisé nécessite très peu de code passe-partout. Ultralytics gère automatiquement l’augmentation des données, le réglage des hyperparamètres et le suivi des expériences.
from ultralytics import YOLO
# Charge un modèle YOLOv10 nano préentraîné
model = YOLO("yolov10n.pt")
# Entraîne le modèle sur un jeu de données personnalisé avec validation intégrée
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Exécuter facilement une inférence sur une image
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 quelques lignes de code seulement, sans avoir à configurer les environnements complexes requis par les anciens frameworks.
Cas d'utilisation concrets#
- Commerce de détail intelligent (DAMO-YOLO) : la précision de DAMO-YOLO convient bien aux environnements serveur à forte densité qui analysent le comportement des clients, où les GPU sont nombreux et où les goulots d’étranglement dus à la NMS en temps réel restent gérables.
- 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) : détecter des défauts sur des chaînes de montage rapides nécessite des modèles qui maximisent la vitesse d’inférence en temps réel sans consommer une quantité importante de VRAM, ce qui fait de YOLOv10 un excellent candidat pour le déploiement edge.
Cas d’utilisation et recommandations#
Le choix entre DAMO-YOLO et YOLOv10 dépend des besoins spécifiques de ton projet, 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 excellent choix 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 le principal critère.
- Lignes de fabrication industrielle : 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 chaînes de montage.
- Recherche sur la recherche d’architectures neuronales : Étude des effets de la recherche automatisée d’architectures (MAE-NAS) et des backbones efficaces reparamétrés sur les performances de détection.
Quand choisir YOLOv10#
YOLOv10 est recommandé pour :
- Détection en temps réel sans NMS : les applications qui tirent parti de la détection de bout en bout sans suppression non maximale, ce qui réduit la complexité du déploiement.
- Équilibre entre vitesse et précision : les projets qui nécessitent un bon compromis entre vitesse d’inférence et 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 en robotique ou dans les systèmes autonomes.
Quand choisir Ultralytics (YOLO26)#
Pour la plupart des nouveaux projets, Ultralytics YOLO26 offre le meilleur équilibre entre performances et expérience développeur :
- Déploiement en périphérie sans NMS : les applications qui exigent des inférences à faible latence et constantes, 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 situations difficiles, comme l’imagerie aérienne par drone ou l’analyse de capteurs IoT, où ProgLoss et STAL améliorent considérablement la précision pour les objets minuscules.
La prochaine génération : voici Ultralytics YOLO26#
YOLOv10 a posé les bases de la détection sans NMS, mais la technologie a rapidement évolué. Pour les applications modernes, le modèle Ultralytics YOLO26 offre des performances et une facilité d’utilisation inégalées, en reprenant les meilleurs éléments des générations précédentes et en les perfectionnant pour la production.
YOLO26 intègre nativement un mode de bout en bout (nms=False) qui ignore le post-traitement NMS et simplifie les pipelines de déploiement sur les appareils edge. De plus, la suppression de la perte focale de distribution (DFL) a considérablement amélioré la compatibilité avec le matériel d’IA edge à faible consommation.
Côté entraînement, YOLO26 introduit l’optimiseur MuSGD, un optimiseur hybride inspiré des techniques d’entraînement des grands modèles de langage (LLM). Il assure un entraînement plus stable et une convergence plus rapide. Associé aux fonctions de perte ProgLoss + STAL, il améliore considérablement la reconnaissance des petits objets, une capacité essentielle pour la protection de la faune et les opérations par drone.
Surtout, YOLO26 ne se limite pas à la détection d’objets. Il propose des améliorations adaptées à chaque tâche et prend nativement en charge la segmentation d’instances, l’estimation de pose à l’aide de l’estimation du log-vraisemblance résiduelle (RLE), ainsi que des fonctions de perte d’angle spécialisées pour les boîtes englobantes orientées (OBB). Avec une inférence CPU jusqu’à 43 % plus rapide que celle de ses prédécesseurs, il constitue le choix de référence pour les équipes d’ingénierie agiles.
Pour gérer de manière centralisée les modèles YOLO26, les annoter et les entraîner dans le cloud, l’Ultralytics Platform offre une interface intuitive qui simplifie l’ensemble du cycle de vie de la vision par ordinateur.
Les développeurs qui souhaitent explorer d’autres avancées récentes peuvent aussi évaluer Ultralytics YOLO11 ou le framework basé sur Transformer RT-DETR pour les scénarios qui nécessitent des solutions architecturales différentes.