EfficientDet vs. YOLOv7: une comparaison technique complète
Dans le paysage en évolution rapide 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 analyse compare EfficientDet, une architecture évolutive axée sur l'efficacité, et YOLOv7un 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.
Mesure et analyse des performances
Le tableau suivant présente une comparaison détaillée des principales mesures de performance, notamment la précision moyennemAP, la vitesse d'inférence sur différents matériels et la complexité de calcul (paramètres et FLOPs).
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Points clés à retenir
- Efficacité vs. latence : EfficientDet atteint une efficacité remarquable au niveau des paramètres (faible taille du modèle) grâce à sa mise à l'échelle composée. 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, alors qu'EfficientDet-d5 nécessite 67,86 ms pour un mAP similaire de 51,5 %.
- Impact sur l'architecture : Les convolutions séparables dans le sens de la profondeur utilisées dans EfficientDet minimisent les FLOP mais peuvent être moins optimisées sur les GPU que les 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 l'épine dorsale EfficientNet et introduit le BiFPN (Bidirectional Feature Pyramid Network).
Détails EfficientDet :
Auteurs : Mingxing Tan, Ruoming Pang, et Quoc V. Le
Organisation : Google
Date : 2019-11-20
Arxiv : https://arxiv.org/abs/1911.09070
GitHub :google
Points forts de l'architecture
L'innovation principale d'EfficientDet est le BiFPN, qui permet une fusion facile et rapide des caractéristiques à plusieurs échelles. Contrairement aux FPN traditionnels, le BiFPN utilise la fusion de caractéristiques pondérées pour apprendre l'importance des différentes caractéristiques d'entrée. Combiné avec le Compound Scaling, qui met uniformément à l'échelle la résolution, la profondeur et la largeur, EfficientDet offre une famille de modèles (D0 à D7) répondant à diverses contraintes de ressources.
En savoir plus sur EfficientDet
Vue d'ensemble 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 d'apprentissage et de l'architecture pour la vitesse d'inférence. Il introduit plusieurs "sacs de gratuité" qui améliorent la précision sans augmenter le coût de l'inférence.
YOLOv7 Détails :
Auteurs : Chien-Yao Wang, Alexey Bochkovskiy, et Hong-Yuan Mark Liao
Organisation : Institut des sciences de l'information, Academia Sinica, Taiwan
Date : 2022-07-06
Arxiv : https://arxiv.org/abs/2207.02696
GitHub : https://github.com/WongKinYiu/yolov7
Points forts 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 pour différentes tailles. L'architecture est spécialement conçue pour l'efficacité des GPU , en évitant les opérations dont les coûts d'accès à la mémoire sont élevés malgré un faible nombre de FLOP.
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 environnementsCPU ou les appareils périphériques où la largeur de bande de la mémoire et le stockage sont strictement limités. Son faible nombre de paramètres le rend approprié pour :
- Applications mobiles : Applications iOS pour lesquelles 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 avec un CPU.
- Recherche universitaire : Étude des effets des techniques de mise à l'échelle et de fusion des caractéristiques.
Quand choisir YOLOv7
YOLOv7 excelle dans les environnements GPU haute performance où une faible latence n'est pas négociable. C'est le choix privilégié 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 la milliseconde peut avoir un impact sur la sécurité.
- Robotique : Pour la détection rapide d'objets et l'interaction dans des environnements dynamiques.
Alternatives modernes
Si EfficientDet et YOLOv7 sont puissants, 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 ses deux prédécesseurs en termes de précision et de facilité de déploiement.
Pourquoi choisir les modèles Ultralytics YOLO ?
Alors qu'EfficientDet et YOLOv7 restent des contributions significatives à la vision par ordinateur, l'écosystème Ultralytics , qui comprend des modèles tels que YOLOv8 et le modèle de pointe YOLO11-offre des avantages distincts aux développeurs et aux chercheurs.
Facilité d'utilisation et écosystème
Les modèles existants nécessitent souvent des étapes d'installation complexes, des versions CUDA spécifiques ou des bases de code fragmentées. Ultralytics , en revanche, met l'accent sur une expérience utilisateur unifiée et rationalisée. Avec un simple pip install ultralyticsLes utilisateurs ont accès à une API Python robuste et à un système de gestion de l'information. Commandes CLI qui normalisent la formation, la validation et le déploiement. Les Un é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 des MLOps sans faille.
Équilibre des performances et efficacité de la mémoire
Les modèles Ultralytics sont conçus pour atteindre un équilibre optimal en termes de performances. 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 dans le nuage. De plus, les besoins en mémoire pour l'entraînement des modèlesYOLO d Ultralytics sont souvent inférieurs à ceux des architectures basées sur les transformateurs ou des ConvNets plus anciens, ce qui permet un entraînement efficace sur des GPU grand public.
Polyvalence et efficacité de la formation
Contrairement à de nombreux détecteurs spécifiques, les modèles Ultralytics sont très polyvalents. Un seul cadre prend en charge :
- Détection d'objets
- Segmentation d'instance
- Classification d'images
- Estimation de pose
- Détection d'objets orientés (OBB)
Cette polyvalence, combinée à l'efficacité de l'apprentissage - grâceà des chargeurs de données optimisés et à des poids pré-entraînés facilement disponibles sur le site de COCO-réduit considérablement le temps de mise sur le marché des solutions d'IA.
Exemple : Exécution d'un modèle YOLO moderne
Vous trouverez ci-dessous un exemple de la facilité avec laquelle un modèle Ultralytics moderne peut être utilisé pour l'inférence, ce qui contraste fortement avec l'ensemble des procédures souvent nécessaires 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.")
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 matérielle pratique. EfficientDet reste une référence solide pour les applications CPU à paramètres contraints, tandis que YOLOv7 sert bien les charges de travail GPU à grande vitesse.
Cependant, pour les développeurs qui recherchent le meilleur des deux mondes - vitesse, précision et expérience de développement sans friction - les modèles d'Ultralytics comme YOLO11 sont le meilleur choix. Ils simplifient le processus 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 d'autres comparaisons techniques pour trouver le modèle le mieux adapté à vos besoins spécifiques :
- EfficientDet vs YOLOv8
- YOLOv7 vs YOLOv8
- EfficientDet vs YOLOv5
- YOLOv6 vs YOLOv7
- RT-DETR vs YOLOv7
- YOLOX vs EfficientDet