Passer au contenu

RTDETRv2 vs. YOLOv8 : Une comparaison technique

Dans le paysage en rapide évolution de la vision par ordinateur, le choix du bon modèle de détection d'objets est essentiel au succès d'un projet. Deux philosophies architecturales distinctes dominent actuellement le domaine : les approches basées sur les transformateurs représentées par RTDETRv2 et les conceptions de réseaux neuronaux convolutionnels (CNN) hautement optimisées illustrées par Ultralytics YOLOv8.

Bien que RTDETRv2 repousse les limites de la précision en utilisant des transformateurs de vision, YOLOv8 affine l'équilibre entre la vitesse, la précision et la facilité de déploiement. Cette comparaison explore les spécifications techniques, les différences architecturales et les mesures de performance pratiques pour aider les développeurs et les chercheurs à sélectionner la solution optimale pour leurs applications.

Métriques de performance : vitesse, précision et efficacité

Le paysage des performances met en évidence un compromis distinct. RTDETRv2 se concentre sur la maximisation de la précision moyenne (mAP) grâce à des mécanismes d'attention complexes, tandis que YOLOv8 privilégie un équilibre polyvalent entre la vitesse d'inférence en temps réel et une haute précision, adapté au déploiement en périphérie et dans le cloud.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
RTDETRv2-s64048.1-5.032060
RTDETRv2-m64051.9-7.5136100
RTDETRv2-l64053.4-9.7642136
RTDETRv2-x64054.3-15.0376259
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

Analyse des résultats

Les données révèlent plusieurs informations essentielles pour les stratégies de déploiement :

  • Efficacité de calcul : YOLOv8 démontre une efficacité supérieure. Par exemple, YOLOv8l atteint une quasi-parité en termes de précision (52,9 mAP) avec RTDETRv2-l (53,4 mAP) tout en fonctionnant avec des vitesses d’inférence plus rapides sur GPU.
  • Performance du CPU : YOLOv8 offre des performances documentées et robustes sur le matériel CPU, ce qui en fait le choix pratique pour les appareils Edge AI dépourvus d’accélérateurs dédiés. Les benchmarks RTDETRv2 pour le CPU sont souvent indisponibles en raison du coût de calcul élevé des couches de transformateur.
  • Efficacité des paramètres : Les modèles YOLOv8 nécessitent systématiquement moins de paramètres et d'opérations en virgule flottante (FLOP) pour obtenir des résultats compétitifs, ce qui se traduit directement par une consommation de mémoire plus faible et des temps de formation plus rapides.

Considérations matérielles

Si votre cible de déploiement implique des CPU standard (comme les processeurs Intel) ou des appareils embarqués (comme Raspberry Pi), l'architecture basée sur CNN de YOLOv8 offre un avantage significatif en termes de latence par rapport aux opérations lourdes en transformateurs de RTDETRv2.

RTDETRv2 : Détection en temps réel avec Transformers

RTDETRv2 (Real-Time Detection Transformer v2) représente l’évolution continue de l’application des Vision Transformers (ViT) à la détection d’objets. Développé par des chercheurs de Baidu, il vise à résoudre les problèmes de latence traditionnellement associés aux modèles basés sur DETR tout en conservant leur capacité à comprendre le contexte global.

Auteurs : Wenyu Lv, Yian Zhao, Qinyao Chang, Kui Huang, Guanzhong Wang et Yi Liu
Organisation :Baidu
Date : 2024-07-24 (version 2)
Arxiv :https://arxiv.org/abs/2304.08069
GitHub :https://github.com/lyuwenyu/RT-DETR/tree/main/rtdetrv2_pytorch

Architecture

RTDETRv2 utilise une architecture hybride qui combine un backbone (généralement un CNN comme ResNet) avec un encodeur-décodeur de transformateur efficace. Une caractéristique clé est le découplage de l'interaction intra-échelle et de la fusion inter-échelles, ce qui aide le modèle à capturer les dépendances à longue portée à travers l'image. Cela permet au modèle de "faire attention" à différentes parties d'une scène simultanément, améliorant potentiellement les performances dans les environnements encombrés.

Points forts et faiblesses

La principale force de RTDETRv2 réside dans sa grande précision sur des ensembles de données complexes où le contexte global est crucial. En évitant les boîtes d'ancrage en faveur des requêtes d'objets, il simplifie le pipeline de post-traitement en supprimant la nécessité d'une Suppression Non-MaximaleNMS

Cependant, ces avantages ont un coût :

  • Intensité des ressources : Le modèle nécessite beaucoup plus de mémoire GPU pour l'entraînement par rapport aux CNN.
  • Convergence plus lente : Les modèles basés sur les Transformers prennent généralement plus de temps à s'entraîner jusqu'à la convergence.
  • Polyvalence limitée : Il est principalement conçu pour la détection de boîtes englobantes, manquant de support natif pour la segmentation ou l'estimation de pose.

En savoir plus sur RTDETRv2

Ultralytics YOLOv8 : Vitesse, polyvalence et écosystème

Ultralytics YOLOv8 est un modèle de détection d’objets sans ancrage à la pointe de la technologie qui établit la norme en matière de polyvalence et de facilité d’utilisation dans l’industrie. Il s’appuie sur l’héritage de la famille YOLO, en introduisant des améliorations architecturales qui améliorent les performances tout en conservant la vitesse en temps réel qui a fait la renommée de YOLO.

Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
Organisation :Ultralytics
Date : 2023-01-10
GitHub :https://github.com/ultralytics/ultralytics
Docs :https://docs.ultralytics.com/models/yolov8/

Architecture

YOLOv8 dispose d'un backbone CSP (Cross Stage Partial) Darknet et d'un neck PANet (Path Aggregation Network), culminant dans une tête de détection découplée. Cette architecture est sans ancres, ce qui signifie qu'elle prédit directement les centres des objets, ce qui simplifie la conception et améliore la généralisation. Le modèle est hautement optimisé pour les unités de traitement de tenseurs et les GPU, assurant un débit maximal.

Principaux avantages pour les développeurs

  • Facilité d'utilisation : Grâce à une API Pythonique et à une CLI robuste, les utilisateurs peuvent entraîner et déployer des modèles en quelques lignes de code. La documentation complète abaisse la barrière à l'entrée pour les débutants comme pour les experts.
  • Écosystème bien maintenu : Soutenu par Ultralytics, YOLOv8 bénéficie de mises à jour fréquentes, du soutien de la communauté et d’une intégration transparente avec des outils tels que TensorBoard et MLFlow.
  • Polyvalence : Contrairement à RTDETRv2, YOLOv8 prend en charge un large éventail de tâches prêtes à l’emploi, notamment la segmentation d’instance, l’estimation de pose, la classification et la détection d’objets orientés (OBB).
  • Efficacité de l'entraînement : Le modèle est conçu pour s'entraîner rapidement avec des besoins en mémoire CUDA réduits, ce qui le rend accessible aux chercheurs disposant de budgets matériels limités.

En savoir plus sur YOLOv8

Plongée en profondeur : Architecture et cas d'utilisation

Le choix entre ces deux modèles dépend souvent des exigences spécifiques de l'environnement d'application.

Philosophie architecturale

YOLOv8 repose sur des réseaux neuronaux convolutionnels (CNN), qui excellent dans le traitement efficace des caractéristiques locales et des hiérarchies spatiales. Cela les rend intrinsèquement plus rapides et moins gourmands en mémoire. La dépendance de RTDETRv2 aux Transformateurs lui permet de modéliser efficacement les relations globales, mais introduit une complexité quadratique par rapport à la taille de l'image, ce qui entraîne une latence et une utilisation de la mémoire plus élevées, en particulier à des résolutions élevées.

Cas d'utilisation idéaux

Choisissez YOLOv8 lorsque :

  • Les performances en temps réel sont essentielles : Les applications telles que la conduite autonome, l’analyse vidéo et le contrôle de la qualité de la fabrication nécessitent une faible latence.
  • Matériel Contraint : Le déploiement sur NVIDIA Jetson, Raspberry Pi ou des appareils mobiles est transparent avec YOLOv8.
  • Le multi-tâches est nécessaire : Si votre projet nécessite de segmenter des objets ou de suivre des keypoints en plus de la détection, YOLOv8 offre un framework unifié.
  • Cycles de développement rapides : L'écosystèmeUltralytics accélère l'étiquetage des données, la formation et le déploiement.

Choisissez RTDETRv2 lorsque :

  • La précision maximale est la seule métrique : Pour les benchmarks académiques ou les scénarios où une puissance de calcul infinie est disponible et où chaque fraction de mAP compte.
  • Occlusions complexes : Dans les scènes très encombrées où la compréhension de la relation entre les pixels distants est vitale, le mécanisme d'attention globale peut offrir un léger avantage.

Résumé de la comparaison

Bien que RTDETRv2 présente une avancée académique intéressante dans l'application des transformateurs à la détection, YOLOv8 reste le choix supérieur pour la plupart des applications pratiques. Son équilibre entre vitesse, précision et efficacité est inégalé. De plus, la capacité d'effectuer plusieurs tâches de vision par ordinateur au sein d'une seule bibliothèque conviviale en fait un outil polyvalent pour le développement de l'IA moderne.

Pour les développeurs à la recherche des toutes dernières performances et ensembles de fonctionnalités, se tourner vers des itérations plus récentes comme YOLO11 offre des gains d'efficacité et de précision encore plus importants par rapport à YOLOv8 et RTDETRv2.

Exemple de code : Démarrage avec YOLOv8

L'intégration de YOLOv8 dans votre flux de travail est simple. Vous trouverez ci-dessous un exemple en python montrant comment charger un modèle pré-entraîné, exécuter l'inférence et l'exporter pour le déploiement.

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on a local image
# Ensure the image path is correct or use a URL
results = model("path/to/image.jpg")

# Export the model to ONNX format for deployment
success = model.export(format="onnx")

Explorer d'autres modèles

Pour une perspective plus large sur les architectures de détection d'objets, envisagez d'explorer ces comparaisons connexes :


Commentaires