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 qu'EfficientDet a marqué un tournant dans l'efficacité des paramètres grâce à la mise à l'échelle des composés, PP-YOLOE+ représente l'ère moderne de la détection à grande vitesse, sans ancrage, optimisée pour l'inférence GPU .
Cette analyse se penche sur leurs architectures, leurs performances et leurs applications pratiques afin d'aider les développeurs à choisir le bon outil pour leurs besoins spécifiques en matière de détection d'objets.
Analyse comparative des performances
Le paysage des performances a évolué de manière significative entre la sortie de ces deux modèles. EfficientDet se concentre sur la minimisation des FLOP (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 point essentiel : alors que EfficientDet-d0 est léger, les variantes plus grandes (d5-d7) souffrent d'une latence importante. À l'inverse, PP-YOLOE+l atteint une précisionmAP comparable à EfficientDet-d6 (52,9 contre 52,6), mais s'exécute plus de 10 fois plus vite sur un GPU T4 (8,36 ms contre 89,29 ms).
EfficientDet : Efficacité évolutive
EfficientDet a été introduit par l'équipe AutoML de Google Brain dans le but de briser les contraintes d'efficacité des détecteurs précédents. Il s'appuie sur l'épine dorsale EfficientNet, en appliquant une méthode de mise à l'échelle composée qui met uniformément à l'échelle 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
Docs:README
Principales caractéristiques architecturales
- BiFPN (Bidirectional Feature Pyramid Network) : Contrairement aux FPN traditionnels, le BiFPN permet une fusion facile des caractéristiques à plusieurs échelles. Il introduit des poids qui permettent d'apprendre l'importance des différentes caractéristiques d'entrée, en appliquant de manière répétée la fusion de caractéristiques multi-échelles de haut en bas et de bas en haut.
- Échelle composée : Un coefficient composé unique $\phi$ contrôle la largeur, la profondeur et la résolution du réseau, ce qui permet de créer une famille de modèles (D0 à D7) qui répondent à différentes contraintes en matière de ressources.
Points forts et faiblesses
- Points forts : excellente efficacité des paramètres ; efficace pour les CPU à faible consommation d'énergie où les FLOP sont le principal goulot d'étranglement ; approche de mise à l'échelle très structurée.
- Points faibles : Les connexions complexes de BiFPN et les convolutions séparables en profondeur sont souvent limitées par la mémoire des GPU, ce qui entraîne une latence d'inférence plus lente dans le monde réel malgré un faible nombre de FLOP.
Le saviez-vous ?
L'utilisation intensive par EfficientDet de convolutions séparables en profondeur réduit le nombre de paramètres de manière significative, mais peut conduire à une utilisation plus faible du GPU par rapport aux convolutions standard utilisées dans des modèles tels que YOLO.
En savoir plus sur EfficientDet
PP-YOLOE+ : Le challenger sans ancrage
Lancé 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 de YOLOX en adoptant un mécanisme entièrement dépourvu d'ancrage et des stratégies d'entraînement avancées.
Auteurs : PaddlePaddle Authors
Organization:Baidu
Date : 2022-04-02
Arxiv:2203.16250
GitHub:PaddlePaddle
Docs:PP-YOLOE+ Configs
Principales caractéristiques architecturales
- Conception sans ancrage : 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 : L'épine dorsale utilise RepResBlock, qui combine les avantages des connexions résiduelles pendant la formation et les re-paramètre dans une structure rationalisé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 de pointe sur l'ensemble de donnéesCOCO ; extrêmement rapide sur le matériel TensorRT; conception innovante de la tête.
- Points faibles : Fortement lié au cadre PaddlePaddle , qui peut poser des problèmes d'intégration pour les équipes standardisées sur PyTorch; 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
Alors qu'EfficientDet offre une efficacité théorique et que PP-YOLOE+ fournit une vitesse brute, les développeurs ont souvent besoin d'une solution qui équilibre la performance avec la convivialité et le soutien de l'écosystème. C'est là qu'intervient 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 qui est facile à former et à déployer.
Pourquoi choisir Ultralytics YOLO11 ?
- Facilité d'utilisation : En mettant l'accent sur l'expérience des développeurs, 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 cadre unique prend en charge la détection d'objets, la segmentation d'instances, l'estimation de la pose, la classification et les boîtes de délimitation 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 en nuage.
- Exigences en matière de mémoire : Les modèlesYOLO d'Ultralytics utilisent des architectures optimisées qui nécessitent généralement moins de mémoire CUDA pendant l'apprentissage que les alternatives basées sur les transformateurs ou les anciens réseaux de caractéristiques multi-échelles.
- Un écosystème bien entretenu : Soutenu par une communauté open-source dynamique, le référentiel est fréquemment mis à jour, ce qui garantit la compatibilité avec les dernières versions de PyTorch, CUDA et Python.
- Efficacité de la formation : Les utilisateurs peuvent exploiter les 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 : Premiers pas avec YOLO11
L'exécution d'un modèle de pointe ne devrait pas être compliquée. Voici comment vous pouvez facilement mettre en œuvre 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 largement de vos contraintes matérielles et de vos exigences en matière d'héritage.
- EfficientDet reste une référence valable pour la recherche sur la mise à l'échelle efficace des paramètres et convient à des scénarios spécifiques CPU où la largeur de bande de la mémoire est limitée.
- PP-YOLOE+ est un choix supérieur pour le déploiement de GPU haute performance, offrant des compromis latence/précision nettement meilleurs si vous êtes à l'aise avec l'écosystème PaddlePaddle
Cependant, pour la grande majorité des applications du monde réel - allant de l'analyse des villes intelligentes à la surveillance de l'agriculture - l'utilisation d'Ultralytics est un moyen efficace d'améliorer la qualité de la vie.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, ce qui vous permet de vous concentrer sur la résolution des problèmes commerciaux plutôt que sur le débogage des subtilités du cadre.
Découvrez d'autres modèles
Pour aller plus loin, vous pouvez consulter les comparaisons suivantes :