Intelligence Artificielle
YOLOv9 : un bond en avant dans la détection d'objets en temps réel

Détection d'objets a connu des progrès rapides ces dernières années grâce à l'apprentissage en profondeur des algorithmes comme YOLO (You Only Look Once). La dernière itération, YOLOv9, apporte des améliorations majeures en termes de précision, d'efficacité et d'applicabilité par rapport aux versions précédentes. Dans cet article, nous aborderons les innovations qui font de YOLOv9 un nouvel état de l'art en matière de détection d'objets en temps réel.
Une introduction rapide à la détection d'objets
Avant d'entrer dans les nouveautés de YOLOv9, passons brièvement en revue le fonctionnement de la détection d'objets. Le but de la détection d'objets est d'identifier et de localiser des objets dans une image, comme des voitures, des personnes ou des animaux. Il s'agit d'une fonctionnalité clé pour des applications telles que les voitures autonomes, les systèmes de surveillance et la recherche d'images.
Le détecteur prend une image en entrée et génère des cadres de délimitation autour des objets détectés, chacun avec une étiquette de classe associée. Des ensembles de données populaires tels que MS COCO fournissent des milliers d'images étiquetées pour entraîner et évaluer ces modèles.
Il existe deux approches principales pour la détection d'objets :
- Détecteurs à deux étages comme Faster R-CNN, génèrez d'abord des propositions de régions, puis classez et affinez les limites de chaque région. Ils ont tendance à être plus précis mais plus lents.
- Détecteurs à un étage comme YOLO, appliquez un modèle directement sur l'image en un seul passage. Ils échangent une certaine précision contre des temps d’inférence très rapides.
YOLO a été le pionnier de l'approche en une seule étape. Examinons comment il a évolué au fil de plusieurs versions pour améliorer la précision et l'efficacité.
Examen des versions précédentes de YOLO
La famille de modèles YOLO (You Only Look Once) est à l'avant-garde de la détection rapide d'objets depuis la publication de la version originale en 2016. Voici un bref aperçu de la façon dont YOLO a progressé au fil de plusieurs itérations :
- YOLOv1 a proposé un modèle unifié pour prédire les boîtes englobantes et les probabilités de classe directement à partir d'images complètes en un seul passage. Cela le rendait extrêmement rapide par rapport aux modèles précédents à deux étages.
- YOLOv2 amélioré par rapport à l'original en utilisant la normalisation par lots pour une meilleure stabilité, l'ancrage des boîtes à différentes échelles et rapports d'aspect pour détecter plusieurs tailles, ainsi qu'une variété d'autres optimisations.
- YOLOv3 ajout d'un nouvel extracteur de fonctionnalités appelé Darknet-53 avec plus de couches et de raccourcis entre elles, améliorant encore la précision.
- YOLOv4 combiné des idées d'autres détecteurs d'objets et modèles de segmentation pour pousser la précision encore plus haut tout en maintenant une inférence rapide.
- YOLOv5 a entièrement réécrit YOLOv4 dans PyTorch et ajouté un nouveau squelette d'extraction de fonctionnalités appelé CSPDarknet ainsi que plusieurs autres améliorations.
- YOLOv6 a continué à optimiser l'architecture et le processus de formation, avec des modèles pré-entraînés sur de grands ensembles de données externes pour améliorer encore les performances.
En résumé, les versions précédentes de YOLO ont atteint une plus grande précision grâce à des améliorations de l'architecture du modèle, des techniques de formation et de la pré-formation. Mais à mesure que les modèles deviennent plus grands et plus complexes, la vitesse et l’efficacité commencent à en pâtir.
La nécessité d’une meilleure efficacité
De nombreuses applications nécessitent que la détection d'objets s'exécute en temps réel sur des appareils dotés de ressources de calcul limitées. À mesure que les modèles deviennent plus grands et nécessitent davantage de calculs, ils deviennent peu pratiques à déployer.
Par exemple, une voiture autonome doit détecter des objets à des fréquences d’images élevées à l’aide de processeurs à l’intérieur du véhicule. Une caméra de sécurité doit exécuter la détection d'objets sur son flux vidéo au sein de son propre matériel intégré. Les téléphones et autres appareils grand public ont des contraintes énergétiques et thermiques très strictes.
Les versions récentes de YOLO obtiennent une grande précision avec un grand nombre de paramètres et des opérations de multiplication-ajout (FLOP). Mais cela se fait au détriment de la vitesse, de la taille et de l’efficacité énergétique.
Par exemple, YOLOv5-L nécessite plus de 100 milliards de FLOP pour traiter une seule image 1280 1280 × XNUMX XNUMX. C'est trop lent pour de nombreux cas d'utilisation en temps réel. La tendance aux modèles toujours plus grands augmente également le risque de surajustement et rend plus difficile la généralisation.
Ainsi, afin d’étendre l’applicabilité de la détection d’objets, nous avons besoin de moyens d’améliorer l’efficacité – en obtenant une meilleure précision avec moins de paramètres et de calculs. Examinons les techniques utilisées dans YOLOv9 pour relever ce défi.
YOLOv9 – Une meilleure précision avec moins de ressources
Les chercheurs à l'origine de YOLOv9 se sont concentrés sur l'amélioration de l'efficacité afin d'obtenir des performances en temps réel sur une gamme plus large d'appareils. Ils ont introduit deux innovations clés :
- Une nouvelle architecture de modèle appelée Réseau général d'agrégation de couches efficace (GELAN) qui maximise la précision tout en minimisant les paramètres et les FLOP.
- Une technique de formation appelée Informations de dégradé programmables (PGI) qui fournit des gradients d'apprentissage plus fiables, en particulier pour les modèles plus petits.
Voyons comment chacune de ces avancées contribue à améliorer l'efficacité.
Une architecture plus efficace avec GELAN
L'architecture du modèle elle-même est essentielle pour équilibrer la précision avec la vitesse et l'utilisation des ressources lors de l'inférence. Le réseau neuronal a besoin de suffisamment de profondeur et de largeur pour capturer les caractéristiques pertinentes des images d'entrée. Mais trop de couches ou de filtres conduisent à des modèles lents et volumineux.
Les auteurs ont conçu GELAN spécifiquement pour tirer le maximum de précision de la plus petite architecture possible.
GELAN utilise deux éléments de base principaux empilés :
- Blocs d'agrégation de couches efficaces – Ces transformations agrégées sur plusieurs branches du réseau pour capturer efficacement les fonctionnalités à plusieurs échelles.
- Blocs de calcul – Les blocs CSPNet aident à propager les informations entre les couches. N'importe quel bloc peut être remplacé en fonction des contraintes de calcul.
En équilibrant et en combinant soigneusement ces blocs, GELAN atteint un juste équilibre entre performances, paramètres et vitesse. La même architecture modulaire peut évoluer vers le haut ou vers le bas pour différentes tailles de modèles et de matériel.
Les expériences ont montré que GELAN intègre davantage de performances dans des modèles plus petits par rapport aux architectures YOLO précédentes. Par exemple, GELAN-Small avec les paramètres 7M a surpassé le paramètre 11M YOLOv7-Nano. Et GELAN-Medium avec 20M de paramètres exécutés à égalité avec les modèles moyens YOLOv7 nécessitant 35-40M de paramètres.
Ainsi, en concevant une architecture paramétrée spécifiquement optimisée pour l'efficacité, GELAN permet aux modèles de s'exécuter plus rapidement et sur des appareils aux ressources plus limitées. Nous verrons ensuite comment PGI les aide également à mieux s'entraîner.
Meilleure formation avec informations de gradient programmables (PGI)
La formation des modèles est tout aussi importante pour maximiser la précision avec des ressources limitées. Les auteurs de YOLOv9 ont identifié des problèmes de formation de modèles plus petits causés par des informations de gradient peu fiables.
Dégradés déterminer dans quelle mesure les poids d'un modèle sont mis à jour pendant l'entraînement. Des gradients bruyants ou trompeurs conduisent à une mauvaise convergence. Ce problème devient plus prononcé pour les petits réseaux.
La technique de supervision approfondie résout ce problème en introduisant des branches latérales supplémentaires avec des pertes pour propager un meilleur signal de gradient à travers le réseau. Mais il a tendance à se briser et à provoquer des divergences pour les modèles légers et plus petits.

YOLOv9 : Apprendre ce que vous voulez apprendre à l'aide d'informations de dégradé programmables https://arxiv.org/abs/2402.13616
Pour surmonter cette limitation, YOLOv9 introduit Informations de dégradé programmables (PGI). Le PGI comporte deux composantes principales :
- Branchements auxiliaires réversibles – Ceux-ci fournissent des dégradés plus propres en maintenant des connexions réversibles à l’entrée à l’aide de blocs comme RevCols.
- Intégration de gradient à plusieurs niveaux – Cela évite que la divergence des différentes branches latérales n’interfère. Il combine les dégradés de toutes les branches avant de revenir au modèle principal.
En générant des gradients plus fiables, PGI aide les petits modèles à s'entraîner aussi efficacement que les plus grands :
Les expériences ont montré que le PGI a amélioré la précision dans toutes les tailles de modèles, en particulier dans les configurations plus petites. Par exemple, il a augmenté les scores AP de YOLOv9-Small de 0.1 à 0.4 % par rapport à GELAN-Small de référence. Les gains étaient encore plus significatifs pour les modèles plus profonds comme YOLOv9-E à 55.6 % de mAP.
Ainsi, PGI permet à des modèles plus petits et efficaces de s'entraîner à des niveaux de précision plus élevés, auparavant uniquement accessibles par des modèles surparamétrés.
YOLOv9 établit un nouvel état de l'art en matière d'efficacité
En combinant les avancées architecturales de GELAN avec les améliorations de formation de PGI, YOLOv9 atteint une efficacité et des performances sans précédent :
- Par rapport aux versions précédentes de YOLO, YOLOv9 obtient meilleure précision avec 10 à 15 % de paramètres en moins et 25 % de calculs en moins. Cela apporte des améliorations majeures en termes de vitesse et de capacité dans toutes les tailles de modèles.
- YOLOv9 surpasse les autres détecteurs en temps réel comme YOLO-MS et RT-DETR en termes de efficacité des paramètres et FLOP. Il faut beaucoup moins de ressources pour atteindre un niveau de performance donné.
- Les modèles YOLOv9 plus petits battent même les plus grands modèles pré-entraînés comme RT-DETR-X. Malgré l'utilisation 36 % de paramètres en moins, YOLOv9-E atteint mieux 55.6 % AP grâce à des architectures plus efficaces.
Ainsi, en abordant l'efficacité aux niveaux de l'architecture et de la formation, YOLOv9 établit un nouvel état de l'art pour maximiser les performances dans des ressources limitées.
GELAN – Architecture optimisée pour l’efficacité
YOLOv9 introduit une nouvelle architecture appelée GELAN (General Efficient Layer Aggregation Network) qui maximise la précision dans un budget de paramètres minimum. Il s'appuie sur les modèles YOLO précédents mais optimise les différents composants spécifiquement pour l'efficacité.

YOLOv9 : apprendre ce que vous voulez apprendre à l'aide d'informations de dégradé programmables
https://arxiv.org/abs/2402.13616
Contexte sur CSPNet et ELAN
Les versions récentes de YOLO depuis la v5 ont utilisé des backbones basés sur Cross-Stage Partial Network (CSPNet) pour une efficacité améliorée. CSPNet permet d'agréger les cartes de fonctionnalités sur des branches de réseau parallèles tout en ajoutant une surcharge minimale :
C'est plus efficace que le simple empilage de couches en série, ce qui conduit souvent à des calculs redondants et à un paramétrage excessif.
YOLOv7 a mis à niveau CSPNet vers ELAN (Efficient Layer Aggregation Network), ce qui a simplifié la structure des blocs :
ELAN a supprimé les connexions raccourcies entre les couches au profit d'un nœud d'agrégation en sortie. Cela a encore amélioré le paramètre et l’efficacité des FLOP.
Généraliser ELAN pour une efficacité flexible
Les auteurs ont encore plus généralisé ELAN pour créer GÉLAN, le squelette utilisé dans YOLOv9. GELAN a apporté des modifications clés pour améliorer la flexibilité et l'efficacité :
- Blocs de calcul interchangeables – L'ELAN précédent avait des couches convolutives fixes. GELAN permet de remplacer n'importe quel bloc de calcul comme ResNets ou CSPNet, offrant plus d'options architecturales.
- Paramétrage en profondeur – Des profondeurs de blocs séparées pour la branche principale et la branche agrégateur simplifient le réglage précis de l’utilisation des ressources.
- Performances stables dans toutes les configurations – GELAN maintient la précision avec différents types et profondeurs de blocs, permettant une mise à l'échelle flexible.
Ces changements font de GELAN une épine dorsale solide mais configurable pour maximiser l'efficacité :
Lors des expériences, les modèles GELAN ont systématiquement surpassé les architectures YOLO précédentes en termes de précision par paramètre :
- GELAN-Small avec 7M de paramètres a battu les 7M de YOLOv11-Nano
- GELAN-Medium correspond aux modèles moyens YOLOv7 plus lourds
GELAN fournit donc une base optimisée pour faire évoluer YOLO sur différents objectifs d'efficacité. Nous verrons ensuite comment PGI les aide à mieux s'entraîner.
PGI – Formation améliorée pour toutes les tailles de modèles
Bien que les choix d'architecture aient un impact sur l'efficacité au moment de l'inférence, le processus de formation affecte également l'utilisation des ressources du modèle. YOLOv9 utilise une nouvelle technique appelée Programmable Gradient Information (PGI) pour améliorer la formation sur différentes tailles et complexités de modèles.
Le problème des dégradés peu fiables
Pendant la formation, une fonction de perte compare les sorties du modèle aux étiquettes de vérité terrain et calcule un gradient d'erreur pour mettre à jour les paramètres. Dégradés bruyants ou trompeurs conduire à une mauvaise convergence et une mauvaise efficacité.
Les réseaux très profonds exacerbent cette situation à travers le goulot d'étranglement de l'information – les gradients des couches profondes sont corrompus par des signaux perdus ou compressés.
Surveillance approfondie aide en introduisant des branches latérales auxiliaires avec des pertes pour fournir des gradients plus nets. Mais c'est souvent tombe en panne pour les petits modèles, provoquant des interférences et des divergences entre les différentes branches.
Nous avons donc besoin d'un moyen de fournir des dégradés fiables qui fonctionnent sur toutes les tailles de modèles, en particulier les plus petites.
Présentation des informations de gradient programmables (PGI)
Pour résoudre les gradients peu fiables, YOLOv9 propose des informations de gradient programmables (PGI). PGI comporte deux composants principaux conçus pour améliorer la qualité du dégradé :
1. Branches auxiliaires réversibles
Des succursales supplémentaires fournissent connexions réversibles revenir à l'entrée en utilisant des blocs comme RevCols. Cela maintient des dégradés propres en évitant le goulot d’étranglement des informations.
2. Intégration de gradient à plusieurs niveaux
Un bloc de fusion regroupe les gradients de toutes les branches avant de les renvoyer au modèle principal. Cela évite les divergences entre les branches.
En générant des gradients plus fiables, PGI améliore la convergence et l'efficacité de la formation sur toutes les tailles de modèles :
- Modèles légers bénéficier d’une supervision approfondie dont ils ne pouvaient pas avoir besoin auparavant
- Modèles plus grands obtenir des dégradés plus nets permettant une meilleure généralisation
Les expériences ont montré une précision améliorée du PGI pour les petites et grandes configurations YOLOv9 par rapport au GELAN de base :
- +0.1-0.4% AP pour YOLOv9-Small
- +0.5-0.6 % AP pour les plus grands modèles YOLOv9
Ainsi, les gradients programmables de PGI permettent aux modèles, petits et grands, de s'entraîner plus efficacement.
YOLOv9 établit une nouvelle précision de pointe
En combinant les améliorations architecturales de GELAN et les améliorations de formation de PGI, YOLOv9 obtient de nouveaux résultats de pointe pour la détection d'objets en temps réel.
Les expériences sur l'ensemble de données COCO montrent que YOLOv9 surpasse les versions précédentes de YOLO, ainsi que d'autres détecteurs en temps réel comme YOLO-MS, en termes de précision et d'efficacité :
Quelques points saillants :
- YOLOv9-Small dépasse YOLO-MS-Small avec 10 % de paramètres et de calculs en moins
- YOLOv9-Medium correspond aux modèles YOLOv7 plus lourds en utilisant moins de la moitié des ressources
- YOLOv9-Large surpasse YOLOv8-X avec 15 % de paramètres en moins et 25 % de FLOP en moins
Remarquablement, les modèles YOLOv9 plus petits surpassent même les modèles plus lourds d'autres détecteurs qui utilisent un pré-entraînement comme le RT-DETR-X. Malgré 4 fois moins de paramètres, YOLOv9-E surpasse le RT-DETR-X en termes de précision.
Ces résultats démontrent l'efficacité supérieure de YOLOv9. Les améliorations permettent une détection d'objets de haute précision dans des cas d'utilisation plus réels.
Points clés à retenir sur les mises à niveau YOLOv9
Récapitulons rapidement certaines des mises à niveau et innovations clés qui permettent les nouvelles performances de pointe de YOLOv9 :
- Architecture optimisée GELAN – Améliore l’efficacité des paramètres grâce à des blocs d’agrégation flexibles. Permet de mettre à l'échelle des modèles pour différentes cibles.
- Informations de dégradé programmables – Fournit des gradients fiables grâce à des connexions réversibles et à la fusion. Améliore la formation pour toutes les tailles de modèles.
- Une plus grande précision avec moins de ressources – Réduit les paramètres et les calculs de 10 à 15 % par rapport à YOLOv8 avec une meilleure précision. Permet une inférence plus efficace.
- Résultats supérieurs dans toutes les tailles de modèles – Définit un nouvel état de l'art pour les configurations de modèles légers, moyens et grands. Surclasse les modèles fortement pré-entraînés.
- Applicabilité étendue – Une efficacité plus élevée élargit les cas d’utilisation viables, comme la détection en temps réel sur les appareils de périphérie.
En abordant directement la précision, l'efficacité et l'applicabilité, YOLOv9 fait progresser la détection d'objets pour répondre à divers besoins du monde réel. Les mises à niveau constituent une base solide pour l’innovation future dans cette capacité critique de vision par ordinateur.