EfficientDet contre. PP-YOLOE+ : une comparaison technique
Dans l'évolution de la vision par ordinateur, peu de comparaisons mettent en évidence le changement de philosophie de conception aussi clairement que le contraste entre EfficientDet de Google et PP-YOLOE+ de Baidu. Alors que EfficientDet a marqué une étape importante dans l'efficacité des paramètres grâce à la mise à l'échelle composite, PP-YOLOE+ représente l'ère moderne de la détection haute vitesse sans ancrage, optimisée pour l'inférence GPU.
Cette analyse se penche sur leurs architectures, leurs métriques de performance et leurs applications pratiques afin d'aider les développeurs à choisir l'outil adapté à leurs besoins spécifiques en matière de détection d'objets.
Analyse comparative des performances
Le paysage des performances a considérablement évolué entre la sortie de ces deux modèles. EfficientDet se concentre sur la minimisation des FLOPs (opérations en virgule flottante) et du nombre de paramètres, ce qui le rend théoriquement efficace. Cependant, PP-YOLOE+ est conçu pour une vitesse d'inférence pratique sur des accélérateurs matériels tels que les GPU, en tirant parti des optimisations TensorRT.
| 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 |
| PP-YOLOE+t | 640 | 39.9 | - | 2.84 | 4.85 | 19.15 |
| PP-YOLOE+s | 640 | 43.7 | - | 2.62 | 7.93 | 17.36 |
| PP-YOLOE+m | 640 | 49.8 | - | 5.56 | 23.43 | 49.91 |
| PP-YOLOE+l | 640 | 52.9 | - | 8.36 | 52.2 | 110.07 |
| PP-YOLOE+x | 640 | 54.7 | - | 14.3 | 98.42 | 206.59 |
Les données révèlent un aperçu essentiel : bien qu'EfficientDet-d0 soit léger, les variantes plus grandes (d5-d7) souffrent d'une latence importante. Inversement, PP-YOLOE+l atteint une précision moyenne (mAP) comparable à EfficientDet-d6 (52,9 contre 52,6) mais s'exécute plus de 10 fois plus rapidement sur un GPU T4 (8,36 ms contre 89,29 ms).
EfficientDet : Efficacité évolutive
EfficientDet a été introduit par l’équipe Google Brain AutoML dans le but de briser les contraintes d’efficacité des détecteurs précédents. Il est basé sur le backbone EfficientNet, appliquant une méthode de mise à l’échelle composée qui met à l’échelle uniformément la résolution, la profondeur et la largeur.
Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
Organisation :Google
Date : 2019-11-20
Arxiv :1911.09070
GitHub :google/automl
Docs :README
Principales caractéristiques architecturales
- BiFPN (Réseau de pyramide de caractéristiques bidirectionnel) : Contrairement aux FPN traditionnels, BiFPN permet une fusion facile des caractéristiques multi-échelles. Il introduit des poids apprenables pour apprendre l’importance des différentes caractéristiques d’entrée, appliquant à plusieurs reprises la fusion de caractéristiques multi-échelles de haut en bas et de bas en haut.
- Mise à l’échelle composite : Un seul coefficient composite $\phi$ contrôle la largeur, la profondeur et la résolution du réseau, permettant ainsi de créer une famille de modèles (D0 à D7) qui ciblent différentes contraintes de ressources.
Points forts et faiblesses
- Points forts : Excellente efficacité des paramètres ; efficace pour les CPU basse consommation où les FLOPs sont le principal goulot d'étranglement ; approche de mise à l'échelle hautement structurée.
- Points faibles : Les connexions complexes dans BiFPN et les convolutions séparables en profondeur sont souvent limitées par la mémoire sur les GPU, ce qui entraîne une latence d’inférence plus lente dans le monde réel malgré de faibles nombres de FLOP.
Le saviez-vous ?
L’utilisation intensive de convolutions séparables en profondeur par EfficientDet réduit considérablement le nombre de paramètres, mais peut entraîner une utilisation inférieure du GPU par rapport aux convolutions standard utilisées dans des modèles comme YOLO.
En savoir plus sur EfficientDet
PP-YOLOE+: Le challenger sans ancres
Publié par Baidu dans le cadre de l'écosystème PaddlePaddle, PP-YOLOE+ est une évolution de PP-YOLOv2. Il vise à surpasser les performances de YOLOv5 et YOLOX en adoptant un mécanisme entièrement sans ancrage et des stratégies d'entraînement avancées.
Auteurs : Auteurs de PaddlePaddle
Organisation :Baidu
Date : 2022-04-02
Arxiv :2203.16250
GitHub :PaddlePaddle/PaddleDetection
Docs :Configs PP-YOLOE+
Principales caractéristiques architecturales
- Conception sans ancres : En éliminant les boîtes d'ancrage prédéfinies, PP-YOLOE+ simplifie la tête de détection et réduit la charge de réglage des hyperparamètres.
- CSPRepResNet : La colonne vertébrale utilise RepResBlock, qui combine les avantages des connexions résiduelles pendant l'entraînement et les reparamétrise en une structure simplifiée pour l'inférence.
- TAL (Task Alignment Learning) : Une stratégie avancée d’attribution d’étiquettes qui aligne dynamiquement le score de classification et la qualité de la localisation.
Points forts et faiblesses
- Points forts : Précision à la pointe de la technologie sur l'ensemble de données COCO ; extrêmement rapide sur le matériel compatible TensorRT ; conception de tête innovante.
- Points faibles : Fortement lié au framework PaddlePaddle, ce qui peut poser des problèmes d’intégration pour les équipes utilisant PyTorch comme norme ; nombre de paramètres légèrement plus élevé pour les petits modèles par rapport à EfficientDet-d0.
L'avantage Ultralytics : une solution unifiée
Bien qu'EfficientDet offre une efficacité théorique et que PP-YOLOE+ offre une vitesse brute, les développeurs ont souvent besoin d'une solution qui équilibre les performances avec la convivialité et la prise en charge de l'écosystème. C'est là qu'Ultralytics YOLO11 excelle.
Contrairement à la nature spécialisée des modèles de comparaison, les modèles Ultralytics sont conçus pour le flux de travail MLOps moderne, offrant une expérience PyTorch native facile à entraîner et à déployer.
Pourquoi choisir Ultralytics YOLO11 ?
- Facilité d'utilisation : En mettant l'accent sur l'expérience développeur, Ultralytics vous permet de passer de l'installation à l'inférence en trois lignes de code Python. Il n'est pas nécessaire de compiler manuellement des bibliothèques d'opérateurs complexes ou de convertir des formats propriétaires.
- Polyvalence : Un framework unique prend en charge la détection d’objets, la segmentation d’instance, l’estimation de pose, la classification et les boîtes englobantes orientées (OBB).
- Équilibre des performances : YOLO11 optimise le compromis entre vitesse et précision, offrant des capacités d'inférence en temps réel sur les appareils Edge (comme Jetson) et les GPU cloud.
- Exigences de mémoire : Les modèles Ultralytics YOLO utilisent des architectures optimisées qui nécessitent généralement moins de mémoire CUDA pendant l’entraînement par rapport aux alternatives basées sur des transformateurs ou aux anciens réseaux de caractéristiques multi-échelles.
- Écosystème bien maintenu : Soutenu par une communauté open source dynamique, le référentiel reçoit des mises à jour fréquentes, garantissant la compatibilité avec les dernières versions de PyTorch, CUDA et python.
- Efficacité de l'entraînement : Les utilisateurs peuvent tirer parti des poids pré-entraînés facilement disponibles pour affiner rapidement les modèles sur des ensembles de données personnalisés, ce qui réduit considérablement les besoins en données d'entraînement et les coûts de calcul.
Exemple de code : Démarrage avec YOLO11
L'exécution d'un modèle de pointe ne devrait pas être compliquée. Voici comment vous pouvez facilement implémenter la détection d'objets à l'aide d'Ultralytics :
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Run inference on an image
results = model.predict("https://ultralytics.com/images/bus.jpg")
# Display the results
results[0].show()
Conclusion
Le choix entre EfficientDet et PP-YOLOE+ dépend en grande partie de vos contraintes matérielles et de vos exigences existantes.
- EfficientDet reste une référence valable pour la recherche sur la mise à l'échelle efficace des paramètres et convient aux scénarios spécifiques liés au CPU où la bande passante de la mémoire est limitée.
- PP-YOLOE+ est un choix supérieur pour le déploiement GPU haute performance, offrant des compromis latence-précision nettement meilleurs si vous êtes à l'aise avec la navigation dans l'écosystème PaddlePaddle.
Cependant, pour la grande majorité des applications du monde réel, allant de l'analyse des villes intelligentes à la surveillance agricole, Ultralytics YOLO11 s'impose comme le choix le plus pragmatique. Il combine les innovations architecturales des détecteurs modernes sans ancrage avec une expérience utilisateur inégalée, vous permettant de vous concentrer sur la résolution des problèmes commerciaux plutôt que sur le débogage des complexités du framework.
Découvrir d'autres modèles
Pour aller plus loin, vous pouvez consulter ces comparaisons connexes :