YOLOv8 vs. EfficientDet : un examen approfondi des architectures de détection d’objets
Dans le paysage en rapide évolution de la vision par ordinateur, le choix du bon modèle de détection d'objets est essentiel pour créer des applications d'IA réussies. Deux architectures importantes qui ont défini l'état de l'art à leurs époques respectives sont YOLOv8 par Ultralytics et EfficientDet par Google Research. Cette comparaison explore les nuances techniques, les mesures de performance et les cas d'utilisation idéaux pour les deux modèles, aidant ainsi les développeurs et les chercheurs à prendre des décisions éclairées pour leurs projets.
Bien que EfficientDet ait introduit des concepts révolutionnaires en matière de mise à l'échelle et d'efficacité des modèles lors de sa sortie, Ultralytics YOLOv8 représente une évolution plus moderne, privilégiant la vitesse d'inférence en temps réel, la facilité d'utilisation et les capacités de déploiement pratiques.
Comparaison directe des performances : Vitesse, précision et efficacité
La comparaison entre YOLOv8 et EfficientDet met en évidence un changement fondamental dans la philosophie de conception. EfficientDet se concentre fortement sur la minimisation des FLOPs (opérations en virgule flottante) et du nombre de paramètres, ce qui, théoriquement, le rend très efficace. En revanche, YOLOv8 est conçu pour maximiser le débit sur le matériel moderne, en tirant parti du parallélisme du GPU pour offrir des vitesses d'inférence supérieures sans compromettre la précision.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| 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 |
| 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 |
Principaux enseignements tirés des benchmarks
- Domination de la latence du GPU : Les modèles YOLOv8 sont nettement plus rapides sur le matériel GPU. Par exemple, YOLOv8x atteint un mAP plus élevé (53,9) que EfficientDet-d7 (53,7) tout en s'exécutant environ 9x plus rapidement sur un GPU T4 (14,37 ms contre 128,07 ms). Cela fait de YOLOv8 le choix préféré pour les applications d'inférence en temps réel.
- Précision vs. Paramètres : Bien qu’EfficientDet soit réputé pour son efficacité en matière de paramètres, YOLOv8 offre une précision compétitive avec des modèles plus faciles à optimiser. YOLOv8m surpasse EfficientDet-d4 en précision (50,2 vs 49,7 mAP) avec des vitesses d’inférence largement supérieures, malgré les différences de FLOPs.
- Efficacité architecturale : Le nombre inférieur de FLOPs d'EfficientDet ne se traduit pas toujours par une latence plus faible, en particulier sur les GPU où les coûts d'accès à la mémoire et le parallélisme comptent plus que le nombre brut d'opérations. L'architecture de YOLOv8 est conçue pour maximiser l'utilisation du matériel.
Optimisation matérielle
Évaluez toujours les modèles sur votre matériel cible. Les FLOPs théoriques sont un indicateur utile de la complexité, mais ils ne permettent souvent pas de prédire la latence réelle sur les GPU ou les NPU, où la bande passante de la mémoire et les capacités de parallélisation jouent un rôle plus important. Utilisez le mode de benchmark YOLO pour tester les performances sur votre configuration spécifique.
Présentation de Ultralytics YOLOv8
YOLOv8 est la dernière itération majeure de la série YOLO (You Only Look Once) publiée par Ultralytics, conçue pour être un framework unifié pour la détection d'objets, la segmentation d'instance et la classification d'images.
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation :Ultralytics
- Date : 10 janvier 2023
- GitHub :ultralytics/ultralytics
YOLOv8 introduit des améliorations architecturales clés, notamment une tête de détection sans ancres, qui simplifie le processus d'entraînement et améliore la généralisation à travers différentes formes d'objets. Il utilise également un nouveau réseau de backbone et un réseau d'agrégation de chemins (PAN-FPN) conçu pour une intégration plus riche des caractéristiques.
Points forts de YOLOv8
- Performances de pointe : Offre un équilibre exceptionnel entre vitesse et précision, établissant des références sur l'ensemble de données COCO.
- Écosystème convivial pour les développeurs : L'argument
ultralyticsLe package python offre une API simplifiée qui unifie l'entraînement, la validation et le déploiement. - Polyvalence : Prend en charge plusieurs tâches (détection, segmentation, pose, OBB, classification) au sein d’un seul référentiel.
- Efficacité de l'entraînement : Tirant parti de techniques telles que l'augmentation mosaïque, les modèles YOLOv8 convergent plus rapidement et nécessitent souvent moins de données d'entraînement pour atteindre une grande précision.
Présentation de Google EfficientDet
EfficientDet, développé par l’équipe Google Brain, est une famille de modèles de détection d’objets qui a introduit le concept de compound scaling à la détection d’objets. Il met à l’échelle la résolution, la profondeur et la largeur du réseau simultanément pour obtenir des performances optimales.
- Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
- Organisation :Google Research
- Date : 20 novembre 2019
- ArXiv :EfficientDet : detect d’objets évolutive et efficace
EfficientDet est construit sur le backbone EfficientNet et introduit le BiFPN (Bidirectional Feature Pyramid Network), qui permet une fusion de caractéristiques multi-échelles facile et rapide.
En savoir plus sur EfficientDet
Points forts d'EfficientDet
- Efficacité des paramètres : Atteint une grande précision avec relativement peu de paramètres et de FLOP.
- Évolutivité : L'argument
d0àd7La méthode de mise à l’échelle offre un moyen systématique d’échanger des ressources contre de la précision. - BiFPN : Le réseau novateur de pyramide de caractéristiques fusionne efficacement les caractéristiques à différentes résolutions.
Comparaison architecturale
Les différences architecturales entre YOLOv8 et EfficientDet dictent leurs caractéristiques de performance et leur adéquation à différentes tâches.
Backbone et fusion des caractéristiques
- YOLOv8 utilise un backbone CSPDarknet modifié avec un module C2f, qui remplace le module C3 de YOLOv5. Cette conception améliore le flux de gradient et est hautement optimisée pour le parallélisme GPU.
- EfficientDet emploie un backbone EfficientNet combiné à BiFPN. BiFPN utilise des poids apprenables pour fusionner les caractéristiques de différents niveaux, ce qui est théoriquement efficace, mais implique des modèles d’accès à la mémoire complexes et irréguliers qui peuvent ralentir l’inférence sur les GPU.
Tête de détection
- YOLOv8 utilise une architecture de tête découplée, séparant les tâches d’objectivité, de classification et de régression. Surtout, il est sans ancrage, prédisant directement les centres d’objets. Cela élimine le besoin d’un réglage manuel de la boîte d’ancrage et réduit le nombre d’hyperparamètres.
- EfficientDet utilise une approche basée sur l'ancrage. Bien qu'efficaces, les méthodes basées sur l'ancrage nécessitent souvent un étalonnage minutieux des tailles d'ancrage et des rapports d'aspect pour des ensembles de données spécifiques, ce qui ajoute de la complexité au pipeline de formation.
Facilité d'utilisation et écosystème
L'un des différenciateurs les plus importants est l'écosystème qui entoure les modèles. Ultralytics s'est fortement concentré sur la démocratisation de l'IA, en veillant à ce que YOLOv8 soit accessible aux débutants comme aux experts.
L'expérience Ultralytics
L'API python Ultralytics permet aux utilisateurs de charger, d'entraîner et de déployer des modèles avec seulement quelques lignes de code. L'écosystème comprend des intégrations transparentes avec des outils tels que Weights & Biases pour le suivi des expériences et Roboflow pour la gestion des datasets.
from ultralytics import YOLO
# Load a YOLOv8 model
model = YOLO("yolov8n.pt")
# Train the model
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on an image
results = model("path/to/image.jpg")
En revanche, EfficientDet se trouve généralement dans des référentiels axés sur la recherche (comme l'implémentation TensorFlow originale). Bien que puissantes, ces implémentations nécessitent souvent plus de code passe-partout, des fichiers de configuration complexes et une connaissance plus approfondie du framework sous-jacent (TensorFlow/Keras) pour s'entraîner sur des ensembles de données personnalisés.
Capacités d'exportation
Les modèles Ultralytics peuvent être exportés en un seul clic vers de nombreux formats, notamment ONNX, TensorRTCoreML et TFLite. Cette flexibilité est cruciale pour le déploiement des modèles dans divers environnements, des serveurs en nuage aux périphériques Raspberry Pi.
Cas d'utilisation idéaux
Quand choisir YOLOv8
YOLOv8 est le choix recommandé pour la grande majorité des applications de vision par ordinateur aujourd'hui en raison de son équilibre entre vitesse et précision.
- Applications en temps réel : Conduite autonome, vidéosurveillance et robotique où la latence est critique.
- Déploiement Edge : Fonctionnement sur NVIDIA Jetson, les appareils mobiles ou les unités de calcul Edge où l’efficacité et la vitesse sont primordiales.
- Prototypage rapide : Lorsque vous devez passer rapidement de l’ensemble de données au modèle déployé en utilisant un framework fiable et bien documenté.
- Exigences multi-tâches : Si votre projet implique la segmentation ou l'estimation de pose, YOLOv8 gère ces tâches nativement.
Quand choisir EfficientDet
EfficientDet reste pertinent dans des scénarios de niche, en particulier dans la recherche académique ou dans des environnements CPU très contraints.
- Recherche théorique : Étude des architectures de réseau efficaces et des lois d’échelle.
- CPU basse consommation spécifiques : Dans certains cas, le faible nombre de FLOP peut se traduire par une meilleure autonomie de la batterie sur les CPU extrêmement limités en ressources, bien qu’il soit conseillé de procéder à des tests d’évaluation.
Conclusion
Bien qu'EfficientDet ait été une réalisation marquante dans la conception de réseaux neuronaux efficaces, YOLOv8 et le nouveau YOLO11 offrent un ensemble supérieur pour le développement moderne de l'IA. L'architecture sans ancres de YOLOv8, sa conception optimisée pour les GPU et son écosystème Ultralytics robuste offrent un avantage significatif en termes de vitesse de développement, de latence d'inférence et de flexibilité de déploiement.
Pour les développeurs qui cherchent à créer des solutions de vision par ordinateur de pointe à la fois rapides et précises, les modèles Ultralytics YOLO sont le choix définitif.
Explorer d'autres modèles
Si vous souhaitez comparer ces architectures avec d'autres modèles, consultez ces pages :