Skip to content

Techniques de prétraitement de données pour des données de vision par ordinateur annotées

Introduction

Après avoir défini les objectifs de ton projet de vision par ordinateur et recueilli et annoté des données, l'étape suivante consiste à prétraiter les données annotées et à les préparer pour l'entraînement du modèle. Des données propres et cohérentes sont essentielles pour créer un modèle performant.

Le prétraitement est une étape du flux de travail d'un projet de vision par ordinateur qui comprend le redimensionnement des images, la normalisation des valeurs des pixels, l'augmentation de l'ensemble de données et la division des données en ensembles d'entraînement, de validation et de test. Explorons les techniques essentielles et les meilleures pratiques pour nettoyer tes données !

Importance du prétraitement des données

Nous recueillons et annotons déjà nos données avec soin en tenant compte de plusieurs considérations. Alors, qu’est-ce qui rend le prétraitement des données si important pour un projet de vision par ordinateur ? Eh bien, le prétraitement des données consiste à placer vos données dans un format approprié pour l’entraînement qui réduit la charge de calcul et contribue à améliorer les performances du modèle. Voici quelques problèmes courants dans les données brutes que le prétraitement résout :

  • Bruit: variations non pertinentes ou alĂ©atoires dans les donnĂ©es.
  • IncohĂ©rence: Variations dans la taille, le format et la qualitĂ© des images.
  • DĂ©sĂ©quilibre: RĂ©partition inĂ©gale des classes ou des catĂ©gories dans l'ensemble de donnĂ©es.

Techniques de prétraitement des données

L’une des premières étapes du prétraitement des données est le redimensionnement. Certains modèles sont conçus pour gérer des tailles d’entrée variables, mais de nombreux modèles nécessitent une taille d’entrée cohérente. Le redimensionnement des images les rend uniformes et réduit la complexité de calcul.

Redimensionnement des images

Vous pouvez redimensionner vos images à l’aide des méthodes suivantes :

  • Interpolation bilinĂ©aire: Lisse les valeurs des pixels en prenant une moyenne pondĂ©rĂ©e des quatre valeurs de pixels les plus proches.
  • Voisin le plus proche: Attribue la valeur du pixel le plus proche sans faire de moyenne, ce qui conduit Ă  une image en bloc mais Ă  un calcul plus rapide.

Pour simplifier le redimensionnement, vous pouvez utiliser les outils suivants :

  • OpenCV: une bibliothèque populaire de vision par ordinateur avec des fonctions Ă©tendues pour le traitement des images.
  • PIL (oreiller): Une bibliothèque d'imagerie Python pour ouvrir, manipuler et enregistrer des fichiers d'images.

En ce qui concerne YOLOv8, le paramètre 'imgsz' pendant l'apprentissage du modèle permet des tailles d'entrée flexibles. Lorsqu'il est réglé sur une taille spécifique, par exemple 640, le modèle redimensionne les images d'entrée de façon à ce que leur plus grande dimension soit de 640 pixels tout en conservant le rapport d'aspect d'origine.

En évaluant les besoins spécifiques de votre modèle et de votre jeu de données, vous pouvez déterminer si le redimensionnement est une étape de prétraitement nécessaire ou si votre modèle peut gérer efficacement des images de différentes tailles.

Normalisation des valeurs de pixels

Une autre technique de prétraitement est la normalisation. La normalisation met à l’échelle les valeurs de pixel à une plage standard, ce qui permet une convergence plus rapide pendant l’entraînement et améliore les performances du modèle. Voici quelques techniques de normalisation courantes :

  • Échelle Min-Max: Met Ă  l'Ă©chelle les valeurs des pixels sur une plage de 0 Ă  1.
  • Normalisation du score Z: Met Ă  l'Ă©chelle les valeurs des pixels en fonction de leur moyenne et de leur Ă©cart-type.

En ce qui concerne YOLOv8, la normalisation est gérée de manière transparente dans le cadre de son pipeline de prétraitement pendant l’entraînement du modèle. YOLOv8 effectue automatiquement plusieurs étapes de prétraitement, y compris la conversion en RVB, la mise à l’échelle des valeurs de pixel dans la plage [0, 1] et la normalisation à l’aide de valeurs de moyenne et d’écart type prédéfinies.

Fractionnement du jeu de données

Une fois que vous avez nettoyé les données, vous êtes prêt à diviser le jeu de données. La division des données en ensembles d’entraînement, de validation et de test est effectuée pour s’assurer que le modèle peut être évalué sur des données invisibles afin d’évaluer ses performances de généralisation. Une répartition commune est de 70 % pour la formation, 20 % pour la validation et 10 % pour les tests. Il existe différents outils et bibliothèques que vous pouvez utiliser pour diviser vos données comme scikit-learn ou TensorFlow.

Tenez compte des points suivants lors du fractionnement de votre jeu de données :

  • Maintien de la distribution des donnĂ©es: Veille Ă  ce que la rĂ©partition des donnĂ©es des classes soit maintenue dans les ensembles de formation, de validation et de test.
  • Éviter les fuites de donnĂ©es: GĂ©nĂ©ralement, l'augmentation des donnĂ©es est effectuĂ©e après que l'ensemble de donnĂ©es a Ă©tĂ© divisĂ©. L'augmentation des donnĂ©es et tout autre prĂ©traitement ne doivent ĂŞtre appliquĂ©s qu'Ă  l'ensemble de formation afin d'Ă©viter que les informations provenant des ensembles de validation ou de test n'influencent la formation du modèle. -Équilibrer les classes: Pour les ensembles de donnĂ©es dĂ©sĂ©quilibrĂ©s, il faut envisager des techniques telles que le surĂ©chantillonnage de la classe minoritaire ou le sous-Ă©chantillonnage de la classe majoritaire dans l'ensemble de formation.

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

L’étape de prétraitement des données la plus couramment discutée est l’augmentation des données. L’augmentation des données augmente artificiellement la taille du jeu de données en créant des versions modifiées des images. En augmentant vos données, vous pouvez réduire le surajustement et améliorer la généralisation du modèle.

Voici quelques autres avantages de l’augmentation des données :

  • CrĂ©ation d'un ensemble de donnĂ©es plus robuste: L'augmentation des donnĂ©es peut rendre le modèle plus robuste aux variations et aux distorsions des donnĂ©es d'entrĂ©e. Cela inclut les changements d'Ă©clairage, d'orientation et d'Ă©chelle.
  • Rentable: L'augmentation des donnĂ©es est un moyen rentable d'accroĂ®tre la quantitĂ© de donnĂ©es de formation sans collecter et Ă©tiqueter de nouvelles donnĂ©es.
  • Meilleure utilisation des donnĂ©es: Chaque point de donnĂ©es disponible est utilisĂ© au maximum de son potentiel en crĂ©ant de nouvelles variations

Méthodes d’augmentation des données

Les techniques d’augmentation courantes incluent le retournement, la rotation, la mise à l’échelle et les ajustements de couleur. Plusieurs bibliothèques, telles que Albumentations, Imgaug et TensorFlow, peut générer ces augmentations.

Aperçu des augmentations de données

En ce qui concerne YOLOv8, tu peux augmenter ton jeu de données personnalisé en modifiant le fichier de configuration du jeu de données, un fichier .yaml. Dans ce fichier, tu peux ajouter une section d'augmentation avec des paramètres qui spécifient comment tu veux augmenter tes données.

Le référentielUltralytics YOLOv8 prend en charge un large éventail d'augmentations de données. Tu peux appliquer diverses transformations telles que :

  • Cultures alĂ©atoires
  • Retournement : Les images peuvent ĂŞtre retournĂ©es horizontalement ou verticalement.
  • Rotation : Les images peuvent ĂŞtre pivotĂ©es selon des angles spĂ©cifiques.
  • Distorsion

Vous pouvez également ajuster l’intensité de ces techniques d’augmentation par le biais de paramètres spécifiques pour générer plus de variété de données.

Une étude de cas sur le prétraitement

Prenons l’exemple d’un projet visant à développer un modèle permettant de détecter et de classer différents types de véhicules dans les images de circulation à l’aide de YOLOv8. Nous avons collecté des images de trafic et les avons annotées avec des cadres englobants et des étiquettes.

Voici à quoi ressemblerait chaque étape du prétraitement pour ce projet :

  • Redimensionnement des images : Depuis YOLOv8 gère les tailles d’entrĂ©e flexibles et effectue le redimensionnement automatiquement, le redimensionnement manuel n’est pas nĂ©cessaire. Le modèle ajustera la taille de l’image en fonction du paramètre 'imgsz' spĂ©cifiĂ© pendant l’entraĂ®nement.
  • Normalisation des valeurs de pixel : YOLOv8 normalise automatiquement les valeurs de pixel Ă  une plage de 0 Ă  1 pendant le prĂ©traitement, ce n’est donc pas nĂ©cessaire.
  • Fractionnement du jeu de donnĂ©es : divisez le jeu de donnĂ©es en ensembles d’entraĂ®nement (70 %), de validation (20 %) et de test (10 %) Ă  l’aide d’outils tels que scikit-learn.
  • Augmentation des donnĂ©es : modifiez le fichier de configuration du jeu de donnĂ©es (.yaml) pour inclure des techniques d’augmentation des donnĂ©es telles que les recadrages alĂ©atoires, les retournements horizontaux et les ajustements de luminositĂ©.

Ces étapes permettent de s’assurer que l’ensemble de données est préparé sans aucun problème potentiel et qu’il est prêt pour l’analyse exploratoire des données (EDA).

Techniques d’analyse exploratoire des données

Après avoir prétraité et augmenté votre ensemble de données, l’étape suivante consiste à obtenir des informations grâce à l’analyse exploratoire des données. L’EDA utilise des techniques statistiques et des outils de visualisation pour comprendre les modèles et les distributions de vos données. Vous pouvez identifier des problèmes tels que les déséquilibres de classe ou les valeurs aberrantes et prendre des décisions éclairées concernant le prétraitement ultérieur des données ou les ajustements d’entraînement du modèle.

Techniques d’EDA statistiques

Les techniques statistiques commencent souvent par le calcul de mesures de base telles que la moyenne, la médiane, l’écart-type et la plage. Ces mesures fournissent un aperçu rapide des propriétés de votre jeu de données d’image, telles que les distributions d’intensité des pixels. Comprendre ces statistiques de base vous aide à saisir la qualité et les caractéristiques globales de vos données, ce qui vous permet de repérer rapidement toute irrégularité.

Techniques d’EDA visuelle

Les visualisations sont essentielles dans l’EDA pour les jeux de données d’images. Par exemple, l’analyse du déséquilibre de classe est un autre aspect essentiel de l’EDA. Il permet de déterminer si certaines classes sont sous-représentées dans votre jeu de données, La visualisation de la distribution de différentes classes ou catégories d’images à l’aide de graphiques à barres peut rapidement révéler d’éventuels déséquilibres. De même, les valeurs aberrantes peuvent être identifiées à l’aide d’outils de visualisation tels que les boîtes à moustaches, qui mettent en évidence les anomalies dans l’intensité des pixels ou la distribution des caractéristiques. La détection des valeurs aberrantes empêche les points de données inhabituels de fausser vos résultats.

Les outils courants pour les visualisations sont les suivants :

  • Histogrammes et boĂ®tes Ă  moustaches : utiles pour comprendre la distribution des valeurs de pixel et identifier les valeurs aberrantes.
  • Nuages de points : utiles pour explorer les relations entre les caractĂ©ristiques de l’image ou les annotations.
  • Cartes thermiques : Efficaces pour visualiser la distribution des intensitĂ©s de pixels ou la distribution spatiale des caractĂ©ristiques annotĂ©es dans les images.

Utilisant Ultralytics Explorer pour EDA

Pour une approche plus avancée de l’EDA, vous pouvez utiliser le Ultralytics Outil d’exploration. Il offre des fonctionnalités robustes pour explorer les jeux de données de vision par ordinateur. En prenant en charge la recherche sémantique, les requêtes SQL et la recherche de similarité vectorielle, l’outil facilite l’analyse et la compréhension de vos données. Avec Ultralytics Explorer, vous pouvez créer des intégrations pour votre ensemble de données afin de trouver des images similaires, exécuter des requêtes SQL pour une analyse détaillée et effectuer des recherches sémantiques, le tout via une interface graphique conviviale.

Aperçu de Ultralytics Explorer

Tendre la main et se connecter

Avoir des discussions sur votre projet avec d’autres passionnés de vision par ordinateur peut vous donner de nouvelles idées sous différents angles. Voici quelques excellentes façons d’apprendre, de résoudre les problèmes et de réseauter :

Canaux pour se connecter avec la communauté

  • GitHub Issues : Visite le dĂ©pĂ´t GitHub YOLOv8 et utilise l'onglet Issues pour poser des questions, signaler des bogues et suggĂ©rer des fonctionnalitĂ©s. La communautĂ© et les responsables sont lĂ  pour t'aider Ă  rĂ©soudre les problèmes auxquels tu es confrontĂ©.
  • 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 YOLOv8 Documentation : Reporte-toi Ă  la documentation officielle de YOLOv8 pour obtenir des guides complets et des informations prĂ©cieuses sur de nombreuses tâches et projets de vision par ordinateur.

Votre ensemble de données est prêt !

Des données correctement redimensionnées, normalisées et augmentées améliorent les performances du modèle en réduisant le bruit et en améliorant la généralisation. En suivant les techniques de prétraitement et les meilleures pratiques décrites dans ce guide, vous pouvez créer un jeu de données solide. Une fois votre jeu de données prétraité prêt, vous pouvez passer en toute confiance aux étapes suivantes de votre projet.

FAQ

Quelle est l'importance du prétraitement des données dans les projets de vision par ordinateur ?

Le prétraitement des données est essentiel dans les projets de vision par ordinateur car il permet de s'assurer que les données sont propres, cohérentes et dans un format optimal pour l'entraînement des modèles. En s'attaquant à des problèmes tels que le bruit, l'incohérence et le déséquilibre des données brutes, les étapes de prétraitement telles que le redimensionnement, la normalisation, l'augmentation et le fractionnement des ensembles de données permettent de réduire la charge de calcul et d'améliorer les performances du modèle. Pour plus de détails, visite les étapes d'un projet de vision par ordinateur.

Comment puis-je utiliser Ultralytics YOLO pour augmenter les données ?

Pour augmenter les données avec Ultralytics YOLOv8 , tu dois modifier le fichier de configuration du jeu de données (.yaml). Dans ce fichier, tu peux spécifier diverses techniques d'augmentation telles que les recadrages aléatoires, les retournements horizontaux et les ajustements de luminosité. Cela peut être fait efficacement en utilisant les configurations d'entraînement expliquées ici. L'augmentation des données permet de créer un ensemble de données plus robuste, de réduire le surajustement et d'améliorer la généralisation du modèle.

Quelles sont les meilleures techniques de normalisation des données pour les données de vision par ordinateur ?

La normalisation met les valeurs des pixels à l'échelle d'une plage standard pour une convergence plus rapide et de meilleures performances pendant l'entraînement. Les techniques courantes comprennent :

  • Échelle Min-Max: Met Ă  l'Ă©chelle les valeurs des pixels sur une plage de 0 Ă  1.
  • Normalisation du score Z: Met Ă  l'Ă©chelle les valeurs des pixels en fonction de leur moyenne et de leur Ă©cart-type.

Pour YOLOv8, la normalisation est gérée automatiquement, y compris la conversion en RVB et la mise à l'échelle des valeurs des pixels. Tu trouveras plus d'informations à ce sujet dans la section consacrée à l'apprentissage du modèle.

Comment dois-je diviser mon ensemble de données annotées pour la formation ?

Pour diviser ton ensemble de données, une pratique courante consiste à le diviser en 70 % pour la formation, 20 % pour la validation et 10 % pour le test. Il est important de maintenir la distribution des données des classes à travers ces divisions et d'éviter les fuites de données en effectuant l'augmentation uniquement sur l'ensemble de formation. Utilise des outils comme scikit-learn ou TensorFlow pour diviser efficacement les ensembles de données. Voir le guide détaillé sur la préparation des ensembles de données.

Puis-je gérer différentes tailles d'images dans YOLOv8 sans redimensionnement manuel ?

Oui, Ultralytics YOLOv8 peut gérer différentes tailles d'images grâce au paramètre 'imgsz' lors de l'apprentissage du modèle. Ce paramètre garantit que les images sont redimensionnées de façon à ce que leur plus grande dimension corresponde à la taille spécifiée (par exemple 640 pixels), tout en conservant le rapport hauteur/largeur. Pour une gestion plus souple des entrées et des ajustements automatiques, consulte la section sur l'apprentissage du modèle.



Créé le 2024-05-31, Mis à jour le 2024-07-05
Auteurs : glenn-jocher (4), abirami-vina (1)

Commentaires