Passer au contenu

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

La détection d'objets reste une pierre angulaire de la vision par ordinateur, stimulant les 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 de calcul. Cette analyse fournit une plongée en profondeur dans YOLOv7 et EfficientDet, deux modèles influents qui ont façonné le paysage de la détection en temps réel.

Conception et philosophie architecturales

La différence fondamentale entre ces deux architectures réside dans leurs objectifs d'optimisation. EfficientDet, développé par l'équipe Google Brain, donne la priorité à l'efficacité des paramètres et aux opérations en virgule flottante (FLOPs). Il exploite une architecture évolutive qui permet aux utilisateurs d'échanger linéairement des ressources contre la précision. En revanche, YOLOv7, créé 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 : Compound Scaling et BiFPN

EfficientDet est basé sur le backbone EfficientNet, qui utilise une méthode de scaling composé pour mettre à l'échelle uniformément la résolution, la profondeur et la largeur du réseau. Une innovation clé dans EfficientDet est le Bi-directional Feature Pyramid Network (BiFPN). Contrairement aux FPN traditionnels, BiFPN permet une fusion de caractéristiques multi-échelles facile et rapide en introduisant des poids apprenables pour apprendre l'importance des différentes caractéristiques d'entrée. Cette conception rend EfficientDet très efficace pour les applications d'edge computing où la mémoire et les FLOPs sont strictement limités.

En savoir plus sur EfficientDet

YOLOv7 : E-ELAN et reparamétrisation du modèle

YOLOv7 introduit le Extended Efficient Layer Aggregation Network (E-ELAN). Cette architecture contrôle les chemins de gradient les plus courts et les plus longs pour améliorer la capacité d'apprentissage du réseau sans détruire le chemin de gradient original. De plus, YOLOv7 utilise la re-paramétrisation du modèle, une technique où une structure d'entraînement complexe est simplifiée en une structure d'inférence rationalisée. Il en résulte un modèle robuste pendant l'entraînement mais extrêmement rapide lors du déploiement sur les GPU.

En savoir plus sur YOLOv7

Analyse des performances : métriques et benchmarks

Lorsque l'on compare les performances, le choix dépend souvent du matériel de déploiement. EfficientDet excelle dans les environnements à faible consommation d'énergie (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é : Bien que EfficientDet-d0 utilise beaucoup moins de paramètres (3,9 M), YOLOv7l offre un mAP beaucoup plus élevé (51,4 %) avec une latence extrêmement faible sur les GPU (6,84 ms). 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’affiner la taille du modèle pour des contraintes de CPU spécifiques.
  • Précision haut de gamme : Au niveau supérieur, EfficientDet-d7 atteint une excellente précision (53,7 % de mAP), mais au prix d’une latence élevée (~128 ms). YOLOv7x atteint une précision comparable (53,1 % de mAP) avec un temps d’inférence inférieur à un dixième (11,57 ms) sur un GPU T4.

Considérations matérielles

Si votre cible de déploiement est un CPU générique ou un processeur mobile, le nombre inférieur de FLOP des modèles EfficientDet (en particulier d0-d2) se traduit souvent par une meilleure autonomie de la batterie et une meilleure gestion thermique. Pour les GPU périphériques (comme NVIDIA Jetson) ou les serveurs d'inférence cloud, YOLOv7 offre des fréquences d'images nettement plus élevées pour l'analyse vidéo en temps réel.

Méthodologies d'entraînement et optimisation

Les stratégies d'entraînement de ces modèles reflètent leurs objectifs architecturaux.

YOLOv7 utilise une approche de « sac de cadeaux », intégrant des méthodes qui augmentent le coût de la formation, mais améliorent la précision sans affecter la vitesse d’inférence. Les principales techniques comprennent :

  • Supervision approfondie du grossier au 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 des étiquettes : Le modèle adapte l’attribution des objets de vérité terrain aux ancres pendant l’entraînement, ce qui améliore la convergence.

EfficientDet s'appuie fortement sur AutoML pour trouver l'architecture optimale du backbone et du réseau de caractéristiques. Sa formation implique généralement :

  • Profondeur stochastique : Suppression aléatoire de couches pendant l'entraînement pour 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 performants, le paysage de la vision par ordinateur évolue rapidement. L'écosystème Ultralytics 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 développeur.

Facilité d'utilisation et écosystème

L'un des principaux défis des référentiels axés sur la recherche (comme la base de code EfficientDet originale) est la complexité de l'intégration. Ultralytics résout ce problème avec un package python unifié. Les développeurs peuvent entraîner, valider et déployer des modèles avec seulement quelques lignes de code, pris en charge par une documentation complète et un soutien communautaire actif.

Polyvalence et équilibre des performances

Les modèles Ultralytics ne se limitent pas aux boîtes englobantes. Ils prennent en charge nativement la segmentation d'instance, l'estimation de 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 le déploiement dans le monde réel.

Mémoire et efficacité de l'apprentissage

Les modèles Ultralytics YOLO sont réputés pour leur efficacité en matière de mémoire. Ils nécessitent généralement moins de mémoire CUDA pendant l'entraînement par rapport aux détecteurs basés sur Transformer ou aux anciennes architectures évolutives. Cela permet aux chercheurs d'entraîner des modèles de pointe sur du matériel grand public. De plus, l'apprentissage par transfert est simplifié 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 sérieux pour les systèmes embarqués où l'accélération GPU n'est pas disponible.

  • Applications mobiles : Applications Android/iOS effectuant la détection d'objets sur le CPU.
  • Capteurs IoT distants : Appareils alimentés par batterie surveillant les changements environnementaux où chaque milliwatt de calcul compte.

Quand choisir YOLOv7

YOLOv7 excelle dans les environnements industriels à hautes performances.

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

Conclusion

Les deux architectures représentent des étapes importantes dans 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 à la recherche de la solution la plus moderne, la plus facile à maintenir et la plus polyvalente, la famille de modèles Ultralytics YOLO11 est recommandée. Elle offre un compromis supérieur entre précision et vitesse, un flux de travail plus simple et un écosystème robuste qui simplifie le parcours de la conservation des ensembles de données au déploiement.

Explorer d'autres modèles

Si vous souhaitez comparer d'autres architectures de détection d'objets, considérez ces ressources :


Commentaires