YOLOv10 YOLOv7: l'évolution de la détection d'objets en temps réel
Les progrès rapides réalisés ces dernières années dans le domaine de la vision par ordinateur ont permis de mettre au point des architectures de plus en plus efficaces pour les applications en temps réel. Comparaison entre YOLOv10 et YOLOv7 met en évidence une période de transition cruciale dans cette évolution. Alors que YOLOv7 des stratégies d'entraînement et une mise à l'échelle architecturale très efficaces, YOLOv10 le déploiement en éliminant la dépendance de longue date à la suppression non maximale (NMS).
Les deux modèles ont repoussé les limites de la détection d'objets lors de leurs sorties respectives, pourtant l'écosystème moderne Ultralytics et l'introduction de modèles de nouvelle génération comme YOLO26 offrent des flux de travail bien supérieurs aux praticiens de l'IA d'aujourd'hui.
Profils et origines des modèles
Comprendre les origines de ces modèles fournit un contexte précieux concernant les choix architecturaux qui ont présidé à leur conception et les recherches universitaires qui les ont inspirés.
YOLOv10
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation : Université Tsinghua
- Date : 2024-05-23
- Arxiv: YOLOv10 : Détection d'objets de bout en bout en temps réel
- GitHub : THU-MIG/yolov10
- Docs : Documentation Ultralytics YOLOv10
YOLOv7
- Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
- Organisation : Institut des sciences de l'information, Academia Sinica, Taïwan
- Date : 06/07/2022
- Arxiv: YOLOv7 : Un ensemble d'astuces d'entraînement établit un nouvel état de l'art
- GitHub : WongKinYiu/yolov7
- Docs : Documentation Ultralytics YOLOv7
Innovations architecturales
YOLOv7
Sorti en 2022, YOLOv7 fortement YOLOv7 sur l'optimisation des chemins de gradient. Il a introduit le réseau E-ELAN (Extended Efficient Layer Aggregation Network), qui a permis au modèle d'apprendre des caractéristiques plus diverses sans détruire le chemin de gradient d'origine. De plus, les auteurs ont mis en œuvre une méthodologie « trainable bag-of-freebies », utilisant des techniques de reparamétrage pendant l'entraînement qui pouvaient être fusionnées pendant l'inférence afin de maintenir des vitesses d'exécution rapides. Malgré ces optimisations impressionnantes, YOLOv7 dépendait YOLOv7 fortement du NMS le post-traitement, ce qui créait une latence variable lors de l'analyse de scènes denses.
YOLOv10 de YOLOv10
YOLOv10 directement YOLOv10 le problème NMS . En introduisant des attributions doubles cohérentes pendant l'entraînement, l'équipe de l'université Tsinghua a permis une détection de bout en bout NMS. Cette approche à double tête utilise une branche avec des attributions un-à-plusieurs pour des signaux de supervision riches pendant l'entraînement, et une autre branche avec des attributions un-à-un pour une inférence NMS. Ce changement d'architecture garantit une latence d'inférence cohérente et ultra-faible, adaptée à l'analyse vidéo à grande vitesse. De plus, YOLOv10 une conception de modèle holistique axée sur l'efficacité et la précision, éliminant la redondance informatique présente dans les générations précédentes.
Impact du post-traitement
La suppression NMS accélère non seulement l'inférence, mais simplifie également considérablement le déploiement sur le matériel IA de pointe, tel que les accélérateurs IA et les NPU, où NMS personnalisées sont réputées difficiles à compiler.
Comparaison des performances
Lorsque l'on compare les mesures brutes sur COCO MS COCO , l'écart entre les générations devient évident. YOLOv10 un compromis beaucoup plus favorable entre les paramètres, les exigences informatiques et la précision.
| Modèle | Taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Comme vu ci-dessus, YOLOv10x offre un mAP supérieur de 54.4% par rapport aux 53.1% de YOLOv7x, tout en utilisant environ 20% moins de paramètres. De plus, les modèles légers YOLOv10 (Nano et Small) offrent des vitesses de déploiement TensorRT exceptionnelles, ce qui les rend très attractifs pour le déploiement mobile.
L'avantage de l'écosystème Ultralytics
Bien que l'étude des documents architecturaux soit instructive, le développement moderne de la vision par ordinateur repose sur des cadres robustes et bien entretenus. Le choix d'un modèle Ultralytics offre un avantage considérable aux développeurs qui souhaitent passer rapidement du prototype à la production.
Développement simplifié
YOLOv10 et YOLOv7 sont tous deux accessibles via le package Python standard d'Ultralytics. Cela offre une facilité d'utilisation inégalée, remplaçant des milliers de lignes de code passe-partout par une API simple et intuitive. De plus, les modèles Ultralytics YOLO nécessitent une mémoire CUDA significativement plus faible pendant l'entraînement par rapport aux architectures de transformeurs lourdes, permettant l'utilisation de tailles de lot plus importantes sur du matériel grand public.
Polyvalence inégalée
Alors que les référentiels plus anciens se concentrent souvent strictement sur la détection des cadres de sélection, le Ultralytics intégré Ultralytics prend en charge de manière transparente une grande variété de tâches. Que vous effectuiez une segmentation d'instance, une estimation de pose ou une détection de cadre de sélection orienté (OBB), le flux de travail reste identique.
Exemple de code : Flux de travail d'entraînement cohérents
L'extrait de code suivant illustre le processus d'entraînement transparent, qui gère automatiquement l'augmentation des données et la planification du taux d'apprentissage :
from ultralytics import YOLO
# Load the desired model (YOLOv10, YOLOv7, or the recommended YOLO26)
model = YOLO("yolo26n.pt")
# Train the model effortlessly on your dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640, batch=16, device=0)
# Export to ONNX format for rapid deployment
model.export(format="onnx")
Cas d'utilisation et recommandations
Le choix entre YOLOv10 et YOLOv7 dépend des exigences spécifiques de votre projet, des contraintes de déploiement et des préférences de l'écosystème.
Quand choisir YOLOv10
YOLOv10 un choix judicieux pour :
- Détection en temps réel sans NMS : Applications qui bénéficient d'une détection de bout en bout sans Non-Maximum Suppression, réduisant ainsi la complexité du déploiement.
- Compromis équilibrés vitesse-précision: Projets nécessitant un équilibre solide entre la vitesse d'inférence et la précision de détection sur diverses échelles de modèles.
- Applications à latence constante : Scénarios de déploiement où des temps d'inférence prévisibles sont critiques, tels que la robotique ou les systèmes autonomes.
Quand choisir YOLOv7
YOLOv7 recommandé pour :
- Étalonnage Académique : Pour la reproduction de résultats de pointe de l'ère 2022 ou l'étude des effets des techniques E-ELAN et des « bag-of-freebies » entraînables.
- Recherche sur la reparamétrisation : Investigation des convolutions reparamétrées planifiées et des stratégies de mise à l'échelle de modèles composés.
- Pipelines personnalisés existants : Projets avec des pipelines fortement personnalisés conçus autour de l'architecture spécifique de YOLOv7 qui ne peuvent pas être facilement refactorisés.
Quand choisir Ultralytics YOLO26)
Pour la plupart des nouveaux projets, Ultralytics offre la meilleure combinaison entre performances et expérience développeur :
- Déploiement Edge sans NMS : Applications nécessitant une inférence cohérente et à faible latence, sans la complexité du post-traitement de la Non-Maximum Suppression.
- Environnements uniquement CPU : Les appareils sans accélération GPU dédiée, où l'inférence CPU de YOLO26, jusqu'à 43 % plus rapide, offre un avantage décisif.
- Détection de petits objets: Scénarios difficiles comme l'imagerie aérienne par drone ou l'analyse de capteurs IoT où ProgLoss et STAL augmentent significativement la précision sur les objets minuscules.
La nouvelle norme : présentation de YOLO26
Si YOLOv10 une avancée considérable en 2024, le domaine de la vision par ordinateur évolue à une vitesse fulgurante. Pour tous les nouveaux développements, nous recommandons vivement le modèle de dernière génération : Ultralytics . Lancé en janvier 2026, il représente le summum absolu de l'IA de vision en temps réel, surpassant largement YOLOv7 YOLOv10.
YOLO26 apporte des innovations sans précédent spécialement conçues pour les environnements de déploiement modernes :
- Conception de bout en bout sans NMS : S'appuyant sur les bases posées par YOLOv10, YOLO26 élimine nativement le post-traitement NMS pour des pipelines de déploiement plus simples et une inférence haute vitesse constante.
- Jusqu'à 43 % plus rapide pour l'inférence CPU : Fortement optimisé pour l'edge computing et les appareils dépourvus de GPU dédiés, offrant des économies massives sur les coûts matériels.
- Suppression du DFL : La Distribution Focal Loss a été entièrement supprimée, ce qui simplifie radicalement la logique d'exportation et améliore considérablement la compatibilité avec les appareils périphériques à faible consommation et les microcontrôleurs.
- Optimiseur MuSGD : Inspiré par Kimi K2 de Moonshot AI, cet hybride de SGD et Muon intègre directement les innovations d'entraînement des grands modèles de langage (LLM) dans la vision par ordinateur, offrant des dynamiques d'entraînement incroyablement stables et une convergence plus rapide.
- ProgLoss + STAL: Ces fonctions de perte avancées offrent des améliorations notables dans la reconnaissance des petits objets, un domaine historiquement difficile qui est essentiel pour les drones, la robotique et la surveillance des villes intelligentes.
- Améliorations spécifiques aux tâches : YOLO26 n'est pas qu'un simple détecteur. Il inclut une perte de segmentation sémantique spécialisée, l'estimation du log-vraisemblance résiduel (RLE) pour un suivi de pose ultra-précis, et des algorithmes de perte angulaire spécialisés pour éliminer les problèmes de frontière des obb.
Gestion des ensembles de données et formation
Pour une expérience optimale dans la gestion de vos ensembles de données, la formation de YOLO26 et le déploiement de modèles dans le cloud, découvrez la Ultralytics . Elle offre une interface sans code qui complète parfaitement le Python .
Cas d'utilisation concrets
Le choix de l'architecture appropriée dépend fortement de votre matériel et des contraintes liées à vos applications.
Quand utiliser YOLOv7
YOLOv7 un choix fiable pour maintenir les pipelines existants qui sont déjà profondément intégrés à ses tensor spécifiques ou pour reproduire les benchmarks académiques de 2022 et 2023. Il fonctionne admirablement bien sur les GPU de serveurs haut de gamme.
Quand utiliser YOLOv10
YOLOv10 dans les scénarios nécessitant une latence stricte et constante. Comme il NMS nécessite NMS, il est idéal pour le comptage de foules à haute densité ou la détection de défauts de fabrication, où le nombre d'objets fluctue considérablement, mais où le temps de traitement par image doit rester constant.
Quand utiliser YOLO26
YOLO26 est le choix incontournable pour tout projet entièrement nouveau. Qu'il s'agisse de déployer des systèmes d'alarme sophistiqués sur un simple Raspberry Pi ou d'exécuter des analyses vidéo massives basées sur le cloud, sa CPU supérieure et sa détection avancée des petits objets le rendent largement supérieur aux générations précédentes.
Pour les développeurs intéressés par l'exploration d'architectures modernes alternatives, nous fournissons également une assistance complète pour les détecteurs basés sur des transformateurs tels que RT-DETR et les incontournables de la génération précédente comme Ultralytics YOLO11.