EfficientDet vs. YOLOv8: Une comparaison technique des géants de la détection d'objets
Dans le paysage en évolution rapide de la vision par ordinateur, le choix de la bonne architecture est essentiel à la réussite du projet. Cette analyse compare deux modèles influents : EfficientDet, un jalon de recherche de Google axé sur l'efficacité des paramètres, et YOLOv8un modèle de pointe d'Ultralytics conçu pour les applications en temps réel et la facilité d'utilisation.
Alors qu'EfficientDet a introduit des concepts révolutionnaires dans la mise à l'échelle des modèles, des architectures plus récentes comme YOLOv8 et l'architecture de pointe YOLO11 ont depuis redéfini les normes en matière de vitesse, de précision et de souplesse de déploiement.
Mesures de performance : Vitesse, précision et efficacité
Lors de la sélection d'un modèle pour la production, les développeurs doivent peser les compromis entre la latence de l'inférence et la précision de la détection. Le tableau ci-dessous fournit une comparaison directe des mesures de performance sur l'ensemble de donnéesCOCO .
| 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 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
Analyse des données
Les mesures mettent en évidence une nette divergence dans la philosophie de conception. EfficientDet minimise les opérations en virgule flottante ( FLOP ), ce qui est historiquement lié à l'efficacité théorique. Cependant, dans les scénarios pratiques d'inférence en temps réel, en particulier sur les YOLOv8 , YOLOv8 présente un avantage significatif.
- Temps de latence duGPU : YOLOv8n est environ 2,6 fois plus rapide qu'EfficientDet-d0 sur un GPU T4 avec la technologie TensorRTmalgré des FLOPs légèrement plus élevés. Cela s'explique par le fait que l'architecture de YOLOv8 est optimisée pour le parallélisme matériel, alors que les convolutions séparables par profondeur d'EfficientDet peuvent être limitées par la mémoire des accélérateurs.
- Précision à l'échelle : À l'extrémité supérieure, YOLOv8x atteint une précision supérieure à la mAP de 53,9 avec une vitesse d'inférence de 14,37 ms, ce qui est nettement supérieur à EfficientDet-d7, qui est à la traîne avec 128,07 ms pour une précision similaire.
- Taille du modèle : YOLOv8n nécessite moins de paramètres (3,2M) que le plus petit EfficientDet (3,9M), ce qui le rend très efficace en termes de stockage pour les applications mobiles.
Efficacité vs. latence
Un faible nombre de FLOP n'est pas toujours synonyme d'exécution rapide. EfficientDet est hautement optimisé pour le coût de calcul théorique, mais YOLOv8 exploite plus efficacement les capacités de traitement parallèle des GPU modernes (tels que NVIDIA T4/A100), ce qui se traduit par une latence plus faible dans le monde réel.
Philosophie de l'architecture et du design
La compréhension des nuances architecturales explique les différences de performance observées ci-dessus.
EfficaceDétails
- Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
- Organisation :Google
- Date : Novembre 2019
- Papier :EfficientDet : Détection d'objets efficace et évolutive
- Référentiel :Google AutoML
EfficientDet a été conçu sur le principe de la mise à l'échelle composée, qui permet d'échelonner uniformément la résolution, la profondeur et la largeur du réseau. Il utilise une épine dorsale EfficientNet et introduit le BiFPN (Bidirectional Feature Pyramid Network). Le BiFPN permet une fusion pondérée des caractéristiques, en apprenant quelles sont les caractéristiques les plus importantes. Bien que cela permette d'obtenir une grande efficacité des paramètres, les connexions complexes et irrégulières du BiFPN peuvent être coûteuses en termes de calcul à exécuter sur du matériel qui favorise les schémas d'accès réguliers à la mémoire.
En savoir plus sur EfficientDet
Détails YOLOv8
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation :Ultralytics
- Date : janvier 2023
- Dépôt :Ultralytics GitHub
YOLOv8 représente un passage à un mécanisme de détection sans ancrage, simplifiant le processus de formation en supprimant le besoin de calculer manuellement la boîte d'ancrage. Il dispose d'une épine dorsale CSPDarknet modifiée par des modules C2f, qui améliorent le flux de gradient et la richesse des caractéristiques par rapport aux versions précédentes. La tête utilise une structure découplée, traitant les tâches de classification et de régression de manière indépendante, et utilise Task Aligned Assign pour l'attribution dynamique des étiquettes. Cette architecture est spécialement conçue pour maximiser le débit sur le matériel GPU .
L'avantage Ultralytics
Si EfficientDet est une réussite académique remarquable, l'écosystème Ultralytics qui entoure YOLOv8 et YOLO11 offre des avantages tangibles aux développeurs qui se concentrent sur la livraison de produits et les MLOps.
1. Facilité d'utilisation et de mise en œuvre
La mise en œuvre d'EfficientDet nécessite souvent de naviguer dans des fichiers de configuration et des dépendances complexes au sein de l'écosystème TensorFlow . En revanche, les modèles Ultralytics donnent la priorité à l'expérience des développeurs. Un modèle peut être chargé, entraîné et déployé en quelques lignes de Python.
from ultralytics import YOLO
# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")
# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
detection = model("https://ultralytics.com/images/bus.jpg")
2. Polyvalence des tâches
EfficientDet est avant tout une architecture de détection d'objets. Ultralytics YOLOv8 va bien au-delà des simples boîtes de délimitation. Dans le même cadre, les utilisateurs peuvent effectuer :
- Segmentation des instances: Masquage d'objets au niveau du pixel.
- Estimation de la pose: Détection de points clés pour le suivi du squelette.
- Classification des images: Catégorisation de l'ensemble de l'image.
- Boîtes de délimitation orientées (OBB): Détection d'objets en rotation (par exemple, images aériennes).
3. Entraînement et efficacité de la mémoire
La formation de transformateurs modernes ou d'architectures complexes à plusieurs échelles peut être gourmande en ressources. Les modèlesYOLO d'Ultralytics sont réputés pour leur efficacité en matière de mémoire.
- Utilisation réduite de la VRAM : Les modules C2f efficaces et les fonctions de perte optimisées permettent à YOLOv8 de s'entraîner sur des GPU grand public alors que d'autres modèles pourraient être confrontés à des erreurs d'utilisation de la mémoire (OOM).
- Convergence rapide : Des techniques d'augmentation avancées telles que Mosaic accélèrent l'apprentissage, réduisant le nombre d'époques nécessaires pour atteindre une grande précision.
Écosystème intégré
Les modèles Ultralytics s'intègrent parfaitement à des outils tels que Weights & Biases, Cometet ClearML pour le suivi des expériences, ainsi que Roboflow pour la gestion des ensembles de données.
Applications concrètes
Le choix entre ces modèles détermine souvent la faisabilité du déploiement dans des environnements spécifiques.
- Cas d'utilisation d'EfficientDet : Sa grande efficacité en termes de paramètres le rend intéressant pour la recherche universitaire sur les lois de mise à l'échelle ou les systèmes hérités strictement CPU où les FLOP sont la contrainte la plus forte, bien que la latence puisse encore être plus élevée que celle de YOLOv8n.
- Cas d'utilisation de YOLOv8 :
- Systèmes autonomes : Le nombre élevé d'images par seconde (FPS) sur les appareils Edge AI tels que NVIDIA Jetson fait de YOLOv8 un outil idéal pour les drones et la robotique.
- Fabrication : Utilisé pour la détection des défauts en temps réel sur les chaînes de montage où les millisecondes comptent.
- Commerce de détail intelligent : Des fonctionnalités telles que le comptage et le suivi des objets permettent une analyse avancée de l'agencement des magasins et de la gestion des files d'attente.
Conclusion
EfficientDet reste une contribution significative au domaine de l'apprentissage profond, prouvant qu'une mise à l'échelle intelligente peut produire des modèles compacts. Cependant, pour la grande majorité des applications pratiques d'aujourd'hui, Ultralytics YOLOv8 d'Ultralytics (et la version plus récente de YOLO11) offrent une solution supérieure.
La combinaison de vitesses d'inférence ultra-rapides sur du matériel moderne, d'un SDK Python complet et de la capacité à gérer des tâches de vision multiples fait des modèles Ultralytics le choix recommandé pour les développeurs. Que vous construisiez un système d'alarme de sécurité ou que vous analysiez l'imagerie satellite, l'écosystème Ultralytics fournit les outils nécessaires pour mener efficacement votre projet de la conception à la production.
Explorer d'autres modèles
Pour une perspective plus large sur les choix en matière de détection d'objets, examinez les comparaisons suivantes :
- YOLOv8 vs. YOLOv7
- YOLO11 vs. EfficientDet
- RT-DETR vs. EfficientDet
- YOLOv5 vs. EfficientDet
- YOLOv10 vs. YOLOv8