Transformação de Imagens Digitais em Código CNC Aprimoradas com Redes Neurais Artificiais Abstract. Jader Teixeira 1, Alex Vinícios Telocken 1 1 Universidade de Cruz Alta (UNICRUZ) jader033139@unicruz.edu.br, telockenalex@unicruz.edu.br Resumo. O presente trabalho tem como objetivo aprimorar as técnicas de processamento de imagem, por meio de algoritmos que simulam a inteligência humana, para posteriormente gerar códigos usados em máquinas CNC 1. São apresentados conceitos básicos de técnicas de detecção de borda e de redes neurais, técnicas necessárias para o processo de transformação além do conhecimento básico sobre o G-Code 2. 1. Introdução Atualmente o processo para fazer a cópia de uma peça 2D 3 já existente pode demandar várias horas de trabalho e mão de obra especializada (Gonçalves e Leal, 2006). O presente trabalho tem por objetivo desenvolver um método que permita que esse processo seja automatizado e que possa ser feito de forma rápida e por uma pessoa sem conhecimentos de engenharia ou CAD 4. Existem duas formas para se obter o código CNC: a primeira delas é de forma manual onde um programador digita todos os comandos que devem ser enviados para a máquina de corte. Esse processo é lento e é necessário que se tenha conhecimento e experiência em programação CNC. A segunda forma é através do auxilio de um software de CAM 5 ou CAD e com ele fazer um modelo 2D computadorizado, a partir desse modelo são gerados os parâmetros de corte, o cálculo das trajetórias e posteriormente o G-Code. Esse método é mais rápido, porém também exige um profissional especializado e os softwares de CAM ou CAD são pagos e o custo da sua licença é alto (Oliveira, 2010). 1 CNC (Comando Numérico Computadorizado) 2 G-Code (Linguagem de programação interpretada pelas maquina CNC) 3 2D (Duas dimensões, eixos X e Y) 4 CAD (do inglês: Computer Aided Design) 5 CAM (do inglês: Computer Aided Manufacturing)
Figura 1 Processo atual de geração de código CNC (Oliveira, 2010) Com o presente espera-se obter uma técnica que permita fazer a cópia de uma peça já existente a partir de uma fotografia, imagem digital ou a criação de uma peça a partir de um desenho feito em um software de desenho 2D de fácil operação, com isso aumentar a eficiência e diminuir os custos de produção, pois tal processo não exigiria profissionais com conhecimentos avançados e o mesmo pode ser feito em menos tempo do que seguindo os processos atuais. 2. Processamento de Imagens O processamento de imagens digitais é a área da computação que possui a finalidade da retirada da informação de uma imagem por meio de técnicas e algoritmos. Nesse trabalho serão apresentadas técnicas de detecção de bordas, das quais podemos ressaltar: Roberts, Prewitt e Sobel (Maturana e Silva, 2010). As técnicas de detecção de borda trabalham analisando os níveis de cinza e para isso usa dois filtros espaciais lineares, um baseado no gradiente da função da luminosidade e outro baseado no laplaciano. O operador de Roberts calcula a diferença entre os níveis de cinza em um ângulo de 45º. O operador de Prewitt calcula níveis de cinza na horizontal e vertical e suaviza o ruído. E o operador de Sobel é similar ao de Prewitt, porém com mais peso aos pontos próximos do pixel central e por isso o operador de Sobel obtém bordas mais grossas do que as obtidas com Prewitt (Maturana e Silva, 2010). 3. Inteligência Artificial A inteligência artificial é a área da computação que tem como objetivo criar modelos computacionais que recriem a inteligência humana, para que os computadores consigam realizar tarefas em que atualmente os humanos fazem melhor e/ou que esses sistemas tenham a capacidade de aprendizado (Kovacs, 2006). No presente trabalho será abordado um ramo da inteligência artificial, denominada redes neurais artificiais. Uma RNA 6 é um modelo computacional onde se 6 RNA (Rede Neural Artificial)
simula o funcionamento do cérebro animal, usando conceitos da neurologia como neurônios e sinapses. A principal aplicação desses sistemas é no reconhecimento de padrões (Kovacs, 2006). Diferente de um computador com arquitetura de Von Neumann, que é programado a RNA é treinado usando-se exemplos de treino, para reconhecer determinados padrões e saber o que fazer em cada situação encontrada (Rauber, 2005). O treino é feito mudando os pesos dos neurônios intermediários. O aprendizado pode ocorrer de duas formas; sendo elas: o aprendizado supervisionado, onde é apresentado um conjunto que consiste nas entradas e nas saídas desejadas, ou em que para cada entrada é produzida uma indicação sobre a saída desejada; e o método de aprendizado não supervisionado, onde a rede atualiza os seus pesos sem o uso de um conjunto de entradas ou saídas desejadas e sem indicação sobre a adequação das saídas (Rauber, 2005). Figura 2 - Modelo RNA (esquerda) e modelo von Neumann (direita), adaptado de (Rauber, 2005) 4. Código CNC O código CNC é um conjunto de instruções de baixo nível, criado para ser usado em máquinas industriais, principalmente em tornos, fresadoras e centrais de usinagem. Para controlar um equipamento CNC é usada uma linguagem chamada G-Code que dá os comandos e coordena os movimentos da máquina nos eixos X, Y e Z para conseguir o resultado esperado. Existe uma grande variedade de comandos CNC, dentre eles, controle de velocidade, rotação, sentido da rotação (Oliveira, 2010).
5. Processo de Transformação Figura 3 - Exemplo de G-Code (Oliveira, 2010) O processo de transformação de uma imagem digital em código CNC segue um algoritmo relativamente simples. O processo se inicia com uma imagem digital da peça a ser reproduzida, a imagem pode ser proveniente de diversas fontes, como por exemplo: uma fotografia digital ou de uma imagem feita em um software de desenho 2D. Essa imagem bruta passa pelo processo de detecção de borda que vai identificar as linhas da peça, se essa borda que foi detectada fosse transformada em G- Code haveria várias imperfeições provenientes da fase de captura da imagem como: reflexo, granulação, distorção e seriam somadas as imperfeições da detecção da borda proveniente das limitações do método, e ainda pode haver imperfeições na peça original, devido ao desgaste natural do uso. Esse G-Code, geraria uma peça com diferenças significativas em relação à peça final desejada, e essa peça defeituosa talvez até fosse inutilizável, por isso após a detecção de borda é necessário utilizar um método para corrigir essas imperfeições. No processo atual de detecção de borda utilizam-se técnicas de pósprocessamento para corrigir as imperfeições da imagem e chegar mais próximo do resultado esperado. Porém esse método possui limitações. Nesse trabalho será utilizado RNA devido a sua eficiência em detectar padrões, assim identificando qual peça está sendo processada, analisar como ela é, e corrigir para como ela deveria ser, fazendo isso sem alterar as dimensões e proporções da peça. A partir do desenho devidamente corrigido inicia-se o processo de transformação da imagem em G-Code, para tal, um algoritmo analisa as linhas da imagem e a partir disso são gerados os parâmetros de corte, o cálculo das trajetórias e posteriormente o G-Code. Para que tudo funcione corretamente o operador deve inserir alguns parâmetros manualmente, sendo eles a espessura da peça e a velocidade de corte. A velocidade de corte deve ser ajustada conforme o material a ser cortado, de forma que se for muito alta irá danificar a peça e talvez até a ferramenta de corte, e caso a velocidade de corte seja baixa, o processo vai levar mais tempo que o necessário. Ao
final desse processo o G-Code estará pronto para ser enviado para a máquina de corte que vai reproduzir a peça conforme os parâmetros a ela informados. Referencias Kovacs, Zsolt L. Redes Neurais Artificiais: Fundamentos e Aplicações, (2006). 4ª ed. São Paulo: Livraria da Física. Rauber, Thomas Walter (2005). Redes Neurais Artificiais. UFES. Maturana, Patrícia Salles e Silva e Alexandre César Rodrigues (2010). Estudo Comparativo da Implementação dos Filtros de Detecção de Borda. INTERTECH. Liberman, Felipe (1997). Classificação de Imagens Digitais por Textura usando Redes Neurais. UFRGS. Maturana, Patrícia Salles (2010). Algoritmos de Detecção de Bordas Implementados em FPGA. UNESP. Oliveira, Valter Vander, (2010). Programação em Maquinas CNC. IFSC. Gonçalves, Ezio Lúcio Zerbone e Leal, Maria da Glória (2006). Inovação no Processo Produtivo no Segmento Metalmecânico com uso de Tecnologia a CNC (Pesquisa do Perfil Profissional). COBENGE.