ml.preprocessing — ML-voorbewerking¶
De ml.preprocessing-module bevat klassen voor het voorbewerken van afbeeldingen voor gebruik met machine learning-modellen.
class Normalization – Afbeeldingsnormalisatie¶
Het Normalization-object converteert image.Image-objecten naar ndarray-invoertensoren voor gebruik met ml.Model.predict(). Het wordt automatisch aangemaakt door het ml.Model-object wanneer een afbeelding aan ml.Model.predict() wordt doorgegeven, maar kan handmatig worden geïnstantieerd om de conversie te beheren (schaal, gemiddelde/stdev, 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)¶
Maakt een
Normalization-object aan.scaleis het(min, max)-waardenbereik dat invoertensoren met drijvende komma verwachten na normalisatie (bijv.(0.0, 1.0)of(-1.0, 1.0)). Wordt genegeerd vooruint8- enint8-invoertensoren.meanis het gemiddelde per kanaal(R, G, B)dat na schaling van de afbeelding wordt afgetrokken. Voor grijswaardentensoren wordt het gemiddelde gereduceerd tot een enkele luma-waarde met behulp van0.299*R + 0.587*G + 0.114*B. Wordt genegeerd vooruint8- enint8-invoertensoren.stdevis de standaardafwijking per kanaal(R, G, B)waardoor de afbeelding wordt gedeeld nadat het gemiddelde is afgetrokken. Voor grijswaardentensoren wordt de stdev gereduceerd tot een enkele luma-waarde met behulp van0.299*R + 0.587*G + 0.114*B. Wordt genegeerd vooruint8- enint8-invoertensoren.roiis een optioneel(x, y, w, h)-aandachtsgebied binnen de invoerafbeelding om bij te snijden. IndienNonewordt de volledige afbeelding gebruikt. Het bijgesneden gebied wordt gecentreerd en bilineair geschaald (met behoud van de beeldverhouding en zwarte opvulling) naar de invoertensorafmetingen van het model.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
Wanneer aangeroepen met een enkel
image.Image-argument, retourneert een nieuwNormalization-object dat aan die afbeelding is gebonden. Het gebonden object is watml.Model.predict()intern aanroept om de invoertensor te vullen. Alsroiniet op de oorspronkelijke instantie was ingesteld, wordt het geïnitialiseerd op de volledige afbeeldingsgrootte.Wanneer aangeroepen met
(buffer, shape, dtype), vultbufferter plaatse met de genormaliseerde invoertensor voor de eerder gebonden afbeelding.shapemoet(1, H, W, C)zijn metCgelijk aan1(grijswaarden) of3(RGB).dtypeis de ulab numpy-typecode (bijv.ord('f')voor float32,ord('b')voor int8,ord('B')voor uint8). Float-tensoren passenscale,meanenstdevtoe; integer-tensoren worden rechtstreeks geschreven (met een offset voorint8).