Contrôle vert
Lien copié dans le presse-papiers

Mise en pratique avec YOLO-World

Découvre YOLO-World, un modèle innovant de détection d'objets qui permet d'identifier des objets à l'aide d'invites textuelles. Explore le fonctionnement de YOLO-World et ses applications, et mets-toi à l'œuvre avec un exemple de code rapide.

Les projets de vision par ordinateur impliquent souvent de passer beaucoup de temps à annoter des données et à entraîner des modèles de détection d'objets. Mais cela pourrait bientôt appartenir au passé. Le laboratoire d'intelligence artificielle de Tencent a publié YOLO-World, un modèle de détection d'objets en temps réel et à vocabulaire ouvert, le 31 janvier 2024. YOLO-World est un modèle à zéro coup, ce qui signifie que tu peux effectuer des déductions de détection d'objets sur des images sans avoir à l'entraîner.

Les modèles de prise de vue zéro ont le potentiel de changer la façon dont nous abordons les applications de vision par ordinateur. Dans ce blog, nous explorerons le fonctionnement de YOLO-World et ses utilisations potentielles, et nous partagerons un exemple de code pratique pour te permettre de commencer.

Un coup d'œil sur YOLO-World

Tu peux transmettre une image et un texte décrivant les objets que tu cherches au modèle YOLO-World. Par exemple, si tu souhaites trouver "une personne portant une chemise rouge" sur une photo, YOLO-World prend en compte ces informations et se met au travail.

L'architecture unique du modèle combine trois éléments principaux :

  • Un détecteur basé sur le Ultralytics YOLOv8 modèle de détection d'objet, pour analyser le contenu visuel de l'image
  • Un encodeur de texte pré-entraîné par le CLIP d'OpenAI, spécialement conçu pour comprendre ton texte. 
  • Un réseau, le réseau d'agrégation des chemins vision-langage (RepVL-PAN), qui intègre les données d'images traitées avec les données textuelles.

Le détecteur YOLO scanne ton image d'entrée pour identifier les objets potentiels. Le codeur de texte transforme ta description dans un format que le modèle peut comprendre. Ces deux flux d'informations sont ensuite fusionnés par le RepVL-PAN à l'aide d'une fusion multimodale. Cela permet à YOLO-World de détecter et de localiser avec précision les objets décrits dans ton message dans l'image.

Un exemple de résultats de YOLO-World.

Avantages de choisir YOLO-Monde

L'un des plus grands avantages de l'utilisation de YOLO-World est que tu n'as pas besoin d'entraîner le modèle pour une classe spécifique. Il a déjà appris à partir de paires d'images et de textes, il sait donc comment trouver des objets en se basant sur des descriptions. Tu peux ainsi éviter des heures de collecte de données, d'annotation de données, d'entraînement sur des GPU coûteux, etc.

Voici d'autres avantages de l'utilisation de YOLO-World :

  • Performance en temps réel - YOLO-World prend en charge la performance en temps réel tout comme l'architecture originale YOLO . C'est l'idéal pour les applications nécessitant une détection immédiate des objets, comme les véhicules autonomes et les systèmes de surveillance.
  • Segmentation des instances - YOLO-World peut délimiter et séparer proprement des objets dans des images, même si ces objets n'ont pas été spécifiquement enseignés au cours de sa formation.
  • Efficacité - YOLO-World allie une grande précision à une grande efficacité de calcul, ce qui le rend pratique pour les applications du monde réel. Son architecture rationalisée permet une détection rapide des objets sans solliciter excessivement la puissance de traitement

Les applications de YOLO-Monde

YOLO-Les modèles du monde peuvent être utilisés pour une grande variété d'applications. Explorons-en quelques-unes.

Contrôle de la qualité dans la fabrication

Les produits fabriqués sur une chaîne de montage sont contrôlés visuellement pour détecter les défauts avant de les emballer. La détection des défauts se fait souvent à la main, ce qui prend du temps et peut entraîner des erreurs. Ces erreurs peuvent entraîner des problèmes tels que des coûts élevés et la nécessité de procéder à des réparations ou à des rappels. Pour y remédier, des caméras spéciales de vision industrielle et des systèmes d'intelligence artificielle ont été créés pour effectuer ces contrôles. 

YOLO-Les modèles du monde entier représentent un grand progrès dans ce domaine. Ils peuvent trouver des défauts dans les produits même s'ils n'ont pas été formés à ce problème spécifique en utilisant leurs capacités de tir à zéro. Par exemple, une usine qui fabrique des bouteilles d'eau peut facilement identifier une bouteille correctement fermée par un bouchon par rapport à une bouteille dont le bouchon a été oublié ou défectueux grâce à YOLO-World.

Un exemple d'inspection de bouchon de bouteille.

Robotique

YOLO-Les modèles du monde permettent aux robots d'interagir avec des environnements inconnus. Sans être formés sur les objets spécifiques qui peuvent se trouver dans une pièce, ils peuvent tout de même identifier les objets présents. Imaginons qu'un robot entre dans une pièce où il n'a jamais mis les pieds auparavant. Avec un modèle YOLO-World, il peut reconnaître et identifier des objets tels que des chaises, des tables ou des lampes, même s'il n'a pas été spécifiquement formé à ces objets.

En plus de la détection d'objets, YOLO-World peut également déterminer l'état de ces objets, grâce à sa fonction "prompt-then-detect". Par exemple, dans le domaine de la robotique agricole , il peut être utilisé pour identifier les fruits mûrs par rapport aux fruits non mûrs en programmant le robot pour qu'il les détecte.

L'IA dans l'industrie automobile

L'industrie automobile comporte de nombreuses pièces mobiles, et YOLO-World peut être utilisé pour différentes applications automobiles. Par exemple, en ce qui concerne l'entretien des voitures, la capacité de YOLO-World à reconnaître une grande variété d'objets sans étiquetage manuel ni formation préalable approfondie est extrêmement utile. YOLO-World peut être utilisé pour identifier les pièces de voiture qui doivent être remplacées. Il pourrait même automatiser des tâches telles que les contrôles de qualité, en repérant les défauts ou les pièces manquantes dans les voitures neuves.

Une autre application est la détection d'objets en plan zéro dans les voitures autopilotées. YOLO-Les capacités de détection en plan zéro de -World peuvent améliorer la capacité d'un véhicule autonome à détecter et à classer les objets sur la route, tels que les piétons, les panneaux de signalisation et les autres véhicules, en temps réel. Ce faisant, il peut aider à détecter les obstacles et à prévenir les accidents pour un trajet plus sûr. 

Un exemple de détection d'objets sur une route.

Gestion des stocks pour les magasins de détail

L'identification des objets sur les étagères des magasins de détail est un élément important du suivi de l'inventaire, de la gestion des stocks et de l'automatisation des processus. Ultralytics YOLO-La capacité de -World à reconnaître une grande variété d'objets sans étiquetage manuel ni formation préalable poussée est extrêmement utile pour la gestion des stocks. 

Par exemple, dans le cadre de la gestion des stocks, YOLO-World peut rapidement repérer et classer les articles sur une étagère, comme les différentes marques de boissons énergisantes. Les magasins de détail peuvent tenir un inventaire précis, gérer efficacement les niveaux de stock et faciliter les opérations de la chaîne d'approvisionnement. 

Toutes les applications sont uniques et montrent à quel point YOLO-World peut être utilisé. Ensuite, nous allons mettre la main à la pâte avec YOLO-World et examiner un exemple de codage.

Une promenade dans le code

Comme nous l'avons déjà mentionné, YOLO-World peut être utilisé pour détecter les différentes parties d'une voiture à entretenir. Une application de vision par ordinateur qui détecte les réparations nécessaires impliquerait de prendre une photo de la voiture, d'identifier les pièces de la voiture, d'examiner chaque partie de la voiture pour voir si elle est endommagée et de recommander des réparations. Chaque partie de ce système utilise différentes techniques et approches d'intelligence artificielle. Pour les besoins de ce code, concentrons-nous sur la partie où les pièces de la voiture sont détectées.

Avec YOLO-World, tu peux identifier les différentes pièces d'une voiture sur une image en moins de 5 minutes. Tu peux aussi étendre ce code pour tester différentes applications à l'aide de YOLO-World ! Pour commencer, nous devons installer le paquetageUltralytics comme indiqué ci-dessous.

# Install ultralytics package
pip install ultralytics

Pour plus d'instructions et de bonnes pratiques concernant le processus d'installation, consulte notre guide d'installationUltralytics . Pendant l'installation des paquets requis pour YOLOv8, si tu rencontres des difficultés, jette un coup d'œil à notre guide des problèmes courants pour trouver des solutions et des conseils.

Une fois que tu as installé le paquetage nécessaire, nous pouvons télécharger une image sur Internet pour exécuter nos inférences. Nous allons utiliser l'image ci-dessous.

Notre image d'entrée.

Ensuite, nous allons importer le paquetage nécessaire, initialiser notre modèle et définir les classes que nous recherchons dans notre image d'entrée. Ici, nous nous intéressons aux classes suivantes : voiture, roue, porte de voiture, rétroviseur de voiture et plaque d'immatriculation.

# Import YOLOWorld class from ultralytics module
from ultralytics import YOLOWorld

# Initialize the model with pre-trained weights
model = YOLOWorld('yolov8s-world')

# Set the classes you'd like to find in your image
model.set_classes(["car", "wheel", "car door", "car mirror", "license plate"])

Nous utiliserons ensuite la méthode de prédiction, en fournissant le chemin de l'image ainsi que les paramètres pour le nombre maximum de détections et les seuils pour l'intersection sur l'union (IoU) et la confiance (conf) afin d'effectuer une inférence sur l'image. Enfin, les objets détectés sont enregistrés dans un fichier nommé "result.jpg".

# Run object detection for your custom classes on your image
results = model.predict('path_to_your_image.jpg', max_det=100, iou=0.01, conf=0.01)

# Save the results
results[0].save(filename='result.jpg')

L'image de sortie suivante sera enregistrée dans tes fichiers.

Notre image de sortie.

Si tu préfères voir ce que YOLO-World peut faire sans codage, tu peux aller sur la page de démonstration deYOLO -World, télécharger une image d'entrée et entrer les classes personnalisées. 

Lis notre page de documentation sur YOLO -World pour savoir comment sauvegarder le modèle avec les classes personnalisées afin de pouvoir l'utiliser directement plus tard sans avoir à entrer les classes personnalisées à plusieurs reprises.

As-tu remarqué que les portes de la voiture n'ont pas été détectées ?

Si tu jettes à nouveau un coup d'œil à l'image de sortie, tu remarqueras que la classe personnalisée "porte de voiture" n'a pas été détectée. Malgré ses grandes réalisations, YOLO-World a certaines limites. Pour combattre ces limites et utiliser efficacement le modèle YOLO-World, il est important d'utiliser les bons types d'invites textuelles. 

Voici quelques informations à ce sujet :

  • YOLO-Le monde peut ne pas avoir besoin de niveaux de confiance élevés pour obtenir des prédictions précises, c'est pourquoi la réduction des seuils de confiance peut améliorer les taux de détection.
  • Ajoute les classes qui ne t'intéressent pas. Cela permettra d'améliorer la détection des objets primaires en réduisant les faux positifs pour les objets secondaires.
  • Détecter d'abord les gros objets avant de se concentrer sur les petits détails peut améliorer la précision de la détection.
  • Mentionne les couleurs dans tes cours pour détecter les objets en fonction des indices de couleur.
  • La description de la taille des objets dans les messages-guides peut également aider YOLO-World à identifier des objets spécifiques avec plus de précision.
  • Les méthodes de post-traitement, telles que le filtrage des prédictions par taille ou l'ajustement des niveaux de confiance par classe, peuvent encore améliorer les résultats de la détection d'objets.

Les limites sont infinies

Dans l'ensemble, les modèles YOLO-World peuvent être transformés en un outil puissant grâce à leurs capacités avancées de détection d'objets. Ils offrent une grande efficacité et une grande précision et permettent d'automatiser différentes tâches dans diverses applications, comme l'exemple de l'identification des pièces de voiture dont nous avons pratiquement discuté.

N'hésite pas à explorer notre dépôt GitHub pour en savoir plus sur nos contributions à la vision par ordinateur et à l'IA. Si tu es curieux de savoir comment l'IA remodèle des secteurs comme les technologies de la santé , consulte nos pages sur les solutions. Les possibilités offertes par des innovations comme YOLO-World semblent infinies !

Logo FacebookLogo de TwitterLogo LinkedInSymbole du lien de copie

Lire la suite dans cette catégorie

Construisons ensemble le futur
de l'IA !

Commence ton voyage avec le futur de l'apprentissage automatique.