YOLOv7 vs YOLOv10#
Le domaine de la vision par ordinateur a rapidement progressé 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. Cette comparaison technique présente 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 dans la détection d’objets, mais adoptent des approches fondamentalement différentes pour relever ses défis.
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’Institute of Information Science, Academia Sinica, YOLOv7 a introduit de nouvelles méthodes d’optimisation des détecteurs en temps réel. La recherche d’origine, présentée dans leur article universitaire et hébergée dans leur dépôt GitHub officiel, portait principalement sur la reparamétrisation architecturale et le « bag-of-freebies » 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 ses collègues de l’université Tsinghua, YOLOv10 est sorti le 23 mai 2024. Comme l’expliquent sa publication arXiv et le dépôt GitHub de Tsinghua, ce modèle élimine un obstacle de longue date 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 ainsi le pipeline de post-traitement. Sa conception globale, axée sur l’efficacité et la précision, réduit la redondance des calculs et produit une architecture bien adaptée aux appareils de périphérie nécessitant une faible latence.
Comparaison des performances et des métriques#
Pour analyser les performances des modèles, il est important d’évaluer les compromis entre précision, vitesse et charge de calcul. Le tableau suivant compare 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 indicateurs ci-dessus révèlent un écart générationnel net. YOLOv7x atteint une mAPval élevée de 53,1 %, mais nécessite 71,3 M de paramètres et 189,9 B d’opérations en virgule flottante. À l’inverse, YOLOv10l dépasse cette précision (53,2 % de mAP) tout en nécessitant environ trois fois moins de paramètres (24,4 M) et nettement moins d’opérations en virgule flottante (120,3 B). De plus, YOLOv10n s’exécute en 1,84 ms sur un GPU T4 avec TensorRT, ce qui le rend bien adapté à l’analyse vidéo en temps réel et aux applications mobiles.
Cas d'utilisation concrets#
Les différences architecturales entre ces modèles déterminent leurs cas d’utilisation optimaux.
Quand utiliser YOLOv7#
La riche représentation des caractéristiques de YOLOv7 convient aux scènes complexes sur du matériel GPU. Des cas d’utilisation comme la surveillance de la circulation dans les zones urbaines denses, l’analyse d’images satellite ou la détection de défauts dans l’automatisation industrielle peuvent tirer parti de son architecture reparamétrée. Il reste également courant dans les environnements hérités reposant sur des pipelines PyTorch 1.x spécifiques.
Quand utiliser YOLOv10#
La conception légère de YOLOv10, sans NMS, convient aux environnements à ressources limitées, notamment aux appareils informatiques en périphérie comme les modules NVIDIA Jetson ou un Raspberry Pi. Ses performances à faible latence en font un bon choix pour les applications rapides comme l’analyse sportive, la navigation autonome de drones et le tri robotisé à grande vitesse sur des convoyeurs.
Les avantages de l’écosystème Ultralytics#
Bien que les deux modèles aient de solides fondements universitaires, YOLOv10 est plus facile à entraîner et à déployer dans l’écosystème Ultralytics et sur la Ultralytics Platform. Développer des modèles de vision par ordinateur à partir de zéro est difficile, et l’écosystème Ultralytics simplifie le flux de travail des ingénieurs en apprentissage automatique.
- Facilité d’utilisation : L’API Python d’Ultralytics fournit une interface unifiée. Tu peux entraîner, valider et exporter des modèles en quelques lignes de code, sans les conflits de dépendances courants dans les dépôts universitaires.
- Écosystème bien entretenu : La base de code Ultralytics évolue activement, et les utilisateurs profitent d’intégrations 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 Transformer consomment souvent beaucoup de mémoire CUDA pendant l’entraînement. En revanche, les modèles Ultralytics YOLO nécessitent beaucoup moins de mémoire, ce qui permet d’utiliser des tailles de lot bien plus grandes sur du matériel grand public.
- Polyvalence : Le pipeline Ultralytics ne se limite pas aux boîtes englobantes classiques. Il prend en charge la segmentation d’instances, la classification d’images, l’estimation de pose et les boîtes englobantes orientées dans différentes familles de modèles compatibles, comme YOLO11 et YOLOv8.
Exemple d’entraînement simplifié#
L’exécution d’un pipeline d’entraînement avec Ultralytics est simple. Que tu exploites la vitesse sans NMS de YOLOv10 ou un autre modèle pris en charge, la syntaxe reste cohérente (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 : appareils sans accélération GPU dédiée, sur lesquels YOLO26n est jusqu’à 43 % plus rapide que YOLO11n sur CPU.
- Détection de petits objets : scénarios difficiles comme les images aériennes capturées par drone ou l’analyse de capteurs IoT, où ProgLoss et STAL améliorent la précision sur les objets minuscules.
L’avenir : présentation de YOLO26#
YOLOv7 et YOLOv10 sont des jalons remarquables, mais la frontière de l’IA ne cesse de progresser. Lancé en janvier 2026, Ultralytics YOLO26 est le modèle recommandé pour allier efficacité et précision dans les déploiements 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 ses prédécesseurs et apporte plusieurs innovations :
- Conception de bout en bout sans NMS : Inspirée de YOLOv10, la tête un-à-un facultative de YOLO26 (
nms=False) ignore le post-traitement NMS, ce qui réduit la latence et la rend plus constante pour la robotique en temps réel. - Inférence CPU jusqu’à 43 % plus rapide : En supprimant le module Distribution Focal Loss (DFL), YOLO26 accélère l’exécution sur le matériel périphérique sans GPU. YOLO26n s’exécute jusqu’à 43 % plus vite que YOLO11n sur CPU, ce qui en fait un bon choix pour les appareils IoT.
- Optimiseur MuSGD : Inspiré des innovations récentes dans l’entraînement des grands modèles de langage, YOLO26 intègre une combinaison hybride de SGD et Muon pour un entraînement plus stable et une convergence plus rapide.
- ProgLoss + STAL : La fonction de perte progressive et l’assignation d’étiquettes tenant compte des petites cibles améliorent la reconnaissance des petits objets et corrigent une faiblesse historique des anciennes générations YOLO.
- Polyvalence multitâche : YOLO26 prend en charge la détection, la segmentation d’instances, la segmentation sémantique, l’estimation de profondeur, la classification, l’estimation de pose et OBB, avec des optimisations propres à chaque tâche, comme Residual Log-Likelihood Estimation (RLE) pour l’estimation de pose et des fonctions de perte d’angle 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, YOLO26 constitue une évolution naturelle des modèles hérités.