Ultralytics YOLO27 :
Get Started

Stratégies de collecte et d’annotation des données en 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 pour qu’un modèle puisse apprendre à partir de ces données. Leur qualité détermine directement les performances du modèle. C’est pourquoi il est important de définir les classes, de choisir des sources impartiales et d’assurer la cohérence des annotations avant tout entraînement.



Regarder : Comment élaborer des stratégies efficaces de collecte et d’annotation des données pour la vision par ordinateur 🚀

Ce guide aborde la définition des classes et la collecte des données, l’annotation des données, ainsi que les types et formats d’annotation disponibles, et les stratégies d’étiquetage efficaces — chaque décision étant alignée sur les objectifs de ton projet.

Définir 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, les sources de données à choisir et les moyens de préserver l’impartialité du jeu de données.

Choisir les classes adaptées à ton projet#

L’une des premières questions à se poser au lancement d’un projet de vision par ordinateur est le nombre de classes à inclure. Tu dois déterminer les catégories ou les étiquettes que ton modèle devra reconnaître et différencier. 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 dans un magasin, tes classes peuvent être « fruits », « légumes », « boissons » et « collations ». Définir les classes en fonction des objectifs de ton projet permet de garder un jeu de données pertinent et ciblé.

Lorsque tu définis tes classes, il est également important de choisir entre un nombre restreint de classes générales et un nombre plus élevé de classes détaillées. Le « nombre de classes » désigne le nombre de classes distinctes qui t’intéressent. Ce choix influe sur le niveau de détail de tes données et sur la complexité de ton modèle. Voici les éléments à prendre en compte pour chaque approche :

  • Nombre restreint de classes : 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 de calcul, mais fournissent des informations moins détaillées, ce qui peut limiter l’efficacité du modèle dans des scénarios complexes.
  • Nombre élevé de classes : il s’agit de catégories plus nombreuses et plus précises, comme « berline », « SUV », « camionnette » et « moto ». Elles fournissent des informations plus détaillées, ce qui améliore la précision et les performances du modèle. Leur annotation prend toutefois plus de temps et d’efforts, et elles nécessitent davantage de ressources de calcul.

Commencer avec des classes plus précises peut être très utile, en particulier dans les projets complexes où les détails comptent. Des classes plus précises te permettent de recueillir des données plus détaillées, d’obtenir des informations plus approfondies et de mieux distinguer les catégories. Cela améliore la précision du modèle et facilite aussi son ajustement ultérieur, 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 recueillir tes propres données. Les jeux de données publics, comme ceux disponibles sur Kaggle et Google Dataset Search Engine, proposent des données normalisées et bien annotées, ce qui en fait d’excellents points de départ pour entraîner et valider des modèles.

En revanche, la collecte de données personnalisées 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, récupérer des images sur le Web ou utiliser les données internes déjà disponibles dans ton organisation. Les données personnalisées te donnent davantage de contrôle sur leur qualité et leur pertinence. En combinant des sources publiques et personnalisées, tu peux créer un jeu de données varié et complet.

Éviter les biais dans 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. Le modèle obtenu peut alors bien fonctionner sur certaines données, mais mal sur d’autres. Il est essentiel d’éviter les biais en IA pour que ton modèle de vision par ordinateur fonctionne correctement dans des scénarios variés.

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

  • Diversité des sources : collecte des données provenant de nombreuses sources afin de couvrir différents points de vue et scénarios.
  • Représentation équilibrée : veille à représenter équitablement tous les groupes concernés. Pense, par exemple, à varier les âges, les genres et les origines ethniques.
  • Suivi continu : examine et actualise régulièrement ton jeu de données pour repérer et corriger les biais émergents.
  • Techniques d’atténuation des biais : utilise des méthodes telles que le suréchantillonnage des classes sous-représentées, l’augmentation des données et les algorithmes conçus pour favoriser l’équité.

En suivant ces pratiques, tu peux créer un modèle plus robuste et plus équitable, capable de bien généraliser dans des applications réelles.

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

L’annotation des données consiste à étiqueter les données pour les rendre exploitables lors de l’entraînement de modèles d’apprentissage automatique. En vision par ordinateur, cela signifie étiqueter les images ou les 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, différents types d’annotation des données sont possibles. En voici quelques exemples :

  • Boîtes englobantes : rectangles dessinés autour des objets dans une image et principalement utilisés pour la détection d’objets. Ces boîtes sont définies par les coordonnées de leurs coins supérieur gauche et inférieur droit.
  • Polygones : contours détaillés des objets, qui permettent une annotation plus précise qu’avec des boîtes englobantes. 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 où chaque pixel appartient soit à un objet, soit à l’arrière-plan. Les masques sont utilisés pour la segmentation sémantique, afin d’obtenir des détails au niveau du pixel.
  • Points clés : points spécifiques marqués dans une image pour repérer 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 des repères faciaux.
  • Boîtes englobantes orientées : rectangles associés à un angle de rotation, utilisés dans les tâches d’OBB où les objets peuvent apparaître dans n’importe quelle orientation, par exemple dans les images aériennes.

Data annotation types including bounding boxes, polygons, and masks

Formats d’annotation courants#

Après avoir choisi un type d’annotation, il est important de sélectionner le format approprié pour stocker et partager les annotations. Les formats les plus courants sont les suivants :

FormatStructure des fichiersUtilisations courantes
COCOUn seul fichier JSONDétection d’objets, segmentation d’instances, détection de points clés, segmentation de régions non constituées d’objets et segmentation panoptique, légendage d’images
Pascal VOCUn fichier XML par imageDétection d’objets
YOLOUn fichier .txt par imageDétection d’objets, segmentation, pose et boîtes orientées

Le format YOLO stocke une ligne par objet, avec des indices de classe commençant à 0. Pour la détection d’objets, la ligne est au format class x_center y_center width height, avec des coordonnées normalisées entre 0 et 1. Une ligne de segmentation remplace la boîte par les points normalisés du polygone de l’objet, tandis qu’une ligne de pose conserve la boîte 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 d’OBB stocke class x1 y1 x2 y2 x3 y3 x4 y4 à l’aide des coordonnées normalisées des sommets.

Si ton outil d’annotation exporte du JSON COCO, tu peux soit le convertir en étiquettes YOLO .txt, soit entraîner directement le modèle à partir du JSON avec une classe de jeu de données personnalisée.

Définir des consignes 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 guide pour assurer la cohérence et l’exactitude tout au long du processus d’annotation. Elles doivent notamment porter sur les points suivants :

  • Clarté et précision : veille à ce que tes consignes soient claires. Utilise des exemples et des illustrations pour montrer ce qui est attendu.
  • Cohérence : veille à uniformiser tes annotations. 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. Apprends à rester objectif et à réduire tes biais 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, afin d’accélérer et de simplifier le processus d’annotation.

En examinant et en actualisant régulièrement tes règles d’étiquetage, tu maintiendras des annotations exactes et cohérentes, 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, garantit le respect de consignes cohérentes et exporte les étiquettes dans un format prêt pour l’entraînement. La plateforme Ultralytics propose un éditeur d’annotations intégré qui prend en charge la détection, la segmentation d’instances, la segmentation sémantique, la classification, l’estimation de pose et l’OBB, avec une annotation intelligente assistée par SAM qui génère un masque à partir d’un simple clic pour les tâches de détection, de segmentation d’instances, de segmentation sémantique et d’OBB. Comme les annotations sont enregistrées dans la structure attendue pour chaque tâche — des lignes YOLO .txt pour les tâches spatiales et des dossiers de classes pour la classification —, ton jeu de données étiqueté peut passer directement à l’entraînement, sans étape de conversion.

Qualité des annotations : exactitude, précision et valeurs aberrantes#

Avant de commencer l’annotation à grande échelle, il est utile de comprendre l’exactitude, la précision, les valeurs aberrantes et le contrôle qualité, afin d’éviter d’é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 indique dans quelle mesure les données annotées sont proches des valeurs réelles. Elle permet de mesurer la fidélité des étiquettes aux situations du monde réel. La précision indique la cohérence des annotations. Elle permet de vérifier 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 permettent de mieux entraîner les modèles en réduisant le bruit et en améliorant leur capacité à généraliser à partir des données d’entraînement.

Accuracy vs precision comparison for data annotation

Repérer les valeurs aberrantes#

Les valeurs aberrantes sont des points de données qui s’écartent considérablement des autres observations du jeu de données. Dans le cas des annotations, il peut s’agir d’une image étiquetée incorrectement ou d’une annotation qui ne correspond pas au reste du jeu de données. Ces valeurs sont problématiques, car elles peuvent fausser l’apprentissage du modèle et entraîner des prédictions inexactes ainsi qu’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 les caractéristiques numériques comme les valeurs des pixels, les coordonnées des boîtes englobantes ou la taille des objets, tu peux utiliser des méthodes telles que les diagrammes en boîte, les histogrammes ou les scores z.
  • 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 telles que l’affichage d’images, d’étiquettes ou de cartes thermiques.
  • Méthodes algorithmiques : utilise des outils comme le clustering (par exemple, le clustering K-means et DBSCAN) et des algorithmes de détection d’anomalies pour repérer les valeurs aberrantes en fonction des schémas de distribution des données.

Contrôle qualité des données annotées#

Comme pour tout projet technique, 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. Voici quelques méthodes pour y parvenir :

  • Examiner des échantillons de données annotées
  • Utiliser des outils automatisés pour repérer les erreurs courantes
  • Demander à une autre personne de vérifier les annotations

Si plusieurs personnes travaillent sur le projet, la cohérence entre les annotateurs est importante. Un bon accord inter-annotateurs signifie que les consignes sont claires et que tout le monde les applique de la même façon. Cela permet à toute l’équipe de rester sur la même longueur d’onde et d’assurer la cohérence des annotations.

Si tu repères des erreurs lors de la vérification, corrige-les et mets à jour les consignes pour éviter qu’elles ne se reproduisent. Donne des retours aux annotateurs et propose des formations régulières pour les aider à réduire les erreurs. Un processus rigoureux de traitement des erreurs permet de préserver l’exactitude et la fiabilité de ton jeu de données.

Stratégies efficaces d’annotation des données#

Pour rendre le processus d’annotation des données plus fluide et efficace, envisage de mettre en œuvre les stratégies suivantes :

  • Consignes d’annotation claires : Fournis des instructions détaillées accompagnées d’exemples afin que tous les annotateurs interprètent les tâches de façon cohérente. Par exemple, pour annoter des oiseaux, précise s’il faut inclure l’oiseau entier ou seulement certaines parties.
  • Contrôles qualité réguliers : Définis des critères de référence et utilise des indicateurs spécifiques pour examiner le travail, en maintenant des exigences élevées grâce à des retours continus.
  • Utilise des outils de préannotation : De nombreuses plateformes d’annotation modernes proposent des fonctionnalités de préannotation assistée par l’IA qui peuvent accélérer considérablement le processus en générant automatiquement des annotations initiales que les humains peuvent ensuite affiner.
  • Mets en œuvre l’apprentissage actif : Cette approche donne la priorité à l’annotation 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 contribuer à maintenir des annotations de grande qualité tout en réduisant le temps et les ressources nécessaires au processus d’annotation.

Conclusion#

La collecte de données diversifiées et non biaisées, puis leur annotation cohérente à l’aide des bons outils, constitue la base d’un modèle de vision par ordinateur fiable. Une fois ton jeu de données collecté et annoté, consulte le guide des étapes d’un projet de vision par ordinateur pour passer à l’entraînement et à l’évaluation. Si tu as des questions en cours de route, adresse-toi à la communauté sur le dépôt GitHub d’Ultralytics ou le serveur Discord d’Ultralytics.

FAQ#

  • Pour minimiser les biais, collecte des données provenant de sources variées, veille à ce que tous les groupes concernés (par exemple, différents âges, genres et groupes ethniques) soient représentés de façon équilibrée, examine et actualise régulièrement 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é. Cette méthode permet à ton modèle de vision par ordinateur de rester performant dans des scénarios réels variés et améliore sa capacité de généralisation.

  • Établis des consignes d’annotation 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, révise et actualise régulièrement les consignes, et utilise des contrôles de cohérence automatisés ainsi que les retours entre annotateurs pour maintenir une grande précision conforme aux objectifs de ton projet.

  • Quelques centaines d’objets annotés par classe suffisent pour commencer à expérimenter l’apprentissage par transfert, mais pour obtenir des performances fiables dans des conditions réelles, Ultralytics recommande au moins 1 500 images et 10 000 instances annotées par classe. Associe un jeu de données suffisamment volumineux à un calendrier d’entraînement raisonnable — environ 300 époques est un point de départ courant, à réduire si le modèle surapprend rapidement — et veille à ce que tes annotations soient rigoureuses et conformes aux objectifs spécifiques de ton projet. Découvre des stratégies d’entraînement détaillées dans le guide d’entraînement de YOLO26.

  • Oui. Ultralytics Platform intègre un éditeur d’annotations qui prend en charge les boîtes englobantes, les polygones, les points clés, les boîtes orientées et les étiquettes de classification dans un même espace de travail. L’annotation intelligente basée sur SAM accélère l’étiquetage des tâches de détection, de segmentation d’instances, de segmentation sémantique et d’OBB en générant des masques d’un seul clic ; les jeux de données de pose peuvent utiliser les modèles de pose YOLO pour l’annotation intelligente, tandis que la classification est annotée manuellement. Les annotations sont stockées dans le format attendu par chaque tâche — des lignes YOLO .txt pour les tâches spatiales et des dossiers de classes pour la classification —, prêtes pour l’entraînement.

  • Choisis le type d’annotation en fonction de la tâche que tu veux entraîner. Les boîtes englobantes sont les plus rapides à tracer et suffisent à la détection d’objets. Les polygones et les masques demandent nettement plus de temps par objet, mais sont nécessaires pour la segmentation d’instances lorsque la forme exacte d’un objet importe. Les points clés conviennent à l’estimation de pose et à la détection de repères, tandis que les boîtes orientées conviennent aux tâches OBB, comme l’imagerie aérienne, où un rectangle aligné sur les axes engloberait trop d’arrière-plan. En annotant pour la tâche la plus précise dont tu as réellement besoin, tu maintiens l’effort d’annotation proportionnel au résultat attendu.

Commentaires