YOLOv10 vs. YOLOv9: une comparaison technique complète
Le paysage de la détection d'objets a évolué rapidement, les itérations successives de l'architecture YOLO (You Only Look Once) repoussant les limites de la vitesse et de la précision. Deux des contributions récentes les plus significatives dans ce domaine sont YOLOv10 et YOLOv9. Bien que les deux modèles atteignent des performances de pointe sur l'ensemble de donnéesCOCO , ils divergent considérablement dans leurs philosophies de conception et leurs objectifs architecturaux.
YOLOv10 privilégie la faible latence et l'efficacité de bout en bout en éliminant le besoin de suppression non maximaleNMS, tandis que YOLOv9 se concentre sur l'optimisation de la rétention d'informations et de la précision grâce à l'information de gradient programmable (PGI). Ce guide fournit une comparaison technique détaillée pour aider les développeurs et les chercheurs à sélectionner le modèle optimal pour leurs applications de vision par ordinateur.
YOLOv10: Le détecteur en temps réel de bout en bout
Publié en mai 2024 par des chercheurs de l'université de Tsinghua, YOLOv10 représente un changement de paradigme dans la lignée de YOLO . Sa principale innovation est la suppression de l'étape de post-traitement Non-Maximum Suppression (NMS), qui a traditionnellement été un goulot d'étranglement pour la latence de l'inférence.
Détails techniques :
- Auteurs : Ao Wang, Hui Chen, Lihao Liu, et al.
- Organisation :Université de Tsinghua
- Date : 2024-05-23
- Arxiv :Détection d'objets en temps réel de bout en bout
- GitHub :THU-MIG/yolov10
Architecture et innovations clés
YOLOv10 atteint son efficacité grâce à la combinaison d'assignations doubles cohérentes et d'une conception de modèle holistique axée sur l'efficacité et la précision.
- FormationNMS: Les modèles YOLO traditionnels s'appuient sur le NMS pour filtrer les boîtes de délimitation en double. YOLOv10 utilise une stratégie d'affectation double pendant l'apprentissage du modèle. Une branche one-to-many fournit de riches signaux de supervision pour l'apprentissage, tandis qu'une branche one-to-one garantit que le modèle génère une seule meilleure prédiction par objet lors de l'inférence. Cela permet au modèle d'être déployé sans NMS, ce qui réduit considérablement le temps de latence de l'inférence.
- Optimisation du modèle : L'architecture comprend des têtes de classification légères, un sous-échantillonnage découplé des canaux spatiaux et une conception des blocs guidée par les rangs. Ces caractéristiques réduisent la redondance des calculs et l'utilisation de la mémoire, ce qui rend le modèle très efficace sur du matériel aux ressources limitées.
L'avantage de l'efficacité
La suppression du NMS dans YOLOv10 est particulièrement bénéfique pour le déploiement en périphérie. Sur les appareils où les ressources de CPU sont rares, le fait d'éviter les coûts de calcul liés au tri et au filtrage de milliers de boîtes candidates peut se traduire par des accélérations substantielles.
YOLOv9: Maîtriser la conservation de l'information
Introduit en février 2024 par Chien-Yao Wang et Hong-Yuan Mark Liao, YOLOv9 cible le problème du "goulot d'étranglement de l'information" inhérent aux réseaux neuronaux profonds. Lorsque les données passent par des couches successives (extraction de caractéristiques), des informations cruciales peuvent être perdues, ce qui entraîne une dégradation de la précision, en particulier pour les objets de petite taille ou difficiles detect détecter.
Détails techniques :
- Auteurs : Chien-Yao Wang, Hong-Yuan Mark Liao
- Organisation :Institut des sciences de l'information, Academia Sinica
- Date : 2024-02-21
- Arxiv :Apprendre ce que l'on veut apprendre à l'aide de l'information programmable sur les gradients
- GitHub :WongKinYiu/yolov9
Architecture et innovations clés
YOLOv9 introduit de nouveaux concepts pour s'assurer que le réseau conserve et utilise autant d'informations que possible.
- Information de gradient programmable (PGI) : PGI fournit un cadre de supervision auxiliaire qui génère des gradients fiables pour la mise à jour des poids du réseau. Cela garantit que les couches profondes reçoivent des informations d'entrée complètes, ce qui atténue le problème du gradient qui s'évanouit et améliore la convergence.
- Réseau d'agrégation de couches efficace généralisé (GELAN) : Cette nouvelle architecture remplace le réseau ELAN conventionnel utilisé dans les versions précédentes. GELAN optimise l'utilisation des paramètres et l'efficacité des calculs (FLOPs), ce qui permet à YOLOv9 d'atteindre une plus grande précision avec une taille de modèle comparable à celle de ses prédécesseurs.
Aperçu de l'apprentissage profond
L'accent mis par YOLOv9 sur la conservation des informations le rend exceptionnellement performant pour la détection d'objets dans des scènes complexes où les détails des caractéristiques pourraient autrement être perdus au cours des opérations de sous-échantillonnage dans la dorsale.
Mesures de performance : Vitesse et précision
Le choix entre ces deux modèles se résume souvent à un compromis entre la vitesse d'inférence brute et la précision de la détection. Le tableau ci-dessous met en évidence les différences de performance entre les différentes échelles de modèles.
Analyse :
- Temps de latence : YOLOv10 est toujours plus performant que YOLOv9 en termes de latence, en particulier pour les modèles de petite taille (N et S). Par exemple, YOLOv10n atteint une vitesse d'inférence de 1,56 ms sur TensorRT, nettement plus rapide que les modèles comparables.
- Précision : YOLOv9 excelle en matière de précision dans la partie supérieure du spectre. Le modèle YOLOv9e atteint une mAP remarquable de 55,6 %, ce qui en fait le meilleur choix pour les applications où la précision est primordiale.
- Efficacité : YOLOv10 offre une excellente précision par paramètre. YOLOv10b atteint 52,7 % de mAP avec une latence inférieure à celle de YOLOv9c, ce qui démontre l'efficacité de sa conception holistique.
| 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 |
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
Cas d'utilisation idéaux
Comprendre les points forts de chaque modèle permet de sélectionner l'outil le mieux adapté aux objectifs spécifiques de votre projet.
Quand choisir YOLOv10
- Déploiement de l'IA en périphérie : Les applications exécutées sur des appareils tels que NVIDIA Jetson ou Raspberry Pi bénéficient de la conception NMS, qui réduit la charge de travail du CPU .
- Analyse vidéo à haute fréquence : Scénarios nécessitant le traitement de flux vidéo à haute fréquence, tels que la surveillance du trafic ou l'analyse sportive.
- Robotique en temps réel : Systèmes autonomes qui s'appuient sur des boucles de rétroaction à faible latence pour la navigation et l'évitement des obstacles.
Quand choisir YOLOv9
- Inspection de haute précision : Contrôle de qualité industriel où l'absence d'un défaut (faux négatif) est coûteuse.
- Détection de petits objets : Applications impliquant l'analyse d'images satellitaires ou l'imagerie médicale où les objets sont petits et pauvres en caractéristiques.
- Scènes complexes : Environnements à forte occlusion ou encombrement où une rétention maximale des informations est nécessaire pour distinguer les objets.
Utilisation avec Ultralytics
L'un des avantages significatifs de l'utilisation de ces modèles est leur intégration dans l'écosystème Ultralytics . YOLOv10 et YOLOv9 peuvent être utilisés via la même API Python unifiée et la même interface de ligne de commandeCLI, ce qui simplifie le flux de travail, de la formation au déploiement.
Exemple Python
Le code suivant montre comment charger et exécuter l'inférence avec les deux modèles à l'aide de la commande ultralytics package.
from ultralytics import YOLO
# Load a YOLOv10 model (NMS-free, high speed)
model_v10 = YOLO("yolov10n.pt")
# Load a YOLOv9 model (High accuracy)
model_v9 = YOLO("yolov9c.pt")
# Run inference on an image
# The API remains consistent regardless of the underlying architecture
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v9 = model_v9("https://ultralytics.com/images/bus.jpg")
# Print results
for r in results_v10:
print(f"YOLOv10 Detections: {r.boxes.shape[0]}")
for r in results_v9:
print(f"YOLOv9 Detections: {r.boxes.shape[0]}")
L'avantage Ultralytics
Choisir Ultralytics pour vos projets de vision par ordinateur offre plusieurs avantages au-delà de la simple architecture de modèle :
- Facilité d'utilisation : l'API conviviale vous permet de passer de YOLOv9 à YOLOv10 et à d'autres modèles tels que YOLO11 en changeant simplement le nom du fichier de poids.
- Équilibre des performances : Les implémentations d'Ultralytics sont optimisées pour des performances réelles, en équilibrant la vitesse et la précision.
- Efficacité de la formation : Le cadre prend en charge des fonctions telles que la précision mixte automatique (AMP) et la formation GPU , ce qui facilite la formation de modèles personnalisés sur vos propres ensembles de données.
- Exigences en matière de mémoire : Les modèles Ultralytics utilisent généralement moins de mémoire que les modèles basés sur les transformateurs, ce qui facilite la formation sur les GPU grand public.
Conclusion
Les deux YOLOv10 et YOLOv9 représentent des étapes importantes dans la détection d'objets. YOLOv10 est le grand gagnant pour les applications qui privilégient la vitesse et l'efficacité, grâce à son architecture innovante NMS. À l'inverse, YOLOv9 reste un choix solide pour les scénarios exigeant la plus grande précision possible et la rétention d'informations.
Pour les développeurs à la recherche de la solution la plus récente et la plus polyvalente, nous recommandons également d'explorer YOLO11. YOLO11 s'appuie sur les forces de ses prédécesseurs, offrant un équilibre raffiné entre vitesse, précision et fonctionnalités pour les tâches de détection, de segmentation et d'estimation de la pose.
Explorer d'autres modèles
- Ultralytics YOLO11 - Le dernier modèle à la pointe de la technologie.
- Ultralytics YOLOv8 - Un modèle polyvalent et mature pour diverses tâches de vision.
- RT-DETR - Un détecteur à base de transformateur pour des applications de haute précision.