YOLOv7 vs YOLOX#
L’évolution de la vision par ordinateur a été marquée par des progrès rapides dans la détection d’objets en temps réel. YOLOv7 et YOLOX constituent deux étapes marquantes de cette évolution. Ces deux modèles ont repoussé les limites de la vitesse et de la précision, mais ils ont adopté des philosophies architecturales différentes pour obtenir leurs résultats. Ce guide propose une comparaison technique complète de ces deux modèles puissants pour t’aider à choisir l’architecture adaptée à tes projets de vision par ordinateur.
Présentation des modèles#
Il est essentiel de comprendre les origines et les principaux choix de conception de ces modèles pour les déployer efficacement dans les opérations modernes de machine learning.
Détails sur YOLOv7#
Développé par les chercheurs à l’origine des architectures CSPNet et Scaled-YOLOv4, YOLOv7 a introduit une approche de « bag-of-freebies entraînable » afin de maximiser 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 : Documentation Ultralytics YOLOv7
Détails sur YOLOX#
YOLOX a suivi une autre voie en revenant à la détection sans ancres, tout en simplifiant considérablement l’architecture de la tête et en maintenant de solides performances.
- Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
- Organisation : Megvii
- Date : 2021-07-18
- Arxiv : https://arxiv.org/abs/2107.08430
- GitHub : https://github.com/Megvii-BaseDetection/YOLOX
- Documentation : Documentation officielle de YOLOX
Différences et innovations architecturales#
Les principales différences entre YOLOv7 et YOLOX concernent leurs approches de l’extraction des caractéristiques, de la prédiction des boîtes englobantes et de l’affectation des étiquettes.
YOLOX : le pionnier des modèles sans ancres#
YOLOX a révolutionné la famille YOLO en adoptant une conception sans ancres. Les détecteurs traditionnels à ancres nécessitent un réglage heuristique complexe du regroupement des boîtes d’ancrage, qui peut fortement dépendre du jeu de données. En éliminant les boîtes d’ancrage, YOLOX a considérablement réduit le nombre de paramètres de conception. De plus, YOLOX utilise une tête découplée, qui répartit les tâches de classification et de localisation dans des branches distinctes du réseau. Cette approche résout le conflit inhérent entre la classification d’un objet et la régression de ses coordonnées spatiales. YOLOX intègre également des stratégies avancées d’affectation des étiquettes, comme SimOTA, qui répartit dynamiquement les échantillons positifs pendant l’entraînement.
YOLOv7 : agrégation étendue et efficace des couches#
YOLOv7 est revenu aux méthodes à ancres, mais a introduit Extended Efficient Layer Aggregation Network (E-ELAN). E-ELAN optimise la longueur du chemin de gradient afin que le réseau apprenne efficacement à différentes profondeurs. L’architecture s’appuie fortement sur des techniques de reparamétrisation, qui fusionnent les couches convolutives pendant l’inférence pour augmenter la vitesse sans sacrifier la précision. La stratégie « bag-of-freebies » de YOLOv7 comprend des innovations comme les convolutions reparamétrées planifiées et l’affectation des étiquettes guidée par la tête de prédiction, de grossière à fine, qui portent le mAP du modèle à des niveaux remarquables.
YOLOX a simplifié les pipelines de déploiement grâce à sa configuration sans ancres, mais les architectures modernes d’Ultralytics ont depuis perfectionné cette approche en éliminant le besoin de boîtes prédéfinies dans les générations récentes.
Comparaison des performances#
Pour évaluer ces modèles en vue d’une utilisation en production, il est essentiel de trouver un équilibre entre précision et efficacité de calcul. Le tableau ci-dessous illustre les compromis et met en gras les métriques les plus performantes.
| 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 |
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.9 |
Comme le montre le tableau ci-dessus, YOLOv7x atteint le mAP le plus élevé, ce qui le rend particulièrement précis sur les jeux de données complexes. À l’inverse, YOLOX-Nano est très optimisé pour les environnements soumis à des contraintes extrêmes en matière de ressources. Toutefois, les deux modèles présentent une utilisation de la mémoire relativement élevée pendant l’entraînement, comparés aux architectures modernes.
Méthodes d’entraînement et écosystème#
La facilité de mise en œuvre est un facteur essentiel pour les chercheurs et les développeurs. Historiquement, les anciennes versions de YOLO nécessitaient des scripts C++ fortement personnalisés ou une gestion complexe des dépendances.
Les avantages de l’écosystème Ultralytics#
YOLOv7 et YOLOX ne sont pas pris en charge nativement par le package Python Ultralytics ; pour les nouveaux projets, la meilleure approche consiste à utiliser un modèle Ultralytics YOLO dans l’écosystème Ultralytics, bien entretenu. Ultralytics fournit une API Python unifiée et très intuitive qui simplifie considérablement l’entraînement, la validation et le déploiement.
- Facilité d’utilisation : en quelques lignes de code, tu peux lancer une boucle d’entraînement et éviter la courbe d’apprentissage abrupte associée aux implémentations PyTorch brutes.
- Efficacité de l’entraînement : les modèles Ultralytics YOLO utilisent intrinsèquement moins de mémoire pendant l’entraînement que les modèles Transformer lourds comme RT-DETR. Les développeurs peuvent ainsi maximiser la taille des lots sur du matériel grand public.
- Polyvalence : au-delà des simples boîtes englobantes, l’écosystème prend facilement en charge des tâches comme la segmentation d’instances et l’estimation de pose.
Voici un exemple entièrement exécutable qui montre comment entraîner un modèle à l’aide de l’API Ultralytics :
from ultralytics import YOLO
# Charger un modèle préentraîné
model = YOLO("yolov8n.pt") # Des poids immédiatement disponibles pour un apprentissage par transfert rapide
# Entraîner efficacement le modèle sur tes données personnalisées
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
batch=16,
device="0", # Utilise une gestion optimale de la mémoire CUDA
)
# Exporter facilement vers ONNX ou TensorRT
model.export(format="onnx")En standardisant le pipeline d’exportation, les développeurs peuvent facilement convertir leurs poids vers des formats comme TensorRT ou ONNX, garantissant une inférence rapide sur le matériel cible.
Cas d’utilisation idéaux et applications concrètes#
Le choix entre YOLOX et YOLOv7 dépend en grande partie des cibles de déploiement :
- YOLOX pour l’IA en périphérie : Les variantes YOLOX-Nano et YOLOX-Tiny sont particulièrement adaptées au déploiement sur des appareils à faible consommation. Si tu construis une caméra de sécurité intelligente sur Raspberry Pi, les convolutions simples sans ancres de YOLOX se transposent facilement aux accélérateurs en périphérie.
- YOLOv7 pour l’analyse haute fidélité : Si tu traites des images satellites haute résolution ou effectues un contrôle qualité dans la fabrication complexe, le mAP élevé de YOLOv7x, rendu possible par des GPU NVIDIA haut de gamme, garantit la détection des anomalies les plus infimes.
L’avenir : passer à Ultralytics YOLO26#
YOLOv7 et YOLOX ont marqué leur époque, mais le domaine de la vision par ordinateur a considérablement évolué. Pour les nouveaux déploiements, les développeurs devraient se tourner vers Ultralytics YOLO26, sorti en janvier 2026. Ce modèle de pointe rassemble les meilleures approches architecturales dans un système prêt pour la production.
Voici pourquoi il est vivement recommandé de passer à ce modèle :
- Conception de bout en bout sans NMS : La tête facultative one-to-one de YOLO26 (
nms=False) élimine la suppression non maximale (NMS) lors du post-traitement. Introduite initialement dans YOLOv10, cette approche garantit une faible latence constante et simplifie le déploiement sur les appareils dépourvus de prise en charge matérielle de la NMS. - Suppression de la DFL : En supprimant la Distribution Focal Loss, YOLO26 offre une compatibilité nettement améliorée avec les appareils périphériques à faible consommation et facilite les exportations ONNX.
- Optimiseur MuSGD : Inspiré des innovations liées à l’entraînement des LLM, YOLO26 utilise un optimiseur hybride MuSGD qui garantit une convergence plus rapide et une dynamique d’entraînement extrêmement stable.
- Inférence CPU jusqu’à 43 % plus rapide : Fortement optimisé pour le matériel réel, YOLO26 fonctionne parfaitement sur les CPU standard sans nécessiter d’infrastructure GPU coûteuse.
- ProgLoss + STAL : Progressive Loss et Small-Target-Aware Label Assignment améliorent considérablement la reconnaissance des petits objets, une fonctionnalité essentielle pour les inspections aériennes par drone et les réseaux IoT sophistiqués.
Pour les développeurs qui recherchent le meilleur compromis de performances en détection d’objets, en segmentation et au-delà, le déploiement de modèles via la plateforme Ultralytics offre une expérience inégalée et sans friction.
Conclusion#
YOLOX et YOLOv7 ont introduit des techniques déterminantes qui ont façonné l’évolution de l’IA visuelle open source. YOLOX a prouvé la viabilité des têtes découplées sans ancres, tandis que YOLOv7 a démontré l’immense potentiel de la reparamétrisation du chemin de gradient. Aujourd’hui, l’écosystème Ultralytics te permet de t’appuyer sur ces idées avec les modèles Ultralytics YOLO modernes et de passer facilement à la pointe de la technologie avec YOLO26, afin de pérenniser ta prochaine application de vision par ordinateur.