YOLOv7 vs DAMO-YOLO#
Le domaine de la détection d’objets en temps réel évolue sans cesse, les chercheurs et les ingénieurs cherchant à trouver le meilleur équilibre entre vitesse et précision. Dans cette comparaison technique, nous examinerons en détail deux architectures notables de 2022 : YOLOv7 et DAMO-YOLO. Ces deux modèles ont introduit de nouveaux concepts dans la communauté de la vision par ordinateur et abordé différents défis liés à l’entraînement des modèles, à la conception des architectures et au déploiement.
Présentation des modèles et détails techniques#
Avant d’examiner leurs architectures, il est essentiel de comprendre les origines de ces deux modèles. Tous deux ont été développés par des groupes de recherche de premier plan et ont introduit des méthodes avancées pour repousser les limites de la détection d’objets en temps réel.
Détails sur YOLOv7#
Conçu comme une évolution de la famille YOLO, YOLOv7 a introduit le concept de « bag-of-freebies entraînable » afin d’améliorer considérablement la précision sans augmenter le coût de l’inférence.
- Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
- Organisation : Institute of Information Science, Academia Sinica, Taïwan
- Date : 2022-07-06
- Arxiv : https://arxiv.org/abs/2207.02696
- GitHub : https://github.com/WongKinYiu/yolov7
- Documentation : https://docs.ultralytics.com/models/yolov7
Détails sur DAMO-YOLO#
Créé par des chercheurs d’Alibaba Group, DAMO-YOLO s’est fortement appuyé sur la recherche d’architecture neuronale (NAS) et la distillation avancée des connaissances pour créer des modèles très efficaces sur divers matériels.
- Auteurs : Xianzhe Xu, Yiqi Jiang, Weihua Chen, Yilun Huang, Yuan Zhang et Xiuyu Sun
- Organisation : groupe Alibaba
- Date : 2022-11-23
- Arxiv : https://arxiv.org/abs/2211.15444v2
- GitHub : https://github.com/tinyvision/DAMO-YOLO
Innovations architecturales#
YOLOv7 : analyse des chemins de gradient et reparamétrisation#
YOLOv7 s’appuie fortement sur Extended Efficient Layer Aggregation Networks (E-ELAN). Les auteurs ont conçu E-ELAN en analysant les chemins de gradient du réseau, afin de garantir que celui-ci puisse continuer à apprendre sans dégrader le chemin de gradient initial. De plus, YOLOv7 utilise efficacement la reparamétrisation du modèle pendant l’inférence, en fusionnant les couches de façon transparente pour réduire les FLOPs et accélérer l’exécution. Le modèle est ainsi parfaitement adapté à l’inférence en temps réel sur les GPU modernes.
DAMO-YOLO : recherche d’architecture neuronale et RepGFPN#
DAMO-YOLO se distingue en s’appuyant largement sur la recherche d’architecture neuronale (NAS) sous contraintes de latence. Il utilise un framework appelé MAE-NAS pour découvrir des backbones optimaux adaptés à du matériel spécifique, comme les appareils mobiles ou certains accélérateurs en périphérie. Pour son neck, il introduit RepGFPN (réseau pyramidal de caractéristiques généralisé reparamétré), efficace, et utilise une conception ZeroHead pour réduire au minimum la charge de calcul des têtes de prédiction.
YOLOv7 s’appuie sur d’importantes optimisations intégrées à son architecture, tandis que DAMO-YOLO dépend fortement d’un processus complexe de distillation des connaissances en plusieurs étapes. Il faut entraîner un grand modèle enseignant pour transmettre ses connaissances à un modèle étudiant plus petit, ce qui peut être coûteux en calcul pendant l’entraînement.
Comparaison des performances et des métriques#
Pour comparer ces modèles, il est essentiel d’examiner le mAP (précision moyenne), la vitesse d’inférence et la complexité du modèle.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Le tableau ci-dessus montre que YOLOv7 s’adapte bien aux domaines exigeant une haute précision (YOLOv7x), tandis que DAMO-YOLO propose des modèles minuscules très optimisés pour les environnements contraints.
Efficacité de l'entraînement et besoins en mémoire#
Une différence majeure entre ces deux architectures réside dans leurs méthodes d’entraînement. La dépendance de DAMO-YOLO à la distillation signifie que l’entraînement d’un nouveau modèle à partir de zéro ou l’affinage sur un jeu de données personnalisé de vision par ordinateur exige souvent beaucoup plus de VRAM et de temps de calcul GPU.
À l’inverse, les modèles pris en charge nativement par l’écosystème Ultralytics, comme YOLOv8 et les versions ultérieures, sont fortement optimisés pour les besoins en mémoire. Ils permettent aux développeurs d’utiliser des tailles de lot plus importantes sur du matériel grand public sans rencontrer d’erreurs de mémoire insuffisante, ce qui simplifie le suivi des expériences et le processus d’itération.
L’avantage Ultralytics#
YOLOv7 et DAMO-YOLO offrent tous deux des fonctionnalités intéressantes, mais le déploiement de modèles au sein de l’écosystème Ultralytics procure une expérience de développement inégalée.
- Facilité d’utilisation : le package Python Ultralytics propose une API unifiée et simple. Tu peux rapidement passer d’une architecture de modèle à une autre, lancer des boucles d’entraînement ou exécuter l’inférence en quelques lignes de code.
- Écosystème bien entretenu : Ultralytics publie fréquemment des mises à jour, garantissant une compatibilité native avec les versions récentes de PyTorch et les pilotes CUDA. La plateforme simplifie également l’exportation des modèles vers des formats tels que ONNX, TensorRT et OpenVINO.
- Polyvalence : contrairement à DAMO-YOLO, qui est strictement un détecteur d’objets, l’écosystème Ultralytics prend nativement en charge diverses tâches. Les modèles de la famille Ultralytics peuvent effectuer la détection standard par boîtes englobantes, l’estimation de pose, la segmentation d’instances et la détection par boîtes englobantes orientées (OBB).
Exemple de code : démarrer rapidement#
Voici comme il est facile de charger, d’entraîner et d’exécuter l’inférence avec les modèles Ultralytics :
from ultralytics import YOLO
# Charger un modèle YOLO26 préentraîné (les poids YOLOv7 natifs ne sont pas pris en charge par Ultralytics)
model = YOLO("yolo26n.pt")
# Entraîner le modèle sur le jeu de données COCO8 avec une gestion automatisée des hyperparamètres
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)
# Effectuer une inférence sur une image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Exporter au format ONNX pour le déploiement
model.export(format="onnx")Avec Ultralytics, l’exportation de tes poids entraînés vers divers formats accélérés par le matériel (comme TensorRT ou CoreML) se fait à l’aide d’un seul argument dans la commande d’exportation, ce qui t’épargne des heures de configuration complexe de scripts.
La nouvelle génération : YOLO26#
YOLOv7 reste une architecture héritée performante, mais le domaine a rapidement évolué. Pour les nouveaux déploiements, Ultralytics YOLO26, lancé en janvier 2026, est la référence recommandée et surpasse les générations précédentes dans presque tous les critères.
- Conception de bout en bout sans NMS : introduite pour la première fois dans YOLOv10, la tête optionnelle one-to-one de YOLO26 (
nms=False) élimine le post-traitement par suppression non maximale (NMS). Elle garantit une inférence déterministe à latence ultra-faible, essentielle à la robotique et aux technologies de conduite autonome. - Optimiseur MuSGD : inspiré des techniques avancées d’entraînement des LLM, comme Kimi K2 de Moonshot AI, cet optimiseur hybride combine SGD et Muon pour assurer un entraînement très stable et une convergence plus rapide sur différents jeux de données.
- Jusqu’à 43 % d’accélération de l’inférence CPU : en supprimant stratégiquement Distribution Focal Loss (DFL), YOLO26 améliore considérablement les performances sur les plateformes d’informatique en périphérie et les CPU.
- ProgLoss + STAL : ces fonctions de perte avancées améliorent considérablement la détection des petits objets, ce qui rend YOLO26 particulièrement adapté à l’imagerie aérienne et à la surveillance détaillée.
Cas d’utilisation idéaux#
Quand choisir DAMO-YOLO#
- Recherche universitaire en NAS : si ton organisation consacre d’importantes ressources à l’étude des méthodes de recherche d’architecture neuronale.
- Latence soumise à des contraintes extrêmes sur du matériel spécifique : si tu disposes des ressources nécessaires pour effectuer des recherches NAS exhaustives afin de trouver un backbone adapté à une puce accélératrice d’IA personnalisée.
Quand choisir YOLOv7#
- Pipelines GPU existants : pour les équipes qui maintiennent des pipelines de production hérités, fortement optimisés autour de l’architecture E-ELAN spécifique de YOLOv7 sur du matériel NVIDIA haut de gamme.
Pourquoi migrer vers les modèles Ultralytics modernes (YOLO11 / YOLO26)#
Pour la grande majorité des applications d’entreprise — de l’analyse du commerce de détail à la fabrication intelligente, en passant par les soins de santé —, les modèles Ultralytics modernes sont inégalés. L’intégration à la plateforme Ultralytics fournit un pipeline de ML complet, offrant une grande facilité d’utilisation, une documentation supérieure, une solide communauté d’entraide et une polyvalence multi-tâche. Qu’il s’agisse de suivre les stocks sur un Raspberry Pi ou d’exécuter des analyses poussées dans le cloud, les modèles comme YOLO26 offrent l’équilibre idéal entre performances pour l’avenir de la vision par ordinateur.