Passer au contenu

EfficientDet vs. YOLOv7 : Une comparaison technique complète

Dans le paysage en rapide évolution de la vision par ordinateur, le choix de l'architecture de détection d'objets appropriée est essentiel au succès d'un projet. Cette analyse compare EfficientDet, une architecture évolutive axée sur l'efficacité, et YOLOv7, un détecteur en temps réel conçu pour la vitesse et la précision sur le matériel GPU. Bien que les deux modèles aient représenté des performances de pointe lors de leurs sorties respectives, la compréhension de leurs nuances techniques aide les développeurs à prendre des décisions éclairées pour les déploiements modernes.

Métriques de performance et analyse

Le tableau suivant présente une comparaison détaillée des principales métriques de performance, notamment la précision moyenne (mAP), la vitesse d'inférence sur différents matériels et la complexité de calcul (paramètres et FLOPs).

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
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Points clés à retenir

  • Efficacité vs. Latence : EfficientDet atteint une efficacité de paramétrage remarquable (faible taille du modèle) grâce à son scaling composite. Cependant, sur le matériel GPU (T4 TensorRT), YOLOv7 démontre une latence supérieure. Par exemple, YOLOv7l atteint 51,4 % de mAP avec seulement 6,84 ms de latence, tandis que EfficientDet-d5 nécessite 67,86 ms pour un mAP similaire de 51,5 %.
  • Impact de l'architecture : Les convolutions séparables en profondeur utilisées dans EfficientDet minimisent les FLOPs, mais peuvent être moins optimisées sur les GPU par rapport aux convolutions denses de YOLOv7, ce qui entraîne les écarts de vitesse observés.

Aperçu d'EfficientDet

EfficientDet a introduit un changement de paradigme en 2019 en proposant une architecture évolutive qui optimise simultanément la précision et l'efficacité. Il s'appuie sur le backbone EfficientNet et introduit le BiFPN (Bidirectional Feature Pyramid Network).

Détails d’EfficientDet : 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

Points clés de l'architecture

L'innovation principale d'EfficientDet est le BiFPN, qui permet une fusion de caractéristiques multi-échelle facile et rapide. Contrairement aux FPN traditionnels, BiFPN utilise la fusion de caractéristiques pondérée pour apprendre l'importance des différentes caractéristiques d'entrée. Combiné à la mise à l'échelle composée, qui met à l'échelle uniformément la résolution, la profondeur et la largeur, EfficientDet offre une famille de modèles (D0 à D7) adaptés aux différentes contraintes de ressources.

En savoir plus sur EfficientDet

Aperçu de YOLOv7

YOLOv7, sorti en 2022, a repoussé les limites de la détection d'objets en temps réel en se concentrant sur l'optimisation du processus de formation et de l'architecture pour la vitesse d'inférence. Il introduit plusieurs « Bag-of-Freebies » qui améliorent la précision sans augmenter le coût d'inférence.

Détails de YOLOv7 : Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica, Taiwan
Date : 2022-07-06
Arxiv : https://arxiv.org/abs/2207.02696
GitHub : https://github.com/WongKinYiu/yolov7

Points clés de l'architecture

YOLOv7 utilise E-ELAN (Extended Efficient Layer Aggregation Network), qui contrôle les chemins de gradient les plus courts et les plus longs pour permettre au réseau d'apprendre des caractéristiques plus diverses. Il utilise également la mise à l'échelle du modèle pour les modèles basés sur la concaténation, ce qui lui permet de maintenir une structure optimale dans différentes tailles. L'architecture est spécialement conçue pour l'efficacité du GPU, en évitant les opérations qui ont des coûts d'accès à la mémoire élevés malgré un faible nombre de FLOP.

En savoir plus sur YOLOv7

Cas d'utilisation idéaux

Le choix entre ces architectures dépend fortement du matériel de déploiement et des exigences spécifiques de l'application.

Quand choisir EfficientDet

EfficientDet est idéal pour les environnements limités par le CPU ou les appareils périphériques où la bande passante mémoire et le stockage sont strictement limités. Son faible nombre de paramètres le rend approprié pour :

  • Applications mobiles : Applications Android/iOS où la taille de l'application (taille de l'APK) est une contrainte critique.
  • Systèmes embarqués : Appareils tels que Raspberry Pi (anciennes générations) fonctionnant sur CPU.
  • Recherche académique : Étude des effets de la mise à l’échelle composée et des techniques de fusion de caractéristiques.

Quand choisir YOLOv7

YOLOv7 excelle dans les environnements GPU à hautes performances où une faible latence est non négociable. C’est le choix préféré pour :

  • Surveillance en temps réel : Traitement simultané de plusieurs flux vidéo sur des serveurs périphériques.
  • Conduite autonome : Où la latence de quelques millisecondes peut avoir un impact sur la sécurité.
  • Robotique : Pour la détection d'objets et l'interaction rapides dans des environnements dynamiques.

Alternatives modernes

Bien que EfficientDet et YOLOv7 soient performants, le domaine a progressé. Pour les nouveaux projets, YOLO11 est généralement recommandé. Il combine les concepts d'efficacité des backbones modernes avec la vitesse en temps réel de la famille YOLO, surpassant souvent les deux prédécesseurs en termes de précision et de facilité de déploiement.

Pourquoi choisir les modèles Ultralytics YOLO ?

Bien que EfficientDet et YOLOv7 restent des contributions importantes à la vision par ordinateur, l'écosystème Ultralytics—qui comprend des modèles comme YOLOv8 et le YOLO11 de pointe—offre des avantages distincts aux développeurs et aux chercheurs.

Facilité d'utilisation et écosystème

Les modèles hérités nécessitent souvent des étapes d'installation complexes, des versions CUDA spécifiques ou des bases de code fragmentées. En revanche, Ultralytics se concentre sur une expérience utilisateur unifiée et rationalisée. Avec un simple pip install ultralytics, les utilisateurs ont accès à une API Python robuste et Commandes de la CLI qui normalisent la formation, la validation et le déploiement. Le Écosystème bien entretenu garantit des mises à jour fréquentes, une large prise en charge du matériel et l’intégration avec des outils tels que Ultralytics HUB pour un MLOps transparent.

Équilibre des performances et efficacité de la mémoire

Les modèles Ultralytics sont conçus pour atteindre un équilibre des performances optimal. Ils offrent une précision de pointe tout en conservant des vitesses d'inférence exceptionnelles, ce qui les rend adaptés à divers scénarios, du déploiement en périphérie aux API cloud. De plus, les besoins en mémoire pour l'entraînement des modèles Ultralytics YOLO sont souvent inférieurs à ceux des architectures basées sur des transformateurs ou des ConvNets plus anciens, ce qui permet un entraînement efficace sur les GPU grand public.

Polyvalence et efficacité de l'entraînement

Contrairement à de nombreux détecteurs spécifiques, les modèles Ultralytics sont très polyvalents. Un seul framework prend en charge :

Cette polyvalence, combinée à une efficacité d'entraînement — grâce à des chargeurs de données optimisés et à des poids pré-entraînés facilement disponibles sur COCO — réduit considérablement le délai de commercialisation des solutions d'IA.

Exemple : Exécution d'un modèle YOLO moderne

Voici un exemple de la facilité avec laquelle un modèle Ultralytics moderne peut être utilisé pour l'inférence, un contraste frappant avec le code passe-partout souvent requis pour les architectures plus anciennes.

from ultralytics import YOLO

# Load the latest YOLO11 model (pre-trained on COCO)
model = YOLO("yolo11n.pt")

# Perform inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Process results
for result in results:
    result.save()  # Save the annotated image to disk
    print(f"Detected {len(result.boxes)} objects.")

En savoir plus sur YOLO11

Conclusion

EfficientDet et YOLOv7 représentent deux philosophies différentes dans l'histoire de la vision par ordinateur : l'une optimisant l'efficacité théorique (FLOPs/Params) et l'autre la latence pratique du matériel. EfficientDet reste une référence solide pour les applications CPU à paramètres contraints, tandis que YOLOv7 convient bien aux charges de travail GPU à haute vitesse.

Cependant, pour les développeurs à la recherche du meilleur des deux mondes (vitesse, précision et expérience de développement sans friction), les modèles Ultralytics tels que YOLO11 sont le choix idéal. Ils simplifient le pipeline complexe de formation et de déploiement tout en offrant des performances qui répondent aux exigences rigoureuses des applications modernes de vision par ordinateur.

Autres comparaisons de modèles

Explorez des comparaisons plus techniques pour trouver le modèle le mieux adapté à vos besoins spécifiques :


Commentaires