YOLOv7 vs YOLOv9#
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 edge que sur les serveurs cloud. Lorsqu’ils évaluent des architectures pour des projets de vision par ordinateur, les développeurs comparent souvent des références établies à de nouvelles innovations. Ce guide complet compare deux jalons majeurs de la famille YOLO : YOLOv7 et YOLOv9.
Nous analyserons leurs avancées architecturales, leurs métriques de performance et leurs scénarios de déploiement idéaux afin de t’aider à choisir le modèle adapté à ton application. Nous verrons également comment l’Ultralytics Platform unifie ces modèles pour faciliter leur entraînement, leur validation et leur déploiement.
Lignée des modèles et spécifications techniques#
Comprendre les origines et les philosophies de conception de ces modèles fournit un contexte essentiel pour évaluer leurs capacités. Les deux modèles partagent une même lignée de recherche, mais ciblent des goulots d’étranglement architecturaux différents.
YOLOv7 : le pionnier des bag-of-freebies#
Sorti à la mi-2022, YOLOv7 s’est imposé comme une architecture très fiable et fortement optimisée. Il a introduit la reparamétrisation structurelle et une approche de « sac d’astuces gratuit entraînable » afin de maintenir des vitesses d’inférence élevées sans compromettre la précision moyenne (mAP).
- Auteurs : Chien-Yao Wang, Alexey Bochkovskiy et Hong-Yuan Mark Liao
- Organisation : Institute of Information Science, Academia Sinica, Taïwan
- Date : 6 juillet 2022
- Arxiv : 2207.02696
- GitHub : WongKinYiu/yolov7
Innovations architecturales : YOLOv7 intègre l’Extended Efficient Layer Aggregation Network (E-ELAN), qui permet au modèle d’apprendre des caractéristiques plus variées en augmentant, mélangeant et fusionnant la cardinalité. Cette conception offre une excellente utilisation du GPU et une latence d’inférence réduite. Elle peut toutefois nécessiter beaucoup de mémoire lors d’entraînements complexes par rapport aux itérations modernes.
YOLOv9 : résoudre le goulot d’étranglement de l’information#
Introduit au début de 2024 par la même équipe de recherche, YOLOv9 s’attaque au « goulot d’étranglement de l’information » inhérent aux réseaux neuronaux profonds. Lorsque les données traversent des couches profondes, des détails essentiels sont souvent perdus. YOLOv9 atténue ce problème grâce à des conceptions de couches fondamentalement nouvelles.
- Auteurs : Chien-Yao Wang et Hong-Yuan Mark Liao
- Organisation : Institute of Information Science, Academia Sinica, Taïwan
- Date : 21 février 2024
- Arxiv : 2402.13616
- GitHub : WongKinYiu/yolov9
Innovations architecturales : YOLOv9 introduit les Informations de gradient programmables (PGI) et le Generalized Efficient Layer Aggregation Network (GELAN). PGI garantit la préservation de gradients fiables et leur rétropropagation afin de mettre à jour les poids avec précision. GELAN maximise l’efficacité des paramètres, ce qui permet à YOLOv9 d’atteindre une grande précision avec beaucoup moins de FLOPs que ses prédécesseurs.
Analyse des performances#
Lorsqu’ils choisissent entre plusieurs architectures, les ingénieurs en IA doivent trouver un équilibre entre la précision, la vitesse d’inférence et le coût de calcul. 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èle | taille (pixels) | mAPval 50-95 | Vitesse CPU ONNX (ms) | Vitesse T4 TensorRT10 (ms) | paramètres (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| 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 |
Points clés à retenir#
- Efficacité des paramètres : YOLOv9m égale la précision de YOLOv7l (51,4 % 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 bien plus facile à déployer sur des appareils d’IA edge à mémoire limitée.
- Micro-déploiements : l’introduction de la variante YOLOv9t (tiny) offre des vitesses exceptionnelles (2,3 ms sur T4 avec TensorRT) pour les environnements où les contraintes du 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 % mAP, dépassant largement YOLOv7x.
Bien que YOLOv7 et YOLOv9 soient puissants, le YOLO26 récemment sorti représente une avancée décisive. YOLO26 introduit une conception native de bout en bout sans NMS, éliminant le post-traitement complexe et accélérant jusqu’à 43 % les inférences sur CPU. Grâce au nouvel optimiseur MuSGD et aux fonctions de perte ProgLoss + STAL améliorées, YOLO26 offre une stabilité d’entraînement et une précision de détection des petits objets inégalées.
L'avantage Ultralytics#
Choisir une architecture de modèle n’est que la première étape. L’écosystème logiciel qui l’entoure détermine la rapidité avec laquelle tu peux passer du prototype à la production. L’intégration de ces modèles via l’API Python d’Ultralytics offre des avantages considérables 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 fortement personnalisés. Le framework Ultralytics fait abstraction de ces complexités du deep learning. Les développeurs peuvent facilement passer d’une architecture à l’autre, expérimenter avec l’optimisation des hyperparamètres et utiliser des pipelines d’augmentation des données intelligents 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, comme RT-DETR, les architectures YOLO d’Ultralytics s’entraînent beaucoup plus rapidement et nécessitent bien 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 de pointe s’effectue en toute simplicité au sein de l’écosystème Ultralytics. Voici un exemple entièrement exécutable 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")Une polyvalence inégalée pour différentes tâches#
Un écosystème bien maintenu donne accès à diverses tâches de vision par ordinateur. Alors que YOLOv7 a principalement été conçu pour la détection d’objets, avec des forks expérimentaux ultérieurs pour d’autres tâches, les modèles modernes d’Ultralytics sont conçus nativement pour être polyvalents. Sans configuration supplémentaire, tu peux effectuer de la segmentation d’instances, de l’estimation de pose, de la classification d’images et de la détection par boîtes englobantes orientées (OBB).
Cas d’utilisation et applications idéaux#
Le choix entre YOLOv7 et YOLOv9 dépend souvent des contraintes propres à ton secteur et du matériel disponible.
Quand utiliser YOLOv7#
- Déploiements edge hérités : pour les environnements matériels déjà fortement adaptés et optimisés pour l’architecture E-ELAN de YOLOv7, celui-ci 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 en font une excellente solution pour les infrastructures de villes intelligentes 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 dans lequel les variantes de YOLOv7 ont été largement testées.
Quand utiliser YOLOv9#
- Imagerie médicale : l’architecture PGI de YOLOv9 excelle dans la préservation des détails fins à travers les couches profondes, ce qui est essentiel pour analyser des tâches complexes d’analyse d’images médicales, comme la détection de tumeurs.
- Analyse de vente au détail dense : pour suivre et compter des articles entassés sur des rayons de magasins, l’intégration des caractéristiques de YOLOv9 offre une meilleure précision et réduit les faux négatifs.
- Images aériennes et prises par drone : l’efficacité des paramètres de YOLOv9m permet de traiter des images haute résolution sur des drones, contribuant à la préservation de la faune et au suivi agricole sans épuiser la batterie.
Conclusion#
YOLOv7 et YOLOv9 ont tous deux solidement établi leur place dans l’histoire de la vision par ordinateur. YOLOv7 a introduit des optimisations essentielles pour le traitement en temps réel, tandis que YOLOv9 s’est attaqué aux goulots d’étranglement structurels du deep learning afin de maximiser l’efficacité des paramètres.
Cependant, pour les développeurs qui commencent aujourd’hui de nouveaux projets, tirer parti de l’écosystème Ultralytics — notamment de modèles de nouvelle génération comme YOLO11 et YOLO26 — offre le meilleur compromis entre vitesse, précision et expérience développeur. Grâce à des innovations comme l’optimiseur MuSGD et à la suppression de la Distribution Focal Loss (DFL) pour une meilleure compatibilité matérielle, Ultralytics continue de proposer les outils les plus accessibles et les plus puissants aux professionnels de l’IA pour la vision.