ml.preprocessing — Pré-processamento ML¶
O módulo ml.preprocessing contém classes para pré-processar imagens para uso com modelos de machine learning.
class Normalization – Normalização de Imagem¶
O objeto Normalization converte objetos image.Image em tensores de entrada ndarray para uso com ml.Model.predict(). É criado automaticamente pelo objeto ml.Model quando uma imagem é passada a ml.Model.predict(), mas pode ser instanciado manualmente para controlar a conversão (escala, média/desvio padrão, 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)¶
Cria um objeto
Normalization.scaleé o intervalo(min, max)de valores que os tensores de entrada de ponto flutuante esperam após a normalização (por exemplo,(0.0, 1.0)ou(-1.0, 1.0)). Ignorado para tensores de entradauint8eint8.meané a média por canal(R, G, B)subtraída da imagem após a escala. Para tensores em escala de cinzentos, a média é reduzida a um único valor de luminância usando0.299*R + 0.587*G + 0.114*B. Ignorado para tensores de entradauint8eint8.stdevé o desvio padrão por canal(R, G, B)pelo qual a imagem é dividida após a subtração da média. Para tensores em escala de cinzentos, o desvio padrão é reduzido a um único valor de luminância usando0.299*R + 0.587*G + 0.114*B. Ignorado para tensores de entradauint8eint8.roié uma região de interesse opcional(x, y, w, h)dentro da imagem de entrada para recortar. SeNone, a imagem completa é utilizada. A região recortada é centrada e redimensionada bilinearmente (preservando a proporção com preenchimento a preto) para as dimensões do tensor de entrada do modelo.- __call__(image: image.Image) Normalization¶
- __call__(buffer: bytearray, shape: tuple[int, int, int, int], dtype: int) None
Quando chamado com um único argumento
image.Image, devolve um novo objetoNormalizationvinculado a essa imagem. O objeto vinculado é o queml.Model.predict()invoca internamente para preencher o tensor de entrada. Seroinão foi definido na instância original, é inicializado com o tamanho completo da imagem.Quando chamado com
(buffer, shape, dtype), preenchebufferno próprio lugar com o tensor de entrada normalizado para a imagem previamente vinculada.shapedeve ser(1, H, W, C)comCigual a1(escala de cinzentos) ou3(RGB).dtypeé o código de tipo numpy do ulab (por exemplo,ord('f')para float32,ord('b')para int8,ord('B')para uint8). Os tensores float aplicamscale,meanestdev; os tensores inteiros são escritos diretamente (com um deslocamento paraint8).