Skip to content

Stratégies de collecte et d’annotation de données pour la vision par ordinateur

Introduction

La clé de la réussite de tout projet de vision par ordinateur commence par des stratégies efficaces de collecte et d'annotation des données. La qualité des données a un impact direct sur les performances du modèle, il est donc important de comprendre les meilleures pratiques liées à la collecte et à l'annotation des données.

Toutes les considérations concernant les données doivent s'aligner étroitement sur les objectifs de ton projet. Des changements dans tes stratégies d'annotation pourraient modifier l'orientation ou l'efficacité du projet et vice versa. En gardant cela à l'esprit, examinons de plus près les meilleures façons d'aborder la collecte et l'annotation des données.

Configuration des classes et collecte de données

La collecte d’images et de vidéos pour un projet de vision par ordinateur implique de définir le nombre de classes, de trouver des données et de prendre en compte les implications éthiques. Avant de commencer à collecter vos données, vous devez être clair sur :

Choisir les bons cours pour votre projet

L’une des premières questions lors du démarrage d’un projet de vision par ordinateur est de savoir combien de cours inclure. Vous devez déterminer l’appartenance à la classe, qui implique les différentes catégories ou étiquettes que vous souhaitez que votre modèle reconnaisse et différencie. Le nombre de classes doit être déterminé par les objectifs spécifiques de votre projet.

Par exemple, si vous souhaitez surveiller le trafic, vos classes peuvent inclure « voiture », « camion », « bus », « moto » et « vélo ». D’autre part, pour suivre les articles dans un magasin, vos cours peuvent être des « fruits », des « légumes », des « boissons » et des « collations ». La définition de classes en fonction des objectifs de votre projet permet de garder votre ensemble de données pertinent et ciblé.

Lorsque vous définissez vos classes, une autre distinction importante à faire est de choisir un nombre de classes grossières ou fines. « Nombre » fait référence au nombre de classes distinctes qui vous intéressent. Cette décision influence la granularité de vos données et la complexité de votre modèle. Voici les considérations pour chaque approche :

  • Les catĂ©gories grossières: Il s'agit de catĂ©gories plus larges et plus inclusives, telles que "vĂ©hicule" et "non-vĂ©hicule". Elles simplifient l'annotation et nĂ©cessitent moins de ressources informatiques, mais fournissent des informations moins dĂ©taillĂ©es, ce qui limite potentiellement l'efficacitĂ© du modèle dans les scĂ©narios complexes.
  • CatĂ©gories fines: Plus de catĂ©gories avec des distinctions plus fines, telles que "berline", "SUV", "camionnette" et "moto". Elles capturent des informations plus dĂ©taillĂ©es, amĂ©liorant ainsi la prĂ©cision et la performance du modèle. Cependant, elles sont plus longues et laborieuses Ă  annoter et nĂ©cessitent plus de ressources informatiques.

Il convient de noter que commencer par des classes plus spécifiques peut être très utile, en particulier dans les projets complexes où les détails sont importants. Des classes plus spécifiques vous permettent de collecter des données plus détaillées et d’obtenir des informations plus approfondies et des distinctions plus claires entre les catégories. Non seulement cela améliore la précision du modèle, mais cela facilite également l’ajustement ultérieur du modèle si nécessaire, ce qui permet d’économiser du temps et des ressources.

Sources de données

Tu peux utiliser des jeux de données publics ou rassembler tes propres données personnalisées. Les jeux de données publics comme ceux de Kaggle et de Google Dataset Search Engine offrent des données bien annotées et normalisées, ce qui en fait d'excellents points de départ pour l'entraînement et la validation des modèles.

La collecte de données personnalisée, quant à elle, vous permet de personnaliser votre ensemble de données en fonction de vos besoins spécifiques. Vous pouvez capturer des images et des vidéos avec des caméras ou des drones, gratter le Web pour trouver des images ou utiliser les données internes existantes de votre organisation. Les données personnalisées vous permettent de mieux contrôler leur qualité et leur pertinence. La combinaison de sources de données publiques et personnalisées permet de créer un ensemble de données diversifié et complet.

Avoiding Bias in Data Collection

Le biais se produit lorsque certains groupes ou scénarios sont sous-représentés ou surreprésentés dans votre jeu de données. Cela conduit à un modèle qui fonctionne bien sur certaines données mais mal sur d’autres. Il est essentiel d’éviter les biais afin que votre modèle de vision par ordinateur puisse bien fonctionner dans une variété de scénarios.

Voici comment vous pouvez éviter les biais lors de la collecte de données :

  • Sources diverses: Recueille des donnĂ©es Ă  partir de nombreuses sources pour saisir des perspectives et des scĂ©narios diffĂ©rents.
  • ReprĂ©sentation Ă©quilibrĂ©e: Inclure une reprĂ©sentation Ă©quilibrĂ©e de tous les groupes concernĂ©s. Par exemple, tiens compte des diffĂ©rents âges, sexes et ethnies.
  • ContrĂ´le continu: Examine et met Ă  jour rĂ©gulièrement ton ensemble de donnĂ©es afin d'identifier et d'Ă©liminer tout biais Ă©mergent.
  • Bias Mitigation Techniques: Use methods like oversampling underrepresented classes, data augmentation, and fairness-aware algorithms.

Le respect de ces pratiques permet de créer un modèle plus robuste et plus équitable qui peut bien se généraliser dans des applications réelles.

Qu’est-ce que l’annotation de données ?

Data annotation is the process of labeling data to make it usable for training machine learning models. In computer vision, this means labeling images or videos with the information that a model needs to learn from. Without properly annotated data, models cannot accurately learn the relationships between inputs and outputs.

Types d’annotation de données

Selon les exigences spécifiques d'une tâche de vision par ordinateur, il existe différents types d'annotation des données. En voici quelques exemples :

  • BoĂ®tes de dĂ©limitation: BoĂ®tes rectangulaires dessinĂ©es autour des objets d'une image, utilisĂ©es principalement pour les tâches de dĂ©tection d'objets. Ces boĂ®tes sont dĂ©finies par leurs coordonnĂ©es en haut Ă  gauche et en bas Ă  droite.
  • Polygons: Detailed outlines for objects, allowing for more precise annotation than bounding boxes. Polygons are used in tasks like instance segmentation, where the shape of the object is important.
  • Masques: Masques binaires oĂą chaque pixel fait partie soit d'un objet, soit de l'arrière-plan. Les masques sont utilisĂ©s dans les tâches de segmentation sĂ©mantique pour fournir des dĂ©tails au niveau des pixels.
  • Points clĂ©s: Points spĂ©cifiques marquĂ©s dans une image pour identifier les endroits intĂ©ressants. Les points clĂ©s sont utilisĂ©s dans des tâches telles que l'estimation de la pose et la dĂ©tection des repères faciaux.

Types d’annotation de données

Formats d’annotation courants

Après avoir sélectionné un type d’annotation, il est important de choisir le format approprié pour stocker et partager les annotations.

Commonly used formats include COCO, which supports various annotation types like object detection, keypoint detection, stuff segmentation, panoptic segmentation, and image captioning, stored in JSON. Pascal VOC uses XML files and is popular for object detection tasks. YOLO, on the other hand, creates a .txt file for each image, containing annotations like object class, coordinates, height, and width, making it suitable for object detection.

Techniques d’annotation

Now, assuming you've chosen a type of annotation and format, it's time to establish clear and objective labeling rules. These rules are like a roadmap for consistency and accuracy throughout the annotation process. Key aspects of these rules include:

  • ClartĂ© et dĂ©tails: Assure-toi que tes instructions sont claires. Utilise des exemples et des illustrations pour comprendre ce qui est attendu.
  • CohĂ©rence: Veille Ă  ce que tes annotations soient uniformes. DĂ©finis des critères standard pour l'annotation des diffĂ©rents types de donnĂ©es, afin que toutes les annotations suivent les mĂŞmes règles.
  • RĂ©duire les prĂ©jugĂ©s: Reste neutre. EntraĂ®ne-toi Ă  ĂŞtre objectif et Ă  minimiser tes prĂ©jugĂ©s personnels pour garantir des annotations Ă©quitables.
  • EfficacitĂ©: Travaille plus intelligemment, pas plus durement. Utilise des outils et des flux de travail qui automatisent les tâches rĂ©pĂ©titives, ce qui rend le processus d'annotation plus rapide et plus efficace.

La révision et la mise à jour régulières de vos règles d’étiquetage vous aideront à maintenir vos annotations exactes, cohérentes et alignées sur les objectifs de votre projet.

Disons que vous êtes prêt à annoter maintenant. Il existe plusieurs outils open source disponibles pour aider à rationaliser le processus d’annotation des données. Voici quelques outils d’annotation ouverts utiles :

  • Label Studio: Un outil flexible qui prend en charge un large Ă©ventail de tâches d'annotation et comprend des fonctions de gestion de projets et de contrĂ´le de la qualitĂ©.
  • CVAT: Un outil puissant qui prend en charge diffĂ©rents formats d'annotation et des flux de travail personnalisables, ce qui le rend adaptĂ© aux projets complexes.
  • Labelme: Un outil simple et facile Ă  utiliser qui permet d'annoter rapidement des images avec des polygones, ce qui le rend idĂ©al pour les tâches simples.

Aperçu de LabelMe

Ces outils open source sont économiques et offrent une gamme de fonctionnalités pour répondre aux différents besoins d’annotation.

Quelques autres éléments à prendre en compte avant d’annoter des données

Before you dive into annotating your data, there are a few more things to keep in mind. You should be aware of accuracy, precision, outliers, and quality control to avoid labeling your data in a counterproductive manner.

Comprendre l’exactitude et la précision

It's important to understand the difference between accuracy and precision and how it relates to annotation. Accuracy refers to how close the annotated data is to the true values. It helps us measure how closely the labels reflect real-world scenarios. Precision indicates the consistency of annotations. It checks if you are giving the same label to the same object or feature throughout the dataset. High accuracy and precision lead to better-trained models by reducing noise and improving the model's ability to generalize from the training data.

Exemple de précision

Identifier les valeurs aberrantes

Les valeurs aberrantes sont des points de données qui s’écartent un peu des autres observations de l’ensemble de données. En ce qui concerne les annotations, une valeur aberrante peut être une image mal étiquetée ou une annotation qui ne correspond pas au reste du jeu de données. Les valeurs aberrantes sont préoccupantes car elles peuvent fausser le processus d’apprentissage du modèle, entraînant des prédictions inexactes et une mauvaise généralisation.

Vous pouvez utiliser différentes méthodes pour détecter et corriger les valeurs aberrantes :

  • Statistical Techniques: To detect outliers in numerical features like pixel values, bounding box coordinates, or object sizes, you can use methods such as box plots, histograms, or z-scores.
  • Techniques visuelles: Pour repĂ©rer les anomalies dans les caractĂ©ristiques catĂ©gorielles comme les classes d'objets, les couleurs ou les formes, utilise des mĂ©thodes visuelles comme le tracĂ© d'images, d'Ă©tiquettes ou de cartes thermiques.
  • Algorithmic Methods: Use tools like clustering (e.g., K-means clustering, DBSCAN) and anomaly detection algorithms to identify outliers based on data distribution patterns.

Contrôle de la qualité des données annotées

Tout comme les autres projets techniques, le contrôle de la qualité est indispensable pour les données annotées. Il est recommandé de vérifier régulièrement les annotations pour s’assurer qu’elles sont exactes et cohérentes. Cela peut se faire de différentes manières :

  • Examen d’échantillons de donnĂ©es annotĂ©es
  • Utiliser des outils automatisĂ©s pour repĂ©rer les erreurs courantes
  • Demander Ă  une autre personne de revĂ©rifier les annotations

Si vous travaillez avec plusieurs personnes, la cohérence entre les différents annotateurs est importante. Un bon accord entre les annotateurs signifie que les directives sont claires et que tout le monde les suit de la même manière. Cela permet à tout le monde d’être sur la même longueur d’onde et aux annotations cohérentes.

Lors de la révision, si vous trouvez des erreurs, corrigez-les et mettez à jour les directives pour éviter de futures erreurs. Fournir des commentaires aux annotateurs et offrir des formations régulières pour aider à réduire les erreurs. Le fait de disposer d’un processus solide de traitement des erreurs permet de maintenir l’exactitude et la fiabilité de votre ensemble de données.

Partagez vos réflexions avec la communauté

Bouncing your ideas and queries off other computer vision enthusiasts can help accelerate your projects. Here are some great ways to learn, troubleshoot, and network:

Où trouver de l’aide et du soutien

  • GitHub Issues: Visit the YOLO11 GitHub repository and use the Issues tab to raise questions, report bugs, and suggest features. The community and maintainers are there to help with any issues you face.
  • Ultralytics Serveur Discord : Rejoins le serveur DiscordUltralytics pour te connecter avec d'autres utilisateurs et dĂ©veloppeurs, obtenir de l'aide, partager des connaissances et trouver des idĂ©es.

Documentation officielle

  • Ultralytics YOLO11 Documentation: Refer to the official YOLO11 documentation for thorough guides and valuable insights on numerous computer vision tasks and projects.

Conclusion

En suivant les meilleures pratiques de collecte et d’annotation des données, en évitant les biais et en utilisant les bons outils et techniques, vous pouvez améliorer considérablement les performances de votre modèle. En vous engageant auprès de la communauté et en utilisant les ressources disponibles, vous vous tiendrez informé et vous aiderez à résoudre efficacement les problèmes. N’oubliez pas que des données de qualité sont la base d’un projet réussi, et les bonnes stratégies vous aideront à construire des modèles robustes et fiables.

FAQ

Quelle est la meilleure façon d'éviter les biais dans la collecte des données pour les projets de vision par ordinateur ?

Éviter les biais dans la collecte des données permet de s'assurer que ton modèle de vision par ordinateur fonctionne bien dans différents scénarios. Pour minimiser les biais, envisage de collecter des données auprès de diverses sources afin d'obtenir des perspectives et des scénarios différents. Veille à une représentation équilibrée de tous les groupes concernés, tels que les différents âges, sexes et ethnies. Révise et mets à jour régulièrement ton ensemble de données pour identifier et corriger tout biais émergent. Des techniques telles que le suréchantillonnage des classes sous-représentées, l'augmentation des données et les algorithmes tenant compte de l'équité peuvent également contribuer à atténuer les préjugés. En employant ces stratégies, tu maintiens un ensemble de données robuste et équitable qui améliore la capacité de généralisation de ton modèle.

Comment puis-je assurer une grande cohérence et une grande précision dans l'annotation des données ?

Pour garantir une grande cohérence et une grande précision dans l'annotation des données, il faut établir des directives d'étiquetage claires et objectives. Tes instructions doivent être détaillées, avec des exemples et des illustrations pour clarifier les attentes. La cohérence est obtenue en établissant des critères standard pour l'annotation de divers types de données, en veillant à ce que toutes les annotations suivent les mêmes règles. Pour réduire les préjugés personnels, forme les annotateurs à rester neutres et objectifs. Des révisions et des mises à jour régulières des règles d'étiquetage permettent de maintenir la précision et l'alignement sur les objectifs du projet. L'utilisation d'outils automatisés pour vérifier la cohérence et l'obtention de commentaires de la part d'autres annotateurs contribuent également à maintenir des annotations de haute qualité.

De combien d'images ai-je besoin pour former les modèles Ultralytics YOLO ?

For effective transfer learning and object detection with Ultralytics YOLO models, start with a minimum of a few hundred annotated objects per class. If training for just one class, begin with at least 100 annotated images and train for approximately 100 epochs. More complex tasks might require thousands of images per class to achieve high reliability and performance. Quality annotations are crucial, so ensure your data collection and annotation processes are rigorous and aligned with your project's specific goals. Explore detailed training strategies in the YOLO11 training guide.

Plusieurs outils populaires à code source ouvert peuvent rationaliser le processus d'annotation des données :

  • Label Studio: Un outil flexible qui prend en charge diverses tâches d'annotation, la gestion de projets et des fonctions de contrĂ´le de la qualitĂ©.
  • CVAT: Offre plusieurs formats d'annotation et des flux de travail personnalisables, ce qui le rend adaptĂ© aux projets complexes.
  • Labelme: IdĂ©al pour annoter rapidement et simplement les images avec des polygones.

Ces outils peuvent t'aider à améliorer l'efficacité et la précision de tes flux de travail d'annotation. Pour obtenir des listes de fonctions et des guides détaillés, consulte la documentation de nos outils d'annotation de données.

Quels types d'annotation de données sont couramment utilisés en vision artificielle ?

Différents types d'annotation de données répondent à diverses tâches de vision par ordinateur :

  • BoĂ®tes de dĂ©limitation: UtilisĂ©es principalement pour la dĂ©tection d'objets, ces boĂ®tes rectangulaires entourent les objets d'une image.
  • Polygones: Fournissent des contours d'objets plus prĂ©cis qui conviennent aux tâches de segmentation des instances.
  • Masks: Offer pixel-level detail, used in semantic segmentation to differentiate objects from the background.
  • Points clĂ©s: Identifie des points d'intĂ©rĂŞt spĂ©cifiques dans une image, utiles pour des tâches telles que l'estimation de la pose et la dĂ©tection de repères faciaux.

La sélection du type d'annotation approprié dépend des exigences de ton projet. Tu trouveras plus d'informations sur la façon de mettre en œuvre ces annotations et leurs formats dans notre guide sur l'annotation des données.


📅 Created 4 months ago ✏️ Updated 11 days ago

Commentaires