Link to this sectionComprendre les étapes clés d'un projet de vision par ordinateur#
Link to this sectionIntroduction#
La vision par ordinateur est un sous-domaine de l'intelligence artificielle (IA) qui aide les ordinateurs à voir et à comprendre le monde comme 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.
Des 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 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 la vision par ordinateur. Cependant, un projet de vision par ordinateur peut comporter de nombreuses étapes et cela peut sembler confus au début. À la fin de ce guide, tu seras familier avec les étapes impliquées dans un projet de vision par ordinateur. Nous passerons en revue tout le processus, du début à la fin d'un projet, en expliquant pourquoi chaque partie est importante.
Link to this sectionAperç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, examinons le processus global. Si tu commençais 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 de nouvelles connaissances et de retours.
Maintenant que nous savons à quoi nous attendre, plongeons directement dans les étapes et faisons avancer ton projet.
Link to this sectionÉ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, assurant une analyse plus rapide et en temps réel.
-
Objectif : Développer un outil qui assiste 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 frontières 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 exemple, factures, reçus, documents juridiques) pour améliorer l'efficacité organisationnelle 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 avoir à considérer la position du document dans l'image. Cette approche simplifie et accélère le processus de tri.
Link to this sectionÉ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 consiste à sélectionner le bon modèle et l'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 en mesure de collecter à l'étape 2. Par exemple, suppose que ton projet dépende 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 d'abord, puis collecter des données qui correspondent à ces spécifications.
Choisir entre un 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 zéro. Le transfer learning, quant à lui, 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.
Remarque : Lors du choix d'un modèle, considère son déploiement pour assurer la compatibilité et la performance. Par exemple, les modèles légers sont idéaux pour l'informatique en périphérie 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 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 de vision par ordinateur spécifique nécessaire (par exemple, 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.
Link to this sectionÉ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 une prise en charge intégrée pour divers ensembles de données, facilitant le démarrage avec des données de haute qualité. Ces bibliothèques incluent souvent des utilitaires pour utiliser facilement des ensembles de données populaires, ce qui peut t'économiser beaucoup de temps et d'efforts dans les premières étapes 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 traceras des cadres de délimitation 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, créant des contours d'objet détaillés.
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.
Link to this sectionÉtape 3 : Augmentation des données et division 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 invisibles.
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 régler 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é comme ensemble de test. Il est utilisé pour évaluer la performance du modèle sur des données invisibles 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, le redimensionnement et le retournement d'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 sa performance sur des images invisibles.
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 sa 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 les applications du monde réel.
Link to this sectionÉ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.
Tout d'abord, tu devras t'assurer que ton environnement est correctement configuré. Typiquement, cela inclut les éléments suivants :
- 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 via le redimensionnement, la conversion de format ou l'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 les ajustements de poids, la rétropropagation et la validation automatiquement. Elles offrent également des outils pour surveiller la progression 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 de l'ensemble 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 changements et d'assurer la reproductibilité. Des outils comme DVC (Data Version Control) peuvent aider à gérer les grands ensembles de données.
Link to this sectionÉtape 5 : Évaluation du modèle et réglage fin du modèle#
Il est important d'évaluer la performance de ton modèle en utilisant diverses métriques et de le raffiner pour améliorer la précision. L'évaluation aide à identifier les zones où le modèle excelle et où il peut avoir besoin d'amélioration. Le réglage fin assure que le modèle est optimisé pour la meilleure performance possible.
- Métriques de performance : Utilise des métriques comme la précision, la précision, le rappel et le score F1 pour évaluer la performance 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 la performance du modèle. Des techniques comme la recherche par grille ou la recherche aléatoire peuvent aider à trouver les meilleures valeurs d'hyperparamètres.
- Réglage fin : Effectue de petits ajustements sur l'architecture du modèle ou le processus d'entraînement pour améliorer la performance. Cela peut impliquer de modifier les taux d'apprentissage, les tailles de lot 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 des insights sur l'évaluation des modèles.
Link to this sectionÉ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 invisibles, 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 de la performance du modèle final plutôt que sur son amélioration itérative.
Il est important de tester et déboguer minutieusement tout problème courant qui pourrait 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 assurer que la performance du modèle est cohérente et fiable.
De plus, traite les problèmes courants tels que le surapprentissage, le sous-apprentissage et la fuite de données. Utilise des techniques comme la validation croisée 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.
Link to this sectionÉ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 basée sur la périphérie (appareils locaux, IoT).
- Exportation du modèle : Exporte ton modèle vers le format approprié (par exemple, ONNX, TensorRT, CoreML pour YOLO26) pour assurer 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 et en l'intégrant à ton application.
- Assurer l'évolutivité : Implémente des équilibreurs de charge, des groupes de mise à l'échelle automatique 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 des pratiques de déploiement de modèles. La plateforme Ultralytics fournit également des points de terminaison de déploiement gérés avec une mise à l'échelle automatique dans 43 régions mondiales, gérant automatiquement la configuration de l'infrastructure.
Link to this sectionÉtape 8 : Surveillance, maintenance et documentation#
Une fois ton modèle déployé, il est important de surveiller en continu sa performance, de le maintenir pour traiter tout problème, et de documenter l'ensemble du processus pour référence future et améliorations.
Les outils de surveillance peuvent t'aider à suivre les indicateurs clés de performance (KPI) et à détecter des anomalies ou des chutes de précision. En surveillant le modèle, tu peux être conscient de la dérive du modèle, où la performance du modèle diminue au fil du 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.
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 tout changement effectué pendant le déploiement et la maintenance. Une bonne documentation assure la reproductibilité et facilite les futures mises à jour ou le dépannage. 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.
Link to this sectionS'engager avec la communauté#
Se connecter avec une communauté de passionnés de vision par ordinateur peut t'aider à résoudre tout problème que tu rencontres en travaillant sur ton projet de vision par ordinateur en toute confiance. Voici quelques moyens d'apprendre, de dépanner et de réseauter efficacement.
Link to this sectionRessources communautaires#
- GitHub Issues : Consulte le dépôt GitHub de 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 mainteneurs sont là pour aider avec des problèmes spécifiques.
- Serveur Discord d'Ultralytics : Rejoins le serveur Discord d'Ultralytics pour interagir avec d'autres utilisateurs et développeurs, obtenir du support et partager des idées.
Link to this sectionDocumentation officielle#
- Documentation YOLO26 d'Ultralytics : Explore la documentation officielle de YOLO26 pour des guides détaillés avec des conseils utiles sur différentes tâches et projets de vision par ordinateur.
Utiliser ces ressources t'aidera à surmonter les défis et à rester à jour avec les dernières tendances et meilleures pratiques dans la communauté de la vision par ordinateur.
Link to this sectionProchaines étapes#
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 du monde réel. À mesure que tu gagneras en expérience, tu découvriras des techniques et des outils avancés pour améliorer tes projets.
Link to this sectionFAQ#
Link to this sectionComment 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 approprié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. En savoir plus sur des tâches spécifiques comme la détection d'objets, la segmentation d'instances, la segmentation sémantique et la classification d'images.
Link to this sectionPourquoi 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 : Cadres de délimitation tracés 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.
Link to this sectionQuelles étapes dois-je suivre pour augmenter et diviser mon ensemble de données efficacement ?#
Diviser ton ensemble de données avant l'augmentation aide à valider la performance 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 telles que la rotation, la mise à l'échelle et le retournement pour accroître la diversité de ton jeu de données. Des bibliothèques comme Albumentations et OpenCV peuvent t'aider. Ultralytics propose également des paramètres d'augmentation intégrés pour plus de facilité.
Link to this sectionComment puis-je exporter mon modèle de vision par ordinateur entraîné pour le déploiement ?#
L'exportation de ton modèle garantit la compatibilité avec différentes plateformes de déploiement. Ultralytics fournit de multiples formats, notamment ONNX, TensorRT et CoreML. Pour exporter ton modèle YOLO26, suis ce guide :
- Utilise la fonction
exportavec 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.
Link to this sectionQuelles sont les meilleures pratiques pour surveiller et maintenir un modèle de vision par ordinateur déployé ?#
La surveillance et la 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, pour garantir la reproductibilité et faciliter les futures mises à jour. Apprends-en davantage dans notre guide de surveillance et de maintenance.