YOLOv7 vs YOLOv10#
Le domaine de la vision par ordinateur a connu des avancées remarquables ces dernières années, la famille de modèles YOLO (You Only Look Once) étant à l’avant-garde de la détection d’objets en temps réel. Pour choisir la bonne architecture pour tes projets de vision par ordinateur, tu dois bien comprendre les options disponibles. Dans cette comparaison technique complète, nous allons examiner les principales différences entre deux architectures marquantes : YOLOv7 et YOLOv10.
Présentation des modèles#
Ces deux modèles représentent des étapes importantes de l’histoire de l’intelligence artificielle, mais ils adoptent des approches fondamentalement différentes pour résoudre les difficultés liées à la détection d’objets.
YOLOv7 : pionnier des « bag-of-freebies »#
Publié le 6 juillet 2022 par les chercheurs Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao de l’Institut des sciences de l’information de l’Academia Sinica, YOLOv7 a changé la donne dans l’optimisation des réseaux de neurones. La recherche d’origine, présentée dans leur article universitaire et hébergée sur leur dépôt GitHub officiel, portait principalement sur la reparamétrisation architecturale et un « sac de bonus » entraînable.
YOLOv7 exploite un réseau étendu d’agrégation efficace des couches (E-ELAN) pour permettre au réseau d’apprendre des caractéristiques variées sans détruire le chemin de gradient d’origine. C’est donc un choix robuste pour les benchmarks de recherche universitaire et les systèmes qui dépendent fortement de GPU haut de gamme standard.
YOLOv10 : détection de bout en bout en temps réel#
Développé par Ao Wang et son équipe à l’université Tsinghua, YOLOv10 a été publié le 23 mai 2024. Comme l’expliquent sa publication sur arXiv et le dépôt GitHub de Tsinghua, ce modèle élimine un goulot d’étranglement persistant de la détection d’objets : la suppression non maximale (NMS).
YOLOv10 a introduit des assignations doubles cohérentes pour l’entraînement sans NMS, modifiant fondamentalement le pipeline de post-traitement. Grâce à une stratégie de conception globale axée sur l’efficacité et la précision, YOLOv10 réduit la redondance des calculs. Il en résulte une architecture particulièrement adaptée aux appareils périphériques qui exigent une latence extrêmement faible.
Comparaison des performances et des métriques#
Pour analyser les performances d’un modèle, il est essentiel d’évaluer les compromis entre précision, vitesse et charge de calcul. Le tableau suivant montre comment se comparent les différentes tailles de ces modèles.
| 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 |
| 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 |
Analyse des compromis#
Les métriques ci-dessus révèlent un écart générationnel marqué. YOLOv7x atteint un mAPval très élevé de 53,1 %, mais nécessite 71,3 M de paramètres et 189,9 B de FLOPs. En revanche, YOLOv10l dépasse cette précision (53,2 % de mAP) avec environ trois fois moins de paramètres (24,4 M) et nettement moins de FLOPs (120,3 B). De plus, YOLOv10n, hautement optimisé, offre une vitesse d’inférence remarquable de 1,84 ms, ce qui le rend idéal pour l’analyse vidéo en temps réel et les applications mobiles.
Cas d'utilisation concrets#
Les différences architecturales entre ces modèles déterminent leurs cas d’utilisation optimaux.
Quand utiliser YOLOv7#
Grâce à la richesse de sa représentation des caractéristiques, YOLOv7 excelle dans les environnements très complexes. Des cas d’utilisation comme la surveillance du flux de circulation dans les zones urbaines denses, l’analyse d’images satellitaires ou la détection de défauts dans l’automatisation industrielle lourde tirent parti de sa reparamétrisation structurelle robuste. Il est également très prisé dans les environnements existants qui sont déjà étroitement intégrés à des pipelines PyTorch 1.12 spécifiques.
Quand utiliser YOLOv10#
La conception légère de YOLOv10, sans NMS, excelle dans les environnements à ressources limitées. Il est fortement recommandé pour les appareils informatiques en périphérie, comme le NVIDIA Jetson Nano ou le Raspberry Pi. Ses performances à faible latence le rendent idéal pour les applications rapides telles que l’analyse sportive, la navigation autonome par drone et le tri robotisé à grande vitesse sur les tapis roulants.
Les avantages de l’écosystème Ultralytics#
Bien que les deux modèles soient solidement ancrés dans la recherche universitaire, le véritable potentiel de YOLOv10 se révèle lorsqu’il est utilisé au sein de l’Ultralytics Platform unifiée. Développer des modèles de vision par ordinateur à partir de zéro est réputé difficile, mais l’écosystème Ultralytics offre une expérience inégalée aux ingénieurs en machine learning.
- Facilité d’utilisation : l’API Python d’Ultralytics offre une interface unifiée. Tu peux entraîner, valider et exporter des modèles en quelques lignes de code, sans les problèmes complexes de dépendances associés aux dépôts universitaires habituels.
- Écosystème bien maintenu : Ultralytics garantit le développement actif du code sous-jacent. Les utilisateurs bénéficient d’intégrations transparentes avec des outils de ML populaires, comme Weights & Biases pour la journalisation ou Gradio pour créer rapidement des démos web.
- Besoins en mémoire : les détecteurs d’objets basés sur les Transformers consomment souvent énormément de mémoire CUDA pendant l’entraînement. En revanche, les modèles YOLO d’Ultralytics nécessitent beaucoup moins de mémoire, ce qui permet d’utiliser des tailles de lots bien plus grandes sur du matériel grand public.
- Polyvalence : le pipeline Ultralytics ne se limite pas aux boîtes englobantes standard. Il prend en charge de manière transparente l’estimation de pose, la segmentation d’instances et les boîtes englobantes orientées dans les familles de modèles prises en charge, comme YOLO11 et YOLOv8.
Exemple d’entraînement simplifié#
Lancer un pipeline d’entraînement avec Ultralytics est remarquablement simple. Que tu exploites la vitesse sans NMS de YOLOv10 ou un autre modèle pris en charge, la syntaxe reste la même (note que le package Ultralytics ne prend pas en charge l’entraînement de YOLOv7) :
from ultralytics import YOLO
# Charge le modèle souhaité (par exemple, YOLOv10 Nano)
model = YOLO("yolov10n.pt")
# Entraîner le modèle sur le jeu de données COCO8
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Lance une prédiction d’inférence sur une image échantillon
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Exporte vers un format adapté aux appareils périphériques, comme ONNX
model.export(format="onnx")Cas d’utilisation et recommandations#
Le choix entre YOLOv7 et YOLOv10 dépend des exigences 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 YOLOv7#
YOLOv7 est un excellent choix pour :
- Évaluation comparative universitaire : reproduire les résultats de pointe de 2022 ou étudier les effets d’E-ELAN et des techniques d’ensemble de techniques gratuites entraînables.
- Recherche sur la reparamétrisation : étudier les convolutions reparamétrisées planifiées et les stratégies de mise à l’échelle composée des modèles.
- Pipelines personnalisés existants : projets dotés de pipelines fortement personnalisés autour de l’architecture spécifique de YOLOv7, difficiles à refactoriser.
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.
L’avenir : présentation de YOLO26#
YOLOv7 et YOLOv10 sont des étapes impressionnantes, mais les frontières de l’IA ne cessent de reculer. Publié en janvier 2026, Ultralytics YOLO26 est la nouvelle référence incontestée en matière d’efficacité et de précision pour tous les scénarios de déploiement en périphérie et dans le cloud.
Si tu démarres aujourd’hui un nouveau projet de vision par ordinateur, YOLO26 est l’architecture recommandée. Il s’appuie sur l’héritage de ses prédécesseurs en intégrant plusieurs innovations révolutionnaires :
- Conception de bout en bout sans NMS : inspirée de YOLOv10, la tête facultative un-à-un de YOLO26 (
nms=False) ignore le post-traitement NMS et assure une inférence à latence ultra-faible pour la robotique déterministe en temps réel. - Inférence CPU jusqu’à 43 % plus rapide : en supprimant stratégiquement le module Distribution Focal Loss (DFL), YOLO26 accélère considérablement l’exécution sur du matériel informatique en périphérie sans GPU, ce qui en fait une solution puissante pour les appareils IoT.
- Optimiseur MuSGD : inspiré des récentes innovations en matière d’entraînement des grands modèles de langage, YOLO26 associe SGD et Muon dans un optimiseur hybride qui stabilise les trajectoires d’entraînement et garantit une convergence plus rapide.
- ProgLoss + STAL : ces fonctions de perte avancées améliorent sensiblement la reconnaissance des petits objets et corrigent une faiblesse historique des anciennes générations de YOLO.
- Polyvalence inégalée : YOLO26 intègre des optimisations natives propres à chaque tâche, comme l’estimation résiduelle de log-vraisemblance (RLE) pour le suivi de pose et des fonctions de perte angulaire spécialisées pour détecter précisément les OBB dans les images aériennes.
Pour les ingénieurs qui recherchent le meilleur équilibre entre vitesse, précision et simplicité de déploiement, passer des modèles hérités à YOLO26 procure un avantage concurrentiel immédiat et mesurable.