Link to this sectionYOLOv5 vs. EfficientDet : Évaluation des architectures de détection d'objets en temps réel#
Lorsque tu te lances dans un nouveau projet de computer vision, le choix de la bonne architecture de réseau neuronal est l'une des décisions les plus importantes que tu auras à prendre. Ce guide propose une comparaison technique approfondie entre Ultralytics YOLOv5 et EfficientDet de Google. En analysant leurs architectures, leurs métriques de performance et leurs écosystèmes d'entraînement, nous visons à aider les développeurs et les chercheurs à identifier le meilleur modèle de object detection pour leurs environnements de déploiement spécifiques.
Alors qu'EfficientDet a introduit des concepts novateurs en matière de mise à l'échelle composée et de fusion de caractéristiques, YOLOv5 a révolutionné l'industrie en démocratisant l'accès à l'IA haute performance grâce à son implémentation PyTorch incroyablement intuitive, son expérience utilisateur simplifiée et son équilibre inégalé entre vitesse et précision.
Link to this sectionUltralytics YOLOv5 : La référence de l'industrie en matière d'accessibilité#
Sorti à l'été 2020, YOLOv5 a marqué un tournant décisif dans la lignée YOLO. En passant du framework Darknet basé sur C à PyTorch natif, il est devenu l'architecture incontournable pour les développeurs cherchant à construire, entraîner et déployer des modèles rapidement.
- Auteurs : Glenn Jocher
- Organisation : Ultralytics
- Date : 2020-06-26
- GitHub : https://github.com/ultralytics/yolov5
- Docs : https://docs.ultralytics.com/models/yolov5
Link to this sectionInnovations architecturales#
YOLOv5 est reconnu pour son architecture hautement optimisée qui privilégie un cycle de vie machine learning fluide. Il utilise une backbone CSPDarknet53 modifiée associée à un neck Path Aggregation Network (PANet), ce qui améliore considérablement la propagation des caractéristiques à travers plusieurs échelles spatiales.
Les avancées clés incluent :
- Augmentation de données Mosaic : Cette technique d'entraînement combine quatre images d'entraînement distinctes en une seule mosaïque. Cela force le modèle à apprendre à identifier des objets dans des contextes spatiaux complexes et booste significativement sa capacité à détecter de petites cibles.
- Auto-apprentissage des anchor boxes : Avant le début de l'entraînement, YOLOv5 analyse tes training data personnalisées et calcule automatiquement les dimensions optimales des anchor box à l'aide du clustering k-means.
- Efficacité mémoire : Comparé aux modèles lourds basés sur des Transformer, YOLOv5 maintient une empreinte mémoire nettement plus faible pendant l'entraînement et l'inférence, ce qui lui permet de fonctionner sans problème sur du matériel grand public.
Link to this sectionEfficientDet : Détection d'objets évolutive#
Introduit par Google Research en 2019, EfficientDet visait à fournir une famille de détecteurs d'objets évolutifs. Il s'appuie sur la backbone de classification d'images EfficientNet et introduit un mécanisme novateur de fusion de caractéristiques.
- Auteurs : Mingxing Tan, Ruoming Pang et Quoc V. Le
- Organisation : Google
- Date : 2019-11-20
- Arxiv : https://arxiv.org/abs/1911.09070
- GitHub : https://github.com/google/automl/tree/master/efficientdet
- Docs : https://github.com/google/automl/tree/master/efficientdet#readme
Link to this sectionInnovations architecturales#
La proposition fondamentale d'EfficientDet repose sur son approche systématique de la mise à l'échelle et de l'agrégation des caractéristiques :
- BiFPN (Bi-directional Feature Pyramid Network) : Contrairement aux FPN traditionnels qui ne transmettent les informations que du haut vers le bas, BiFPN permet une fusion multi-échelle rapide et facile en introduisant des poids apprenables pour déterminer l'importance des différentes caractéristiques d'entrée.
- Compound Scaling : EfficientDet met conjointement à l'échelle la résolution, la profondeur et la largeur pour tous les réseaux de backbone, de caractéristiques et de prédiction de boîtes/classes, aboutissant à des modèles allant du léger D0 au massif D7.
En savoir plus sur EfficientDet
Alors qu'EfficientDet repose largement sur l'écosystème TensorFlow et les bibliothèques AutoML, YOLOv5 fonctionne nativement au sein de PyTorch, offrant ce que beaucoup de développeurs considèrent comme un flux de travail plus intuitif, pythonique et facile à déboguer.
Link to this sectionComparaison des performances et des mesures#
Lors de la comparaison de ces modèles, il est crucial d'évaluer leurs performances sur des benchmarks standards comme le COCO dataset. Le tableau ci-dessous met en évidence les compromis entre taille, demande computationnelle (FLOPs) et vitesse d'inférence.
| Modèle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | params (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | 73.6 | 1.12 | 2.6 | 7.7 |
| YOLOv5s | 640 | 37.4 | 120.7 | 1.92 | 9.1 | 24.0 |
| YOLOv5m | 640 | 45.4 | 233.9 | 4.03 | 25.1 | 64.2 |
| YOLOv5l | 640 | 49.0 | 408.4 | 6.61 | 53.2 | 135.0 |
| YOLOv5x | 640 | 50.7 | 763.2 | 11.89 | 97.2 | 246.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 |
Link to this sectionAnalyse équilibrée#
YOLOv5 brille par sa flexibilité de déploiement et sa compatibilité avec l'accélération matérielle brute. Note les vitesses fulgurantes de TensorRT sur le GPU T4. Cela rend YOLOv5 incroyablement adapté à l'analyse vidéo à haut débit et aux pipelines de real-time inference. De plus, l'écosystème Ultralytics fait de l'exportation vers des formats comme ONNX, CoreML et TensorRT une commande à ligne unique.
EfficientDet offre une excellente efficacité paramétrique. Pour un nombre donné de paramètres, il extrait souvent une mean Average Precision (mAP) élevée. Cependant, cette efficacité théorique ne se traduit pas toujours par des temps d'inférence réels plus rapides sur les GPU edge en raison du routage complexe de la couche BiFPN, qui peut être limitée par la bande passante mémoire plutôt que par la puissance de calcul.
Link to this sectionÉcosystème et facilité d'utilisation#
L'avantage décisif du choix d'un modèle Ultralytics réside dans l'écosystème qui l'entoure. YOLOv5 fait partie d'un référentiel fortement maintenu et activement développé, bénéficiant d'un support communautaire massif.
Avec l'introduction de la Ultralytics Platform, tu peux passer en toute transparence de la collecte de données au déploiement. Cette plateforme prend en charge nativement l'auto-annotation, l'entraînement dans le cloud et la surveillance des modèles. En revanche, l'entraînement d'EfficientDet nécessite souvent de naviguer dans les complexités des anciennes API de détection d'objets TensorFlow, ce qui peut représenter une courbe d'apprentissage abrupte pour le prototypage rapide.
De plus, la polyvalence de YOLOv5 s'étend au-delà des boîtes englobantes. Grâce à des mises à jour continues, le framework Ultralytics prend en charge nativement l'instance segmentation et l'image classification, offrant une API unifiée pour de multiples tâches de vision par ordinateur.
Link to this sectionCas d'utilisation idéaux#
- Choisis YOLOv5 quand : Tu as besoin de prototypage rapide, d'une expérience d'entraînement sans friction et d'un déploiement edge hautement optimisé. Il est idéal pour les drones, le retail analytics et les applications mobiles où une faible latence est critique.
- Choisis EfficientDet quand : Tu opères strictement dans un environnement Google Cloud/TensorFlow AutoML et que tu as besoin d'une précision maximale par paramètre sans contraintes strictes de latence en temps réel.
Link to this sectionLa nouvelle génération : Adopter YOLO26#
Bien que YOLOv5 reste un outil fiable, le paysage de la vision par ordinateur a progressé. Pour les développeurs à la recherche de l'état de l'art absolu en 2026, YOLO26 représente le nouveau sommet de la gamme Ultralytics.
S'appuyant sur l'héritage de ses prédécesseurs (comme YOLOv8 et YOLO11), YOLO26 introduit des innovations révolutionnaires :
- Conception end-to-end sans NMS : YOLO26 élimine nativement le besoin de post-traitement Non-Maximum Suppression. Cela réduit considérablement la variance de la latence et simplifie l'architecture de déploiement.
- Inférence CPU jusqu'à 43 % plus rapide : Fortement optimisé pour l'edge AI, il apporte des vitesses sans précédent aux appareils edge basse consommation et aux CPU standards sans GPU dédiés.
- Optimiseur MuSGD : Inspiré des techniques d'entraînement des grands modèles de langage (LLM), cet hybride de SGD et Muon garantit un entraînement très stable et une convergence rapide.
- Fonctions de perte avancées : L'intégration de ProgLoss et STAL améliore radicalement la reconnaissance des petites cibles, ce qui est vital pour l'imagerie par drone à haute altitude et la robotics.
- Suppression de DFL : En supprimant Distribution Focal Loss, le processus d'exportation du modèle est rationalisé, améliorant encore la compatibilité entre divers accélérateurs matériels.
Les utilisateurs intéressés par l'exploration d'autres architectures récentes au sein de l'écosystème Ultralytics pourraient également comparer des modèles comme YOLOv10 ou RT-DETR.
L'API Python d'Ultralytics est conçue pour une compatibilité ascendante et descendante. Passer de YOLOv5 à YOLO26 est littéralement aussi simple que de modifier la chaîne de poids du modèle dans ton code !
Link to this sectionExemple de code : Entraînement et Inférence#
Pour démontrer la facilité d'utilisation inégalée de l'écosystème Ultralytics, voici comment tu peux entraîner et exécuter une inférence en utilisant un modèle YOLO moderne. Ce code est 100 % exécutable et gère automatiquement le téléchargement des jeux de données, les boucles d'entraînement et la validation.
from ultralytics import YOLO
# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")
# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Display the image with bounding boxes
inference_results[0].show()En privilégiant l'expérience utilisateur, en maintenant un écosystème robuste et en repoussant continuellement les limites du possible avec des mises à jour comme YOLO26, Ultralytics s'assure que les développeurs disposent toujours des meilleurs outils pour résoudre les défis réels de l'intelligence visuelle.