Meet YOLO26: next-gen vision AI.

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'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 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 object detection, l'image classification et l'instance segmentation peuvent être appliquées dans divers secteurs, de l'autonomous driving à l'medical imaging, afin d'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 le 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 les étapes impliquées dans un projet de vision par ordinateur. Nous passerons en revue tout le processus, du début à la fin, en expliquant l'importance de chaque partie.

Link to this sectionAperç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 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 informations et des retours.

Computer Vision Project Steps Overview

Maintenant que nous savons à quoi nous attendre, plongeons directement dans les étapes pour faire 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 est de 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 pour la 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, afin d'améliorer la gestion du trafic et la sécurité.

    • Tâche de vision par ordinateur : L'object detection est idéale pour la surveillance du trafic, car elle localise et identifie efficacement plusieurs véhicules. Elle est moins exigeante en calcul que l'image segmentation, qui fournit des détails inutiles pour cette tâche, assurant ainsi une analyse plus rapide en temps réel.
  • Objectif : Développer un outil qui assiste 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 : L'image segmentation est adaptée à l'imagerie médicale, car elle fournit des délimitations précises et détaillées des tumeurs, 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) pour améliorer l'efficacité organisationnelle et la récupération des documents.

    • Tâche de vision par ordinateur : L'image classification est idéale ici car elle traite un document à la fois, sans avoir à prendre en compte 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 à 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 collecter et d'analyser les données d'abord avant de sélectionner un modèle. En revanche, 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, 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 des images ou ajouter des annotations, selon les exigences spécifiques du modèle.

Training From Scratch Vs. Using Transfer Learning

Remarque : lors du choix d'un modèle, prends en compte son deployment 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 our 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éfinit 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, object detection, image classification, image segmentation).
  • 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 un built-in support for various datasets, ce qui facilite 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 aux premiers stades de ton projet.

Cependant, si tu choisis de collecter des images ou de prendre tes propres photos, tu devras annoter tes données. Le Data annotation 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 :

  • Image Classification : Tu étiquetteras l'image entière comme une seule classe.
  • Object Detection : Tu traceras des cadres de délimitation (bounding boxes) autour de chaque objet dans l'image et étiquetteras chaque cadre.
  • Image Segmentation : Tu étiquetteras chaque pixel de l'image en fonction de l'objet auquel il appartient, créant ainsi des contours d'objets détaillés.

Bounding box, polygon, and keypoint annotations

La data collection and annotation peut être un effort manuel qui prend du temps. Les outils d'annotation peuvent aider à faciliter ce processus. Voici quelques outils d'annotation ouverts utiles : LabeI 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 diviser d'abord ton ensemble de données en ensembles d'entraînement, de validation et de test avant d'effectuer une data augmentation. 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 capacité du modèle à généraliser à 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 l'overfitting.
  • 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 des 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 des 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 built-in augmentation settings directement dans leur fonction d'entraînement de modèle, simplifiant ainsi 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 understanding, splitting, and augmenting your data correctement, tu peux développer un modèle bien entraîné, validé et testé qui fonctionne bien dans des applications réelles.

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.

D'abord, tu devras t'assurer que ton environnement est configuré correctement. En général, cela inclut les points suivants :

  • L'installation de bibliothèques et de 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 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 alimentant le modèle avec des données avec un minimum de code. Ces bibliothèques gèrent automatiquement les ajustements de poids, la backpropagation 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 bonne gestion 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 modifications et d'assurer la reproductibilité. Des outils comme DVC (Data Version Control) peuvent aider à gérer de 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 les performances de ton modèle à l'aide de diverses métriques et de l'affiner pour améliorer l'accuracy. L'Evaluating aide à identifier les domaines où le modèle excelle et où il peut nécessiter des améliorations. Le Fine-tuning garantit que le modèle est optimisé pour les meilleures performances possibles.

  • Performance Metrics : Utilise des métriques comme l'accuracy, 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 fait des prédictions.
  • Hyperparameter Tuning : Ajuste les hyperparamètres pour optimiser les performances du modèle. Des techniques comme la recherche sur 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 du modèle et des techniques de réglage fin, consulte notre model evaluation insights guide.

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 inédites, confirmant ainsi sa préparation au 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 peuvent 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, résous les problèmes courants tels que l'overfitting, l'underfitting et la fuite de données. Utilise des techniques comme la cross-validation et l'anomaly detection pour identifier et corriger ces problèmes. Pour des stratégies de test complètes, reporte-toi à notre model testing guide.

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 Model deployment 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 l'option de déploiement 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 : Exporte ton modèle dans 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 traiter 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 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 permanence ses performances, de l'entretenir pour gérer les problèmes éventuels 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 de performance clés (KPI) et à détecter des anomalies ou des 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 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 essentielle. Documente minutieusement tout le 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é pendant le déploiement et la maintenance. Une bonne documentation assure la reproductibilité et facilite les futures mises à jour ou le dépannage. En monitoring, maintaining, and documenting your model efficacement, 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'impliquer dans la communauté#

Se connecter avec une communauté de passionnés de vision par ordinateur peut t'aider à résoudre tous les problèmes que tu rencontres en travaillant sur ton projet de vision par ordinateur avec confiance. Voici quelques moyens d'apprendre, de dépanner et de réseauter efficacement.

Link to this sectionRessources 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 responsables sont là pour aider avec des problèmes spécifiques.
  • Serveur Discord Ultralytics : Rejoins le Ultralytics Discord server pour interagir avec d'autres utilisateurs et développeurs, obtenir du support et partager des idées.

Link to this sectionDocumentation officielle#

  • Documentation YOLO26 Ultralytics : Explore la official YOLO26 documentation 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 meilleures pratiques dans la communauté de la vision par ordinateur.

Link to this sectionProchaines étapes#

Entreprendre 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 des scénarios du monde réel. Au fur et à mesure que tu gagneras de l'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 souhaites surveiller le trafic, l'object detection est approprié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 contours détaillés des tumeurs, aidant au diagnostic et à la planification du traitement. Apprends-en plus sur des tâches spécifiques comme object detection, instance segmentation, semantic segmentation et image classification.

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 :

  • Image Classification : Image entière étiquetée comme une seule classe.
  • Object Detection : Cadres de délimitation tracés autour des objets.
  • Image Segmentation : 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, reporte-toi à notre data collection and annotation guide.

Link to this sectionQuelles é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 hyperparameter tuning.
  • 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 simplicité.

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 assure la compatibilité avec différentes plateformes de déploiement. Ultralytics fournit de multiples formats, incluant 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 edge, 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é ?#

Une surveillance et une maintenance continues sont essentielles au 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 tout le processus, y compris l'architecture du modèle, les hyperparamètres et les changements, pour assurer la reproductibilité et faciliter les futures mises à jour. Apprends-en davantage dans notre guide de surveillance et de maintenance.

Commentaires