YOLOX vs YOLOv10 : Comparaison de la détection d'objets en temps réel sans ancres et sans NMS

L'évolution des modèles de vision par ordinateur en temps réel a été marquée par des sauts architecturaux significatifs. Deux étapes cruciales de ce parcours sont YOLOX et YOLOv10. Sorti en 2021, YOLOX a réussi à combler le fossé entre la recherche académique et l'application industrielle en introduisant une conception sans ancres extrêmement efficace. Trois ans plus tard, YOLOv10 a révolutionné le domaine en éliminant le besoin de Non-Maximum Suppression (NMS) lors du post-traitement, repoussant 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, en t'apportant des éclairages pour t'aider à choisir le bon outil pour ton prochain projet de détection d'objets.

Origines et métadonnées du modèle

Comprendre les origines de ces modèles offre un contexte sur leurs choix architecturaux et leurs environnements de déploiement prévus.

Détails sur 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
Documentation : https://yolox.readthedocs.io/en/latest/

En savoir plus sur YOLOX

Détails sur YOLOv10
Auteurs : Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han et Guiguang Ding
Organisation : Tsinghua University
Date : 23/05/2024
Arxiv : https://arxiv.org/abs/2405.14458
GitHub : https://github.com/THU-MIG/yolov10
Documentation : https://docs.ultralytics.com/models/yolov10/

En savoir plus sur YOLOv10

Innovations architecturales

Les différences fondamentales entre YOLOX et YOLOv10 résident dans la manière dont ils gèrent les prédictions de boîtes englobantes et le post-traitement.

YOLOX : Pionnier de la conception sans ancres

YOLOX a fait sensation en faisant passer la famille YOLO à une architecture sans ancres. 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 d'ajustements heuristiques requis pour les jeux 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 dans des voies distinctes. Cette approche a résolu le conflit entre l'identification de ce qu'est un objet et la détermination de là où il se trouve, conduisant à une amélioration notable de la vitesse de convergence et de la précision.

YOLOv10 : La révolution sans NMS

Bien que YOLOX ait simplifié la tête de détection, il dépendait toujours de la NMS pour filtrer les prédictions redondantes de boîtes englobantes. YOLOv10 a résolu ce goulot d'étranglement fondamental. En utilisant des affectations doubles cohérentes pendant l'entraînement, YOLOv10 permet 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 sortir directement les prédictions finales. Cette conception axée sur l'efficacité et la précision élimine totalement la NMS, réduisant considérablement la latence d'inférence sur les puces embarquées.

L'impact de la suppression de la NMS

La Non-Maximum Suppression est souvent une opération complexe à accélérer sur les unités de traitement neuronal (NPUs). En la supprimant, YOLOv10 permet au graphe complet du modèle de s'exécuter de manière transparente sur du matériel spécialisé, améliorant radicalement la compatibilité avec des frameworks d'optimisation comme OpenVINO et TensorRT.

Mesures de performance et comparaison

Lors de l'évaluation des modèles pour la production, il est essentiel d'équilibrer la précision avec la charge de calcul. Le tableau ci-dessous illustre les compromis entre différentes échelles de YOLOX et de YOLOv10.

Modèletaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051,1-16.199.1281.9
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221,6
YOLOv10m64051.3-5.4815.459,1
YOLOv10b64052.7-6.5424.492,0
YOLOv10l64053.3-8.3329.5120,3
YOLOv10x64054,4-12.256.9160,4

Analyse des données

Les mesures démontrent clairement le saut générationnel de YOLOv10. Par exemple, YOLOv10-S atteint une mean Average Precision de 46,7 % par rapport aux 46,9 % de YOLOX-m, mais le fait en utilisant moins d'un tiers des paramètres (7,2M contre 25,3M) et beaucoup moins de FLOPs. De plus, le modèle haut de gamme YOLOv10-X pousse le mAP à 54,4 %, le rendant très compétitif pour les tâches exigeantes en précision tout en restant plus rapide que l'ancienne architecture YOLOX-x.

L'avantage de l'écosystème Ultralytics

Bien que YOLOX reste une implémentation de recherche open-source robuste, l'adoption de YOLOv10 te donne un accès immédiat à l'écosystème bien entretenu fourni par Ultralytics. Choisir un modèle supporté par Ultralytics garantit une expérience utilisateur rationalisée, caractérisée par une API simple et une documentation complète.

Les développeurs bénéficient grandement des besoins en mémoire du framework ; l'entraînement des modèles Ultralytics consomme généralement beaucoup moins de mémoire CUDA que des alternatives lourdes basées sur les Transformer comme RT-DETR. Cette empreinte d'entraînement efficace permet des tailles de lot plus grandes sur du matériel grand public, accélérant ainsi le délai 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 basculer de manière transparente entre la détection d'objets, la segmentation d'instances et l' estimation de pose avec un minimum de changements de code.

Exemple d'entraînement et d'inférence

L'API unifiée rend la validation des idées incroyablement rapide. L'extrait suivant montre avec quelle facilité tu peux entraîner et déployer un modèle YOLOv10 en utilisant le backend 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, contournant entièrement les obstacles de compilation complexes.

Cas d'utilisation idéaux et scénarios de déploiement

Le choix entre ces architectures dépend largement de tes contraintes matérielles et des exigences spécifiques de ton 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 est le choix supérieur. Sa conception de bout en bout sans NMS garantit des temps d'exécution déterministes, ce qui est critique pour les systèmes de sécurité où une latence de post-traitement variable ne peut être tolérée. Les modèles atteignent facilement des fréquences d'images élevées sur des appareils comme la série NVIDIA Jetson.

Bases de référence académiques et microcontrôleurs Edge

YOLOX conserve sa valeur dans les contextes académiques où les chercheurs souhaitent une base de référence propre, avec une tête découplée, pour expérimenter des stratégies d'affectation d'étiquettes. De plus, le YOLOX-Nano exceptionnellement petit (moins d'un million de paramètres) peut être intégré sur des microcontrôleurs Edge très contraints où la mémoire se mesure en kilo-octets, à condition que le matériel puisse supporter les opérations de convolution standard.

Le standard ultime : Ultralytics YOLO26

Bien que YOLOv10 ait marqué un pas de géant en supprimant la NMS, le domaine de la vision par ordinateur progresse rapidement. Pour les développeurs visant à implémenter dès aujourd'hui les meilleures performances de leur catégorie, nous recommandons vivement d'explorer YOLO26.

Sorti en tant que tout dernier standard en IA de vision, YOLO26 reprend les idées fondamentales de ses prédécesseurs et les booste. Il offre l'équilibre de performance ultime, supportant nativement la détection, la segmentation, la pose et les boîtes englobantes orientées.

Voici pourquoi YOLO26 est le choix recommandé pour les pipelines de vision par ordinateur modernes :

  • Conception de bout en bout sans NMS : S'appuyant sur les percées de YOLOv10, YOLO26 est nativement de bout en bout, garantissant des temps d'inférence plus rapides et déterministes sans goulots d'étranglement dus au post-traitement.
  • Inférence CPU jusqu'à 43 % plus rapide : Il est spécifiquement optimisé pour l'Edge computing, garantissant des performances exceptionnelles sur les processeurs mobiles et les appareils dépourvus de GPU dédiés.
  • Optimiseur MuSGD : Inspiré par l'entraînement des grands modèles de langage (plus précisément Kimi K2 de Moonshot AI), YOLO26 utilise un hybride de SGD et de 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 critique pour des domaines exigeants comme l'imagerie aérienne et la navigation par drone.
  • Suppression de DFL : En supprimant la Distribution Focal Loss, YOLO26 simplifie le graphe du modèle pour une exportation sans friction vers les appareils Edge et basse consommation.
  • Améliorations spécifiques aux tâches : Que tu utilises l'estimation de vraisemblance logarithmique résiduelle (RLE) pour l'estimation de pose ou une perte d'angle spécialisée pour l'OBB, YOLO26 est finement ajusté pour chaque tâche de vision majeure.

Pour les développeurs prêts à mettre à niveau leurs pipelines avec les outils d'entraînement et de déploiement les plus efficaces disponibles, la transition vers la plateforme Ultralytics et l'utilisation de YOLO26 garantissent que tu restes à 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 un support communautaire étendu et une robustesse éprouvée.

Commentaires