Skip to content

Comprendre les étapes clés d'un projet de vision par ordinateur

Introduction

La vision par ordinateur est un sous-domaine de l'intelligence artificielle (IA) qui aide les ordinateurs à voir et à comprendre le monde comme le font les humains. Elle traite et analyse des images ou des vidéos pour en extraire des informations, reconnaître des modèles et prendre des décisions en fonction de ces données.

Les techniques de vision par ordinateur telles que la détection d'objets, la classification d'images et la segmentation d'instances peuvent être appliquées dans divers secteurs, de la conduite autonome à l'imagerie médicale, afin d'obtenir des informations précieuses.

Aperçu des techniques de vision par ordinateur

Working on your own computer vision projects is a great way to understand and learn more about computer vision. However, a computer vision project can consist of many steps, and it might seem confusing at first. By the end of this guide, you'll be familiar with the steps involved in a computer vision project. We'll walk through everything from the beginning to the end of a project, explaining why each part is important. Let's get started and make your computer vision project a success!

Aperçu d'un projet de vision par ordinateur

Before discussing the details of each step involved in a computer vision project, let's look at the overall process. If you started a computer vision project today, you'd take the following steps:

  • Your first priority would be to understand your project's requirements.
  • Then, you'd collect and accurately label the images that will help train your model.
  • Next, you'd clean your data and apply augmentation techniques to prepare it for model training.
  • After model training, you'd thoroughly test and evaluate your model to make sure it performs consistently under different conditions.
  • Finally, you'd deploy your model into the real world and update it based on new insights and feedback.

Vue d'ensemble des Ă©tapes du projet Vision par ordinateur

Maintenant que nous savons Ă  quoi nous attendre, plongeons dans les Ă©tapes et faisons avancer ton projet.

Step 1: Defining Your Project's Goals

The first step in any computer vision project is clearly defining the problem you're trying to solve. Knowing the end goal helps you start to build a solution. This is especially true when it comes to computer vision because your project's objective will directly affect which computer vision task you need to focus on.

Voici quelques exemples d'objectifs de projets et de tâches de vision par ordinateur qui peuvent être utilisées pour atteindre ces objectifs :

  • Objectif : DĂ©velopper un système capable de surveiller et de gĂ©rer le flux de diffĂ©rents types de vĂ©hicules sur les autoroutes, afin d'amĂ©liorer la gestion du trafic et la sĂ©curitĂ©.

    • Tâche de vision par ordinateur : La dĂ©tection d'objets est idĂ©ale pour la surveillance du trafic car elle permet de localiser et d'identifier efficacement plusieurs vĂ©hicules. Elle est moins exigeante en termes de calcul que la segmentation d'image, qui fournit des dĂ©tails inutiles pour cette tâche, ce qui garantit une analyse plus rapide et en temps rĂ©el.
  • Objectif : DĂ©velopper un outil qui aide les radiologues en fournissant des contours prĂ©cis, au niveau des pixels, des tumeurs dans les scans d'imagerie mĂ©dicale.

    • Tâche de vision par ordinateur : La segmentation d'image est adaptĂ©e Ă  l'imagerie mĂ©dicale car elle fournit des limites prĂ©cises et dĂ©taillĂ©es des tumeurs qui sont cruciales pour Ă©valuer la taille, la forme et la planification du traitement.
  • Objectif : CrĂ©er un système numĂ©rique qui catĂ©gorise divers documents (par exemple, factures, reçus, documents juridiques) afin d'amĂ©liorer l'efficacitĂ© de l'organisation et la recherche de documents.

    • Tâche de vision par ordinateur : La classification d'images est idĂ©ale ici car elle traite un document Ă  la fois, sans qu'il soit nĂ©cessaire de prendre en compte la position du document dans l'image. Cette approche simplifie et accĂ©lère le processus de tri.

Étape 1.5 : Choisir le bon modèle et la bonne méthode de formation

Après avoir compris l'objectif du projet et les tâches de vision par ordinateur appropriées, une partie essentielle de la définition de l'objectif du projet consiste à sélectionner le bon modèle et la bonne approche de formation.

En fonction de l'objectif, tu peux choisir de sélectionner le modèle en premier ou après avoir vu les données que tu es en mesure de collecter à l'étape 2. Par exemple, supposons que ton projet dépende fortement de la disponibilité de certains types de données. Dans ce cas, il peut être plus pratique de recueillir et d'analyser d'abord les données avant de sélectionner un modèle. D'un autre côté, si tu comprends bien les exigences du modèle, tu peux choisir le modèle d'abord, puis collecter les données qui correspondent à ces spécifications.

Choosing between training from scratch or using transfer learning affects how you prepare your data. Training from scratch requires a diverse dataset to build the model's understanding from the ground up. Transfer learning, on the other hand, allows you to use a pre-trained model and adapt it with a smaller, more specific dataset. Also, choosing a specific model to train will determine how you need to prepare your data, such as resizing images or adding annotations, according to the model's specific requirements.

Formation à partir de zéro ou utilisation de l'apprentissage par transfert

Note: When choosing a model, consider its deployment to ensure compatibility and performance. For example, lightweight models are ideal for edge computing due to their efficiency on resource-constrained devices. To learn more about the key points related to defining your project, read our guide on defining your project's goals and selecting the right model.

Avant de se lancer dans les travaux pratiques d'un projet de vision par ordinateur, il est important de bien comprendre ces détails. Vérifie que tu as bien pris en compte les points suivants avant de passer à l'étape 2 :

  • Clearly define the problem you're trying to solve.
  • DĂ©termine l'objectif final de ton projet.
  • Identifie la tâche spĂ©cifique de vision par ordinateur nĂ©cessaire (par exemple, la dĂ©tection d'objets, la classification d'images, la segmentation d'images).
  • DĂ©cide de former un modèle Ă  partir de zĂ©ro ou d'utiliser l'apprentissage par transfert.
  • Choisis le modèle appropriĂ© Ă  ta tâche et Ă  tes besoins de dĂ©ploiement.

Étape 2 : Collecte et annotation des données

La qualité de tes modèles de vision par ordinateur dépend de la qualité de ton ensemble de données. Tu peux soit collecter des images sur Internet, soit prendre tes propres photos, soit utiliser des ensembles de données préexistants. Voici quelques ressources intéressantes pour télécharger des ensembles de données de haute qualité : Google Dataset Search Engine, UC Irvine Machine Learning Repository, et Kaggle Datasets.

Certaines bibliothèques, comme Ultralytics, offrent une prise en charge intégrée de divers ensembles de données, ce qui facilite le démarrage avec des données de haute qualité. Ces bibliothèques comprennent souvent des utilitaires permettant d'utiliser des ensembles de données populaires de façon transparente, ce qui peut te faire gagner beaucoup de temps et d'efforts dans les premières étapes de ton projet.

However, if you choose to collect images or take your own pictures, you'll need to annotate your data. Data annotation is the process of labeling your data to impart knowledge to your model. The type of data annotation you'll work with depends on your specific computer vision technique. Here are some examples:

  • Image Classification: You'll label the entire image as a single class.
  • Object Detection: You'll draw bounding boxes around each object in the image and label each box.
  • Image Segmentation: You'll label each pixel in the image according to the object it belongs to, creating detailed object boundaries.

Différents types d'annotation d'images

Data collection and annotation can be a time-consuming manual effort. Annotation tools can help make this process easier. Here are some useful open annotation tools: LabeI Studio, CVAT, and Labelme.

Étape 3 : Augmentation des données et division de ton ensemble de données

Après avoir collecté et annoté tes données d'images, il est important de diviser ton ensemble de données en ensembles de formation, de validation et de test avant de procéder à l'augmentation des données. Il est essentiel de diviser ton ensemble de données avant de procéder à l'augmentation pour tester et valider ton modèle sur des données originales et non modifiées. Cela permet d'évaluer avec précision la capacité de généralisation du modèle à de nouvelles données inédites.

Voici comment diviser tes données :

  • Ensemble de formation : Il s'agit de la plus grande partie de tes donnĂ©es, gĂ©nĂ©ralement 70 Ă  80 % du total, utilisĂ©e pour former ton modèle.
  • Ensemble de validation : GĂ©nĂ©ralement, environ 10 Ă  15 % de tes donnĂ©es ; cet ensemble est utilisĂ© pour rĂ©gler les hyperparamètres et valider le modèle pendant l'entraĂ®nement, ce qui permet d'Ă©viter le surajustement.
  • Ensemble de test : Les 10 Ă  15 % restants de tes donnĂ©es sont mis de cĂ´tĂ© en tant qu'ensemble de test. Il sert Ă  Ă©valuer les performances du modèle sur des donnĂ©es inĂ©dites une fois la formation terminĂ©e.

Après avoir divisé tes données, tu peux procéder à l'augmentation des données en appliquant des transformations telles que la rotation, la mise à l'échelle et le retournement des images pour augmenter artificiellement la taille de ton ensemble de données. L'augmentation des données rend ton modèle plus robuste aux variations et améliore ses performances sur des images inédites.

Exemples d'augmentations de données

Des bibliothèques comme OpenCV, Albumentations et TensorFlow offrent des fonctions d'augmentation flexibles que tu peux utiliser. En outre, certaines bibliothèques, telles que Ultralytics, intègrent des paramètres d'augmentation directement dans la fonction d'apprentissage du modèle, ce qui simplifie le processus.

Pour mieux comprendre tes données, tu peux utiliser des outils comme Matplotlib ou Seaborn pour visualiser les images et analyser leur distribution et leurs caractéristiques. La visualisation de tes données permet d'identifier les schémas, les anomalies et l'efficacité de tes techniques d'augmentation. Tu peux aussi utiliser Ultralytics Explorer, un outil qui permet d'explorer les ensembles de données de vision par ordinateur à l'aide de la recherche sémantique, des requêtes SQL et de la recherche de similarités vectorielles.

L'outil d'exploration Ultralytics

By properly understanding, splitting, and augmenting your data, you can develop a well-trained, validated, and tested model that performs well in real-world applications.

Étape 4 : Formation au modèle

Une fois que ton jeu de données est prêt pour la formation, tu peux te concentrer sur la mise en place de l'environnement nécessaire, la gestion de tes jeux de données et la formation de ton modèle.

First, you'll need to make sure your environment is configured correctly. Typically, this includes the following:

  • Installer les bibliothèques et les cadres essentiels comme TensorFlow, PyTorch, ou Ultralytics.
  • Si tu utilises un GPU, l'installation de bibliothèques telles que CUDA et cuDNN permettra d'activer l'accĂ©lĂ©ration du GPU et d'accĂ©lĂ©rer le processus de formation.

Ensuite, tu peux charger tes ensembles de données d'entraînement et de validation dans ton environnement. Normalise et prétraite les données en les redimensionnant, en convertissant leur format ou en les augmentant. Une fois le modèle sélectionné, configure les couches et spécifie les hyperparamètres. Compile le modèle en définissant la fonction de perte, l'optimiseur et les mesures de performance.

Les bibliothèques comme Ultralytics simplifient le processus de formation. Tu peux commencer la formation en introduisant des données dans le modèle avec un minimum de code. Ces bibliothèques gèrent automatiquement les ajustements de poids, la rétropropagation et la validation. Elles proposent également des outils permettant de suivre les progrès et d'ajuster facilement les hyperparamètres. Après l'entraînement, enregistre le modèle et ses poids en quelques commandes.

Il est important de garder à l'esprit qu'une bonne gestion des ensembles de données est vitale pour une formation efficace. Utilise le contrôle de version pour les ensembles de données afin de suivre les modifications et d'assurer la reproductibilité. Des outils tels que DVC (Data Version Control) peuvent aider à gérer de grands ensembles de données.

Étape 5 : Évaluation et perfectionnement du modèle

It's important to assess your model's performance using various metrics and refine it to improve accuracy. Evaluating helps identify areas where the model excels and where it may need improvement. Fine-tuning ensures the model is optimized for the best possible performance.

  • Performance Metrics: Use metrics like accuracy, precision, recall, and F1-score to evaluate your model's performance. These metrics provide insights into how well your model is making predictions.
  • RĂ©glage des hyperparamètres : Ajuste les hyperparamètres pour optimiser les performances du modèle. Des techniques telles que la recherche en grille ou la recherche alĂ©atoire peuvent aider Ă  trouver les meilleures valeurs d'hyperparamètres.

  • Mise au point : Effectue de petits ajustements Ă  l'architecture du modèle ou au processus de formation pour amĂ©liorer les performances. Il peut s'agir de modifier les taux d'apprentissage, la taille des lots ou d'autres paramètres du modèle.

Étape 6 : Test du modèle

Au cours de cette étape, tu peux t'assurer que ton modèle fonctionne bien sur des données totalement inédites, confirmant ainsi qu'il est prêt à être déployé. La différence entre le test de modèle et l'évaluation de modèle est qu'il se concentre sur la vérification des performances du modèle final plutôt que sur son amélioration itérative.

Il est important de faire des tests approfondis et de déboguer tous les problèmes courants qui peuvent survenir. Teste ton modèle sur un ensemble de données de test distinct qui n'a pas été utilisé pendant la formation ou la validation. Cet ensemble de données doit représenter des scénarios du monde réel pour s'assurer que les performances du modèle sont cohérentes et fiables.

Aborde également les problèmes courants tels que l'ajustement excessif, l'ajustement insuffisant et les fuites de données. Utilise des techniques comme la validation croisée et la détection des anomalies pour identifier et résoudre ces problèmes.

Étape 7 : Déploiement du modèle

Une fois que ton modèle a été soigneusement testé, il est temps de le déployer. Le déploiement consiste à rendre ton modèle disponible pour une utilisation dans un environnement de production. Voici les étapes du déploiement d'un modèle de vision par ordinateur :

  • Mise en place de l'environnement : Configure l'infrastructure nĂ©cessaire Ă  l'option de dĂ©ploiement que tu as choisie, qu'elle soit basĂ©e sur le cloud (AWS, Google Cloud, Azure) ou sur la pĂ©riphĂ©rie (appareils locaux, IoT).

  • Exporter le modèle: Exporte ton modèle au format appropriĂ© (par exemple, ONNX, TensorRT, CoreML pour YOLOv8) pour assurer la compatibilitĂ© avec ta plateforme de dĂ©ploiement.

  • DĂ©ployer le modèle : DĂ©ploie le modèle en mettant en place des API ou des points d'extrĂ©mitĂ© et en l'intĂ©grant Ă  ton application.
  • Assurer l'Ă©volutivitĂ©: Mets en place des Ă©quilibreurs de charge, des groupes de mise Ă  l'Ă©chelle automatique et des outils de surveillance pour gĂ©rer les ressources et faire face Ă  l'augmentation des donnĂ©es et des demandes des utilisateurs.

Étape 8 : Surveillance, entretien et documentation

Once your model is deployed, it's important to continuously monitor its performance, maintain it to handle any issues, and document the entire process for future reference and improvements.

Les outils de surveillance peuvent t'aider à suivre les indicateurs clés de performance (ICP) et à détecter les anomalies ou les baisses de précision. En surveillant le modèle, tu peux être conscient de la dérive du modèle, où les performances du modèle diminuent au fil du temps en raison des changements dans les données d'entrée. Entraîne périodiquement le modèle avec des données mises à jour pour maintenir sa précision et sa pertinence.

Surveillance du modèle

En plus de la surveillance et de la maintenance, la documentation est également essentielle. Documente minutieusement l'ensemble du processus, y compris l'architecture du modèle, les procédures d'entraînement, les hyperparamètres, les étapes de prétraitement des données et toutes les modifications apportées au cours du déploiement et de la maintenance. Une bonne documentation garantit la reproductibilité et facilite les mises à jour futures ou le dépannage. En surveillant, en entretenant et en documentant efficacement ton modèle, tu peux t'assurer qu'il reste précis, fiable et facile à gérer tout au long de son cycle de vie.

FAQs

Voici quelques questions courantes qui peuvent se poser lors d'un projet de vision par ordinateur :

  • Q1 : Comment les Ă©tapes changent-elles si j'ai dĂ©jĂ  un jeu de donnĂ©es ou des donnĂ©es lorsque je dĂ©marre un projet de vision par ordinateur ?

    • A1: Starting with a pre-existing dataset or data affects the initial steps of your project. In Step 1, along with deciding the computer vision task and model, you'll also need to explore your dataset thoroughly. Understanding its quality, variety, and limitations will guide your choice of model and training approach. Your approach should align closely with the data's characteristics for more effective outcomes. Depending on your data or dataset, you may be able to skip Step 2 as well.
  • Q2: I'm not sure what computer vision project to start my AI learning journey with.

  • Q3: I don't want to train a model. I just want to try running a model on an image. How can I do that?

    • A3 : Tu peux utiliser un modèle prĂ©-entraĂ®nĂ© pour faire des prĂ©dictions sur une image sans avoir Ă  entraĂ®ner un nouveau modèle. Consulte la pageYOLOv8 predict docs pour savoir comment utiliser un modèle YOLOv8 prĂ©-entraĂ®nĂ© pour faire des prĂ©dictions sur tes images.
  • Q4 : OĂą puis-je trouver des articles plus dĂ©taillĂ©s et des mises Ă  jour sur les applications de vision par ordinateur et YOLOv8?

    • A4 : Pour des articles plus dĂ©taillĂ©s, des mises Ă  jour et des idĂ©es sur les applications de vision par ordinateur et YOLOv8, visite la page du blogUltralytics . Le blog couvre un large Ă©ventail de sujets et fournit des informations prĂ©cieuses pour t'aider Ă  rester Ă  jour et Ă  amĂ©liorer tes projets.

S'engager auprès de la communauté

Se connecter à une communauté de passionnés de vision par ordinateur peut t'aider à aborder en toute confiance les problèmes auxquels tu es confronté lorsque tu travailles sur ton projet de vision par ordinateur. Voici quelques moyens d'apprendre, de dépanner et de travailler en réseau de manière efficace.

Ressources communautaires

Documentation officielle

  • Ultralytics YOLOv8 Documentation : Explore la documentation officielle de YOLOv8 pour trouver des guides dĂ©taillĂ©s avec des conseils utiles sur diffĂ©rentes tâches et projets de vision par ordinateur.

L'utilisation de ces ressources t'aidera à surmonter les défis et à rester au courant des dernières tendances et des meilleures pratiques dans la communauté de la vision par ordinateur.

Lance ton projet de vision par ordinateur dès aujourd'hui !

Se lancer dans un projet de vision par ordinateur peut être passionnant et gratifiant. En suivant les étapes de ce guide, tu peux construire une base solide pour réussir. Chaque étape est cruciale pour développer une solution qui répond à tes objectifs et fonctionne bien dans les scénarios du monde réel. Au fur et à mesure que tu gagneras en expérience, tu découvriras des techniques et des outils avancés pour améliorer tes projets. Reste curieux, continue d'apprendre et explore de nouvelles méthodes et innovations !



Created 2024-05-29, Updated 2024-06-10
Authors: glenn-jocher (4), abirami-vina (2)

Commentaires