Vous êtes sur la page 1sur 6

Reconhecimento Automtico de Placas Veiculares

Luismar Sebastio Ferreira *


* UniverCidade (Centro Universitrio da Cidade do Rio de Janeiro) Ncleo de Projetos e Pesquisa em Aplicaes Computacionais

Luciano Pereira Soares*


Tecgraf, DI - Departamento de Informtica PUC-Rio (Pontifcia Universidade Catlica do Rio de Janeiro)

e-mail: tecluismar@hotmail.com

e-mail: lpsoares@tecgraf.puc-rio.br
permanncia de veculos em um estacionamento, automatizar a entrada e sada da frota de uma empresa em seu estacionamento, controlar a entrada de veculos autorizados em algum um local, identificar veculos furtados ou irregulares transitando em via pblica. O captulo a seguir apresenta o sistema de placas brasileiro, e no captulo 3 so listados alguns trabalhos relacionados. No captulo 4 sero apresentados os conceitos dos algoritmos utilizados na pesquisa e no 5 como eles foram desenvolvidos. No captulo 6 so apresentados os resultados e no 7 uma breve concluso da pesquisa.

Abstract
A set of techniques and algorithms are described for an automatic recognition of characters in license plates. Developed resources such as tracking polygons in images using the characteristic color of the plates with neighborhood pixel routines have presented efficient results. Procedures to accurately locate and recognize the characters are also presented. The research was based on neural networks combined with techniques of digital image processing by automated agents that expose the results immediately for the end users.

Resumo
Um conjunto de tcnicas e algoritmos so apresentados para o reconhecimento automtico de caracteres em placas de veculos. Foram desenvolvidos recursos de rastreamento de polgonos em imagens atravs da cor caracterstica das placas. Tais recursos se mostraram muito eficientes, usando para isso rotinas de vizinhana de pixels adaptadas. Procedimentos para localizar e reconhecer com preciso os caracteres tambm so apresentados. A pesquisa baseou-se em redes neurais, aliadas s tcnicas de processamento de imagens por agentes que permitem expor os resultados imediatamente aos usurios.

2. Padronizaes de placa veicular


Segundo o CONTRAN [3] todos os veculos fabricados ou emplacados a partir de 01/08/2007 no Brasil devem seguir a resoluo 231 de 15/03/2007. Nesta resoluo foram estabelecidos padres para as dimenses das placas de motos e carros. Tambm ficou estabelecido o modelo para as letras e nmeros a serem usados, assim como seus tamanhos e posicionamentos sobre o retngulo da placa. A mesma resoluo tambm estabelece as cores para o fundo das placas e para as letras de acordo com a categoria de cada veculo, alm da obrigatoriedade de pelcula retro-refletiva sobre as mesmas.

1. Introduo
O presente projeto de pesquisa teve como finalidade desenvolver um sistema inteligente capaz de reconhecer automaticamente os smbolos alfanumricos a partir de imagens digitalizadas de veculos. O sistema, ao receber uma imagem digitalizada contendo um veculo, capaz de identificar e separar a placa do veculo do restante da cena, normalizando e enquadrando a imagem da placa, para ento reconhecer a seqncia de smbolos alfanumricos que identificam o veculo. O sistema gera uma sada com a informao referente identificao da placa, podendo automatizar outros processos em cadeia. Tcnicas de inteligncia artificial [1], como agentes para localizar e segmentar as imagens e redes neurais [2], so usadas para reconhecimento tico dos caracteres. O reconhecimento automtico das placas de veculos tem inmeros usos, como por exemplo: calcular a

2.1. Codificao da placa


O cdigo da placa o resultado das combinaes de 3 letras (26 smbolos, de A-Z) e 4 nmeros (10 smbolos, de 0-9), sendo que cada combinao distribuda pelo CONTRAN [3] para garantir o padro de registros dentro da federao. Os diversos elementos da placa so padronizados conforme mostra a Figura 1. Estes elementos so impressos fisicamente em uma chapa de metal, provocando o efeito de alto relevo, e pintados.

Figura 1 Dimensionamento da placa de carros (mm).

3. Trabalhos relacionados
TRENTINI et al. [4] desenvolveram um sistema de viso computacional para reconhecimento automtico de placas veiculares em ambiente externo. Filtragens em um pr-processamento no domnio de freqncia permitiu suavizar e eliminar eventuais rudos da imagem, melhorando a localizao e o reconhecimento das placas. Com isso so eliminadas tambm salincias e reentrncias que atrapalham o algoritmo de deteco de bordas. Para o rastreamento so realizadas buscas espaciais comparando as dimenses e atributos dos elementos pertinentes nas imagens com as propores das dimenses e padres de uma placa. A correo da perspectiva da placa apresenta um inconveniente que provoca pequenos buracos na imagem final. Os caracteres so reconhecidos atravs do algoritmo de Random Trees, que um classificador com base em rvore de deciso. O resultado foi positivo em aproximadamente 92% dos veculos testados. POLIDORIO e BORGES [5] fazem a aquisio de uma imagem binarizada, fazendo uma anlise de contraste que foca no centro inferior da imagem para localizar a placa do veculo. Aps a separao dos caracteres o esqueleto do caractere procurado para ser reconhecido. O reconhecimento feito por anlise sinttica, se processando apenas um conjunto representativo das primitivas. Cada objeto encontrado tem seus pontos de interesses identificados, sendo independentes de rotao, translao e escala. Porm o processo ineficiente para os caracteres {o, 0}, {W, M}, {Z, 7, J}, {6, 9} quando analisados, no levando em considerao itens de rotao e posicionamento na cadeia de combinaes. Os autores apontam um resultado de aproximadamente 95% de eficcia no reconhecimento das placas. CONCI e MONTEIRO [6] usaram vrias tcnicas de reconhecimento, que vo desde o reconhecimento da posio da placa at as mtricas estabelecidas para definir o padro que mais se aproxima de cada caractere da imagem a ser reconhecida. O correto ponto de corte da binarizao da imagem calibrado por uma ferramenta de histograma, junto a uma tcnica de eroso aplicada ao processamento. Para o reconhecimento do smbolo feito o clculo do momento de rea de cada objeto, logo ento este comparado com o momento j conhecido para cada smbolo, escolhendose o smbolo mais prximo. Com o conjunto destas tcnicas foi obtido sucesso de 100% no reconhecimento das placas testadas. GUINGO et al. [7] usaram imagens de radares fotogrficos da Companhia de Engenharia de Trfego do Municpio do Rio de Janeiro (CET-RIO). Como o trabalho foi feito sob condies reais, fatos como neblina, chuva, luminosidade, ngulo, distncia e velocidades do instante da captura foram avaliadas.

A localizao da placa, na imagem adquirida, feita manualmente recortando-se a regio da placa e salvando em um novo arquivo. A segmentao dos caracteres da placa feita por uma verificao na frequncia de pixel com preenchimento acumulado por colunas e detectando pontos de corte. Assim gerando um polgono retangular delimitando cada caractere. Para a extrao de caractersticas para cada caractere foi usado um algoritmo que deriva do algoritmo de deteco de contorno que, por sua vez, verifica a distncia do contorno do objeto at o encontro com a borda do polgono previamente projetado. Como o caractere pode encontrar-se rotacionado na imagem feita a extrao de caractersticas em 4 ngulos diferentes: 0, 45 90 e 135, partindo da borda de mira do polgono para o centro at atingir o contorno do smbolo ou objeto. A taxa de acerto para letras foi de 88.9% e de nmero foi de 96.13%. A rede para as letras tem dificuldade de distinguir os caracteres B, D, O, G, I, L, J, T, Y, V, e para os nmeros a dificuldade centrou-se na distino entre 8 e 0.

4. Algoritmos de reconhecimento
O sistema desenvolvido automatizado por multiagentes, com um agente coordenador, que identifica novos cenrios disponveis no sistema de imagens, disparando um conjunto de aes, desde o tratamento da imagem original at a apresentao do cdigo da placa. O agente coordenador repete infinitamente buscas a cada 0,1 segundo, visto que esse o tempo mximo que o processo completo leva para verificar uma cena. Quando o agente coordenador percebe uma nova cena, este passa uma ordem para o agente localizador de placas, que localiza e segmenta a parte que corresponde a placa do veculo e responde ao coordenador sobre o trmino e situao da busca. O agente coordenador usa a informao recebida do localizador para decidir se solicita ou no a identificao do cdigo da placa pelo agente identificador. O agente coordenador precisa ser criado antes dos outros agentes, assim um temporizador fora que o coordenador seja criado antes dos outro operrios. O sistema multi-agentes foi desenvolvido em Jade[8]. Os agentes finalizam sua atuao ao encontrar e apresentar o cdigo da placa ou at esgotar, sem sucesso, todas as possibilidades de busca pelo cdigo. A seguir so apresentadas as principais etapas do sistema:

4.1. Busca pela placa


Diversas propostas e ensaios para localizar a placa foram efetuados durante a pesquisa. A busca pela proporcionalidade dos objetos dos veculos e a extrao dos polgonos da cena foram desenvolvidas e testadas, como se pode ver na Figura 2. Contudo, o melhor resultado foi aquele baseado na cor de fundo das placas.

Figura 2 Busca por propores e poligonizao. Uma estrutura de dados em 3 dimenses armazena informaes referentes aos resultados dos processamentos necessrios para encontrar a placa contida na imagem. Esta estrutura composta por uma matriz bidimensional utilizada para armazenar resultados temporrios e todos os clculos intermedirios de rastreamento. A cor da placa procurada levando em considerao a sua conectividade com os vizinhos similares [9], bem como os padres de cores das placas veiculares. Para isso cada pixel ter suas componentes de cores avaliadas, e se estiver atendendo ao critrio de busca, o pixel em questo marcado como uma regio candidata. Os valores das cores desejadas so ajustados dinamicamente de acordo com o aprendizado do sistema durante sua execuo. Foi desenvolvido um algoritmo que percorre todos os pixels da imagem original analisando se a tonalidade tem possibilidade de ser uma placa de cor cinza, marcando assim esta informao na clula que corresponde ao pixel na estrutura de dados. Aps isso o algoritmo verifica e marca as clulas candidatas que so conexas com outras candidatas a serem parte da placa. Posteriormente as clulas so percorridas novamente e agrupadas por uma identificao de grupo conexo, formando um conjunto de elementos com as mesmas caractersticas. Cores distintas para cada grupo identificado so apresentados na Figura 3.

Figura 4 Polgono sobre cada grupo conexo. Como as imagens so escaladas para uma resoluo fixa, os polgonos com quantidade de pixels insuficiente para identificao de placas so descartados, assim reduzindo a quantidade de polgonos candidatos. A regra usada foi que um polgono com menos de 100 pixels na horizontal no tem condies de ser placa. Aps a seleo de todos os grupos conexos de pixels candidatos, cada grupo candidato ter uma identificao. A Figura 5 apresenta um resultado para placas cinzas.

Figura 5 Original e grupos cinzas de pixels. Aps a identificao, os pixels externos formaro um polgono candidato como ilustrado na Figura 6.

Figura 6 Primeiro, segundo e terceiro polgono. Caso no exista polgono candidato para a placa de cor cinza, as operaes so repetidas para vermelho, branco, preto e azul, sendo que o filtro aplicado para busca do pixel candidato ser especfico para cada cor de fundo. Todos os polgonos que no possuem proporo de um retngulo de placa so descartados. Para isso feito um um clculo de dimenses para verificar se o polgono tem aproximadamente as propores de uma placa (400x130mm), ou seja, a razo da largura sobre a altura dada por 3,07 10% de tolerncia. Estes polgonos so marcados como forte candidatos a placa.

Figura 3 grupos candidatos coloridos. Como o resultado ainda no foi o desejado, ento feita a mdia aritmtica dos pixels vizinhos. Um algoritmo faz a ordenao das clulas para posteriormente encontrar as coordenadas dos quatro cantos e assim calcular a razo das dimenses de cada polgono, conforme apresentando nos textos em azul na Figura 4.

4.2. Nivelar e corrigir o ponto de fuga


O agente dispara um algoritmo para reconhecimento dos 4 cantos do polgono candidato, checando quais so agudos e prximos de 90 graus, tendo assim condies de aplicar outro algoritmo para correo de nivelamento, escala e ponto de fuga. Tambm feita a correo da rotao e o descarte do contorno desprezvel. Aps isso a imagem escalada para 400 por 130 pixels e uma mscara com um pixel para cada mm referente na placa aplicada. A Figura 7 ilustra o que esperado.

Figura 9 (A) imagem binarizada, (B) distribuio dos pixels da vertical, (C) linhas de corte na vertical. O agente capaz de verificar se necessrio algum ajuste de translao na horizontal e vertical para melhorar o posicionamento em relao mscara, analisando a sobreposio da distribuio sobre a mscara de corte. Uma vez a imagem bem posicionada e com seus smbolos no sobrepostos sobre a mascara, outro algoritmo translada todos os smbolos para o extremo superior esquerdo do espao reservado (Figura 10). Esta operao visa padronizar o posicionamento inicial dos caracteres para reconhecimento pelas redes neurais.

Figura 7 Nivelamento pelos pontos de controle.

4.3. Extrair da imagem letras e nmeros


Para validar os polgonos candidatos a imagem binarizada se convertendo para preto e branco, fazendo assim surgir espaos vazios entre os elementos da placa que permitem localizar os caracteres e elementos da mesma. Foi levado em considerao que, se um polgono candidato no tem mais que 10 grupos de pixels (3 letras + 4 nmeros + fundo da placa + letras da cidade + letras estado), ento ele no pode ser uma placa. O algoritmo de segmentao na horizontal faz uma busca de cima para baixo e delimita a linha com a menor quantidade de pixels pretos entre a linha 35 e 55. O agente far a soma e a distribuio dos pixels de cor preta nas linhas. Isso visa identificar se existe uma linha de corte que coincida com a linha de corte horizontal da mscara. Este corte separa o nome do Municpio e UF do restante da placa, conforme demontrado pela Figura 8.

Figura 10 Deslocando smbolos em relao mscara.

Figura 8 (A) imagem binarizada, (B) distribuio dos pixels da horizontal, (C) linha de corte horizontal. Em um prximo passo, o agente faz a soma e a distribuio dos pixels pretos nas colunas da parte inferior da linha de corte horizontal. Isso visa identificar os seis pontos de corte, e se eles so prximos aos pontos de corte verticais da mscara, conforme Figura 9. O algoritmo faz 3 buscas sequenciais relativas ao ltimo ponto de corte. Este algoritmo pula 49 pixels e considera como ponto de corte a coluna com a menor quantidade de pixels pretos de 42 a 56 na largura, relativamente ao ponto de corte.

4.4. Reconhecimento dos algarismos


Como os espaos destinados s letras so padronizados, a matriz que representa a imagem da letra tem 65x58 pixels. Esses pixels sero analisados pela rede neural artificial treinada para reconhecer letras no canto superior esquerdo. Esta rede ter em sua camada de sada 26 clulas. No final, uma nica clula ativa identificar a letra. A rede apresenta o melhor comportamento seguindo o modelo perceptron de 3 camadas [10]. O treinamento realizado com backpropagation. O mesmo acontece com os nmeros de 65x44 pixels, com sada em 10 clulas.

5. Implementao da rede neural artificial


As redes foram implementadas atravs de cinco procedimentos com ferramentas distintas (Figura 11).

Figura 13 exibe a criao de uma rede em propores minimizadas.

Figura 13 Criando as conexes feed-forward. Figura 11 Processos para implementao da RNA. Para treinar a rede foi necessrio criar os arquivos com os parmetros de entrada, que contm amostras dos objetos que a rede usa para fazer sua aprendizagem. Diversas amostras de letras e nmeros foram geradas, variando o estilo do DETRAN mandatory com recursos como eroso e dilatao. Uma entrada exemplo apresentada na Figura 12. As interfaces do JavaNNS (Figura 14), so de grande utilidade para fazer a anlise do andamento do treinamento e tambm da configurao da rede.

Figura 14 Anlise das clulas das camadas. A rede produzida aprendeu com 930 pocas e levou 5 minutos, e sua evoluo exibida na Figura 15. Podemos observar que a maioria das clulas da camada intermediria est atuando no processo.

Figura 12 Padro de entrada para a letra A. A rede neural pode ser configurada, treinada e testada com o JavaNNS [11] (Java Neural Network Simulator), resultando em um arquivo (.net) com as caractersticas da rede e os pesos sinpticos. A converso deste arquivo em algoritmo foi realizada atravs do programa SNNS2 [12], que gera o cdigo em linguagem C. Para usar o cdigo C em Java, este foi compilado para uma biblioteca de vnculo dinmico DLL (dynamic-link library), reintegrada no Java por JNA (Java Native Access). Originalmente trabalhou-se com 3770 clulas (58x64), porm o sistema ficou excessivamente lento. Assim se reduziu a camada de entrada para a rede das letras a 750 clulas, dispostas 25 na horizontal e 30 na vertical. Para a camada intermediria foram criadas 90 clulas e a camada de sada foi criada com 26 clulas. As conexes da rede seguiram o padro feed-forward ou cclico, sendo este o modelo proposto para uma rede perceptron. A

Figura 15 Grfico do sucesso no treinamento. O objetivo foi alcanado por usar um valor pequeno na variao inicial dos pesos das conexes, e tambm por usar um peso pequeno para fazer a retro-distribuio dos erros encontrados em cada poca.

6. Resultados
Inmeros testes foram conduzidos, verificando-se a eficincia do processamento de imagens, o treinamento das redes neurais e tambm a criao dos agentes. O sistema foi testado com placas de veculos em imagens adquiridas de 3 e 7 metros de distncia, providas de iluminao natural. A cmera foi posicionada entre 1,5 e 2,5 metros de altura em relao ao piso do veculo. Os veculos estavam em rotao de at 15 graus. A Figura 16 mostra dois exemplos de resultados.

Dentre as principais contribuies podemos citar os sistemas multi-agentes que possuem a tarefa de localizar a placa sobre a imagems adquirida, segmentar a placa na imagem, localizar as letras e nmeros, recortar os smbolos e efetuar seu reconhecimento por redes neurais. A implementao dos algoritmos mostrou-se eficiente no reconhecimento de letras e nmeros nas placas, e tambm na localizao da placa frente s imagens dos veculos testados. Aps a gerao de diversos caracteres para o aprendizado da rede, os testes mostraram uma eficincia de 100%, no se constatando erros no reconhecimento de caracteres para imagens com resoluo e qualidade aceitvel. Como trabalho futuro pretende-se utilizar placas amassadas, condies de neblina e chuva, alm de iluminao difrerenciada para testar a robustez dos algoritmos.

Referncias
[1] G.F. Luger, Intelligence Artificial Estruturas e estratgia para a soluo de problemas complexos, 4 Ed. BooKmam, 2004 [2] A.P. Braga, A.P. Carvalho e T.B. Ludermir, Redes neurais Artificiais: Teoria e Aplicaes, LTC, 2000; [3] CONTRAN, Conselho Nacional de Trnsito Resoluo 231 de 15 de maro de 2007 [4] V.B. Trentini, L.A.T. Godoy e A.N. Marana, Reconhecimento Automtico de Placas de Veculos, VI Workshop de Viso Computacional. 2010 [5] A.M. Polidorio e D.L. Borges, Reconhecimento de Caracteres Alfanumricos para Identificao de Placas de Veculos, SIBGRAPI 1996, v. 1. p. 363-364. [6] A. Conci e L.H. Monteiro, "Reconhecimento de placas de veculos por imagem", CONEM 2004, agosto de 2004 [7] B.C. Guingo, J Rodrigues e A.C.G. Thom, Tcnicas de Segmentao de Imagens, Extrao de Caractersticas e Reconhecimento de Caracteres de Placas de Veculos. VII Simpsio de Informtica, Novembro, 2002. p. 91-96. [8] F. Bellifemine, A. Poggi e G. Rimassa, JADE: a FIPA2000 compliant agent development environment. V international conference on Autonomous agents (AGENTS '01). ACM, New York, USA, pp216-217. 2001 [9] O. Marques Filho e H. Vieira Neto, Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999. [10] F. Rosenblatt, The Perceptron: A probabilistic model for information storage and organization in the brain. Psychological Review 65: 386408, 1958 [11] Wilhelm-Schickard-Institute for Computer Science (WSI), Java Neural Network Simulator, wwwra.informatik.uni-tuebingen.de/downloads/JavaNNS. [12] A. Zell, G. Mamier, M. Vogt, N. Mache, R. Hubner, K. U. Herrmann, T. Soyez, M. Schmalzl, T. Sommer, A. Hatzigeorgiou, S. Dring, and D. Posselt. Snns: Stuttgart neural network simulator, Universitt Stuttgart, 1994.

Figura 16 Dois testes em carros. Todas as letras e nmeros que serviram de teste obtiveram sucesso de 100% no reconhecimento, contudo somente testes com placas sem artefatos foram realizados. Uma identificao em PC convencional leva cerca de 0,25s para as letras, e mais 0,16s para os nmeros.

7. Concluses
A pesquisa foi orientada para um sistema capaz de efetuar o reconhecimento automtico de placas de veculos. Diversas tcnicas de processamento de imagens e inteligncia artificial foram adaptadas e compostas.