Skip to content

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

Introduction

Après avoir défini les objectifs de votre projet de vision par ordinateur et collecté et annoté des données, l'étape suivante consiste à prétraiter les données annotées et à les préparer pour l'apprentissage 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 vos données !

Importance du prétraitement des données

Nous collectons et annotons déjà soigneusement nos données en tenant compte de multiples considérations. Alors, pourquoi le prétraitement des données est-il si important pour un projet de vision par ordinateur ? Le prétraitement des données consiste à mettre vos données dans un format approprié pour l'apprentissage, ce qui réduit la charge de calcul et contribue à améliorer les performances du modèle. Voici quelques problèmes courants liés aux données brutes que le prétraitement permet de résoudre :

  • Bruit: variations non pertinentes ou alĂ©atoires des donnĂ©es.
  • Manque de cohĂ©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 constante. Le redimensionnement des images les rend uniformes et réduit la complexité des calculs.

Redimensionnement des images

Vous pouvez redimensionner vos images en utilisant les 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 donne une image plus complexe mais accĂ©lère les calculs.

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 d'images.
  • PIL (oreiller): Bibliothèque d'imagerie Python permettant d'ouvrir, de manipuler et d'enregistrer des fichiers d'images.

En ce qui concerne YOLO11, le paramètre "imgsz" utilisé lors de l'apprentissage du modèle permet des tailles d'entrée flexibles. Lorsqu'il est réglé sur une taille spécifique, telle que 640, le modèle redimensionne les images d'entrée de manière à 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 ensemble de données, vous pouvez déterminer si le redimensionnement est une étape de prétraitement nécessaire ou si votre modèle peut traiter efficacement des images de différentes tailles.

Normalisation des valeurs de pixels

La normalisation est une autre technique de prétraitement. La normalisation met à l'échelle les valeurs des pixels dans une fourchette standard, ce qui permet d'accélérer la convergence lors de l'apprentissage et d'améliorer les performances du modèle. Voici quelques techniques de normalisation courantes :

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

En ce qui concerne YOLO11, la normalisation est gérée de manière transparente dans le cadre de son pipeline de prétraitement pendant l'apprentissage du modèle. YOLO11 effectue automatiquement plusieurs étapes de prétraitement, notamment la conversion en RVB, la mise à l'échelle des valeurs des pixels dans l'intervalle [0, 1] et la normalisation à l'aide de valeurs prédéfinies de moyenne et d'écart-type.

Fractionnement de l'ensemble de données

Une fois les données nettoyées, vous êtes prêt à diviser l'ensemble de données. La division des données en ensembles de formation, de validation et de test a pour but de s'assurer que le modèle peut être évalué sur des données inédites afin d'évaluer ses performances en matière de généralisation. Une répartition courante est de 70 % pour la formation, 20 % pour la validation et 10 % pour le test. Il existe plusieurs outils et bibliothèques que vous pouvez utiliser pour diviser vos données, comme scikit-learn ou TensorFlow.

Tenez compte des éléments suivants lorsque vous divisez votre ensemble de données :

  • Maintien de la rĂ©partition des donnĂ©es: Veiller Ă  ce que la distribution des donnĂ©es des classes soit maintenue dans les ensembles de formation, de validation et de test.
  • Éviter les fuites de donnĂ©es: En règle gĂ©nĂ©rale, 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 d'apprentissage afin d'Ă©viter que les informations provenant des ensembles de validation ou de test n'influencent l'apprentissage du modèle. -Équilibrer les classes: Pour les ensembles de donnĂ©es dĂ©sĂ©quilibrĂ©s, il convient d'envisager des techniques telles que le surĂ©chantillonnage de la classe minoritaire ou le sous-Ă©chantillonnage de la classe majoritaire dans l'ensemble d'apprentissage.

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

L'étape de prétraitement des données la plus souvent évoquée est l'augmentation des données. L'augmentation des données augmente artificiellement la taille de l'ensemble de données en créant des versions modifiées des images. En augmentant vos données, vous pouvez réduire l'ajustement excessif 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 face 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'enrichissement des données

Les techniques d'augmentation les plus courantes sont le retournement, la rotation, la mise à l'échelle et l'ajustement des couleurs. Plusieurs bibliothèques, telles que Albumentations, Imgaug et TensorFlow's ImageDataGenerator, peuvent générer ces augmentations.

Aperçu des augmentations de données

En ce qui concerne YOLO11, vous pouvez augmenter votre jeu de données personnalisé en modifiant le fichier de configuration du jeu de données, un fichier .yaml. Dans ce fichier, vous pouvez ajouter une section d'augmentation avec des paramètres qui spécifient comment vous voulez augmenter vos données.

Le référentielUltralytics YOLO11 prend en charge un large éventail d'augmentations de données. Vous pouvez 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 grâce à des paramètres spécifiques afin de générer une plus grande variété de données.

Une étude de cas sur le prétraitement

Considérons un projet visant à développer un modèle de détection et de classification de différents types de véhicules dans des images de trafic à l'aide de YOLO11. Nous avons collecté des images de trafic et les avons annotées avec des boîtes de délimitation et des étiquettes.

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

  • Redimensionnement des images : Étant donnĂ© que YOLO11 gère des tailles d'entrĂ©e flexibles et effectue un redimensionnement automatique, un 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'apprentissage.
  • Normalisation des valeurs des pixels : YOLO11 normalise automatiquement les valeurs des pixels entre 0 et 1 au cours du prĂ©traitement, ce qui n'est pas nĂ©cessaire.
  • Diviser l'ensemble de donnĂ©es : Divisez l'ensemble de donnĂ©es en ensembles de formation (70 %), de validation (20 %) et de test (10 %) Ă  l'aide d'outils tels que scikit-learn.
  • Augmentation des donnĂ©es: Modifier 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 problème potentiel et qu'il est prêt pour l'analyse exploratoire des données (AED).

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'AED 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 des déséquilibres de classes ou des valeurs aberrantes et prendre des décisions éclairées quant au prétraitement des données ou à l'ajustement de l'apprentissage du modèle.

Techniques statistiques d'AED

Les techniques statistiques commencent souvent par le calcul de mesures de base telles que la moyenne, la médiane, l'écart type et l'étendue. Ces mesures donnent un aperçu rapide des propriétés de votre ensemble de données d'image, telles que les distributions d'intensité des pixels. La compréhension de 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 visuelles EDA

Les visualisations sont essentielles dans l'AED pour les ensembles de données d'images. Par exemple, l'analyse du déséquilibre des classes est un autre aspect essentiel de l'EDA. Elle permet de déterminer si certaines classes sont sous-représentées dans votre ensemble de données. La visualisation de la distribution des différentes classes ou catégories d'images à l'aide de diagrammes à barres peut rapidement révéler tout déséquilibre. De même, les valeurs aberrantes peuvent être identifiées à l'aide d'outils de visualisation tels que les diagrammes en boîte, qui mettent en évidence les anomalies dans l'intensité des pixels ou la distribution des caractéristiques. La détection des valeurs aberrantes permet d'éviter que des points de données inhabituels ne faussent vos résultats.

Les outils de visualisation les plus courants sont les suivants

  • Histogrammes et diagrammes en boĂ®te : Utiles pour comprendre la distribution des valeurs des pixels et identifier les valeurs aberrantes.
  • Diagrammes de dispersion : utiles pour explorer les relations entre les caractĂ©ristiques des images ou les annotations.
  • Cartes thermiques : Efficace pour visualiser la distribution des intensitĂ©s des pixels ou la distribution spatiale des caractĂ©ristiques annotĂ©es dans les images.

Utilisation de Ultralytics Explorer pour l'EDA

Note communautaire ⚠️

Depuis le ultralytics>=8.3.10La prise en charge de l'explorateur Ultralytics a été supprimée. Mais ne vous inquiétez pas ! Vous pouvez désormais accéder à des fonctionnalités similaires, voire améliorées, par l'intermédiaire de Ultralytics HUBHUB, notre plateforme intuitive sans code conçue pour rationaliser votre flux de travail. Avec Ultralytics HUB, vous pouvez continuer à explorer, visualiser et gérer vos données sans effort, le tout sans écrire une seule ligne de code. Ne manquez pas de le découvrir et de profiter de ses puissantes fonctionnalités!🚀

Pour une approche plus avancée de l'EDA, vous pouvez utiliser l'outil Ultralytics Explorer. Il offre de solides capacités d'exploration des ensembles de données de vision par ordinateur. En prenant en charge la recherche sémantique, les requêtes SQL et la recherche de similarités vectorielles, l'outil facilite l'analyse et la compréhension de vos données. Avec Ultralytics Explorer, vous pouvez créer des embeddings 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 au moyen d'une interface graphique conviviale.

Aperçu de Ultralytics Explorer

Tendre la main et se connecter

Discuter de votre projet avec d'autres passionnés de vision par ordinateur peut vous donner de nouvelles idées à partir de perspectives différentes. Voici quelques bonnes façons d'apprendre, de résoudre des problèmes et de travailler en réseau :

Canaux de communication avec la communauté

  • Questions sur GitHub : Visitez le dĂ©pĂ´t GitHub YOLO11 et utilisez l'onglet Issues pour poser des questions, signaler des bogues et suggĂ©rer des fonctionnalitĂ©s. La communautĂ© et les mainteneurs sont lĂ  pour vous aider Ă  rĂ©soudre les problèmes que vous rencontrez.
  • Ultralytics Serveur Discord : Rejoignez le serveur DiscordUltralytics pour vous 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 : Consultez la documentation officielle YOLO11 pour obtenir des guides dĂ©taillĂ©s et des informations prĂ©cieuses sur de nombreuses tâches et projets de vision par ordinateur.

Votre jeu 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 ensemble de données solide. Une fois votre ensemble de données prétraitées 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 garantit 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 des modèles. Pour plus de détails, consultez les étapes d'un projet de vision par ordinateur.

Comment puis-je utiliser Ultralytics YOLO pour l'enrichissement des données ?

Pour l'augmentation des données avec Ultralytics YOLO11 , vous devez modifier le fichier de configuration du jeu de données (.yaml). Dans ce fichier, vous pouvez 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 l'ajustement excessif 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 permet de ramener les valeurs des pixels à une fourchette standard afin d'accélérer la convergence et d'améliorer les performances lors de l'apprentissage. Les techniques les plus courantes sont les suivantes :

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

Pour YOLO11, la normalisation est gérée automatiquement, y compris la conversion en RVB et la mise à l'échelle des valeurs des pixels. Pour en savoir plus, consultez 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 votre 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. Utilisez des outils tels que 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 des images de tailles différentes dans YOLO11 sans avoir à les redimensionner manuellement ?

Oui, Ultralytics YOLO11 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 manière à 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, consultez la section sur l'apprentissage du modèle.

📅C réé il y a 6 mois ✏️ Mis à jour il y a 2 mois

Commentaires