Comprendre les étapes clés d'un projet de vision par ordinateur
Introduction
Computer vision is a subfield of artificial intelligence (AI) that helps computers see and understand the world like humans do. It processes and analyzes images or videos to extract information, recognize patterns, and make decisions based on that data.
Regarde : How to Do [Computer Vision](https://www.ultralytics.com/glossary/computer-vision-cv) Projects | A Step-by-Step Guide
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.
Travailler sur vos 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 déroutant au début. À la fin de ce guide, vous serez familiarisé avec les étapes d’un projet de vision par ordinateur. Nous passerons en revue tout du début à la fin d’un projet, en expliquant pourquoi chaque partie est importante. Commençons et faisons de votre projet de vision par ordinateur un succès !
Aperçu d'un projet de vision par ordinateur
Avant d’aborder les détails de chaque étape d’un projet de vision par ordinateur, examinons le processus global. Si vous avez commencé un projet de vision par ordinateur aujourd’hui, vous devez suivre les étapes suivantes :
- Votre première priorité serait de comprendre les exigences de votre projet.
- Ensuite, vous collecterez et étiqueterez avec précision les images qui aideront à entraîner votre modèle.
- Ensuite, vous nettoyez vos données et appliquez des techniques d’augmentation pour les préparer à l’entraînement du modèle.
- Après l’entraînement du modèle, vous testez et évaluez minutieusement votre modèle pour vous assurer qu’il fonctionne de manière cohérente dans différentes conditions.
- Enfin, vous déployez votre modèle dans le monde réel et le mettez à jour en fonction de nouvelles informations et de nouveaux commentaires.
Maintenant que nous savons Ă quoi nous attendre, plongeons dans les Ă©tapes et faisons avancer ton projet.
Étape 1 : Définir les objectifs de votre projet
La première étape de tout projet de vision par ordinateur consiste à définir clairement le problème que vous essayez de résoudre. Connaître l’objectif final vous aide à commencer à construire une solution. Cela est particulièrement vrai en matière de vision par ordinateur, car l’objectif de votre projet affectera directement la tâche de vision par ordinateur sur laquelle vous devez vous concentrer.
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.
- Computer Vision Task: Image classification is ideal here as it handles one document at a time, without needing to consider the document's position in the image. This approach simplifies and accelerates the sorting process.
É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.
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 :
- Définissez clairement le problème que vous essayez de résoudre.
- 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.
Cependant, si vous choisissez de collecter des images ou de prendre vos propres photos, vous devrez annoter vos données. L’annotation de données est le processus d’étiquetage de vos données pour transmettre des connaissances à votre modèle. Le type d’annotation de données avec lequel vous travaillerez dépend de votre technique de vision par ordinateur spécifique. Voici quelques exemples :
- Classification des images : Tu vas étiqueter l'image entière comme une seule classe.
- 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.
La collecte et l'annotation des données peuvent être un effort manuel qui prend beaucoup de temps. Les outils d'annotation peuvent faciliter ce processus. Voici quelques outils d'annotation ouverts utiles : LabeI Studio, CVAT et Labelme.
Step 3: Data Augmentation and Splitting Your Dataset
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.
- Validation Set: Usually around 10-15% of your data; this set is used to tune hyperparameters and validate the model during training, helping to prevent overfitting.
- 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.
Libraries like OpenCV, Albumentations, and TensorFlow offer flexible augmentation functions that you can use. Additionally, some libraries, such as Ultralytics, have built-in augmentation settings directly within its model training function, simplifying the process.
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.
En comprenant, divisant et augmentant correctement tes données, tu peux développer un modèle bien entraîné, validé et testé qui donne de bons résultats dans les applications du monde réel.
É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.
Tout d’abord, vous devez vous assurer que votre environnement est correctement configuré. En règle générale, cela comprend les éléments suivants :
- Installing essential libraries and frameworks like TensorFlow, PyTorch, or Ultralytics.
- Si tu utilises un site GPU, l'installation de bibliothèques telles que CUDA et cuDNN te permettra d'activer l'accélération GPU et d'accélérer le processus d'apprentissage.
Then, you can load your training and validation datasets into your environment. Normalize and preprocess the data through resizing, format conversion, or augmentation. With your model selected, configure the layers and specify hyperparameters. Compile the model by setting the loss function, optimizer, and performance metrics.
Libraries like Ultralytics simplify the training process. You can start training by feeding data into the model with minimal code. These libraries handle weight adjustments, backpropagation, and validation automatically. They also offer tools to monitor progress and adjust hyperparameters easily. After training, save the model and its weights with a few commands.
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.
Step 5: Model Evaluation and Model Finetuning
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.
-
Fine-Tuning: Make small adjustments to the model architecture or training process to enhance performance. This might involve tweaking learning rates, batch sizes, or other model parameters.
É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.
Also, address common problems such as overfitting, underfitting, and data leakage. Use techniques like cross-validation and anomaly detection to identify and fix these issues.
Step 7: Model Deployment
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).
-
Exporting the Model: Export your model to the appropriate format (e.g., ONNX, TensorRT, CoreML for YOLO11) to ensure compatibility with your deployment platform.
- 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
Une fois votre modèle déployé, il est important de surveiller en permanence ses performances, de le maintenir pour gérer 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 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.
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.
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
- GitHub Issues: Check out the YOLO11 GitHub repository and use the Issues tab to ask questions, report bugs, and suggest new features. The active community and maintainers are there to help with specific issues.
- Ultralytics Serveur Discord : Rejoins le serveur DiscordUltralytics pour interagir avec d'autres utilisateurs et développeurs, obtenir de l'aide et partager des idées.
Documentation officielle
- Ultralytics YOLO11 Documentation: Explore the official YOLO11 documentation for detailed guides with helpful tips on different computer vision tasks and projects.
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 !
FAQ
Comment choisir la bonne tâche de vision par ordinateur pour mon projet ?
Le choix de la bonne tâche de vision par ordinateur dépend de l'objectif final de ton projet. Par exemple, si tu veux surveiller la circulation, 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'image est idéale pour fournir des limites détaillées des tumeurs, ce qui facilite le diagnostic et la planification du traitement. En savoir 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 des données est-elle cruciale dans les projets de vision par ordinateur ?
L'annotation des données est essentielle pour apprendre à ton modèle à reconnaître les modèles. Le type d'annotation varie en fonction de la tâche :
- Classification des images: Toute l'image est étiquetée comme une seule classe.
- Détection d'objets: Boîtes de délimitation dessinées autour des objets.
- Segmentation d'image: Chaque pixel est étiqueté en fonction de l'objet auquel il appartient.
Des outils tels que Label Studio, CVAT et Labelme peuvent t'aider dans ce processus. Pour plus de détails, reporte-toi à notre guide de collecte et d'annotation des données.
Quelles sont les étapes à suivre pour augmenter et diviser efficacement mon ensemble de données ?
Diviser ton ensemble de données avant l'augmentation permet de valider les performances du modèle sur les données originales, non modifiées. Suis les étapes suivantes :
- Ensemble de formation: 70 à 80 % de tes données.
- Validation Set: 10-15% for hyperparameter tuning.
- Ensemble de tests: Les 10 Ă 15 % restants serviront Ă l'Ă©valuation finale.
Après la division, applique des techniques d'augmentation des données telles que la rotation, la mise à l'échelle et le retournement pour augmenter la diversité des ensembles de données. Des bibliothèques telles que Albumentations et OpenCV peuvent t'aider. Ultralytics propose é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éployer ?
Exporting your model ensures compatibility with different deployment platforms. Ultralytics provides multiple formats, including ONNX, TensorRT, and CoreML. To export your YOLO11 model, follow this guide:
- Utilise le
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 exemple, appareils périphériques, nuage).
Pour plus d'informations, consulte le guide d'exportation des modèles.
Quelles sont les meilleures pratiques pour surveiller et entretenir un modèle de vision par ordinateur déployé ?
Le suivi et la maintenance continus sont essentiels à la réussite à long terme d'un modèle. Mets en place des outils pour suivre les indicateurs clés de performance (ICP) et détecter les anomalies. Entraîne régulièrement le modèle avec des données mises à jour pour contrer la dérive du modèle. Documenter l'ensemble du processus, y compris l'architecture du modèle, les hyperparamètres et les changements, afin de garantir la reproductibilité et la facilité des mises à jour futures. Pour en savoir plus, consulte notre guide sur la surveillance et la maintenance.