YOLO Vision 2026 :

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 computer vision project : tu rassembles des images ou des vidéos représentatives, puis tu les étiquettes pour qu'un modèle puisse en tirer des enseignements. La qualité de ces données détermine directement les performances du modèle, c'est pourquoi la définition des classes, un approvisionnement neutre et une annotation cohérente sont essentiels avant même de commencer l'entraînement.



Watch: How to Build Effective Data Collection and Annotation Strategies for Computer Vision 🚀

Ce guide aborde setting up classes and collecting data, what data annotation is ainsi que les types et formats d'annotation à choisir, et efficient labeling strategies — chaque décision étant alignée sur your project's goals.

Configuration des classes et collecte de données#

La collecte d'images et de vidéos pour un projet de vision par ordinateur repose sur trois décisions : combien de classes définir, où sourcer les données et comment maintenir le jeu de données exempt de biais.

Choisir les bonnes classes pour ton projet#

L'une des premières questions lors du démarrage d'un projet de vision par ordinateur est de savoir combien de classes inclure. Tu dois déterminer l'appartenance aux classes, ce qui implique les différentes catégories ou étiquettes que tu souhaites que ton modèle reconnaisse et différencie. Le nombre de classes doit être déterminé par les objectifs spécifiques de ton projet.

Par exemple, si tu souhaites surveiller la circulation, tes classes pourraient inclure "voiture", "camion", "bus", "moto" et "vélo". En revanche, pour le suivi d'articles dans un magasin, tes classes pourraient être "fruits", "légumes", "boissons" et "snacks". Définir des classes en fonction des objectifs de ton projet permet de garder ton jeu de données pertinent et ciblé.

Lorsque tu définis tes classes, une autre distinction importante à faire est de choisir entre un décompte de classes grossier ou fin. 'Décompte' fait référence au 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 points à considérer pour chaque approche :

  • Décompte de classes grossier : Ce sont des 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 computationnelles mais fournissent moins d'informations détaillées, ce qui pourrait limiter l'efficacité du modèle dans des scénarios complexes.
  • Décompte de classes fin : Davantage 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 la précision et les performances du modèle. Cependant, elles sont plus longues et plus laborieuses à annoter et nécessitent davantage de ressources computationnelles.

Commencer avec des classes plus spécifiques peut être très utile, surtout dans les projets complexes où les détails sont importants. Des classes plus spécifiques te permettent de collecter des données plus détaillées, d'obtenir des insights plus profonds et d'établir des distinctions plus claires entre les catégories. Cela améliore non seulement la précision du modèle, mais facilite aussi l'ajustement du modèle plus tard si nécessaire, économisant ainsi 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 tels que ceux de Kaggle et Google Dataset Search Engine offrent 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, en revanche, 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, scraper le Web pour obtenir des images, ou utiliser des données internes existantes de ton organisation. Les données personnalisées te donnent plus 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 dans la collecte de données#

Le biais se produit lorsque certains groupes ou scénarios sont sous-représentés ou surreprésentés dans ton jeu de données. Cela conduit à un modèle qui fonctionne bien sur certaines données mais mal sur d'autres. Il est crucial d'éviter bias in AI afin que ton modèle de vision par ordinateur puisse donner de bons résultats dans une variété de scénarios.

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

  • Sources diversifiées : Collecte des données à partir de nombreuses sources pour capturer différentes perspectives et scénarios.
  • Représentation équilibrée : Inclue une représentation équilibrée de tous les groupes pertinents. Par exemple, prends en compte différents âges, genres et ethnicités.
  • Surveillance continue : Examine et mets à jour régulièrement ton jeu de données pour identifier et traiter tout biais émergent.
  • Techniques d'atténuation des biais : Utilise des méthodes telles que le suréchantillonnage des classes sous-représentées, la data augmentation et des algorithmes soucieux de l'équité.

Suivre ces pratiques aide à créer un modèle plus robuste et équitable, capable de bien se généraliser dans des applications réelles.

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

L'annotation des données est le processus qui consiste à étiqueter les données pour les rendre utilisables lors de l'entraînement de modèles de machine learning. En vision par ordinateur, cela signifie étiqueter des images ou des vidéos avec les informations nécessaires pour qu'un modèle puisse 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 de données#

En fonction des exigences spécifiques d'un computer vision task, il existe différents types d'annotation de données. En voici quelques exemples :

  • Bounding Boxes : Boîtes rectangulaires dessinées autour des objets dans 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.
  • Polygones : Contours détaillés pour les objets, permettant une annotation plus précise que les boîtes englobantes. Les polygones sont utilisés dans des tâches telles que instance segmentation, où la forme de l'objet est importante.
  • Masques : Masques binaires où chaque pixel fait soit partie d'un objet, soit de l'arrière-plan. Les masques sont utilisés dans les tâches de semantic segmentation pour fournir des détails au niveau du pixel.
  • 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 telles que pose estimation et la détection de repères faciaux.
  • Boîtes englobantes orientées : des rectangles dotés d'un angle de rotation, utilisés dans les tâches OBB où les objets apparaissent selon des orientations arbitraires, comme dans l'imagerie aérienne.

Data annotation types including bounding boxes, polygons, and masks

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 :

FormatStructure de fichierCouramment utilisé pour
COCOFichier JSON uniqueObject detection, segmentation d'instances, détection de points clés, segmentation de zones et panoptic segmentation, légende 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 class x_center y_center width height avec des coordonnées normalisées de 0 à 1. Une ligne de segmentation remplace la boîte par les points de polygone normalisés de l'objet, tandis qu'une ligne de pose conserve la boîte et y ajoute les coordonnées des points clés à la suite, avec un indicateur de visibilité par 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 en utilisant des coordonnées de coins normalisées.

Si ton outil d'annotation exporte au format COCO JSON, tu peux soit le convertir en étiquettes YOLO .txt, soit l'entraîner directement sur le JSON avec une classe de jeu de données personnalisée.

Établir des directives d'annotation#

Une fois le type d'annotation et le format choisis, 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'accuracy tout au long du processus d'annotation. Les aspects clés de ces règles incluent :

  • Clarté et détail : Assure-toi que tes instructions sont claires. Utilise des exemples et des illustrations pour montrer ce qui est attendu.
  • Cohérence : Garde tes annotations uniformes. Établis des critères standard pour annoter différents types de données, afin que toutes les annotations suivent les mêmes règles.
  • Réduction des biais : Reste neutre. Apprends à être objectif et à minimiser tes biais personnels pour garantir des annotations équitables.
  • Efficacité : Travaille intelligemment, pas plus dur. Utilise des outils et des workflows qui automatisent les tâches répétitives, rendant le processus d'annotation plus rapide et plus efficace.

Réviser et mettre à jour régulièrement tes règles d'étiquetage aidera à garder tes annotations précises, cohérentes et alignées avec les objectifs de ton projet.

Outils d'annotation#

Un bon outil d'annotation te permet de labelliser chaque type dont ton projet a besoin, impose des directives cohérentes et exporte les étiquettes dans un format prêt pour l'entraînement. Ultralytics Platform fournit un éditeur d'annotation intégré couvrant la détection, la segmentation d'instances, la segmentation sémantique, la classification, la pose et l'OBB, avec l'annotation intelligente propulsée par SAM qui transforme un simple clic en un 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 dans la disposition attendue par chaque tâche — des lignes YOLO .txt pour les tâches spatiales et des dossiers de classe pour la classification — ton jeu de données étiqueté passe directement à l'entraînement sans étape de conversion.

Qualité de l'annotation : exactitude, précision et valeurs aberrantes#

Avant de procéder à l'annotation à grande échelle, il est utile de comprendre l'exactitude, la precision, les valeurs aberrantes et le contrôle de la qualité, afin de ne pas étiqueter tes données d'une 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 et leur lien avec l'annotation. L'exactitude fait référence à la proximité des données annotées par rapport aux vraies valeurs. Elle nous aide à mesurer à quel point 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 tout au long du jeu de données. Une exactitude et une précision élevées permettent d'obtenir des modèles mieux entraînés en réduisant le bruit et en améliorant la capacité du modèle à généraliser à partir des training data.

Accuracy vs precision comparison for data annotation

Identifier les valeurs aberrantes#

Les valeurs aberrantes sont des points de données qui s'écartent assez significativement des autres observations dans le jeu de données. En ce qui concerne les annotations, une valeur aberrante pourrait ê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, conduisant à des prédictions inexactes et une mauvaise généralisation.

Tu peux utiliser diverses méthodes pour détecter et corriger les valeurs aberrantes :

  • Techniques statistiques : Pour détecter les valeurs aberrantes dans les caractéristiques numériques telles que les valeurs des pixels, les coordonnées des bounding box ou la taille des objets, tu peux utiliser des méthodes telles que les boîtes à moustaches, 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 le traçage d'images, d'étiquettes ou de cartes de chaleur (heat maps).
  • Méthodes algorithmiques : Utilise des outils tels que le clustering (par exemple, le clustering K-means, DBSCAN) et des algorithmes d'anomaly detection pour identifier les valeurs aberrantes en fonction des schémas de distribution des données.

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

Tout comme pour d'autres projets techniques, le contrôle qualité est indispensable pour les données annotées. Il est de bonne pratique de vérifier régulièrement les annotations pour s'assurer qu'elles sont exactes et cohérentes. Cela peut être fait de plusieurs manières :

  • Passer en revue 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 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 suit de la même manière. Cela permet à tout le monde d'être sur la même longueur d'onde et aux annotations d'être cohérentes.

Lors de la révision, si tu trouves des erreurs, corrige-les et mets à jour les directives pour éviter de futures erreurs. Fournis des commentaires aux annotateurs et propose une formation régulière pour aider à réduire les erreurs. Avoir un processus solide pour gérer les erreurs permet de garder ton 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 ces stratégies :

  • Directives d'annotation claires : Fournis des instructions détaillées avec des exemples pour t'assurer 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 juste certaines parties.
  • Contrôles qualité réguliers : Établis des benchmarks et utilise des métriques spécifiques pour examiner le travail, en maintenant des standards élevés grâce à des commentaires continus.
  • Utiliser des outils de pré-annotation : De nombreuses plateformes d'annotation modernes offrent des fonctionnalités de pré-annotation assistées 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.
  • Mettre en œuvre l'apprentissage actif : Cette approche donne la priorité à l'étiquetage des échantillons les plus informatifs en premier, ce qui peut réduire le nombre total d'annotations nécessaires tout en maintenant les performances du modèle.
  • Traitement par lots : Regroupe des 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 requis pour le processus d'étiquetage.

Conclusion#

Collecter des données diversifiées et non biaisées et les annoter de manière cohérente avec les bons outils constitue la base d'un modèle de vision par ordinateur fiable. Une fois ton jeu de données collecté et étiqueté, passe au guide des étapes d'un projet de vision par ordinateur pour entamer l'entraînement et l'évaluation. Si des questions se posent en chemin, pose-les à 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 diverses, assure une représentation équilibrée entre tous les groupes pertinents (comme les différents âges, genres et ethnicités), examine et mets à jour régulièrement ton jeu de données pour détecter les biais émergents, et applique des techniques d'atténuation telles que le suréchantillonnage des classes sous-représentées, l'augmentation de données et les algorithmes soucieux d'équité. Éviter les biais de cette manière permet à ton modèle de vision par ordinateur de conserver de bonnes performances dans des scénarios réels variés et améliore sa capacité de généralisation.

  • Établis des directives d'étiquetage claires et objectives avec des instructions détaillées, des exemples et des 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 à jour les directives régulièrement, et utilise des vérifications de cohérence automatisées ainsi que les retours entre annotateurs pour maintenir une précision élevée et alignée avec les objectifs de ton projet.

  • Quelques centaines d'objets annotés par classe suffisent pour commencer à expérimenter avec le transfer learning, mais pour des performances réelles et fiables, Ultralytics recommande at least 1,500 images and 10,000 labeled instances per class. Associe un jeu de données suffisamment grand à un calendrier d'entraînement raisonnable — around 300 epochs est un point de départ courant, réduit si le modèle surapprend prématurément — 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 YOLO26 training guide.

  • Oui. Ultralytics Platform inclut un éditeur d'annotation intégré 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 espace de travail unique. L'annotation intelligente propulsée par SAM accélère le étiquetage pour la détection, la segmentation d'instances, la segmentation sémantique et l'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 dans la disposition attendue par chaque tâche — des lignes YOLO .txt pour les tâches spatiales, et des dossiers de classe pour la classification — prêtes pour l'entraînement.

  • Fais correspondre le type d'annotation à la tâche que tu comptes entraîner. Les boîtes englobantes sont les plus rapides à dessiner et c'est tout ce dont a besoin la détection d'objets. Les polygones et les masques demandent nettement plus de temps par objet, mais ils 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, et les boîtes orientées conviennent aux tâches OBB telles que 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 de labellisation proportionnel au résultat.

Commentaires