Passer au contenu

Comparaison de modèles : YOLOv7 vs. YOLOv8 pour la détection d'objets

Dans le paysage en rapide évolution de la vision par ordinateur, la famille de modèles « You Only Look Once » (YOLO) a constamment établi la norme en matière de détection d'objets en temps réel. YOLOv7 et Ultralytics YOLOv8 représentent deux étapes importantes dans cette lignée. Bien que les deux modèles aient repoussé les limites de la précision et de la vitesse lors de leur sortie, ils représentent des philosophies de conception et des maturités d'écosystème différentes.

Ce guide fournit une comparaison technique détaillée pour aider les développeurs et les chercheurs à choisir l'outil approprié à leurs besoins spécifiques, allant de la recherche universitaire au déploiement en production.

Comparaison des métriques de performance

Le tableau suivant présente une comparaison directe des indicateurs de performance entre les principaux modèles YOLOv7 et YOLOv8. YOLOv8 démontre un avantage significatif en termes de vitesse d'inférence et un nombre de paramètres favorable, en particulier dans les variantes de modèles plus petits qui sont essentiels pour les applications d'IA en périphérie.

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
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8

YOLOv7 : L'évolution « Bag-of-Freebies »

Lancé en juillet 2022, YOLOv7 a été développé principalement par les auteurs de YOLOv4 et YOLOR. Il a introduit plusieurs innovations architecturales visant à optimiser le processus d'entraînement sans augmenter les coûts d'inférence, un concept appelé « trainable bag-of-freebies ».

  • Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
  • Organisation : Institut des sciences de l'information, Academia Sinica, Taïwan
  • Date : 2022-07-06
  • Liens :Article Arxiv | Dépôt GitHub

Principales caractéristiques architecturales

YOLOv7 a 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 permettre au réseau d'apprendre des caractéristiques plus diverses. De plus, il a utilisé des techniques de mise à l'échelle du modèle qui modifient simultanément la profondeur et la largeur de l'architecture, assurant ainsi des performances optimales pour différentes tailles.

Malgré ses benchmarks impressionnants au lancement, YOLOv7 se concentre principalement sur la détection d'objets, avec un support moins intégré pour d'autres tâches par rapport aux frameworks plus récents.

En savoir plus sur YOLOv7

Ultralytics YOLOv8 : Cadre unifié et architecture moderne

Lancé début 2023 par Ultralytics, YOLOv8 représentait une refonte majeure de l'architecture YOLO. Il a été conçu non seulement comme un modèle, mais comme un framework unifié capable d'effectuer la detection, la segmentation d'instance, l'estimation de pose et la classification de manière transparente.

Innovations architecturales

YOLOv8 s'est éloigné de la détection basée sur l'ancrage utilisée dans les versions précédentes (y compris YOLOv7) pour adopter un mécanisme de détecteur sans ancrage. Ce changement simplifie le processus d'entraînement en éliminant le besoin de calculer les boîtes d'ancrage, ce qui rend le modèle plus robuste aux variations de forme et de taille des objets.

Le backbone a été mis à niveau pour utiliser les modules C2f (Cross-Stage Partial Bottleneck avec deux convolutions), qui remplacent les modules C3 de YOLOv5. Ce changement améliore le flux de gradient et permet au modèle de rester léger tout en capturant des informations de caractéristiques plus riches.

En savoir plus sur YOLOv8

Comparaison technique détaillée

Basé sur l'ancre vs. Sans ancre

L'une des différences les plus marquantes est la tête de détection. YOLOv7 s'appuie sur des boîtes d'ancrage (anchor boxes), des formes prédéfinies que le modèle essaie de faire correspondre aux objets. Bien qu'efficace, cela nécessite un réglage des hyperparamètres pour les ensembles de données personnalisés.

En revanche, YOLOv8 utilise une approche sans ancrage, prédisant directement le centre d'un objet. Cela réduit le nombre de prédictions de boîtes, accélérant la suppression non maximale (NMS) et rendant le modèle plus facile à entraîner sur des données diverses sans configuration manuelle de l'ancrage.

Efficacité de l'entraînement et utilisation de la mémoire

Les modèles Ultralytics sont réputés pour leur efficacité technique. YOLOv8 utilise une stratégie intelligente d'augmentation des données qui désactive l'augmentation de Mosaic pendant les dernières époques de la formation. Cette technique stabilise la perte de formation et améliore la précision.

Efficacité de la mémoire

Un avantage significatif d'Ultralytics YOLOv8 par rapport aux architectures complexes comme les transformateurs (par exemple, RT-DETR) est son besoin en mémoire CUDA plus faible. Cela permet aux utilisateurs d'entraîner des tailles de lots plus importantes sur des GPU grand public, démocratisant ainsi l'accès à l'entraînement de modèles de pointe.

Écosystème et facilité d'utilisation

Bien que YOLOv7 soit un puissant référentiel de recherche, Ultralytics YOLOv8 offre une expérience produit soignée. L'écosystème Ultralytics fournit :

  1. API simplifiée : Une interface python cohérente pour toutes les tâches.
  2. Déploiement : Exportation en un clic vers des formats tels que ONNX, TensorRT, CoreML et TFLite via le mode d’exportation.
  3. Support de la communauté : Une communauté Discord active et des mises à jour fréquentes assurant la compatibilité avec les dernières versions de PyTorch.

Comparaison de code

L'écart d'utilisabilité est évident lorsque l'on compare le code nécessaire pour exécuter l'inférence. Ultralytics privilégie une approche low-code, permettant aux développeurs d'intégrer l'IA de vision dans les applications avec un minimum de surcharge.

Exécution de YOLOv8 avec python

from ultralytics import YOLO

# Load a pre-trained YOLOv8 model
model = YOLO("yolov8n.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Display the results
for result in results:
    result.show()

Implémentation de la CLI

YOLOv8 peut également être exécuté directement depuis la ligne de commande, une fonctionnalité qui simplifie l'intégration du pipeline et les tests rapides.

# Detect objects in an image using the nano model
yolo predict model=yolov8n.pt source='https://ultralytics.com/images/zidane.jpg' imgsz=640

Cas d'utilisation idéaux

Quand utiliser YOLOv7

YOLOv7 reste un choix viable pour les chercheurs qui effectuent des tests comparatifs par rapport aux normes de 2022/2023 ou qui maintiennent des systèmes existants construits spécifiquement autour de l'architecture de style Darknet. Son approche "sac de cadeaux gratuits" offre des perspectives intéressantes pour ceux qui étudient les stratégies d'optimisation des réseaux neuronaux.

Quand utiliser YOLOv8

YOLOv8 est le choix recommandé pour la grande majorité des nouveaux projets, notamment :

  • Applications en temps réel : Le modèle YOLOv8n (nano) offre des vitesses incroyables (environ 80 ms sur CPU), ce qui le rend parfait pour les applications mobiles et les systèmes embarqués.
  • Pipelines multi-tâches : Les projets nécessitant l'estimation de pose ou la segmentation en plus de la détection peuvent utiliser une seule API.
  • Déploiement commercial : La compatibilité d’exportation robuste garantit que les modèles formés dans PyTorch peuvent être déployés efficacement dans des environnements de production à l’aide de TensorRT ou d’OpenVINO.

Conclusion

Bien que YOLOv7 ait apporté des contributions significatives dans le domaine de la vision par ordinateur en optimisant les paramètres entraînables, Ultralytics YOLOv8 représente la norme moderne pour le développement pratique de l'IA.

L’équilibre supérieur entre vitesse et précision de YOLOv8, combiné à une conception sans ancrage et au vaste écosystème de support Ultralytics, le rend plus accessible aux débutants et plus puissant pour les experts. Pour les développeurs qui cherchent à créer des applications de vision évolutives, maintenables et à haute performance, YOLOv8, et ses successeurs comme YOLO11, offrent la voie la plus intéressante.

Lectures complémentaires

Pour ceux qui souhaitent explorer les dernières avancées en matière de detect d'objets, pensez à consulter ces modèles connexes :

  • YOLO11: La dernière itération d'Ultralytics, affinant l'architecture pour une efficacité encore accrue.
  • YOLOv6: Un autre modèle sans ancres axé sur les applications industrielles.
  • YOLOv9 : Se concentre sur l'information de gradient programmable (PGI) pour l'entraînement de réseaux profonds.

Commentaires