Passer au contenu

EfficientDet vs. YOLOv10 : L’évolution de l’efficacité de la détection d’objets

Dans le paysage en rapide évolution de la vision par ordinateur, la quête de l'équilibre optimal entre l'efficacité computationnelle et la précision de la détection est constante. Deux architectures qui ont défini leurs époques respectives sont EfficientDet, une famille de modèles évolutifs de Google Research, et YOLOv10, le dernier détecteur temps réel de bout en bout des chercheurs de l'université de Tsinghua.

Cette comparaison explore les nuances techniques des deux modèles, en examinant comment la philosophie de conception moderne de YOLOv10 améliore les concepts fondamentaux introduits par EfficientDet. Nous analyserons leurs architectures, leurs métriques de performance et leur adéquation au déploiement dans le monde réel.

Origines et aperçu du modèle

Comprendre le contexte historique de ces modèles permet d’apprécier les avancées technologiques réalisées ces dernières années.

EfficientDet

EfficientDet a été introduit fin 2019, dans le but de résoudre le problème de l’inefficacité de la mise à l’échelle des modèles de détection d’objets. Il a proposé une méthode de mise à l’échelle composée qui met à l’échelle uniformément la résolution, la profondeur et la largeur.

YOLOv10

Lancé en mai 2024, YOLOv10 repousse les limites de la détection en temps réel en éliminant le besoin de suppression non maximale (NMS) pendant le post-traitement, ce qui réduit la latence et simplifie le déploiement.

En savoir plus sur YOLOv10

Plongée architecturale en profondeur

La différence fondamentale entre ces modèles réside dans leur approche de la fusion de caractéristiques et du post-traitement.

EfficientDet : Compound Scaling et BiFPN

EfficientDet est basé sur le backbone EfficientNet. Sa caractéristique déterminante est le Bi-directional Feature Pyramid Network (BiFPN). Contrairement aux FPN traditionnels qui somment les caractéristiques de différentes échelles, BiFPN introduit des poids apprenables pour mettre en évidence les caractéristiques les plus importantes lors de la fusion. Il ajoute également des chemins de haut en bas et de bas en haut pour faciliter une meilleure circulation de l'information.

Malgré son efficacité théorique en termes de FLOPs (Floating Point Operations per Second), l'utilisation intensive de convolutions séparables en profondeur et la structure complexe BiFPN peuvent parfois entraîner un débit plus faible sur le matériel GPU par rapport aux architectures plus simples.

YOLOv10 : Détection de bout en bout sans NMS

YOLOv10 introduit un changement de paradigme en supprimant la dépendance à la NMS. Les détecteurs en temps réel traditionnels génèrent de nombreuses prédictions redondantes qui doivent être filtrées, créant ainsi un goulot d'étranglement en termes de latence. YOLOv10 utilise des attributions doubles cohérentes pendant l'entraînement : une tête un-à-plusieurs pour des signaux de supervision riches et une tête un-à-un pour une inférence précise et sans NMS.

De plus, YOLOv10 utilise une conception de modèle holistique axée sur l'efficacité et la précision. Cela inclut des têtes de classification légères, un sous-échantillonnage spatial-canal découplé et une conception de bloc guidée par le rang, garantissant que chaque paramètre contribue efficacement à la performance du modèle.

L'avantage de l'inférence sans NMS

La suppression non maximale (NMS) est une étape de post-traitement utilisée pour filtrer les boîtes englobantes qui se chevauchent. Elle est séquentielle et coûteuse en calcul, et sa vitesse varie souvent en fonction du nombre d'objets détectés. En concevant une architecture qui prédit naturellement une boîte par objet (de bout en bout), YOLOv10 stabilise la latence d'inférence, la rendant hautement prévisible pour les applications d'IA en périphérie.

Analyse des performances : Vitesse vs. Précision

Lorsque l'on compare les performances, YOLOv10 démontre des avantages significatifs sur le matériel moderne, en particulier les GPU. Alors qu'EfficientDet a été optimisé pour les FLOPs, YOLOv10 est optimisé pour la latence et le débit réels.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Points clés à retenir

  • Latence du GPU : YOLOv10 offre une réduction spectaculaire du temps d'inférence. Par exemple, YOLOv10b atteint un mAP plus élevé (52,7) que EfficientDet-d6 (52,6) tout en étant plus de 13x plus rapide sur un GPU T4 (6,54 ms contre 89,29 ms).
  • Efficacité des paramètres : Les modèles YOLOv10 nécessitent généralement moins de paramètres pour une précision comparable. La variante YOLOv10n est extrêmement légère (2,3 millions de paramètres), ce qui la rend idéale pour les déploiements mobiles.
  • Précision : Dans le haut de gamme, YOLOv10x atteint un mAP de pointe de 54,4, surpassant la plus grande variante EfficientDet-d7 tout en conservant une fraction de la latence.

Efficacité de l'entraînement et facilité d'utilisation

L'un des facteurs les plus critiques pour les développeurs est la facilité d'intégration de ces modèles dans les flux de travail existants.

Avantages de l'écosystème Ultralytics

YOLOv10 est intégré à l'écosystème Ultralytics, ce qui offre un avantage significatif en termes de facilité d'utilisation et de maintenance. Les utilisateurs bénéficient d'une API Python unifiée qui standardise l'entraînement, la validation et le déploiement sur différentes générations de modèles.

  • API simple : Entraînez un modèle en 3 lignes de code.
  • Documentation : Guides et exemples exhaustifs.
  • Communauté : Une vaste communauté active fournissant support et mises à jour.
  • Efficacité de la mémoire : Les modèles Ultralytics YOLO sont optimisés pour une utilisation plus faible de la mémoire CUDA pendant l’entraînement par rapport aux anciennes architectures ou aux modèles lourds basés sur des transformateurs.

Exemple de code

L'entraînement de YOLOv10 avec Ultralytics est simple. Le framework gère automatiquement l'augmentation des données, le réglage des hyperparamètres et la journalisation.

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Train the model on your custom dataset
# efficiently using available GPU resources
model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16)

# Run inference on an image
results = model("path/to/image.jpg")

En revanche, la reproduction des résultats d'EfficientDet nécessite souvent des configurations TensorFlow complexes ou des versions spécifiques des bibliothèques AutoML, ce qui peut être moins convivial pour le prototypage rapide.

Cas d'utilisation idéaux

Les deux modèles ont leurs mérites, mais leurs domaines d'application idéaux diffèrent en fonction de leurs caractéristiques architecturales.

YOLOv10 : Applications en temps réel et périphériques

Grâce à sa conception sans NMS et à sa faible latence, YOLOv10 est le choix idéal pour les tâches sensibles au facteur temps.

  • Systèmes autonomes : Essentiel pour les voitures autonomes et les drones où les décisions à latence de l’ordre de la milliseconde permettent d’éviter les accidents.
  • Fabrication : Contrôle qualité à haute vitesse sur les bandes transporteuses où les objets se déplacent rapidement.
  • Vente au détail intelligente : Gestion des stocks en temps réel et analyse des clients à l'aide d'appareils périphériques.
  • Applications mobiles : La taille compacte de YOLOv10n permet un déploiement fluide sur les appareils iOS et Android via CoreML ou TFLite.

EfficientDet : Systèmes académiques et hérités

EfficientDet reste pertinent dans des contextes spécifiques :

  • CPU à ressources limitées : Les petites variantes EfficientDet (d0, d1) sont hautement optimisées pour les régimes à faible FLOP, et fonctionnent parfois bien sur du matériel plus ancien utilisant uniquement le CPU.
  • Bases de référence pour la recherche : Il constitue une excellente base de référence pour la recherche universitaire comparant les lois d’échelle dans les réseaux neuronaux.
  • Pipelines existants : Les organisations dotées de pipelines TensorFlow existants peuvent trouver plus facile de maintenir les déploiements EfficientDet existants plutôt que de migrer.

Résumé des forces et des faiblesses

YOLOv10

  • Points forts :
    • Sans NMS : Le déploiement véritable de bout en bout simplifie l'intégration.
    • Équilibre des performances : compromis vitesse-précision inégalé sur les GPU.
    • Polyvalence : Capable de gérer efficacement diverses tâches de détection.
    • Bien maintenu : Soutenu par l’écosystème Ultralytics avec des mises à jour fréquentes.
  • Faiblesses :
    • En tant qu'architecture plus récente, elle peut avoir moins d'années de tests de stabilité à long terme par rapport aux modèles de l'ère 2019, bien que l'adoption rapide atténue ce problème.

EfficientDet

  • Points forts :
    • Scalabilité : La méthode de mise à l'échelle composite est théoriquement élégante et efficace.
    • Efficacité des paramètres : Bon ratio précision/paramètre pour son époque.
  • Faiblesses :
    • Inférence lente : L'utilisation intensive de convolutions depth-wise est souvent plus lente sur les GPU que les convolutions standard de YOLO.
    • Complexité : BiFPN ajoute une complexité architecturale qui peut être plus difficile à déboguer ou à optimiser pour les accélérateurs matériels personnalisés.

Conclusion

Alors que EfficientDet était une architecture pionnière qui a introduit des concepts importants dans la mise à l'échelle des modèles, YOLOv10 représente la norme moderne pour la détection d'objets. Le passage à des architectures sans NMS et de bout en bout permet à YOLOv10 d'offrir des performances supérieures, ce qui est essentiel pour les applications en temps réel d'aujourd'hui.

Pour les développeurs et les chercheurs qui cherchent à construire des systèmes de vision robustes et performants, YOLOv10—et l'écosystème Ultralytics au sens large—offre une combinaison convaincante de vitesse, de précision et d'expérience développeur. La capacité d'entraîner, d'exporter et de déployer des modèles de manière transparente à l'aide d'une plateforme unifiée réduit considérablement le délai de mise sur le marché.

Ceux qui s'intéressent aux toutes dernières avancées devraient également explorer Ultralytics YOLO11, qui affine encore ces capacités pour un éventail encore plus large de tâches de vision par ordinateur, notamment la segmentation, l'estimation de pose et la détection d'objets orientés.

Explorer d’autres comparaisons

Pour prendre la décision la plus éclairée, envisagez de consulter ces comparaisons techniques connexes :


Commentaires