YOLOv5 EfficientDet : évaluation des architectures de détection d'objets en temps réel
Lorsque vous vous lancez dans un nouveau projet de vision par ordinateur, le choix de l'architecture de réseau neuronal appropriée est l'une des décisions les plus importantes que vous aurez à prendre. Ce guide fournit une comparaison technique approfondie entre Ultralytics YOLOv5 et EfficientDet Google. En analysant leurs architectures, leurs mesures de performance et leurs écosystèmes de formation, nous souhaitons aider les développeurs et les chercheurs à identifier le meilleur modèle de détection d'objets pour leurs environnements de déploiement spécifiques.
Alors qu'EfficientDet a introduit des concepts novateurs en matière de mise à l'échelle des composés et de fusion des caractéristiques, YOLOv5 a révolutionné le secteur en démocratisant l'accès à l'IA haute performance grâce à son PyTorch , son expérience utilisateur simplifiée et son équilibre inégalé entre vitesse et précision.
Ultralytics YOLOv5: la norme industrielle en matière d'accessibilité
Sorti à l'été 2020, YOLOv5 un tournant décisif dans la YOLO . Passant du framework Darknet basé sur C à PyTorch natif, il est devenu l'architecture de référence pour les développeurs cherchant à créer, former et déployer rapidement des modèles.
- Auteurs : Glenn Jocher
- Organisation :Ultralytics
- Date : 2020-06-26
- GitHub :https://github.com/ultralytics/yolov5
- Documentation :https://platform.ultralytics.com/ultralytics/yolov5
Innovations architecturales
YOLOv5 réputé pour son architecture hautement optimisée qui privilégie un cycle de vie fluide de l'apprentissage automatique. Il utilise une structure CSPDarknet53 modifiée associée à un cou de réseau d'agrégation de chemins (PANet), ce qui améliore considérablement la propagation des caractéristiques à travers plusieurs échelles spatiales.
Les avancées clés incluent :
- Augmentation de données Mosaic : Cette technique d'entraînement combine quatre images d'entraînement distinctes en une seule mosaïque. Cela force le modèle à apprendre à identifier les objets dans des contextes spatiaux complexes et augmente significativement sa capacité à detect de petites cibles.
- Apprentissage automatique des boîtes d'ancrage: Avant le début de l'entraînement, YOLOv5 analyse vos données d'entraînement personnalisées et calcule automatiquement les dimensions optimales des boîtes d'ancrage à l'aide du clustering k-means.
- Efficacité de la mémoire : Comparé aux modèles lourds basés sur des transformeurs, YOLOv5 maintient une empreinte mémoire significativement plus faible pendant l'entraînement et l'inférence, ce qui lui permet de fonctionner sans problème sur du matériel grand public.
EfficientDet : détection d'objets évolutive
Présenté par Google en 2019, EfficientDet visait à fournir une famille de détecteurs d'objets évolutifs. Il s'appuie sur la structure de classification d'images EfficientNet et introduit un nouveau mécanisme de fusion des caractéristiques.
- Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
- Organisation :Google
- Date : 2019-11-20
- Arxiv :https://arxiv.org/abs/1911.09070
- GitHub :https://github.com/google/automl/tree/master/efficientdet
- Documentation :https://github.com/google/automl/tree/master/efficientdet#readme
Innovations architecturales
La proposition principale d'EfficientDet réside dans son approche systématique de la mise à l'échelle et de l'agrégation des fonctionnalités :
- BiFPN (Réseau pyramidal de caractéristiques bidirectionnel) : Contrairement aux FPN traditionnels qui ne transmettent l'information que de haut en bas, BiFPN permet une fusion de caractéristiques multi-échelle rapide et facile en introduisant des poids apprenables pour apprendre l'importance des différentes caractéristiques d'entrée.
- Mise à l'échelle composée : EfficientDet met à l'échelle conjointement la résolution, la profondeur et la largeur pour tous les réseaux de backbone, de caractéristiques et de prédiction de boîtes/classes, ce qui donne des modèles allant du léger D0 au massif D7.
En savoir plus sur EfficientDet
Différences entre les cadres
Alors qu'EfficientDet s'appuie fortement sur le TensorFlow et aux bibliothèques AutoML, YOLOv5 de manière native dans PyTorch, offrant ce que de nombreux développeurs considèrent comme un flux de travail plus intuitif, plus pythonesque et plus facile à déboguer.
Comparaison des performances et des indicateurs
Lorsqu'on compare ces modèles, il est essentiel d'évaluer leurs performances à l'aide de benchmarks standard tels que COCO . Le tableau ci-dessous met en évidence les compromis entre la taille, la puissance de calcul requise (FLOP) et la vitesse d'inférence.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.4 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Analyse équilibrée
YOLOv5 excelle par sa flexibilité de déploiement et sa compatibilité avec l'accélération matérielle native. Remarquez les vitesses fulgurantes de TensorRT sur le GPU T4. Cela rend YOLOv5 incroyablement adapté à l'analyse vidéo à haut débit et aux pipelines d'inférence en temps réel. De plus, l'écosystème Ultralytics permet d'exporter vers des formats comme ONNX, CoreML et TensorRT en une seule commande.
EfficientDet offre une excellente efficacité en termes de paramètres. Pour un nombre de paramètres donné, il extrait souvent une précision moyenne (mAP) élevée. Cependant, cette efficacité théorique ne se traduit pas toujours par des temps d'inférence plus rapides en temps réel sur les GPU périphériques en raison du routage complexe de la couche BiFPN, qui peut être limitée par la bande passante mémoire plutôt que par le calcul.
Écosystème et facilité d'utilisation
L'avantage déterminant du choix d'un Ultralytics réside dans l'écosystème qui l'entoure. YOLOv5 partie d'un référentiel très bien entretenu, activement développé et bénéficiant d'un soutien massif de la communauté.
Avec l'introduction de la Ultralytics , les utilisateurs peuvent passer de manière transparente de la collecte de données au déploiement. Cette plateforme prend en charge l'annotation automatique, la formation dans le cloud et la surveillance des modèles dès son installation. En revanche, la formation d'EfficientDet nécessite souvent de naviguer dans les complexités des anciennes API de détection TensorFlow , ce qui peut représenter une courbe d'apprentissage abrupte pour le prototypage rapide.
De plus, la polyvalence YOLOv5 va au-delà des boîtes englobantes. Grâce à des mises à jour continues, le Ultralytics prend en charge nativement la segmentation d'instances et la classification d'images, fournissant une API unifiée pour plusieurs tâches de vision par ordinateur.
Cas d'utilisation idéaux
- Choisissez YOLOv5 lorsque : Vous avez besoin d'un prototypage rapide, d'une expérience d'entraînement fluide et d'un déploiement en périphérie hautement optimisé. Il est idéal pour les drones, l'analyse du commerce de détail et les applications mobiles où une faible latence est critique.
- Choisissez EfficientDet lorsque : Vous opérez strictement dans un environnement Google Cloud/TensorFlow AutoML et que vous exigez une précision maximale par paramètre sans contraintes strictes de latence en temps réel.
La prochaine génération : adopter YOLO26
Si YOLOv5 un outil fiable, le domaine de la vision par ordinateur a évolué. Pour les développeurs à la recherche de la technologie la plus avancée en 2026, YOLO26 représente le nouveau summum de la Ultralytics .
S'appuyant sur l'héritage de ses prédécesseurs (comme YOLOv8 et YOLO11), YOLO26 introduit des innovations révolutionnaires :
- Conception de bout en bout sans NMS : YOLO26 élimine nativement le besoin de post-traitement par Non-Maximum Suppression. Cela réduit significativement la variance de latence et simplifie l'architecture de déploiement.
- Jusqu'à 43 % plus rapide pour l'inférence CPU : Fortement optimisé pour l'IA en périphérie, il apporte des vitesses sans précédent aux appareils périphériques à faible consommation et aux CPU standards sans GPU dédiés.
- Optimiseur MuSGD : Inspiré par les techniques d'entraînement des grands modèles linguistiques (LLM), cet hybride de SGD et Muon assure un entraînement très stable et une convergence rapide.
- Fonctions de perte avancées : L'intégration de ProgLoss et STAL améliore considérablement la reconnaissance des petites cibles, ce qui est vital pour l'imagerie de drones à haute altitude et la robotique.
- Suppression de la DFL : En supprimant la Distribution Focal Loss, le processus d'exportation du modèle est rationalisé, améliorant encore la compatibilité entre divers accélérateurs matériels.
Les utilisateurs intéressés par la découverte d'autres architectures récentes au sein de Ultralytics peuvent également comparer des modèles tels que YOLOv10 ou RT-DETR.
La migration, c'est facile
Python Ultralytics est conçue pour être compatible en amont et en aval. La mise à niveau de YOLOv5 YOLO26 est aussi simple que de modifier la chaîne de poids du modèle dans votre code !
Exemple de code : apprentissage et inférence
Pour démontrer la facilité d'utilisation inégalée de Ultralytics , voici comment vous pouvez entraîner et exécuter une inférence à l'aide d'un YOLO moderne. Ce code est 100 % exécutable et gère automatiquement le téléchargement des ensembles de données, les boucles d'entraînement et la validation.
from ultralytics import YOLO
# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Display the image with bounding boxes
inference_results[0].show()
En priorisant l'expérience utilisateur, en maintenant un écosystème robuste et en repoussant continuellement les limites du possible avec des mises à jour comme YOLO26, Ultralytics garantit que les développeurs disposent toujours des meilleurs outils pour résoudre les défis d'intelligence visuelle du monde réel.