Meet YOLO26: next-gen vision AI.

Link to this sectionTechniques 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 annotées en entrées propres et cohérentes dont un modèle de vision par ordinateur a besoin pour bien s'entraîner. Avec Ultralytics YOLO26, les opérations de pixels essentielles — conversion RVB, mise à l'échelle vers [0, 1] et redimensionnement — s'exécutent automatiquement dans le pipeline d'entraînement. Il te reste donc à diviser correctement ton jeu de données, à équilibrer les classes et à choisir les augmentations. Ce guide couvre ces techniques indispensables : 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 que tu as défini les objectifs de ton projet et collecté et annoté tes données, et elle se situe tôt dans le flux de travail d'un projet de vision par ordinateur.

Link to this sectionPourquoi 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.

Link to this sectionTechniques 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.

Link to this sectionRedimensionnement 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 occupe : lorsqu'il est réglé sur une valeur telle que 640, YOLO met à l'échelle chaque image pour que sa plus grande dimension soit de 640 pixels tout en préservant le rapport hauteur/largeur, puis ajoute un remplissage sur le côté le plus court (gris par défaut, valeur 114) pour obtenir une entrée carrée 640 × 640.

Link to this sectionNormalisation 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 la normalisation de type ImageNet (score z avec moyenne/écart-type) par défaut, donc aucune étape de normalisation manuelle n'est requise.

Link to this sectionDivision du jeu de données#

La division des 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 répartition courante est de 70 % pour l'entraînement, 20 % pour la validation et 10 % pour les tests. Des outils comme scikit-learn ou TensorFlow rendent cela simple.

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.

Link to this sectionAugmentation 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 via des arguments d'entraînement passés à model.train() ou les drapeaux 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 classe 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.
  • Flips (fliplr, flipud) : Miroirs d'images horizontalement ou verticalement.
  • Transformations géométriques (degrees, translate, scale, shear, perspective) : Rotation, décalage, zoom et déformation des images.
  • Jitter de couleur HSV (hsv_h, hsv_s, hsv_v) : Fait varier la teinte, la saturation et la luminosité.
  • Copier-coller (copy_paste) : Colle des objets entre des 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édié à l'augmentation de données YOLO. Si le package albumentations est installé, YOLO active également automatiquement ses augmentations basées sur Albumentations.

Link to this sectionÉtude de cas : Prétraitement pour la détection de véhicules#

Envisage un projet pour détecter et classer des véhicules dans des images de trafic avec YOLO26, en commençant par des images annotées avec des boîtes englobantes et des étiquettes. Voici à quoi ressemble chaque décision de prétraitement :

  • Redimensionnement : Aucun travail manuel — YOLO26 redimensionne à imgsz pendant l'entraînement.
  • Normalisation : Aucun travail manuel — YOLO26 met automatiquement à l'échelle les valeurs des pixels vers [0, 1].
  • 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 les arguments d'entraînement adaptés aux scènes de trafic — par exemple fliplr pour l'invariance de direction, hsv_v pour la luminosité jour/nuit 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).

Link to this sectionAnalyse 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.

Link to this sectionTechniques 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.

Link to this sectionTechniques 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.

Link to this sectionPlateforme 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 EDA clés : distribution des divisions, 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 des exemples mal étiquetés ou des classes déséquilibrées sans écrire de code.

Link to this sectionConclusion#

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. Avec ton jeu de données prétraité, l'étape suivante est d'entraîner ton modèle. Si des questions se posent en cours de route, demande à la communauté sur le dépôt GitHub d'Ultralytics ou sur le serveur Discord d'Ultralytics.

Link to this sectionFAQ#

Link to this sectionPourquoi le prétraitement des données est-il important dans les projets de vision par ordinateur ?#

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 comme 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 vision par ordinateur pour voir comment cela s'intègre dans le flux de travail global.

Link to this sectionComment utiliser Ultralytics YOLO pour l'augmentation de données ?#

Configure l'augmentation via les arguments d'entraînement, et non dans le YAML du jeu de données. Passe des arguments tels que fliplr, mosaic, hsv_h et degrees à model.train() (ou aux drapeaux CLI équivalents) pour définir la probabilité et la force 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.

Link to this sectionQuelles sont les meilleures techniques de normalisation pour les données de vision par ordinateur ?#

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.

Link to this sectionComment dois-je diviser mon jeu de données annoté pour l'entraînement ?#

Une pratique courante consiste à allouer 70 % pour l'entraînement, 20 % pour la validation et 10 % pour les tests. Maintiens la distribution des classes sur 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 de données pour la préparation initiale du jeu de données.

Link to this sectionYOLO26 peut-il gérer des tailles d'image variables sans redimensionnement manuel ?#

Oui. L'argument imgsz redimensionne les images pendant l'entraînement et l'inférence afin que leur plus grande dimension 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 sur l'entraînement du modèle pour plus de détails.

Commentaires