Passer au contenu

EfficientDet vs. YOLOv5 : Une comparaison technique détaillée

Le paysage de la object detection a évolué rapidement, sous l'impulsion du besoin constant d'équilibrer la précision et l'efficacité computationnelle. EfficientDet, développé par l'équipe Google Brain, et YOLOv5, créé par Ultralytics, sont deux architectures qui ont considérablement influencé ce domaine. Bien que les deux modèles visent à detect des objets dans les images de manière efficace, ils abordent le problème avec des philosophies de conception et des stratégies architecturales fondamentalement différentes.

Ce guide fournit une comparaison technique approfondie pour aider les développeurs, les chercheurs et les ingénieurs à choisir le bon outil pour leurs applications de vision par ordinateur spécifiques.

EfficientDet : Évolutif et efficace

Lancé fin 2019, EfficientDet est né de l'objectif de recherche consistant à optimiser simultanément la précision et l'efficacité. Il a introduit le concept de « Compound Scaling » à la détection d'objets, une méthode qui met à l'échelle uniformément la résolution, la profondeur et la largeur du réseau dorsal.

Points clés de l'architecture

EfficientDet est basé sur le backbone EfficientNet et introduit un nouveau réseau de fusion de caractéristiques appelé BiFPN (Bidirectional Feature Pyramid Network). Contrairement aux Feature Pyramid Networks (FPN) traditionnels qui limitent le flux d'informations à une manière descendante, BiFPN permet un flux d'informations complexe et bidirectionnel entre différentes couches de résolution.

Le modèle utilise également le Compound Scaling, qui permet aux utilisateurs de choisir parmi une famille de modèles (D0 à D7) en fonction de leurs contraintes de ressources. Cela garantit que si vous avez plus de puissance de calcul disponible, vous pouvez augmenter linéairement la taille du modèle pour obtenir une meilleure précision.

Points forts et faiblesses

La principale force d'EfficientDet réside dans son efficacité théorique. Il atteint des scores de mAP élevés avec un nombre remarquablement bas de FLOPs (Floating Point Operations). Cela en fait un candidat intéressant pour la recherche académique où l'efficacité des paramètres est une métrique clé.

Cependant, EfficientDet souffre d'un inconvénient pratique : la latence d'inférence. Les connexions complexes dans le BiFPN et l'utilisation intensive de convolutions séparables en profondeur (bien qu'elles soient mathématiquement efficaces) ne sont souvent pas entièrement optimisées sur le matériel GPU par rapport aux convolutions standard. Par conséquent, malgré un nombre d'opérations en virgule flottante par seconde (FLOPs) inférieur, EfficientDet peut s'exécuter plus lentement sur les GPU que les modèles avec des coûts de calcul théoriques plus élevés.

En savoir plus sur EfficientDet

Ultralytics YOLOv5 : Performances et convivialité dans le monde réel

Ultralytics YOLOv5 a représenté un changement de paradigme lors de sa sortie en 2020. Contrairement à ses prédécesseurs, il a été le premier modèle YOLO implémenté nativement dans PyTorch, le rendant accessible à un vaste écosystème de développeurs. Il a privilégié la « facilité de déploiement » parallèlement aux performances brutes.

Points clés de l'architecture

YOLOv5 utilise un backbone CSPDarknet, qui optimise le flux de gradient et réduit le calcul. Il a été le pionnier de l’utilisation de la Mosaic Augmentation pendant l’entraînement : une technique qui consiste à assembler quatre images, améliorant ainsi la capacité du modèle à détecter les petits objets et réduisant le besoin de grandes tailles de mini-batch.

L'architecture est conçue pour la vitesse. En utilisant des convolutions standard et une structure de tête simplifiée, YOLOv5 maximise les capacités de traitement parallèle des GPU modernes, ce qui se traduit par une latence d'inférence exceptionnellement faible.

L'avantage de l'écosystème Ultralytics

L'un des avantages les plus importants de YOLOv5 est l'écosystème qui l'entoure. Ultralytics fournit un flux de travail transparent comprenant la génération d'auto-ancres, l'évolution des hyperparamètres et la prise en charge native de l'exportation vers ONNX, TensorRT, CoreML et TFLite. Cette approche "tout compris" réduit considérablement le délai entre le concept et la production.

Points forts et faiblesses

YOLOv5 excelle en matière d’inférence en temps réel et de facilité d’utilisation. Son API simple et sa documentation robuste permettent aux développeurs d’entraîner des modèles personnalisés sur leurs propres données en quelques minutes. Il équilibre la vitesse et la précision d’une manière optimale pour l’edge AI et les déploiements cloud. Bien que des modèles plus récents comme YOLO11 l’aient depuis surpassé en précision, YOLOv5 reste un cheval de bataille fiable et standard de l’industrie.

En savoir plus sur YOLOv5

Métriques de performance : vitesse vs. précision

Le tableau suivant compare les performances d'EfficientDet et de YOLOv5 sur le jeu de données COCO val2017. Le principal point à retenir est la distinction entre le coût théorique (FLOPs) et la vitesse réelle (Latence).

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

Comme illustré, YOLOv5 domine en matière de latence GPU. Par exemple, YOLOv5s (37,4 mAP) s'exécute à 1,92 ms sur un GPU T4, alors que EfficientDet-d0 (34,6 mAP) prend 3,92 ms— ce qui rend YOLOv5 approximativement 2x plus rapide tout en offrant une plus grande précision. Cet écart se creuse avec les modèles plus grands ; YOLOv5l (49,0 mAP) est presque 5x plus rapide que le comparable EfficientDet-d4 (49,7 mAP).

À l'inverse, EfficientDet excelle dans les environnements avec uniquement des CPU où un faible nombre de FLOPs se traduit souvent par de meilleures performances, comme on peut le constater dans les vitesses CPU ONNX pour les petites variantes D0.

Cas d'utilisation idéaux

Le choix entre ces modèles dépend de vos contraintes spécifiques :

Quand choisir EfficientDet

  • Analyse comparative académique : Lorsque l'objectif principal est de démontrer l'efficacité des paramètres ou les lois de mise à l'échelle architecturales.
  • Contraintes strictes du CPU : Si le déploiement est strictement limité au matériel CPU plus ancien où les FLOP sont le goulot d’étranglement absolu, les plus petites variantes EfficientDet (D0-D1) offrent des performances compétitives.
  • Recherche : Pour étudier les variations de réseau pyramidal de caractéristiques comme BiFPN.

Quand choisir Ultralytics YOLOv5

  • Applications en temps réel : Essentiel pour les véhicules autonomes, la robotique et la vidéosurveillance où une faible latence est non négociable.
  • Déploiement en production : L'écosystème bien maintenu et l'exportation facile vers des moteurs comme TensorRT et OpenVINO rendent YOLOv5 supérieur pour les produits commerciaux.
  • Efficacité de l'entraînement : Les modèles YOLOv5 s'entraînent généralement plus rapidement et nécessitent moins de mémoire que les architectures complexes comme EfficientDet ou les modèles basés sur Transformer, ce qui réduit les coûts de calcul en nuage.
  • Polyvalence : Au-delà des simples boîtes englobantes, le framework Ultralytics permet une transition transparente vers les tâches de segmentation et de classification.

Exemple de code : Simplicité d’Ultralytics

L'une des caractéristiques déterminantes des modèles Ultralytics est la Facilité d'utilisation. Alors que l'implémentation d'EfficientDet nécessite souvent des configurations TensorFlow complexes ou des clones de référentiels spécifiques, YOLOv5 peut être chargé et exécuté avec seulement quelques lignes de code python via PyTorch Hub.

import torch

# Load the YOLOv5s model from the official Ultralytics repository
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (URL or local path)
img = "https://ultralytics.com/images/zidane.jpg"

# Perform inference
results = model(img)

# Display results
results.print()  # Print predictions to console
results.show()  # Show image with bounding boxes

Conclusion et perspectives d'avenir

Alors que EfficientDet a marqué une étape importante dans la vision par ordinateur en prouvant la valeur de la mise à l'échelle composée et de la fusion efficace des caractéristiques, YOLOv5 a révolutionné l'industrie en rendant la détection d'objets haute performance accessible, rapide et déployable.

Pour les développeurs qui démarrent un nouveau projet aujourd'hui, nous recommandons de se pencher sur les dernières avancées de la lignée Ultralytics. YOLO11 s'appuie sur les bases solides de YOLOv5, offrant :

Pour en savoir plus sur la façon dont les modèles Ultralytics se comparent à d'autres architectures, explorez nos comparaisons avec YOLOv8 et RT-DETR.


Commentaires