Baixe o app para aproveitar ainda mais
Prévia do material em texto
INSTITUTO FEDERAL DE EDUCAÇÃO CIÊNCIA E TECNOLOGIA DE SANTA CATARINA CAMPUS CHAPECÓ/SC ENGENHARIA DE CONTROLE E AUTOMAÇÃO FELIPE KISSMANN GUILHERME A. SEGAT RENAN F. DO VALLE MEDIÇÃO DE TEMPERATURA ATRAVÉS DE VISÃO COMPUTACIONAL CHAPECÓ, JULHO DE 2017 1. Projeto Preliminar Esta etapa consistiu em sintetizar todas as ideias levantadas durante o processo de desenvolvimento do projeto como um todo, com um intuito de chegar a um resultado final que atenda todos os requisitos levantados da melhor forma possível. Serão abordados os métodos utilizados para a resolução dos problemas do projeto e o detalhamento de cada um dos mesmos, justificando sua utilização. 1.1 Microsoft Visual Studio O ambiente de desenvolvimento integrado (IDE) utilizada para o desenvolvimento desse projeto foi o Microsoft Visual Studio. Segundo a própria Microsoft, o visual Studio oferece serviços e ferramentas profissionais para desenvolvedores para a criação de qualquer aplicativo para qualquer plataforma. Por ser uma IDE extremamente completa e de conhecimentos dos desenvolvedores deste projeto, este recurso foi utilizado para a elaboração de todo código, além da interface gráfica do software. 1.2 C# Segundo a Microsoft, C# é uma linguagem de programação projetada para criar vários aplicativos executados no .NET Framework. A linguagem C# é simples, poderosa, segura e orientada a objeto. As diversas inovações do C# permitem o desenvolvimento rápido de aplicativos e a manutenção da expressividade e elegância das linguagens em estilo C. A linguagem C# foi utilizada para o desenvolvimento do código por ser compatível com a biblioteca Emgu CV e ser capaz de atender todos os requisitos de projeto. 1.3 Emgu CV Como esse projeto se trata de processamento de imagens, foi necessária a utilização de uma biblioteca apropriada para isso, neste caso a Open CV, por meio de sua camada EmguCV, que segundo Shin Shi (2013), é uma biblioteca de processamento de imagem multiplataforma. Ele está sempre relacionado ao OpenCV porque é um wrapper (envelopador) para o OpenCV. Alguns recursos que o Emgu CV oferece e que foram interessantes nesse projeto são a detecção de bordas, levantamento das informações RGB da imagem, filtros de imagens, entre outras, além da compatibilidade com o Visual Studio e a linguagem de programação utilizada, C#. 1.4 Captura de imagens O software desenvolvido neste projeto trabalha com imagens térmicas, para isto foi necessário realizar a captura de algumas destas. As imagens iniciais para serem utilizadas no software seriam bastante simples, contando com um círculo isolado aquecido a uma temperatura significativamente maior que a ambiente. Foi utilizada a câmara termográfica FLUKE TI90, uma chapa circular e em alguns casos uma chapa retangular, ambas de aço 1020 aquecidas à temperaturas que variavam de 30 à 160°C. Para captura das imagens, as chapas foram posicionadas em pedestais ficando apenas em contato com o ar e aquecendo minimamente o ambiente ao seu redor, assim gerando imagens com forma mais definida. Na figura a seguir, é possível ver a forma circular e retangular em seu espectro visível. Figura 1: Câmera para captura das imagens e formas retangular e circular. Fonte: Dos autores (2017). Quanto aos ajustes realizados na câmera, foram de emissividade, que foi definida em (0,75), baseada em tabelas de emissividade e testes realizados com auxílio de termopar para comprovação de temperatura. Outro parâmetro foi a escala, que poderia ser utilizada tanto em manual quanto em automática. Além desses, ângulo e distância de captura foram os últimos ajustes, onde a câmera estava sempre posicionada perpendicular ao objeto e cerca de um metro de distância. 1.5 Interface A interface final do software foi baseada na estrutura apresentada no projeto conceitual, porém com alguns recursos modificados. Ela conta com um botão “carregar” para carregamento de imagem a partir das imagens do sistema, a imagem escolhida é carregada em um PictureBox e a partir daí é possível acionar o botão “processar”. Ao processar, mais duas imagens surgem em outros dois PictureBox, um mostra o resultado do processo “canny”, que faz a detecção de bordas da imagem, e a outra mostra o resultado do circulo detectado ignorando o restante da imagem. Quanto as configurações, estão todas presentes na janela raiz do software. No canto inferior esquerdo da janela, é possível mudar a escala da temperatura conforme a imagem a ser processada, possibilitando assim, processar imagens capturadas com escala automática. Logo ao lado, estão presentes os parâmetros de detecção de círculo, onde cada um pode ser alterado individualmente para melhorar os resultados obtidos. E por último, no canto inferior direito são mostrados os valores RGB do círculo detectado e sua temperatura média em graus célsius. A seguir, uma imagem da interface completa, com uma imagem carregada e processada, com todos os parâmetros de configuração ajustados: Figura 2: Interface em funcionamento. Fonte: Dos autores (2017). 1.6 Detecção do objeto Partiu-se da ideia de detectar três tipos de objetos: quadrados, triângulos e círculos. Conversando com pessoas que tentaram desenvolver o software em outros projetos integradores, viu-se que a maior dificuldade de padrão à ser encontrado se dava nos circulares, sendo assim, esse foi o primeiro objeto a ser trabalhado. Utilizando a plataforma de desenvolvimento Visual Studio, a biblioteca EmguCV e programando em C#, iniciou-se a fase de desenvolvimento do software. Após fase de pesquisa, viu-se que anteriormente ao uso de ferramentas que detectam padrões circulares, tratar a imagem com alguns filtros facilitaria a detecção do objeto. Com a imagem em mãos foram aplicados alguns filtros, onde após analisados os resultados, foram mantidos ou descartados do programa final. Nos tópicos a seguir serão explicados os filtros utilizados que apresentaram bons resultados e foram mantidos no programa final. Posteriormente, se dá uma breve explicação na ferramenta que detecta os círculos bem como seus parâmetros. Tendo em vista que a equipe executora teve o propósito de encontrar um padrão e se dedicar em fazer a correta relação entre os valores do conjunto de pixels com determinada temperatura, apenas o padrão circular está sendo utilizado e será explicado na sequência. 1.6.1 Gray Transforma a imagem em escala de cinza, convertendo a imagem em apenas um canal, que assume valores de 0 à 255. Onde 0 é o a cor puramente preta e 255 é a cor puramente branca, como pode ser vista na figura a seguir. Figura 3: Escala de cinza. Fonte: Dos autores (2017). Este filtro ajuda a eliminar ruídos da imagem e também auxilia para detectar bordas, visto que a imagem terá apenas um canal, diferentemente da RGB que possui três. 1.6.2 Canny Após aplicar o filtro gray, foi utilizado o filtro de Canny para detectar todas as bordas das geometrias presentes na imagem com baixíssima taxa de erro. Aplicar Canny foi um diferencial do projeto aqui desenvolvido para os projetos de semestres anteriores. Este filtro foi de grande utilidade para detectar a geometria presente na imagem, visto que ressalta as bordas da mesma, facilitando assim o seu reconhecimento. A seguir serão expostas duas imagens, onde a primeira está em espectro infravermelha e a segunda consiste na mesma imagem, porém com a aplicação do filtro Gray e Canny. Figura 4: espectro infravermelho e filtro Gray e Canny. Fonte: Dos autores (2017).Nota-se que após a aplicação dos filtros, fica em evidência as bordas da geometria circular. Dentro desse filtro há dois parâmetros importantes, que podem ser alterados para um melhor resultado das bordas que são o “Threshold” e o “Threshold Linking”. 1.6.2.1 Canny Threshold e Threshold Linking Trata-se dos limiares para o processo de histerese. Para cada imagem haverá valores que podem auxiliar na detecção da imagem, como podem atrapalhar. Os valores desses filtros variam de 0 à 255, onde 0 irão tratar qualquer conjunto de pixels como limiares e 255 irão reconhecer apenas limiares muito bem definidos. Para melhor esclarecimento, nas imagens a seguir irei calibrar dois valores diferentes para a mesma imagem. Nessa imagem consta a imagem em espectro infravermelho original. Figura 5: espectro infravermelho. Fonte: Dos autores (2017). Essa imagem é o resultado da aplicação do filtro com valores relativamente baixos. Figura 6: aplicação do Canny com valores baixos. Fonte: Dos autores (2017). Agora, na figura à seguir, a calibração está com valores mais condizentes para encontrar os limiares corretos do padrão circular. Figura 7: aplicação do Canny com valores apropriados Fonte: Dos autores (2017). Depois de aplicados os devidos filtros, pode-se iniciar a fase de utilização de comandos específicos da biblioteca Emgu CV para a detecção de padrões. 1.6.3 Hough Circles Dentro da biblioteca Emgu CV, há diversas ferramentas que auxiliam na detecção de padrões, dentre elas, está a ferramenta denominada Hough Circles. Esta ferramenta tem como objetivo encontrar todos os padrões circulares presentes numa imagem e armazená-los em um vetor denominado circles. Dentro desta ferramenta, há alguns parâmetros calibráveis onde é possível especificar quais círculos e de quais tamanhos devem ser encontrados. Também é possível descrever o quão distante deve estar um círculo de outro, prevenindo assim, que os círculos se sobreponham. Na figura abaixo é possível ver todos os parâmetros ajustáveis da função Hough Circles, que ficarão disponíveis para calibração de cada imagem. Figura 8: parâmetros Hough Circles. Fonte: Dos autores (2017). Para um melhor entendimento do usuário, será explicado aqui qual a função de cada parâmetro. 1.6.3.1 Acumulador Dentre as funções da Hough Circles talvez seja este o parâmetro mais confuso para explicação. De forma resumida, quanto mais baixo, mais fácil de encontrar círculos falsos pela função Hough Circles. Na bibliografia utilizada, os autores recomendam testar valores para cada imagem, não apresentando um padrão específico para seguir. Nas figuras abaixo é possível ver que para pequenas mudanças neste parâmetro, há grandes diferenças nos círculos encontrados. Neste primeiro caso foi colocado 10 no acumulador e o mesmo encontrou vários círculos inexistentes. Figura 9: Acumulador 10. Fonte: Dos autores (2017). Já nesse segundo caso, para a mesma imagem, foi incrementado um valor de 4 no acumulador, totalizando 14. Nota-se um resultado totalmente diferente do caso anterior. Figura 10: Acumulador 14. Fonte: Dos autores (2017). 1.6.3.2 Resolução de Centro Trata da relação inversa da resolução do acumulador para a resolução da imagem. Por exemplo, se for parametrizado como 1, o acumulador terá a mesma resolução da imagem original, caso seja parametrizado como 2, o acumulador tem metade da altura e largura. Neste caso, o software irá trabalhar apenas parametrizado em 1. 1.5.3.3 Distância Mínima Este parâmetro se refere à distância entre o centro de dois círculos. Visto que as imagens retiradas para testes no software possuem apenas um círculo, a distância pode ser máxima (255). 1.5.3.4 Raio mínimo Como o próprio nome já diz, se refere ao raio mínimo do círculo à ser encontrado. 1.5.3.5 Raio máximo Esse parâmetro tem como função limitar os círculos que devem ser encontrados em um raio máximo. Caso o valor seja 0, não há valor máximo de raio. 1.6 Detecção de temperatura A partir da detecção do objeto são obtidas algumas informações como a posição do centro do círculo nas coordenadas X e Y dentro da imagem e o tamanho do raio. Com isso é executado um algoritmo que armazena a cor de cada pixel dentro da região detectada. Este algoritmo se baseia na execução de dois laços de repetição e um teste condicional, os laços de repetição utilizam a informação do centro do círculo e do raio para percorrer um quadrado nas coordenadas X e Y, pixel a pixel. Já o teste condicional visa delimitar a região onde a cor de cada pixel será armazenada, para isso parte-se da equação do círculo abaixo: Equação: Equação do círculo [1] Onde: r: raio x: coordenada x y: coordenada y Desenvolvendo e aplicando as variáveis disponíveis na aplicação é possível dizer que está dentro do círculo qualquer pixel que puder ser descrito pela inequação abaixo, onde é considerado dentro do objeto o pixel cuja a raiz quadrada da soma das coordenadas em x e y ao quadrado são menores do que o raio detectado. Equação: Inequação que delimita os pixels dentro do objeto √ [2] Onde: : raio do objeto detectado x: coordenada x do pixel y: coordenada y do pixel Desta forma o algoritmo percorre uma região retangular, pixel a pixel, e quando o teste condicional identifica que o pixel está dentro do círculo, este tem sua cor armazenada no padrão RGB, conforme é demonstrado na imagem abaixo. Figura11: Fonte: Dos autores (2017). Após mapear e armazenar cor de cada pixel dentro da figura detectada, o sistema extraí a média aritmética simples de cada componente identificado, desta forma obtendo a tonalidade média da figura. O princípio básico da câmera trata-se de aplicar uma escala de cor de acordo com a temperatura das regiões da imagem que está sendo vista ou capturada. Essa escala pode ser vista na figura abaixo e nota-se que ela é unidimensional e atribui cores mais vermelhas para temperaturas mais quentes, mais verdes para intermediárias e mais azuis para temperaturas mais baixas. As temperaturas máxima e mínima podem ser arbitradas manualmente ou definidas automaticamente pela câmera Figura 12: escala de temperatura. Fonte: Dos autores (2017). Uma característica importante é que está escala é unidimensional, o que gera um problema pois a criação de cores em sistemas computacionais digitais se dá em múltiplas dimensões, como no modelo RGB, onde uma cor é formada por uma parcela de vermelho, uma parcela de verde e uma parcela de azul. Por isso, foi preciso encontrar um modelo de correlação que consiga transformar um modelo multidimensional (cor) em um modelo unidimensional (temperatura) com precisão. O modelo desenvolvido se baseia na observação do comportamento do padrão RGB ao longo da escala. Percebeu-se que dentro da variação de temperatura sempre há uma cor dominante, a qual se trata da vermelha no último terço do span (faixa de variação da temperatura) da medição, verde no terço central e azul no terço inferior. Há também um canal de cor que varia aumentando ou diminuindo junto com a temperatura indicando a transição e forçando a mudança de tonalidade, este canal de cor é o segundo de maior intensidade e com base nele se obtém a variação de temperatura. Por fim o canal restante no modelo RGB é nulo (zero) ou intensidade e variação nula e pode ser desconsiderado durante a mudança de cor. A variação de cor se dá entre 0 e 255, logo se faz uma escala simples dentro de cada patamarlevando em consideração a média da cor e como se dá a relação de variação dentro daquele patamar No esquemático demonstrado na figura abaixo percebe-se a cor dominante, variante e nula para cada faixa da escala de cor correlacionando com a temperatura. Figura13: Modelo RGB desenvolvido. Fonte: Dos autores (2017). 1.7 Resultados O sistema foi testado através da comparação dos resultados revelados por ele e pelos que são fornecidos na câmera termográfica da Fluke bem como no software da mesma. Pode-se afirmar que o software desenvolvido consegue apresentar resultados satisfatórios, bastante fiéis aos que são mostrados pelo sistema profissional. Abaixo é possível visualizar uma imagem tirada com a câmera termográfica e temperatura que ela identificou. Figura 14: imagem real da câmera termográfica. Fonte: Dos autores (2017). A seguir, uma captura de tela do software desenvolvido processando uma imagem tirada segundos após a anterior, apenas com a função de informações desabilitada. Nota-se que a temperatura média observada é muito fiel a temperatura identificada pela câmera. Figura 15: medição de temperatura pelo software. Fonte: Dos autores (2017). Em testes percebeu-se que o sistema apresenta uma diferença de até 10°C em relação a imagem da câmera, isso se mostra por alguns fatores como: diferença de tempo entre a captura da imagem com informações e sem informações o que faz o objeto ter sua temperatura alterada, nas imagens da câmera a temperatura apresentada se trata de um ponto ou pequena região do objeto enquanto no software desenvolvido se calcula a temperatura média de todo o objeto, além disso, pela tecnologia da câmera não ser aberta é difícil precisar o funcionamento do algoritmo que calcula a temperatura logo é bastante complexo garantir uma fidelidade completa. Na imagem a seguir apresenta uma captura do software da Fluke onde é possível fazer a detecção da temperatura média da região demarcada. Figura 16: temperatura média pelo software da Fluke. Fonte: Dos autores (2017). Abaixo a captura de tela da ferramenta desenvolvida processando a mesma imagem em questão. Figura 17: temperatura média pelo software desenvolvido. Fonte: Dos autores (2017) Nota-se que mais uma vez a ferramenta apresentou um resultado bastante fiel ao obtido com a tecnologia da Fluke, apresentando uma pequena diferença. Por vezes é necessário mudar os parâmetros de detecção de objetos para conseguir realizar o processamento da imagem em virtude da qualidade de captura e nitidez das bordas o que é uma tarefa um pouco trabalhosa e inviável para produto final, porém, completamente aceitável para um projeto em desenvolvimento como este. Contudo, é possível afirmar que o software apresenta um resultado bastante satisfatório dentro das condições de desenvolvimento do trabalho, a técnica de detecção de temperatura a partir da cor se mostrou bastante eficiente e robusta, trazendo resultados fiéis ao real. A interface é amigável e de fácil utilização. 1.8 Referências BRASIL. J Viana. Universidade Federal Rural do Rio de Janeiro. Processamento da Imagem. Disponível em: <http://www.ufrrj.br/institutos/it/de/acidentes/sr4.htm>. Acesso em: 16 mar. 2017. QUEIROZ, José Eustáquio Rangel de; GOMES, Herman Martins. Introdução ao Processamento Digital de Imagens. Campina Grande: Ufcg, 2001. SHI, Shin. Emgu CV Essentials. Packt Publishing, 2013. JÄHNE, B. Digital Image Processing. Springer-Verlag, 2002. ACHARYA, T., RAY, A. K. Image Processing- Principles and Applications. John Wiley & Sons, Inc. 2005. GONZALEZ, R., WOODS, P. Digital Image Processing. Prentice Hall, 2002, 2nd ed. CESAR JR, R. M., COSTA, L. F. Shape Analysis and Classification Theory and Practice. CRC Press, 2001.
Compartilhar