ml.preprocessing — Pré-traitement ML¶
Le module ml.preprocessing contient des classes pour le pré-traitement des images en vue de leur utilisation avec des modèles d’apprentissage automatique.
class Normalization – Normalisation d’image¶
L’objet Normalization convertit les objets image.Image en tenseurs d’entrée ndarray destinés à ml.Model.predict(). Il est créé automatiquement par l’objet ml.Model lorsqu’une image est passée à ml.Model.predict(), mais il peut être instancié manuellement pour contrôler la conversion (échelle, moyenne/écart-type, ROI).
- class ml.preprocessing.Normalization(scale: tuple[float, float] = (0.0, 1.0), mean: tuple[float, float, float] = (0.0, 0.0, 0.0), stdev: tuple[float, float, float] = (1.0, 1.0, 1.0), roi: tuple[int, int, int, int] = None)¶
Crée un objet
Normalization.scaleest la plage de valeurs(min, max)que les tenseurs d’entrée à virgule flottante attendent après normalisation (par exemple(0.0, 1.0)ou(-1.0, 1.0)). Ignoré pour les tenseurs d’entréeuint8etint8.meanest la moyenne par canal(R, G, B)soustraite de l’image après mise à l’échelle. Pour les tenseurs en niveaux de gris, la moyenne est réduite à une seule valeur de luminance à l’aide de0.299*R + 0.587*G + 0.114*B. Ignoré pour les tenseurs d’entréeuint8etint8.stdevest l’écart-type par canal(R, G, B)par lequel l’image est divisée après soustraction de la moyenne. Pour les tenseurs en niveaux de gris, l’écart-type est réduit à une seule valeur de luminance à l’aide de0.299*R + 0.587*G + 0.114*B. Ignoré pour les tenseurs d’entréeuint8etint8.roiest une région d’intérêt optionnelle(x, y, w, h)à rogner dans l’image d’entrée. SiNone, l’image entière est utilisée. La région rognée est centrée, mise à l’échelle de manière bilinéaire (en préservant le rapport d’aspect avec un remplissage noir) jusqu’aux dimensions du tenseur d’entrée du modèle.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
Lorsqu’il est appelé avec un seul argument
image.Image, renvoie un nouvel objetNormalizationlié à cette image. L’objet lié est ce queml.Model.predict()invoque en interne pour remplir le tenseur d’entrée. Siroin’avait pas été défini sur l’instance d’origine, il est initialisé à la taille de l’image entière.Lorsqu’il est appelé avec
(buffer, shape, dtype), remplitbuffersur place avec le tenseur d’entrée normalisé pour l’image précédemment liée.shapedoit être(1, H, W, C)avecCégal à1(niveaux de gris) ou3(RGB).dtypeest le code de type numpy ulab (par exempleord('f')pour float32,ord('b')pour int8,ord('B')pour uint8). Les tenseurs flottants appliquentscale,meanetstdev; les tenseurs entiers sont écrits directement (avec un décalage pourint8).