Publication de YOLOv9 : comprendre YOLO, l'algorithme de détection d'objets le plus populaire
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.
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 !
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.
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 :
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.
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.
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 !