Passer au contenu

YOLOv7 vs YOLOv10: évolution architecturale et analyse des performances

L'évolution de la famille YOLO (You Only Look Once) représente une chronologie fascinante des progrès réalisés dans le domaine de la vision par ordinateur, en équilibrant l'éternel compromis entre la vitesse d'inférence et la précision de détection. Cette comparaison se penche sur deux étapes importantes : YOLOv7un modèle robuste qui a établi de nouvelles références en 2022, et le modèle YOLOv10en 2024, qui introduit un changement de paradigme avec une formation NMS.

Bien que les deux modèles soient d'excellents choix pour la détection d'objets, ils répondent à des philosophies architecturales différentes. YOLOv7 repousse les limites du "bag-of-freebies" entraînable et de l'optimisation du chemin de gradient, tandis que YOLOv10 se concentre sur l'élimination des goulets d'étranglement du post-traitement pour atteindre une efficacité de bout en bout en temps réel.

YOLOv7: optimiser le chemin du gradient

Sorti en juillet 2022, YOLOv7 a introduit des changements architecturaux significatifs visant à optimiser le processus d'apprentissage sans augmenter les coûts d'inférence. Il est rapidement devenu un favori pour les tâches générales de vision par ordinateur en raison de sa grande précision sur l'ensemble de donnéesCOCO .

Auteurs : Chien-Yao Wang, Alexey Bochkovskiy, et Hong-Yuan Mark Liao
Organisation : Institute of Information Science, Academia Sinica, Taiwan
Date : 2022-07-06
ArXiv:YOLOv7: Trainable bag-of-freebies sets new state-of-the-art for real-time object detectors
GitHub:WongKinYiu/yolov7

Principales caractéristiques architecturales

YOLOv7 a introduit le réseau d'agrégation de couches efficace étendu (E-ELAN). Cette architecture permet au modèle d'apprendre des caractéristiques plus diverses en contrôlant les chemins de gradient les plus courts et les plus longs, en veillant à ce que le réseau converge efficacement pendant la formation.

En outre, YOLOv7 utilise largement les méthodes "Bag-of-Freebies" qui améliorent la précision pendant la formation sans augmenter le coût de l'inférence. Il s'agit notamment de la re-paramétrisation du modèle, qui permet de simplifier une structure d'apprentissage complexe en une structure d'inférence rationalisée, ce qui réduit la latence tout en maintenant les performances apprises.

En savoir plus sur YOLOv7

YOLOv10: La fin des NMS

YOLOv10, publié en mai 2024 par des chercheurs de l'université de Tsinghua, s'attaque à un goulot d'étranglement de longue date dans la détection d'objets : la suppression du non-maximumNMS. Les modèles YOLO traditionnels prédisent plusieurs boîtes englobantes pour un même objet et s'appuient sur la NMS pour filtrer les doublons. Cette étape de post-traitement ajoute un temps de latence qui varie en fonction du nombre d'objets dans la scène.

Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
Organisation : Université de Tsinghua
Date : 2024-05-23
ArXiv:YOLOv10: Real-Time End-to-End Object Detection
GitHub:THU-MIG/yolov10

Principales caractéristiques architecturales

YOLOv10 introduit une stratégie de double affectation cohérente. Pendant l'apprentissage, le modèle utilise à la fois une tête one-to-many (pour la supervision riche) et une tête one-to-one (pour la prédiction de bout en bout). Lors de l'inférence, seule la tête un-à-un est utilisée, ce qui élimine totalement le besoin de NMS . Il en résulte une inférence prévisible et à faible latence, ce qui la rend très adaptée aux applications d'intelligence artificielle en périphérie où le temps de traitement doit être constant.

En savoir plus sur YOLOv10

Comparaison technique : Architecture et performances

La principale distinction entre ces modèles réside dans leur approche de l'efficacité de l'inférence. YOLOv7 s'appuie sur une colonne vertébrale hautement optimisée (E-ELAN) pour extraire efficacement les caractéristiques, mais nécessite toujours un post-traitement traditionnel. YOLOv10 modifie la tête de détection fondamentale pour supprimer les étapes de post-traitement, ce qui permet d'obtenir une latence plus faible pour des niveaux de précision similaires.

Mesures de performance

Comme le montre le tableau ci-dessous, YOLOv10 fait preuve d'une efficacité supérieure. Par exemple, YOLOv10b atteint un taux de mAP (52,7 %) que YOLOv7l (51,4 %) tout en utilisant beaucoup moins de paramètres (24,4 M contre 36,9 M) et d'opérations en virgule flottante (FLOP).

Comprendre le temps de latence

Les mesures de "vitesse" mettent en évidence l'impact de la conception NMS de YOLOv10. En supprimant l'étape NMS , YOLOv10 réduit la charge de calcul pendant l'inférence, ce qui est particulièrement bénéfique pour les accélérateurs matériels comme TensorRT où le post-traitement peut devenir un goulot d'étranglement.

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
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4

Points forts et faiblesses

Les points forts de YOLOv7 :

  • Robustesse éprouvée : Largement testé dans divers environnements académiques et industriels depuis 2022.
  • Prise en charge de la haute résolution : Excellentes performances sur les entrées à haute résolution (par exemple, 1280 pixels) via des variantes spécifiques de W6/E6.
  • Ressources communautaires : En raison de son ancienneté, il existe un grand nombre de tutoriels et de mises en œuvre par des tiers.

YOLOv7 Faiblesses :

  • Complexité : Le re-paramétrage et la structure des têtes auxiliaires peuvent compliquer le pipeline de formation par rapport aux modèles Ultralytics modernes.
  • Dépendance à l'égardNMS : La vitesse d'inférence dépend partiellement de la densité de la scène en raison du NMS.

Les points forts de YOLOv10 :

  • Latence la plus faible : L'architecture NMS permet une inférence extrêmement rapide, idéale pour l'inférence en temps réel.
  • Efficacité : Permet d'atteindre une précision de pointe avec moins de paramètres et une utilisation réduite de la mémoire.
  • Facilité de déploiement : La suppression de l'étape NMS simplifie le processus d'exportation vers des formats tels que ONNX et TensorRT.

YOLOv10 Faiblesses :

  • Spécificité des tâches : principalement axé sur la détection d'objets, alors que d'autres modèles de l'écosystème Ultralytics (comme YOLO11) prennent en charge de manière native la segmentation, l'estimation de la pose et l'OBB dans un cadre unifié.

Cas d'utilisation idéaux

Le choix entre YOLOv7 et YOLOv10 dépend souvent des contraintes spécifiques de l'environnement de déploiement.

  • Utilisez YOLOv7 si : Vous travaillez sur un projet ancien qui intègre déjà l'architecture v7, ou si vous avez besoin de variantes haute résolution spécifiques (comme YOLOv7) pour la détection de petits objets dans de grandes images où la vitesse d'inférence est secondaire par rapport à la précision brute.
  • Utilisez YOLOv10 si : Vous déployez sur des appareils périphériques aux ressources limitées (Raspberry Pi, Jetson Nano, téléphones mobiles) ou vous avez besoin d'une latence minimale absolue pour des applications telles que la conduite autonome ou la robotique à grande vitesse. La faible empreinte mémoire permet également de réduire les coûts d'exécution dans les environnements en nuage.

L'avantage Ultralytics

Que vous choisissiez YOLOv7 ou YOLOv10, leur utilisation via l'APIPython d'Ultralytics offre des avantages significatifs par rapport à l'utilisation du code brut du référentiel. Ultralytics a intégré ces modèles dans un écosystème unifié qui privilégie la facilité d'utilisation, l'efficacité de la formation et la polyvalence.

Une expérience utilisateur simplifiée

La formation de modèles complexes d'apprentissage profond nécessitait jusqu'à présent la gestion de fichiers de configuration et de dépendances complexes. Le cadre Ultralytics standardise ce processus. Les développeurs peuvent passer d'une architecture à l'autre (par exemple, de YOLOv10n à YOLOv10s ou même à YOLO11) en changeant une seule chaîne de caractères, sans réécrire les chargeurs de données ou les scripts de validation.

Exemple de code

L'exemple suivant montre comment charger et prédire avec ces modèles en utilisant le package Ultralytics . Notez que l'API reste cohérente quelle que soit l'architecture du modèle sous-jacent.

from ultralytics import YOLO

# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")

# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")

# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")

# Print results
for result in results_v10:
    result.show()  # Display predictions

Écosystème et protection de l'avenir

Bien que YOLOv7 et YOLOv10 soient puissants, l'écosystème Ultralytics est en constante évolution. La dernière version de YOLO11 s'appuie sur les enseignements tirés de la v7 (agrégation des fonctionnalités) et de la v10 (efficacité).

  • Bien entretenu : Des mises à jour fréquentes garantissent la compatibilité avec les dernières versions de PyTorch, CUDA et les formats d'exportationCoreML, ONNX, TensorRT).
  • Efficacité de la mémoire : Les modèles Ultralytics sont conçus pour minimiser l'utilisation de la VRAM GPU pendant l'apprentissage, ce qui permet d'augmenter la taille des lots sur le matériel grand public par rapport à de nombreuses alternatives basées sur Transformer (comme RT-DETR.
  • Efficacité de la formation : Avec des hyperparamètres préréglés et une analyse "intelligente" des ensembles de données, la convergence de l'apprentissage est souvent plus rapide, ce qui permet de réduire les coûts de calcul.

Pour les développeurs qui démarrent de nouveaux projets aujourd'hui, l'exploration de YOLO11 est fortement recommandé car il offre un équilibre raffiné entre la vitesse observée dans YOLOv10 et l'extraction robuste de caractéristiques des prédécesseurs, ainsi qu'une prise en charge native de tâches allant au-delà de la simple détection, telles que la segmentation d'instances et l'estimation de la pose.

Explorer d'autres modèles

Si vous êtes intéressé par d'autres comparaisons ou d'autres architectures, vous pouvez consulter les ressources suivantes :

  • YOLO11 vs YOLOv8 - Comparez les derniers modèles de pointe.
  • RT-DETR vs YOLOv10 - Détection basée sur un transformateur vs. efficacité basée sur CNN.
  • YOLOv9 vs YOLOv10 - Examen de l'information de gradient programmable (PGI) par rapport aux conceptions NMS.

Commentaires