Link to this sectionTechniques de prétraitement des données pour les données de vision par ordinateur#
Link to this sectionIntroduction#
Une fois que tu as défini les objectifs de ton projet de vision par ordinateur et que tu as collecté et annoté tes données, l'étape suivante consiste à prétraiter les données annotées pour les préparer à l'entraînement du modèle. Des données propres et cohérentes sont vitales 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 d'un projet 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 !
Link to this sectionImportance 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 computationnelle 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, les formats et la qualité des images.
- Déséquilibre : Distribution inégale des classes ou des catégories dans le jeu de données.
Link to this sectionTechniques de prétraitement des données#
L'une des premières et des plus importantes é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 exigent une taille d'entrée cohérente. Le redimensionnement des images les rend uniformes et réduit la complexité computationnelle.
Link to this sectionRedimensionnement 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 du pixel le plus proche sans faire de moyenne, ce qui conduit à 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 Python Imaging Library pour ouvrir, manipuler et enregistrer des fichiers image.
En ce qui concerne YOLO26, le paramètre 'imgsz' pendant 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 de manière à ce 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.
Link to this sectionNormalisation des valeurs de pixels#
Une autre technique de prétraitement est la normalisation. La normalisation met les valeurs de pixels à l'échelle sur une plage standard, ce qui aide à une convergence plus rapide pendant l'entraînement et améliore les performances du modèle. Voici quelques techniques de normalisation courantes :
- Min-Max Scaling : Met les valeurs de pixels à l'échelle sur une plage de 0 à 1.
- Normalisation Z-Score : Met les valeurs de pixels à l'échelle en fonction de leur moyenne et de leur écart-type.
En ce qui concerne YOLO26, 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. YOLO26 effectue automatiquement plusieurs étapes de prétraitement, notamment la conversion en RGB, 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.
Link to this sectionDivision du jeu de données#
Une fois que tu as nettoyé les données, tu es 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 garantir que le modèle peut être évalué sur des données inédites afin d'évaluer ses performances de généralisation. Une division courante est de 70% pour l'entraînement, 20% pour la validation et 10% pour les tests. Il existe divers outils et bibliothèques que tu peux utiliser pour diviser tes données, comme scikit-learn ou TensorFlow.
Tiens compte des points suivants lors de la division de ton jeu de données :
- Maintenir la distribution des données : Assure-toi que la distribution des données des classes est maintenue dans les ensembles d'entraînement, de validation et de test.
- Éviter la fuite de données : Typiquement, 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 les informations des ensembles de validation ou de test d'influencer 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.
Link to this sectionQu'est-ce que l'augmentation de données ?#
L'étape de prétraitement des données la plus couramment évoqué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 aux variations et aux distorsions dans les données d'entrée. Cela inclut les changements d'éclairage, 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 avoir à collecter et annoter de nouvelles données.
- Meilleure utilisation des données : Chaque point de données disponible est utilisé à son potentiel maximal en créant de nouvelles variations.
Link to this sectionMéthodes d'augmentation de 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 ImageDataGenerator de TensorFlow, peuvent générer ces augmentations.
En ce qui concerne 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 dépôt 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 tournées selon des angles spécifiques.
- Distorsion
Aussi, tu peux ajuster l'intensité de ces techniques d'augmentation grâce à des paramètres spécifiques pour générer plus de variété de données.
Link to this sectionUne étude de cas de prétraitement#
Considère un projet visant à développer un modèle pour détecter et classer différents types de véhicules dans des images de trafic en utilisant YOLO26. Nous avons collecté des images de trafic et les avons annotées avec des boîtes englobantes et des étiquettes.
Voici à quoi ressemblerait chaque étape du prétraitement pour ce projet :
- Redimensionnement des images : Étant donné que YOLO26 gère des tailles d'entrée flexibles et effectue le redimensionnement automatiquement, 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'entraînement.
- Normalisation des valeurs de pixels : YOLO26 normalise automatiquement les valeurs de pixels sur 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 aucun problème potentiel et est prêt pour l'analyse exploratoire des données (EDA).
Link to this sectionTechniques 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 (EDA). L'EDA utilise des techniques statistiques et des outils de visualisation pour comprendre les modèles et les distributions dans tes données. Tu peux identifier des problèmes tels que 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.
Link to this sectionTechniques 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 l'étendue. Ces mesures 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é globale et les caractéristiques de tes données, te permettant de repérer rapidement toute irrégularité.
Link to this sectionTechniques EDA visuelles#
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 distribution de différentes classes ou catégories d'images à l'aide de graphiques à 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 comme les boîtes à moustaches (box plots), 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 (box plots) : Utiles pour comprendre la distribution des valeurs de pixels et identifier les valeurs aberrantes.
- Nuages de points (scatter plots) : Utiles pour explorer les relations entre les caractéristiques de l'image ou les annotations.
- Cartes thermiques (heatmaps) : Efficaces pour visualiser la distribution des intensités des pixels ou la distribution spatiale des caractéristiques annotées dans les images.
Link to this sectionUtilisation de 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 : distribution de la division, nombre des principales classes, histogrammes de largeur/hauteur des images, et cartes thermiques 2D des positions des annotations 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 d'exemples mal étiquetés ou de classes déséquilibrées sans écrire une seule ligne de code.
Link to this sectionContacte-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 des problèmes et de réseauter :
Link to this sectionCanaux pour se connecter avec la communauté#
- Problèmes GitHub : 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 mainteneurs sont là pour t'aider avec tous les problèmes que tu rencontres.
- Serveur Discord Ultralytics : Rejoins le serveur Discord Ultralytics pour te connecter avec d'autres utilisateurs et développeurs, obtenir du support, partager des connaissances et échanger des idées.
Link to this sectionDocumentation 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.
Link to this sectionTon 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, tu peux créer un jeu de données solide. Avec ton jeu de données prétraité prêt, tu peux avancer en toute confiance vers les étapes suivantes de ton projet.
Link to this sectionFAQ#
Link to this sectionQuelle 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 les 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 computationnelle et à améliorer les performances du modèle. Pour plus de détails, visite les étapes d'un projet de vision par ordinateur.
Link to this sectionComment 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 fait 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.
Link to this sectionQuelles sont les meilleures techniques de normalisation des données pour les données de vision par ordinateur ?#
La normalisation met à l'échelle les valeurs des pixels sur une plage standard pour une convergence plus rapide et une meilleure performance pendant l'entraînement. Les techniques courantes incluent :
- Min-Max Scaling : Met les valeurs de pixels à l'échelle sur une plage de 0 à 1.
- Normalisation Z-Score : Met les valeurs de pixels à l'échelle en fonction de leur moyenne et de leur écart-type.
Pour YOLO26, la normalisation est gérée automatiquement, y compris la conversion en RGB et la mise à l'échelle des valeurs des pixels. Apprends-en plus à ce sujet dans la section sur l'entraînement du modèle.
Link to this sectionComment dois-je diviser mon jeu de données annoté pour l'entraînement ?#
Pour diviser ton jeu de données, une pratique courante est de le diviser en 70% pour l'entraînement, 20% pour la validation et 10% pour les tests. Il est important de maintenir la distribution des données 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. Vois le guide détaillé sur la préparation du jeu de données.
Link to this sectionPuis-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' pendant l'entraînement 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 flexible des entrées et des ajustements automatiques, vérifie la section sur l'entraînement du modèle.