YOLOX vs YOLOv10: comparaison entre la détection d'objets en temps réel sans ancrage et NMS
L'évolution des modèles de vision par ordinateur en temps réel a été marquée par des avancées architecturales significatives. YOLOX et YOLOv10 constituent deux étapes cruciales de cette évolution. Lancé en 2021, YOLOX a réussi à combler le fossé entre la recherche universitaire et les applications industrielles en introduisant une conception sans ancrage très efficace. Trois ans plus tard, YOLOv10 le domaine en éliminant le besoin de suppression non maximale (NMS) pendant le post-traitement, repoussant ainsi les limites de l'efficacité et de la vitesse.
Cette comparaison technique complète explore les architectures, les mesures de performance et les cas d'utilisation idéaux pour les deux modèles, fournissant des informations qui vous aideront à choisir l'outil adapté à votre prochain projet de détection d'objets.
Origines du modèle et métadonnées
Comprendre les origines de ces modèles permet de mieux comprendre les choix architecturaux qui ont été faits et les environnements dans lesquels ils sont destinés à être déployés.
Détails YOLOX
Auteurs : Zheng Ge, Songtao Liu, Feng Wang, Zeming Li et Jian Sun
Organisation : Megvii
Date : 18/07/2021
Arxiv : https://arxiv.org/abs/2107.08430
GitHub : https://github.com/Megvii-BaseDetection/YOLOX
Documents : https://yolox.readthedocs.io/en/latest/
YOLOv10
Auteurs : Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han et Guiguang Ding
Organisation : Université Tsinghua
Date : 23 mai 2024
Arxiv : https://arxiv.org/abs/2405.14458
GitHub : https://github.com/THU-MIG/yolov10
Documents : ultralytics
Innovations architecturales
Les principales différences entre YOLOX et YOLOv10 dans la manière dont ils gèrent les prédictions de cadres de sélection et le post-traitement.
YOLOX : une conception novatrice sans ancrage
YOLOX a fait sensation en faisant passer la YOLO à une architecture sans ancrage. En prédisant le centre d'un objet plutôt que de s'appuyer sur des boîtes d'ancrage prédéfinies, YOLOX a considérablement réduit le nombre de paramètres de conception et de réglages heuristiques nécessaires pour les ensembles de données personnalisés. De plus, il a introduit une tête découplée, séparant les tâches de classification et de régression en deux voies distinctes. Cette approche a résolu le conflit entre l'identification d'un objet et la détermination de son emplacement, ce qui a entraîné une augmentation notable de la vitesse de convergence et de la précision.
YOLOv10 : La révolution sans NMS
Si YOLOX a simplifié la tête de détection, il s'appuyait toujours sur NMS filtrer les prédictions redondantes des boîtes englobantes. YOLOv10 ce problème fondamental. En utilisant des attributions doubles cohérentes pendant l'entraînement, YOLOv10 une détection native de bout en bout. Il utilise une tête « un-à-plusieurs » pendant l'entraînement pour garantir des signaux de supervision riches, tout en utilisant une tête « un-à-un » pendant l'inférence pour produire directement les prédictions finales. Cette conception holistique axée sur l'efficacité et la précision élimine NMS , réduisant ainsi considérablement la latence d'inférence sur les puces intégrées.
L'impact de la suppression NMS
La suppression non maximale est souvent une opération complexe à accélérer sur les unités de traitement neuronal (NPU). En la supprimant, YOLOv10 l'ensemble du graphe du modèle de s'exécuter de manière transparente sur du matériel spécialisé, améliorant considérablement la compatibilité avec les cadres d'optimisation tels que OpenVINO et TensorRT.
Indicateurs de performance et comparaison
Lors de l'évaluation des modèles pour la production, il est essentiel de trouver le juste équilibre entre précision et charge de calcul. Le tableau ci-dessous illustre les compromis entre différentes échelles de YOLOX et YOLOv10.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Analyse des données
Les mesures démontrent clairement le bond générationnel YOLOv10. Par exemple, YOLOv10 atteint une précision moyenne de 46,7 % contre 46,9 % pour YOLOX-m, mais en utilisant moins d'un tiers des paramètres (7,2 millions contre 25,3 millions) et un nombre nettement inférieur de FLOP. De plus, le modèle haut de gamme YOLOv10 porte la mAP 54,4 %, ce qui le rend très compétitif pour les tâches exigeant une grande précision, tout en restant plus rapide que l'ancienne architecture YOLOX-x.
L'avantage de l'écosystème Ultralytics
Si YOLOX reste une implémentation open source robuste destinée à la recherche, l'adoption YOLOv10 un accès immédiat à l'écosystème bien entretenu fourni par Ultralytics. Le choix d'un modèle Ultralytics garantit une expérience utilisateur simplifiée, caractérisée par une API simple et une documentation complète.
Les développeurs tirent largement parti des exigences mémoire du framework ; l'entraînement Ultralytics consomme généralement beaucoup moins CUDA que les alternatives lourdes basées sur des transformateurs telles que RT-DETR. Cette empreinte d'entraînement efficace permet des tailles de lots plus importantes sur du matériel grand public, ce qui accélère le temps entre la collecte des données et le déploiement du modèle. De plus, le framework offre une polyvalence inégalée, permettant aux utilisateurs de passer de manière transparente de la détection d'objets à la segmentation d'instances et à l'estimation de poses avec un minimum de modifications du code.
Exemple d'entraînement et d'inférence
L'API unifiée accélère considérablement la validation des idées. L'extrait suivant montre à quel point il est facile de former et de déployer un YOLOv10 à l'aide de PyTorch :
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", half=True)
En tirant parti des routines d'exportation intégrées, la conversion des modèles vers des formats tels que TensorRT ou ONNX ne nécessite qu'une seule ligne de code, ce qui permet de contourner complètement les obstacles complexes liés à la compilation.
Cas d'utilisation et scénarios de déploiement idéaux
Le choix entre ces architectures dépend en grande partie des contraintes matérielles et des exigences spécifiques à votre domaine.
Analyse vidéo en temps réel
Pour les applications nécessitant une latence ultra-faible, telles que la conduite autonome ou la surveillance du trafic en temps réel, YOLOv10 le choix idéal. Sa conception de bout en bout NMS garantit des temps d'exécution déterministes, ce qui est essentiel pour les systèmes de sécurité où une latence variable post-traitement ne peut être tolérée. Les modèles atteignent facilement des fréquences d'images élevées sur des appareils tels que ceux de la série NVIDIA .
Bases académiques et microcontrôleurs de pointe
YOLOX conserve toute sa valeur dans les milieux universitaires où les chercheurs recherchent une base de référence claire et découplée pour expérimenter des stratégies d'attribution d'étiquettes. De plus, le YOLOX-Nano, exceptionnellement petit (moins d'un million de paramètres), peut être intégré dans des microcontrôleurs périphériques très limités où la mémoire se mesure en kilo-octets, à condition que le matériel puisse prendre en charge les opérations de convolution standard.
La norme ultime : Ultralytics
Si YOLOv10 un bond en avant considérable en supprimant NMS, le domaine de la vision par ordinateur évolue rapidement. Pour les développeurs qui souhaitent mettre en œuvre les meilleures performances absolues à l'heure actuelle, nous recommandons vivement d'explorer YOLO26.
Publié comme la dernière norme en matière d'IA visuelle, YOLO26 reprend les idées fondamentales de ses prédécesseurs et les optimise. Il offre un équilibre de performances optimal, prenant en charge de manière native la détection, la segmentation, la pose et les cadres de sélection orientés.
Voici pourquoi YOLO26 est le choix recommandé pour les pipelines de vision par ordinateur modernes :
- Conception NMS de bout en bout : s'appuyant sur les avancées révolutionnaires de YOLOv10, YOLO26 est nativement de bout en bout, garantissant des temps d'inférence plus rapides et déterministes sans goulots d'étranglement liés au post-traitement.
- CPU jusqu'à 43 % plus rapide : il est spécialement optimisé pour l'informatique en périphérie, garantissant des performances exceptionnelles sur les processeurs mobiles et les appareils dépourvus de GPU discrets.
- Optimiseur MuSGD : inspiré par l'entraînement des grands modèles linguistiques (en particulier Kimi K2 de Moonshot AI), YOLO26 utilise un hybride de SGD Muon pour un entraînement incroyablement stable et une convergence rapide.
- ProgLoss + STAL : ces fonctions de perte avancées apportent des améliorations notables dans la reconnaissance des petits objets, ce qui est essentiel pour des domaines exigeants tels que l'imagerie aérienne et la navigation par drone.
- Suppression du DFL : en supprimant le Distribution Focal Loss, YOLO26 simplifie le graphe du modèle pour une exportation sans friction vers des appareils périphériques et à faible consommation d'énergie.
- Améliorations spécifiques à chaque tâche : que vous utilisiez l'estimation de la vraisemblance résiduelle (RLE) pour l'estimation de la pose ou la perte d'angle spécialisée pour l'OBB, YOLO26 est optimisé pour toutes les tâches visuelles majeures.
Pour les développeurs prêts à mettre à niveau leurs pipelines avec les outils de formation et de déploiement les plus efficaces disponibles, la transition vers la Ultralytics et l'utilisation de YOLO26 vous garantissent de rester à la pointe de l'intelligence artificielle. Les utilisateurs intéressés par des architectures plus anciennes mais stables peuvent également consulter YOLO11 ou YOLOv8 pour bénéficier d'un soutien communautaire étendu et d'une robustesse éprouvée.