Aplicando camadas de processamento durante o Aumento Sintético de uma base de dados.pdf
1. 1
Aplicando camadas de processamento durante o Aumento Sintético
de uma base de dados
No que diz respeito ao processo de aumento sintético de uma base de dados,
convencionalmente realizado pelas ferramentas proprietárias das bibliotecas
em questão (TensorFlow / Keras), é notável o limitado número de funções
aplicáveis para o real tratamento dos dados. Contextualizando para a
ferramenta ImageDataGenerator( ), o processamento convencionalmente
executado sobre as amostras sintéticas geradas se resume a aplicar zoom,
brilho / contraste, seguido de operações morfológicas como espelhar,
rotacional, inclinar, esticar, entre outras, deixando muito a desejar nos pontos
que de fato seriam um “tratamento” das características que compõem as
imagens aqui processadas.
Diante deste problema, a ferramenta ImageDataGenerator( ) ao longo do
tempo sofreu uma série de atualizações, tendo em uma delas a inclusão de
um método dedicado a incorporação de funções de terceiros em meio ao
processo de geração de imagens.
Em outras palavras, sem perder nenhuma de suas características de
tratamento / processamento originais, foi permitido o uso de uma função
acessória personalizada para assim estender os meios e métodos os quais o
processamento das amostras / imagens de fato demanda.
Nesse cenário, a partir de um parâmetro nomeado preprocessing_function é
possível atribuir a instância de uma função personalizada, a qual iremos
utilizar como meio para aplicação de todos os métodos de tratamento de
imagem os quais necessitamos.
Internamente o conteúdo da(s) função(ões) que estaremos programando será
executado em uma etapa de processamento anterior às ferramentas nativas
da classe ImageDataGenerator( ), na camada de desenvolvimento em que
estaremos trabalhando, precisamos apenas nos atentar a escrever uma
função que execute o tratamento adequado às amostras a serem processadas,
2. 2
retornando seus dados à própria instância da classe / ferramenta
ImageDataGenerator.
Para que tais conceitos fiquem mais claros, nada melhor que a prática. Em
nosso código, supondo uma etapa de pré-processamento a ser aplicada a uma
base de dados de um determinado projeto, importamos a biblioteca OpenCV
através do comando import cv2, também importamos a ferramenta
ImageDataGenerator que será nossa plataforma para aumento sintético das
imagens.
Na sequência, criamos uma função personalizada chamada filtros( ) que
quando instanciada e inicializada obrigatoriamente deverá receber um dado /
valor para seu parâmetro nomeado img.
Dentro do corpo desta função, sob sua indentação declaramos uma variável
local de nome img que inicializa a ferramenta cv2.bilateralFilter( ), um filtro
bilateral para redução de ruído muito eficiente em grande parte das
aplicações, por sua vez parametrizada com a imagem a ser processada,
seguido dos parâmetros nomeados d, sigmaColor e sigmaSpace, que
basicamente configuram o diâmetro do bloco / da área a ser processada em
tamanho de pixels (9 representa aqui uma matriz 3X3 pixels), também
configurando o fator de influência da cor e da diferença espacial dos pixels do
bloco, respectivamente, para assim retornar uma redução local de ruído
visível nas próprias características da imagem em questão.
Dando sequência, já a nível dos parâmetros nomeados da ferramenta
ImageDataGenerator( ) atribuímos uma instância do objeto filtros (nossa
função personalizada) para o parâmetro nomeado preprocessing_function.
3. 3
Desta forma, cada imagem processada para geração de novas amostras será
primeiramente processada por nosso filtro de redução de ruído, seguido das
outras operações base da ferramenta ImageDataGenerator.
--//--
Este conteúdo é uma amostra do livro:
--
Sobre o Autor
4. 4
Fernando Feltrin é Engenheiro da Computação com especializações na área de
ciência de dados e inteligência artificial, Professor licenciado para docência de
nível técnico e superior, Autor de mais de 40 livros sobre programação de
computadores e responsável pelo desenvolvimento e implementação de
ferramentas voltadas a modelos de redes neurais artificiais aplicadas à
radiologia médica (diagnóstico por imagem).
--
Livros