Comprendre les étapes clés d'un projet de vision par ordinateur#
Construire un projet de vision par ordinateur signifie passer par une séquence claire d'étapes : définir tes objectifs, collecter et annoter des données, entraîner et évaluer un modèle, puis le déployer et le maintenir en production. Ce guide parcourt chaque étape dans l'ordre et explique pourquoi elles sont importantes, afin que tu puisses planifier et mener ton propre projet en toute confiance.
La Computer vision est un sous-domaine de l'artificial intelligence (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 motifs et prendre des décisions basées sur ces données.
Les techniques de vision par ordinateur telles que la object detection, la image classification et la instance segmentation peuvent être appliquées dans divers secteurs, de la autonomous driving à la medical imaging, pour obtenir des informations précieuses.
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, 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é est de understand your project's requirements.
- Ensuite, tu collect and accurately label les images qui t'aideront à entraîner ton modèle.
- Ensuite, tu clean and augment your data pour la préparer à l'entraînement du modèle.
- Après l'training, tu evaluate et test minutieusement ton modèle pour t'assurer qu'il fonctionne de manière cohérente dans différentes conditions.
- Enfin, tu deploy ton modèle dans le monde réel et tu le monitor and maintain en te basant sur les nouvelles informations et les retours.
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, 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 Image classification 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.
Sélectionner le bon modèle et la bonne 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 du but du projet consiste à selecting the right model et à choisir 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 dès le départ. 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, le choix d'un modèle spécifique à entraîner déterminera la manière dont tu dois préparer tes données, par exemple en redimensionnant les images ou en ajoutant des annotations, selon les exigences spécifiques du modèle.
Tiens compte de la deployment target d'un modèle pour garantir la compatibilité et les performances. Par exemple, les modèles légers sont idéaux pour l'edge computing grâce à leur efficacité sur les appareils aux ressources limitées.
Pour en savoir plus, lis notre guide sur defining your project's goals and selecting the right model.
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.
É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 jeu de données. Tu peux soit collecter des images sur Internet, soit prendre tes propres photos, soit utiliser des jeux de données préexistants. Voici d'excellentes ressources pour télécharger des jeux 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 built-in support for various datasets, ce qui facilite les débuts avec des données de haute qualité. Ces bibliothèques incluent souvent des utilitaires pour utiliser des jeux de données populaires de manière transparente, ce qui peut t'économiser beaucoup de temps et d'efforts lors des 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. La Data annotation est le processus qui consiste à étiqueter 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 spécifique de vision par ordinateur. Voici quelques exemples :
- Classification d'images : Tu étiquetteras l'image entière comme une seule classe.
- Object Detection : Tu dessineras des boîtes englobantes autour de chaque objet de l'image et étiquetteras chaque boîte.
- Image Segmentation : Tu étiquetteras chaque pixel de l'image en fonction de l'objet auquel il appartient, créant ainsi des limites d'objets détaillées.
La Data collection and annotation peut représenter un effort manuel chronophage. Un outil d'annotation dédié accélère le processus : la Ultralytics Platform fournit un annotation editor intégré doté d'une SAM-powered smart annotation pour la détection, la segmentation et les données OBB, enregistrant les étiquettes directement au format YOLO.
É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 diviser d'abord ton jeu de données en ensembles d'entraînement, de validation et de test avant d'effectuer la data augmentation. La division de ton jeu de données avant l'augmentation est cruciale pour tester et valider ton modèle sur des données d'origine non modifiées. Cela aide à évaluer avec précision dans quelle mesure 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, ce qui aide à prévenir l'overfitting.
- 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, disposent de built-in augmentation settings directement dans leur fonction d'entraînement de 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 ainsi que leurs caractéristiques. Visualiser tes données aide à identifier les motifs, les anomalies et l'efficacité de tes techniques d'augmentation. L'onglet Charts de la Ultralytics Platform peut faire ressortir bon nombre de ces insights sans aucun code en générant automatiquement la distribution des divisions, les décompte de classes, les histogrammes des dimensions d'images et les cartes de chaleur des positions d'annotation pour chaque jeu de données importé.
En understanding, splitting, and augmenting your data correctement, tu peux développer un modèle bien entraîné, validé et testé qui performe bien dans les applications du monde réel.
É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 :
- Installation des bibliothèques et frameworks essentiels tels que 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 jeux de données d'entraînement et de validation dans ton environnement. Normalise et prétraite les données par le redimensionnement, la conversion de format ou l'augmentation. Ton modèle étant sélectionné, configure les couches et spécifie les hyperparamètres. Compile le modèle en définissant la loss function, l'optimiseur et les métriques de performance.
Des bibliothèques comme Ultralytics simplifient le processus d'entraînement. Tu peux start training en injectant des données dans le modèle avec un code minimal. Ces bibliothèques gèrent automatiquement les ajustements de poids, la backpropagation et la validation. 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 bonne gestion des jeux de données est vitale pour un entraînement efficace. Utilise le contrôle de version pour les jeux de données afin de suivre les modifications et de garantir la reproductibilité. Des outils comme DVC (Data Version Control) peuvent aider à gérer de grands jeux de données.
Étape 5 : Évaluation et réglage fin du modèle#
Il est important d'évaluer les performances de ton modèle à l'aide de diverses métriques et de le perfectionner pour améliorer l'accuracy. L'evaluating aide à identifier les domaines où le modèle excelle et ceux où il peut avoir besoin d'améliorations. Le fine-tuning garantit que le modèle est optimisé pour obtenir les meilleures performances possibles.
- Performance Metrics : Utilise des métriques telles que l'exactitude, la precision, le 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 effectue des prédictions.
- Hyperparameter Tuning : Ajuste les hyperparamètres pour optimiser les performances du modèle. Des techniques telles que la recherche par grille ou la recherche aléatoire peuvent aider à trouver les meilleures valeurs d'hyperparamètres.
- Fine-Tuning : 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 learning rates, les batch sizes ou d'autres paramètres du modèle.
Pour une compréhension plus approfondie de l'évaluation des modèles et des techniques de réglage fin, consulte notre model evaluation insights guide.
Étape 6 : Test du modèle#
Le test du modèle confirme que celui-ci fonctionne bien sur des données totalement inconnues, vérifiant ainsi sa préparation au déploiement. La différence entre le test du modèle et l'évaluation du modèle est que le test 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 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, résous les problèmes courants tels que le surapprentissage, l'underfitting et la fuite de données. Utilise des techniques telles que la cross-validation et la anomaly detection pour identifier et corriger ces problèmes. Pour des stratégies de test exhaustives, réfère-toi à notre model testing guide.
Étape 7 : Déploiement du modèle#
Une fois ton modèle minutieusement testé, il est temps de le déployer. Le model deployment consiste à 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).
- Exporting the Model : Exporte ton modèle vers le format approprié (par exemple, 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 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 model deployment practices guide. La Ultralytics Platform fournit également des deployment endpoints gérés avec mise à l'échelle automatique dans 42 régions mondiales, gérant automatiquement la configuration de l'infrastructure.
É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.
Outre la surveillance et 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 tout changement apporté lors du déploiement et de la maintenance. Une bonne documentation garantit la reproductibilité et facilite les futures mises à jour ou le dépannage. En monitoring, maintaining, and documenting your model efficacement, tu t'assures qu'il reste précis, fiable et facile à gérer tout au long de son cycle de vie.
S'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.
Ressources communautaires#
- GitHub Issues : Consulte le YOLO26 GitHub repository 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 t'aider avec des problèmes spécifiques.
- Serveur Discord d'Ultralytics : Rejoins le Ultralytics Discord server pour interagir avec d'autres utilisateurs et développeurs, obtenir du support et partager des idées.
Documentation officielle#
- Documentation Ultralytics YOLO26 : Explore la official YOLO26 documentation pour des guides détaillés accompagnés de 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.
Prochaines étapes#
Tu as maintenant une feuille de route pour chaque étape d'un projet de vision par ordinateur, de la définition des objectifs à la surveillance d'un modèle déployé. Mets-la en pratique en training your first YOLO model, ou plonge plus profondément dans n'importe quelle étape individuelle grâce aux guides liés ci-dessus. Pour exécuter le pipeline complet sans écrire de code, explore la Ultralytics Platform.
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 souhaites surveiller le trafic, l'object detection est adaptée car elle peut localiser et identifier plusieurs types de véhicules en temps réel. Pour l'imagerie médicale, l'image segmentation est idéale pour fournir des limites détaillées de tumeurs, aidant au diagnostic et à la planification du traitement. Apprends-en plus sur des tâches spécifiques comme l'object detection, l'instance segmentation, la semantic segmentation et l'image classification.
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 : Cadres de délimitation tracés autour des objets.
- Segmentation d'images : Chaque pixel étiqueté selon l'objet auquel il appartient.
L'annotation editor intégré de la Ultralytics Platform peut t'aider dans ce processus. Pour plus de détails, réfère-toi à notre data collection and annotation guide.
Quelles é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 l'hyperparameter tuning.
- Ensemble de test : 10-15 % restants pour 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é du jeu de données. Des bibliothèques telles que Albumentations et OpenCV peuvent aider. Ultralytics offre également des built-in augmentation settings par souci de commodité.
Comment puis-je exporter mon modèle de vision par ordinateur entraîné pour le déploiement ?#
Exporte ton modèle entraîné avec la méthode export, en choisissant un format qui correspond à ta cible de déploiement. Ultralytics prend en charge plusieurs formats, y compris ONNX, TensorRT et CoreML. Pour exporter ton modèle YOLO26, suis ces étapes :
- Utilise la méthode
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 model export guide.
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 modifications, pour garantir la reproductibilité et faciliter les futures mises à jour. Apprends-en plus dans notre monitoring and maintenance guide.