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èle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.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.
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.
- Auteurs : Glenn Jocher, Ayush Chaurasia et Jing Qiu
- Organisation : Ultralytics
- Date : 2023-01-10
- Liens :Documentation Ultralytics | Dépôt GitHub
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.
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 :
- API simplifiée : Une interface python cohérente pour toutes les tâches.
- Déploiement : Exportation en un clic vers des formats tels que ONNX, TensorRT, CoreML et TFLite via le mode d’exportation.
- 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.