Passer au contenu

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

Le paysage de la détection d'objets a évolué rapidement, poussé par le besoin constant d'équilibrer la précision et l'efficacité de calcul. Deux architectures ont influencé de manière significative ce domaine : EfficientDet, développée par l'équipe de Google Brain, et YOLOv5créé par Ultralytics. Bien que ces deux modèles visent à detect efficacement detect objets dans des images, 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 l'outil adéquat pour leurs applications spécifiques de vision par ordinateur.

EfficientDet : Évolutif et efficace

Sorti fin 2019, EfficientDet a émergé de l'objectif de recherche visant à 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 uniformément à l'échelle la résolution, la profondeur et la largeur du réseau dorsal.

Points forts de l'architecture

EfficientDet s'appuie sur l'épine dorsale EfficientNet et introduit un nouveau réseau de fusion de caractéristiques appelé BiFPN (Bidirectional Feature Pyramid Network). Contrairement aux réseaux pyramidaux traditionnels qui limitent le flux d'informations à une approche descendante, le BiFPN permet un flux d'informations complexe et bidirectionnel entre les différentes couches de résolution.

Le modèle utilise également l'échelle composée, qui permet aux utilisateurs de choisir parmi une famille de modèles (D0 à D7) en fonction de leurs contraintes en matière de ressources. Ainsi, si vous disposez de plus de ressources informatiques, vous pouvez augmenter linéairement la taille du modèle afin d'obtenir une meilleure précision.

Points forts et faiblesses

La principale force d'EfficientDet réside dans son efficacité théorique. Il permet d'obtenir des mAP avec un nombre de FLOP (Floating Point Operations) remarquablement bas. Cela en fait un candidat intéressant pour la recherche universitaire où l'efficacité des paramètres est une mesure clé.

Cependant, EfficientDet souffre d'un inconvénient pratique : la latence de l'inférence. Les connexions complexes du BiFPN et l'utilisation intensive de convolutions séparables en profondeur - bien que 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é des FLOPs plus faibles, EfficientDet peut fonctionner plus lentement sur les GPU que les modèles ayant des coûts de calcul théoriques plus élevés.

En savoir plus sur EfficientDet

Ultralytics YOLOv5: Performance et facilité d'utilisation 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, c'était le premier modèle YOLO implémenté nativement dans PyTorchce qui le rendait accessible à un vaste écosystème de développeurs. Il donnait la priorité à la "facilité de déploiement" et aux performances brutes.

  • Auteur : Glenn Jocher
  • Organisation :Ultralytics
  • Date d'entrée en vigueur : 26 juin 2020
  • GitHub :yolov5

Points forts de l'architecture

YOLOv5 utilise un réseau de base CSPDarknet, qui optimise le flux de gradient et réduit les calculs. Il a été le premier à utiliser l'augmentation mosaïque pendant l'entraînement, une technique qui assemble quatre images, améliorant ainsi la capacité du modèle à detect petits objets et réduisant la nécessité de recourir à des mini-lots de grande taille.

L'architecture est conçue pour la vitesse. En utilisant des convolutions standard et une structure de tête rationalisé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 significatifs de YOLOv5 est l'écosystème qui l'entoure. Ultralytics fournit un flux de travail transparent comprenant la génération automatique d'ancres, l'évolution des hyperparamètres et la prise en charge de l'exportation native vers ONNX, TensorRTCoreML et TFLite. Cette approche "batteries incluses" réduit considérablement le temps nécessaire pour passer de la conception à la production.

Points forts et faiblesses

YOLOv5 excelle dans l'inférence en temps réel et la facilité d'utilisation. Son API simple et sa documentation robuste permettent aux développeurs de former 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 qui est optimale pour l'IA périphérique et les déploiements dans le cloud. Alors que les modèles plus récents comme YOLO11 l'ont depuis dépassé en termes de précision, YOLOv5 reste un outil de travail fiable et standard de l'industrie.

En savoir plus sur YOLOv5

Mesures de performance : Vitesse et précision

Le tableau suivant compare les performances d'EfficientDet et de YOLOv5 sur le jeu de donnéesCOCO val2017. L'élément clé à 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

Tel qu'illustré, YOLOv5 domine la latence du GPU. Par exemple, YOLOv5s (37,4 mAP) fonctionne à 1,92 ms sur un GPU T4, tandis que EfficientDet-d0 (34,6 mAP) prend 3,92 ms-faisant de YOLOv5 à peu près 2x plus rapide tout en offrant une plus grande précision. Cette disparité s'accentue avec les modèles de plus grande taille ; YOLOv5l (49.0 mAP) est presque 5 fois plus rapide par rapport à l'offre comparable d'un EfficientDet-d4 (49,7 mAP).

Inversement, EfficientDet brille dans les environnements CPU, où de faibles FLOPs se traduisent souvent par de meilleures performances, comme le montrent les vitessesCPU ONNX pour les variantes D0 les plus petites.

Cas d'utilisation idéaux

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

Quand choisir EfficientDet

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

Quand choisir Ultralytics YOLOv5

  • Applications en temps réel : Essentielles pour les véhicules autonomes, la robotique et la vidéosurveillance où une faible latence n'est pas négociable.
  • Déploiement en production : L'écosystème bien entretenu et l'exportation facile vers des moteurs tels que 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 telles que EfficientDet ou les modèles basés sur Transformer, ce qui réduit les coûts d'informatique en nuage.
  • Polyvalence : Au-delà des simples boîtes de délimitation, le cadre 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 la mise en œuvre d'EfficientDet nécessite souvent des configurations TensorFlow complexes ou des clones de dépôt 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

EfficientDet a marqué une étape importante dans le domaine de la vision par ordinateur en démontrant la valeur de la mise à l'échelle des composés et de la fusion efficace des caractéristiques, YOLOv5 a révolutionné le secteur 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 regarder les dernières avancées dans la lignée Ultralytics . YOLO11 s'appuie sur les fondations solides de YOLOv5, offrant :

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


Commentaires