YOLO Vision 2026 :

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

Le prétraitement des données transforme des images brutes et annotées en entrées propres et cohérentes dont un modèle de computer vision a besoin pour bien s'entraîner. Avec Ultralytics YOLO26, les opérations de pixels principales — conversion RVB, mise à l'échelle vers [0, 1] et redimensionnement — s'exécutent automatiquement dans le pipeline d'entraînement. Il ne te reste donc qu'à diviser correctement ton jeu de données, à équilibrer les classes et à choisir les augmentations. Ce guide couvre ces techniques essentielles : redimensionnement, normalisation, division du jeu de données, augmentation de données et analyse exploratoire des données (EDA).



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

Cette étape intervient après avoir défini les objectifs de ton projet et collecté et annoté tes données, et elle se situe au début du flux de travail du projet de computer vision.

Pourquoi le prétraitement est important#

Le prétraitement met tes données dans un format qui réduit la charge de calcul et améliore les performances du modèle. Il résout trois problèmes courants dans les données brutes :

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

Techniques de prétraitement#

Les techniques principales sont le redimensionnement, la normalisation, la division du jeu de données et l'augmentation. Avec YOLO26, les deux premières sont automatiques, tandis que la division et l'augmentation sont les domaines où tes choix comptent le plus.

Redimensionnement des images#

De nombreux modèles exigent une taille d'entrée cohérente ; le redimensionnement rend donc les images uniformes et réduit la complexité computationnelle. Deux méthodes d'interpolation courantes sont :

  • Interpolation bilinéaire : Lisse les valeurs des pixels en faisant une moyenne pondérée des quatre pixels les plus proches.
  • Plus proche voisin : Copie la valeur du pixel le plus proche sans faire de moyenne — plus rapide, mais produit une image plus pixelisée.

Des bibliothèques comme OpenCV et PIL (Pillow) fournissent ces fonctions, mais avec YOLO26, tu ne redimensionnes généralement pas manuellement. L'argument imgsz lors de l'entraînement du modèle s'en charge : lorsqu'il est défini sur une valeur telle que 640, YOLO met à l'échelle chaque image pour que sa dimension la plus grande soit de 640 pixels tout en préservant le rapport hauteur/largeur, puis ajoute un remplissage (padding) sur le côté le plus court (gris par défaut, valeur 114) pour obtenir une entrée carrée 640 × 640.

Normalisation des valeurs de pixels#

La normalisation met à l'échelle les valeurs des pixels vers une plage standard, ce qui aide le modèle à converger plus rapidement pendant l'entraînement. Deux techniques courantes sont :

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

YOLO26 gère la normalisation automatiquement dans le cadre de son pipeline de prétraitement : il convertit les images en RVB et met à l'échelle les valeurs des pixels dans la plage [0, 1] en divisant par 255 (mise à l'échelle min-max). YOLO n'applique pas de normalisation moyenne/écart-type (score z) de style ImageNet par défaut, aucune étape de normalisation manuelle n'est donc requise.

Division du jeu de données#

Diviser les données en ensembles d'entraînement, de validation et de test te permet d'évaluer le modèle sur des données inédites et de mesurer sa généralisation. Une division courante est de 70 % pour l'entraînement, 20 % pour la validation et 10 % pour le test. Des outils comme scikit-learn ou TensorFlow facilitent cette tâche.

Garde ces points à l'esprit lors de la division :

  • Maintenir la distribution des classes : Assure-toi que chaque classe est représentée proportionnellement dans les ensembles d'entraînement, de validation et de test.
  • Équilibrer les classes : Pour les jeux de données déséquilibrés, envisage le suréchantillonnage de la classe minoritaire ou le sous-échantillonnage de la classe majoritaire — uniquement au sein de l'ensemble d'entraînement.
Évite la fuite de données (data leakage)

Divise le jeu de données avant d'appliquer toute augmentation ou autre prétraitement, et n'applique ces transformations qu'à l'ensemble d'entraînement. Augmenter avant la division permet aux informations des images de validation ou de test d'influencer l'entraînement, produisant des scores trompeusement élevés qui s'effondrent sur des données réelles.

Augmentation du jeu de données#

L'augmentation de données augmente artificiellement la taille d'un jeu de données en créant des versions modifiées des images existantes. Elle aide à réduire le surapprentissage et améliore la généralisation, avec plusieurs avantages :

  • Modèles plus robustes : Les variations de luminosité, d'orientation et d'échelle rendent le modèle résistant aux distorsions du monde réel.
  • Rentable : Tu étends l'ensemble d'entraînement sans collecter ni étiqueter de nouvelles données.
  • Meilleure utilisation des données : Chaque image annotée génère plusieurs variations d'entraînement.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

Avec YOLO26, l'augmentation est contrôlée par le biais d'arguments d'entraînement passés à model.train() ou aux indicateurs CLI équivalents — et non en modifiant le fichier YAML du jeu de données, qui définit les métadonnées du jeu de données telles que les chemins, les noms de classes et les divisions. Les augmentations intégrées incluent :

  • Mosaic, MixUp et CutMix (mosaic, mixup, cutmix) : combinent plusieurs images en un seul échantillon d'entraînement.
  • Flipped (fliplr, flipud) : mettent en miroir les images horizontalement ou verticalement.
  • Transformations géométriques (degrees, translate, scale, shear, perspective) : font pivoter, déplacent, zooment et déforment les images.
  • Variation de couleur HSV (hsv_h, hsv_s, hsv_v) : font varier la teinte, la saturation et la luminosité.
  • Copy-paste (copy_paste) : collent des objets entre les images pour la segmentation.
Définis la force de l'augmentation lors de l'entraînement
from ultralytics import YOLO

model = YOLO("yolo26n.pt")

# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)

Pour obtenir la liste complète des arguments d'augmentation et leurs valeurs par défaut, consulte la référence des paramètres d'augmentation et le guide d'augmentation de données YOLO dédié. Si le paquet albumentations est installé, YOLO active également automatiquement ses augmentations intégrées basées sur Albumentations.

Étude de cas : Prétraitement pour la détection de véhicules#

Considère un projet visant à détecter et classifier des véhicules dans des images de circulation avec YOLO26, en partant d'images annotées avec des bounding boxes et des étiquettes. Voici à quoi ressemble chaque décision de prétraitement :

  • Redimensionnement : Aucun travail manuel — YOLO26 redimensionne vers imgsz pendant l'entraînement.
  • Normalisation : Aucun travail manuel — YOLO26 met à l'échelle les valeurs des pixels vers [0, 1] automatiquement.
  • Division : Divise le jeu de données en 70 % d'entraînement, 20 % de validation et 10 % de test, en maintenant la distribution des classes cohérente entre les divisions.
  • Augmentation : Définis des arguments d'entraînement adaptés aux scènes de circulation — par exemple fliplr pour l'invariance de direction, hsv_v pour l'éclairage diurne/nocturne et mosaic pour une densité d'objets variée.

Une fois ces décisions prises, le jeu de données est prêt pour l'analyse exploratoire des données (EDA).

Analyse exploratoire des données (EDA)#

L'EDA utilise des statistiques et des visualisations pour révéler des modèles et des distributions dans tes données, t'aidant à détecter des problèmes comme le déséquilibre des classes ou les valeurs aberrantes avant l'entraînement.

Techniques EDA statistiques#

L'EDA statistique commence par des mesures de base — moyenne, médiane, écart-type et plage — calculées sur des propriétés telles que les distributions d'intensité des pixels. Celles-ci donnent un aperçu rapide de la qualité de ton jeu de données et font apparaître les irrégularités rapidement.

Techniques EDA visuelles#

Les visualisations révèlent des modèles que les statistiques sommaires manquent, tels que le déséquilibre des classes et les valeurs aberrantes. Les outils courants incluent :

  • Histogrammes et boîtes à moustaches : Montrent la distribution des valeurs des pixels et signalent les valeurs aberrantes dans les distributions d'intensité ou de caractéristiques.
  • Graphiques à barres : Révèlent le déséquilibre des classes en comparant combien d'exemples chaque classe possède.
  • Nuages de points : Explorent les relations entre les caractéristiques de l'image ou les annotations.
  • Cartes thermiques (Heatmaps) : Visualisent les distributions d'intensité des pixels ou la distribution spatiale des annotations sur les images.

Plateforme Ultralytics pour l'EDA#

Pour une approche sans code de l'EDA, importe ton jeu de données sur Ultralytics Platform. L'onglet Charts du jeu de données génère automatiquement des visualisations EDA clés : distribution des divisions, décomptes des classes principales, histogrammes de largeur/hauteur des images et cartes thermiques 2D des positions d'annotation et des dimensions des images. L'onglet Images te permet de parcourir tes données en vues de grille, compacte ou sous forme de tableau avec des superpositions d'annotations, ce qui permet de repérer facilement des exemples mal étiquetés ou des classes déséquilibrées sans écrire de code.

Conclusion#

Des données correctement divisées, normalisées et augmentées réduisent le bruit et améliorent la généralisation, transformant une collection brute d'images en un ensemble d'entraînement fiable. Ton jeu de données étant prétraité, l'étape suivante consiste à entraîner ton modèle. Si des questions surgissent en cours de route, pose-les à la communauté sur le dépôt GitHub d'Ultralytics ou sur le serveur Discord d'Ultralytics.

FAQ#

  • Le prétraitement garantit que tes données sont propres, cohérentes et dans un format optimisé pour l'entraînement. En traitant le bruit, l'incohérence et le déséquilibre des classes dans les données brutes, des étapes telles que le redimensionnement, la normalisation, l'augmentation et la division du jeu de données réduisent la charge de calcul et améliorent les performances du modèle. Consulte les étapes d'un projet de computer vision pour voir comment cela s'intègre dans le flux de travail global.

  • Configure l'augmentation via les arguments d'entraînement, et non dans le fichier YAML du jeu de données. Passe des arguments tels que fliplr, mosaic, hsv_h et degrees à model.train() (ou aux indicateurs CLI équivalents) pour définir la probabilité et l'intensité de chaque transformation. Ceux-ci sont définis dans les paramètres d'augmentation et expliqués dans le guide d'augmentation de données YOLO.

  • Les deux techniques les plus courantes sont la mise à l'échelle min-max (redimensionner les pixels sur une plage de 0 à 1) et la normalisation par score z (redimensionnement basé sur la moyenne et l'écart-type). YOLO26 applique la mise à l'échelle min-max automatiquement — en convertissant les images en RVB et en divisant les valeurs des pixels par 255 — donc tu n'as pas besoin d'étape de normalisation manuelle. Il n'applique pas la normalisation par score z par défaut.

  • Une pratique courante consiste à allouer 70 % pour l'entraînement, 20 % pour la validation et 10 % pour le test. Maintiens la distribution des classes dans les trois divisions, et évite la fuite de données en appliquant l'augmentation uniquement à l'ensemble d'entraînement après la division. Des outils comme scikit-learn ou TensorFlow gèrent la division efficacement. Consulte le guide de collecte et d'annotation des données pour la préparation en amont du jeu de données.

  • Oui. L'argument imgsz redimensionne les images pendant l'entraînement et l'inférence afin que leur dimension la plus grande corresponde à la taille spécifiée (par exemple, 640 pixels) tout en préservant le rapport hauteur/largeur, puis ajoute un remplissage sur le côté le plus court. Tu n'as pas besoin de redimensionner les images toi-même — consulte la documentation de l'entraînement du modèle pour plus de détails.

Commentaires