YOLOv6.YOLOv6 vs YOLOX : une analyse approfondie de l'évolution de la détection d'objets en temps réel
Le domaine de la détection d'objets a évolué rapidement, avec de nouvelles architectures repoussant sans cesse les limites en matière de vitesse et de précision. YOLOv6.YOLOv6 et YOLOX constituent deux étapes importantes dans cette évolution. Bien que les deux visent à offrir des performances en temps réel, elles divergent considérablement dans leur philosophie architecturale et leurs applications prévues.
YOLOv6.YOLOv6, développé par Meituan, est spécialement conçu pour les applications industrielles, donnant la priorité à un débit élevé sur du matériel dédié tel que les GPU. À l'inverse, YOLOX, de Megvii, a introduit une conception de détecteur haute performance sans ancrage qui est devenue très populaire dans la communauté scientifique pour son architecture épurée et ses performances de base robustes.
Aperçus des modèles
YOLOv6-3.0 : Le bolide industriel
Publiée en tant que « rechargement complet » de la version originale YOLOv6, la version 3.0 met fortement l'accent sur les optimisations techniques pour le déploiement. Elle utilise une structure de type RepVGG qui est efficace pendant l'inférence mais complexe pendant l'entraînement, ce qui en fait un choix idéal pour l'automatisation industrielle et la surveillance statique lorsque GPU est disponible.
- Auteurs : Chuyi Li, Lulu Li, Yifei Geng, Hongliang Jiang, Meng Cheng, Bo Zhang, Zaidan Ke, Xiaoming Xu et Xiangxiang Chu
- Organisation :Meituan
- Date : 2023-01-13
- Arxiv:YOLOv6 v3.0 : Un rechargement complet
- GitHub :meituan/YOLOv6
YOLOX : Le pionnier sans ancrage
YOLOX a redynamisé la YOLO en 2021 en adoptant un mécanisme sans ancrage et en découplant la tête de prédiction. Cela a simplifié le processus d'entraînement en supprimant la nécessité du regroupement manuel des boîtes d'ancrage, un point faible courant dans les générations précédentes. Sa stratégie d'attribution d'étiquettes « SimOTA » lui permet de gérer efficacement l'occlusion et les différentes échelles d'objets.
- Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
- Organisation :Megvii
- Date : 2021-07-18
- Arxiv:YOLOX : Dépasser la série YOLO en 2021
- GitHub :Megvii-BaseDetection/YOLOX
Analyse des performances
Lorsque l'on compare ces modèles, le contexte matériel est crucial. YOLOv6. YOLOv6 est fortement optimisé pour TensorRT les GPU NVIDIA , affichant souvent un FPS supérieur dans ces environnements spécifiques. YOLOX offre un profil de performances équilibré qui reste compétitif, en particulier dans ses configurations légères « Nano » et « Tiny » pour les appareils périphériques.
Le tableau ci-dessous illustre les mesures de performance sur l'ensemble COCO .
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv6-3.0n | 640 | 37.5 | - | 1.17 | 4.7 | 11.4 |
| YOLOv6-3.0s | 640 | 45.0 | - | 2.66 | 18.5 | 45.3 |
| YOLOv6-3.0m | 640 | 50.0 | - | 5.28 | 34.9 | 85.8 |
| YOLOv6-3.0l | 640 | 52.8 | - | 8.95 | 59.6 | 150.7 |
| 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 |
Interprétation des performances
Alors que YOLOv6. YOLOv6 affiche un FPS plus élevé sur les GPU grâce à la fusion de blocs RepVGG, YOLOX-Nano reste une option incroyablement légère pour les CPU limités, avec moins de paramètres et de FLOP que la plus petite YOLOv6 .
Différences architecturales clés
Innovations YOLOv6.0
YOLOv6.YOLOv6 introduit un réseau d'agrégation de chemins bidirectionnel (Bi-PAN), qui améliore la fusion des caractéristiques à différentes échelles. Il utilise l'Anchor-Aided Training (AAT), une approche hybride qui exploite l'attribution basée sur des ancres pendant l'entraînement pour stabiliser la tête d'inférence sans ancrage. De plus, il utilise de manière intensive l'auto-distillation pour améliorer la précision des modèles plus petits sans augmenter le coût de l'inférence.
Innovations YOLOX
YOLOX se définit par sa tête découplée, qui sépare les tâches de classification et de régression en différentes branches. Cette séparation conduit généralement à une convergence plus rapide et à une meilleure précision. Son innovation principale, SimOTA (Simplified Optimal Transport Assignment), traite l'attribution des étiquettes comme un problème de transport optimal, en attribuant dynamiquement des échantillons positifs à des vérités terrain sur la base d'une fonction de coût globale. Cela rend YOLOX robuste dans les scènes encombrées que l'on trouve souvent dans l'analyse du commerce de détail.
Cas d'utilisation et applications
Idéal pour YOLOv6.0
- Inspection industrielle : le débit élevé du modèle sur les GPU T4 le rend idéal pour détecter les défauts sur les chaînes de montage à cadence rapide.
- Surveillance intelligente des villes : pour traiter simultanément et en temps réel plusieurs flux vidéo, par exemple pour le comptage des véhicules ou l'analyse du flux de circulation.
- Automatisation du commerce de détail : systèmes de caisse à grande vitesse qui nécessitent une faible latence sur des serveurs périphériques dédiés.
Idéal pour YOLOX
- Recherche universitaire : son code source épuré et sa logique sans ancrage en font une excellente base de référence pour tester de nouvelles théories en vision par ordinateur.
- Appareils Legacy Edge : les variantes Nano et Tiny sont hautement optimisées pour les chipsets mobiles dont les ressources informatiques sont très limitées, comme les anciennes configurations Raspberry Pi.
- Détection à usage général : pour les projets nécessitant un équilibre entre précision et facilité de compréhension, sans la complexité d'un apprentissage tenant compte de la quantification.
L'avantage de l'écosystème Ultralytics
Bien que YOLOv6 YOLOX offrent tous deux des capacités robustes, leur utilisation via le Ultralytics offre des avantages distincts aux développeurs et aux entreprises.
- API unifiée et facilité d'utilisation : Ultralytics les boucles d'entraînement complexes en une Python simple. Que vous utilisiez YOLOv6, YOLOX ou la dernière version de YOLO26, le code reste cohérent.
- Polyvalence : contrairement aux référentiels d'origine qui se concentrent principalement sur la détection, Ultralytics la prise en charge de la segmentation d'instances, de l'estimation de pose et de l'Oriented Bounding Box (OBB) à tous les modèles pris en charge.
- Efficacité de l'entraînement : Ultralytics sont optimisés pour réduire l'utilisation de la mémoire pendant l'entraînement. Il s'agit d'un facteur essentiel par rapport à de nombreux modèles basés sur des transformateurs (tels que RT-DETR), qui nécessitent souvent CUDA importante.
- Déploiement : exportation vers des formats tels que ONNX, TensorRT, CoreMLet OpenVINO sont parfaitement intégrés, garantissant ainsi le bon fonctionnement de vos modèles sur n'importe quel matériel.
- Ultralytics : la Ultralytics vous permet de gérer des ensembles de données, de vous former dans le cloud et de déployer des modèles sans avoir à écrire de code standardisé volumineux.
La prochaine génération : YOLO26
Pour les développeurs à la recherche d'une technologie de pointe, le modèle YOLO26 surpasse à la fois YOLOX et YOLOv6 des domaines critiques, représentant une avancée significative en 2026.
- Conception NMS de bout en bout : YOLO26 est nativement de bout en bout, éliminant ainsi le post-traitement par suppression non maximale (NMS). Il en résulte un déploiement plus rapide et plus simple, ainsi qu'une variance de latence plus faible.
- Optimiseur MuSGD : inspiré des innovations en matière de formation LLM, le nouvel optimiseur MuSGD garantit une dynamique de formation plus stable et une convergence plus rapide, une première pour les modèles de vision.
- Vitesse et efficacité : en supprimant la perte focale de distribution (DFL) et en optimisant l'informatique de pointe, YOLO26 atteint CPU jusqu'à 43 % plus rapide, ouvrant ainsi de nouvelles possibilités pour l'IoT et la robotique.
- Précision améliorée : des fonctionnalités telles que ProgLoss et STAL apportent des améliorations notables dans la reconnaissance des petits objets, ce qui est crucial pour l'imagerie aérienne et les applications de drones.
Exemple de code
L'entraînement d'un modèle avec Ultralytics très simple. Le framework gère automatiquement l'augmentation des données, le réglage des hyperparamètres et la journalisation.
from ultralytics import YOLO
# Load a pretrained model (YOLO26 recommended for best performance)
model = YOLO("yolo26n.pt")
# Train the model on the COCO8 example dataset
# The system automatically handles data downloading and preparation
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")
Que vous choisissiez la puissance industrielle de YOLOv6. YOLOv6, le YOLOX adapté à la recherche ou le YOLO26 à la pointe de la technologie, Ultralytics garantit l'efficacité, l'évolutivité et la pérennité de votre flux de travail.