Passer au contenu

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

Dans le domaine de la vision par ordinateur, qui évolue rapidement, la recherche d'un équilibre optimal entre l'efficacité des calculs et la précision de la détection est constante. Deux architectures ont marqué leur époque respective : EfficientDet, une famille de modèles évolutifs de Google Research, et YOLOv10le dernier détecteur de bout en bout en temps réel 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 mesures de performance et leur adéquation à un déploiement dans le monde réel.

Origine et aperçu du modèle

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

EfficientDet

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

YOLOv10

Sorti en mai 2024, YOLOv10 repousse les limites de la détection en temps réel en éliminant la nécessité d'une suppression non maximaleNMS lors du post-traitement, ce qui permet de réduire la latence et de simplifier le déploiement.

En savoir plus sur YOLOv10

Plongée architecturale en profondeur

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

EfficientDet : Échelle composée et BiFPN

EfficientDet est construit sur l'épine dorsale d'EfficientNet. Sa caractéristique principale est le Bi-directional Feature Pyramid Network (BiFPN). Contrairement aux FPN traditionnels qui additionnent les caractéristiques à différentes échelles, le BiFPN introduit des poids apprenables pour mettre l'accent sur les caractéristiques les plus importantes lors de la fusion. Il ajoute également des voies descendantes et ascendantes pour faciliter le flux d'informations.

Malgré son efficacité théorique en termes de FLOP (Floating Point Operations per Second), l'utilisation intensive de convolutions séparables en profondeur et la structure complexe du BiFPN peuvent parfois conduire à un débit inférieur sur le matériel GPU par rapport à des architectures plus simples.

YOLOv10: Détection de bout en bout NMS

YOLOv10 introduit un changement de paradigme en supprimant la dépendance à l'égard du NMS. Les détecteurs traditionnels en temps réel génèrent de nombreuses prédictions redondantes qui doivent être filtrées, ce qui crée un goulot d'étranglement au niveau de la latence. YOLOv10 utilise des affectations doubles cohérentes pendant la formation : une tête un-à-plusieurs pour les signaux de supervision riches et une tête un-à-un pour une inférence précise, NMS.

En outre, YOLOv10 utilise un modèle holistique axé sur l'efficacité et la précision. Cela inclut des têtes de classification légères, un sous-échantillonnage découplé des canaux spatiaux et une conception des blocs guidée par les rangs, garantissant que chaque paramètre contribue efficacement à la performance du modèle.

L'avantage de l'inférence NMS

La suppression non maximaleNMS est une étape de post-traitement utilisée pour filtrer les boîtes englobantes qui se chevauchent. Il s'agit d'une étape séquentielle et coûteuse en termes de calcul, dont la 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, ce qui la rend hautement prévisible pour les applications d'IA de pointe.

Analyse des performances : Vitesse vs. Précision

Si l'on compare les performances, YOLOv10 présente des avantages significatifs sur le matériel moderne, en particulier les GPU. Alors qu'EfficientDet était optimisé pour les FLOP, 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

  • Temps de latence duGPU : 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 13 fois 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 : À l'extrémité supérieure, YOLOv10x atteint un mAP de pointe de 54,4, dépassant la plus grande variante EfficientDet-d7 tout en conservant une fraction de la latence.

Efficacité de la formation et facilité d'utilisation

L'un des facteurs les plus importants 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é dans 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 APIPython unifiée qui standardise la formation, la validation et le déploiement à travers différentes générations de modèles.

  • API simple : Entraînez un modèle en 3 lignes de code.
  • Documentation : Guides et exemples complets.
  • Communauté : Une vaste communauté active qui fournit un soutien et des mises à jour.
  • Efficacité de la mémoire : Les modèlesYOLO d'Ultralytics sont optimisés pour réduire l'utilisation de la mémoire CUDA pendant l'apprentissage par rapport aux anciennes architectures ou aux modèles lourds basés sur des transformateurs.

Exemple de code

La formation de YOLOv10 avec Ultralytics est simple. Le cadre 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 s'avérer moins convivial pour un 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 en périphérie

Grâce à sa conception NMS et à sa faible latence, YOLOv10 est le meilleur choix pour les tâches sensibles au temps.

  • Systèmes autonomes : Essentiel pour les voitures et les drones autonomes, où les décisions prises à la milliseconde près permettent d'éviter les accidents.
  • Fabrication : Contrôle de qualité à grande vitesse sur des bandes transporteuses où les objets se déplacent rapidement.
  • Commerce de détail intelligent : Gestion des stocks en temps réel et analyse de la clientèle à l'aide d'appareils périphériques.
  • Applications mobiles : La taille compacte de YOLOv10n permet un déploiement aisé sur les appareils iOS et Android par l'intermédiaire de CoreML ou TFLite.

EfficientDet : Systèmes académiques et anciens

EfficientDet reste pertinent dans des contextes spécifiques :

  • CPU à ressources limitées : Les variantes EfficientDet les plus petites (d0, d1) sont fortement optimisées pour les régimes à faible FLOP, et fonctionnent parfois bien sur du matériel plus ancien fonctionnant CPU.
  • Bases de recherche : Il constitue une excellente base de référence pour les recherches universitaires comparant les lois de mise à l'échelle dans les réseaux neuronaux.
  • Pipelines existants : Les organisations disposant de pipelines TensorFlow hérités 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 :
    • NMS: un véritable déploiement 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 entretenu : Soutenu par l'écosystème Ultralytics avec des mises à jour fréquentes.
  • Faiblesses :
    • Comme il s'agit d'une architecture plus récente, il est possible qu'elle ait moins d'années de tests de stabilité à long terme que les modèles de l'ère 2019, bien qu'une adoption rapide atténue ce problème.

EfficientDet

  • Points forts :
    • Évolutivité : La méthode de mise à l'échelle des composés est théoriquement élégante et efficace.
    • Efficacité des paramètres : Bon rapport précision/paramètre pour l'époque.
  • Faiblesses :
    • Inférence lente : L'utilisation intensive de convolutions en profondeur 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

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 en matière de détection d'objets. L'évolution vers des architectures de bout en bout NMS permet à YOLOv10 d'offrir des performances supérieures qui sont cruciales 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, offrent une combinaison convaincante de vitesse, de précision et d'expérience pour les développeurs. La possibilité 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 les délais de mise sur le marché.

Les personnes intéressées par les dernières avancées en la matière devraient également explorer les sites suivants Ultralytics YOLO11qui affine encore ces capacités pour un éventail encore plus large de tâches de vision par ordinateur, notamment la segmentation, l'estimation de la pose et la détection d'objets orientés.

Explorer d’autres comparaisons

Pour prendre une décision en toute connaissance de cause, nous vous invitons à consulter les comparaisons techniques suivantes :


Commentaires