ml.preprocessing — Pré-processamento de ML¶
O módulo ml.preprocessing contém classes para pré-processar imagens para uso com modelos de aprendizado de máquina.
classe Normalization – Normalização de Imagem¶
O objeto Normalization converte objetos image.Image em tensores de entrada ndarray para uso com ml.Model.predict(). Ele é criado automaticamente pelo objeto ml.Model quando uma imagem é passada para 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é a faixa(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 o escalonamento. Para tensores em escala de cinza, a média é reduzida a um único valor de luma 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 cinza, o desvio padrão é reduzido a um único valor de luma usando0.299*R + 0.587*G + 0.114*B. Ignorado para tensores de entradauint8eint8.roié uma região de interesse(x, y, w, h)opcional dentro da imagem de entrada para recortar. SeNone, a imagem inteira é usada. A região recortada é centralizada e escalonada bilinearmente (preservando a proporção com preenchimento 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, retorna 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, ele é inicializado com o tamanho da imagem inteira.Quando chamado com
(buffer, shape, dtype), preenchebufferno local com o tensor de entrada normalizado para a imagem previamente vinculada.shapedeve ser(1, H, W, C)comCigual a1(escala de cinza) 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). Tensores float aplicamscale,meanestdev; tensores inteiros são escritos diretamente (com um deslocamento paraint8).