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

Introduction

Une fois que tu as défini les objectifs de ton projet de vision par ordinateur et collecté et annoté tes 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.



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Le prétraitement est une étape du flux de travail des projets de vision par ordinateur qui inclut le redimensionnement des images, la normalisation des valeurs de pixels, l'augmentation du jeu 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 collectons et annotons déjà nos données avec soin, en tenant compte de multiples facteurs. 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 à mettre tes données dans un format adapté à l'entraînement, ce qui réduit la charge de calcul et aide à améliorer les performances du modèle. Voici quelques problèmes courants dans les données brutes que le prétraitement permet de résoudre :

  • 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 le jeu de données.

Techniques de prétraitement des données

L'une des premières étapes, et la plus importante, 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 beaucoup nécessitent une taille d'entrée cohérente. Le redimensionnement rend les images uniformes et réduit la complexité de calcul.

Redimensionnement des images

Tu peux redimensionner tes images en utilisant les méthodes suivantes :

  • Interpolation bilinéaire : Lisse les valeurs de pixels en prenant une moyenne pondérée des quatre valeurs de pixels les plus proches.
  • Plus proche voisin : Attribue la valeur de pixel la plus proche sans faire de moyenne, ce qui donne une image pixélisée mais permet un calcul plus rapide.

Pour faciliter le redimensionnement, tu peux utiliser les outils suivants :

  • OpenCV : Une bibliothèque populaire de vision par ordinateur avec de nombreuses fonctions pour le traitement d'images.
  • PIL (Pillow) : Une bibliothèque de traitement d'images Python pour ouvrir, manipuler et enregistrer des fichiers image.

Concernant YOLO26, le paramètre 'imgsz' lors de l'entraînement du modèle permet des tailles d'entrée flexibles. Lorsqu'il est défini sur une taille spécifique, comme 640, le modèle redimensionne les images d'entrée afin que leur plus grande dimension soit de 640 pixels tout en conservant le rapport hauteur/largeur d'origine.

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

Normalisation des valeurs de pixels

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

  • Mise à l'échelle Min-Max : Met à l'échelle les valeurs des pixels dans une plage de 0 à 1.
  • Normalisation Z-Score : Met à l'échelle les valeurs des pixels en fonction de leur moyenne et de leur écart-type.

Concernant YOLO26, la normalisation est gérée de manière transparente dans le pipeline de prétraitement lors de l'entraînement du modèle. YOLO26 effectue automatiquement plusieurs étapes de prétraitement, notamment la conversion en RVB, la mise à l'échelle des valeurs de pixels dans la plage [0, 1] et la normalisation en utilisant des valeurs de moyenne et d'écart-type prédéfinies.

Division du jeu de données

Une fois tes données nettoyées, tu es prêt à diviser ton jeu de données. La division en ensembles d'entraînement, de validation et de test est effectuée pour garantir que le modèle peut être évalué sur des données inédites afin d'estimer sa capacité de généralisation. Une répartition courante est de 70 % pour l'entraînement, 20 % pour la validation et 10 % pour le test. Il existe divers outils et bibliothèques que tu peux utiliser pour diviser tes données, comme scikit-learn ou TensorFlow.

Prends en compte les éléments suivants lors de la division de ton jeu de données :

  • Maintenir la distribution des données : Assure-toi que la répartition des classes est maintenue entre les ensembles d'entraînement, de validation et de test.
  • Éviter la fuite de données : En général, l'augmentation des données est effectuée après la division du jeu de données. L'augmentation des données et tout autre prétraitement ne doivent être appliqués qu'à l'ensemble d'entraînement pour empêcher que des informations provenant des ensembles de validation ou de test n'influencent l'entraînement du modèle.
  • Équilibrage des classes : Pour les jeux de données déséquilibrés, envisage des techniques telles que le suréchantillonnage de la classe minoritaire ou le sous-échantillonnage de la classe majoritaire au sein de l'ensemble d'entraînement.

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

L'étape de prétraitement la plus couramment abordée est l'augmentation de données. L'augmentation de données augmente artificiellement la taille du jeu de données en créant des versions modifiées des images. En augmentant tes données, tu peux réduire le surapprentissage et améliorer la généralisation du modèle.

Voici d'autres avantages de l'augmentation de données :

  • Crée un jeu de données plus robuste : L'augmentation de 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 de luminosité, d'orientation et d'échelle.
  • Rentable : L'augmentation de données est un moyen rentable d'augmenter la quantité de données d'entraînement sans collecter ni é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 de données

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

Overview of Data Augmentations

Concernant YOLO26, 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 souhaites augmenter tes données.

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

  • Recadrages 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

De plus, tu peux ajuster l'intensité de ces techniques d'augmentation via des paramètres spécifiques pour générer plus de variété dans les données.

Une étude de cas sur le prétraitement

Considère un projet visant à développer un modèle pour détecter et classifier différents types de véhicules dans des images de circulation en utilisant YOLO26. Nous avons collecté des images de circulation et les avons annotées avec des cadres de délimitation et des étiquettes.

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

  • Redimensionnement des images : Comme YOLO26 gère des tailles d'entrée flexibles et effectue le redimensionnement automatiquement, aucun redimensionnement manuel n'est requis. 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 pixels : YOLO26 normalise automatiquement les valeurs des pixels dans une plage de 0 à 1 pendant le prétraitement, donc ce n'est pas nécessaire.
  • Division du jeu de données : Divise le jeu de données en ensembles d'entraînement (70 %), de validation (20 %) et de test (10 %) en utilisant des outils comme scikit-learn.
  • Augmentation de données : Modifie le fichier de configuration du jeu de données (.yaml) pour inclure des techniques d'augmentation de données telles que des recadrages aléatoires, des retournements horizontaux et des ajustements de luminosité.

Ces étapes garantissent que le jeu de données est préparé sans 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é ton jeu 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 répartitions dans tes données. Tu peux identifier des problèmes comme les déséquilibres de classes ou les valeurs aberrantes et prendre des décisions éclairées concernant le prétraitement ultérieur des données ou les ajustements de l'entraînement du modèle.

Techniques statistiques d'EDA

Les techniques statistiques commencent souvent par le calcul de métriques de base telles que la moyenne, la médiane, l'écart-type et l'étendue. Ces métriques fournissent un aperçu rapide des propriétés de ton jeu de données d'images, comme les distributions d'intensité des pixels. Comprendre ces statistiques de base t'aide à saisir la qualité et les caractéristiques globales de tes données, te permettant de repérer les irrégularités assez tôt.

Techniques visuelles d'EDA

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

Les outils courants pour les visualisations incluent :

  • Histogrammes et boîtes à moustaches : Utiles pour comprendre la distribution des valeurs de pixels et identifier les valeurs aberrantes.
  • Nuages de points : Utiles pour explorer les relations entre les caractéristiques ou les annotations des images.
  • Cartes de chaleur (Heatmaps) : Efficaces pour visualiser la répartition des intensités de pixels ou la distribution spatiale des caractéristiques annotées dans les images.

Utiliser la plateforme Ultralytics pour l'EDA

Pour une approche sans code de l'EDA, télécharge ton jeu de données sur la plateforme Ultralytics. L'onglet Charts du jeu de données génère automatiquement les visualisations décrites ci-dessus : répartition des divisions, nombre des classes principales, histogrammes de largeur/hauteur des images et cartes de chaleur 2D des positions d'annotation et des dimensions des images. L'onglet Images te permet de parcourir tes données dans des vues en grille, compactes ou sous forme de tableau avec des superpositions d'annotations, ce qui facilite le repérage des exemples mal étiquetés ou des classes déséquilibrées sans écrire une seule ligne de code.

Contacte-nous et connecte-toi

Discuter de ton projet avec d'autres passionnés de vision par ordinateur peut te donner de nouvelles idées sous différents angles. Voici d'excellents moyens 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 de YOLO26 et utilise l'onglet Issues pour poser des questions, signaler des bugs et suggérer des fonctionnalités. La communauté et les responsables sont là pour t'aider avec tous les problèmes que tu rencontres.
  • Serveur Discord d'Ultralytics : Rejoins le serveur Discord d'Ultralytics pour te connecter avec d'autres utilisateurs et développeurs, obtenir du support, partager des connaissances et échanger des idées.

Documentation officielle

  • Documentation Ultralytics YOLO26 : Référe-toi à la documentation officielle de YOLO26 pour des guides complets et des informations précieuses sur de nombreuses tâches et projets de vision par ordinateur.

Ton 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 favorisant la généralisation. En suivant les techniques de prétraitement et les meilleures pratiques décrites dans ce guide, tu peux créer un jeu de données solide. Avec ton jeu de données prétraité prêt, tu peux poursuivre en toute confiance les prochaines étapes de ton 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 du modèle. En résolvant des problèmes tels que le bruit, l'incohérence et le déséquilibre dans les données brutes, les étapes de prétraitement comme le redimensionnement, la normalisation, l'augmentation et la division du jeu de données aident à réduire la charge de calcul et à 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 l'augmentation de données ?

Pour l'augmentation de données avec Ultralytics YOLO26, 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 des recadrages aléatoires, des retournements horizontaux et des ajustements de luminosité. Cela peut être effectué efficacement en utilisant les configurations d'entraînement expliquées ici. L'augmentation de données aide à créer un jeu de données plus robuste, à réduire le surapprentissage et à 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 de pixels à l'échelle sur une plage standard pour une convergence plus rapide et de meilleures performances pendant l'entraînement. Les techniques courantes incluent :

  • Mise à l'échelle Min-Max : Met à l'échelle les valeurs des pixels dans une plage de 0 à 1.
  • Normalisation Z-Score : Met à l'échelle les valeurs des pixels en fonction de leur moyenne et de leur écart-type.

Pour YOLO26, la normalisation est gérée automatiquement, y compris la conversion en RVB et la mise à l'échelle des valeurs de pixels. Apprends-en plus dans la section sur l'entraînement des modèles.

Comment dois-je diviser mon jeu de données annoté pour l'entraînement ?

Pour diviser ton jeu de données, une pratique courante consiste à le diviser en 70 % pour l'entraînement, 20 % pour la validation et 10 % pour le test. Il est important de maintenir la répartition des classes à travers ces divisions et d'éviter la fuite de données en effectuant l'augmentation uniquement sur l'ensemble d'entraînement. Utilise des outils comme scikit-learn ou TensorFlow pour une division efficace du jeu de données. Consulte le guide détaillé sur la préparation des données.

Puis-je gérer des tailles d'image variables dans YOLO26 sans redimensionnement manuel ?

Oui, Ultralytics YOLO26 peut gérer des tailles d'image variables grâce au paramètre 'imgsz' lors de l'entraînement du modèle. Ce paramètre garantit que les images sont redimensionnées de sorte 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 flexible des entrées et des ajustements automatiques, consulte la section sur l'entraînement des modèles.

Commentaires