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 YOLOv10, un 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.
Bien qu'EfficientDet ait établi des références en matière d'efficacité des paramètres à son époque, YOLOv10 repousse les limites de la latence et de la précision, en introduisant un paradigme d'entraînement sans NMS qui augmente considérablement la vitesse d'inférence. Ce guide analyse leurs architectures, leurs mesures de performance et leurs 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 de bout en bout en temps réel
YOLOv10 représente un bond significatif dans la série YOLO (You Only Look Once), en se concentrant sur l'élimination de l'étape de post-traitement de suppression non maximale (NMS) qui entrave souvent la vitesse d'inférence. En employant des affectations doubles cohérentes pour l'entraînement sans NMS, il atteint des performances compétitives avec une latence inférieure par rapport aux itérations précédentes.
Détails techniques :
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation :Tsinghua University
- Date : 2024-05-23
- Arxiv:YOLOv10 : Détection d’objets de bout en bout en temps réel
- GitHub :THU-MIG/yolov10
Principales caractéristiques architecturales
YOLOv10 introduit une conception de modèle holistique axée sur l'efficacité et la précision. L'innovation principale réside dans sa stratégie d'attribution double. Pendant l'entraînement, le modèle utilise à la fois des attributions un-à-plusieurs (courantes dans YOLOv8) pour une supervision riche et des attributions un-à-un pour assurer un déploiement de bout en bout sans NMS.
- Entraînement sans NMS : Les détecteurs traditionnels nécessitent un NMS pour filtrer les boîtes englobantes en double, ce qui introduit une latence d'inférence. L'architecture de YOLOv10 permet au modèle de prédire exactement une boîte par objet pendant l'inférence, supprimant ainsi efficacement cette surcharge.
- Conception axée sur l'efficacité : Le modèle utilise des heads de classification légers et un sous-échantillonnage spatial-canal découplé pour réduire le coût de calcul (FLOPs) et le nombre de paramètres.
- Convolutions à grand noyau : En utilisant sélectivement des convolutions depth-wise à grand noyau, YOLOv10 améliore son champ réceptif et sa capacité à detect les petits objets sans augmentation massive du calcul.
Pourquoi l'absence de NMS est-elle importante ?
La suppression de la suppression non maximale (NMS) crée un pipeline véritablement de bout en bout. Ceci est essentiel pour les applications d’IA de périphérie où chaque milliseconde compte, comme sur les appareils NVIDIA Jetson, assurant une latence stable et prévisible.
Points forts
- Vitesse supérieure : Optimisé pour l'inférence en temps réel, surpassant considérablement les anciens modèles sur le matériel GPU.
- Intégration Ultralytics : En tant que membre de l'écosystème Ultralytics, YOLOv10 bénéficie d'une simple API python, ce qui le rend incroyablement facile à entraîner, à 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 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 :
- Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
- Organisation :Google
- Date : 2019-11-20
- Arxiv :EfficientDet : detect d’objets évolutive et efficace
- GitHub :google/automl/efficientdet
En savoir plus sur EfficientDet
Principales caractéristiques architecturales
EfficientDet est basé sur le backbone EfficientNet et introduit le BiFPN (Bi-directional Feature Pyramid Network).
- BiFPN : Contrairement aux FPN standard, BiFPN permet un flux d’informations bidirectionnel et utilise des poids apprenables pour fusionner les caractéristiques de différentes échelles. Cela se traduit par une meilleure représentation des caractéristiques multi-échelles avec moins de paramètres.
- Scaling composite : Cette méthode garantit que le backbone, le réseau de caractéristiques et les réseaux de prédiction de boîtes/classes évoluent ensemble de manière efficace. Un modèle D0 est petit et rapide pour les appareils 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 connu pour atteindre un mAP élevé avec relativement peu de paramètres et de FLOPs.
- Scalabilité : La gamme D0-D7 offre une flexibilité pour différents budgets de calcul.
- Latence élevée : Malgré de faibles nombres de FLOP, les connexions complexes dans BiFPN et les convolutions séparables en profondeur peuvent entraîner une latence plus élevée sur les GPU par rapport aux architectures CNN rationalisées des modèles YOLO.
- Complexité : L’architecture est plus difficile à personnaliser ou à régler par rapport à la conception simple d’Ultralytics YOLOv8 ou YOLOv10.
Analyse des performances : rapidité vs. efficacité
Lors de la comparaison de ces deux modèles, la distinction entre l'efficacité théorique (FLOPs) et la vitesse pratique (latence) devient claire. EfficientDet excelle dans la minimisation des FLOPs, mais YOLOv10 domine en termes de vitesse d'inférence réelle sur du matériel moderne comme les GPU.
Le tableau ci-dessous démontre que, bien que les modèles EfficientDet soient compacts, YOLOv10 offre un bien meilleur compromis pour les applications en temps réel. Par exemple, YOLOv10-S offre un mAP compétitif de 46,7 % avec une latence de seulement 2,66 ms sur un GPU T4, tandis que EfficientDet-d3 (47,5 % mAP) est près de 7 fois plus lent à 19,59 ms.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| 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 |
Interprétation
- Domination du GPU : YOLOv10 utilise des choix de conception tenant compte du matériel qui correspondent bien aux architectures GPU, ce qui se traduit par un débit considérablement supérieur.
- Parité de précision : Les nouvelles stratégies d’entraînement permettent à YOLOv10 d’égaler ou de dépasser la précision des variantes EfficientDet, beaucoup plus lentes.
- Déploiement : La nature sans 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 entourant un modèle. Ici, Ultralytics offre un avantage considérable.
L'avantage Ultralytics
YOLOv10 est intégré au package Ultralytics Python, offrant une expérience transparente de l'annotation des données au déploiement.
- API simple : Vous pouvez charger, entraîner et prédire avec seulement quelques lignes de code.
- Bien maintenu : Des mises à jour fréquentes, le soutien de la communauté et une documentation exhaustive vous assurent de ne pas être laissé à déboguer des erreurs obscures.
- Efficacité de l'entraînement : 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.
Entraîner YOLOv10 avec Ultralytics
L'entraînement d'un modèle YOLOv10 sur le jeu de données COCO8 est simple grâce à 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 choix supérieur pour la plupart des applications de vision par ordinateur modernes, en particulier :
- Systèmes autonomes : Les voitures autonomes et les drones nécessitent une détection à faible latence pour 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 d’images pour la vidéosurveillance ou la surveillance 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ù les performances en temps réel sont non négociables.
Quand choisir EfficientDet
EfficientDet reste pertinent dans des scénarios de niche spécifiques :
- Recherche académique : Si l’objectif est d’étudier les lois d’échelle composées ou les principes de conception de réseaux neuronaux efficaces.
- Contraintes strictes de FLOP : Dans les environnements matériels extrêmement spécifiques où les FLOP théoriques sont le goulot d’étranglement dur plutôt que la latence ou la bande passante de la mémoire.
Conclusion
Bien qu'EfficientDet ait été une étape importante dans la conception de modèles efficaces, YOLOv10 représente la nouvelle norme en matière de détection d'objets haute performance. Son architecture innovante sans NMS offre un avantage décisif en termes de vitesse d'inférence sans compromettre la précision, ce qui le rend beaucoup plus pratique pour un déploiement dans le monde réel.
De plus, l'écosystème Ultralytics robuste 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 de vision par ordinateur.
Pour ceux qui recherchent le nec plus ultra en matière de polyvalence et de performances, nous vous recommandons également d'explorer Ultralytics YOLO11, qui s'appuie sur ces avancées pour offrir des capacités de pointe dans les tâches de detect, de segment et d'estimation de pose.