En cliquant sur "Accepter ", vous acceptez que des cookies soient stockés sur votre appareil afin d'améliorer la navigation sur le site, d'analyser son utilisation et de contribuer à nos efforts de marketing. Consultez notre politique de confidentialité pour plus d'informations.
Knowledge

Publication de YOLOv9 : comprendre YOLO, l'algorithme de détection d'objets le plus populaire

Ecrit par
Nicolas
Publié le
2024-03-02
Temps de lecture
This is some text inside of a div block.
min
📘 SOMMAIRE
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.

La détection d'objets est une tâche fondamentale en Computer Vision : elle permet aux intelligences artificielles de localiser et classifier les objets présents dans des images ou des vidéos. La capacité à détecter précisément les objets a de nombreuses applications, allant des voitures autonomes aux systèmes de surveillance. Ces dernières années, un algorithme a gagné en popularité pour ses performances exceptionnelles dans la détection d'objets : You Only Look Once (YOLO). Mais que savez-vous de cet algorithme et quelle compréhension en avez-vous ?

Vous n'avez aucune idée ? Pas de panique, cet article est là pour vous expliquer ce qu'est YOLO, son importance dans le monde de l'IA et ses différentes versions. Après cette lecture, vous disposerez d'une bonne compréhension de YOLO et de ses applications. C'est parti !

Algorithmes de détection d'objets : de quoi s'agit-il ?

Les algorithmes de détection d'objets sont des programmes informatiques conçus pour identifier et localiser des objets dans une image ou une vidéo. Ces algorithmes de détection performants peuvent identifier plusieurs objets et les classer dans différentes catégories.

Un exemple populaire d'algorithme de détection d'objets est YOLO (You Only Look Once), qui traite rapidement les images en temps réel, le rendant très efficace pour des applications telles que la surveillance et le contrôle du trafic. Un autre exemple est la famille R-CNN (Regions with Convolutional Neural Networks), qui comprend Fast R-CNN et Faster R-CNN, reconnus pour leur précision dans la détection d'un seul objet ou de plusieurs objets en proposant d'abord des régions puis en les classifiant.

Avec les progrès en intelligence artificielle (Deep Learning) ces algorithmes s'améliorent constamment, devenant plus rapides et plus précis, et jouent un rôle essentiel dans le développement de technologies comme les véhicules autonomes, où ils contribuent à automatiser un système à la détection d'obstacles sur la route, par exemple.


Qu'est-ce que YOLO, quelle est son importance en IA ?

Nous l'avons vu, YOLO, ou "You Only Look Once", est un outil spécial qui aide les ordinateurs à voir rapidement et avec précision les choses dans les images, les fichiers textes ou les vidéos.

Créé par les experts Joseph Redmon et Ali Farhadi en 2015, YOLO est plus rapide que les outils plus anciens car il analyse l'image entière en une seule fois. Cette vérification rapide permet à YOLO d'identifier rapidement s'il y a d'autres objets, comme des voitures, des arbres ou des animaux, et où ils se trouvent dans l'image.

L'importance de YOLO est énorme pour l'IA, notamment dans le cadre du développement de produits avancés comme les véhicules autonomes. Pour les voitures autonomes, YOLO peut fonctionner comme les yeux de la voiture, repérant rapidement les choses sur la route pour éviter les accidents. Egalement, embarqué dans des caméras intelligences, YOLO peut contribuer à améliorer la vidéosurveillance en détectant automatiquement des comportements inhabituels, par exemple dans les aéroports ou les centres commerciaux. Cela signifie que si quelqu'un laisse un sac à dos seul, YOLO peut en informer l'équipe de sécurité immédiatementvia une notification.

Les créateurs de YOLO continuent de le mettre à jour l'algorithme pour l'améliorer continuellement ; il existe de nombreuses versions, de YOLOv1 à YOLOv9 (le plus récent, sorti en Février 2024), chaque nouvelle version étant plus rapide et précise. YOLO est devenu très populaire car il donne aux machines des superpouvoirs pour voir et comprendre le monde rapidement et repérer des objets pour une multitude d'applications dans le monde réel.

Logo


Comment préparer des données pour entraîner vos modèles YOLO ?
Faites appel à nos annotateurs pour vos tâches d'annotation de données les plus complexes, et améliorez la qualité de vos données pour atteindre un niveau de fiabilité de 99% ! Collaborez avec nos Data Labelers dès maintenant.

Comment fonctionne YOLO ?

Voici comment l'algorithme de détection d'objets YOLO (You Only Look Once) fonctionne, expliqué en étapes simples :

1. Prendre une photo

Tout d'abord, l'algorithme YOLO commence par une image, tout comme lorsque vous prenez une photo avec un appareil photo. C'est ce que nous appelons la détection d'objets basée sur la classification d'images !

2. Diviser l'image

Ensuite, il divise l'image donnée en petits carrés, comme un damier. Chaque carré sera vérifié pour voir s'il contient un objet (un chat, un chien ou encore une boîte de conserve, par exemple).

3. Chercher des indices

Pour chaque carré, YOLO recherche des indices ou des caractéristiques comme des bords, des formes ou des textures qui pourraient indiquer quel objet s'y trouve. Il les entoure avec des boîtes englobantes. Comme YOLO a besoin d'apprendre pour bien comprendre un nouveau jeu de données et interpréter, on lui a parfois donné un jeu de donneés de référence (ou "vérité terrain") dans lequel il peut puiser pour avoir des points de comparaison.

4. Faire des prédictions

L'algorithme fait une supposition pour chaque carré d'une image : quel objet cela pourrait-il être et où exactement se trouve-t-il dans le carré ? Il attribue à chaque supposition un score pour montrer son niveau de certitude.

5. Éliminer les excédents

Certains carrés ont des suppositions de différents objets qui se chevauchent, comme deux carrés devinant une partie de la même voiture. YOLO choisit la meilleure supposition pour chaque objet, en se débarrassant des suppositions superflues.

6. Montrer ce qu'il a trouvé

À la fin, YOLO vous montre où il pense que chaque objet se trouve en dessinant des boîtes autour d'eux et en les étiquetant, comme "voiture" ou "arbre". Si vous lui donnez 1'000 images contenant des chiens et des chats, et lui dites d'identifier les chats, il vous montrera des images enrichies de métadonnées pointant vers les chats.

Le point fort de YOLO est qu'il examine tous les éléments d'une images (décomposés en "carrés") en même temps. C'est pourquoi il est rapide et peut même fonctionner en temps réel, ce qui est extrêmement utile pour des applications nécessitant des réactions rapides, comme les voitures autonomes ou la vidéosurveillance !

Logo


💡 Le saviez-vous ?
YOLO, abréviation de "You Only Look Once", est l'une des architectures de modèles et algorithmes de détection d'objets les plus populaires. YOLO est capable de prédire la classe d'un objet et la boîte englobante qui définit son emplacement sur l'image en une seule passe, ce qui le rend idéal pour des applications en temps réel

YOLO vs. R-CNN : quelle(s) différence(s) ?

YOLO et R-CNN sont tous deux efficaces pour repérer des objets dans des images ou des vidéos, mais ils le font de manières différentes et pour des cas d'usage souvent différentss. Voici comment ils diffèrent dans les processus de détection d'objets !

Vitesse

YOLO est très rapide car il analyse l'image entière en une seule fois. Mais R-CNN examine plusieurs fois des parties de l'image pour trouver des objets, ce qui prend plus de temps. Ainsi, le modèle YOLO offre plus de vitesse dans la détection d'objets !

Étapes suivies

YOLO divise l'image en carrés, devine ce qu'il y a dans chacun et élimine les suppositions superflues. R-CNN commence par trouver des parties intéressantes de l'image, puis examine ces parties de plus près pour déterminer ce qu'elles contiennent.

Précision

R-CNN est très méticuleux et précis car il passe plus de temps à vérifier chaque partie de l'image. YOLO est plus rapide, mais parfois il n'est pas toujours aussi minutieux que R-CNN.

Cas d'utilisation

YOLO est adapté lorsque vous avez besoin de réponses rapides, comme dans une voiture autonome qui doit prendre des décisions rapides. R-CNN est préférable lorsque vous devez être vraiment sûr de ce qu'il y a dans l'image et que vous avez plus de temps pour vérifier, par exemple si une image médicale présente des signes de maladie.

Critères YOLO R-CNN
Vitesse Plus rapide Plus lent
Méthode Observe une image en 1 seule fois Observe des fragments d'une image à plusieurs reprises
Précision Moins précis mais en progrès Plus précis
Mieux pour Applications en temps réel Analyse détaillée lorsque la réactivité n'est pas une contrainte


Tableau comparatif : YOLO vs. R-CNN

Globalement, utiliser YOLO, c'est comme jeter un coup d'œil rapide à une pièce et repérer rapidement la plupart des objets qui s'y trouvent. Exploiter R-CNN, c'est comme prendre le temps de regarder chaque coin et recoin de cette pièce pour s'assurer de ne rien manquer. Ces algorithmes sont tous les deux excellents pour jouer à ce jeu, mais ils y jouent différemment !

Evolution de la détection d'objets : de YOLO 1 à YOLO 9

YOLO, acronyme de "You Only Look Once", est un algorithme de détection d'objets en temps réel qui a connu d'importantes améliorations depuis sa création. En tant que détecteur "one shot", il traite les images et identifie les objets en prédisant des boîtes englobantes et des probabilités de classe en une seule passe. Au fil du temps, YOLO est devenu de plus en plus résilient et performant, comme l'illustre très bien la dernière publication de ses auteurs :

Illustration de la performance de YOLO issue du GitHub de ses auteurs, testée sur le set MS COCO. En abscisse, le nombre de paramètres ; en ordonnée, la précision moyenne en pourcentage.

YOLO V1

- La première version de YOLO a révolutionné la communauté des chercheurs en IA / Computer Vision avec ses capacités de détection d'objets en temps réel, offrant des vitesses d'inférence bien plus rapides que les méthodes existantes telles que R-CNN.

- YOLO v1 divise l'image entrante en une grille et prédit plusieurs boîtes englobantes et probabilités de classe pour chaque cellule de la grille.

- Cependant, avec cett première version, la précision était un compromis. YOLO avait alors du mal avec les petits objets et produisait de nombreuses erreurs de localisation d'objet.

YOLO V2 et V3

- Les versions suivantes, telles que YOLO v2 et v3, ont introduit des améliorations notables et de nouvelles fonctionnalités comme les boîtes d'ancrage, utilisant le clustering k-means pour prédire des coordonnées de boîtes englobantes plus précises.

- Ces versions ont également profité de la normalisation par lots et la gestion d'images d'entrée de plus haute résolution, conduisant à des performances de détection nettement meilleures sur des benchmarks tels que les ensembles de données Pascal VOC et COCO.

YOLO V4 et V5

- Avec pour objectif d'atteindre à la fois une grande vitesse et une haute précision, YOLO v4 a introduit des fonctionnalités telles que le pooling pyramidal spatial et une architecture YOLO plus complexe basée sur des réseaux convolutionnels de pointe.

- YOLO v5 s'est quant à lui concentré sur la simplification et l'optimisation, lui permettant de fonctionner extrêmement rapidement sur du matériel moins puissant tout en maintenant une haute précision.

YOLO V6 à V8

- Les versions les plus récentes de YOLO, à partir de la version 6, introduisent des améliorations continues axées sur les applications concrètes de YOLO, telles que les véhicules autonomes ou la surveillance vidéo. Plus on avance dans le temps, et plus YOLO s'éloigne de la communauté des chercheurs pour atteindre le grand public et les cas d'usage appliqués à la vie réelle.

- Ces versions ont affiné l'utilisation des techniques de Deep Learning, y compris diverses formes d'augmentation des données et d'algorithmes d'optimisation qui ont aidé à améliorer la précision moyenne et la capacité à détecter une gamme diversifiée de classes d'objets.

YOLO V9

Le 21 février 2024, Chien-Yao Wang, I-Hau Yeh et Hong-Yuan Mark Liao ont publié l'article "YOLOv9 : Apprendre ce que vous voulez apprendre en utilisant l'Information de Gradient Programmable", qui introduit une nouvelle architecture de modèle de vision par ordinateur : YOLOv9.

YOLOv9 représente une avancée majeure dans la série des modèles YOLO, offrant des améliorations significatives en termes de précision et d'efficacité pour la détection d'objets en temps réel. Il se distingue de ses prédécesseurs, notamment YOLOv8, par une réduction de 49% du nombre de paramètres et de 43% de la complexité computationnelle, tout en augmentant la précision moyenne sur le jeu de données MS COCO de 0,6%​​.

La série YOLOv9 comprend quatre modèles : YOLOv9-s (petit), YOLOv9-m (moyen), YOLOv9-c (compact) et YOLOv9-e (étendu), chacun variant en termes de nombre de paramètres et de performances. Ces modèles sont conçus pour répondre à divers besoins, allant d'applications légères à des applications plus exigeantes en performances​​.

YOLOv9 introduit deux innovations majeures :

- 1. Le Programmable Gradient Information (PGI)

- 2. Le Generalized Efficient Layer Aggregation Network (GELAN)

Le PGI est un mécanisme de supervision auxiliaire comprenant trois composants principaux :

- 1. Une branche principale

- 2. Une branche auxiliaire réversible

- 3. Une information auxiliaire multi-niveaux

Cette structure aide à atténuer la perte d'informations causée par les goulets d'étranglement de l'information, un problème courant dans les réseaux de neurones profonds. Le GELAN combine des éléments de CSPNet, connu pour sa planification efficace du chemin de gradient, et d'ELAN, qui priorise la vitesse d'inférence, créant ainsi une architecture versatile qui met l'accent sur un design léger, une inférence rapide et une précision accrue​​​​.

En outre, YOLOv9 est adapté à une variété d'applications en Computer Vision, y compris dans les domaines de la logistique et de la distribution, des véhicules autonomes, du comptage de personnes dans le secteur de la vente au détail oude l'analyse sportive. Ces applications bénéficient de la capacité de YOLOv9 à détecter des objets en temps réel avec une grande précision et efficacité​​.

En somme, YOLOv9 représente un jalon important dans la recherche en intelligence artificielle, reflétant la dynamique actuelle de quête incessante pour atteindre et conserver le statut de pointe dans le domaine. Les développeurs de YOLOv9 ont publié le code source sur GitHub, facilitant ainsi son adaptation à diverses tâches de Computer Vision.

Version Améliorations Compromis Vitesse / Précision Applications
V1 Prédiction par cellule de grille, méthode à tir unique Rapide mais moins précis Détection en temps réel fondamentale (recherche)
V2 et V3 Boîtes d'ancrage, normalisation par lots Plus rapide et plus précis Diverses applications en temps réel
V4 et V5 Pooling pyramidal spatial, optimisations Équilibre entre vitesse et précision Environnements exigeants, comme le transport
V6 à V8 Optimisations ciblées, architectures améliorées Très précis et en temps réel Applications spécialisées, comme la surveillance
V9 Amélioration de la détection des petits objets, intégration avec d'autres modèles d'IA et IA explicable Précision et vitesse accrues Applications telles que l'imagerie médicale, la conduite autonome ou la détection de défauts industriels


Tableau récapitulatif des différentes versions et évolutions de YOLO

Au fil de son évolution de YOLO v1 à v9, la famille des algorithmes de détection d'objets YOLO a consolidé sa position en tant qu'outil clé en Computer Vision. Avec chaque version, YOLO est devenu plus habile dans sa capacité à détecter des objets plus ou moins complexes, dans divers scénarios, devenant un composant essentiels dans les systèmes d'automatisation où une détection d'objets rapide et précise est primordiale. Pour en savoir plus et tester YOLOv9, n'hésitez pas à vous rendre sur Hugging Face 🤗 !

Quelles sont les principales applications de YOLO, dans diverses industries ?

YOLO, l'un des meilleurs algorithmes de détection d'objets, est utilisé dans une variété de domaines de la vie, facilitant considérablement notre vie de tous es jours. Voici un aperçu rapide des principales industries où YOLO est utilisé !

Systèmes de surveillance

YOLO est largement utilisé dans la surveillance pour maintenir la sécurité dans des espaces publics tels que les aéroports, les centres commerciaux et les rues des villes. Il identifie rapidement les objets laissés sans surveillance, tels que les sacs potentiellement contenant des matériaux dangereux, et les mouvements inhabituels, alertant les autorités en temps réel. Cela aide à prévenir les crimes et à répondre rapidement aux menaces potentielles, garantissant la sécurité publique.

Contrôle et gestion du trafic

Dans le domaine de la gestion du trafic routier, YOLO peut analyser les schémas de trafic, repérer les infractions routières et détecter les accidents dès qu'ils se produisent. Les autorités utilisent ces données en temps réel pour optimiser les flux de trafic, réduire la congestion et déployer plus rapidement les services d'urgence si nécessaire. Avec YOLO, les villes intelligentes peuvent gérer efficacement leurs routes, potentiellement sauver des vies en réduisant les temps de réponse aux accidents.

Santé

Dans le secteur de la santé, YOLO est utilisé en imagerie médicale pour identifier les anomalies dans les scans et en assistant dans les diagnostics. Bien qu'il ne soit pas aussi précis que les outils de diagnostic spécialisés, il accélère néanmoins l'analyse préliminaire, signalant les zones qui nécessitent un examen plus approfondi par un professionnel de la santé. Cette application de YOLO peut accélérer le dépistage des patients et aider à la détection précoce des maladies.

Automatisation industrielle

Les industries manufacturières et logistiques bénéficient de YOLO car il rationalise les opérations en identifiant les composants sur les chaînes de montage, en suivant l'inventaire en temps réel et en repérant les défauts dans les produits. Une telle pratique entraîne une meilleure maîtrise de la qualité, une efficacité accrue et une réduction des coûts opérationnels en minimisant les erreurs humaines et en augmentant le débit de production.

Vente de détail

Les détaillants utilisent YOLO pour comprendre le comportement des clients et améliorer les agencements de magasins. En analysant comment les individus se déplacent dans un magasin, les entreprises peuvent optimiser les emplacements des étagères, améliorer le service client et gérer plus efficacement les files d'attente. Ces informations aident à construire de meilleures expériences client.

Véhicules autonomes

L'utilisation de YOLO pour développer les IA des véhicules autonomes permet à des voitres de détecter d'autres voitures, piétons et obstacles sur la route, le rendant indispensable pour le processus de prise de décision de conduite.

Questions fréquemment posées

Le NMS est une technique de post-traitement utilisée dans YOLO pour s'assurer que chaque objet détecté est pris en compte une seule fois. Après que YOLO ait prédit plusieurs boîtes de délimitation pour les objets détectés, le NMS examine ces boîtes et supprime les moins probables, en ne gardant que les boîtes de délimitation les plus probables. Cela évite les détections multiples du même objet et améliore la précision de l'algorithme.
L'ensemble de données Pascal VOC est un ensemble de données reconnu en Computer Vision qui fournit des ensembles de données d'images standardisées pour la reconnaissance de classe d'objets. YOLO utilise cet ensemble de données, parmi d'autres comme COCO, pour la formation et les tests afin d'obtenir des améliorations progressives dans la détection d'objets. L'entraînement sur VOC aide le modèle à apprendre à détecter les 20 classes d'objets incluses dans l'ensemble de données et à valider sa précision et son efficacité sur les images d'entraînement.
YOLO peut détecter plus d'une boîte de délimitation par objet ; cependant, il s'appuie sur le NMS pour décider de la plus précise. L'algorithme prédit d'abord plusieurs boîtes, puis, en fonction des probabilités de classe et des scores d'intersection sur l'union (IoU), il sélectionne la meilleure boîte de délimitation tout en écartant les autres.
YOLO est conçu comme un détecteur à tir unique, ce qui signifie qu'il effectue à la fois la classification et la localisation en une seule passe. Il n'est pas entièrement convolutif car il repose sur des couches entièrement connectées à la fin de l'architecture. Un réseau neuronal convolutif, en revanche, n'a pas de couches entièrement connectées et effectue une segmentation, produisant une carte de segmentation. Dans le problème de détection d'objets, YOLO offre un moyen rapide et efficace de détecter les objets par les coordonnées des boîtes de délimitation et les probabilités de classe, tandis que les les CNN sont souvent utilisés pour la segmentation pixel par pixel.
Non, YOLO n'utilise pas de machines à vecteurs de support (SVM) pour la classification des objets. Au lieu de cela, il prédit directement les probabilités de classe pour chaque boîte de délimitation en utilisant des classificateurs softmax ou logistiques dans le cadre du même modèle de Deep Learning, plutôt que de s'appuyer sur des approches traditionnelles de Machine Learning comme les SVMs.

Un dernier mot

En résumé, YOLO est un algorithme de détection d'objets puissant et il y a peu de concurrents qui peuvent rivaliser avec lui pour la conception et mise sur le marché de produits IA performants et relativement peu coûteux à développer. Avec d'excellentes performances de détection d'objets, ses fonctionnalités de détection d'objets en temps réel et ses performances de détection inégalées, YOLO est déjà utilisé dans de très nombruses industries. Nous espérons donc que vous avez apprécié les informations que nous avons fournies dans cet article. Merci d'avoir lu !

Et si vous voulez en savoir plus sur la préparation d'ensemble de données pour entraîner vos modèles YOLO, pourquoi ne pas explorer les services offerts par Innovatiana ? Chez Innovatiana, nous comprenons l'importance d'un ensemble de données bien structuré et dense pour l'efficacité des modèles d'intelligence artificielle. Nous nous spécialisons dans la préparation et le traitement de données de qualité pour maximiser la performance de vos modèles YOLO !