Implementação de códigos no Matlab para detecção de falhas em cordão de soldas Adailton Turczen de Melo Andrine M. Varela da Cruz Wallace Griz Ayres Departamento Acadêmico de Eletrônica (DAELN) - Universidade Tecnológica Federal do Paraná (UTFPR) Curso Superior de Tecnologia em Sistemas de Telecomunicações Curitiba PR Brasil adailtondemelo@hotmail.com andrine@hotmail.com.br wall_ayres@hotmail.com Resumo: Este artigo tem como objetivo apresentar uma técnica de detecção de falhas em soldas feitas em tubulações de petróleo, através de um algoritmo implementado no Matlab que através de imagens radiografadas dos dutos de petróleo foi possível a extração das características dos defeitos nas imagens geradas em preto e branco. Palavras-chave: Detecção de Falhas, Matlab, Segmentação em Solda. Abstract: This article aims to present a technique for detecting faults in welds made in oil pipes, through a program implemented in Matlab that through images Radiographs of oil pipelines was possible to extract the characteristics of the defects generated images in black and white. Keywords: Fault Detection, Matlab, Segmentation in Solda. 1. Introdução O presente trabalho visa detectar as descontinuidades em cordões de solda, através da inspeção visual de imagens radiográficas de soldas. O grande problema normalmente enfrentado deve-se ao fato do aparecimento inesperado de condições adversas (por ex.: erro de procedimento durante a operação de soldagem, aparentemente sem influência, gerando descontinuidades como concentradoras de tensões) que culminam na redução da vida útil do componente além da possibilidade de falhas (Modenesi, [4]). Admitindo-se a possibilidade do aparecimento das descontinuidades, se faz necessário identificá-las, para poder entender qual o motivo do seu aparecimento. A partir da digitalização das imagens radiográficas podem ser empregadas técnicas de PDI (Processamento Digital de Imagens) que permitem a segmentação dos defeitos, cordões de solda e paredes da tubulação para que estas regiões sejam analisadas. (Schneider, [3]).
2. Segmentação (Detecção de Defeitos) Na transformação das imagens para os níveis preto e branco (procedimento de segmentação), das radiografias, é normalmente empregada uma série de filtros para encontrar variações significativas nos pixels das imagens, a fim de localizar os defeitos de soldagens existentes no cordão-de-solda. Neste caso, denomina-se detecção de defeitos. Schneider [3] descreve a utilização de técnicas de segmentação para detecção de defeitos de soldagem em radiografias usando vários tipos de processos, como: filtragem horizontal e filtragem vertical, realce dos defeitos, filtro da mediana, limiarização, filtro de Sobel, entre outros. Ele mostra em sua dissertação um exemplo de radiografia segmentada aplicando-se uma sequencia destes processos. O resultado foi excelente com a detecção eficiente do defeito. Na nossa aplicação a sequencia de filtros empregados foi igual para três tipos de imagens radiográficas, fato que configura em uma nítida vantagem, já que o número de radiografias poderia ser enorme. 3. Aplicação 3.1 Implementação de Resultados Utilizamos o Imread para ler a imagem, I1=img(:,:); recortamos o local da solda cada valor estabelecido para a respectiva imagem, img=im2double(img); utilizamos para converter os pixels para números reais, imtool utilizado para mostrar a imagem recortada utilizando contraste. Utilizamos o Bottom-hat para salientar as descontinuidades, possíveis defeitos, da imagem. A Limiarização para filtrar a imagem, destacando os defeitos e eliminando o resto. O Fechamento foi utilizado com o disco para conectar os pontos dos defeitos, e a Erosão com o disco para eliminar ruídos. Figura 1: CP2-1B_Seifert-_kV_mA_3.5min.tif.
Figura 2: CP4-1A_Seifert-_kV_mA_5.0min.tif. Figura 3: CP2-2B_Seifert-_kV_mA_3.5min.tif.
4. Conclusão Com a evolução tecnológica e o desenvolvimento de computadores digitais de alta capacidade e velocidade de processamento, o processamento Digital de Imagens tem sido cada vez mais utilizado para análise e diagnósticos. Uma das ferramentas mais utilizada neste processamento é a o Matlab, o qual nos permite ter uma visão da imagem a ser analisada através de códigos desenvolvidos por nós durante a aula, facilitando sobremaneira esta análise e o seu processamento, normalmente, aplicando-se técnicas de filtragem digital e dessa forma destacando os ruídos (defeitos da solda) das imagens analisadas com segmentação em soldas, radiográficas de soldas. Na prática, a utilização do Matlab juntamente com os conceitos apresentado em aula pelo professor foi possível a extração das características dos defeitos. Para trabalhos futuros gostaria de sugerir a implementação de códigos em imagens coloridas pois pode despertar um pouco mais de interesse pelos alunos no decorrer do semestre, criar um filtro para reduzir o brilho ou até clarear imagens que ficam com pouca luz, tornando-as mais vivas e interessantes. 5. Referências Bibliográficas [1] MARQUES FILHO, Ogê; VIEIRA NETO, Hugo. Processamento Digital de Imagens, Rio de Janeiro: Brasport, 1999. ISBN 8574520098. Company, 1993. [2] MATLAB Image Processing Toolbox, User s Guide, The Math Works, 2013. [3] SCHNEIDER, Guilherme Alceu. Segmentação E Extração Das Características De Defeitos Em Imagens Radiográficas De Juntas Soldadas E Tubulações: Dissertação 2005. [4] MODENESI, Paulo J. Descontinuidade e inspeção em juntas de solda. Apostila. Belo Horizonte: UFMG 2001 [5] GONZALEZ, R.C., WOODS, R. E., Digital Image Processing, 1ª edição, U.S.A.,Addison-Wesley Publishing Company, 1992.
Anexo I: Algoritmo da implementação com comentários. img=imread('cp2-1b_seifert-_kv_ma_3.5min.tif');%ler imagem sem contraste img=im2double(img); %imtool(img, []); %mostra imagem com contraste e o local de recorte I1=img(171:1207,1414:1942); % recorta o local da solda imtool(i1, []); %mostra imagem com contraste recortada se = strel('disk', 16); I3 = imbothat(i1, se);% Bottom-hat para salientar descontinuidades (possíveis defeitos) I4 = I3>2e-3;% Limiarização (deixa os defeitos e elimina o resto) se = strel('disk', 5); I5 = imclose(i4, se);% Fechamento com disco para conectar pontos dos defeitos se = strel('disk', 2); I6 = imerode(i5, se);% Erosão com disco para eliminar ruídos figure, imtool(i6);