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.scaleeste 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 intrareuint8șiint8.meaneste 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ță folosind0.299*R + 0.587*G + 0.114*B. Ignorat pentru tensorii de intrareuint8șiint8.stdeveste 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ță folosind0.299*R + 0.587*G + 0.114*B. Ignorat pentru tensorii de intrareuint8șiint8.roieste o regiune de interes(x, y, w, h)opțională din imaginea de intrare ce urmează a fi decupată. Dacă esteNone, 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 obiectNormalizationlegat de acea imagine. Obiectul legat este cel pe careml.Model.predict()îl apelează intern pentru a umple tensorul de intrare. Dacăroinu a fost setat pe instanța originală, este inițializat la dimensiunea completă a imaginii.Când este apelat cu
(buffer, shape, dtype), umplebufferpe loc cu tensorul de intrare normalizat pentru imaginea legată anterior.shapetrebuie să fie(1, H, W, C)cuCegal cu1(tonuri de gri) sau3(RGB).dtypeeste 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șistdev; tensorii întregi sunt scriși direct (cu un decalaj pentruint8).