ml.preprocessing — Předzpracování ML¶
Modul ml.preprocessing obsahuje třídy pro předzpracování obrazů pro použití s modely strojového učení.
class Normalization – Normalizace obrazu¶
Objekt Normalization převádí objekty image.Image na vstupní tenzory ndarray pro použití s ml.Model.predict(). Je automaticky vytvořen objektem ml.Model, když je do ml.Model.predict() předán obraz, ale lze jej vytvořit i ručně pro řízení převodu (měřítko, průměr/směrodatná odchylka, 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)¶
Vytvoří objekt
Normalization.scaleje rozsah(min, max)hodnot, které vstupní tenzory s plovoucí desetinnou čárkou očekávají po normalizaci (např.(0.0, 1.0)nebo(-1.0, 1.0)). Pro vstupní tenzory typuuint8aint8se ignoruje.meanje průměr po jednotlivých kanálech(R, G, B)odečtený od obrazu po škálování. U tenzorů ve stupních šedi je průměr zredukován na jedinou jasovou hodnotu pomocí0.299*R + 0.587*G + 0.114*B. Pro vstupní tenzory typuuint8aint8se ignoruje.stdevje směrodatná odchylka po jednotlivých kanálech(R, G, B), kterou se obraz dělí po odečtení průměru. U tenzorů ve stupních šedi je směrodatná odchylka zredukována na jedinou jasovou hodnotu pomocí0.299*R + 0.587*G + 0.114*B. Pro vstupní tenzory typuuint8aint8se ignoruje.roije volitelná oblast zájmu(x, y, w, h)ve vstupním obrazu, která se má oříznout. Je-liNone, použije se celý obraz. Oříznutá oblast je vystředěna a bilineárně škálována (se zachováním poměru stran a černým doplněním) na rozměry vstupního tenzoru modelu.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
Při volání s jediným argumentem
image.Imagevrací nový objektNormalizationnavázaný na tento obraz. Navázaný objekt je to, coml.Model.predict()interně vyvolává k naplnění vstupního tenzoru. Pokudroinebylo na původní instanci nastaveno, je inicializováno na plnou velikost obrazu.Při volání s
(buffer, shape, dtype)naplníbufferna místě normalizovaným vstupním tenzorem pro dříve navázaný obraz.shapemusí být(1, H, W, C), kdeCje rovno1(stupně šedi) nebo3(RGB).dtypeje kód typu ulab numpy (např.ord('f')pro float32,ord('b')pro int8,ord('B')pro uint8). Tenzory typu float uplatňujíscale,meanastdev; celočíselné tenzory se zapisují přímo (s posunem proint8).