Passer au contenu

YOLOv9 YOLOv5: évolution architecturale et héritage dans la détection d'objets

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. YOLOv5, lancé par Ultralytics 2020, a établi une nouvelle norme en matière de facilité d'utilisation et de préparation à la production, devenant ainsi le cadre de référence pour les développeurs du monde entier. YOLOv9, publié en 2024 par des chercheurs de l'Academia Sinica, repousse les limites de l'architecture théorique avec des concepts tels que les informations de gradient programmables (PGI).

Cette comparaison examine comment la fiabilité éprouvée de YOLOv5 aux innovations architecturales de YOLOv9, afin de vous aider à déterminer quel modèle répond le mieux à vos besoins spécifiques en matière de vision par ordinateur.

Comparaison des métriques de performance

Le tableau suivant compare les deux modèles pour différentes tailles. Il convient de noter que, si YOLOv9 une précision théorique (mAP) supérieure, YOLOv5 compétitif en termes de vitesse et d'efficacité des ressources, en particulier pour les déploiements existants.

ModèleTaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
paramètres
(M)
FLOPs
(B)
YOLOv9t64038.3-2.32.07.7
YOLOv9s64046.8-3.547.126.4
YOLOv9m64051.4-6.4320.076.3
YOLOv9c64053.0-7.1625.3102.1
YOLOv9e64055.6-16.7757.3189.0
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4

YOLOv5: la norme pour l'IA de production

Depuis sa sortie en 2020 par Ultralytics, YOLOv5 est devenu synonyme de déploiement pratique de l'IA. Il ne s'agissait pas seulement d'une architecture de modèle, mais d'un changement complet d'écosystème. Avant YOLOv5, l'entraînement des modèles de détection d'objets nécessitait souvent des fichiers de configuration complexes et des frameworks fragiles basés sur le langage C. YOLOv5 une PyTorch native PyTorch qui a rendu l'entraînement aussi simple qu'une seule commande.

En savoir plus sur YOLOv5

Principaux atouts de YOLOv5

  1. Facilité d'utilisation inégalée : la marque de fabrique Ultralytics est l'expérience utilisateur. YOLOv5 un flux de travail fluide, de la préparation des ensembles de données au déploiement.
  2. Prise en charge étendue des plateformes : il offre une prise en charge native de l'exportation pour CoreML, TFLiteet ONNX, ce qui le rend incroyablement polyvalent pour les applications mobiles et de pointe.
  3. Faible consommation de ressources : contrairement aux architectures gourmandes en transformateurs qui nécessitent GPU importante, YOLOv5 très efficace, ce qui permet de l'entraîner sur du matériel grand public ou même sur des ordinateurs portables cloud gratuits comme Google .
  4. Stabilité : grâce à des années de maintenance active, les cas limites ont été résolus, garantissant une plateforme stable pour les applications critiques dans les domaines de la fabrication intelligente et de la sécurité.

Exemple de facilité d'utilisation

L'exécution d'une inférence avec YOLOv5 ou tout autre Ultralytics ) est standardisée et simple :

from ultralytics import YOLO

# Load a pretrained YOLOv5s model
model = YOLO("yolov5s.pt")

# Run inference on an image
results = model("https://ultralytics.com/images/bus.jpg")

# Show results
results[0].show()

YOLOv9: innovation architecturale avec PGI

Sorti début 2024, YOLOv9 vise à résoudre le problème du goulot d'étranglement de l'information dans les réseaux neuronaux profonds. À mesure que les réseaux deviennent plus profonds, des informations critiques peuvent être perdues au cours du processus de propagation avant. YOLOv9 ce problème grâce à l'information de gradient programmable (PGI) et au réseau d'agrégation de couches généralisé et efficace (GELAN).

En savoir plus sur YOLOv9

Avancées architecturales

  • Architecture GELAN : cette architecture novatrice combine le meilleur de CSPNet (utilisé dans YOLOv5) et d'ELAN (utilisé dans YOLOv7) afin d'optimiser l'efficacité des paramètres. Elle permet au modèle d'atteindre une plus grande précision avec moins de paramètres par rapport aux architectures plus anciennes.
  • Informations sur les gradients programmables (PGI) : les PGI génèrent des gradients fiables grâce à une branche auxiliaire qui n'est utilisée que pendant l'entraînement. Cela garantit que les couches profondes conservent les informations sémantiques sans ajouter de coût d'inférence, ce qui améliore les performances sur des tâches difficiles telles que la détection de petits objets.

Analyse comparative : quand utiliser quoi ?

Le choix entre ces deux modèles dépend de votre priorité : vitesse de déploiement ou précision maximale.

1. Efficacité de la formation et écosystème

YOLOv5 se distingue par la maturité de son écosystème. Il est intégré à des milliers d'outils tiers et bénéficie d'un soutien massif de la communauté. Si vous avez besoin de déployer un modèle dès aujourd'hui avec un minimum de friction, YOLOv5 ou la version plus récente YOLO11) est souvent le choix le plus sûr.

YOLOv9 est entièrement pris en charge dans Ultralytics , ce qui signifie que les utilisateurs peuvent tirer parti des mêmes pipelines de formation simplifiés. Cependant, son architecture complexe (branches auxiliaires) peut parfois ralentir la formation et nécessiter un peu plus de mémoire que le YOLOv5 simplifié.

2. Déploiement en périphérie ou précision du serveur

Pour les tâches purement axées sur la précision, telles que l'analyse d'images médicales hors ligne ou l'inspection industrielle de haute précision, YOLOv9e surpasse largement YOLOv5x, offrant un mAP de +5 % mAP .

Cependant, pour les appareils périphériques tels que le Raspberry Pi ou NVIDIA , YOLOv5 reste un favori. Son architecture plus simple se traduit bien par une quantification int8 et offre souvent des vitesses d'inférence plus rapides sur du matériel limité, bien que des modèles plus récents comme YOLO26 le remplacent rapidement dans ce créneau.

3. Polyvalence des Tâches

Les deux modèles sont polyvalents, mais la Ultralytics garantit qu'ils prennent en charge un large éventail de tâches allant au-delà de la simple détection :

L'avenir : YOLO26

Bien que YOLOv5 YOLOv9 d'excellents modèles, le domaine évolue rapidement. Les développeurs à la recherche de la technologie de pointe absolue devraient se tourner vers YOLO26.

Sorti en janvier 2026, YOLO26 représente l'aboutissement de ces avancées architecturales. Il adopte une conception de bout en bout NMS, popularisée pour la première fois par YOLOv10, qui supprime entièrement l'étape de suppression non maximale, très gourmande en latence. De plus, il intègre l'optimiseur MuSGD, un hybride de SGD Muon, qui garantit une convergence et une stabilité plus rapides.

Grâce à des améliorations telles que ProgLoss + STAL pour la détection de petits objets et la suppression de Distribution Focal Loss (DFL) pour une exportation plus simple, YOLO26 offre CPU jusqu'à 43 % plus rapide que les générations précédentes, ce qui en fait le choix idéal pour la recherche et la production.

En savoir plus sur YOLO26

Conclusion

  • Choisissez YOLOv5 si vous avez besoin d'un modèle léger et éprouvé pour les systèmes hérités ou les contraintes de ressources extrêmes où la prise en charge des opérateurs plus récents (comme ceux de YOLOv9) pourrait faire défaut.
  • Choisissez YOLOv9 si vous avez besoin d'une grande précision sur des ensembles de données complexes et si vous pouvez vous permettre des coûts de formation légèrement plus élevés.
  • Choisissez YOLO26 pour bénéficier du meilleur de tous les mondes : une vitesse NMS, une précision de premier ordre et des fonctionnalités de nouvelle génération telles que l'optimiseur MuSGD.

Pour commencer à utiliser l'un de ces modèles, vous pouvez utiliser la Ultralytics pour gérer vos ensembles de données, vous former dans le cloud et déployer sans effort.

Démarrage

Vous pouvez entraîner n'importe lequel de ces modèles à l'aide duPython Ultralytics . Il vous suffit de modifier le nom du modèle dans votre script :

from ultralytics import YOLO

# Switch between models easily
model = YOLO("yolov5su.pt")  # YOLOv5
# model = YOLO("yolov9c.pt") # YOLOv9
# model = YOLO("yolo26n.pt") # YOLO26

# Train on your data
model.train(data="coco8.yaml", epochs=100)

Commentaires