ml.preprocessing — Preprocesamiento de ML

El módulo ml.preprocessing contiene clases para preprocesar imágenes para su uso con modelos de aprendizaje automático.

class Normalization – Normalización de imagen

El objeto Normalization convierte objetos image.Image en tensores de entrada ndarray para su uso con ml.Model.predict(). Es creado automáticamente por el objeto ml.Model cuando se pasa una imagen a ml.Model.predict(), pero puede instanciarse manualmente para controlar la conversión (escala, media/desviación estándar, 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 objeto Normalization.

scale es el rango (min, max) de valores que los tensores de entrada de coma flotante esperan después de la normalización (por ejemplo, (0.0, 1.0) o (-1.0, 1.0)). Se ignora para tensores de entrada uint8 e int8.

mean es la media por canal (R, G, B) que se resta de la imagen después del escalado. Para tensores en escala de grises, la media se reduce a un único valor de luma usando 0.299*R + 0.587*G + 0.114*B. Se ignora para tensores de entrada uint8 e int8.

stdev es la desviación estándar por canal (R, G, B) por la que se divide la imagen después de restar la media. Para tensores en escala de grises, la desviación estándar se reduce a un único valor de luma usando 0.299*R + 0.587*G + 0.114*B. Se ignora para tensores de entrada uint8 e int8.

roi es una región de interés (x, y, w, h) opcional dentro de la imagen de entrada que se recortará. Si es None, se usa la imagen completa. La región recortada se centra y se escala bilinealmente (preservando la relación de aspecto con relleno negro) a las dimensiones del tensor de entrada del modelo.

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

Cuando se llama con un único argumento image.Image, devuelve un nuevo objeto Normalization vinculado a esa imagen. El objeto vinculado es lo que ml.Model.predict() invoca internamente para rellenar el tensor de entrada. Si no se estableció roi en la instancia original, se inicializa al tamaño completo de la imagen.

Cuando se llama con (buffer, shape, dtype), rellena buffer en el lugar con el tensor de entrada normalizado para la imagen previamente vinculada. shape debe ser (1, H, W, C) con C igual a 1 (escala de grises) o 3 (RGB). dtype es el código de tipo de numpy de ulab (por ejemplo, ord('f') para float32, ord('b') para int8, ord('B') para uint8). Los tensores de coma flotante aplican scale, mean y stdev; los tensores de enteros se escriben directamente (con un desplazamiento para int8).