Passer au contenu

YOLOv10 vs. EfficientDet : Une comparaison technique

Le paysage de la détection d'objets a évolué rapidement au cours des dernières années, passant de pipelines complexes à plusieurs étapes à des architectures rationalisées en temps réel. Cette comparaison explore les différences techniques entre YOLOv10un modèle de pointe publié en 2024 par des chercheurs de l'université de Tsinghua, et EfficientDet, une architecture pionnière introduite par Google en 2019.

Alors qu'EfficientDet a établi des références en matière d'efficacité des paramètres, YOLOv10 repousse les limites de la latence et de la précision, en introduisant un paradigme d'entraînement NMS qui augmente considérablement la vitesse d'inférence. Ce guide analyse leurs architectures, leurs performances et les cas d'utilisation idéaux pour vous aider à choisir le bon modèle pour vos projets de vision par ordinateur.

YOLOv10: Détection d'objets en temps réel de bout en bout

YOLOv10 représente une avancée significative dans la série YOLO (You Only Look Once), en se concentrant sur l'élimination de l'étape de post-traitement de suppression non maximaleNMS qui ralentit souvent la vitesse d'inférence. En utilisant des affectations doubles cohérentes pour une formation NMS, il atteint des performances compétitives avec une latence plus faible par rapport aux itérations précédentes.

Détails techniques :

En savoir plus sur YOLOv10

Principales caractéristiques architecturales

YOLOv10 introduit un modèle holistique axé sur l'efficacité et la précision. L'innovation principale réside dans sa double stratégie d'affectation. Au cours de la formation, le modèle utilise à la fois des affectations "un à plusieurs" (communes à YOLOv8) pour une supervision riche et des affectations "un à un" pour assurer un déploiement de bout en bout sans NMS.

  1. FormationNMS: Les détecteurs traditionnels nécessitent un NMS pour filtrer les boîtes de délimitation en double, ce qui introduit un temps de latence dans l'inférence. L'architecture de YOLOv10 permet au modèle de prédire exactement une boîte par objet lors de l'inférence, ce qui élimine efficacement cette surcharge.
  2. Conception axée sur l'efficacité : Le modèle utilise des têtes de classification légères et un sous-échantillonnage découplé des canaux spatiaux pour réduire les coûts de calcul (FLOP) et le nombre de paramètres.
  3. Convolutions à grand noyau : En utilisant de manière sélective des convolutions à grand noyau en profondeur, YOLOv10 améliore son champ réceptif et sa capacité à detect petits objets sans augmentation massive des calculs.

Pourquoi NMS est important

La suppression de la suppression non maximaleNMS crée un véritable pipeline de bout en bout. C'est essentiel pour les applications d'IA en périphérie où chaque milliseconde compte, comme sur les appareils NVIDIA Jetson, afin de garantir une latence stable et prévisible.

Points forts

  • Vitesse supérieure : Optimisé pour l'inférence en temps réel, il est nettement plus performant que les anciens modèles sur le matériel GPU .
  • IntégrationUltralytics : En tant que membre de l'écosystème Ultralytics , YOLOv10 bénéficie d'une APIPython simple, ce qui le rend incroyablement facile à former, à valider et à déployer.
  • Utilisation réduite de la mémoire : L'architecture efficace nécessite moins de mémoire CUDA pendant l'apprentissage que les détecteurs à base de transformateurs tels que RT-DETR.

EfficientDet : Architecture évolutive et efficace

EfficientDet, développé par l'équipe de Google Brain, a été conçu pour optimiser à la fois la précision et l'efficacité. Il a introduit une famille de modèles (D0-D7) mis à l'échelle à l'aide d'une méthode de mise à l'échelle composée qui ajuste uniformément la résolution, la profondeur et la largeur.

Détails techniques :

En savoir plus sur EfficientDet

Principales caractéristiques architecturales

EfficientDet s'appuie sur l'épine dorsale EfficientNet et introduit le BiFPN (Bi-directional Feature Pyramid Network).

  1. BiFPN : Contrairement aux FPN standard, la BiFPN permet un flux d'informations bidirectionnel et utilise des pondérations apprenables pour fusionner des caractéristiques provenant de différentes échelles. Il en résulte une meilleure représentation des caractéristiques multi-échelles avec moins de paramètres.
  2. Mise à l'échelle composée : Cette méthode garantit que le réseau principal, le réseau de caractéristiques et les réseaux de prédiction de boîtes/classes augmentent ensemble de manière efficace. Un modèle D0 est petit et rapide pour les mobiles, tandis qu'un modèle D7 offre une précision de pointe pour les environnements à ressources élevées.

Points forts et faiblesses

  • Efficacité des paramètres : EfficientDet est réputé pour obtenir des mAP élevée avec relativement peu de paramètres et de FLOP.
  • Évolutivité : La gamme D0-D7 offre une grande flexibilité pour différents budgets de calcul.
  • Temps de latence élevé : Malgré le faible nombre de FLOP, les connexions complexes du BiFPN et les convolutions séparables en profondeur peuvent entraîner une latence plus élevée sur les GPU que les architectures CNN simplifiées des modèles YOLO .
  • Complexité : L'architecture est plus difficile à personnaliser ou à mettre au point que la conception simple d Ultralytics YOLOv8 ou YOLOv10.

Analyse des performances : Vitesse et efficacité

En comparant ces deux modèles, la distinction entre l'efficacité théorique (FLOPs) et la vitesse pratique (Latency) devient évidente. EfficientDet excelle à minimiser les FLOPs, mais YOLOv10 domine la vitesse d'inférence dans le monde réel sur du matériel moderne comme les GPU.

Le tableau ci-dessous montre que si les modèles EfficientDet sont compacts, YOLOv10 offre un bien meilleur compromis pour les applications en temps réel. Par exemple, YOLOv10 offre un mAP compétitif mAP 46,7 % avec une latence de seulement 2,66 ms sur un GPU T4, alors que EfficientDet-d3 (47,5 % mAP) est presque 7 fois plus lent avec 19,59 ms.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
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
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

Interprétation

  • Domination duGPU : YOLOv10 utilise des choix de conception tenant compte du matériel qui s'adaptent parfaitement aux architectures GPU , ce qui se traduit par un débit nettement supérieur.
  • Parité de précision : De nouvelles stratégies de formation permettent à YOLOv10 d'égaler ou de dépasser la précision des variantes EfficientDet, beaucoup plus lentes.
  • Déploiement : La nature NMS de YOLOv10 simplifie le processus d'exportation vers des formats tels que TensorRT et ONNX, réduisant ainsi la complexité du pipeline de déploiement.

Facilité d'utilisation et écosystème

L'un des facteurs les plus critiques pour les développeurs est l'écosystème qui entoure un modèle. Dans ce domaine, Ultralytics offre un avantage substantiel.

L'avantage Ultralytics

YOLOv10 est intégré dans le package Ultralytics Python , offrant une expérience transparente de l'annotation des données au déploiement.

  • API simple : Vous pouvez charger, former et prédire avec seulement quelques lignes de code.
  • Bien entretenu : Les mises à jour fréquentes, l'assistance de la communauté et la documentation complète garantissent que vous n'aurez pas à déboguer d'obscures erreurs.
  • Efficacité de la formation : Les modèles Ultralytics sont optimisés pour une convergence rapide. Les poids pré-entraînés sont facilement disponibles, ce qui permet un apprentissage par transfert efficace sur des ensembles de données personnalisés.

Former YOLOv10 avec Ultralytics

L'entraînement d'un modèle YOLOv10 sur l'ensemble de données COCO8 est simple à l'aide de l'API Ultralytics .

from ultralytics import YOLO

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

# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

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

En revanche, EfficientDet s'appuie sur d'anciens référentiels TensorFlow ou des implémentations PyTorch tierces qui peuvent manquer de support unifié, ce qui rend l'intégration dans les pipelines MLOps modernes plus difficile.

Cas d'utilisation idéaux

Le choix entre YOLOv10 et EfficientDet dépend de vos contraintes spécifiques.

Quand choisir YOLOv10

YOLOv10 est le meilleur choix pour la plupart des applications modernes de vision par ordinateur, en particulier :

  • Systèmes autonomes : Les voitures auto-conduites et les drones nécessitent une détection à faible latence pour assurer la sécurité. La vitesse de YOLOv10 garantit des temps de réaction rapides.
  • Analyse vidéo : Traitement des flux vidéo à haute fréquence pour la surveillance de la sécurité ou du trafic.
  • Déploiement en périphérie : Déploiement sur des appareils embarqués tels que Raspberry Pi ou NVIDIA Jetson où les ressources sont limitées mais où la performance en temps réel n'est pas négociable.

Quand choisir EfficientDet

EfficientDet reste pertinent dans des scénarios de niche spécifiques :

  • Recherche universitaire : Si l'objectif est d'étudier les lois de mise à l'échelle des composés ou les principes de conception de réseaux neuronaux efficaces.
  • Contraintes strictes en matière de FLOPs : Dans des environnements matériels extrêmement spécifiques où les FLOPs théoriques sont le principal goulot d'étranglement plutôt que la latence ou la largeur de bande de la mémoire.

Conclusion

EfficientDet a été une référence en matière de conception de modèles efficaces, YOLOv10 représente la nouvelle norme en matière de détection d'objets à haute performance. Son architecture innovante NMS offre un avantage décisif en termes de vitesse d'inférence sans compromettre la précision, ce qui la rend beaucoup plus pratique pour un déploiement dans le monde réel.

De plus, l'écosystème robuste d'Ultralytics garantit que le travail avec YOLOv10 est efficace et convivial pour les développeurs. Des options d'exportation faciles aux guides complets sur la gestion des ensembles de données, Ultralytics vous permet de donner vie plus rapidement à vos projets d'IA visionnaire.

Pour ceux qui recherchent le nec plus ultra en matière de polyvalence et de performance, nous recommandons également d'explorer Ultralytics YOLO11qui s'appuie sur ces avancées pour offrir des capacités de pointe en matière de détection, de segmentation et d'estimation de la pose.

Explorer d'autres comparaisons


Commentaires