Stratégies de collecte et d’annotation de données pour la vision par ordinateur#
La collecte et l’annotation des données sont les deux étapes fondamentales de tout projet de vision par ordinateur : tu rassembles des images ou des vidéos représentatives, puis tu les étiquettes afin qu’un modèle puisse apprendre à partir de celles-ci. La qualité de ces données détermine directement les performances du modèle. C’est pourquoi la définition des classes, la collecte impartiale des données et la cohérence de l’annotation sont essentielles avant le début de tout entraînement.
Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀
Ce guide couvre la configuration des classes et la collecte des données, la définition de l’annotation des données ainsi que les types et formats d’annotation à choisir, et les stratégies d’étiquetage efficaces — chaque décision étant alignée sur les objectifs de ton projet.
Configurer les classes et collecter les données#
La collecte d’images et de vidéos pour un projet de vision par ordinateur repose sur trois décisions : le nombre de classes à définir, la source des données et la manière de préserver le jeu de données de tout biais.
Choisir les classes adaptées à ton projet#
L’une des premières questions à se poser au démarrage d’un projet de vision par ordinateur concerne le nombre de classes à inclure. Tu dois déterminer les catégories, c’est-à-dire les différentes catégories ou étiquettes que tu veux que ton modèle reconnaisse et différencie. Le nombre de classes doit être défini en fonction des objectifs spécifiques de ton projet.
Par exemple, si tu veux surveiller la circulation, tes classes peuvent inclure « voiture », « camion », « bus », « moto » et « vélo ». En revanche, pour suivre les articles d’un magasin, tes classes pourraient être « fruits », « légumes », « boissons » et « snacks ». Définir les classes en fonction des objectifs de ton projet aide à conserver un jeu de données pertinent et ciblé.
Lorsque tu définis tes classes, une autre distinction importante consiste à choisir entre un nombre de classes grossier ou détaillé. Le terme « nombre » désigne le nombre de classes distinctes qui t’intéressent. Cette décision influence la granularité de tes données et la complexité de ton modèle. Voici les éléments à prendre en compte pour chaque approche :
- Nombre de classes grossier : il s’agit de catégories plus larges et inclusives, comme « véhicule » et « non-véhicule ». Elles simplifient l’annotation et nécessitent moins de ressources informatiques, mais fournissent moins d’informations détaillées, ce qui peut limiter l’efficacité du modèle dans les scénarios complexes.
- Nombre de classes détaillé : il s’agit de davantage de catégories avec des distinctions plus fines, comme « berline », « SUV », « pick-up » et « moto ». Elles capturent des informations plus détaillées, ce qui améliore la précision et les performances du modèle. Cependant, leur annotation demande davantage de temps et de travail, et elles nécessitent plus de ressources informatiques.
Commencer avec des classes plus spécifiques peut être très utile, en particulier pour les projets complexes où les détails sont importants. Des classes plus spécifiques te permettent de recueillir des données plus détaillées, d’obtenir des informations plus approfondies et d’établir des distinctions plus claires entre les catégories. Cela améliore non seulement la précision du modèle, mais facilite également son ajustement ultérieur si nécessaire, tout en économisant du temps et des ressources.
Sources de données#
Tu peux utiliser des jeux de données publics ou recueillir tes propres données personnalisées. Les jeux de données publics comme ceux disponibles sur Kaggle et Google Dataset Search Engine proposent des données bien annotées et standardisées, ce qui en fait d’excellents points de départ pour entraîner et valider des modèles.
La collecte de données personnalisées, quant à elle, te permet d’adapter ton jeu de données à tes besoins spécifiques. Tu peux capturer des images et des vidéos avec des caméras ou des drones, extraire des images du Web ou utiliser des données internes existantes de ton organisation. Les données personnalisées te donnent davantage de contrôle sur leur qualité et leur pertinence. Combiner des sources de données publiques et personnalisées aide à créer un jeu de données diversifié et complet.
Éviter les biais lors de la collecte des données#
Un biais apparaît lorsque certains groupes ou scénarios sont sous-représentés ou surreprésentés dans ton jeu de données. Il produit un modèle performant sur certaines données, mais peu performant sur d’autres. Il est essentiel d’éviter les biais en IA afin que ton modèle de vision par ordinateur puisse fonctionner correctement dans une variété de scénarios.
Voici comment éviter les biais lors de la collecte des données :
- Sources diversifiées : collecte des données provenant de nombreuses sources afin de couvrir différents points de vue et scénarios.
- Représentation équilibrée : assure une représentation équilibrée de tous les groupes pertinents. Prends par exemple en compte différents âges, genres et groupes ethniques.
- Surveillance continue : examine et mets régulièrement à jour ton jeu de données afin d’identifier et de corriger les biais émergents.
- Techniques d’atténuation des biais : utilise des méthodes comme le suréchantillonnage des classes sous-représentées, l’augmentation des données et les algorithmes tenant compte de l’équité.
Le respect de ces pratiques aide à créer un modèle plus robuste et équitable, capable de bien se généraliser dans les applications du monde réel.
Qu’est-ce que l’annotation des données ?#
L’annotation des données est le processus d’étiquetage des données pour les rendre utilisables lors de l’entraînement de modèles d’apprentissage automatique. En vision par ordinateur, cela consiste à étiqueter des images ou des vidéos avec les informations dont un modèle a besoin pour apprendre. Sans données correctement annotées, les modèles ne peuvent pas apprendre avec précision les relations entre les entrées et les sorties.
Types d’annotation des 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 :
- Cadres englobants : cadres rectangulaires tracés autour des objets d’une image, principalement utilisés pour les tâches de détection d’objets. Ces cadres sont définis par leurs coordonnées supérieure gauche et inférieure droite.
- Polygones : contours détaillés des objets, permettant une annotation plus précise que les cadres englobants. Les polygones sont utilisés dans des tâches comme la segmentation d’instances, où la forme de l’objet est importante.
- Masques : masques binaires dans lesquels chaque pixel fait soit partie d’un objet, soit partie de l’arrière-plan. Les masques sont utilisés dans les tâches de segmentation sémantique afin de fournir des détails au niveau des pixels.
- Points clés : points spécifiques marqués dans une image pour identifier des emplacements d’intérêt. Les points clés sont utilisés dans des tâches comme l’estimation de pose et la détection de points caractéristiques du visage.
- Cadres englobants orientés : rectangles associés à un angle de rotation, utilisés dans les tâches OBB où les objets apparaissent selon des orientations arbitraires, comme dans les images aériennes.
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. Les formats les plus courants sont les suivants :
| Format | Structure des fichiers | Utilisé couramment pour |
|---|---|---|
| COCO | Fichier JSON unique | Détection d’objets, segmentation d’instances, détection de points clés, segmentation de l’arrière-plan et segmentation panoptique, légendage d’images |
| Pascal VOC | Un fichier XML par image | Détection d’objets |
| YOLO | Un fichier .txt par image | Détection d’objets, segmentation, pose et cadres orientés |
Le format YOLO stocke une ligne par objet, avec des indices de classes commençant à 0. Pour la détection d’objets, la ligne est class x_center y_center width height avec des coordonnées normalisées entre 0 et 1. Une ligne de segmentation remplace le cadre par les points normalisés du polygone de l’objet, tandis qu’une ligne de pose conserve le cadre et ajoute ensuite les coordonnées des points clés, avec un indicateur de visibilité pour chaque point clé lorsque le jeu de données déclare kpt_shape: [n, 3]. Une ligne OBB stocke class x1 y1 x2 y2 x3 y3 x4 y4 à l’aide de coordonnées normalisées des coins.
Si ton outil d’annotation exporte du COCO JSON, tu peux soit le convertir en étiquettes YOLO .txt, soit entraîner directement sur le fichier JSON avec une classe de jeu de données personnalisée.
Définir des directives d’annotation#
Après avoir choisi le type et le format d’annotation, l’étape suivante consiste à établir des règles d’étiquetage claires et objectives. Ces règles servent de feuille de route pour garantir la cohérence et l’exactitude tout au long du processus d’annotation. Les principaux aspects de ces règles sont les suivants :
- Clarté et précision : assure-toi que tes instructions sont claires. Utilise des exemples et des illustrations pour montrer ce qui est attendu.
- Cohérence : garde des annotations uniformes. Définis des critères standard pour annoter les différents types de données afin que toutes les annotations suivent les mêmes règles.
- Réduction des biais : reste neutre. Habitue-toi à être objectif et à minimiser tes biais personnels afin de 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 afin de rendre le processus d’annotation plus rapide et plus efficace.
L’examen et la mise à jour réguliers de tes règles d’étiquetage contribueront à maintenir des annotations exactes, cohérentes et alignées sur les objectifs de ton projet.
Outils d’annotation#
Un bon outil d’annotation te permet d’étiqueter chaque type requis par ta tâche, impose des directives cohérentes et exporte les étiquettes dans un format prêt pour l’entraînement. Ultralytics Platform fournit un éditeur d’annotations intégré couvrant la détection, la segmentation d’instances, la segmentation sémantique, la classification, la pose et les OBB, avec une annotation intelligente optimisée par SAM qui transforme un simple clic en masque pour les tâches de détection, de segmentation d’instances, de segmentation sémantique et d’OBB. Comme les annotations sont enregistrées selon la structure attendue par chaque tâche — lignes YOLO .txt pour les tâches spatiales et dossiers de classes pour la classification — ton jeu de données étiqueté passe directement à l’entraînement, sans étape de conversion.
Qualité des annotations : exactitude, précision et valeurs aberrantes#
Avant d’annoter à grande échelle, il est utile de comprendre l’exactitude, la précision, les valeurs aberrantes et le contrôle qualité afin de ne pas étiqueter tes données de manière contre-productive.
Comprendre l’exactitude et la précision#
Il est important de comprendre la différence entre l’exactitude et la précision, ainsi que leur lien avec l’annotation. L’exactitude désigne la proximité entre les données annotées et les valeurs réelles. Elle nous aide à mesurer dans quelle mesure les étiquettes reflètent les scénarios du monde réel. La précision indique la cohérence des annotations. Elle vérifie si tu attribues la même étiquette au même objet ou à la même caractéristique dans l’ensemble du jeu de données. Une exactitude et une précision élevées produisent des modèles mieux entraînés en réduisant le bruit et en améliorant la capacité du modèle à se généraliser à partir des données d’entraînement.
Identifier les valeurs aberrantes#
Les valeurs aberrantes sont des points de données qui s’écartent fortement des autres observations du jeu de données. Pour 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.
Tu peux utiliser différentes méthodes pour détecter et corriger les valeurs aberrantes :
- Techniques statistiques : pour détecter les valeurs aberrantes dans des caractéristiques numériques comme les valeurs des pixels, les coordonnées des cadres englobants ou la taille des objets, tu peux utiliser des méthodes comme les diagrammes en boîte, les histogrammes ou les scores-z.
- Techniques visuelles : pour repérer les anomalies dans des caractéristiques catégorielles comme les classes d’objets, les couleurs ou les formes, utilise des méthodes visuelles comme la représentation graphique des images, des étiquettes ou des cartes thermiques.
- Méthodes algorithmiques : utilise des outils comme le regroupement (par exemple, le regroupement K-means, DBSCAN) et les algorithmes de détection d’anomalies pour identifier les valeurs aberrantes en fonction des schémas de distribution des données.
Contrôle qualité des données annotées#
Comme pour les autres projets techniques, le contrôle qualité est indispensable pour les données annotées. Il est recommandé de vérifier régulièrement les annotations afin de s’assurer qu’elles sont exactes et cohérentes. Cela peut être fait de plusieurs manières :
- Examiner des échantillons de données annotées
- Utiliser des outils automatisés pour repérer les erreurs courantes
- Faire vérifier les annotations par une autre personne
Si tu travailles avec plusieurs personnes, la cohérence entre les différents annotateurs est importante. Un bon accord inter-annotateurs signifie que les directives sont claires et que tout le monde les applique de la même manière. Cela permet à tout le monde de rester aligné et de conserver des annotations cohérentes.
Pendant la vérification, si tu trouves des erreurs, corrige-les et mets à jour les directives afin d’éviter de futures erreurs. Fournis des retours aux annotateurs et propose régulièrement des formations pour contribuer à réduire les erreurs. Un processus solide de gestion des erreurs permet de conserver un jeu de données exact et fiable.
Stratégies efficaces d’étiquetage des données#
Pour rendre le processus d’étiquetage des données plus fluide et plus efficace, envisage de mettre en œuvre les stratégies suivantes :
- Directives d’annotation claires : fournis des instructions détaillées avec des exemples afin de garantir que tous les annotateurs interprètent les tâches de manière cohérente. Par exemple, lors de l’étiquetage d’oiseaux, précise s’il faut inclure l’oiseau entier ou uniquement certaines parties.
- Contrôles qualité réguliers : définis des critères de référence et utilise des métriques spécifiques pour examiner le travail, en maintenant des standards élevés grâce à des retours continus.
- Utiliser des outils de préannotation : de nombreuses plateformes d’annotation modernes proposent des fonctionnalités de préannotation assistée par IA qui peuvent accélérer considérablement le processus en générant automatiquement des annotations initiales que les humains peuvent ensuite affiner.
- Mettre en œuvre l’apprentissage actif : cette approche donne la priorité à l’étiquetage des échantillons les plus informatifs, ce qui peut réduire le nombre total d’annotations nécessaires tout en maintenant les performances du modèle.
- Traitement par lots : regroupe les images similaires pour l’annotation afin de maintenir la cohérence et d’améliorer l’efficacité.
Ces stratégies peuvent aider à maintenir des annotations de haute qualité tout en réduisant le temps et les ressources nécessaires au processus d’étiquetage.
Conclusion#
La collecte de données diversifiées et impartiales, ainsi que leur annotation cohérente avec les bons outils, constitue le fondement d’un modèle de vision par ordinateur fiable. Une fois ton jeu de données collecté et étiqueté, consulte le guide sur les étapes d’un projet de vision par ordinateur pour passer à l’entraînement et à l’évaluation. Si tu as des questions, adresse-toi à la communauté sur le dépôt GitHub d’Ultralytics ou sur le serveur Discord d’Ultralytics.
FAQ#
Pour minimiser les biais, collecte des données provenant de sources diversifiées, assure une représentation équilibrée de tous les groupes pertinents (comme les différents âges, genres et groupes ethniques), examine et mets régulièrement à jour ton jeu de données pour détecter les biais émergents, et applique des techniques d’atténuation comme le suréchantillonnage des classes sous-représentées, l’augmentation des données et les algorithmes tenant compte de l’équité. Éviter les biais de cette manière permet à ton modèle de vision par ordinateur de rester performant dans différents scénarios du monde réel et améliore sa capacité de généralisation.
Quelques centaines d’objets annotés par classe suffisent pour commencer à expérimenter avec l’apprentissage par transfert, mais pour obtenir des performances fiables dans le monde réel, Ultralytics recommande au moins 1 500 images et 10 000 instances étiquetées par classe. Associe un jeu de données suffisamment volumineux à une durée d’entraînement raisonnable — environ 300 époques constituent un point de départ courant, à réduire si le modèle commence rapidement à surapprendre — et veille à ce que tes annotations soient rigoureuses et alignées sur les objectifs spécifiques de ton projet. Découvre des stratégies d’entraînement détaillées dans le guide d’entraînement YOLO26.
Oui. Ultralytics Platform comprend un éditeur d’annotations intégré prenant en charge les cadres englobants, les polygones, les points clés, les cadres orientés et les étiquettes de classification dans un espace de travail unique. L’annotation intelligente optimisée par SAM accélère l’étiquetage pour les tâches de détection, de segmentation d’instances, de segmentation sémantique et d’OBB en générant des masques à partir d’un simple clic, tandis que la pose et la classification sont annotées manuellement. Les annotations sont stockées selon la structure attendue par chaque tâche — lignes YOLO
.txtpour les tâches spatiales et dossiers de classes pour la classification — et sont prêtes pour l’entraînement.Fais correspondre le type d’annotation à la tâche que tu souhaites entraîner. Les cadres englobants sont les plus rapides à dessiner et suffisent pour la détection d’objets. Les polygones et les masques demandent beaucoup plus de temps par objet, mais sont nécessaires pour la segmentation d’instances lorsque la forme exacte de l’objet est importante. Les points clés conviennent à l’estimation de pose et à la détection de points caractéristiques, tandis que les cadres orientés conviennent aux tâches OBB, comme l’imagerie aérienne, où un rectangle aligné sur les axes engloberait trop d’arrière-plan. Annoter pour la tâche la plus précise dont tu as réellement besoin permet de maintenir l’effort d’étiquetage proportionnel au résultat.
Établis des directives d’étiquetage claires et objectives, accompagnées d’instructions détaillées, d’exemples et d’illustrations, puis applique-les uniformément à tous les types de données afin que chaque annotation suive les mêmes règles. Forme les annotateurs à rester neutres pour réduire les biais personnels, examine et mets régulièrement à jour les directives, et utilise des contrôles automatisés de cohérence ainsi que les retours inter-annotateurs pour maintenir une exactitude élevée et rester aligné sur les objectifs de ton projet.