Reconhecimento de Caracteres Através de Redes Neurais ...

Anais do XVI Encontro de Inicia??o Cient?fica e P?s-Gradua??o do ITA ? XVI ENCITA / 2010 Instituto Tecnol?gico de Aeron?utica, S?o Jos? dos Campos, SP, Brasil, 20 de outubro de 2010

Reconhecimento de Caracteres Atrav?s de Redes Neurais Artificiais com Aplica??o a Placas de Autom?veis

Danilo Rodrigues Fontana Instituto Tecnol?gico de Aeron?utica ? ITA Rua dos Girass?is, n? 380, apto. 62, Jd. Industrias, S?o Jos? dos Campos - SP Bolsista PIBIC-CNPq danilofontana@.br

Luiz Roberto Marim Instituto Tecnol?gico de Aeron?utica ? ITA Rua Ernesto Soares Filho 130, Parque Espacial, S?o Bernardo do Campo - SP marim@ita.br

Resumo. Os sistemas de reconhecimento de caracteres s?o desenvolvidos para reproduzir a capacidade humana de ler textos e identificar objetos ou padr?es. 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. Tais sinais s?o armazenados na rede, como forma de aprendizado, para posterior consulta no reconhecimento. A pesquisa e colheita de informa??es sobre o processamento de imagens ? o principal enfoque do trabalho, a extra??o de pontos ou caracteres de uma imagem, mostrou-se promissora com diversos m?todos de analise sobre o problema. Dentre as atividades de pesquisa e de aprofundamento no ambiente MATLAB, foi desenvolvido o m?todo de analise da imagem digitalizada da placa do carro e com ela reconhecer a regi?o em que a placa est? localizada.

Palavras chave: identifica??o de caracteres, redes neurais artificiais, placas de carro

1. Introdu??o

A placa do carro nasce e morre com ele, ela ? a sua identidade. Quando o carro ? vendido para algu?m de outro estado, a combina??o de letras continua com o ve?culo, o que muda ? a tarjeta com o nome do estado/UF.

Cada estado tem uma s?rie inicial e outra final. Sabendo de onde o carro vem, ser? mais f?cil verificar sua proced?ncia e descobrir poss?veis impedimentos que o autom?vel possa ter.

Um grande problema encontrado foi a diversidade de fontes e tamanhos dos caracteres das placas dos autom?veis. Mesmo sendo algo regulamentado em lei, a varia??o do tamanho da placa, fonte e espa?amento dos caracteres ? tal que dificultou a forma de sele??o e prepara??o das entradas da rede neural [Justi?a, Conselho Nacional de Tr?nsitoCONTRAN, 1967].

Cada imagem obtida com a c?mera fotogr?fica apresentava a placa em uma regi?o diferente devido a diversos fatores como modelo do autom?vel, inclina??o da placa, formato da placa, formato dos caracteres e o material como a placa ? feita. Algumas das imagens mostram placas feitas de um material mais opaco em algumas regi?es, fato que pode dificultar a visualiza??o de radares sob alta velocidade, outro ponto a se ressaltar ? que as imagens t?m uma qualidade muito boa, tal fato dificulta o processamento feito pelos filtros e como foi citado em [Fontana, D., 2009], quando a qualidade da imagem obtida ? muito boa, como no caso das c?meras digitais, ? preciso usar filtros cada vez mais poderosos para eliminar impurezas [Gonzalez, 2000].

2. Aquisi??o da Imagem e Pr? Processamento

Primeiramente, a imagem adquirida pela c?mera digital apresentava 960 linhas dispostas por 1280 colunas. O fato de a c?mera ser de boa qualidade gera alguns problemas como luminosidade, reflexos e a alta qualidade dos pixels associada ? dimens?o da imagem diminuem a velocidade de processamento.

Em uma segunda abordagem utilizamos uma c?mera digital com menor resolu??o, que tirava fotos em tons de cinza, facilitando o tempo de processamento computacional e eliminando poss?veis impurezas e diferen?as de luminosidade. A matriz utilizada apresenta 768 linhas e 1024 colunas, dispostas em tr?s bandas de 256 tons de cinza. Para reduzir o tempo computacional e facilitar o tratamento da imagem, foi feita a m?dia ponderada dos valores das 3 bandas de cor, para obtermos apenas uma banda de tons de cinza.

Como a imagem em tons de cinza possui apenas uma banda de cor, temos uma matriz menor a ser processada e com isso temos um ganho computacional maior sem ter que prejudicar a qualidade da imagem.

Anais do XVI ENCITA, ITA,20 de outubro de 2010 ,

Figura 1 ? Foto do carro com a c?mera digital O passo seguinte ? tornar essa imagem de tons de cinza em uma imagem bin?ria, de zeros e uns, para que possamos

ent?o fazer a varredura na imagem para encontrar a regi?o da placa e por fim segmentar os caracteres de forma que ser?o reescritos como uma matriz coluna para ser ent?o devidamente apresentada a rede. Tais processos descritos acima agilizam o processamento da imagem fazendo com que tenhamos um ganho em tempo computacional e diminuem o espa?o f?sico ocupado na maquina

3. MATLAB Os trabalhos com o MATLAB R2007a v?m sendo desenvolvidos pelo grupo de pesquisa desde 2008 com o projeto do Sistema de Autentica??o/Identifica??o Pessoal Biom?trica da Palma da M?o com Auxilio de Redes Neurais Artificiais [4] que apresentou bons resultados. Devido ? facilidade do dom?nio da linguagem e pela variedade de bibliotecas contidas no software podemos trabalhar em diversas ?reas com ambientes f?ceis de usar onde problemas e solu??es podem ser expressos de forma matem?tica mais clara e concisa. Contudo, o dom?nio das t?cnicas do MATLAB, ? de extrema import?ncia na solu??o de uma enorme gama de problemas. 4. Filtros

A filtragem aplicada a uma imagem digital ? uma opera??o local que modifica os valores dos n?veis digitais de cada pixel da imagem considerando o contexto atual do pixel. Pela filtragem, o valor de cada pixel da imagem ? modificado utilizando-se uma opera??o de vizinhan?a, ou seja, uma opera??o que leva em conta os n?veis digitais dos pixels vizinhos e o pr?prio valor digital do pixel considerado [Fontana, D, 2009].

O processo de filtragem da imagem tem por objetivo limpar impurezas, real?ar contrastes e eliminar o m?ximo poss?vel de informa??es que para determinada utiliza??o podem vir a n?o ter relev?ncia, ou seja, para utiliza??o deste projeto deseja-se eliminar o veiculo e o ambiente a sua volta deixando apenas os detalhes da placa real?ados.

4.1 Filtro Gaussiano O filtro gaussiano tem a finalidade de "borrar" a imagem para descartar pequenos ru?dos como falhas na

figura, linhas pouco evidentes e algumas imperfei??es formadas a partir da imagem em tons de cinza, o filtro gaussiano percorre toda a vizinhan?a da imagem em forma de quadrado, centralizando um pixel e "borrando" os demais, fazendo este percurso por toda a imagem.

Como dito anteriormente, este filtro faz uma varredura na imagem e cria certa dificuldade para que imperfei??es e detalhes min?sculos sejam contabilizados como poss?veis regi?es que contenham a placa do autom?vel. 4.2 Binariza??o

O m?todo de binariza??o consiste em transformar os pixels da imagem em tons de cinza que passaram pelo filtro gaussiano em pixels com um valor de zero ou um. O processo seguinte consiste em tornar a imagem bin?ria, ou seja, transformar todas as informa??es contidas na matriz em zeros e uns, onde 0 significa preto e 1 significa branco. Este ? um passo importante para a implementa??o dos demais algoritmos de tratamento da imagem, pois muitos destes trabalham melhor com imagens na forma bin?ria.

Anais do XVI ENCITA, ITA,20 de outubro de 2010 ,

Apos isso a imagem foi filtrada em sua forma bin?ria por outro algoritmo do MATLAB, um filtro que buscava os limites da imagem a fim de recuperar a qualidade da imagem que perdemos ao binarizar a imagem e tamb?m para eliminar tra?os mais fracos que n?o se destacavam, para isso, tamb?m foi implementado uma t?cnica de afinamento das linhas que ser? vista logo abaixo.

4.3 Afinamento O processo de afinamento da imagem refor?a o algoritmo de binariza??o fazendo com que v?rias linhas que

formavam uma linha grossa sejam substitu?das por apenas uma linha, por isso esse processo ? conhecido como afinamento. Este processo suaviza a imagem e retira boa parte das impurezas facilitando assim o processo de tratamento na imagem. A varredura da imagem ? feita ponto a ponto, examinando a vizinhan?a e verificando quando o pixel pode ou n?o ser apagado.

Quando um pixel ? apagado, seu valor na matriz muda de 1 para 0 e a imagem ? dita afinada. Ap?s ser afinada a imagem passa por um processo de "limpeza", um algoritmo passa baixa busca todos os pixels isolados e os remove analisando sua vizinhan?a acima, abaixo e aos lados para saber se tem ou n?o um valor 1 correspondente nas casas, refor?ando assim o trabalho de afinamento da imagem e melhorando a qualidade da mesma.

A figura abaixo mostra a imagem ap?s todo o processamento realizado sobre a imagem da figura 1.

Figura 2 ? Imagem do carro ap?s a passagem dos filtros.

5. Redes Neurais Artificiais A origem da teoria de Redes Neurais remonta aos modelos matem?ticos e aos modelos de engenharia, de

neur?nios biol?gicos. Como qualquer c?lula biol?gica, o neur?nio ? delimitado por uma fina membrana celular que alem da sua fun??o biol?gica normal, possui determinadas propriedades que s?o essenciais para o funcionamento el?trico da c?lula nervosa. Basicamente o neur?nio ? composto de tr?s partes fundamentais: o corpo celular, o ax?nio e os dendritos [Bishop, C.M., 1995].

O corpo celular, ou soma, ? o centro dos processos metab?licos da c?lula nervosa, dele projetam-se extens?es filamentares, os dendritos, e o ax?nio.

Os dendritos s?o prolongamentos numerosos especializados na percep??o dos est?mulos do meio ambiente e na recep??o de impulsos nervosos provenientes de outros neur?nios. O papel do ax?nio ? essencial uma vez que este ? respons?vel pela condu??o de um impulso el?trico de uma c?lula a outra.

As manifesta??es el?tricas de neur?nios biol?gicos foram observadas pela primeira vez no s?culo 19 por DuBois Reymond com auxilio de galvan?metros. No s?culo 20, e mais especificamente nas duas d?cadas seguintes a 1944, passou-se a entender o neur?nio biol?gico como sendo basicamente o dispositivo computacional elementar do sistema nervoso, que possu?a entradas, muitas entradas e uma sa?da. As entradas ocorrem atrav?s das conex?es sin?pticas que conectam os dendritos aos ax?nios de outras c?lulas nervosas [Braga, 2007].

Anais do XVI ENCITA, ITA,20 de outubro de 2010 ,

Figura 3 ? Representa??o Simplificada de um Neur?nio Biol?gico.

Os sinais que chegam por estes ax?nios s?o impulsos nervosos ou potenciais de a??o, que constituem a informa??o que o neur?nio processar?, de alguma forma, para produzir como sa?da um impulso nervoso no seu ax?nio.

Dependendo da altera??o no potencial el?trico da membrana, o resultado pode ser do tipo excitat?rio ou inibidor. Uma conex?o excitat?ria contribui para a forma??o de um impulso nervoso do ax?nio de sa?da enquanto que uma conex?o inibit?ria age no sentido oposto.

Em 1943, inspirado talvez pelos avan?os na determina??o experimental das propriedades eletrofisiol?gicas do neur?nio, e pelos ent?o recentes resultados de Alan Turing e John Von Neumann que indicavam ser booleana a natureza da intelig?ncia, o que por sua vez resultava possivelmente da atividade neuronal, Warren McCulloch juntamente com o estat?stico Walter Pitts publicaram no Bulletin of Maathematical Biophysics um artigo com o titulo: "A Logical Calculus of the Ideas Immanent in Nervous Activity" [Kov?cs, 2002] que ? hoje a base para toda teoria das redes neurais artificiais.

O neur?nio de McCulloch era um dispositivo bin?rio: a sua sa?da poderia ser pulso ou n?o pulso, e as suas v?rias entradas tinham ganho arbitr?rio e poderiam ser excitat?rias ou inibit?rias. Para determinar a sa?da do neur?nio, calculava-se a soma ponderada das entradas com os respectivos ganhos como fatores de pondera??o, positivos para aqueles que fossem excitat?rios e negativos para aqueles que fossem inibit?rios. Se o resultado fosse maior ou igual a um certo limiar ent?o a sa?da do neur?nio era pulso, e no caso o resultado fosse menor que o limiar era n?o pulso.

Assim, a ess?ncia da proposta de McCulloch e Pitts foi a seguinte: " A intelig?ncia ? equivalente ao c?lculo de predicados que por sua vez pode ser implementado por fun??es booleanas. Por outro lado, o sistema nervoso ? composto de redes de neur?nios, que com as devidas simplifica??es, tem a capacidade b?sica de implementar estas fun??es booleanas Conclus?o: a liga??o entre a intelig?ncia e atividade nervosa fica estabelecida de forma cientifica." [Demuth, 1997].

Inicialmente, nesse trabalho foi implementada uma rede neural artificial do tipo feedforward devido ao algoritmo de backpropagation, ou seja, da retropropaga??o do erro para redes de neur?nios de m?ltiplas camadas. Essa rede foi desenvolvida para reconhecer os n?meros, tendo em sua arquitetura 3 camadas, dispostas de uma camada de entrada contendo 180 neur?nios, uma camada intermediaria com 30 neur?nios e uma camada de sa?da com 10 neur?nios na camada de sa?da. Tal arquitetura se mostrou eficiente pois eram atribu?dos valores as respectivas posi??es da matriz de sa?da [Berg, 1993].

A cada imagem dos segmentos da placa, com 180 linhas, era atribu?da uma sa?da com 10 linhas em que representava seu respectivo valor. As respostas ent?o eram dispostas no formato da figura abaixo:

Figura 4 ? Representa??o das sa?das da Rede Neural Artificial

A rede neural foi treinada com vinte imagens de cada n?mero, totalizando assim, duzentas imagens na matriz de entrada.

Anais do XVI ENCITA, ITA,20 de outubro de 2010 ,

A fase de treino da Rede foi realizada com uma arquitetura do tipo feedforward com 180 neur?nios na camada de entrada, 30 neur?nios na camada oculta e 10 neur?nios na camada de sa?da. Para o treinamento foi aplicada uma fun??o com gradiente descendente. A fun??o de ativa??o sigm?ide tangencial (tansig) foi usada na rede na camada oculta e para a camada de sa?da uma fun??o linear, tamb?m conhecida como purelin. A meta, ou o erro objetivo para o fim de treinamento escolhido foi de 8.10-3 e uma taxa de aprendizagem de 1.10-2.

Para isso, foram realizados v?rios treinos e simula??es que para os casos estudados, obtivemos os seguintes resultados:

Tabela 1 ? Resultados obtidos pelas simula??es da RNA

D?gitos 0 1 2 3 4

Porcentagem (%) 68 72 58 69 46

D?gitos 5 6 7 8 9

Porcentagem (%) 70 75 82 67 79

Tais resultados se mostram muito al?m daqueles esperados pelo grupo, uma vez que com maior capacidade computacional e com um aumento significativo das imagens no banco de dados, o n?mero de dados a ser processado pela rede neural artificial traria uma melhora na qualidade dos resultados, favorecendo assim o desempenho de um sistema de reconhecimento de caracteres baseado em t?cnicas de rede neural artificial.

6. Algoritmo

O algoritmo desenvolvido baseia-se em todos os tratamentos descritos acima e tem o intuito de preparar a imagem para o input da rede neural. A dimens?o inicial da imagem adquirida pela c?mera ? de 768 linhas por 1024 colunas, fato que consome muito tempo computacional e espa?o f?sico na maquina. O processo mais trabalhoso ? o de encontrar a regi?o onde a placa est? localizada, por isso, ao varrer a imagem temos que considerar diversos fatores como a inclina??o, forma dos caracteres, tonalidade e forma como estes est?o dispersos.

Embora exista uma lei que normaliza os padr?es de letras e n?meros presentes nas placas, algumas apresentam caracteres com fonte e tamanho diferentes do que manda a legisla??o, tal fato gera dificuldades pois padr?es de letras distintos e com espa?amentos variados vem a dificultar mais e mais os efeitos da luminosidade e as falhas de tonalidades causadas pela deteriora??o do tempo e dos demais efeitos do meio ambiente.

As imagens feitas com a c?mera de melhor resolu??o, que gerava uma matriz maior e com muitos detalhes devido ? qualidade e a resolu??o adotada, apresentaram os seguintes resultados:

Tabela 2 ? Quantidade de Imagens onde as placas s?o reconhecidas.

Banco de Dados de Autom?veis at? 22 de Janeiro de 2010

Placas Reconhecidas

Placas N?o Reconhecidas

55

16

J? com a nova c?mera, ao varrer a imagem em busca de poss?veis placas, temos uma regi?o com 70 linhas e 360 colunas que com o presente banco de dados apresentou os seguintes dados.

Tabela 3 ? Quantidade de Imagens onde as placas s?o reconhecidas.

Banco de Dados de Autom?veis at? 11 de Junho de 2010

Placas Reconhecidas

Placas N?o Reconhecidas

220

2

................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download