UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL CURSO DE PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO PROCESSAMENTO DE IMAGENS POR REDES NEURAIS Reconhecimento de Caracteres Usando Redes Neurais Alunos Alexandre Cruz Berg Daniel Nehme Müller Professor Paulo Martins Engel Porto Alegre, julho de 1993 Reconhecimento de Caracteres Usando Redes Neurais 1 2 INTRODUÇÃO Os sistemas de reconhecimento de caracteres são sistemas desenvolvidos para reproduzir a capacidade humana de ler textos. Por sua vez, as Redes Neurais são elementos interconectados em forma paralela com as quais se procura imitar uma certa concepção de funcionamento do cérebro humano. Com essas redes voltadas ao reconhecimento de caracteres, busca-se o aprendizado para posterior reconhecimento de padrões que são provenientes da digitalização de imagens de textos. Estes sinais são armazenados na rede, como forma de aprendizado, para posterior consulta no reconhecimento desses sinais. Objetivos Este trabalho tem por objetivo o estudo do reconhecimento de caracteres utilizando o aprendizado oferecido pelas Redes Neurais. É feita uma abordagem das características do processo de reconhecimento de caracteres e de que forma pode ser feito um aprendizado na implementação computacional desta técnica. Estrutura Este trabalho ficou organizado da seguinte maneira: no capítulo 2 são abordadas as técnicas utilizadas no reconhecimento de caracteres, na obtenção das imagens e no processamento das imagens; Reconhecimento de Caracteres Usando Redes Neurais 3 por sua vez no capítulo 3 temos a descrição detalhada dos métodos de aprendizado para reconhecimento de caracteres por Redes Neurais; finalizando no capítulo 4 encontram-se as conclusões sobre o trabalho. Reconhecimento de Caracteres Usando Redes Neurais 2 4 TÉCNICAS UTILIZADAS O processamento de imagens trabalha com a imagem digital, onde esta é definida como sendo uma matriz de M x N elementos (vetores com informações referentes aos pontos da imagem). Cada ele- mento da imagem digital é denominada de pixel, tendo associado a si uma informação referente à luminosidade e à cor. Esta informação pode ser um valor indicativo de intensidade luminosa ou um índice para acesso indireto à cor real. Esta representação através de uma matriz bidimensional de pontos é resultante da manipulação da imagem como sendo uma área de memória do computador. A cada pixel é associada uma ou mais posições de memória que irão armazenar as diversas informações referentes a eles. Com isto pode-se armazenar e processar as informações referentes a uma imagem. As técnicas de digitalização de imagens podem ser classificadas em três tipos: (a) Pontual: baseado em câmeras de vídeo onde serão feitas manipulações em cima dos pontos mostrados na tela do monitor de vídeo; (b) Vetorial: seu principal dispositivo é o scanner, sendo técnica baseada em um arranjo em vetor dos elementos fotossenssíveis, os quais são deslocados sobre o plano de digitalização através de um sistema mecânico; (c) Matricial: é o tipo utilizado pelas mesas digitalizadoras, onde é feita a transcrição da imagem em termos de coordenadas do plano cartesiano (x,y) referentes às Reconhecimento de Caracteres Usando Redes Neurais 5 posições sobre as quais é deslocado um cursor, movimentado sobre uma mesa especial sensora. A partir do momento que já se tem posse da imagem digital deve-se então fazer uma discretização desta imagem para posterior manipulação das informações contidas nela. Para realizar a discretização, ou amostragem, de uma imagem deve ser fixado um intervalo de tempo que vai determinar a freqüência de amostragem e consequentemente o número de pontos discretizados (resolução da imagem). No caso de textos digitalizados, a resolução ideal de digitalização deve ser tal que um único caracter resule em uma matriz de 20 pontos na vertical por 15 pontos na horizontal. Tem-se que levar em consideração o tipo de dispositivo usado na impressão, o tipo de letra utilizado e a relação sinal/ruído presente na digitalização. Após ter sido feita esta amostragem é realizada uma discretização da intensidade luminosa, denominada de quantização, onde uma imagem com tons contínuos é convertida em uma de tons discretos, divididos em níveis da coloração deste tom (geralmente utiliza-se os níveis de cinza). Para os sistemas de processamento de imagens orientados ao tratamento de textos, somente dois níveis são necessários, fazendo uso apenas do preto e do branco. Nestes sistemas a informação presente sempre pode ser distinguida apenas através da identificação de uma cor de fundo e a cor dos caracteres, sendo que as imagens serão classificadas de acordo com os níveis que serão trabalhados. A seguir, faz-se uma análise de reconhecimento de padrões na matriz de pontos, sendo feita de maneira diferente da síntese que trabalha em cima de modelos de padrões. O objetivo do reconhecimento de padrões junto ao processamento de imagens é extrair, detectar e identificar elementos presentes em uma cena. As etapas realizadas nesse Reconhecimento de Caracteres Usando Redes Neurais 6 processao são: tratamento da imagem digitalizada, seleção e extração de características e atributos dessa imagem e a classificação desses atributos. Após é feita a localização e separação das imagens gráficas das textuais, sendo feita nesta última a localização dos caracteres até gerar uma matriz de pontos, que conterá um caracter. Para isto deve-se levar em conta o espaçamento entre os caracteres, tamanho de pontos e tipo do caracter. A parte do pré-processamento realiza alguma correção em termos de distorções de caracteres. Ajusta o tamanho da matriz resultante da segmentação dos caracteres para ficar compatível com o tamanho padrão. Ajuste de escala e posição também são feitas neste estágio. Finalmente é feita uma extração dos atributos, visando ressaltar algumas características dos padrões, de forma a facilitar sua identificação. A etapa onde se realiza o reconhecimento dos padrões resulta em uma classificação do padrão em uma das classes pré-definidas. 2.1 Técnicas de Reconhecimento Pode-se classificar as diferentes técnicas de reconhecimento de padrões em três categorias, a seguir discriminadas: Atributos Globais Os atributos são extraídos de cada ponto interior ao retângulo que circunscreve a matriz do caracter. Os atributos empregados não re- Reconhecimento de Caracteres Usando Redes Neurais 7 fletem nenhuma propriedade local, geométrica ou topológica do traçado. Algumas destas técnicas foram desenvolvidas originalmente para reconhecer apenas carcateres impressos. Distribuição de Pontos É uma outra forma de reduzir a dimensionalidade dos conjuntos de atributos, onde estes são derivados a partir das distribuições estatísticas dos pontos. Diferentes tipos de distribuição tem sido utilizadas, correspondendo a diferentes tipos de técnicas de reconhecimento. Atributos Geométricos e Topológicos Esta técnica é baseada na extração de atributos que descrevem a geometria ou topologia de interesse no traçado do caracter. Estes atributos podem representar propriedades locais ou globais do caracter Reconhecimento de Caracteres Usando Redes Neurais 3 8 MÉTODOS DE APRENDIZADO PARA RECONHECIMENTO DE CARACTERES POR REDES NEURAIS Redes Neurais Artificiais são, na prática, elementos computacionais de lógica não-linear operando em paralelo e dispostos de forma a representar redes neurais biológicas [LIP 87]. A grande vantagem de representar redes neurais, tais como o cérebro, está na capacidade de trabalhar sobre exemplos do que já existe, dispensando a programação algorı́tmica. Assim, o cérebro, podendo se adaptar ao que já existe, trabalha como um sistema dinânmico não-algorı́tmico [KOS 87]. Esta falta de certeza é a grande vantagem da implementação de uma rede neural: há vários elementos concorrendo para dar a resposta a um determinado estı́mulo, ganhando ao final a resposta mais dada, como uma votação, proporcionando a capacidade de dar respostas consistentes a diversos contextos de estı́mulos (figura 3.1). É em cima deste princı́pio democrático, de lógica nebulosa, que surge a utilização das redes neurais para o reconhecimento de padrões, mesmo que a amostra a reconhecer tenha grandes variações do original [KIN 89]. Como podemos observar, redes neurais têm o potencial de uma imensa gama de aplicações, principalmente no que diz respeito à substituição das tarefas notavelmente humanas, como o reconhecimento de voz, imagens, análise do mercado financeiro e outros comportamentos sociais. No presente trabalho, ressaltamos a importância das redes neurais no reconhecimento de imagens e, em especial, de caracteres. As imagens que vemos a todo o momento dificilmente são idênticas umas das outras, o que dificulta seu processamento através da programação algorı́tmica tradicional. Com o auxı́lio do pré-processamento de imagens, como sistemas OCR, apresentados nas secções anteriores, um padrão Reconhecimento de Caracteres Usando Redes Neurais 9 Figura 3.1: Transformação: a capacidade de adaptação possibilita a recuperação de um padrão distorcido. ótico pode ser transformado num simples código ASCII, que poderá ser aprendido por uma rede neural e posteriormente reconhecido. Apresentaremos a seguir dois modelos de rede neural que podem ser utilizados para o reconhecimento de caracteres. Ambos partem de concepções distintas de redes neurais, sendo, portanto, de interessante análise comparativa. O modelo BAM parte de uma concepção de memória associativa, vendo o cérebro de uma forma compacta, centralizada. Já o modelo Backpropagation transmite uma idéia de neurônios independentes que estão interconectados numa rede de diversos nı́veis de profundidade. A seguir estes modelos serão apresentados com maiores detalhes. Reconhecimento de Caracteres Usando Redes Neurais 10 3.1 Reconhecimento através do modelo BAM O modelo BAM (Bidirectional Associative Memory), idealizado por Bart Kosko, baseia-se numa memória associativa de duas camadas retro-alimentadas de neurônios interconectados[KOS 87]. Os neurônios da primeira camada são conectados com todos os da segunda, e viceversa. A cada conexão está associado um valor, denominado peso, que corresponde a um elemento de uma matriz M, que é definida pela multiplicação da matriz transposta de um padrão A por outra matriz de um padrão B. Desta forma, no aprendizado podem ser associados dois padrões distintos, ou seja, pode ser ensinado um determinado padrão para entrada e devolver um outro padrão na saı́da, o que é uma caracterı́stica única dentre as redes binárias de aprendizado supervisionado. O padrão neste modelo é sempre uma matriz binária, de 0’s e 1’s, que, correspondendo a uma imagem digitalizada, é armazenado na matriz M de pesos. Há diferentes formas de armazenamento: o padrão A pode corresponder à imagem que se quer reconhecer, e B pode ser a mesma imagem, outra imagem ou ainda um outro formato de codificação (figura 3.2). Como os padrões estão codificados em matrizes binárias e os processos de aprendizado e reconhecimento são operações sobre essas matrizes, o modelo BAM torna-se uma excelente alternativa para reconhecimento em tempo real. Neste sentido, Kosko indica o modelo BAM como ideal para reconhecimento de imagens em tempo de execução [KOS 87]. A utilização do modelo BAM para o reconhecimento de caracteres também é ressaltada [BLU 90]. Num experimento realizado nos Laboratórios do Instituto de Informática da UFRGS, aplicando uma rede BAM para o reconhecimento de caracteres mapeados em matrizes binárias de Reconhecimento de Caracteres Usando Redes Neurais A 11 B Figura 3.2: Padrões Associados: BAM possibilita o relacionamento de dois padrões distintos. 8x8 elementos, foi obtido o reconhecimento perfeito de padrões com até 40% de distorção, comprovando sua aplicabilidade. As únicas restrições fazem-se quanto à necessidade de muita memória, limitando o tamanho das matrizes de peso. Alternativas a isso existem, como o conceito de sistema BAM, onde há várias matrizes de pesos que são selecionadas de acordo com o padrão a reconhecer [BLU 90]. 3.1.1 Reconhecimento através do modelo Backpropagation O modelo Backpropagation é uma generalização dos modelos baseados no conceito de redes que têm elementos computacionais individuais, formando uma camada que é conectada diretamente a saı́das, nas quais é exigida, no aprendizado, uma resposta pré-estabelecida. No caso do backpropagation, há camadas intermediárias, não ligadas a saı́das, tornando-se uma rede multinı́vel [HIN 90] (figura 3.3). Desta forma, o erro - diferença entre a saı́da desejada e a atual - necessita ser retropropagado para as camadas intermediárias [RUM 86]. Outra grande Reconhecimento de Caracteres Usando Redes Neurais 12 diferença do backpropagation para seus antecessores é a aplicação de uma função sigmoid como função de transferência [WID 90]. a) b) Figura 3.3: Comparação: o modelo de uma camada (a) evoluiu para múltiplas camadas (b). Como o backpropagation é uma rede de elementos adaptativos, cada um destes elementos, chamados neurônios, necessita de uma operação própria, independente, além da verificação do aprendizado da rede como um todo em sua saı́da. Disso decorre a necessidade da realização de diversas iterações de operações sobre a rede até se chegar à saı̀da desejada. O fato deste modelo ter múltiplas camadas permite que uma maior variedade de padrões seja aprendida, dada a maior capacidade de separação de classes de padrões. A utilização de backpropagation no reconhecimento de imagens é aplicada, por exemplo, para o reconhecimento em tempo real [CAU 91]. Mas há crı́ticas quanto ao grande tempo necessário ao aprendizado [HIN 90] e a excessiva complexidade da rede [WID 90]. Na experimentação realizada nos laboratórios do Instituto de Informática da UFRGS, confirmaram-se as virtudes e defeitos atribuı́dos Reconhecimento de Caracteres Usando Redes Neurais ao modelo. 13 Foi possı́vel o aprendizado de dez padrões de algarismos digitalizados - de 0 a 9 - e transformados em matrizes binárias de 24x16 elementos, com um ótimo desempenho no reconhecimento. Mas, por outro lado, o tempo gasto com o aprendizado foi um fator que pesou fortemente contra o modelo. Reconhecimento de Caracteres Usando Redes Neurais 4 14 CONCLUSÕES Através da utilização das Redes Neurais Artificiais podemos obter o reconhecimento eficaz de caracteres, com rapidez e segurança comparável à flexibilidade humana. Desta forma, o processo composto pelo pré-processamento - a seleção e a classificação de imagens de caracteres - e pelo aprendizado com posterior reconhecimento através de redes neurais perfaz a simulação de muitas tarefas hoje monótonas ao homem. Algumas utilidades do reconhecimento de caracteres que livrariam do homem rotinas trabalhosas seriam a conferência de assinaturas, separação de correspondência nos correios, controle de infrações de trânsito, transcrição automática de textos, etc. Como podemos perceber, o estudo das Redes Neurais abre um novo caminho para novas relações no trabalho humano, retirando deste a parte operacional para poder centrar sua atenção na parte criativa, dando mais sentido à natureza humana. Reconhecimento de Caracteres Usando Redes Neurais 15 BIBLIOGRAFIA [BLU 90] BLUM, Adam. Bidirectional Associative Systems in C++. Dr. Dobb’s Journal, Redwood City, n. 163, April 1990, p. 16-26. [CAU 91] CAUDILL, M. Driving Solo. AI Expert, San Francisco, Freeman Publications, Sept. 1991. [HIN 90] HINTON, G. E. Connectionist Learning Procedures. In: Machine Learning - Paradigms and Methods. MIT Press, Cambridge, 1990. [KIN 89] KING, T. Using Neural Networks for Pattern Recognition. Dr. Dobb’s Journal, Redwood City, January 1989, p. 1628. [KOS 87] KOSKO, B. Constructing an Associative Memory. Byte, Hightstown, v. 12, n. 10, Sept. 1987, p. 137-144. [LIP 87] LIPPMANN, R. P. An Introduction to Computing with Neural Networks. IEEE ASSP Magazine, New York, v. 3, n. 4, April 1987, p. 4-22. [MUL92] MÜLLER, Daniel N. et alli SINCO 1.0: Um Simulador Neural Configurável, Porto Alegre, CPGCC-UFRGS, 1992. [OSO91] OSÓRIO, Fernando S. Um Estudo Sobre o Reconhecimento Visual de Caracteres Através de Redes Neurais, Porto Alegre, CPGCC-UFRGS, 1991. [RUM 86] RUMELHART, D. E. and MCCLELLAND, J. L. Learning Internal Representations By Error Propagation. In: Parallel Distributed Processing. Rumelhart, D. E. and McClelland, J. L. (eds.). MIT Press, Cambridge, 1986. Reconhecimento de Caracteres Usando Redes Neurais [WAL91] 16 WALTER, Marcelo. A Obtenção de Texturas na Síntese de Imagens Realísticas Num Ambiente Limitado Porto Alegre, CPGCC-UFRGS, 1991. [WID 90] WIDROW, B. & LEHR, M. A. 30 Years of Adaptive Neural Networks: Perceptron, Madaline and Backpropagation. Proceedings of the IEEE, v. 78, n. 9, sep. 1990.