40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999 RECONHECIMENTO DE FIGURAS GEOMÉTRICAS UTILIZANDO-SE REDES NEURAIS ARTIFICIAIS INVARIANTES À ROTAÇÃO DE 10° E A TRANSLAÇÃO Aderlon Mareelino Queiroz * e Edna Lúcia Flôres ** * Departamento de Ciência da Computação - UNIT 38411-186 - Uberlândia - MG Te!.: (034) 239-9600, FAX: (034) 239-9614, e-mail: [email protected]/[email protected] ** Departamento de Engenharia Elétrica - UFU 38.400-902 - Uberlândia - MG Te!.: (034) 236-5099, FAX: (034) 236-5099, e-mail: [email protected] Resumo Este artigo trata do reconhecimento de figuras geométricas através da utilização de Redes Neurais Artificiais (RNAs). Para chegar a um resultado satisfatório, antes das figuras geométricas serem treinadas e reconhecidas pela RNA, elas são submetidas a uma rede invariante à translação e rotação 'de 10°, constituída de um neurônio ADALINE. O artigo consta de cinco itens principais, onde no primeiro é feito uma revisão geral dos trabalhos existentes com RNAs e tratamos das técnicas de reconhecimentos de padrões; no segundo, -expomos a técnicas utilizadas para tornar o neurônio ADALINE invariante à rotação de 10" e translação; no terceiro item, tratamos brevemente dos algoritmos utilizados para o treinamento e reconhecimento da RNA. No quarto item descrevemos os resultados obtidos. E finalmente no quinto item são feitas conclusões a respeito dos resultados obtidos. Os métodos de reconhecimento de padrões convencionais requerem que os dados de entrada apresentem posição, orientação e tamanho similares a um determinado padrão. Na prática, porém, os dados de entrada podem apresentar diferença de tamanho, posição ou rotação em relação a um padrão prédeterminado. Além disso, os dados de entrada podem ser corrompidos por ruídos. Os métodos convencionais de reconhecimento, o casamento de padrões, por exemplo, não trabalham bem sob essas condições. A mudança de escala ocorre quando as dimensões do padrão utilizado no treinamento são diferentes das .dimensões do padrão utilizado no reconhecimento. A translação ocorre quando o padrão utilizado no treinamento encontra-se localizado em uma posição distinta · à posição do padrão utilizado no reconhecimento. A rotação ocorre quando os padrões utilizados no treinamento e no reconhecimento apresentam inclinações diferentes. Com o objetivo de minimizar essas diferenças, a RNA deve ser insensível à mudança de escala, translação e rotação. Palavras-chaves: Redes Neurais Artificiais, Neurônio ADALINE, Figuras Geométricas, Rede Invariante à Rotação de 10°e Translação Outra abordagem para o reconhecimento de padrões invariantes é o uso do critério de similaridade definido em termo de certas funções de transformações matemáticas, por exemplo, a transformada de Fourier, a transformada de Hough e a transformada de Wavelets. 1 INTRODUÇÃO Vários centros de pesquisas e Universidades estão tentando desenvolver técnicas de reconhecimento que tenham um nível de desempenho praticamente .igual ao do ser humano. O principal motivo do desenvolvimento de sistemas de reconhecimento são as aplicações científicas e econômicas, que tais sistemas apresentam. Entre estes sistemas pode-se citar, os sistemas de: reconhecimento de código de endereçamento postal, leitura automática de cheques bancários, tarifação telefônica, leitura automática para cegos, reconhecimento de figuras geométricas, etc. A obtenção de um software que consiga fazer o papel do homem pode representar uma grande economia de tempo e um bom ganho para as empresas. WIDROW e autores . [6] desenvolveram um sistema para o reconhecimento de padrões utilizando uma rede invariante e uma RNA classificadora treinada. A rede invariante é treinada ou projetada para produzir um conjunto de saídas que é insensível à translação e à rotação de .90°do padrão de entrada. Os resultados obtidos são aplicados a RNA classificadora para .0 treinamento ou o reconhecimento. FUKUMI e autores [2] utilizaram o ' mesmo princípio desenvolvido por Widrow para tornar a rede invariante somente à rotação. 586 40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999 Um dos algoritmos mais importantes na área de reconhecimento de padrões é o "Neocognitron", desenvolvido por FUKUSHIMA e autores [3,4]. Esse sistema de reconhecimento possui múltiplas camadas de neurônios que são agrupadas em células de neurônios. O sistema é autoorganizãvel por aprendizado não supervisionado e adquire a habilidade para reconhecer padrões estímulos de acordo com as diferentes formas do contorno dos mesmos. O "Neocognitron" reconhece corretamente os padrões sem ser afetado pelos deslocamentos e pela deformação. FLÔRES [1] desenvolveu uma técnica para o reconhecimento de dígitos isolados invariantes à mudança de escala, translação e rotação utilizando-se RNAs. representação esquemática da translação cima-baixo dos pesos sinápticos de um único neurônio ADALINE idealizado por Widrow. o Figura 2 - Representação esquemática da translação cimabaixo REDE INVARIANTE À ROTAÇÃO DE 10° E A TRANSLAÇÃO 2 Na figura 2, o rótulo AD representa o neurônio ADALINE, o rótulo MAl representa a função MAl, e o rótulo TCB(x) (Translação Cima-Baixo) significa a rotação com rolagem no sentido das linhas promovida no conjunto de pesos sinápticos do neurônio ADALINE, e x representa a quantidade de linhas que foram rotacionadas nessa matriz. 2.1 Translação A rede invariante à translação é composta de dois mecanismos, a translação cima-baixo e a translação esquerda-direita. 2.1.1 A função MAl (MAJority vote-taker, Maioria dos Votos Dados) realiza a soma dos resultados obtidos pelos vários elementos AD que tem o seu conjunto de pesos rotacionados por rolagem no sentido das linhas e que é calculado o valor da função de ativação, os valores obtidos em cada elemento AD são somados e a função MAl resulta em +1 ou -I conforme a maioria dos resultados for positivo ou negativo. Translação Cima-Baixo O princípio da translação cima-baixo do padrão de treinamento consiste em realizar um movimento para procurar a melhor situação para o reconhecimento. O movimento de busca é realizado no conjunto de pesos sinápticos de um neurônio ADALINE. o 2.1.2 Translação Esquerda-Direita A translação cima-baixo consiste em promover no conjunto de pesos sinápticos, um movimento de rotação com rolagem no sentido das linhas, tendo em vista que o conjunto de pesos sinápticos pode ser representado por uma matriz de números reais. O princípio da translação esquerda-direita do padrão de treinamento consiste em realizar um movimento para buscar a melhor situação para o reconhecimento. O movimento de busca é realizado no conjunto de pesos sinápticos de um neurônio A rotação com rolagem no sentido das linhas consiste em fazer com que os elementos de uma determinada linha sejam transladados para a linha inferior, com exceção dos elementos da última linha que serão transladados para a primeira linha da matriz. Optou-se por utilizar a rotação por rolagem no sentido das linhas iniciando em cima e indo para baixo, pode-se realizar a rotação no sentido contrário a este, contudo, os resultados da rotação serão diferentes. A figura 1 ilustra a rotação com rolagem no sentido das linhas realizado em uma matriz de dimensão 3 x 3. A translação esquerda-direita consiste em promover no conjunto de pesos sinápticos, um movimento de rotação com rolagem no sentido das colunas, tendo em vista que o conjunto de pesos sin ãpticos pode ser representado por uma matriz de números reais. 4 5 ADALINE. A rotação com rolagem no sentido das colunas consiste em fazer com que os elementos de uma determinada coluna sejam transladados para a coluna a direita, com exceção dos elementos da última coluna que serão transladados para a primeira coluna da matriz. Optou-se por utilizar a rotação por rolagem no sentido das colunas iniciando na esquerda e indo para a direita, pode-se realizar a rotação no sentido contrário a este, contudo, os resultados da rotação serão diferentes. A figura 3 ilustra a rotação com rolagem no sentido das colunas realizada em uma matriz 3 x 3. 6 Após a rotação com rolagem no sentido das linhas Figura 1- Representação matricial da rotação com rolagem no sentido das linhas WIDROW [6] desenvolveu a operação rotação matriz de pesos sinápticos de um neurônio ADALINE para a obtenção de uma rede invariante à translação cima-baixo. A figura 2 ilustra a 587 40. SBAI - Simpósio Brasileiro de Automação Inteligente. São Paulo. SP. 08-10 de Setembro de 1999 sentido da linhas. A figura 6 ilustra a rede composta por um neurônio ADALINE invariante à translação. Figura 3 - Representação matricial da rotação com roJagem no sentido das colunas WIDROW [6] desenvolveu um esquema de rotação da matriz de pesos sinápticos de um neurônio ADALINE para obtenção de uma rede invariante à translação esquerda-direita. A figura 4 ilustra a representação esquemática da translação esquerda direita dos pesos sinápticos. Figura 6 - Representação esquemática da translação completa . Os rótulos mostrados na figura 6 são os mesmos mostrados nas figuras 2 e 4. O rótulo TED(y)TCB(x) significa que foi feito prime iro a translação cima-baixo e depois a translação esquerda-direita, y é a quantidade de colunas transladadas e x é a quantidade de linhas transladadas. -r 2.2 2.2.1 Figura 4 - Representação esquemática da translação esquerda-direita Devido ao fato de que a matriz do padrão a ser treinado ser quadrada, só é possível tornar a RNA invariante a rotação de ângulos múltiplos de 90°. A rotação de 90° consiste em promover no conjunto pesos sinápticos um movimento de transposição dos elementos , tendo em vista 'que o conjunto de pesos sinápticos pode ser representado por uma matriz de números reais. Translação Completa A rede invariante à translação é a união da rotação por rolagem no sentido das linhas e da rotação por rolagem no sentido das colunas. A rede invariante à translação realiza primeiro o mecanismo de translação cima-baixo e em seguida realiza o mecanismo de translação esquerda-direita. A transposição dos elementos da matriz consiste em fazer com que os elementos que ocupam uma linha sejam transportadas para uma coluna, ou seja, os elementos da primeira linha ocupam a última coluna, os elementos da segunda coluna vão para a penúltima coluna, e assim é feito até que os elementos da última linha ocupem a primeira coluna ; A figura 5 ilustra uma matriz em que foi realizada uma rotação por rolagem no sentido das linhas e em seguida uma rotação por rolagem no sentido das colunas feita em uma matriz 3 x 3. 7 8 9 Antes da rotação com rolagem no sentido das linhas e no sentido das colunas Rotação de 90° O princípio da rotação de 90° do padrão de treinamento consiste em realizar um movimento de busca da melhor situação para o reconhecimento. O movimento de busca é realizado no conjunto de pesos sinápticos de uma neurônio ADALINE. Os rótulos indicados na figura 4 são os mesmos da figura 3, com exceção para TED(x) (Translação Esquerda-Direita), que significa a rotação com rolagem no sentido das colunas do conjunto de pesos sinápticos do neurônio ADALINE, e x representa a quantidade de colunas que foram rotacionados. 2.1.3 Rotação Optou-se por utilizar na transposição dos elementos da matriz no sentido de rotação horário, pode-se realizar a transposição no sentido contrário a este, contudo, os resultados da transposição serão diferentes. Após a rotação com rolagem no sentido das linhas e no sentido das colunas A figura 7 ilustra um exemplo das transposições feitas em uma matriz 3 x 3. ' . . Figura 5 - Representação matricial da translação completa WIDROW [6] desenvolveu um esquema para realizar as rotações com rolagem em ambas as direções. A rede invariante é composta de vários elementos chamados lajes (que são iguais aos mostrados nas figuras 2 e 4), colocadas lado a lado, onde a diferenças de uma laje para outra é que a matriz de peso sináptico sofre uma rotação com rolagem no sentido das colunas, e dentro de cada laje uma rotação com rolagem no no no Figura 7 - Representação matricial da transposição no ' sentido horário 588 40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08·10 de Setembro de 1999 WIDROW [6] desenvolveu uma operação de transposição na matriz de pesos sinápticos de um neurônio ADALINE seguindo o mesmo procedimento mostrado nas subseções anteriores, com o objetivo de obter uma rede invariante à rotação de 90°. A figura 8 ilustra o esquema da laje que torna a RNA invariante à rotação de 90°. Na figura 9 tem-se uma matriz circular onde a raia é o conjunto de elementos que estão na mesma direção e segmento é o conjunto de elementos que estão a mesma distância do centro da matriz. FUKUMI [2] utilizou uma matriz circular no lugar de uma matriz' comum ou quadrada para melhorar o mecanismo da rede invariante à rotação de Widrow. Para criar uma rede invariante a rotação utilizando as matrizes circulares, é necessário primeiro transformar a matriz comum em circular, para então fazer a transposição e finalmente transformar a matriz circular em matriz comum. Então, foram criados dois procedimentos para utilizar os princípios de Fukumi, o primeiro toma a matriz quadrada em circular e é chamado de circularização e o segundo realiza o processo inverso que é chamado de quadratização. . R(O)@- Figura 8 - Representação esquemática da rotação de 90°. A circularização toma uma matriz quadrada em circular, onde a transformação significa transferir os elementos da matriz comum para a matriz circular. A quadratização torna uma matriz circular em quadrada, onde a transformação transfere os elementos da matriz circular para a matriz comum. A figura 10 ilustra um exemplo de circularização de uma matriz comum. Os rótulos mostrados na figura 8 são os mesmos mostrados nas figuras anteriores, com exceção para o rótulo R(z), que representa a transposição dos elementos da matriz de pesos sinápticos do neurônio ADALINE, e z é o ângulo de transposição. 2 :2.2 Rotação de 10° Na seção 2.2.1, foi explicada a teoria de redes invariantes à rotação de 90°, contudo, pode-se verificar a limitação que tal rede invariante apresenta, pois o intervalo de rotação da matriz de pesos sinápticos é muito grande. O que limita em muito a ação desta rede invariante. Para resolver este problema, foi utilizado o princípio exposto por FUKUMl [2], onde substituise a rede invariante à rotação de 90° por uma rede invariante à rotação para qualquer ângulo. Figura 10 - Transformação de uma matriz quadrada em . matriz circular O valor do ângulo de rotação é obtido pela eq. (1). Onde n é a ordem da matriz quadrada. Neste trabalho as figuras geométricas tem ordem igual a lO, utilizando a eq. (1) obtêmse os 10° da rede invariante a rotação de 10°. O trabalho de Fukumi trata de uma rede invariante à rotação para qualquer ângulo, o que tomou muito atrativo o seu mecanismo para compensar o mecanismo de WIDROW [6], porém, para utilizar os princípios de Fukumi é necessário fazer uma adaptação do seu mecanismo. 360' A=-- 4(N -1) O trabalho de Widrow utiliza uma matriz quadrada, o que limita o mecanismo da rede invariante à rotação, a solução foi utilizar as matrizes circulares mostradas por Fukumi para obter uma rede invariante à rotação. (1) FUKUMI [2] propôs um mecanismo semelhante ao desenvolvido por WIDROW [6] para a rede invariante à rotação, a diferença reside no fato de que a laje desenvolvida por Widrow só realiza 4 operações de rotação, e na de Fukurni são realizadas 36 operações. A matriz circular é uma matriz diferente da matriz comum, pois a matriz comum é composta de linhas colunas, a matriz circular é composta de raias e segmentos, tendo os contornos arredondados, e isso é-ideal para construir uma rede invariante à rotação. A figura 9 mostra uma matriz circular onde estão representados o que são raias e segmentos. . 2.3. Translação e rotação de 10° Utilizando os princípios desenvolvidos por Widrow e Fukurni ! possível criar uma rede invariante à translação e rotação de 10. Esta rede é ilustrada na figura 11. Figura 9 - Indicações de raias e segmentos em uma matriz circular 589 40 . SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999 w(k + 1) = w(k) + !---;::::=:!==> (3) ',1 Onde no denominador da eq. (3) é colocado o módulo do vetor de entrada do padrão à ser reconhecido. As duas últimas RNAs são treinadas pelo mesmo algoritmo de correção dos pesos sinápticos, contudo, existem algumas alterações para quando a RNA possui mais de uma camada oculta. TEIXEIRA [5] apresentou uma boa seqüência lõgica para explicar sobre este algoritmo. A eq. (4) é o mecanismo de correção na camada de saída e a eq. (5) na camada oculta. (4) W q(ll+ l)=Wq(ll) +1/'Ô;Z} Figura 11 - Representação esquemática da rede invariante à translação e rotação de 10° Na figura 11 pode-se observar que a rede invariante é composta de um conjuntos de lajes, onde cada laje recebe a matriz de pesos sinápticos rotacionados pelo mecanismo de Fuk.umi e realiza a translação completa conforme Widrow desenvolveu. 4 Na figura 11 não são mostrados os processos de circularização e quadratização, deve-se subentender que para cada laje de rotação, o padrão é trarisformado em uma matriz circular', rotacionado por um ângulo, transformado em matriz quadrada, para então aplicar a translação. 3 Os testes realizados nas quatro RNAs foram obtidos após as mesmas serem treinadas para todas as possibilidades de alterações (translação e rotação de 10°). Nos testes foram realizados várias alterações de deslocamento e inclinação, nas figuras geométricas e no reconhecimento foi adicionado ruído nas figuras. O ruído utilizado possui distribuição uniforme, variando de O % a 50 %, ou seja, a figura geométrica sem ruído adicionado até a figura com 50 % de ruído adicionado. As figuras geométricas treinadas possuem a porcentagem de 5 % de ruído adicionado. No reconhecimento, a figura geométrica é transladada e rotacionada por valores aleat órios, então são utilizadas para serem reconhecidas pelas RNAs. REDES NEURAIS ARTIFICIAIS Neste trabalho foram utilizadas quatro RNAs diferentes. A primeira 'RNA não possui camada oculta e foi treinada pela regra Delta, a segunda não possui camada oculta e é treinada pela regra MADALINE lI, a terceira RNA possui uma camada oculta e é treinada pela regra Back-Propagation, e a última RNA possui duas camadas ocultas e é treinada pela regra BackPropagation. As figuras de 12 a 15 ilustram os resultados obtidos para cada tipo de RNA quando foram treinadas 25 figuras geométricas. Em cada teste foi utilizada a mesma quantidade de figuras geométricas a serem reconhecidas. , A primeira RNA utiliza a regra delta para correção dos pesos sinápticos do neurônio ADALINE mostrada na eq. (2), onde w é o conjunto de pesos sinápticos da camada de saída. Porcentagem de ertradas roconhecidas o 100,00% Onde o parâmetro 11 é a constante de aprendizagem do neurônio Xld é o vetor do padrão que está sendotreinado e 'y,d é o vetor desejado como resposta na saída da RNA w(k+l) = W(k)+1i!ô,x:, ' ..I RESULTADOS OBTIDOS 1 95,00% -! J 90 ,00% ... 75,00% -+-Porcentagem de enlllldas reconheckias 80,00% (2) 0% . 10% 20% 30% 40% 5O"fo Porc:enlBgom cio Rufdo Figura 12 - Resultado obtido para uma RNA sem camada oculta e treinada pela regra Delta com 256guras geométricas treinadas A segunda RNA utiliza a regra MADALINE II para correção dos pesos sinápticos do neurônio ADALINE. A eq. (3) mostra esta regra para o treinamento das RNAs. Pode-se verificar na figura 12 que os valores obtidos para a RNA sem camada oculta e treinada pela regra delta diminuíram com o aumento da porcentagem de ruído adicionado à figura geométrica. 590 40. SBAI- Simpósio Brasileiro de Automação Inteligente, São Paulo, SP, 08-10 de Setembro de 1999 Contudo, os resultados obtidos mantiveram-se bem altos, acima 'd e 70 % de acerto, o que sugerir um bom nível de acerto. Poroontagem de onlrndas recnrllocidas i 120,00% 100 ,00% ' 80 ,00% i f 5 -+-Porcentagemde en1rlldas I8COflhoddaa 80,00% 40,00% CONCLUSÃO Este trabalho mostrou os algoritmos para tornar uma RNA invariante à translação e rotação de 10°. Primeiro foi Jeito um resumo dos vários métodos para solucionar o problema de invariância, em seguida foi exposto os mecanismos invariantes à translação e posteriormente à rotação. Foram explicados alguns métodos para a correção dos pesos sinápticos e por último, foram ' mostrados os resultados obtidos após o treinamento : 1$ 20,00% a. 0,00% Figura 13 - Resultado obtido para uma RNA sem camada oculta e treinada pela regra MADALINE 11com 25 figuras geométricas treinadas A figura 13 mostra que os resultados obtidos para a RNA sem camada oculta e treinada pela regra MADALINE n decresceram com o aumento da porcentagem de ruído adicionado a figura Porcentagem de erWadaarecorIlecfdas Os resultados obtidos mostraram que os métodos utilizados para tornar as RNAs invariantes à translação e rotação de 10° apresentam ótimos resultados para as quatro RNAs implementadas neste trabalho. Ocorreram resultados superiores a 70 % de acerto, mesmo com ruído e as alterações de posição e inclinação. Os melhores resultados obtidos foi para a RNA com 1 camada oculta e treinada pela regra Back-Propagation. o 120,00% 100,00% i f i 80 ,00% 6 -+- Porcentagem de enlnldas 60,00% REFERÊNCIAS BIBLIOGRÁFICAS reconhocidas 40,00% 20,00% [1] Flôres, E. L. (1997). Reconhecimento de Caracteres Numéricos Manuscritos que Considera as . Características Intrínsecas e Comuns de Cach\ Dígito. Campinas: Universidade Estadual de Campinas , Faculdade de Engenharia Elétrica e Computação, Departamento de Comunicações. 2v; 771p. . 0.00% O'l'. 10% 20% 30% 40% 50% ""'-oom do Ruldo Figura 14 .; Resultado obtido para uma RNA com 1 camada oculta e treinada pela regra Back-Propagation com 25 figuras geométricas treinadas [2] Fukurni, M., et al. (1992). Rotation-Invariant Neural Pattern . Recognition System with Application to Coin Recognition . IEEE Transaction on Neural Networks, VoI. 3, No. 2, pp. 272-279. Os resultados obtidos na figura 14 para a RNA com 1 camada oculta, treinada pela regra Back-Propagation, a porcentagem de acerto diminui com o aumento da porcentagem de ruído adicionado à figura geométrica [3] Fukushima, K e Miyake, S. (1982). NEOCOGNITRON: A New Algorithm for Pattem Recognition Tolerant of Deformations and Shifts in Position. Pattern Recognition, VoI. 15, No. 6, pp. 455-469. Poroontagom de enlrad80recome<:idae [4] Fukushima, K, et ai. (1983). NEOCOGNITRON: A Neural Networks Model for a Mechanism of Visual Pattern Recognition. IEEE Transaction os Systems, Mf11I, and Cybemetics, VoI. SMC-13, No. 5, pp. [5] Teixeira, E. P.(1991). Controle de Sistemas Não Lineares Através de Redes Neurais. Campinas: Universidade Estadual de Campinas, Faculdade de Engenharia Elétrica, Departamento de Engenharia de Computação e Automação Industrial. 191p. Figura 15 - Resultado obtido para uma RNA com 2 camadas ocultas e treinada pela regra Back-Propagation com 25 figuras geométricas treinadas [6] Widrow, B., et al.(1988) . Layered Neural Nets for Partem Recognition . IEEE Transaction on Acoustics, Speech, and Signal Processing, VoI. 36, No. 7, pp. 1109-1118. Pode-se verificar' na figura 15 que a porcentagem de acerto diminui com o aumento da porcentagem de ruído, ocorreu o mesmo comportamento para a RNA com 2 camadas ocultas e treinada pela regra Back-Propagation. Ao analisar as figuras 12, 13, 14 e 15 pode-se verificar que os melhores resultados 'obtidos foram para a RNA com ·1 camada oculta, e os piores para a RNA com duas camadas ocultas. 591