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 extraire des informations, reconnaître des modèles et prendre des décisions basées sur ces données.



Watch: How to Do Computer Vision Projects | A Step-by-Step Guide

Des techniques de vision par ordinateur comme 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, pour obtenir des informations précieuses.

Travailler sur tes propres projets de vision par ordinateur est un excellent moyen de comprendre et d'en apprendre davantage sur ce domaine. Cependant, un projet de vision par ordinateur peut comporter de nombreuses étapes et sembler confus au début. À la fin de ce guide, tu connaîtras bien les étapes impliquées dans un projet de vision par ordinateur. Nous parcourrons tout, du début à la fin d'un projet, en expliquant pourquoi chaque partie est importante.

Un aperçu d'un projet de vision par ordinateur

Avant de discuter des détails de chaque étape impliquée dans un projet de vision par ordinateur, regardons le processus global. Si tu démarrais un projet de vision par ordinateur aujourd'hui, tu suivrais les étapes suivantes :

  • Ta première priorité serait de comprendre les exigences de ton projet.
  • Ensuite, tu collecterais et étiqueterais avec précision les images qui aideront à entraîner ton modèle.
  • Puis, tu nettoierais tes données et appliquerais des techniques d'augmentation pour les préparer à l'entraînement du modèle.
  • Après l'entraînement du modèle, tu testerais et évaluerais minutieusement ton modèle pour t'assurer qu'il fonctionne de manière cohérente dans différentes conditions.
  • Enfin, tu déploierais ton modèle dans le monde réel et le mettrais à jour en fonction des nouvelles perspectives et des retours.

Computer Vision Project Steps Overview

Maintenant que nous savons à quoi nous attendre, plongeons directement dans les étapes et faisons avancer ton projet.

Étape 1 : Définir les objectifs de ton projet

La première étape de tout projet de vision par ordinateur consiste à définir clairement le problème que tu essaies de résoudre. Connaître l'objectif final t'aide à commencer à construire une solution. C'est particulièrement vrai en vision par ordinateur, car l'objectif de ton projet affectera directement la tâche de vision par ordinateur sur laquelle tu dois te concentrer.

Voici quelques exemples d'objectifs de projet et les 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, améliorant ainsi 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 localise et identifie efficacement plusieurs véhicules. Elle est moins exigeante en termes de calcul que la segmentation d'images, qui fournit des détails inutiles pour cette tâche, garantissant une analyse plus rapide en temps réel.
  • Objectif : Développer un outil qui aide les radiologues en fournissant des contours précis, au niveau du pixel, des tumeurs dans les scans d'imagerie médicale.

    • Tâche de vision par ordinateur : La segmentation d'images est adaptée à l'imagerie médicale car elle fournit des limites précises et détaillées des tumeurs, cruciales pour évaluer la taille, la forme et planifier le traitement.
  • Objectif : Créer un système numérique qui catégorise divers documents (par ex. factures, reçus, documents juridiques) pour améliorer l'efficacité organisationnelle et la récupération des documents.

    • Tâche de vision par ordinateur : La classification d'images est idéale ici car elle traite un document à la fois, sans avoir besoin 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 : Sélectionner le bon modèle et l'approche d'entraînement

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 est de sélectionner le bon modèle et la bonne approche d'entraînement.

Selon l'objectif, tu pourrais choisir de sélectionner le modèle en premier ou après avoir vu quelles données tu es capable de collecter à l'étape 2. Par exemple, suppose que ton projet dépend fortement de la disponibilité de types de données spécifiques. Dans ce cas, il peut être plus pratique de rassembler et d'analyser les données d'abord avant de sélectionner un modèle. D'un autre côté, si tu as une compréhension claire des exigences du modèle, tu peux choisir le modèle en premier, puis collecter les données qui correspondent à ces spécifications.

Choisir entre l'entraînement à partir de zéro ou l'utilisation du transfer learning affecte la façon dont tu prépares tes données. L'entraînement à partir de zéro nécessite un ensemble de données diversifié pour construire la compréhension du modèle à partir de la base. Le transfer learning, en revanche, te permet d'utiliser un modèle pré-entraîné et de l'adapter avec un ensemble de données plus petit et plus spécifique. De plus, choisir un modèle spécifique à entraîner déterminera comment tu dois préparer tes données, comme redimensionner les images ou ajouter des annotations, selon les exigences spécifiques du modèle.

Training From Scratch Vs. Using Transfer Learning

Note : Lorsque tu choisis un modèle, considère son déploiement pour garantir la compatibilité et les performances. Par exemple, les modèles légers sont idéaux pour l'edge computing en raison de leur efficacité sur les appareils aux ressources limitées. Pour en savoir plus sur les points clés liés à la définition de ton projet, lis notre guide sur la définition des objectifs de ton projet et la sélection du bon modèle.

Avant de passer au travail pratique d'un projet de vision par ordinateur, il est important d'avoir une compréhension claire de ces détails. Vérifie deux fois que tu as pris en compte les points suivants avant de passer à l'étape 2 :

  • Définis clairement le problème que tu essaies de résoudre.
  • Détermine l'objectif final de ton projet.
  • Identifie la tâche spécifique de vision par ordinateur nécessaire (par ex. détection d'objets, classification d'images, segmentation d'images).
  • Décide si tu dois entraîner un modèle à partir de zéro ou utiliser le transfer learning.
  • Sélectionne le modèle approprié pour ta tâche et tes besoins de déploiement.

Étape 2 : Collecte de données et annotation de 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, prendre tes propres photos, ou utiliser des ensembles de données préexistants. Voici d'excellentes ressources 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 un support intégré pour divers ensembles de données, facilitant ainsi le démarrage avec des données de haute qualité. Ces bibliothèques incluent souvent des utilitaires pour utiliser des ensembles de données populaires de manière transparente, ce qui peut te faire gagner beaucoup de temps et d'efforts lors des étapes initiales de ton projet.

Cependant, si tu choisis de collecter des images ou de prendre tes propres photos, tu devras annoter tes données. L'annotation de données est le processus d'étiquetage de tes données pour transmettre des connaissances à ton modèle. Le type d'annotation de données avec lequel tu travailleras dépend de ta technique de vision par ordinateur spécifique. Voici quelques exemples :

  • Classification d'images : Tu étiquetteras l'image entière comme une seule classe.
  • Détection d'objets : Tu dessineras des boîtes englobantes autour de chaque objet dans l'image et étiquetteras chaque boîte.
  • Segmentation d'images : Tu étiquetteras chaque pixel dans l'image selon l'objet auquel il appartient, en créant des contours d'objets détaillés.

Bounding box, polygon, and keypoint annotations

La collecte et l'annotation de données peuvent être un effort manuel chronophage. Les outils d'annotation peuvent aider à rendre ce processus plus facile. Voici quelques outils d'annotation ouverts utiles : Label Studio, CVAT, et Labelme.

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

Après avoir collecté et annoté tes données d'image, il est important de d'abord diviser ton ensemble de données en ensembles d'entraînement, de validation et de test avant d'effectuer une augmentation de données. Diviser ton ensemble de données avant l'augmentation est crucial pour tester et valider ton modèle sur des données originales et non altérées. Cela aide à évaluer avec précision la manière dont le modèle se généralise à de nouvelles données non vues.

Voici comment diviser tes données :

  • Ensemble d'entraînement : C'est la plus grande partie de tes données, généralement 70-80% du total, utilisée pour entraîner ton modèle.
  • Ensemble de validation : Généralement environ 10-15% de tes données ; cet ensemble est utilisé pour ajuster les hyperparamètres et valider le modèle pendant l'entraînement, aidant à prévenir le surapprentissage.
  • Ensemble de test : Les 10-15% restants de tes données sont mis de côté en tant qu'ensemble de test. Il est utilisé pour évaluer les performances du modèle sur des données non vues une fois l'entraînement terminé.

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

Data augmentation examples

Des bibliothèques comme OpenCV, Albumentations, et TensorFlow offrent des fonctions d'augmentation flexibles que tu peux utiliser. De plus, certaines bibliothèques, telles qu'Ultralytics, ont des paramètres d'augmentation intégrés directement au sein de leur fonction d'entraînement de modèle, simplifiant le processus.

To understand your data better, you can use tools like Matplotlib or Seaborn to visualize the images and analyze their distribution and characteristics. Visualizing your data helps identify patterns, anomalies, and the effectiveness of your augmentation techniques. The Ultralytics Platform Charts tab can surface many of these insights without any code by automatically generating split distribution, class counts, image-dimension histograms, and annotation-position heatmaps for every uploaded dataset.

En comprenant, divisant et augmentant correctement tes données, tu peux développer un modèle bien entraîné, validé et testé qui fonctionne bien dans des applications réelles.

Étape 4 : Entraînement du modèle

Une fois que ton ensemble de données est prêt pour l'entraînement, tu peux te concentrer sur la configuration de l'environnement nécessaire, la gestion de tes ensembles de données et l'entraînement de ton modèle.

D'abord, tu devras t'assurer que ton environnement est configuré correctement. Généralement, cela inclut ce qui suit :

  • L'installation de bibliothèques et frameworks essentiels comme TensorFlow, PyTorch, ou Ultralytics.
  • Si tu utilises un GPU, l'installation de bibliothèques comme CUDA et cuDNN aidera à activer l'accélération GPU et à accélérer le processus d'entraînement.

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 par redimensionnement, conversion de format ou augmentation. Avec ton 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 métriques de performance.

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

Il est important de garder à l'esprit qu'une gestion appropriée des ensembles de données est vitale pour un entraînement efficace. Utilise le contrôle de version pour les ensembles de données afin de suivre les modifications et garantir la reproductibilité. Des outils comme DVC (Data Version Control) peuvent aider à gérer de grands ensembles de données.

Étape 5 : Évaluation du modèle et réglage fin du modèle

Il est important d'évaluer les performances de ton modèle en utilisant diverses métriques et de le raffiner pour améliorer la précision. L'évaluation aide à identifier les domaines où le modèle excelle et où il pourrait avoir besoin d'amélioration. Le réglage fin garantit que le modèle est optimisé pour les meilleures performances possibles.

  • Métriques de performance : Utilise des métriques comme la précision, la précision (precision), le rappel (recall) et le score F1 pour évaluer les performances de ton modèle. Ces métriques fournissent des informations sur la façon dont ton modèle fait des prédictions.
  • Réglage des hyperparamètres : Ajuste les hyperparamètres pour optimiser les performances du modèle. Des techniques comme la recherche par grille (grid search) ou la recherche aléatoire (random search) peuvent aider à trouver les meilleures valeurs d'hyperparamètres.
  • Réglage fin : Apporte de petits ajustements à l'architecture du modèle ou au processus d'entraînement pour améliorer les performances. Cela peut impliquer de modifier les taux d'apprentissage, les tailles de lot (batch sizes), ou d'autres paramètres du modèle.

Pour une compréhension plus approfondie de l'évaluation du modèle et des techniques de réglage fin, consulte notre guide sur les perspectives d'évaluation de modèle.

Étape 6 : Test du modèle

Dans cette étape, tu peux t'assurer que ton modèle fonctionne bien sur des données complètement non vues, confirmant sa préparation pour le déploiement. La différence entre le test du modèle et l'évaluation du 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 tester minutieusement et de déboguer tous les problèmes courants qui pourraient survenir. Teste ton modèle sur un ensemble de données de test distinct qui n'a pas été utilisé pendant l'entraînement ou la validation. Cet ensemble de données doit représenter des scénarios du monde réel pour garantir que les performances du modèle sont cohérentes et fiables.

De plus, aborde les problèmes courants tels que le surapprentissage, le sous-apprentissage (underfitting) et la fuite de données. Utilise des techniques comme la validation croisée (cross-validation) et la détection d'anomalies pour identifier et corriger ces problèmes. Pour des stratégies de test complètes, réfère-toi à notre guide de test de modèle.

Étape 7 : Déploiement du modèle

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

  • Configuration de l'environnement : Configure l'infrastructure nécessaire pour ton option de déploiement choisie, qu'elle soit basée sur le cloud (AWS, Google Cloud, Azure) ou sur l'edge (appareils locaux, IoT).
  • Exportation du modèle : Exporte ton modèle dans le format approprié (par ex. ONNX, TensorRT, CoreML pour YOLO26) pour garantir la compatibilité avec ta plateforme de déploiement.
  • Déploiement du modèle : Déploie le modèle en configurant des API ou des points de terminaison (endpoints) et en l'intégrant à ton application.
  • Garantir l'évolutivité : Implémente des équilibreurs de charge, des groupes d'auto-scaling et des outils de surveillance pour gérer les ressources et gérer les demandes croissantes de données et d'utilisateurs.

Pour des conseils plus détaillés sur les stratégies de déploiement et les meilleures pratiques, consulte notre guide sur les pratiques de déploiement de modèle. La plateforme Ultralytics fournit également des points de terminaison de déploiement gérés avec auto-scaling dans 43 régions mondiales, gérant automatiquement la configuration de l'infrastructure.

Étape 8 : Surveillance, maintenance et documentation

Une fois que ton modèle est déployé, il est important de surveiller en permanence ses performances, de le maintenir pour gérer tous les problèmes, et de documenter l'ensemble du processus pour référence et améliorations futures.

Les outils de surveillance peuvent t'aider à suivre les indicateurs de performance clés (KPI) 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 (model drift), où les performances du modèle diminuent avec le temps en raison de changements dans les données d'entrée. Réentraîne périodiquement le modèle avec des données mises à jour pour maintenir la précision et la pertinence.

Model monitoring and maintenance lifecycle

En plus de la surveillance et de la maintenance, la documentation est également clé. 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 tous les changements apportés pendant le déploiement et la maintenance. Une bonne documentation garantit la reproductibilité et rend les futures mises à jour ou le dépannage plus faciles. En surveillant, maintenant et 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.

S'engager avec la communauté

Te connecter avec une communauté de passionnés de vision par ordinateur peut t'aider à aborder tous les problèmes que tu rencontres pendant que tu travailles sur ton projet de vision par ordinateur avec confiance. Voici quelques façons d'apprendre, de dépanner et de réseauter efficacement.

Ressources communautaires

  • Problèmes GitHub : Jette un œil au dépôt GitHub YOLO26 et utilise l'onglet Issues pour poser des questions, signaler des bugs et suggérer de nouvelles fonctionnalités. La communauté active et les responsables sont là pour t'aider avec des problèmes spécifiques.
  • Serveur Discord Ultralytics : Rejoins le serveur Discord d'Ultralytics pour interagir avec d'autres utilisateurs et développeurs, obtenir du support et partager des idées.

Documentation officielle

  • Documentation YOLO26 d'Ultralytics : Explore la documentation officielle YOLO26 pour 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 à jour avec les dernières tendances et les meilleures pratiques dans la communauté de la vision par ordinateur.

Étapes suivantes

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 le succès. Chaque étape est cruciale pour développer une solution qui répond à tes objectifs et fonctionne bien dans des scénarios réels. 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.

FAQ

Comment choisir la bonne tâche de vision par ordinateur pour mon projet ?

Choisir la bonne tâche de vision par ordinateur dépend de l'objectif final de ton projet. Par exemple, si tu veux surveiller le trafic, la détection d'objets est adaptée car elle peut localiser et identifier plusieurs types de véhicules en temps réel. Pour l'imagerie médicale, la segmentation d'images est idéale pour fournir des contours détaillés des tumeurs, aidant au diagnostic et à la planification du traitement. Apprends-en plus sur des tâches spécifiques comme la détection d'objets, la classification d'images et la segmentation d'instances.

Pourquoi l'annotation de données est-elle cruciale dans les projets de vision par ordinateur ?

L'annotation de données est vitale pour enseigner à ton modèle à reconnaître des modèles. Le type d'annotation varie selon la tâche :

  • Classification d'images : Image entière étiquetée comme une seule classe.
  • Détection d'objets : Boîtes englobantes dessinées autour des objets.
  • Segmentation d'images : Chaque pixel étiqueté selon l'objet auquel il appartient.

Des outils comme Label Studio, CVAT et Labelme peuvent aider dans ce processus. Pour plus de détails, réfère-toi à notre guide de collecte et d'annotation de données.

Quelles étapes dois-je suivre pour augmenter et diviser efficacement mon ensemble de données ?

Diviser ton ensemble de données avant l'augmentation aide à valider les performances du modèle sur des données originales et non altérées. Suis ces étapes :

  • Ensemble d'entraînement : 70-80% de tes données.
  • Ensemble de validation : 10-15% pour le réglage des hyperparamètres.
  • Ensemble de test : 10-15% restants pour l'évaluation finale.

Après la division, applique des techniques d'augmentation de données comme la rotation, la mise à l'échelle et le retournement pour augmenter la diversité de l'ensemble de données. Des bibliothèques telles qu'Albumentations et OpenCV peuvent aider. Ultralytics offre également des paramètres d'augmentation intégrés pour plus de commodité.

Comment puis-je exporter mon modèle de vision par ordinateur entraîné pour le déploiement ?

L'exportation de ton modèle assure la compatibilité avec différentes plateformes de déploiement. Ultralytics propose de multiples formats, notamment ONNX, TensorRT et CoreML. Pour exporter ton modèle YOLO26, suis ce guide :

  • Utilise la fonction export avec le paramètre de format souhaité.
  • Assure-toi que le modèle exporté correspond aux spécifications de ton environnement de déploiement (par ex. appareils de périphérie, cloud).

Pour plus d'informations, consulte le guide d'exportation de modèle.

Quelles sont les meilleures pratiques pour surveiller et maintenir un modèle de vision par ordinateur déployé ?

Une surveillance et une maintenance continues sont essentielles pour le succès à long terme d'un modèle. Implémente des outils pour suivre les indicateurs clés de performance (KPI) et détecter les anomalies. Réentraîne régulièrement le modèle avec des données mises à jour pour contrer la dérive du modèle. Documente l'ensemble du processus, y compris l'architecture du modèle, les hyperparamètres et les changements, afin d'assurer la reproductibilité et la facilité des futures mises à jour. Apprends-en plus dans notre guide de surveillance et de maintenance.

Commentaires