Passer au contenu

YOLOv7 vs YOLOv8 : Évolution de la détection d'objets en temps réel

Le paysage de la vision par ordinateur se caractérise par des itérations rapides et des avancées architecturales. Deux des étapes les plus importantes de cette histoire sont YOLOv7, sorti mi-2022, et YOLOv8, publié par Ultralytics 2023. Si ces deux modèles ont repoussé les limites de la technologie (SOTA) lors de leur sortie, ils représentent des philosophies différentes en matière de conception de modèles et d'expérience développeur.

YOLOv7 un sommet dans l'optimisation de l'approche « bag-of-freebies » pour les détecteurs basés sur des ancres, en se concentrant intensément sur les stratégies d'architecture entraînables. À l'inverse, YOLOv8 une approche écosystémique centrée sur l'utilisateur, passant à une architecture sans ancres qui privilégie la facilité d'utilisation, le déploiement de modèles et la prise en charge unifiée de diverses tâches telles que la segmentation et l'estimation de la pose.

Comparaison des performances

Le tableau suivant illustre les mesures de performance YOLOv8 YOLOv7 YOLOv8 . YOLOv8 une efficacité supérieure, en particulier en termes de nombre de paramètres et de FLOP, tout en conservant ou en dépassant la précision (mAP) de son prédécesseur.

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: la puissance basée sur l'ancrage

Sorti en juillet 2022, YOLOv7 conçu pour repousser les limites de la vitesse et de la précision de la détection d'objets en temps réel. Il a introduit plusieurs innovations architecturales visant à optimiser le chemin de propagation du gradient.

Principales caractéristiques architecturales

YOLOv7 le réseau E-ELAN (Extended Efficient Layer Aggregation Network). Cette architecture permet au modèle d'apprendre des caractéristiques plus variées en contrôlant les chemins de gradient les plus courts et les plus longs, garantissant ainsi une convergence efficace du réseau sans perturber le flux de gradient.

Il utilise également une mise à l'échelle du modèle basée sur la concaténation, qui ajuste simultanément la profondeur et la largeur des blocs. Bien qu'efficace, cette architecture repose sur des boîtes d'ancrage, ce qui nécessite le calcul d'ancrages optimaux pour les ensembles de données personnalisés afin d'obtenir des performances maximales. Cela ajoute une couche de complexité au processus d'entraînement par rapport aux nouvelles approches sans ancrage.

Complexité de l'entraînement

YOLOv7 nécessite YOLOv7 une structure de référentiel spécifique orientée recherche et une gestion manuelle des têtes auxiliaires pendant la formation. Les utilisateurs doivent souvent ajuster manuellement les hyperparamètres pour que les « bag-of-freebies » (comme MixUp Mosaic) fonctionnent correctement sur des ensembles de données plus petits.

YOLOv8: écosystème unifié et conception sans ancrage

Ultralytics YOLOv8 un changement de paradigme, passant d'un outil de recherche pur à un cadre de niveau entreprise. Il a rationalisé l'ensemble du cycle de vie de l'apprentissage automatique, de l'annotation des données au déploiement.

En savoir plus sur YOLOv8

Innovations architecturales

YOLOv8 un modèle de pointe sans ancrage. En supprimant le besoin de boîtes d'ancrage prédéfinies, YOLOv8 la tête de détection et améliore la généralisation sur les objets de formes ou de proportions inhabituelles.

  1. Module C2f : Remplaçant le module C3 des générations précédentes, le module C2f (inspiré par ELAN) combine des fonctionnalités de haut niveau avec des informations contextuelles afin d'améliorer le flux de gradient tout en restant léger.
  2. Tête découplée : YOLOv8 les tâches d'objet, de classification et de régression en différentes branches. Cette séparation permet au modèle de converger plus rapidement et avec plus de précision.
  3. Polyvalence des tâches : contrairement à YOLOv7, qui est principalement un modèle de détection, YOLOv8 prend en charge YOLOv8 la classification d'images, l'estimation de pose, les boîtes englobantes orientées (OBB) et la segmentation d'instances.

Comparaison détaillée : pourquoi les développeurs choisissent Ultralytics

Bien que YOLOv7 un modèle performant, Ultralytics qui entoure YOLOv8 et le plus récent YOLO26) offre des avantages distincts aux développeurs et aux chercheurs.

1. Facilité d'utilisation et écosystème

YOLOv7 principalement distribué sous forme de référentiel de recherche. Son apprentissage nécessite souvent de cloner un référentiel GitHub spécifique, d'organiser les dossiers selon une structure rigide et d'exécuter CLI complexes.

En revanche, Ultralytics sont disponibles sous forme de Python standard (pip install ultralytics). Le Plateforme Ultralytics simplifie encore davantage ce processus en fournissant une interface graphique pour la gestion des ensembles de données et le suivi de la formation. Cette expérience « zéro à héros » réduit considérablement les obstacles à l'entrée dans le domaine du développement de l'IA.

2. Efficacité de l'entraînement et mémoire

L'un des facteurs les plus critiques dans l'IA moderne est l'utilisation des ressources. Les modèles basés sur des transformateurs nécessitent souvent d'énormes quantités de CUDA et prennent plusieurs jours à entraîner.YOLO Ultralytics sont optimisés pour une efficacité d'entraînement.

YOLOv8 l'augmentation mosaïque de manière dynamique, en la désactivant dans les dernières époques afin d'améliorer la précision. Associé à un chargeur de données optimisé, cela permet aux utilisateurs d'exécuter des lots plus volumineux sur des GPU grand public par rapport à YOLOv7 à des alternatives basées sur des transformateurs telles que RT-DETR.

3. Déploiement et exportation

Le transfert d'un modèle depuis un PyTorch vers un appareil de production est souvent la partie la plus difficile du processus. YOLOv8 cette opération grâce à un mode d'exportation unifié.

Avec une seule ligne de code, les développeurs peuvent exporter YOLOv8 :

  • ONNX pour une compatibilité multiplateforme générique.
  • TensorRT pour une vitesse d'inférence maximale sur NVIDIA .
  • CoreML pour intégration dans les applications iOS macOS.
  • TFLite pour un déploiement mobile et périphérique sur Android Raspberry Pi.

Exemple d'exportation

L'exportation d'un YOLOv8 s'effectue de manière transparente via Python :

from ultralytics import YOLO

model = YOLO("yolov8n.pt")
model.export(format="onnx", opset=12)

Exemple de code : l'API unifiée

Python Ultralytics vous permet de passer facilement d'une architecture de modèle à une autre. Vous pouvez charger un YOLOv8 ou un YOLOv7 (pris en charge pour des raisons de compatibilité avec les versions antérieures) à l'aide de la même interface.

from ultralytics import YOLO

# Load the latest YOLOv8 Nano model for efficiency
model = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
# The API handles dataset downloading and configuration automatically
results = model.train(data="coco8.yaml", epochs=50, imgsz=640)

# Run inference on a sample image
# Returns a list of Results objects containing boxes, masks, or keypoints
results = model.predict("https://ultralytics.com/images/bus.jpg")

# Display the results
results[0].show()

# NOTE: You can also load YOLOv7 weights using the same API
# model_v7 = YOLO("yolov7.pt")

Cas d'utilisation idéaux

Quand utiliser YOLOv7

  • Référence historique : si vous reproduisez des articles universitaires de 2022/2023 qui comparent spécifiquement l'architecture E-ELAN.
  • Entrées spécifiques haute résolution : L'argument yolov7-w6 Les variantes ont été spécialement adaptées pour des entrées de 1280 pixels, bien que Ultralytics modernes prennent désormais en charge Résolutions P6/1280 de manière native.

Quand utiliser YOLOv8

  • Informatique en périphérie : Des modèles comme yolov8n sont parfaits pour fonctionnant sur Raspberry Pi ou Jetson Nano en raison de leur faible nombre de paramètres et de leur vitesse élevée.
  • Applications multitâches : si votre application nécessite de suivre des personnes tout en identifiant simultanément leur posture (squelettes), l'estimation native de la posture YOLOv8 est le choix idéal.
  • Automatisation industrielle : pour les lignes de production à haut débit où la latence est critique, la facilité d'exportation vers TensorRT rend YOLOv8 .
  • Prototypage rapide : la Ultralytics permet aux équipes d'itérer rapidement sur des ensembles de données et des modèles sans avoir à gérer une infrastructure complexe.

Regard vers l'avenir : la puissance de YOLO26

Si la comparaison avec YOLOv7 les points forts de YOLOv8, le domaine a continué d'évoluer. Pour les développeurs qui se lancent aujourd'hui dans de nouveaux projets, YOLO26 représente le summum de cette évolution.

YOLO26 s'appuie sur la facilité d'utilisation de YOLOv8 introduit une conception de bout en bout NMS. En éliminant le post-traitementNMS(Non-Maximum Suppression), YOLO26 offre une logique de déploiement nettement plus simple et une latence réduite dans les scènes complexes. Il intègre également l'optimiseur MuSGD, inspiré des techniques d'entraînement des modèles linguistiques à grande échelle (LLM), qui garantit une convergence encore plus stable pendant l'entraînement.

De plus, grâce à la suppression de la perte focale de distribution (DFL), YOLO26 est jusqu'à 43 % plus rapide en termes d' inférence CPU, ce qui en fait le choix idéal pour les applications d'IA de pointe où les GPU ne sont pas disponibles. Pour les tâches spécialisées, il introduit des améliorations spécifiques telles que l'estimation de la vraisemblance logarithmique résiduelle (RLE) pour la pose et la perte d'angle spécialisée pour l'OBB.

Pour une solution à la fois pérenne, efficace et précise, nous vous recommandons de vous tourner vers YOLO26.


Commentaires