YOLOv5 vs. EfficientDet : Une Comparaison Technique Détaillée
Dans le paysage évolutif de la vision par ordinateur, le choix de la bonne architecture de détection d'objets est essentiel pour la réussite d'un projet. Cette comparaison explore deux modèles très influents : Ultralytics YOLOv5connu pour son équilibre entre vitesse et facilité d'utilisation, et EfficientDet deGoogle, réputé pour son évolutivité et l'efficacité de ses paramètres. En examinant leurs architectures, leurs mesures de performance et leurs capacités de déploiement, les développeurs peuvent prendre des décisions éclairées adaptées aux besoins spécifiques de leurs applications.
Analyse des performances : Vitesse et efficacité
La principale différence entre ces deux architectures réside dans leur philosophie de conception concernant les ressources de calcul par rapport à la latence d'inférence. EfficientDet optimise les FLOP (opérations en virgule flottante) théoriques, ce qui le rend intéressant pour les analyses comparatives universitaires. À l'inverse, YOLOv5 donne la priorité à une faible latence sur le matériel pratique, en particulier les GPU, offrant des vitesses d'inférence en temps réel essentielles pour les environnements de production.
Le tableau ci-dessous illustre ce compromis sur l'ensemble de donnéesCOCO val2017. Alors que les modèles EfficientDet atteignent des mAP élevés avec moins de paramètres, YOLOv5 démontre des temps d'inférence beaucoup plus rapides sur les GPU NVIDIA T4 en utilisant TensorRT.
| 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 |
Comme on peut le voir, YOLOv5n atteint un temps de latence impressionnant de 1,12 ms sur le GPU, ce qui est nettement supérieur à la plus petite variante d'EfficientDet. Pour les applications où les millisecondes comptent, comme les véhicules autonomes ou les lignes de fabrication à grande vitesse, cet avantage en termes de vitesse est essentiel.
Différences architecturales
Comprendre la conception structurelle de chaque modèle permet de clarifier leurs caractéristiques de performance.
Ultralytics YOLOv5
YOLOv5 utilise un backbone CSPDarknet couplé à un cou PANet. Cette architecture est conçue pour maximiser le flux de gradient et l'efficacité de l'extraction des caractéristiques.
- Dorsale : Utilise les connexions Cross Stage Partial (CSP) pour réduire les informations redondantes du gradient, améliorant ainsi la capacité d'apprentissage tout en réduisant les paramètres.
- Cou : comprend un réseau d'agrégation de chemins (PANet) pour une fusion fiable de caractéristiques multi-échelles, améliorant la détection d'objets de différentes tailles.
- Tête : une tête de détection standard YOLO basée sur l'ancrage prédit directement les classes et les boîtes englobantes.
EfficientDet
EfficientDet s'appuie sur l'épine dorsale EfficientNet et introduit un réseau bidirectionnel pondéré de pyramides de caractéristiques (BiFPN).
- Dorsale : Utilise EfficientNet, qui échelonne uniformément la profondeur, la largeur et la résolution à l'aide d'un coefficient composé.
- Cou (BiFPN) : Une couche complexe d'intégration des caractéristiques qui permet aux informations de circuler à la fois de haut en bas et de bas en haut, en appliquant des poids aux différentes caractéristiques d'entrée pour souligner leur importance.
- Mise à l'échelle des composés : Il s'agit d'une innovation clé qui permet de faire évoluer ensemble le réseau principal, le BiFPN et les réseaux de prédiction des boîtes/classes.
En savoir plus sur EfficientDet
L'avantage Ultralytics : Ecosystème et facilité d'utilisation
Bien que les mesures brutes soient importantes, l'expérience du développeur dicte souvent le succès d'un projet. Ultralytics YOLOv5 excelle dans la fourniture d'un environnement soigné et centré sur l'utilisateur qui réduit considérablement le temps de développement.
Facilité d'utilisation et d'intégration
YOLOv5 est réputé pour sa facilité d'utilisation "prête à l'emploi". Le modèle peut être installé via une simple commande pip et utilisé avec un minimum de code. En revanche, les implémentations d'EfficientDet nécessitent souvent une installation plus complexe dans l'écosystème TensorFlow ou dans des dépôts de recherche spécifiques.
Flux de travail rationalisé
Avec Ultralytics, vous pouvez passer d'un ensemble de données à un modèle formé en quelques minutes. L'intégration avec des outils comme Ultralytics HUB permet une gestion, une visualisation et un déploiement des modèles en toute transparence, sans avoir besoin d'une grande quantité de code.
Efficacité de l'entraînement et mémoire
Les modèles Ultralytics sont optimisés pour l'efficacité de la formation. Ils convergent généralement plus rapidement et nécessitent moins de mémoire CUDA que les architectures complexes telles que les niveaux d'échelle supérieurs d'EfficientDet ou les modèles basés sur des transformateurs. Cette faible barrière à l'entrée permet aux développeurs d'entraîner des modèles de pointe sur du matériel grand public ou des instances cloud standard comme Google Colab.
Polyvalence et multitâches
Contrairement à l'implémentation standard d'EfficientDet, qui est principalement un détecteur d'objets, le cadre Ultralytics prend en charge un large éventail de tâches. Les développeurs peuvent exploiter la même API pour la segmentation d'instances et la classification d'images, fournissant ainsi une solution unifiée pour divers défis de vision par ordinateur.
Cas d'utilisation idéaux
Le choix entre YOLOv5 et EfficientDet dépend largement des contraintes et des objectifs de déploiement.
Quand choisir Ultralytics YOLOv5
- Applications en temps réel : Projets nécessitant une faible latence, tels que la vidéosurveillance, la robotique ou l'analyse des sports en direct.
- Déploiement en périphérie : Exécution sur des appareils tels que NVIDIA Jetson ou Raspberry Pi où l'utilisation efficace du GPU est essentielle.
- Prototypage rapide : Lorsque des cycles d'itération rapides et la facilité d'utilisation sont prioritaires pour démontrer la valeur rapidement.
- Systèmes de production : Pour des déploiements robustes et faciles à maintenir, soutenus par une communauté massive de logiciels libres.
Quand choisir EfficientDet
- Recherche et analyse comparative : Études universitaires axées sur l'efficacité des FLOPs ou sur les lois de mise à l'échelle de l'architecture.
- Traitement hors ligne : Scénarios dans lesquels une latence élevée est acceptable et où l'objectif est d'obtenir les derniers points de pourcentage de précision sur des images statiques.
- Inférence CPU à faible consommation : Dans des environnements très spécifiques de l CPU où les opérations BiFPN sont fortement optimisées pour le jeu d'instructions matériel spécifique.
Origine et détails du modèle
Comprendre le contexte de ces modèles permet de mieux comprendre les objectifs de leur conception.
Ultralytics YOLOv5
- Auteur : Glenn Jocher
- Organisation :Ultralytics
- Date : 2020-06-26
- GitHub :yolov5
- Docs :DocumentationYOLOv5
EfficientDet
- Auteurs : Mingxing Tan, Ruoming Pang, Quoc V. Le
- Organisation : Google Research
- Date : 2019-11-20
- Arxiv :EfficientDet : Détection d'objets efficace et évolutive
- GitHub :google
Exemple de code : Démarrer avec YOLOv5
Ultralytics rend l'inférence incroyablement simple. Vous trouverez ci-dessous un exemple valide et exécutable utilisant l'API Python pour detect objets dans une image.
import torch
# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)
# Define an image URL
img_url = "https://ultralytics.com/images/zidane.jpg"
# Perform inference
results = model(img_url)
# Display results
results.show()
# Print detection data (coordinates, confidence, class)
print(results.pandas().xyxy[0])
Ce simple extrait gère le téléchargement du modèle, le prétraitement de l'image, l'exécution de la passe avant et le décodage de la sortie - des tâches qui nécessiteraient beaucoup plus de code avec les implémentations brutes d'EfficientDet.
Conclusion
EfficientDet a quant à lui contribué de manière significative à la recherche sur la mise à l'échelle des modèles et l'efficacité des paramètres, Ultralytics YOLOv5 reste le meilleur choix pour un déploiement pratique dans le monde réel. Son équilibre exceptionnel entre vitesse et précision, combiné à un écosystème florissant et bien entretenu, garantit que les développeurs peuvent construire, former et déployer des solutions de manière efficace.
Pour ceux qui cherchent à tirer parti des toutes dernières technologies de vision par ordinateur, Ultralytics a continué d'innover au-delà de YOLOv5. Des modèles comme YOLOv8 et le modèle de pointe YOLO11 offrent des améliorations supplémentaires dans l'architecture, supportant encore plus de tâches comme l'estimation de la pose et la détection d'objets orientés, tout en conservant la facilité d'utilisation qui définit l'expérience Ultralytics .
Explorer d'autres modèles
Si vous souhaitez explorer d'autres comparaisons afin de trouver le modèle idéal pour vos besoins, consultez les ressources suivantes :
- YOLOv5 vs. YOLO11 - Comparez le classique au dernier cri.
- EfficientDet vs. YOLOv8 - Voir comment EfficientDet se compare à YOLOv8.
- YOLOv8 vs. YOLO11 - Comprendre les avancées de la nouvelle génération.
- YOLO11 vs. RT-DETR - Comparez les transformateurs en temps réel avec YOLO.