Passer au contenu

YOLOv5 vs YOLOv7: équilibrer l'écosystème et l'architecture

Le choix du bon modèle de détection d'objets est une décision cruciale pour les développeurs et les chercheurs. Dans l'évolution de la famille YOLO (You Only Look Once), YOLOv5 et YOLOv7 se distinguent comme des architectures pivots qui ont façonné le paysage de la vision par ordinateur. Alors que YOLOv7 a introduit des innovations architecturales significatives en matière de précision, Ultralytics YOLOv5 a révolutionné l'expérience des développeurs en mettant l'accent sur la facilité d'utilisation, le déploiement et un écosystème solide.

Ce guide propose une comparaison technique approfondie de ces deux modèles, en analysant leurs architectures, leurs performances sur l'ensemble de donnéesCOCO et leur adéquation à des applications réelles.

Ultralytics YOLOv5: La norme d'ingénierie

Lancé en 2020, YOLOv5 a redéfini les attentes en matière de logiciels libres de détection d'objets. Contrairement aux itérations précédentes qui existaient principalement en tant que code de recherche, YOLOv5 a été conçu comme un cadre prêt à être produit. Il a donné la priorité à la facilité d'utilisation, à l'exportabilité et à la vitesse, ce qui en fait le choix par excellence pour les entreprises qui créent des applications d'inférence en temps réel.

Auteurs : Glenn Jocher
Organisation :Ultralytics
Date : 2020-06-26
GitHubyolov5
Docsyolov5

Principaux avantages de YOLOv5

  • Conception centrée sur l'utilisateur : YOLOv5 a introduit une API rationalisée et un flux de travail de formation transparent qui a abaissé la barrière à l'entrée pour la formation de modèles de détection d'objets personnalisés.
  • Flexibilité de déploiement : Grâce à la prise en charge native des modes d'exportation, les modèles YOLOv5 peuvent être facilement convertis dans des formats tels que ONNXCoreML, TFLite et TensorRT pour un déploiement sur différents matériels.
  • Utilisation efficace des ressources : L'architecture est optimisée pour une faible consommation de mémoire, ce qui la rend idéale pour les appareils d'IA de pointe tels que le NVIDIA Jetson ou le Raspberry Pi.

Soutien à l'écosystème

YOLOv5 s'appuie sur l'écosystème complet d'Ultralytics . Cela inclut une intégration transparente avec des outils de suivi d'expériences tels que Comet et MLflow, ainsi qu'avec les plateformes de gestion des données.

En savoir plus sur YOLOv5

YOLOv7: l'approche du "sac de cadeaux

Publié en 2022, YOLOv7 s'est attaché à repousser les limites de la précision grâce à l'optimisation de l'architecture. Les auteurs ont introduit plusieurs nouveaux concepts visant à améliorer l'apprentissage des caractéristiques sans augmenter le coût de l'inférence, une stratégie qu'ils ont appelée "trainable bag-of-freebies".

Auteurs : Chien-Yao Wang, Alexey Bochkovskiy, et Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica, Taiwan
Date : 2022-07-06
Arxiv:https://arxiv.org/abs/2207.02696
GitHub:https://github.com/WongKinYiu/yolov7
Docsultralytics

Innovations architecturales

YOLOv7 intègre des réseaux d'agrégation de couches efficaces étendus (E-ELAN) pour améliorer la capacité d'apprentissage du réseau. Il utilise également des techniques de mise à l'échelle du modèle qui modifient simultanément la profondeur et la largeur de l'architecture. Bien qu'ils soient efficaces pour augmenter les scoresmAP , ces changements architecturaux complexes peuvent parfois rendre le modèle plus difficile à modifier ou à déployer par rapport à l'épine dorsale CSP-Darknet plus simple trouvée dans YOLOv5.

En savoir plus sur YOLOv7

Comparaison des performances techniques

Lorsque l'on compare les deux modèles, le compromis se situe généralement entre la précision brute et la vitesse de déploiement pratique. Les modèles YOLOv7 (en particulier les variantes les plus grandes) atteignent généralement un mAP plus élevé sur l'ensemble de données COCO val2017. Cependant, Ultralytics YOLOv5 conserve une position dominante en termes de vitesse d'inférence et d'efficacité des paramètres, en particulier avec ses variantes plus petites (Nano et Small), qui sont cruciales pour le déploiement mobile.

Le tableau ci-dessous présente les mesures de performance. Notez la vitesse exceptionnelle du YOLOv5n, qui reste l'une des options les plus rapides pour les environnements à ressources extrêmement limitées.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9

Analyse des indicateurs

  • Vitesse vs. précision : YOLOv7x atteint un mAP plus élevé de 53,1 %, ce qui le rend adapté à la sécurité haut de gamme ou à l'analyse médicale où chaque pixel compte. Cependant, pour des applications telles que l'analyse vidéo ou la navigation autonome, le temps d'inférence de 1,12 ms de YOLOv5n sur TensorRT offre une capacité de fréquence d'images que les modèles plus lourds ne peuvent égaler.
  • Efficacité de la formation : Ultralytics YOLOv5 utilise des stratégies "AutoAnchor" et une évolution avancée des hyperparamètres, ce qui se traduit souvent par une convergence plus rapide au cours de la formation par rapport aux schémas complexes de re-paramétrage requis par YOLOv7.
  • Empreinte mémoire : La formation de transformateurs ou d'architectures complexes comme YOLOv7 nécessite souvent des GPU haut de gamme (par exemple, A100). En revanche, la conception efficace de YOLOv5 permet de s'entraîner sur du matériel grand public, démocratisant ainsi l'accès au développement de l'IA.

Mise en œuvre du code

L'un des arguments les plus forts en faveur d'Ultralytics YOLOv5 est la simplicité de son API Python . Le chargement d'un modèle pré-entraîné et l'exécution de l'inférence ne nécessitent que quelques lignes de code, ce qui témoigne de la maturité du framework.

import torch

# Load the YOLOv5s model from PyTorch Hub
model = torch.hub.load("ultralytics/yolov5", "yolov5s", pretrained=True)

# Define an image (url, local path, or numpy array)
img = "https://ultralytics.com/images/zidane.jpg"

# Run inference
results = model(img)

# Print results and show the image with bounding boxes
results.print()
results.show()

Ce niveau d'abstraction permet aux développeurs de se concentrer sur l'élaboration de leurs solutions commerciales plutôt que sur le débogage des architectures de modèles.

Cas d'utilisation idéaux

Quand choisir YOLOv7

YOLOv7 est un excellent choix pour la recherche universitaire et les scénarios où les contraintes matérielles sont secondaires par rapport aux performances de détection brutes.

  • Recherche universitaire : Pour l'évaluation comparative des techniques de détection les plus récentes.
  • Inspection de haute précision : Contrôle de la qualité de la fabrication, par exemple, où la détection de défauts infimes est essentielle et où la latence n'est pas une préoccupation majeure.

Quand choisir Ultralytics YOLOv5

YOLOv5 reste le standard de l'industrie pour le développement rapide et le déploiement de la production.

  • Déploiement en périphérie : Parfait pour l'exécution sur des appareils iOS et Android via des exportations TFLite ou CoreML .
  • Robotique : Sa faible latence est cruciale pour les boucles de rétroaction nécessaires à la robotique autonome.
  • Polyvalence : Au-delà de la détection, le référentiel YOLOv5 prend en charge la segmentation des instances et la classification des images, offrant ainsi une base de code unifiée pour de multiples tâches de vision.

Conclusion : La voie moderne à suivre

Tandis que YOLOv7 a démontré la puissance de l'ajustement architectural, Ultralytics YOLOv5 reste le meilleur choix pour les développeurs qui ont besoin d'une solution fiable, bien documentée et facile à déployer. Son équilibre entre vitesse, précision et support de l'écosystème lui permet de rester pertinent dans les environnements de production du monde entier.

Cependant, le domaine de la vision par ordinateur évolue rapidement. Pour ceux qui recherchent les meilleures performances, YOLO11 représente la dernière évolution d'Ultralytics. YOLO11 s'appuie sur la facilité d'utilisation de YOLOv5 , mais intègre des modules de pointe basés sur des transformateurs et des conceptions sans ancrage, surpassant YOLOv5 et YOLOv7 en termes de précision et d'efficacité.

Pour une solution pérenne prenant en charge la détection d'objets, l'estimation de la pose et les boîtes englobantes orientées (OBB), il est fortement recommandé de migrer vers le frameworkYOLO11 d'Ultralytics .

Découvrez d'autres comparaisons

Découvrez comment les autres modèles se comparent à la famille Ultralytics YOLO :


Commentaires