Passer au contenu

YOLOv7 vs. EfficientDet : Comparaison technique d'architectures de détection d'objets en temps réel

La détection d'objets reste une pierre angulaire de la vision par ordinateur, à l'origine d'innovations dans des domaines allant de la conduite autonome à l'imagerie médicale. Le choix de la bonne architecture est essentiel pour équilibrer la précision, la vitesse et les ressources informatiques. Cette analyse propose une plongée en profondeur dans l'architecture de YOLOv7 et EfficientDet, deux modèles influents qui ont façonné le paysage de la détection en temps réel.

Conception architecturale et philosophie

La différence fondamentale entre ces deux architectures réside dans leurs objectifs d'optimisation. EfficientDet, développé par l'équipe de Google Brain, donne la priorité à l'efficacité des paramètres et aux opérations en virgule flottante (FLOP). Il s'appuie sur une architecture évolutive qui permet aux utilisateurs de faire un compromis linéaire entre les ressources et la précision. À l'inverse, YOLOv7créé par les auteurs de YOLOv4 (Chien-Yao Wang et al.), se concentre sur la maximisation de la vitesse d'inférence sur le matériel GPU tout en maintenant une précision de pointe.

EfficientDet : Échelle composée et BiFPN

EfficientDet est construit sur l'épine dorsale EfficientNet, qui utilise une méthode de mise à l'échelle composée pour uniformiser la résolution, la profondeur et la largeur du réseau. Une innovation clé d'EfficientDet est le Bi-directional Feature Pyramid Network (BiFPN). Contrairement aux FPN traditionnels, le BiFPN permet une fusion facile et rapide des caractéristiques à plusieurs échelles en introduisant des poids qui apprennent l'importance des différentes caractéristiques d'entrée. Cette conception rend EfficientDet très efficace pour les applications de calcul en périphérie où la mémoire et les FLOP sont strictement limités.

En savoir plus sur EfficientDet

YOLOv7: E-ELAN et re-paramétrage du modèle

YOLOv7 introduit le réseau d'agrégation de couches efficace étendu (E-ELAN). Cette architecture contrôle les chemins de gradient les plus courts et les plus longs afin d'améliorer la capacité d'apprentissage du réseau sans détruire le chemin de gradient original. En outre, YOLOv7 utilise le re-paramétrage du modèle, une technique qui permet de simplifier une structure d'apprentissage complexe en une structure d'inférence rationalisée. Il en résulte un modèle robuste lors de l'apprentissage, mais extrêmement rapide lors du déploiement sur les GPU.

En savoir plus sur YOLOv7

Analyse des performances : Métriques et critères de référence

Lorsque l'on compare les performances, le choix dépend souvent du matériel de déploiement. EfficientDet brille dans les environnements de faible puissance (CPU), tandis que YOLOv7 est conçu pour l'inférence GPU à haut débit.

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

Points clés à retenir

  • Latence vs. efficacité : Alors que EfficientDet-d0 utilise beaucoup moins de paramètres (3,9M), YOLOv7l offre un mAP beaucoup plus élevé (51,4%) avec une latence extrêmement faible sur les GPU (6,84ms). Cela démontre l'utilisation supérieure de la puissance de traitement parallèle de YOLOv7.
  • Évolutivité : EfficientDet fournit un chemin de mise à l'échelle granulaire de d0 à d7, permettant aux développeurs d'ajuster finement la taille du modèle pour des contraintes spécifiques de CPU .
  • Précision en haut de gamme : À l'extrémité supérieure, EfficientDet-d7 atteint une excellente précision (53,7 % mAP), mais au prix d'une latence élevée (~128 ms). YOLOv7x atteint une précision comparable (53,1 % mAP) à moins d'un dixième du temps d'inférence (11,57 ms) sur un GPU T4.

Considérations sur le matériel

Si votre cible de déploiement est un CPU générique ou un processeur mobile, les FLOPs inférieurs des modèles EfficientDet (en particulier d0-d2) se traduisent souvent par une meilleure durée de vie de la batterie et une meilleure gestion thermique. Pour les GPU de pointe (comme NVIDIA Jetson) ou les serveurs d'inférence en nuage, YOLOv7 offre des taux de rafraîchissement nettement plus élevés pour l'analyse vidéo en temps réel.

Méthodes de formation et optimisation

Les stratégies de formation de ces modèles reflètent leurs objectifs architecturaux.

YOLOv7 utilise une approche de type "Bag-of-Freebies", incorporant des méthodes qui augmentent le coût de la formation mais améliorent la précision sans avoir d'impact sur la vitesse d'inférence. Les principales techniques sont les suivantes :

  • Supervision profonde de grossier à fin : Une tête auxiliaire est utilisée pour superviser les couches intermédiaires du réseau, avec des stratégies d'attribution d'étiquettes qui guident la tête auxiliaire différemment de la tête principale.
  • Attribution dynamique d'étiquettes : Le modèle adapte l'affectation des objets de la réalité du terrain aux ancres au cours de la formation, ce qui améliore la convergence.

EfficientDet s'appuie fortement sur AutoML pour trouver l'architecture optimale du réseau de base et du réseau d'éléments. Sa formation implique généralement

  • Profondeur stochastique : Suppression de couches de manière aléatoire pendant l'apprentissage afin d'améliorer la généralisation.
  • Activation Swish : Une fonction lisse et non monotone qui surpasse systématiquement ReLU dans les réseaux plus profonds.

L'avantage Ultralytics

Bien que YOLOv7 et EfficientDet soient tous deux puissants, le paysage de la vision par ordinateur évolue rapidement. L'écosystèmeUltralytics offre des alternatives modernes comme YOLO11 qui synthétisent les meilleures caractéristiques des architectures précédentes tout en améliorant l'expérience des développeurs.

Facilité d'utilisation et écosystème

L'un des principaux défis posés par les référentiels orientés recherche (comme la base de code originale d'EfficientDet) est la complexité de l'intégration. Ultralytics résout ce problème grâce à un package Python unifié. Les développeurs peuvent former, valider et déployer des modèles avec seulement quelques lignes de code, en s'appuyant sur une documentation complète et un soutien actif de la communauté.

Polyvalence et équilibre des performances

Les modèles Ultralytics ne se limitent pas aux boîtes de délimitation. Ils prennent nativement en charge la segmentation des instances, l'estimation de la pose, la classification et la détection d'objets orientés (OBB). En termes de performances, les versions modernes de YOLO (comme YOLOv8 et YOLO11) atteignent souvent une plus grande précision par paramètre qu'EfficientDet et une inférence plus rapide que YOLOv7, ce qui constitue un équilibre idéal pour un déploiement dans le monde réel.

Mémoire et efficacité de l'entraînement

Les modèlesYOLO d'Ultralytics sont réputés pour leur efficacité en termes de mémoire. Ils nécessitent généralement moins de mémoire CUDA pendant l'entraînement que les détecteurs basés sur Transformer ou les architectures évolutives plus anciennes. Cela permet aux chercheurs d'entraîner des modèles de pointe sur du matériel grand public. En outre, l'apprentissage par transfert est rationalisé grâce à des poids pré-entraînés de haute qualité disponibles pour un téléchargement immédiat.

from ultralytics import YOLO

# Load the latest YOLO11 model
model = YOLO("yolo11n.pt")

# Train on a custom dataset with a single command
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference with high speed
predictions = model("https://ultralytics.com/images/bus.jpg")

Spécifications du modèle

YOLOv7

EfficientDet

Cas d'utilisation concrets

Quand choisir EfficientDet

EfficientDet reste un candidat de choix pour les systèmes embarqués où l'accélération GPU n'est pas disponible.

  • Applications mobiles : Applications iOS effectuant la détection d'objets sur l'CPU.
  • Capteurs IoT à distance : Dispositifs alimentés par batterie surveillant les changements environnementaux où chaque milliwatt de calcul compte.

Quand choisir YOLOv7

YOLOv7 excelle dans les environnements industriels de haute performance.

  • Conduite autonome : Détection des piétons et des véhicules à des fréquences d'images élevées pour garantir la sécurité.
  • Villes intelligentes : Analyse simultanée de plusieurs flux vidéo pour la gestion du trafic sur des serveurs périphériques.

Conclusion

Ces deux architectures représentent des étapes importantes dans le domaine de la vision par ordinateur. EfficientDet a démontré la puissance de la mise à l'échelle composée pour l'efficacité des paramètres, tandis que YOLOv7 a repoussé les limites de ce qui est possible avec l'optimisation de la latence du GPU .

Cependant, pour les développeurs qui recherchent la solution la plus moderne, la plus facile à maintenir et la plus polyvalente, la solution Ultralytics YOLO11 est recommandée. Elle offre des compromis précision-vitesse supérieurs, un flux de travail plus simple et un écosystème robuste qui simplifie le parcours depuis la conservation des données jusqu'au déploiement.

Explorer d'autres modèles

Si vous souhaitez comparer d'autres architectures de détection d'objets, consultez les ressources suivantes :


Commentaires