Free Trial

Blog

Insights e ideias das mentes mais brilhantes em análise de dados.
Garabujo7
Alteryx
Alteryx

Dentro do Machine Vision Palette, parte do pacote Intelligence Suite, desde a versão 21.3. temos a possibilidade de criar modelos para classificar imagens com a ferramenta para reconhecimento de imagens.

 

 

Garabujo7_0-1654793616176.png

 

 

Aqui vou mostrar como criar um modelo de classificação de imagens que facilite a identificação de defeitos em peças de concreto. Assim, em vez de precisar que uma pessoa verifique visualmente as peças, uma a uma, é possível criar um modelo preditivo que faça isso automaticamente e as classifique em duas, com e sem defeitos. Dessa forma, simplificaremos o trabalho visual e libertaremos uma pessoa dessa tarefa repetitiva e tediosa.

 

Over-fitting, Under-fitting e a arte de obter um modelo certo

 

O primeiro passo será mostrar imagens para o modelo com um conjunto de dados de treinamento e um conjunto de dados de validação. Fazemos isso para garantir que o modelo não seja overfitting (memorizar as imagens que apresentamos a ele) nem underfitting (generalizar demais sobre as características das imagens, ou seja, encontrar semelhanças entre elas com mais facilidade).

 

O ideal quando criamos qualquer modelo preditivo é, que sem memorizar os dados, ele consiga generalizar o que foi aprendido quando possui dados que nunca viu antes.

 

Outra maneira de ilustrar isso é: quando estudamos para uma prova, se tivermos um guia e a prova tiver questões exatamente iguais ao guia, passaremos memorizando o guia, mas se as questões não forem as mesmas, nossa nota pode não ser tão bom.

 

Por outro lado, se o guia for muito superficial ou genérico em relação ao tema, não conseguiremos responder corretamente às perguntas.

 

No entanto, se as perguntas forem baseadas no guia, ou seja, mas falarem sobre o tema, poderemos responder a esse e outros exames semelhantes com alguma precisão.

Conjuntos de dados

 

Como mencionei acima, para obter um modelo que generalize o melhor possível, precisamos apresentar 3 conjuntos de dados separados.

 

 

Garabujo7_1-1654793671082.png

 

 

 

Treinamento, é usado para que o modelo conheça os dados e nos dê o primeiro resultado de sua eficácia ao classificar as imagens.

 

Validação. Com este conjunto, garantimos que o modelo tenha um bom desempenho, apresentando-o com imagens diferentes das que usamos para treiná-lo.

 

Dessa forma, garantimos que você não memorize demais ou expanda demais as características da imagem que queremos classificar.

 

Holdout ou retidos, quando estivermos satisfeitos com os resultados, usaremos essas imagens para verificar se o modelo oferece resultados ideais de acordo com o objetivo de negócios que buscamos.

 

Leitura de imagens

 

Para inserir as imagens no Designer, usaremos a ferramenta Image Input.

 

 

Garabujo7_2-1654793692604.png

 

 

Sua configuração é simples:

 

 

Garabujo7_3-1654793702150.png

 

 

 

Podemos ler uma pasta ou se usarmos uma entrada de diretório Garabujo7_4-1654793750654.png antes, podemos ler a pasta e suas subpastas onde as imagens estão localizadas.

 

Depois atribuímos um nome à coluna Blob (se quiser saber mais sobre este tipo de ficheiros pode ler aqui).

 

Nesse caso, a coluna Blob armazenará as imagens que lemos.

 

O último passo é selecionar o tipo de imagens que vamos ler. A plataforma suporta PDF, BMP, JPEG ou PNG.

 

Processamento de imagem

 

Esta ferramenta permite processar as imagens para melhorá-las, ajustá-las e padronizá-las antes de criar os modelos.

 

 

Garabujo7_5-1654793807625.png

 

Aqui temos as seguintes opções:

 

 

Garabujo7_6-1654793823586.png

 

 

Selecione o campo que contém as imagens.

 

Nos passos podemos escolher os ajustes que serão feitos em todas as imagens.

 

Garabujo7_7-1654793841131.png

 

 

A opção que se destaca entre as oferecidas é a otimização para OCR:

  • Otimiza arquivos PDF digitalizados para reconhecimento óptico de caracteres (OCR)

 

Preparando os dados para o modelo

 

Adicione rótulos a cada uma das imagens a serem usadas para treinar o modelo de classificação.

 

Como em qualquer modelo preditivo, preciso ter conjuntos de dados com os casos verificados do que queremos prever + casos que não possuem a variável que procuramos. Dessa forma, o modelo será capaz de classificar novas imagens com base no que aprendeu durante as fases de treinamento e validação.

 

Para este exemplo utilizaremos peças de concreto com defeitos e outras que não apresentem imperfeições.

 

Com falhas:

 

Garabujo7_8-1654793853279.png

 

 

Sem falhas:

 

Garabujo7_9-1654793860434.png

 

 

A ideia é ter vários exemplos de peças com falhas e sem falhas para que o modelo seja capaz de classificar as novas imagens como falhas e sem falhas de forma eficaz.

 

A quantidade, variedade e qualidade dos exemplos é um ponto chave para melhorar a capacidade do modelo de fazer classificações corretas.

Uma vez que temos os conjuntos de imagens, criamos rótulos para que o modelo consiga identificar quais características as peças de concreto possuem e quais não são.

 

Então, usando a ferramenta criar amostragem, separamos as imagens nos 3 conjuntos de dados que descrevi acima: Treinamento, Validação e Holdout.

 

 

Garabujo7_10-1654793960252.png

 

 

Ter os dados rotulados e preparados. O próximo ponto é treinar e validar o modelo para reconhecimento de imagem.

 

Rótulos