YOLOv7 vs YOLOv9 : une plongée technique au cœur de la détection d'objets moderne

Le paysage de la détection d'objets en temps réel a évolué rapidement, chaque nouvelle itération repoussant les limites de ce qui est possible aussi bien sur les appareils en périphérie que sur les serveurs cloud. Lors de l'évaluation d'architectures pour des projets de vision par ordinateur, les développeurs comparent fréquemment les benchmarks établis avec les innovations plus récentes. Ce guide complet compare deux étapes clés de la famille YOLO : YOLOv7 et YOLOv9.

Nous analyserons leurs percées architecturales, leurs métriques de performance et les scénarios de déploiement idéaux pour t'aider à choisir le modèle adapté à ton application. Nous explorerons également comment la plateforme Ultralytics unifie ces modèles, facilitant ainsi leur entraînement, leur validation et leur déploiement.

Lignage des modèles et spécifications techniques

Comprendre les origines et les philosophies de conception de ces modèles fournit un contexte essentiel sur leurs capacités. Les deux modèles partagent une lignée de recherche commune mais ciblent des goulots d'étranglement architecturaux différents.

YOLOv7 : Le pionnier du "Bag-of-Freebies"

Sorti mi-2022, YOLOv7 s'est imposé comme une architecture hautement fiable et largement optimisée. Il a introduit la re-paramétrisation structurelle et une approche de "sac d'astuces entraînable" (trainable bag-of-freebies) pour maintenir des vitesses d'inférence élevées sans compromettre la précision moyenne (mAP).

Innovations architecturales : YOLOv7 intègre l'Extended Efficient Layer Aggregation Network (E-ELAN), qui permet au modèle d'apprendre des caractéristiques plus diversifiées en étendant, mélangeant et fusionnant la cardinalité. Cette conception se traduit par une excellente utilisation du GPU et une latence d'inférence optimisée. Cependant, il peut nécessiter une mémoire importante lors d'entraînements complexes par rapport aux itérations modernes.

En savoir plus sur YOLOv7

YOLOv9 : Résoudre le goulot d'étranglement de l'information

Introduit début 2024 par la même équipe de recherche, YOLOv9 s'attaque au "goulot d'étranglement de l'information" inhérent aux réseaux de neurones profonds. À mesure que les données traversent les couches profondes, des détails cruciaux sont souvent perdus. YOLOv9 atténue ce problème grâce à de nouvelles conceptions de couches fondamentales.

Innovations architecturales : YOLOv9 introduit les Programmable Gradient Information (PGI) et le Generalized Efficient Layer Aggregation Network (GELAN). Les PGI garantissent que des gradients fiables sont préservés et réinjectés pour mettre à jour les poids avec précision. Le GELAN maximise l'efficacité des paramètres, permettant à YOLOv9 d'atteindre une haute précision avec beaucoup moins de FLOPs que ses prédécesseurs.

En savoir plus sur YOLOv9

Analyse des performances

Lors du choix entre différentes architectures, les ingénieurs en IA doivent équilibrer la précision, la vitesse d'inférence et le coût computationnel. Le tableau ci-dessous met en évidence les différences de performance entre ces modèles sur le jeu de données COCO standard.

Modèletaille
(pixels)
mAPval
50-95
Vitesse
CPU ONNX
(ms)
Vitesse
T4 TensorRT10
(ms)
params
(M)
FLOPs
(B)
YOLOv7l64051.4-6.8436.9104.7
YOLOv7x64053.1-11.5771.3189.9
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

Points clés à retenir

  • Efficacité des paramètres : YOLOv9m égale la précision de YOLOv7l (51,4 % de mAP) tout en utilisant près de 45 % de paramètres en moins (20,0 M contre 36,9 M). Cette réduction drastique rend YOLOv9m beaucoup plus facile à déployer sur des appareils d'IA en périphérie aux ressources mémoire limitées.
  • Micro-déploiements : L'introduction de la variante YOLOv9t (tiny) offre des vitesses incroyables (2,3 ms sur T4 TensorRT) pour les environnements où les contraintes de temps réel sont absolues.
  • Précision maximale : Pour les applications où la précision est primordiale, YOLOv9e porte la précision de détection à 55,6 % de mAP, surpassant nettement YOLOv7x.
Préparer tes projets de vision par ordinateur pour l'avenir

Bien que YOLOv7 et YOLOv9 soient puissants, le tout nouveau YOLO26 représente le saut définitif en avant. YOLO26 introduit une conception native end-to-end sans NMS, éliminant les post-traitements complexes et augmentant les vitesses d'inférence CPU jusqu'à 43 %. En utilisant le nouvel optimiseur MuSGD et les fonctions de perte améliorées ProgLoss + STAL, YOLO26 offre une stabilité d'entraînement et une précision de détection des petits objets inégalées.

L'avantage Ultralytics

Le choix d'une architecture de modèle n'est que la première étape. L'écosystème logiciel entourant le modèle détermine la rapidité avec laquelle tu peux passer du prototype à la production. L'intégration de ces modèles via l'API Python Ultralytics offre des avantages substantiels aux développeurs et aux chercheurs.

Facilité d'utilisation et efficacité de l'entraînement

Historiquement, l'entraînement de YOLOv7 nécessitait une préparation complexe des données et des scripts lourdement personnalisés. Le framework Ultralytics abstrait ces complexités du deep learning. Les développeurs peuvent facilement passer d'une architecture à l'autre, expérimenter le réglage des hyperparamètres et utiliser des pipelines intelligents d'augmentation de données avec un minimum de code.

De plus, Ultralytics optimise l'utilisation de la mémoire pendant l'entraînement et l'inférence. Contrairement aux modèles Transformer lourds (tels que RT-DETR), les architectures YOLO d'Ultralytics s'entraînent beaucoup plus rapidement et nécessitent beaucoup moins de mémoire CUDA, ce qui les rend idéales pour les GPU grand public.

Exemple de code : Entraînement simplifié

L'entraînement de modèles à la pointe de la technologie est fluide au sein de l'écosystème Ultralytics. Voici un exemple entièrement exécutable démontrant comment entraîner et valider un modèle YOLOv9 :

from ultralytics import YOLO

# Initialize the model (you can swap 'yolov9c.pt' with 'yolov7.pt' or 'yolo26n.pt')
model = YOLO("yolov9c.pt")

# Train the model on the COCO8 sample dataset
train_results = model.train(
    data="coco8.yaml",
    epochs=50,
    imgsz=640,
    device="0",  # Use GPU 0 if available
    batch=16,  # Optimized batch size for memory efficiency
)

# Validate the model's performance on the validation set
metrics = model.val()

# Export the trained model to ONNX format for deployment
model.export(format="onnx")

Polyvalence inégalée entre les tâches

Un écosystème bien entretenu signifie un accès à diverses tâches de vision par ordinateur. Alors que YOLOv7 a été principalement conçu pour la détection d'objets (avec des forks expérimentaux ultérieurs pour d'autres tâches), les modèles Ultralytics modernes sont nativement conçus pour la polyvalence. Prêt à l'emploi, tu peux effectuer de la segmentation d'instances, de l'estimation de pose, de la classification d'images et de la détection de boîtes englobantes orientées (OBB) de manière transparente.

Cas d'utilisation et applications idéaux

La décision entre YOLOv7 et YOLOv9 dépend souvent de tes contraintes industrielles spécifiques et de la disponibilité du matériel.

Quand utiliser YOLOv7

  • Déploiements en périphérie (Edge) hérités : Pour les environnements matériels déjà lourdement réglés et optimisés pour l'architecture E-ELAN de YOLOv7, cela reste un choix robuste pour l'IoT industriel.
  • Surveillance du trafic : Les fréquences d'images élevées et la stabilité éprouvée de YOLOv7 le rendent excellent pour les infrastructures de ville intelligente et la gestion du trafic en temps réel.
  • Intégration robotique : La navigation dans des environnements dynamiques nécessite un traitement à faible latence, un scénario où les variantes de YOLOv7 ont été intensivement testées.

Quand utiliser YOLOv9

  • Imagerie médicale : L'architecture PGI dans YOLOv9 est exceptionnelle pour préserver les détails fins à travers les couches profondes, ce qui est critique lors de l'analyse de tâches complexes d'analyse d'images médicales comme la détection de tumeurs.
  • Analytique retail dense : Pour le suivi et le comptage d'articles densément empilés sur les étagères de vente au détail, l'intégration des caractéristiques de YOLOv9 offre une précision supérieure et réduit les faux négatifs.
  • Imagerie aérienne et par drone : L'efficacité des paramètres de YOLOv9m permet le traitement d'images haute résolution sur les drones, facilitant la conservation de la faune et la surveillance agricole sans épuiser la batterie.

Conclusion

YOLOv7 et YOLOv9 ont tous deux marqué l'histoire de la vision par ordinateur. YOLOv7 a introduit des optimisations essentielles pour le traitement en temps réel, tandis que YOLOv9 a résolu les goulots d'étranglement structurels du deep learning pour maximiser l'efficacité des paramètres.

Cependant, pour les développeurs qui démarrent de nouveaux projets aujourd'hui, tirer parti de l'écosystème Ultralytics—spécifiquement les modèles de nouvelle génération comme YOLO11 et YOLO26—offre le meilleur compromis entre vitesse, précision et expérience développeur. Avec des innovations comme l'optimiseur MuSGD et la suppression de la Distribution Focal Loss (DFL) pour une compatibilité matérielle plus large, Ultralytics continue de fournir les outils les plus accessibles et les plus puissants pour les professionnels de la vision par IA.

Commentaires