ml.preprocessing — ML-förbehandling

Modulen ml.preprocessing innehåller klasser för förbehandling av bilder för användning med maskininlärningsmodeller.

class Normalization – Bildnormalisering

Objektet Normalization konverterar image.Image-objekt till ndarray-indatatensorer för användning med ml.Model.predict(). Det skapas automatiskt av ml.Model-objektet när en bild skickas till ml.Model.predict(), men kan instansieras manuellt för att styra konverteringen (skala, medelvärde/standardavvikelse, 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)

Skapar ett Normalization-objekt.

scale är värdeintervallet (min, max) som flyttalsindatatensorer förväntar sig efter normalisering (t.ex. (0.0, 1.0) eller (-1.0, 1.0)). Ignoreras för indatatensorer av typen uint8 och int8.

mean är det per-kanal-medelvärde (R, G, B) som subtraheras från bilden efter skalning. För gråskaletensorer reduceras medelvärdet till ett enda luma-värde med 0.299*R + 0.587*G + 0.114*B. Ignoreras för indatatensorer av typen uint8 och int8.

stdev är den per-kanal-standardavvikelse (R, G, B) som bilden divideras med efter att medelvärdet subtraherats. För gråskaletensorer reduceras standardavvikelsen till ett enda luma-värde med 0.299*R + 0.587*G + 0.114*B. Ignoreras för indatatensorer av typen uint8 och int8.

roi är ett valfritt intresseområde (x, y, w, h) inom indatabilden som ska beskäras. Om None används hela bilden. Den beskurna regionen centreras och skalas bilinjärt (med bevarat bildförhållande och svart utfyllnad) till modellens indatatensordimensioner.

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

Vid anrop med ett enda image.Image-argument returneras ett nytt Normalization-objekt bundet till den bilden. Det bundna objektet är det som ml.Model.predict() anropar internt för att fylla indatatensorn. Om roi inte angavs på den ursprungliga instansen initieras det till bildens fulla storlek.

Vid anrop med (buffer, shape, dtype) fylls buffer på plats med den normaliserade indatatensorn för den tidigare bundna bilden. shape måste vara (1, H, W, C) med C lika med 1 (gråskala) eller 3 (RGB). dtype är ulab numpy-typkoden (t.ex. ord('f') för float32, ord('b') för int8, ord('B') för uint8). Flyttalstensorer tillämpar scale, mean och stdev; heltalstensorer skrivs direkt (med en förskjutning för int8).