ml.preprocessing — Preprocesare ML

Modulul ml.preprocessing conține clase pentru preprocesarea imaginilor în vederea utilizării cu modele de învățare automată.

class Normalization – Normalizarea imaginii

Obiectul Normalization convertește obiectele image.Image în tensori de intrare ndarray pentru utilizare cu ml.Model.predict(). Este creat automat de obiectul ml.Model atunci când o imagine este transmisă către ml.Model.predict(), dar poate fi instanțiat manual pentru a controla conversia (scala, media/abaterea standard, 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)

Creează un obiect Normalization.

scale este intervalul (min, max) de valori pe care îl așteaptă tensorii de intrare în virgulă mobilă după normalizare (de exemplu, (0.0, 1.0) sau (-1.0, 1.0)). Ignorat pentru tensorii de intrare uint8 și int8.

mean este media per canal (R, G, B) scăzută din imagine după scalare. Pentru tensorii în tonuri de gri, media este redusă la o singură valoare de luminanță folosind 0.299*R + 0.587*G + 0.114*B. Ignorat pentru tensorii de intrare uint8 și int8.

stdev este abaterea standard per canal (R, G, B) la care se împarte imaginea după scăderea mediei. Pentru tensorii în tonuri de gri, abaterea standard este redusă la o singură valoare de luminanță folosind 0.299*R + 0.587*G + 0.114*B. Ignorat pentru tensorii de intrare uint8 și int8.

roi este o regiune de interes (x, y, w, h) opțională din imaginea de intrare ce urmează a fi decupată. Dacă este None, se folosește imaginea completă. Regiunea decupată este centrată și scalată biliniar (păstrând raportul de aspect cu umplere neagră) la dimensiunile tensorului de intrare al modelului.

__call__(image: image.Image) Normalization
__call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None

Când este apelat cu un singur argument image.Image, returnează un nou obiect Normalization legat de acea imagine. Obiectul legat este cel pe care ml.Model.predict() îl apelează intern pentru a umple tensorul de intrare. Dacă roi nu a fost setat pe instanța originală, este inițializat la dimensiunea completă a imaginii.

Când este apelat cu (buffer, shape, dtype), umple buffer pe loc cu tensorul de intrare normalizat pentru imaginea legată anterior. shape trebuie să fie (1, H, W, C) cu C egal cu 1 (tonuri de gri) sau 3 (RGB). dtype este codul de tip numpy din ulab (de exemplu, ord('f') pentru float32, ord('b') pentru int8, ord('B') pentru uint8). Tensorii în virgulă mobilă aplică scale, mean și stdev; tensorii întregi sunt scriși direct (cu un decalaj pentru int8).