YOLO11 vs EfficientDet : Une comparaison technique complète
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 noms importants qui reviennent souvent dans ces évaluations sont Ultralytics YOLO11 et EfficientDet de Google. Bien que les deux architectures visent à résoudre le problème de la détection d'objets dans les images, elles abordent le défi avec des philosophies de conception, des innovations architecturales et des priorités de performance fondamentalement différentes.
Ce guide fournit une comparaison technique approfondie pour aider les développeurs et les chercheurs à comprendre les nuances entre ces deux modèles. Nous explorerons leurs architectures, leurs mesures de performance, leurs méthodologies d'entraînement et leurs cas d'utilisation idéaux, en soulignant pourquoi les développements modernes privilégient souvent la polyvalence et la rapidité de la famille YOLO.
Ultralytics YOLO11 : Le nec plus ultra en matière de vision en temps réel
Lancé fin 2024, YOLO11 représente la dernière itération de la célèbre architecture « You Only Look Once » d’Ultralytics. Il est conçu pour offrir le compromis ultime entre la latence d’inférence et la précision, ce qui en fait le choix idéal pour les applications en temps réel, des appareils périphériques aux serveurs cloud.
Détails techniques :
- Auteurs : Glenn Jocher, Jing Qiu
- Organisation :Ultralytics
- Date : 2024-09-27
- GitHub :ultralytics/ultralytics
- Docs :Documentation Ultralytics YOLO11
Architecture et principales fonctionnalités
YOLO11 s'appuie sur un historique d'optimisation. Il utilise une conception de détecteur sans ancrage raffinée, ce qui simplifie le processus d'entraînement en éliminant le besoin de calculs manuels de boîtes d'ancrage. L'architecture intègre des couches d'extraction de caractéristiques avancées qui réduisent le nombre total de paramètres tout en conservant un mAP élevé.
Contrairement à ses prédécesseurs ou concurrents qui se concentrent uniquement sur la détection, YOLO11 est un framework multi-tâches. Une seule architecture de modèle peut être adaptée pour :
- Détection d'objets
- Segmentation d'instance
- Classification d'images
- Estimation de pose
- Boîte englobante orientée (Oriented Bounding Box, OBB)
L'avantage Ultralytics
L'un des avantages les plus importants de l'utilisation de YOLO11 est l'écosystème Ultralytics. Le modèle est pris en charge par une API Python et une CLI robustes, une maintenance communautaire active et des intégrations transparentes avec des outils pour MLOps. Cela garantit que les développeurs passent moins de temps à se débattre avec le code et plus de temps à déployer des solutions.
Points forts
- Vitesse inégalée : Optimisé pour l’inférence GPU, atteignant des performances en temps réel, même sur les flux haute résolution.
- Polyvalence : La prise en charge native de plusieurs tâches de vision par ordinateur élimine le besoin de changer de framework pour la segmentation ou l’estimation de pose.
- Facilité d'utilisation : L'argument
ultralyticspackage permet l'entraînement, la validation et le déploiement en quelques lignes de code. - Efficacité de la mémoire : Conçu pour s’entraîner plus rapidement avec des besoins en mémoire CUDA plus faibles par rapport aux alternatives basées sur transformateur ou aux architectures plus anciennes.
EfficientDet de Google : Optimisation pour l’efficacité
Introduit par l'équipe Google Brain fin 2019, EfficientDet a été conçu pour améliorer l'efficacité des modèles de détection d'objets. Il s'est concentré sur l'optimisation du nombre de paramètres et du calcul théorique (FLOPs) nécessaires pour atteindre une haute précision.
Détails techniques :
- Auteurs : Mingxing Tan, Ruoming Pang, Quoc V. Le
- Organisation :Google
- Date : 2019-11-20
- Arxiv :EfficientDet : detect d’objets évolutive et efficace
- GitHub :google/automl/efficientdet
- Documentation :EfficientDet README
Architecture et principales fonctionnalités
EfficientDet est construit sur le backbone EfficientNet et introduit deux concepts clés :
- BiFPN (Réseau de pyramide de caractéristiques bidirectionnel) : Une couche de fusion de caractéristiques qui permet une intégration facile des caractéristiques multi-échelles, pondérant différemment les caractéristiques d’entrée pour apprendre leur importance.
- Mise à l’échelle composite : Une méthode pour mettre à l’échelle uniformément la résolution, la profondeur et la largeur du réseau, créant ainsi une famille de modèles allant de D0 (le plus petit) à D7 (le plus grand).
Points forts et faiblesses
EfficientDet excelle en efficacité des paramètres, atteignant souvent une bonne précision avec moins de paramètres que les anciens modèles comme YOLOv3. Il est hautement évolutif, permettant aux utilisateurs de choisir une taille de modèle qui correspond à leur budget théorique de FLOPs.
Cependant, EfficientDet présente des limitations notables dans les contextes de déploiement modernes :
- Inférence GPU plus lente : Bien qu'efficaces en termes de FLOPs, les convolutions séparables depth-wise utilisées intensivement dans EfficientDet sont souvent moins optimisées sur les GPU que les convolutions denses utilisées dans les modèles YOLO. Cela se traduit par une latence d'inférence plus élevée.
- Portée limitée : Principalement un détecteur d'objets, il lui manque le support natif et unifié pour les tâches complexes comme l'OBB ou l'estimation de pose que l'on trouve dans YOLO11.
- Outillage complexe : Le référentiel d’origine est axé sur la recherche (TensorFlow), et ne dispose pas de l’API conviviale et des outils de déploiement soignés qui caractérisent l’écosystème Ultralytics.
En savoir plus sur EfficientDet
Comparaison des performances
Lorsque l'on compare YOLO11 et EfficientDet, la différence la plus frappante réside dans la vitesse d'inférence réelle sur le matériel GPU. Alors qu'EfficientDet minimise les FLOPs, YOLO11 minimise la latence, qui est la mesure la plus importante pour les applications en temps réel.
Le tableau ci-dessous illustre cet écart. Par exemple, YOLO11n surpasse EfficientDet-d0 à la fois en précision (+4,9 mAP) et en vitesse (2,6x plus rapide sur GPU T4). Au fur et à mesure que nous augmentons l'échelle, la différence devient encore plus prononcée ; YOLO11x offre une précision supérieure à EfficientDet-d7 tout en étant plus de 11x plus rapide.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLO11n | 640 | 39.5 | 56.1 | 1.5 | 2.6 | 6.5 |
| YOLO11s | 640 | 47.0 | 90.0 | 2.5 | 9.4 | 21.5 |
| YOLO11m | 640 | 51.5 | 183.2 | 4.7 | 20.1 | 68.0 |
| YOLO11l | 640 | 53.4 | 238.6 | 6.2 | 25.3 | 86.9 |
| YOLO11x | 640 | 54.7 | 462.8 | 11.3 | 56.9 | 194.9 |
| 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 |
Analyse des résultats
- Capacités en temps réel : YOLO11 offre de véritables capacités d’inférence en temps réel dans toutes les tailles de modèles sur GPU, tandis qu’EfficientDet a du mal à maintenir des fréquences d’images en temps réel (30 FPS ou ~33 ms) avec ses variantes plus grandes (d4-d7).
- Précision vs. Vitesse : À chaque point de précision comparable (par exemple, 47,0 mAP), la variante YOLO11 (YOLO11s) est considérablement plus rapide que l’équivalent EfficientDet (EfficientDet-d3).
- Efficacité de l'entraînement : Les modèles Ultralytics convergent généralement plus rapidement et utilisent l'accélération matérielle plus efficacement, ce qui réduit le coût et le temps nécessaires à l'entraînement sur des ensembles de données personnalisés.
Cas d'utilisation idéaux
Quand choisir Ultralytics YOLO11
YOLO11 est le choix privilégié pour la grande majorité des projets de vision par ordinateur modernes, en particulier ceux qui nécessitent un équilibre entre vitesse, précision et facilité de développement.
- Edge AI & Robotique : Déploiement sur des appareils tels que NVIDIA Jetson ou Raspberry Pi où une faible latence est non négociable pour des tâches telles que la navigation ou l'évitement de collision.
- Applications commerciales : Analyse de vente au détail, fabrication automatisée et surveillance de la sécurité où la fiabilité et la vitesse ont un impact direct sur le retour sur investissement.
- Systèmes multi-tâches : Projets qui nécessitent plus que de simples bounding boxes, comme vérifier si un travailleur porte un équipement de sécurité (détection) et si sa posture est correcte (estimation de pose).
- Développement rapide : Les équipes qui ont besoin d'itérer rapidement à l'aide d'une API conviviale et d'une documentation complète.
Quand choisir EfficientDet
EfficientDet reste pertinent dans des scénarios de niche spécifiques :
- Analyse comparative académique : Chercheurs étudiant les effets spécifiques de la mise à l'échelle composée ou des architectures BiFPN.
- Contraintes FLOPs sévères : Environnements CPU extrêmement contraints où le nombre théorique d'opérations (FLOPs) est le seul facteur limitant, plutôt que la latence ou la bande passante de la mémoire.
Facilité d'utilisation : L'expérience de code Ultralytics
L'une des caractéristiques déterminantes de YOLO11 est l'expérience développeur transparente. Alors que les modèles hérités nécessitent souvent des fichiers de configuration complexes et du code boilerplate, Ultralytics rationalise le flux de travail en quelques lignes intuitives de python.
Voici comme il est simple de charger un modèle YOLO11 pré-entraîné et d'exécuter l'inférence :
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model("path/to/image.jpg")
# Display the results
results[0].show()
Cette simplicité s'étend également à l'entraînement sur des données personnalisées :
# Train the model on a custom dataset (e.g., COCO8)
model.train(data="coco8.yaml", epochs=100, imgsz=640)
Support de l'écosystème
Ultralytics fournit une intégration transparente avec les ensembles de données et les outils populaires. Que vous utilisiez Roboflow pour la gestion des données ou TensorRT pour l'optimisation du déploiement, l'écosystème est conçu pour prendre en charge l'ensemble de votre pipeline.
Conclusion
Bien qu'EfficientDet ait introduit des concepts importants en matière de mise à l'échelle et d'efficacité des modèles, Ultralytics YOLO11 s'impose comme le choix supérieur pour les besoins pratiques actuels en matière de vision par ordinateur. Il offre une combinaison convaincante de :
- Performances supérieures : Vitesses d’inférence plus rapides et plus grande précision sur le matériel moderne.
- Plus grande polyvalence : Un cadre unifié pour la detection, la segmentation, la pose, et plus encore.
- Meilleure convivialité : Un écosystème bien entretenu avec une excellente documentation et un soutien communautaire.
Pour les développeurs qui cherchent à créer des applications d'IA de vision robustes, performantes et évolutives, YOLO11 offre la puissance et la flexibilité nécessaires pour réussir.
Autres comparaisons de modèles
Découvrez comment YOLO11 se compare à d'autres architectures de pointe :
- YOLO11 vs. YOLOv10
- YOLO11 vs. YOLOv8
- YOLO11 vs. RT-DETR
- EfficientDet contre. YOLOv8
- EfficientDet vs. YOLOv7