Suivez nous sur

YOLOv9 : un bond en avant dans la dĂ©tection d'objets en temps rĂ©el

Intelligence Artificielle

YOLOv9 : un bond en avant dans la dĂ©tection d'objets en temps rĂ©el

mm

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 :

  1. 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.
  2. 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

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é.

https://arxiv.org/abs/2402.13616

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.

J'ai passé les cinq dernières années à m'immerger dans le monde fascinant du Machine Learning et du Deep Learning. Ma passion et mon expertise m'ont amené à contribuer à plus de 50 projets de génie logiciel divers, avec un accent particulier sur l'IA/ML. Ma curiosité continue m'a également attiré vers le traitement automatique du langage naturel, un domaine que j'ai hâte d'explorer davantage.