YOLOv7 YOLOv9: une analyse technique approfondie 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 sur les appareils périphériques et les serveurs cloud. Lorsqu'ils évaluent les architectures pour des projets de vision par ordinateur, les développeurs comparent souvent les références établies aux innovations les plus récentes. Ce guide complet compare deux étapes cruciales de la YOLO : YOLOv7 et YOLOv9.
Nous analyserons leurs avancées architecturales, leurs indicateurs de performance et leurs scénarios de déploiement idéaux afin de vous aider à choisir le modèle le mieux adapté à votre application. Nous examinerons également comment la Ultralytics unifie ces modèles, facilitant ainsi leur formation, leur validation et leur déploiement.
Généalogie du modèle et spécifications techniques
Comprendre les origines et les philosophies de conception de ces modèles fournit un contexte essentiel pour appréhender 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 comme une architecture hautement fiable et fortement optimisée. Il a introduit une reparamétrisation structurelle et une approche « trainable bag-of-freebies » 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 le réseau d'agrégation de couches étendu et efficace (E-ELAN), qui permet au modèle d'apprendre des caractéristiques plus diverses en étendant, mélangeant et fusionnant la cardinalité. Cette conception se traduit par une excellente utilisation du GPU et une latence d'inférence. Cependant, elle peut nécessiter une mémoire significative lors d'exécutions d'entraînement complexes par rapport aux itérations modernes.
YOLOv9 : Résoudre le goulot d’étranglement de l’information
Présenté début 2024 par la même équipe de recherche, YOLOv9 au « goulot d'étranglement informationnel » inhérent aux réseaux neuronaux profonds. Lorsque les données traversent les couches profondes, des détails cruciaux sont souvent perdus. YOLOv9 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 l'Information de Gradient Programmable (PGI) et le Réseau d'Agrégation de Couches Efficace Généralisé (GELAN). Le PGI garantit 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 grande précision avec significativement moins de FLOPs que ses prédécesseurs.
Analyse des performances
Lorsqu'ils choisissent entre différentes architectures, les ingénieurs en IA doivent trouver le juste équilibre entre précision, vitesse d'inférence et coût de calcul. Le tableau ci-dessous met en évidence les différences de performances entre ces modèles sur l'ensemble COCO standard COCO .
| 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 % de mAP) tout en utilisant près de 45 % de paramètres en moins (20,0 millions contre 36,9 millions). Cette réduction drastique rend YOLOv9m beaucoup plus facile à déployer sur des appareils d'IA de périphérie à mémoire limitée.
- 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 en 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, surpassant significativement YOLOv7x.
Assurer la pérennité de vos projets de vision par ordinateur
Si YOLOv7 YOLOv9 puissants, le tout nouveau YOLO26 représente une avancée décisive. YOLO26 introduit une conception native de bout en bout NMS, éliminant ainsi les post-traitements complexes et augmentant les vitesses CPU jusqu'à 43 %. Grâce à l'utilisation du nouvel optimiseur MuSGD et des 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
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 vous pouvez passer du prototype à la production. L'intégration de ces modèles via l'API Python d'Ultralytics offre des avantages substantiels aux développeurs et aux chercheurs.
Facilité d'utilisation et efficacité de la formation
Historiquement, la formation YOLOv7 une préparation complexe des données et des scripts hautement personnalisés. Le Ultralytics élimine ces complexités liées au deep learning. Les développeurs peuvent facilement passer d'une architecture à l'autre, tester différents réglages d'hyperparamètres et utiliser des pipelines intelligents d'augmentation des données avec un minimum de code.
De plus, Ultralytics l'utilisation de la mémoire pendant l'entraînement et l'inférence. Contrairement aux modèles de transformateurs lourds (tels que RT-DETR),YOLO Ultralytics YOLO s'entraînent beaucoup plus rapidement et nécessitent beaucoup moins CUDA , ce qui les rend idéales pour les GPU grand public.
Exemple de code : Entraînement optimisé
La formation de modèles de pointe s'effectue de manière transparente au sein de Ultralytics . Voici un exemple entièrement exécutable qui montre comment former et valider un 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 toutes les tâches
Un écosystème bien entretenu offre 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. Dès la première utilisation, vous pouvez effectuer de manière transparente la segmentation d'instances, l'estimation de pose, la classification d'images et la détection de boîtes englobantes orientées (OBB).
Cas d'utilisation et applications idéaux
Le choix entre YOLOv7 YOLOv9 dépend YOLOv9 des contraintes spécifiques à votre secteur d'activité et de la disponibilité du matériel.
Quand utiliser YOLOv7
- Déploiements Edge hérités : Pour les environnements matériels déjà fortement réglés et optimisés pour l'architecture E-ELAN de YOLOv7, il reste un choix robuste pour l'IoT industriel.
- Surveillance du trafic : Les fréquences d'images élevées et la stabilité avérée de YOLOv7 en font un excellent choix pour l'infrastructure des villes intelligentes et la gestion du trafic en temps réel.
- Intégration Robotique : La navigation dans des environnements dynamiques exige 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 de 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.
- Analyse dense du commerce de détail : Pour le suivi et le comptage d'articles densément regroupés sur les étagères de vente au détail, l'intégration de fonctionnalités de YOLOv9 offre une précision supérieure et réduit les faux négatifs.
- Imagerie aérienne et par drone : L'efficacité paramétrique de YOLOv9m permet le traitement d'images haute résolution sur les drones, contribuant à la conservation de la faune et à la surveillance agricole sans épuiser la durée de vie de la batterie.
Conclusion
YOLOv7 et YOLOv9 ont tous deux marqué 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 a abordé les goulots d'étranglement structurels de l'apprentissage profond pour maximiser l'efficacité des paramètres.
Cependant, pour les développeurs qui lancent aujourd'hui de nouveaux projets, tirer parti de Ultralytics , en particulier des modèles de nouvelle génération tels que YOLO11 et YOLO26, offre le meilleur compromis entre vitesse, précision et expérience développeur. Grâce à des innovations telles que l'optimiseur MuSGD et la suppression de la perte focale de distribution (DFL) pour une compatibilité matérielle plus large, Ultralytics de fournir les outils les plus accessibles et les plus puissants aux professionnels de l'IA visuelle.