ml.preprocessing — Pre-elaborazione ML¶
Il modulo ml.preprocessing contiene classi per la pre-elaborazione delle immagini da utilizzare con i modelli di machine learning.
class Normalization – Normalizzazione dell’immagine¶
L’oggetto Normalization converte gli oggetti image.Image in tensori di input ndarray da utilizzare con ml.Model.predict(). Viene creato automaticamente dall’oggetto ml.Model quando un’immagine viene passata a ml.Model.predict(), ma può essere istanziato manualmente per controllare la conversione (scala, media/dev.std, 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)¶
Crea un oggetto
Normalization.scaleè l’intervallo(min, max)di valori che i tensori di input in virgola mobile prevedono dopo la normalizzazione (ad es.(0.0, 1.0)o(-1.0, 1.0)). Ignorato per i tensori di inputuint8eint8.meanè la media per canale(R, G, B)sottratta dall’immagine dopo la scalatura. Per i tensori in scala di grigi la media viene ridotta a un singolo valore di luminanza utilizzando0.299*R + 0.587*G + 0.114*B. Ignorato per i tensori di inputuint8eint8.stdevè la deviazione standard per canale(R, G, B)per cui l’immagine viene divisa dopo la sottrazione della media. Per i tensori in scala di grigi la dev.std viene ridotta a un singolo valore di luminanza utilizzando0.299*R + 0.587*G + 0.114*B. Ignorato per i tensori di inputuint8eint8.roiè una regione di interesse(x, y, w, h)opzionale all’interno dell’immagine di input da ritagliare. SeNone, viene utilizzata l’intera immagine. La regione ritagliata viene centrata e scalata bilinearmente (preservando il rapporto d’aspetto con riempimento nero) alle dimensioni del tensore di input del modello.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
Quando chiamato con un singolo argomento
image.Image, restituisce un nuovo oggettoNormalizationassociato a quell’immagine. L’oggetto associato è ciò cheml.Model.predict()invoca internamente per riempire il tensore di input. Seroinon era stato impostato sull’istanza originale, viene inizializzato alla dimensione dell’intera immagine.Quando chiamato con
(buffer, shape, dtype), riempiebufferin loco con il tensore di input normalizzato per l’immagine precedentemente associata.shapedeve essere(1, H, W, C)conCuguale a1(scala di grigi) o3(RGB).dtypeè il codice di tipo numpy di ulab (ad es.ord('f')per float32,ord('b')per int8,ord('B')per uint8). I tensori float applicanoscale,meanestdev; i tensori interi vengono scritti direttamente (con un offset perint8).