ml.preprocessing — ML-esikäsittely

ml.preprocessing-moduuli sisältää luokkia kuvien esikäsittelyyn koneoppimismalleja varten.

luokka Normalization – kuvan normalisointi

Normalization-objekti muuntaa image.Image-objektit ndarray-syötetensoreiksi käytettäväksi kohteen ml.Model.predict() kanssa. ml.Model-objekti luo sen automaattisesti, kun kuva välitetään kohteelle ml.Model.predict(), mutta se voidaan luoda myös käsin muunnoksen (skaala, keskiarvo/keskihajonta, ROI) hallitsemiseksi.

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)

Luo Normalization-objektin.

scale on arvojen (min, max) -alue, jota liukulukusyötetensorit odottavat normalisoinnin jälkeen (esim. (0.0, 1.0) tai (-1.0, 1.0)). Ohitetaan uint8- ja int8-syötetensoreilla.

mean on kanavakohtainen keskiarvo (R, G, B), joka vähennetään kuvasta skaalauksen jälkeen. Harmaasävytensoreilla keskiarvo pelkistetään yhdeksi luma-arvoksi kaavalla 0.299*R + 0.587*G + 0.114*B. Ohitetaan uint8- ja int8-syötetensoreilla.

stdev on kanavakohtainen keskihajonta (R, G, B), jolla kuva jaetaan keskiarvon vähentämisen jälkeen. Harmaasävytensoreilla keskihajonta pelkistetään yhdeksi luma-arvoksi kaavalla 0.299*R + 0.587*G + 0.114*B. Ohitetaan uint8- ja int8-syötetensoreilla.

roi on valinnainen (x, y, w, h) -kohdealue syötekuvan sisällä, joka rajataan. Jos None, käytetään koko kuvaa. Rajattu alue keskitetään ja skaalataan bilineaarisesti (kuvasuhde säilyttäen mustalla täytöllä) mallin syötetensorin mittoihin.

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

Kun kutsutaan yhdellä image.Image-argumentilla, palauttaa uuden Normalization-objektin, joka on sidottu kyseiseen kuvaan. Sidottu objekti on se, jota ml.Model.predict() kutsuu sisäisesti syötetensorin täyttämiseksi. Jos roi-arvoa ei asetettu alkuperäisessä instanssissa, se alustetaan koko kuvan kokoon.

Kun kutsutaan argumenteilla (buffer, shape, dtype), täyttää buffer-puskurin paikan päällä normalisoidulla syötetensorilla aiemmin sidotulle kuvalle. shape-arvon on oltava (1, H, W, C), jossa C on 1 (harmaasävy) tai 3 (RGB). dtype on ulab numpy -tyyppikoodi (esim. ord('f') float32:lle, ord('b') int8:lle, ord('B') uint8:lle). Liukulukutensoreihin sovelletaan scale-, mean- ja stdev-arvoja; kokonaislukutensorit kirjoitetaan suoraan (int8:lle siirtymällä).