Projeto SIAV - Sistema de Identificação Automática de Veículos (versão 1.0)
Este projeto visa dotar uma máquina da capacidade de localizar e interpretar o conteúdo da placa de um veículo qualquer através da utilização de técnicas de processamento de imagens e inteligência artificial.
Algumas aplicações deste tipo de sistema são:
Medição e planejamento do fluxo de tráfego
Identificação de veículos para recuperação em caso de furto
Controle automático de pedágios e estacionamentos pagos
Aplicação das leis de trânsito (identificação automática de veículos infratores, estacionamento em áreas proibidas, etc. )
No desenvolvimento do sistema de identificação de veículos, algumas etapas mereceram atenção especial:
Algoritmo de localização da placa
Segmentação e redimensionamento dos caracteres encontrados
Reconhecimento dos caracteres através de uma rede neural
A plataforma de desenvolvimento do projeto foi um microcomputador PC e o software foi desenvolvido em C++ para Windows 95. Este computador, equipado com uma placa digitalizadora de vídeo, permite a aquisição de imagens com resolução de 320x 240 pixels. A figura abaixo mostra o aplicativo desenvolvido.
fig. Interface gráfica do sistema
O algoritmo de localização da placa pode ser dividido em dois procedimentos:
1) No primeiro procedimento temos a localização da placa através dos algoritmos abaixo:
Procura por variação tonal padronizada através da análise do gradiente positivo na área da placa;
Binarização local adaptativa sobre a região encontrada ou, se necessário, sobre a imagem inteira;
Nesta etapa, temos como resultado as coordenadas do provável local da placa.
2) No segundo procedimento há a confirmação do local através da análise do número de dígitos encontrados:
Procura por dígitos de tamanhos pré-definidos;
Análise dos dígitos selecionados verificando a formação de algum grupo válido;
Como resultado final temos a confirmação do local correto.
fig. seleção dos dígitos
Segmentação e redimensionamento dos caracteres
Uma vez encontrada a placa é necessário segmentar os caracteres a fim de separá-los do resto da imagem e redimensioná-los para a rede neural. Foi utilizada uma técnica de crescimento controlado, dentro de cada entidade encontrada na área da placa, e um conjunto de heurísticas para descartar ruídos indesejáveis e selecionar corretamente os caracteres.
fig. placa binarizada
fig. placa segmentada - 7 entidades encontradas
Uma topologia de rede neural feedforward utilizando o algoritmo backpropagation para treinamento foi escolhida. Foram desenvolvidas duas redes distintas, uma para os caracteres e outra para os algarismos, com 255x26 x26 e 255x10x10 neurônios nas camadas de entrada xescondidaxsaída respectivamente.
Resultados Preliminares O sistema foi testado com um conjunto de 300 imagens e comparado à uma versão demonstração de um software comercial israelense - See/Car. As imagens utilizadas no teste possuem as seguintes características:
256 tons de cinza e 320x240 pixels
Dimensões da placa entre 70x20 e 120x40 pixels
Imagens da frente e costas dos veículos com distribuição de luz sobre a superfície da placa homogênea e heterogênea
See/Car:
76,2 % de sucesso na localização das placas
64,6 % de sucesso na segmentação correta dos caracteres
98,7 % de sucesso na localização das placas
87,1 % de sucesso na segmentação correta dos caracteres
82,4 % de sucesso na localização das placas com a rotina preliminar (variação tonal)
87 % de sucesso no reconhecimento dos caracteres segmentados
28 % de sucesso no reconhecimento correto das placas (7 dígitos)
O sistema desenvolvido possui um bom desempenho em ambientes com diferentes tipos de iluminação. O tempo de processamento de cada imagem é dependente da complexidade da imagem analisada e pode variar entre 1.4 e 130s (processador K6-2 400 MHz com 64 MB de RAM).
A baixa taxa de acertos no reconhecimento dos caracteres, deve-se, entre outras coisas, ao deficiente banco de amostras utilizadas no seu treinamento. Estão sendo feitos esforços para a formulação de um banco de dados apropriados e uma descrição mais eficiente dos caracteres para a rede.
Download do software DEMO (760 Kb).
Mestrando: Fernando P. Coelho de Souza (Concepção do sistema, algoritmo e programação)
Prof. Orientador: Dr. Altamiro Amadeu Susin
Bolsista de iniciação científica: Francisco Roberto Peixoto Socal (Interface gráfica)
Bolsista de iniciação científica: Rodrigo Possamai Bastos (Coleta de dados)
Informações: paladino@iee.ufrgs.br, suzim@iee.ufrgs.br
Este projeto obteve apoio do CNPq no financiamento das bolsas, e da empresa Compuletra (Porto Alegre-RS).