Implementação de um sistema de reconhecimento de

Transcrição

Implementação de um sistema de reconhecimento de
UNIVERSIDADE FEDERAL DO PARÁ
INSTITUTO DE TECNOLOGIA
FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES
FRANCIS JUNIOR SOUZA DA PENHA
IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES
EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE
BELÉM/PA
2013
FRANCIS JUNIOR SOUZA DA PENHA
IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES
EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE
Trabalho de Conclusão de Curso apresentado
como exigência para obtenção do título de
Bacharel em Engenharia da Computação,
pela Universidade Federal do Pará.
Orientador: Prof. Dr. Ronaldo de Freitas
Zampolo.
Co-orientador: Prof. Me Eurípedes Pinheiro
dos Santos.
BELÉM/PA
2013
IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES
EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE
Este trabalho foi julgado
/
/
adequado para obtenção do Grau de
Engenheiro da Computação, aprovado em sua forma pela banca examinadora que
atribuiu o conceito
.
Banca Examinadora:
_____________________________________________
Prof. Dr. Ronaldo de Freitas Zampolo (Orientador)
Faculdade de Engenharia da Computação e Telecomunicações
Universidade Federal do Pará
______________________________________________
Prof. Me Eurípedes Pinheiro dos Santos (Co-orientador)
Faculdade de Engenharia da Computação e Telecomunicações
Universidade Federal do Pará
_____________________________________________
Prof. Dr. Evaldo Gonçalves Pelaes
Faculdade de Engenharia da Computação e Telecomunicações
Universidade Federal do Pará
BELÉM/PA
2013
À memória de meu irmão Checo e meu avô Floriano
AGRADECIMENTOS
Em primeiro lugar, a Deus por cada dia de saúde, alegria e felicidade em
minha vida e na vida das pessoas que me cercam.
À Universidade Federal do Pará pela possibilidade de ingressar em um ensino
de qualidade e à Engcomp e professores por todo o conhecimento transmitido.
Aos professores Zampolo e Eurípedes pela atenção e confiança depositadas.
À minha mãe Virginia, pelo exemplo de luta, pela vontade de viver e de
vencer e pelo amor incondicional que mesmo longe fisicamente, sinto a cada
instante.
Ao meu pai Francisco, futuro advogado, que também foi exemplo de luta,
determinação e caráter para conseguir realizar seus objetivos e para isso também
tenho que agradecer à minha madrasta Elizângela que caminha ao lado dele.
Ao meu irmão e melhor amigo Jonathan, que aconteça o que acontecer
estaremos sempre unidos. Muito obrigado pelo afilhado que ganhei!
Aos meus irmãozinhos Kauã e Kaio que me alegram a cada dia que vão
crescendo e aprendendo coisas novas.
A toda a minha família “Da Penha”. Tios, tias, primos e primas, que mesmo
distantes fisicamente não deixaram de me apoiar. À minha segunda família, Família
Leão, que me acolheu e me tratou como um filho. Muito obrigado ao meu sogro
Sensei Leão, à minha sogra D.ª Marlúcia e ao meu cunhado Bruno.
A todos os meus amigos, meu muito obrigado por todos os momentos que
vivemos e que nunca me esquecerei.
Às minhas tias postiças Márcia e Branca que me ajudaram muito no decorrer
desses anos de faculdade.
E, por último, mas não menos importante quero fazer um agradecimento em
especial à minha namorada Luana, que esteve ao meu lado em todos os momentos,
sempre acreditando em mim e me reerguendo. Parabéns pela aprovação no
mestrado em 1º lugar. Estou muito orgulhoso, você merece. Te amo muito!
"A vida é uma peça de teatro que não permite ensaios. Por
isso, cante, chore, dance, ria e viva intensamente, antes que a
cortina se feche e a peça termine sem aplausos.”
Charles Chaplin
RESUMO
Devido ao grande fluxo de automóveis nas ruas observado nos últimos anos,
cada vez mais processos que necessitam da identificação dos automóveis devem
ser executados de forma automática, rápida e confiável. Este trabalho visa a
implementação de um sistema completo de reconhecimento de placas de
automóveis. Este sistema é dividido em três grandes módulos: Localização e
Extração da placa, Segmentação dos caracteres e Reconhecimento dos caracteres
segmentados. Neste trabalho, o módulo de Localização e Extração da placa foi
baseado no método de variação tonal. O módulo de Segmentação dos caracteres foi
implementado baseando-se no método de projeções verticais. E por fim, o
Reconhecimento de cada caractere foi realizado através do algoritmo ELM (Extreme
Learning Machine) e para tal tarefa foram criadas duas Redes Neurais Artificiais,
uma para o reconhecimento das letras e outra o reconhecimento dos números.
Palavras-chave: Localização da placa, Segmentação dos Caracteres,
Reconhecimento dos caracteres, ELM.
ABSTRACT
Due to the large flow of cars on the streets observed in recent years, more and
more processes that require identification of vehicles should be designed to operate
automatically, quickly and reliably. This paper aims to implement a complete system
for the recognition of license plates. This system is divided into three main modules:
Plate Location and Extraction, Character Segmentation and Plate Recognition. In this
work, the Plate Location and Extraction module was based on the method of tonal
variation. The character segmentation module was implemented based on the
method of vertical projection. And finally, the recognition of each character was
performed by ELM algorithm (Extreme Learning Machine) and for this task, two
artificial neural networks were created, one for letters and another for digits.
Keywords: Plate Location and Extraction, Character Segmentation, Plate
Recognition, ELM.
LISTA DE FIGURAS
Figura 1.1: Diagrama de funcionamento do sistema de reconhecimento de placas de
automóveis. ........................................................................................................................... 2
Figura 1.2: Exemplo de imagem utilizada no sistema desenvolvido ....................................... 3
Figura 2.1: Modelo RGB (MARQUES e VIEIRA, 1999) .......................................................... 6
Figura 2.2: (a) Imagem Colorira, (b) Imagem em escala de cinza .......................................... 7
Figura 2.3 - (a) Imagem em tons de cinza, (b) Imagem binarizada com limiar = 50, (c)
Imagem binarizada com limiar = 100, (d) Imagem binarizada com limiar = 150. .................... 8
Figura 3.1: (a) Imagem original e (b) Imagem submetida ao operador Sobel ....................... 11
Figura 3.2: (a) Imagem original, (b) Variação tonal da linha A e (c) Variação tonal da linha B
(SOUZA, 2000) .................................................................................................................... 12
Figura 4.1: Imagem da placa e sua respectiva projeção vertical. ......................................... 15
Figura 4.2: (a) Vizinhança-4 e (b) Vizinhança-8 ................................................................... 16
Figura 4.3: Pixels rotulados com cores diferentes. ............................................................... 17
Figura 4.4: Exemplo de placa de automóveis da Malásia .................................................... 18
Figura 5.1: Exemplo da matriz de mapa de bits (GUINGO, 2003) ........................................ 20
Figura 5.2: Atributos e um exemplo de análise dos nós da letra “E” propostos por
(POLIDÓRIO e BORGES, 1997).......................................................................................... 22
Figura 5.4: (a) Caracteres segmentados, (b) Caracteres ajustados e (c) Caracteres modelos
(OZBAY e ERCELEBI, 2007) ............................................................................................... 24
Figura 5.5: Modelo não linear de um neurônio artificial (HAYKIN, 2001). ............................. 25
Figura 5.6: Modelo de RNA do tipo MLP (Multi-Layer Perceptron). ...................................... 26
Figura 6.1: (a) Exemplo de imagem disponibilizado em (CBPF, 2005) e (b) Exemplo de
imagem nas ruas do município de Belém. ........................................................................... 32
Figura 6.2: Imagem em escala de cinza............................................................................... 33
Figura 6.3: (a) Binarização da Figura 6.1(a); (b) Binarização da Figura 6.2 ......................... 34
Figura 6.4: Comparação entre uma linha qualquer A e a linha B (linha de maior variação
tonal) da Figura 6.3. ............................................................................................................. 35
Figura 6.5: Limites superiores e inferiores dos caracteres ................................................... 36
Figura 6.6: Exemplos de regiões de placas com limites superior e inferior delimitados ........ 37
Figura 6.7: Localização e extração da placa. ....................................................................... 37
Figura 6.8: Placa de automóvel com caracteres segmentados e as projeções de cada
caractere.............................................................................................................................. 38
Figura 6.9: Modelo de caracteres na fonte Mandatory estipulado pelo Contran. .................. 42
Figura 6.10: Placa nos moldes do CONTRAN. .................................................................... 43
Figura 6.11: Esquema utilizado na classificação dos caracteres .......................................... 43
Figura 7.1: Análise das taxas de acerto na fase de teste ..................................................... 46
Figura 7.2: Gráfico para 90% dos padrões de números disponíveis destinados à etapa de
treinamento.......................................................................................................................... 47
Figura 7.3: Análise das taxas de acerto na fase de teste ..................................................... 48
Figura 7.4: Gráfico para 90% dos dados do conjunto de letras destinados à etapa de
treinamento.......................................................................................................................... 49
Figura 7.5: Reconhecimento da placa da Figura 6.1(a)........................................................ 50
LISTA DE TABELAS
Tabela 5.1: Configuração das RNAs de (SOUZA, 2000)...................................................... 27
Tabela 5.2: Configuração da RNA de (WEI, LI, et al., 2001) ................................................ 27
Tabela 5.3: Configuração da RNA de (KHALIFA, KHAN, et al., 2006) ................................. 28
Tabela 5.4: Configuração das RNAs de (ZHANG e WANG, 2012)....................................... 29
Tabela 5.5: Organização dos trabalhos citados no Capítulo 5. ............................................ 30
Tabela 6.1: Caracteres segmentados e seus respectivos vetores de características ........... 39
Tabela 7.1:Taxas de acerto no processo de reconhecimento dos números para 90 neurônios
na camada escondida. ......................................................................................................... 46
Tabela 7.2: Taxas de acerto no processo de reconhecimento das letras para 100 neurônios
na camada escondida. ......................................................................................................... 48
LISTA DE ABREVIATURAS E SIGLAS
CBPF – Centro Brasileiro de Pesquisas Físicas
CMYK – Cyan Magenta Yellow Black
CONTRAN – Conselho Brasileiro de Trânsito
ELM – Extreme Learning Machine
HSI – Hue Saturation Intensity
MLP – Multi-Layer Perceptron
OpenCV – Open Source Computer Vision Library
RGB – Padrão de cores primárias: Vermelho (Red), Verde (Green) e Azul
(Blue).
RNAs – Redes Neurais Artificiais
SLFN – Single-hidden Layer Feedforward Neural Network
SVM – Support Vector Machines
SUMÁRIO
1
2
3
4
5
6
INTRODUÇÃO ............................................................................................ 1
1.1
MOTIVAÇÃO ........................................................................................ 1
1.2
OBJETIVOS ......................................................................................... 3
1.3
ORGANIZAÇÃO DO TRABALHO ........................................................ 3
PRÉ-PROCESSAMENTO DE IMAGENS ................................................... 5
2.1
IMAGEM DIGITAL ................................................................................ 5
2.2
IMAGEM DIGITAL COLORIDA ............................................................ 5
2.3
CONVERSÃO DE IMAGEM COLORIDA PARA ESCALA DE CINZA .. 6
2.4
LIMIARIZAÇÃO (THRESHOLDING) .................................................... 7
2.5
REDIMENSIONAMENTO DE IMAGENS ............................................. 9
LOCALIZAÇÃO E EXTRAÇÃO DA PLACA ............................................ 10
3.1
MÉTODO BASEADO NA MORFOLOGIA DOS CARACTERES ........ 10
3.2
MÉTODO BASEADO EM DETECÇÃO DE BORDAS ........................ 11
3.3
MÉTODO BASEADO EM VARIAÇÃO TONAL ................................... 12
SEGMENTAÇÃO DE CARACTERES ...................................................... 14
4.1
MÉTODO DAS PROJEÇÕES ............................................................ 14
4.2
MÉTODO DE ANÁLISE DE COMPONENTES CONECTADOS ........ 16
RECONHECIMENTO DE PADRÕES ....................................................... 19
5.1
EXTRAÇÃO DE CARACTERÍSTICAS ............................................... 20
5.2
TEMPLATE MATCHING .................................................................... 21
5.3
REDES NEURAIS ARTIFICIAIS (RNA).............................................. 24
PROTÓTIPO DESENVOLVIDO ............................................................... 31
6.1
LOCALIZAÇÃO E EXTRAÇÃO DA PLACA........................................ 31
6.2
SEGMENTAÇÃO DOS CARACTERES ............................................. 38
6.3
RECONHECIMENTO DOS CARACTERES ....................................... 39
6.3.1 Extração de Características ....................................................... 39
6.3.2 ELM – Extreme Learning Machine ............................................. 40
7
TESTES E RESULTADOS ....................................................................... 44
7.1
CLASSIFICAÇÃO DOS NÚMEROS ................................................... 44
7.2
CLASSIFICAÇÃO DAS LETRAS ....................................................... 47
8
CONCLUSÃO E TRABALHOS FUTUROS .............................................. 51
9
APÊNDICE A ............................................................................................ 52
9.1
LETRAS ............................................................................................. 52
9.2
NÚMEROS ......................................................................................... 53
10
BIBLIOGRAFIA ..................................................................................... 55
1
1
INTRODUÇÃO
1.1
MOTIVAÇÃO
Nos dias atuais, os grandes centros urbanos estão sofrendo com o enorme
crescimento do fluxo de automóveis nas ruas. Com isso, processos que necessitam
da identificação do veículo devem possuir tempo de execução e níveis de
confiabilidade adequados à demanda solicitada.
De acordo com, (GUINGO, 2003), (DIAS, 2005) e (DAMBROS, 2008), os
principais processos que necessitam da identificação dos veículos são:

Fiscalização: A identificação do veículo possibilita a punição do
proprietário (responsável) caso cometa alguma infração de trânsito ou
algum sinistro em outro veículo.

Controle de acesso: Alguns estacionamentos precisam identificar cada
veículo no momento da entrada e também no momento da saída para
calcular o tempo de permanência no local. Além dos estacionamentos, as
praças de pedágios também podem utilizar a identificação do veículo para
liberar a passagem do mesmo e realizar a cobrança da tarifa
posteriormente, por exemplo, enviando o boleto a ser pago por e-mail. A
identificação do veículo também pode ser usada para autorizar a entrada
do mesmo em locais de acesso restrito.

Monitoramento de tráfego: A identificação do veículo também pode ser
aplicada quando os órgãos responsáveis pela engenharia de tráfego
precisam conhecer a velocidade média dos mesmos em um determinado
percurso, a fim de realizar projetos de rodovias, pontes, entre outros.

Identificação de veículos roubados: Em casos de veículos roubados ou
também em casos de sequestro relâmpago e assaltos, a identificação do
veículo é de suma importância, pois possibilita a identificação do
2
proprietário e ainda verificar o trajeto do mesmo em imagens de câmeras
do local.
Segundo
(DIAS, 2005),
as etapas que
compõem
um sistema
de
reconhecimento de placas de automóveis são as seguintes (Figura 1.1):
Figura 1.1: Diagrama de funcionamento do sistema de reconhecimento de placas de
automóveis.
Atualmente, muitas pesquisas estão sendo realizadas no âmbito na
localização, segmentação e reconhecimento de caracteres das placas de
automóveis com o intuito de desenvolver sistemas cada vez mais robustos para
aperfeiçoar estes processos e buscar amenizar alguns fatores que prejudicam a
identificação da placa tais como: fatores climáticos (chuva, neblina, etc.), ruídos,
luminosidade, entre outros (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al.,
2008).
Neste trabalho, o sistema foi projetado para trabalhar com o padrão brasileiro
de placas:
3

Placas com sete caracteres, sendo os três primeiros caracteres letras (AZ) e os quatro caracteres restantes números (0-9);

Fundo claro e caracteres escuros ou vice e versa.
E também obedecendo as seguintes características:

Imagens frontais e traseiras de automóveis adquiridas em situações reais;

Condições climáticas e de luminosidade homogêneas.
Um exemplo de imagem de automóvel utilizada no sistema é apresentado na
Figura 1.2.
Figura 1.2: Exemplo de imagem utilizada no sistema desenvolvido
1.2
OBJETIVOS
Este trabalho tem como objetivo a implementação de um sistema que execute
os processos de localização e extração da placa, segmentação dos caracteres da
placa localizada e por fim o reconhecimento dos caracteres segmentados de forma
automática a partir de um banco de imagens de automóveis.
1.3
ORGANIZAÇÃO DO TRABALHO
O primeiro capítulo fornece a motivação que deu origem ao trabalho e os
objetivos traçados.
O segundo capítulo descreve alguns processos de pré-processamento
necessários para o bom funcionamento do sistema.
4
O terceiro capítulo descreve o conceito de localização e extração do objeto de
interesse (a placa do automóvel) e técnicas abordadas na literatura.
No quarto capítulo, é abordado o processo de segmentação dos caracteres
da placa extraída na etapa anterior.
No quinto capítulo, é descrito o processo de reconhecimento dos caracteres
segmentados.
No sexto capítulo, é abordado o sistema desenvolvido apresentando todos os
passos necessários para seu funcionamento juntamente com as técnicas utilizadas.
O sétimo capítulo aborda os testes realizados juntamente com os resultados
obtidos.
O oitavo capítulo apresenta as considerações finais e as perspectivas de
trabalhos futuros.
E por fim, o apêndice A fornece alguns resultados obtidos durante as
simulações do módulo de reconhecimento de caracteres, quando houve a variação
na quantidade de neurônios na camada escondida.
5
2
PRÉ-PROCESSAMENTO DE IMAGENS
2.1
IMAGEM DIGITAL
O termo imagem refere-se a uma função bidimensional de intensidade de luz
onde x e y denotam as coordenadas espaciais e o valor
em qualquer ponto
é proporcional ao brilho (ou níveis de cinza) da imagem naquele ponto. Uma
imagem digital é uma imagem
discretizada tanto em coordenadas espaciais
quanto em brilho. Em outras palavras, uma imagem digital pode ser considerada
uma matriz cujos índices de linhas e de colunas identificam um ponto na imagem, e
o correspondente valor do elemento da matriz identifica o nível de cinza naquele
ponto. Os elementos dessa matriz digital são chamados de pixels (GONZALEZ e
WOODS, 2010).
2.2
IMAGEM DIGITAL COLORIDA
Segundo (CASTLEMAN, 1996), uma imagem digital colorida pode ser vista
como a sobreposição de três imagens monocromáticas.
Existem vários modelos de representação da cor de uma imagem, entre os
quais se destacam o RGB (Red Green Blue), CMYK (Cyan Magenta Yellow blacK) e
o HSI (Hue Saturation Intensity). O modelo RGB é o modelo utilizado neste projeto,
uma vez que é amplamente usado em dispositivos de imagem e sistemas
operacionais.
Uma imagem digital representada pelo modelo RGB é composta por três
matrizes (canais) em escala de cinza, onde cada matriz corresponde a uma das
componentes primárias (vermelho, verde e azul) e os valores na mesma posição nas
três matrizes gera a cor desejada.
O modelo RGB pode ser visto como um cubo, onde três de seus vértices são
as cores primárias (vermelho, verde e azul), outros três as cores secundárias (ciano,
magenta e amarelo), o vértice junto à origem é corresponde à cor preta e o mais
afastado da origem corresponde à cor branca, conforme ilustra a Figura 2.1. Neste
modelo, a escala de cinza se estende através de uma linha, a diagonal do cubo, que
6
sai da origem (preto) até o vértice mais distante dela (branco) (MARQUES e VIEIRA,
1999).
Figura 2.1: Modelo RGB (MARQUES e VIEIRA, 1999)
2.3
CONVERSÃO DE IMAGEM COLORIDA PARA ESCALA DE CINZA
A conversão de uma imagem no padrão RGB para uma imagem em tons de
cinza é realizada pixel a pixel adicionando-se 30% da intensidade da matriz Red,
59% da intensidade da matriz Green e 11% da intensidade da matriz Blue
(CASTLEMAN, 1996) e (DIAS, 2005), conforme a Equação 2.1.
Como já mencionado, esse cálculo é realizado para cada pixel da imagem,
onde as porcentagens descritas estão relacionadas à sensibilidade visual do olho
humano para cada uma das cores primárias e o valor resultante será o nível de
cinza do pixel analisado.
Um exemplo de conversão de uma imagem colorida para escala de cinza
pode ser visualizado na Figura 2.2.
7
Figura 2.2: (a) Imagem Colorira, (b) Imagem em escala de cinza
A conversão de uma imagem colorida para uma imagem em tons de cinza é
necessária para o processo de limiarização da imagem descrito na seção a seguir.
2.4
LIMIARIZAÇÃO (THRESHOLDING)
Segundo (MARQUES e VIEIRA, 1999), o princípio da limiarização consiste
em separar as regiões de uma imagem quando esta apresenta duas classes (o
fundo da imagem e o objeto). Devido ao fato da limiarização produzir uma imagem
binária como saída, o processo também é denominado de binarização. A forma mais
simples de binarização consiste na bipartição do histograma, convertendo os pixels
cujo tom de cinza é maior ou igual a um certo valor de limiar (threshold) em brancos
e os demais em pretos
Em geral, o processo de binarização transforma uma imagem qualquer em
uma imagem de duas cores. Assim, ele é amplamente utilizado para segmentar uma
imagem colocando uma cor em evidência, como é o caso das placas de automóveis,
onde há o fundo da placa e os objetos (caracteres).
De acordo com (GONZALEZ e WOODS, 2010), o mecanismo de binarização
é definido pela Equação 2.2:
(2.2)
Onde:
8


: é a imagem de saída (imagem binarizada);
1(ou 255) e 0: são valores que representam as cores branca e preta,
respectivamente. É importante ressaltar neste momento que a escala
adotada neste trabalho foi de 0 a 255;

: é a imagem em tom cinza, e;

: é o limiar de tom de cinza pré-definido.
A Figura 2.3 apresenta uma imagem em escala de cinza e imagens
binarizadas com diferentes limiares.
Figura 2.3 - (a) Imagem em tons de cinza, (b) Imagem binarizada com limiar = 50, (c)
Imagem binarizada com limiar = 100, (d) Imagem binarizada com limiar = 150.
Alguns métodos de binarização são descritos em (SEZGIN e SANKUR, 2004)
e (SOM, ZAIN e GHAZALI, 2011). O método mais conhecido é o método de Otsu
(OTSU, 1979). Neste trabalho, o método de Otsu foi utilizado, pois segundo
(GONZALEZ e WOODS, 2010) é considerado ótimo no sentido de maximizar a
variância entre classes e mostrou-se eficaz durante a implementação do sistema.
9
2.5
REDIMENSIONAMENTO DE IMAGENS
Nos
sistemas
de
reconhecimento
de
placas
de
automóveis,
o
redimensionamento de imagens é utilizado frequentemente na padronização das
dimensões dos objetos de análise. Desta forma, o processo de redimensionamento
pode ser aplicado após a aquisição da imagem de entrada, ou ainda, ao longo dos
processos quando sua aplicação se fizer necessária.
O redimensionamento de imagens inserido neste trabalho e nas propostas
estudadas e descritas nos capítulos a seguir foi aplicado em duas situações:
1. Na padronização das dimensões das imagens de entrada;
2. No redimensionamento dos caracteres segmentados para o processo de
extração de características. Estas aplicações serão descritas ao longo do
trabalho.
10
3
LOCALIZAÇÃO E EXTRAÇÃO DA PLACA
O processo de localização e extração da placa consiste em realizar um
rastreamento em toda a imagem de entrada com o intuito de detectar a região que
contém a placa. Esta etapa tem por objetivo final isolar a região da placa, gerando
uma imagem de dimensões reduzidas em relação à imagem pré-processada,
facilitando assim o processamento das demais etapas.
Existem na literatura diversos métodos que efetuam a localização de placas
de automóveis. Nas seções a seguir alguns deles serão descritos.
3.1
MÉTODO BASEADO NA MORFOLOGIA DOS CARACTERES
O significado da palavra morfologia origina-se das palavras gregas morphê
(forma) e logos (ciência), ou seja, morfologia é a ciência que analisa as formas que
qualquer matéria pode tomar em qualquer área de aplicação (biologia, gramática,
imagens, etc.) (FACON, 1996).
Métodos para localização de placas baseadas na morfologia dos caracteres
utilizam características, como a altura e espaçamento regular, alinhamento
horizontal e quantidade fixa de caracteres. Um sistema brasileiro de reconhecimento
de placas, denominado de LooKar, aplica o método baseado em morfologia dos
caracteres na etapa de localização e está descrito em (LOTUFO e DIAS, 2004)
A grande potencialidade da morfologia matemática reside nos elementos
estruturantes. O elemento estruturante é uma imagem de amostra com
características geométricas e/ou topológicas relacionadas com a informação que se
pretende extrair da imagem de interesse.
Assim, os elementos estruturantes são comparados, a partir de uma
transformação, ao conjunto desconhecido da imagem. O resultado dessa
transformação permite avaliar o conjunto desconhecido. O formato e o tamanho do
elemento estruturante possibilitam testar e quantificar de que maneira, o elemento
estruturante está ou não está contido na imagem (FACON, 1996) e (BUSSADOR,
2009).
11
A principal dificuldade deste método é a existência de outras regiões da
imagem que apresentam cadeias de características semelhantes à placa do
automóvel, tais como: marca e modelo, adesivos com caracteres, entre outros.
3.2
MÉTODO BASEADO EM DETECÇÃO DE BORDAS
Os métodos baseados em detecção de bordas utilizam a característica de a
placa do automóvel possuir a forma retangular e fundo uniforme.
A primeira etapa deste método consiste em submeter a imagem a um detector
de bordas, tais como: Sobel, Canny e Laplaciano (DIAS, 2005). Esses processos
realçam as bordas da placa. A Figura 3.1 apresenta a aplicação do operador Sobel
em um exemplo de imagem utilizada neste trabalho.
Figura 3.1: (a) Imagem original e (b) Imagem submetida ao operador Sobel
A partir das bordas realçadas, a etapa final consiste na aplicação de técnicas
de busca por essas bordas. Assim, todos os objetos da placa podem ser localizados.
A principal desvantagem dos métodos baseados em detecção de bordas é
que dificilmente podem ser utilizados de forma isolada em imagens complexas, pois:

Necessita que a borda da placa do automóvel apresente bom contraste
em relação ao local onde ela está fixada;

Outras bordas podem ser selecionadas incorretamente, como os faróis e
a marca do fabricante do automóvel.
12
Contudo, quando combinados com técnicas morfológicas que auxiliam na
localização da placa, o método baseado em detecção de bordas apresenta uma taxa
de localização relativamente elevada em comparação a outros métodos.
Em (HONGLIANG e CHANGPING, 2004) é proposto uma abordagem que
utiliza o método de detecção de bordas juntamente com o método baseado em
morfologia o qual apresenta uma taxa de localização da placa do automóvel de
99.6%.
3.3
MÉTODO BASEADO EM VARIAÇÃO TONAL
O método baseado em variação tonal se beneficia do fato de que a região
placa do automóvel apresenta variação tonal diferente do restante da imagem, um
tipo de “assinatura” (BARROSO, RAFAEL, et al., 1997), (SOUZA, 2000) e (DIAS,
2005).
Por esta razão, este método consiste em realizar uma varredura sequencial
em cada linha horizontal da imagem a procura de grande quantidade de alternâncias
entre as cores dos caracteres e a cor do fundo da placa. A Figura 3.2 exemplifica o
método de variação tonal.
Figura 3.2: (a) Imagem original, (b) Variação tonal da linha A e (c) Variação tonal da linha B
(SOUZA, 2000)
A partir da Figura 3.2(a), observa-se que uma linha qualquer da imagem (linha
A) foi comparada a uma linha que corta a região da imagem que contém a placa do
automóvel (linha B). Analisando os valores de cada pixel, ao longo das linhas
selecionadas fornecidos na Figura 3.2(b), verifica-se que a região da imagem que
13
contém a placa apresenta vários picos máximos e mínimos consecutivos, cujas
amplitudes e distâncias são semelhantes. Esta alternância entre picos é gerada em
virtude do alto contraste entre os caracteres e o fundo da placa. Esses fatores são
os que caracterizam o método da variação tonal. Vale ressaltar que este método foi
adotado no desenvolvimento deste trabalho.
14
4
SEGMENTAÇÃO DE CARACTERES
A partir da imagem da placa previamente detectada e extraída da imagem
original, o próximo processo a ser executado é a segmentação dos caracteres
presentes na placa.
O objetivo do processo de segmentação de caracteres é separá-los em
imagens distintas, para que posteriormente, após a extração das características de
cada caractere isolado, seja realizado o seu reconhecimento. Portanto, esta etapa
permitirá a identificação, isoladamente, de cada letra ou número que compõem a
placa (CONCI e MONTEIRO, 2004).
Segundo (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008), a
maior parte dos erros de reconhecimento de placas de automóveis não são
ocasionados em virtude de um processo de reconhecimento com baixa taxa de
acertos e sim por caracteres segmentados de forma incorreta.
Levando em consideração o grande desafio de realizar a segmentação de
caracteres com uma qualidade aceitável, diversas pesquisas estão sendo realizadas
neste contexto, onde o processo de segmentação pode ser considerado simples,
quando a placa contém os caracteres bem definidos (não apresentando ruído e
muito
menos
contato
entre
eles),
ou
complexo
nos
demais
casos
(ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008).
Nas seções a seguir serão descritos alguns dos métodos presentes na
literatura para a realização da segmentação de caracteres.
4.1
MÉTODO DAS PROJEÇÕES
O método das projeções foi inicialmente proposto por (LU, 1995) e foi
denominado de peak-to-valley. É o método mais comum e também o mais simples
de ser implementado, onde sua aplicação pode ser verificada em (RAHMAN,
BADAWY e RADMANESH, 2003), (WU, ON, et al., 2005), (BELLAS, CHAI, et al.,
2006) e (TRENTINI, GODOY e MARANA, 2010). Em virtude de sua ampla aplicação
15
na literatura, o método das projeções foi adotado no desenvolvimento deste
trabalho.
O método consiste na realização de uma varredura em cada coluna da
imagem da placa binarizada, realizando a contagem dos pixels pretos na referida
coluna, que indicam a presença de um possível caractere, obtendo assim um vetor
(projeção), onde os valores mínimos indicam a presença de um vale, ou seja, o
espaçamento entre caracteres que permite a segmentação de forma automática.
Na Figura 4.1, pode-se visualizar a imagem de entrada da etapa de
segmentação e o seu respectivo gráfico de projeções verticais.
20
Quantidade de pixels pretos
18
16
14
12
10
8
6
4
2
0
0
20
40
60
80
100
120
140
160
180
200
Colunas
Figura 4.1: Imagem da placa e sua respectiva projeção vertical.
Como já mencionado, a partir da Figura 4.1, pode-se perceber que os
caracteres são representados pelos picos e o fundo da placa pelos vales.
É importante ressaltar que mesmo em casos onde ocorra a união de dois
caracteres por poucos pixels, devido à binarização ou etapas de pré-processamento,
serão considerados caracteres separados, pois ainda assim será um vale.
16
4.2
MÉTODO DE ANÁLISE DE COMPONENTES CONECTADOS
Este método é muito utilizado na literatura, sendo também muito simples de
ser entendido. Algumas abordagens podem sofrer pequenas modificações, mas a
ideia básica é analisar a conectividade entre os pixels que formam o caractere. O
algoritmo do método percorre toda a imagem da placa, verificando a vizinhança de
cada pixel. Assim, é possível saber quais pixels compõem cada objeto
(ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008)
Este método consiste em atribuir um rótulo (label ou índice) aos pixels
conectados que formam um objeto de uma imagem binarizada. Um exemplo do
funcionamento desta técnica é mostrado a seguir:
1. O algoritmo realiza uma varredura na placa à procura de um pixel que
representa o objeto (pixel preto) e o rotula-o com um índice qualquer
entre 1 e 254, pois o valor 0 indica um pixel preto e o valor 255 indica um
pixel branco.
2. Todos os pixels conectados utilizando vizinhança-4 ou vizinhança-8
(Figura 4.2) também são rotulados com o índice
até que não haja mais
conectividade a ser analisada.
3. Incrementar o índice , realizar uma nova varredura na imagem à procura
de outro pixel preto e rotulá-lo com o este novo índice.
4. Repetir os passos 2 e 3 até que toda a imagem tenha sido analisada.
Figura 4.2: (a) Vizinhança-4 e (b) Vizinhança-8
Como resultado das etapas descritas anteriormente, têm-se todos os objetos
analisados rotulados. Os objetos que não se enquadrarem com características pré-
17
definidas como altura, largura, relação entre largura e altura (aspect ratio) ou área
devem ser descartados.
Em (CONCI e MONTEIRO, 2004), a rotulação é realizada dentro de limites
superiores e inferiores estimados a partir de um algoritmo, dificultando assim a
rotulação de possíveis ruídos. A Figura 4.3 exemplifica o resultado da rotulação dos
pixels onde cada objeto representado por uma cor diferente.
Figura 4.3: Pixels rotulados com cores diferentes.
Em (GUINGO, STIELBER, et al., 2004), é descrito todo o sistema de
reconhecimento de caracteres de placas de automóveis, onde a etapa de
segmentação de caracteres também é realizada com base na detecção de
componentes conectados. Um detalhe mencionado na proposta é que se o pixel
corrente possuir dois ou mais vizinhos pertencentes a diferentes grupos conexos,
estes grupos poderão ser unificados caso atendam uma restrição de largura. Este
procedimento faz com que pequenas falhas nos caracteres não sejam levadas em
consideração.
Em (KHALIFA, KHAN, et al., 2006), um sistema completo de reconhecimento
de placas de automóveis também é descrito, onde o método de análise de
componentes conectados é o único que garante sucesso no processo, uma vez que
as placas de automóveis da Malásia não possuem uma quantidade fixa de
caracteres e também podem apresentar caracteres escritos em duas linhas,
conforme é mostrado na Figura 4.4.
18
Figura 4.4: Exemplo de placa de automóveis da Malásia
19
5
RECONHECIMENTO DE PADRÕES
Segundo (HAYKIN, 2001), reconhecimento de padrões é um processo pelo
qual um padrão/sinal recebido é atribuído a uma classe dentre um número
predeterminado de classes.
Problemas de reconhecimento de padrões consistem em uma tarefa de
classificação de padrões de entrada, onde as classes são definidas pelo projetista
do sistema (classificação supervisionada) ou são “aprendidas” de acordo com a
similaridade dos padrões (classificação não supervisionada) (BIANCHI, 2006).
Um padrão pode ser definido como um conjunto de características que
possibilitam o agrupamento de objetos semelhantes em uma determinada classe. Já
as classes são os conjuntos formados pelos padrões semelhantes. No caso de
reconhecimento de caracteres, um padrão é constituído por características que
formam cada caractere. E as classes são os caracteres formados por padrões
semelhantes.
Portanto, um sistema automático de reconhecimento de padrões tem por
objetivo extrair características (informações) dos objetos a serem reconhecidos,
analisar as características extraídas e classificar estes objetos de acordo com a
análise das informações extraídas (CAVALCANTI, 2000).
Neste
trabalho,
o
reconhecimento
de
padrões
por
classificação
supervisionada foi aplicado para identificar os caracteres já segmentados da placa,
onde cada classe pré-definida representa um caractere segmentado (letra ou
número).
Em aplicações de reconhecimento de caracteres de automóveis, a fase de
classificação constitui o último processo do sistema. Esta fase consiste em identificar
cada caractere proveniente da etapa de segmentação, ou seja, as características
extraídas são analisadas para que o caractere em questão possa ser associado a
uma única classe.
20
A próxima seção fornece definições e algumas técnicas de extração de
características importantes para o entendimento do conceito de reconhecimento de
padrões.
5.1
EXTRAÇÃO DE CARACTERÍSTICAS
Em reconhecimento de padrões, o processo de extração de características é
uma forma especial de redução dimensional, pois transforma o espaço do padrão
em um espaço de características que é de dimensão muito menor comparado com o
espaço de dados original, retendo informações importantes acerca do objeto
analisado (SOUZA, 1999).
Extração de características pode ser definida como sendo a captura das
informações mais relevantes de um objeto com o objetivo de classificá-lo. Este
processo é realizado quando os dados de entrada de um sistema são muito grandes
para serem processados. Esse conjunto reduzido de características também é
chamado de vetor de características (HAYKIN, 2001).
Ao longo deste trabalho, serão descritas propostas para reconhecimento de
caracteres que utilizam algumas das técnicas de extração de características
disponíveis na literatura, como:

Mapa de bits: é uma matriz que utiliza todos os pixels da imagem
analisada. Esta matriz pode ser visualizada na Figura 5.1.
Figura 5.1: Exemplo da matriz de mapa de bits do caractere “2” (GUINGO, 2003)

Projeção horizontal: é a quantidade de pixels pretos em cada linha da
imagem analisada;
21

Projeção vertical: é a quantidade de pixels pretos em cada coluna da
imagem analisada.
Diversas técnicas de reconhecimento e classificação de caracteres, que
aplicam as técnicas de extração de características descritas anteriormente, estão
descritas na literatura, dentre as quais se destacam: o Template Matching e as
RNAs – (Redes Neurais Articiais). Essas técnicas e algumas propostas onde são
aplicadas serão analisadas neste trabalho.
5.2
TEMPLATE MATCHING
Segundo (BRUNELLI, 2009), Template Matching é uma técnica em
processamento de imagens digitais para encontrar pequenas partes de uma imagem
que corresponda com uma imagem modelo.
Esta técnica é aplicada em processos industriais, como parte do controle de
qualidade, em navegação de robôs móveis ou na detecção de bordas de imagens.
Ela pode ser dividida em duas abordagens. A primeira é baseada em características
das imagens a serem analisadas, como bordas e estrutura. A segunda tem como
base o modelo completo, onde a imagem modelo é movida para todas as posições
possíveis na imagem de entrada, analisando, pixel a pixel uma métrica que indica o
grau de semelhança entre a imagem analisada e a imagem modelo (SANTOS,
2011).
Em (COMELLI, FERRAGINA, et al., 1995), a correlação cruzada (crosscorrelation) foi aplicada para medir o grau de semelhança entre caracteres obtidos e
os modelos previamente determinados, uma vez que, normalmente não são iguais.
As placas de automóveis analisadas possuem uma sequencia de duas letras
seguidas de quatro números. No total, foram utilizadas 31 imagens modelos, 10 para
números e 21 para letras, as quais representam os modelos de placas de
automóveis italianos. A taxa de sucesso na etapa de reconhecimento relatada foi de
91.07%.
Em (POLIDÓRIO e BORGES, 1997), este método é adotado no processo de
reconhecimento de caracteres de placas de automóveis. Uma comparação entre
padrões de entrada e padrões já predeterminados é realizada. Nesta proposta, as
características utilizadas são baseadas na morfologia dos caracteres, criando assim,
22
regras sintáticas que descrevem o relacionamento espacial entre cada nó. Desta
forma, cada caractere analisado terá uma sentença associada a ele, e a
comparação entre a sentença obtida e as sentenças previamente determinadas
define qual é o caractere.
A proposta define atributos referentes aos nós que compõem os caracteres:

(a) final de linha;

(b) um encontro entre duas linhas;

(c) mudança suave de direção em 90º;

(d) mudança brusca de direção em 90º;

(e) cruzamento entre duas linhas.
A Figura 5.2 exemplifica os atributos citados e fornece um caractere
analisado. O trabalho relata uma taxa de acerto de 91.00%.
(a)
(b)
(c)
(d)
d
b
d
(e)
a
a
a
Figura 5.2: Atributos e um exemplo de análise dos nós da letra “E” propostos por
(POLIDÓRIO e BORGES, 1997).
A principal vantagem do uso de modelos sintáticos é que somente uma
amostra de cada caractere é necessária para a extração das características.
Em (BELVISI, FREITAS, et al., 1999), o reconhecimento de caracteres é
realizado através da comparação entre as projeções horizontais e verticais de cada
23
caractere e projeções previamente definidas. O uso das duas projeções elimina
ambiguidades, pois, por exemplo, as letras “N”, “H” e “U” e os números “6” e “9”
possuem projeções verticais semelhantes. Uma observação interessante é o fato da
não necessidade de normalizar os caracteres após a etapa de segmentação, pois o
padrão é guardado percentualmente de acordo com suas dimensões. O critério de
igualdade utilizado na comparação foi um limite máximo percentual de pontos
diferentes, limite este não mencionado no trabalho.
Em (WU, ON, et al., 2005) o método do Template Matching também é
utilizado. Nesta abordagem, levando em consideração as características das placas
analisadas, o processo de reconhecimento foi dividido em duas seções. Um primeiro
conjunto de padrões de letras já conhecidas é utilizado para reconhecer os primeiros
dois caracteres e, posteriormente, um segundo conjunto de padrões de números é
utilizado para reconhecer o restante dos caracteres, evitando assim possíveis
ambiguidades entre letras e números, por exemplo, “O” e “0”. A taxa de sucesso
durante a fase de reconhecimento é de 82,30%.
Na proposta de (OZBAY e ERCELEBI, 2007), onde também foi utilizada a
função de correlação cruzada, os caracteres depois de segmentados, são ajustados
para 36 x 18 pixels com o intuito de padronizar as dimensões a serem comparadas
com os caracteres modelos (Figura 5.3). O ajuste nas dimensões dos caracteres
após a segmentação se faz necessário para que esta técnica de reconhecimento
funcione corretamente, uma vez que a proposta foi baseada no modelo geral. O
sistema utiliza 33 caracteres alfanuméricos, sendo 23 letras e 10 números para
reconhecer caracteres de placas turcas.
O trabalho relata alguns erros entre
caracteres cuja similaridade é maior, como “B” e “8”, no entanto a taxa de acerto
relatada foi de 98.80%.
24
Figura 5.3: (a) Caracteres segmentados, (b) Caracteres ajustados e (c) Caracteres modelos
(OZBAY e ERCELEBI, 2007)
É importante salientar que para utilizar o método Template Matching no
reconhecimento de caracteres, as etapas que antecedem este ponto devem ser
realizadas com o máximo rigor em questão de qualidade, pois caracteres com ruídos
e/ou mal segmentados gerarão erros, uma vez que são utilizados poucos padrões.
Também se deve atentar ao tipo de fonte empregado no processo, pois em alguns
casos, as diferenças entre determinadas fontes são significativas.
5.3
REDES NEURAIS ARTIFICIAIS (RNA)
Segundo (HAYKIN, 2001), uma RNA é um processador maciçamente
paralelamente distribuído constituído de unidades de processamento simples, que
têm a propensão natural para armazenar conhecimento experimental e torná-lo
disponível para o uso (generalização). Entende-se como generalização a
capacidade da rede neural produzir saídas adequadas para entradas que não
participaram da fase de treinamento (aprendizagem). Este conceito é extremamente
importante para o entendimento do funcionamento das RNAs.
25
As RNAs se assemelham ao cérebro em dois aspectos:
1. O conhecimento é adquirido pela rede a partir de seu ambiente através de
um processo de aprendizagem;
2. Forças de conexão entre neurônios, conhecidos como pesos sinápticos,
são utilizadas para armazenar o conhecimento adquirido.
As RNAs são formadas por neurônios artificiais. Estes neurônios são as
unidades de processamento de informação em uma rede neural. Um exemplo de um
neurônio artificial é visualizado na Figura 5.4.
Figura 5.4: Modelo não linear de um neurônio artificial (HAYKIN, 2001).
Segundo (HAYKIN, 2001), os neurônios artificiais são distribuídos em
camadas:

Camada de entrada: Os padrões são apresentados aos neurônios de
entrada;

Camadas escondidas: Onde é realizado processamento dos dados;

Camada de saída: Onde o resultado é finalizado e apresentado.
A Figura 5.5 apresenta um modelo de RNA.
26
Figura 5.5: Modelo de RNA do tipo MLP (Multi-Layer Perceptron).
Como as RNAs apresentam entre suas características a não-lineraridade e o
mapeamento entrada-saída, elas possuem ampla aplicabilidade em problemas que
envolvem reconhecimento e classificação de padrões (HAYKIN, 2001). Por este
motivo este trabalho possui um foco maior em RNAs.
No ponto de vista do reconhecimento e classificação do tipo supervisionada
de caracteres, a aprendizagem é realizada através do mapeamento entrada-saída,
onde cada exemplo de caractere apresentada a rede consiste de uma entrada única
(representativa) e de uma resposta desejada. Os critérios de parada podem ser a
quantidade de épocas (iterações) ou o alcance de um erro mínimo. Com o término
da fase de treinamento, exemplos que não estavam presentes nesta fase são
utilizados para verificar a habilidade de generalização da rede neural em condições
reais de utilização.
Diversos trabalhos que aplicam as RNAs para o reconhecimento e
classificação de caracteres estão disponíveis na literatura e alguns deles serão
descritos neste trabalho.
Em (SOUZA, 2000), o reconhecimento dos caracteres é realizado através de
duas redes MLPs, uma para letras e outra para números, levando em consideração
a sintaxe das placas de automóveis brasileiros. Os caracteres segmentados são
redimensionados para a dimensão 15 x 15 pixels, constituindo matrizes de entrada
das respectivas redes. O critério de parada do algoritmo error back-propagation foi a
convergência para um erro quadrático médio menor que 0.005. A taxa de sucesso
27
do classificador foi de 37.5% e em virtude deste resultado, o autor relata que um
estudo mais profundo deve ser realizado. As configurações das RNAs projetadas no
trabalho podem ser visualizadas na Tabela 5.1.
Tabela 5.1: Configuração das RNAs de (SOUZA, 2000)
Quantidade de neurônios na
RNA dedicada as letras
Quantidade de neurônios na
RNA dedicada aos números
Neurônios na camada de
entrada
255
255
Neurônios na camada
escondida
26
10
Neurônios na camada de
saída
26
10
Tipos de neurônios
Em (WEI, LI, et al., 2001), o reconhecimento dos caracteres de placas
chinesas é realizado através de quatro RNAs do tipo MLP, sendo a última RNA o
ponto de interesse para este trabalho. Esta RNA utiliza uma adaptação do backpropagation como algoritmo de treinamento. Os caracteres são normalizados para 8
x 16 pixels cujas características extraídas de cada caractere foram baseadas no
mapa de bits (8x16 pixels). A configuração da MLP foi a tradicional para problemas
de classificação (três camadas) e seus parâmetros são descritos na Tabela 5.2. A
taxa de sucesso no reconhecimento relatada no trabalho foi de 95.00%.
Tabela 5.2: Configuração da RNA de (WEI, LI, et al., 2001)
Tipos de neurônios
Quantidade de neurônios
Neurônios na camada de entrada
108
Neurônios na camada escondida
20-50
Neurônios na camada de saída
35
Em (GUINGO, 2003), o reconhecimento de caracteres também foi realizado
através de RNAs do tipo MLP. Duas configurações foram empregadas, uma para
28
letras e outra para números, em três conjuntos de dados distintos estudados na
proposta. Os valores de entradas foram normalizadas para o intervalo entre 0 e 1.
No conjunto de dados que apresentou o melhor desempenho, a arquitetura
destinada ao reconhecimento das letras é constituída por quatro MLPs, backpropagation como algoritmo de treinamento e diferentes métodos de extração de
características, como projeções verticais e horizontais, mapas de bits (16x16 pixels)
e projeção poligonal (RODRIGUES, 2003). Já a configuração destinada ao
reconhecimento dos números, possui duas MLPs, uma para reconhecimento dos
números “0” e “8” com características extraídas a partir de mapa de bits (16 x16
pixels), e outra para os demais números com características extraídas a partir da
projeção poligonal. A taxa de sucesso no reconhecimento da placa descrita no
trabalho foi de 67.00%.
Em (KHALIFA, KHAN, et al., 2006), uma RNA do tipo MLP é utilizada para
realizar o reconhecimento de caracteres, já redimensionados para 20x10 pixels, com
o algoritmo de treinamento error back-propagation. A função de ativação na camada
escondida utilizada foi a logística sigmoidal. A taxa de sucesso no reconhecimento
dos caracteres chega a 93.2%. A configuração da rede é descrita na Tabela 5.3,
onde se percebe que cada neurônio de saída corresponde a um caractere.
Tabela 5.3: Configuração da RNA de (KHALIFA, KHAN, et al., 2006)
Tipos de neurônios
Quantidade de neurônios
Neurônios na camada de entrada
135
Neurônios na camada escondida
40
Neurônios na camada de saída
36
Em (ZHANG e WANG, 2012), também é reportado um reconhecimento de
caracteres de placas chinesas. Levando em consideração a sintaxe das placas, são
reportados três RNAs do tipo MLP com algoritmo de treinamento back-propagation.
A primeira RNA é destinada ao reconhecimento de caracteres chineses, a segunda
RNA é destinada ao reconhecimento de letras maiúsculas (exceto a letra I) e a
terceira RNA é destinada ao reconhecimento dos números. Os caracteres são
normalizados para 4 x 4 pixels e as características extraídas de cada caractere são
29
baseadas em mapa de bits. A configuração de cada RNA é descrita na Tabela 5.4. O
critério de parada do foi o erro de 0.001 e a taxas de reconhecimento relatada no
trabalho para caracteres chineses foi de 91.2% e para letras e números foi de
94.00%.
Tabela 5.4: Configuração das RNAs de (ZHANG e WANG, 2012).
Quantidade de
Quantidade de
Quantidade de
neurônios da
neurônios da
neurônios da
primeira RNA
segunda RNA
terceira RNA
Neurônios na
camada de
entrada
16
16
16
Neurônios na
camada escondida
18
16
15
Neurônios na
camada de saída
51
25
10
Tipos de neurônios
Os trabalhos descritos neste capítulo estão organizados na Tabela 5.5:
30
Tabela 5.5: Organização dos trabalhos citados no Capítulo 5.
Autores
Métodos de
classificação
Técnica de Extração de
Características
Taxas de Acerto
(COMELLI,
FERRAGINA,
et al., 1995)
Template Matching
(correlação cruzada)
-
91.07%
(POLIDÓRIO
e BORGES,
1997)
Template Matching
Morfologia dos caracteres
(regras sintáticas)
91.00%
(BELVISI,
FREITAS, et
al., 1999)
Template Matching
Projeções verticais e
horizontais.
-
(SOUZA,
2000)
RNA (MLP)
Mapa de bits
37.50%
(WEI, LI, et
al., 2001)
RNA (MLP)
Mapa de bits
95.00%
(GUINGO,
2003)
RNA (MLP)
Projeções verticais e
horizontais, Projeções
poligonais e Mapa de bits.
67.00%
(WU, ON, et
al., 2005)
Template Matching
-
82.30%
(KHALIFA,
KHAN, et al.,
2006)
RNA (MLP)
Mapa de bits
93.20%
(OZBAY e
ERCELEBI,
2007)
Template Matching
(correlação cruzada)
-
98.80%
(DAMBROS,
2008)
Template Matching
Mapa de bits, quantidade de
objetos e projeções verticais.
80.72% para letras e
88.06% para números
(ZHANG e
WANG,
2012)
RNA (MLP)
Mapa de bits
91.00% para caracteres
chineses e 94.00% para
letras e números
31
6
PROTÓTIPO DESENVOLVIDO
O protótipo foi desenvolvido na linguagem de programação C++ utilizando a
biblioteca
OpenCV
(Open
Source
Computer
Vision
Library)1,
onde
suas
funcionalidades são abordadas em (BRADSKI e KAEHLER, 2008). O protótipo é
dividido em três módulos:
1. O primeiro módulo é constituído por técnicas que realizam localização e
extração da placa, gerando a principal imagem de interesse para os
processos posteriores.
2. O segundo módulo consiste no processo de segmentação dos caracteres
da imagem gerada do processo anterior.
3. Por último, o terceiro módulo é responsável por realizar a extração de
características dos caracteres segmentados na etapa anterior e o
reconhecimento e classificação dos mesmos a fim de identificar a placa
do automóvel em questão.
As seções a seguir explicam cada módulo do protótipo desenvolvido.
6.1
LOCALIZAÇÃO E EXTRAÇÃO DA PLACA
As imagens utilizadas neste trabalho foram adquiridas do banco de imagens
disponibilizado pelo Centro Brasileiro de Pesquisas Físicas (CBPF, 2005) e também
nas ruas do município de Belém. Exemplos das imagens que compõem o banco de
dados do trabalho podem ser visualizados na Figura 6.1
1
http://sourceforge.net/projects/opencvlibrary. Último acesso em novembro de 2012
32
Figura 6.1: (a) Exemplo de imagem disponibilizado em (CBPF, 2005) e (b) Exemplo de
imagem nas ruas do município de Belém.
Devido às imagens de (CBPF, 2005) possuírem a dimensão de 240 x 640
pixels, todas as imagens de entrada do sistema são redimensionadas para esta
dimensão para que haja padronização das dimensões de cada imagem.
Com as imagens já redimensionadas, o passo seguinte consiste em converter
as imagens de entrada, que podem ou não estar no padrão RGB, para imagens em
escala de cinza. Esse procedimento é realizado através da Equação 2.1, descrita na
seção 2.3. Na biblioteca OpenCV, essa conversão é realizada através da função:
cvCvtColor(imagem_entrada,imagem_cinza,CV_BGR2GRAY):
Onde:

A variável imagem_entrada representa a imagem em padrão RGB de
entrada do sistema;
33

A variável imagem_cinza representa a imagem em escala de cinza
resultante da conversão baseada na Equação 2.1

A diretiva CV_BGR2GRAY indica o tipo de conversão a ser realizado.
O resultado da conversão da Figura 6.1(b) (padrão RGB) para imagem em
escala de cinza é visualizada na Figura 6.2.
Figura 6.2: Imagem em escala de cinza
O próximo passo é a binarização da imagem em escala de cinza, ou seja,
será gerada uma imagem que possui somente valores 0 ou 255.
Durante a implementação do protótipo, a priori o valor do limiar foi
estabelecido por tentativa-e-erro, contudo, não ocorreu uma uniformidade na
visualização das placas para todas as imagens analisadas e, portanto optou-se pela
utilização do o algoritmo de Otsu, em virtude da sua ampla utilização na literatura.
Na biblioteca OpenCV, a binarização é realizada através da função:
cvThreshold(imagem_cinza,imagem_binaria,limiar,valor_max, CV_THRESH_BINARY )
Onde:

A variável imagem_cinza representa a imagem em escala em cinza
gerada na etapa anterior;

A variável imagem_binaria representa a imagem resultante da
binarização;

A variável limiar representa o valor de limiar para a binarização;
34

A variável valor_max representa o valor máximo que um pixel pode
assumir. Neste trabalho, este valor é igual a 255;

A
diretiva
realizada.
CV_THRESH_BINARY representa
Quando
essa
diretiva
é
o
tipo
substituída
de
binarização
pela
diretiva
CV_THRESH_OTSU, o algoritmo de Otsu é aplicado fornecendo um limiar
automático de acordo com cada imagem analisada. Este novo limiar
retornado é utilizado no lugar do limiar especificado anteriormente.
Na Figura 6.3, pode ser visualizado o resultado da binarização pelo algoritmo
de Otsu das Figuras 6.1(a) e 6.2, respectivamente.
Figura 6.3: (a) Binarização da Figura 6.1(a); (b) Binarização da Figura 6.2
35
A busca pela região da imagem que contém a placa é realizada através do
Método baseado em Variação Tonal. Como descrito na seção 3.3, a placa de
automóveis possui grandes variações entre os caracteres e o fundo da placa
(background), constituindo assim a principal característica de busca deste método.
A Figura 6.4 sintetiza a utilização do Método baseado em Variação Tonal na
Figura 6.3(a).
Linha A
300
250
200
150
Linha A
100
50
0
Linha B
0
300
100
200
300
400
500
600
700
Linha B
Valor de cada pixel na linha B
250
200
150
100
50
0
100
200
300
400
500
600
Colunas
Figura 6.4: Comparação entre uma linha qualquer A e a linha B (linha de maior variação
tonal) da Figura 6.3.
A partir da Figura 6.4, percebe-se que a linha B (linha de maior variação tonal)
apresenta uma região onde ocorrem picos máximos e mínimos consecutivos. Esta
alternância entre valores dos pixels, com espaçamentos comuns, constituem o fundo
e os caracteres placa.
A partir da determinação da linha de maior variação tonal, o próximo passo é
descobrir a altura dos caracteres. Para tal tarefa, análises em cada linha acima e
abaixo da linha em questão são realizadas com o objetivo de identificar o limite
superior e o limite inferior dos caracteres presentes na placa. Os limites são
selecionados quando ocorre a primeira redução significativa da quantidade de
alternâncias entre pixels em cada linha analisada. Essa redução é estipulada
empiricamente como sendo 30% da quantidade de alternâncias observada na linha
de maior variação tonal. Ou seja, quando as primeiras linhas superiores e inferiores
à linha de maior variação tonal apresentarem quantidade de alternâncias entre pixels
igual ou inferior a 30% da quantidade de alternâncias observada na linha de maior
36
variação tonal, serão definidas como limite superior e inferior dos caracteres,
respectivamente. Esta abordagem é visualizada na Figura 6.5 a seguir:
Linha 1
Linha B
Linha 2
Figura 6.5: Limites superiores e inferiores dos caracteres
Onde:
 A linha B constitui a linha de maior variação tonal com projeção horizontal
igual a 22;
 A linha 1 constitui o limite superior dos caracteres com projeção horizontal
igual a 2;
 A linha 2 constitui o limite inferior dos caracteres com projeção horizontal
igual a 4;
Exemplos de imagens resultantes desse processo podem ser visualizados na
Figura 6.6.
37
Figura 6.6: Exemplos de regiões de placas com limites superior e inferior delimitados
A partir deste ponto, é necessário delimitar a largura da placa. Para concluir
este objetivo, uma janela percorre a imagem, que já está na forma dos exemplos
mostrados na Figura 6.6, para localizar a área que possui maior variação entre
pixels. Com isso, tem-se a imagem final (Figura 6.7) do processo de localização e
extração da placa que será processada nas etapas posteriores que compõem um
sistema completo de reconhecimento de placas de automóveis.
Figura 6.7: Localização e extração da placa.
38
6.2
SEGMENTAÇÃO DOS CARACTERES
A etapa de segmentação de caracteres consiste em isolar cada um dos sete
caracteres em imagens distintas para que possam ser reconhecidos na etapa a
seguir. Neste trabalho, o processo de segmentação foi realizado pelo o método de
projeções verticais descrito na seção 4.1.
Tem-se como entrada do módulo de segmentação a imagem da placa
binarizada (Figura 6.7). Posteriormente, ocorre a varredura coluna a coluna a
procura de vales que representam o espaçamento entre os caracteres. O resultado
da utilização do método das projeções verticais é a imagem da placa com caracteres
devidamente separados (Figura 6.8).
Quantidade de pixels pretos
25
20
15
10
5
0
20
40
60
80
100
Colunas
120
140
160
180
200
Figura 6.8: Placa de automóvel com caracteres segmentados e as projeções de cada
caractere
Na Figura 6.8, verifica-se que o traço que separa as letras e os números é
descartado do processo de segmentação. Isso ocorre porque ele não se enquadra
nas dimensões dos demais caracteres, constituindo assim um vale.
O próximo capítulo trata do reconhecimento dos caracteres já segmentados.
39
6.3
RECONHECIMENTO DOS CARACTERES
6.3.1 Extração de Características
Este passo consiste na extração de características de cada caractere,
respeitando as dimensões já delimitadas na etapa de segmentação. Desta forma,
cada caractere é ajustado para uma janela de dimensão 10x10 pixels para que suas
características sejam extraídas.
O
processo de extração
de
características de
cada
caractere,
já
redimensionados para uma janela 10x10 pixels, utiliza as projeções horizontais e
verticais, constituindo assim um vetor de características de 20 posições para cada
caractere. As dez primeiras posições do vetor são as projeções horizontais e as dez
posições restantes são projeções verticais. Os valores que cada posição do vetor
pode assumir variam entre 0 a 10, entretanto são normalizados para o intervalo [0,1].
Por exemplo, o valor 0.1 indica a presença de um pixel preto, o valor de 0.2 indica a
presença de dois pixels pretos e assim por diante. Estes vetores de características
constituem entradas do módulo de reconhecimento.
A Tabela 6.1 apresenta os vetores de características dos caracteres
segmentados da Figura 6.8.
Tabela 6.1: Caracteres segmentados e seus respectivos vetores de características
Caracteres
Segmentados
Vetor de Características
[0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.3 1.0 0.9 0.9 1.0 0.3 0.2 0.2 0.2 0.2 0.2 0.2 0.2]
[0.5 0.6 0.5 0.7 0.7 0.7 0.6 0.4 0.4 0.3 0.9 0.9 0.4 0.3 0.2 0.3 0.3 0.3 0.8 1.0]
[1.0 0.5 0.2 0.2 0.2 0.3 0.3 0.3 0.4 1.0 0.3 0.4 0.5 0.6 0.4 0.5 0.5 0.5 0.4 0.3]
[1.0 0.6 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.4 0.3 0.4 0.5 0.5 0.4 0.4 0.4 0.5 0.4 0.3]
[0.3 0.4 0.3 0.3 0.4 0.8 0.8 0.5 0.6 0.8 0.3 0.5 0.5 0.4 0.4 0.5 0.7 0.7 0.7 0.5]
[1.0 1.0 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.4 0.5 0.5 0.5 0.5 0.5 0.5 0.4 0.3]
[1.0 1.0 0.2 0.7 0.9 0.2 0.2 0.4 0.7 0.8 0.7 0.8 0.6 0.6 0.5 0.5 0.5 0.5 0.8 0.6]
40
O módulo de reconhecimento dos caracteres consiste na última etapa do
sistema de reconhecimento de placas de automóveis. Os vetores de características
de cada caractere extraído na etapa anterior constituem as entradas deste módulo.
Dentre as técnicas de reconhecimento e classificação de padrões descritas na
literatura, o algoritmo ELM (Extreme Learning Machine) (HUANG, ZHU e SIEW,
2006) foi selecionado para o desenvolvimento deste trabalho.
A seção a seguir descreve o algoritmo ELM e suas características.
6.3.2 ELM – Extreme Learning Machine
O ELM é um algoritmo de aprendizagem simples e rápido para RNAs com
apenas uma camada escondida (SLFN - Single-hidden Layer Feedforward Neural
Network). Contudo, esta restrição não é relevante, uma vez que SLFNs podem
aproximar qualquer função contínua e portanto têm o potencial de solucionar
problemas de classificação (HUANG, ZHU e SIEW, 2006). Os autores provam que
os pesos da camada de entrada e os limiares (bias) da camada escondida de redes
SLFNs podem ser determinados de forma aleatória quando a função de ativação na
camada escondida for infinitamente diferenciável. Desta forma, a solução dos pesos
na camada de saída envolve a solução de um sistema linear e assim podem ser
determinados analiticamente.
A modelagem matemática do ELM é descrita da seguinte forma:
Para
amostras de treinamento
vetor de entradas e
, onde
é um
é um vetor de saídas desejadas, tem-
se a SLFN:
Onde:

: é o vetor de pesos que conecta o
-ésimo
neurônio na camada escondida com neurônios da camada de entrada;

: é o vetor de pesos que conecta o -ésimo neurônio
da camada escondida com os neurônios da camada de saída;

: é a bias do -ésimo neurônio da camada escondida;
41

: é a quantidade de neurônios na camada escondida;

: é a função de ativação da camada escondida;

: é a saída atual da rede em resposta à entrada
Para que a saída atual da rede
que haja valores para
,
e
.
seja igual à saída desejada
, é necessário
que satisfaçam a Equação 6.2:
A Equação 6.2 pode ser descrita como:
Onde:
e
.
(6.5)
Assim, de acordo com (HUANG, ZHU e SIEW, 2006), a solução da Equação
6.3 pode ser descrita como:
,
(6.6)
Onde:

: é a matriz inversa generalizada de Moore-Penrose da
matriz
, também denominada de pseudo-inversa de uma ELM.
Dado o conjunto de treinamento
função de ativação
,
e número de neurônios na camada escondida , o algoritmo
ELM para treinamento de uma SLFN é composto pelos seguintes passos:
1. Primeiro passo: Geração aleatória dos pesos da camada de entrada
bias
,
;
2. Segundo passo: Cálculo da matriz de saída da camada escondida
.
e
42
3. Terceiro passo: Cálculo dos pesos da camada de saída
, onde
.
Neste trabalho, a implementação do algoritmo ELM foi realizada na linguagem
de programação C++ utilizando a biblioteca OpenCV e foi baseada no algoritmo
implementado em Matlab (MATrix LABoratory) disponível em (HUANG, 2012). Vale
ressaltar que a solução da Equação 6.6 é avaliada com auxílio da Decomposição
por Valores Singulares (SVD - Singular Value Decomposition).
Duas RNAs foram desenvolvidas no projeto, uma para reconhecimento de
letras e outra para o reconhecimento dos números. Esta abordagem faz-se
necessária devido aos grandes problemas de confusão entre letras e números
relatados na literatura, em virtude dos formatos semelhantes.
No Brasil, o Contran (CONTRAN- Conselho Nacional de Trânsito, 2007)
estipula o tipo de fonte e as dimensões dos caracteres e das placas de automóveis
licenciados no território brasileiro. O tipo de fonte utilizado atualmente nas placas é
evidenciado na Figura 6.9, onde se verifica a semelhança entre alguns caracteres, o
que pode gerar confusões durante o processo de reconhecimento.
Figura 6.9: Modelo de caracteres na fonte Mandatory estipulado pelo Contran.
A Figura 6.10 fornece uma imagem de uma placa de automóvel seguindo o
modelo estipulado pelo Contran e observa-se que existe similaridade entre a letra
“O” e o número “0” e também entre a letra “I” e o número “1”. Portanto, se o
reconhecimento fosse realizado por uma única RNA, o resultado provavelmente
seria mais sujeito a erros.
43
Figura 6.10: Placa nos moldes do CONTRAN.
Desta forma, de acordo com o formato das placas de automóveis no Brasil, os
três primeiros caracteres serão reconhecidos pela RNA dedicada as letras e os
quatro caracteres restantes serão reconhecidos pela RNA dedicada aos números. A
Figura 6.11 fornece o esquema de classificação dos caracteres utilizado neste
trabalho.
Figura 6.11: Esquema utilizado na classificação dos caracteres
44
7
TESTES E RESULTADOS
Para o desenvolvimento do módulo de reconhecimento, uma base de
imagens de caracteres foi projetada com o intuito de formar o conjunto de
treinamento e teste da rede. No total de aproximadamente 100 imagens de placas
de automóveis, tem-se 245 padrões de letras e 240 padrões de números
representativos para o reconhecimento dos caracteres.
Durante a implementação do módulo de reconhecimento duas questões foram
levantadas:

Quantidade de neurônios na camada escondida;

Quantidade de dados destinados para a fase de treinamento e teste;
Em (HUANG, ZHU e SIEW, 2006), é provado que SLFNs com
camada escondida podem aprender exatamente
neurônios na
padrões distintos, para qualquer
função de ativação infinitamente diferenciável. Portanto simulaçoes foram realizadas
variando a quantidade de neurônios na camada escondida para descobrir se as
RNAs projetadas obtinham sucesso no reconhecimento com um valor menor que a
quantidade de padrões de treinamento.
A segunda questão levantada poderia ser respondida pela adoção da
proposta em (GUINGO, 2003) que indica 80% das amostras para treinamento e 20%
do restante para teste. Contudo, simulações também foram realizadas variando a
porcentagem de distribuição dos padrões disponíveis entre os conjuntos de
treinamento e teste.
7.1
CLASSIFICAÇÃO DOS NÚMEROS
O algoritmo das simulações da RNA dedicada aos números é descrito a
seguir:
45
1. for neurônio_escondidos
2.
5 de 5 a 250
for porcentagem
0.1 a 0.9 //
porcentagem de cada classe
destinada ao treinamento
3.
for iteração
1 a 100
4.
Geração aleatório do conjunto de treino e teste
5.
Calcular taxa de reconhecimento da iteração
6.
end for
7.
Calcular a média das taxas de reconhecimento das 100 iterações
para cada porcentagem e para cada o valor de neurônio_escondido
8.
end for
9. end for
Como pode ser visto no algoritmo descrito, a variação da quantidade de
neurônios na camada escondida variou de 5 em 5 até 250. A variação da
porcentagem de distribuição dos padrões de cada classe destinados à fase de
treinamento foi de 10% a 90%. Ao final de cada iteração tem-se um valor da taxa de
acerto e após 100 iterações calcula-se a média das taxas para cada porcentagem e
sua respectiva quantidade de neurônios na camada escondida.
A Tabela 7.1 exemplifica o modelo das tabelas geradas para a exibição dos
resultados obtidos nas simulações para o reconhecimento dos números com 90
neurônios na camada escondida. Este modelo também é adotado nos demais casos.
46
Tabela 7.1:Taxas de acerto no processo de reconhecimento dos números para 90 neurônios na
camada escondida.
Porcentagem de dados de
treino
Taxa de acerto na fase de
treinamento (x100)
Taxa de acerto na fase de
teste (x100)
10%
1.00
0.63
20%
1.00
0.80
30%
1.00
0.83
40%
1.00
0.61
50%
1.00
0.80
60%
1.00
0.90
70%
1.00
0.93
80%
1.00
0.95
90%
1.00
0.96
A Figura 7.1 fornece uma visualização gráfica acerca das taxas de acerto na
fase de teste para o reconhecimento dos números com a variação da porcentagem
de distribuição dos padrões destinados à fase de treinamento.
Taxas de acerto na fase de teste para 90 neurônios na camada escondida
Taxas de acerto na fase de teste
1
0.9
0.8
0.7
0.6
0.5
10%
20%
30%
40%
50%
60%
70%
Porcentagem dos dados destinanados ao treinamento
Figura 7.1: Análise das taxas de acerto na fase de teste
80%
90%
47
A partir dos resultados visualizados, as melhores taxas de reconhecimento na
fase de teste da RNA destinada ao reconhecimento dos números ocorrem quando
90% dos dados foram destinados à etapa de treinamento. As taxas de acerto
durante a fase de treinamento foram de 100% enquanto que a média das taxas de
acerto durante a fase de teste chegou a 96%. O gráfico da Figura 7.2 fornece a
média das taxas de acerto com a variação da quantidade de neurônios na camada
escondida.
Taxas de acerto para 90% de dados reservados para treinamento
1
Média das taxas de acerto em 100 iterações
Fase de treinamento
Fase de teste
0.9
0.8
0.7
0.6
0.5
0.4
20
40
60
80
100
120
140
160
180
200
Número de neurônios na camada escondida
Figura 7.2: Gráfico para 90% dos padrões de números disponíveis destinados à etapa de
treinamento.
7.2
CLASSIFICAÇÃO DAS LETRAS
No algoritmo das simulações da RNA dedicada às letras mudou-se somente a
variação da porcentagem da quantidade de padrões em cada classe destinada à
fase de treinamento para o intervalo de 20% a 90%, pois algumas letras possuem
menos de 10 padrões.
A Tabela 7.2 exemplifica o modelo das tabelas geradas para a exibição dos
resultados obtidos nas simulações para o reconhecimento das letras com 100
neurônios na camada escondida. Este modelo também é adotado nos demais casos.
48
Tabela 7.2: Taxas de acerto no processo de reconhecimento das letras para 100 neurônios na
camada escondida.
Porcentagem de dados de
treino
Taxa de acerto na fase de
treinamento (x100)
Taxa de acerto na fase de teste
(x100)
20%
1.00
0.46
30%
1.00
0.51
40%
1.00
0.45
50%
1.00
0.47
60%
1.00
0.64
70%
1.00
0.75
80%
1.00
0.79
90%
0.994
0.826
A Figura 7.3 fornece uma visualização gráfica acerca das taxas de acerto na
fase de teste para o reconhecimento das letras com a variação da porcentagem de
distribuição dos padrões destinados à fase de treinamento.
Taxas de acerto na fase de teste para 100 neurônios na camada escondida
1
Taxas de acerto na fase de teste
0.9
0.8
0.7
0.6
0.5
0.4
0.3
20%
30%
40%
50%
60%
70%
80%
Porcentagem dos dados destinados ao treinamento
Figura 7.3: Análise das taxas de acerto na fase de teste
90%
49
A partir dos resultados visualizados, constatou-se também que as melhoras
taxas de reconhecimento na fase de teste ocorrem quando 90% dos dados de cada
classe disponíveis no conjunto são destinados à fase de treinamento. A média das
taxas de acerto para o reconhecimento das letras durante a fase de treinamento
chegou a 99.4%, enquanto que a média das taxas de acerto durante a fase de teste
foi de 82.6%. Provavelmente, essa taxa de acerto na fase de teste foi menor em
relação a RNA destinada aos números em virtude de poucos padrões de
determinadas letras. O gráfico da Figura 7.4 fornece a média das taxas de acerto
com a variação da quantidade de neurônios na camada escondida.
Taxa de acerto para 90% de dados reservados para treinamento
Média das taxas de acerto em 100 iterações
1
Fase de treinamento
Fase de teste
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
20
40
60
80
100
120
140
160
180
200
Número de neurônios na camada escondida
Figura 7.4: Gráfico para 90% dos dados do conjunto de letras destinados à etapa de
treinamento.
Vale ressaltar que os parâmetros iniciais das RNAs foram:

20 neurônios na camada de entrada para ambas as RNAs;

Função de ativação sigmoide;

10 neurônios na camada de saída (0-9) para RNA destinada aos números
e 26 neurônios na camada de saída (A-Z) para a RNA destinada às letras.
A partir dos resultados observados tanto para letras quanto para números, as
RNAs que apresentaram os melhores resultados possuem a seguinte configuração:

90% dos dados de cada classe disponíveis para a fase de treinamento e
os 10% restantes para a fase de teste;
50

90 neurônios na camada escondida para a RNA destinada aos números e
100 neurônios na camada escondida para a RNA destinada às letras;
A seguir, a Figura 7.5 fornece o reconhecimento da placa da imagem da
Figura 6.1(a).
Figura 7.5: Reconhecimento da placa da Figura 6.1(a)
51
8
CONCLUSÃO E TRABALHOS FUTUROS
Este trabalho constituiu-se em uma implementação de um sistema completo
para reconhecimento de placas de automóveis. O sistema foi desenvolvido na
linguagem de programação C++ utilizando a biblioteca OpenCV.
O módulo de localização foi baseado na técnica de variação tonal, onde no
qual se observa a “assinatura” na região da placa do automóvel. Em alguns casos,
pequenos problemas ocorreram durante esse processo que resultou na não
localização da placa, prejudicando assim as etapas seguintes. Desta forma, concluise que a técnica abordada deve ser complementada. O método de detecção de
bordas ou até mesmo o template matching devem ser testados para otimizar o
desempenho deste módulo. Outra técnica que poderia ser utilizado durante a fase
de localização e não foi abordado neste trabalho é o alinhamento de caracteres no
qual pode ser realizado através da Transformada de Hough.
O módulo de segmentação utilizou a técnica de projeções verticais para isolar
cada caractere. Esta técnica se mostrou bastante eficaz, onde alguns problemas
encontrados foram resultantes de uma má localização da placa. Como trabalhos
futuros, a implementação de outros métodos, como a análise de componentes
conectados, devem ser realizados com o intuito de avaliação de desempenho.
A etapa de extração de características baseou-se nas projeções horizontais e
verticais dos caracteres já segmentados e redimensionados para uma janela 10 x 10
pixels. O desempenho apresentado foi satisfatório.
O módulo de reconhecimento da placa utilizou o algoritmo ELM e foi
implementado na linguagem de programação C++ e biblioteca OpenCV, a fim de
identificar qual o caractere analisado. Este módulo se mostrou muito eficiente e
rápido, onde se verificou que o aumento da base de dados otimizaria o desempenho
descrito. Em trabalhos futuros, podem-se realizar comparações com o método de
template matching, uma vez que a biblioteca OpenCV já possui funções
implementadas ou ainda com o SVM (Support Vector Machines) uma vez que esta
técnica de aprendizado de máquina está sendo muito utilizada em diversas tarefas
de reconhecimento de padrões.
52
9
APÊNDICE A
Este apêndice fornece alguns resultados obtidos durante as simulações do
módulo de reconhecimento de caracteres, quando houve a variação na quantidade
de neurônios na camada escondida.
Devido a não convergência do SVD em casos onde a porcentagem de
distribuição dos padrões destinados ao treinamento é menor que 50% para a
quantidade de neurônios na camada escondida analisada, somente os resultados
acima desta porcentagem serão fornecidos.
9.1
LETRAS
53
9.2
NÚMEROS
54
55
10
BIBLIOGRAFIA
ANAGNOSTOPOULOS, C.-N. E. et al. License Plate Recognition From Still
Images and Video Sequences: A Survey. IEEE Transactions on Intelligent
Transportation Systems, Setembro 2008. 377-391.
BARROSO, J. et al. Number plate reading using computer vision. IEEE International Symposium on Industrial Electronics ISIE’97, Guimarães.
BELLAS, N. et al. FPGA Implementation of a License Plate Recognition SoC
using Automatically Generated Streaming Accelerators. Parallel and Distributed
Processing Symposium, Nice, 25-29 Abril 2006. 8-15.
BELVISI, R. et al. Um Sistema de Reconhecimento Automático de Placas de
Automóveis. Anais do XIX Congresso Nacional da Sociedade Brasileira de
Computação, 1999. 537-539.
BIANCHI, M. F. D. Extração de Características de Imagens de Faces
Humanas através de Wavelets, PCA e IMPCA. Universidade de São Paulo. São
Carlos, p. 137. 2006.
BRADSKI, G.; KAEHLER, A. Learning OpenCV - Computer Vision with the
OpenCV Library. 1ª Edição. ed. [S.l.]: O’Reilly, 2008.
BUSSADOR, A. Localização Automática de Placas de Veículos em Fotos
Digitais Utilizando Abordagem Granulométrica. Pontifícia Universidade Católica
do Paraná. Curitiba, p. 81. 2009.
CASTLEMAN, K. R. Digital Image Processing. [S.l.]: Prentice Hall, 1996.
CAVALCANTI, H. M. V. D. C. Extração de Características via Redes
Neurais. Universidade de Campinas. Campinas, p. 116. 2000.
CENTRO
Brasileiro
de
Pesquisas
Físicas.
Disponivel
em:
<http://www.cbpf.br/cat/pdsi/lpr/>. Acesso em: Novembro 2012.
COMELLI, P. et al. Optical Recognition of Motor Vehicle License Plates. IEEE
TRANSACTIONS ON VEHICULAR TECHNOLOGY, Novembro 1995. 790-799.
56
CONCI,
A.;
Reconhecimento
MONTEIRO,
de
placas
de
L.
H.
Universidade
veículos
por
Federal
imagem.
Fluminense.
Disponivel
em:
<http://www.ic.uff.br/~aconci/CONENPLACAS.pdf>. Acesso em: Dezembro 2012.
CONTRAN- Conselho Nacional de Trânsito. RESOLUÇÃO Nº 241, DE 22 DE
JUNHO
DE
2007,
2007.
Disponivel
em:
<http://www.denatran.gov.br/download/Resolucoes/RESOLUCAO_CONTRAN_241.p
df>. Acesso em: Novembro 2012.
DAMBROS, A. L. Sistema de Reconhecimento de Placas de Veículos
Automotores. CENTRO UNIVERSITÁRIO FEEVALE. Novo Hamburgo, p. 77. 2008.
DIAS, F. G. Melhorias para Sistema de Reconhecimento da Placa de
Licenciamento Veicular. Universidade Estadual de Campinas. Campinas, p. 154.
2005.
FACON, J. Morfologia Matemática: Teorias e Exemplos. Curitiba: [s.n.],
1996.
FACON,
J.
LIMIARIZAÇÃO
PUCPR-
Pontifícia
BIMODAL
DE
Universidade
OTSU.
Católica
Do
Paraná.
Disponivel
em:
<http://www.ppgia.pucpr.br/~facon/Binarizacao/LimiarOstuNovo3.PDF>. Acesso em:
10 Dezembro 2012.
GONZALEZ, R. C.; WOODS, R. E. Processamento Digital de Imagens. 3ª.
ed. [S.l.]: Pearson, 2010.
GUINGO, B. C. Reconhecimento Automático de Placas de Veículos
Automotores. Universidade Federal do Rio de Janeiro. Rio de Janeiro, p. 143.
2003.
GUINGO, B. C. et al. KAPTA - Um sistema de reconhecimento automático
de placas de veículos e suas aplicações potenciais.
Disponivel em:
<http://www.cbtu.gov.br/estudos/pesquisa/anpet_xviiiCongrpesqens/ac/arq59.pdf>.
Acesso em: 2 Dezenbro 2012.
HAYKIN, S. Redes Neurais: Princípios e prática. 2ª Edição. ed. [S.l.]:
Bookman, 2001.
57
HONGLIANG, B.; CHANGPING, L. A Hybrid License Plate Extraction Method
Based on Edge Statistics and Morphology. Proc. of the International Conference
on Pattern Recognition, Beijing, 2004. 831-834.
HUANG, G.-B. Extreme Learning Machines (ELM), 2012. Disponivel em:
<http://www.ntu.edu.sg/home/egbhuang/>. Acesso em: Novembro 2012.
HUANG, G.-B.; ZHU, Q.-Y.; SIEW, C.-K. Extreme Learning Machine: Theory
and Applications. Neurocomputing 70, 2006. 489-501.
KHALIFA, O. et al. Malaysian Vehicle License Plate Recognition. The
International Arab Journal of Information Technology, Julho 2006. 359-364.
LOTUFO, R. A.; DIAS, F. G. Método de localização de cadeias alfanuméricas
tipográficas em superfícies de fundo uniforme para um sistema de reconhecimento
baseado em imagem. IMPI- Intituto Nacional de Propriedade Industrial, 2004.
LU, Y. Machine printed character segmentation. Pattern Recognition, 1995.
67-80.
MARQUES, O. F.; VIEIRA, H. N. Processamento Digital de Imagens. Rio de
Janeiro: Brasport, 1999.
MORAIS, E. C. Reconhecimento de Padrões e Redes Neurais Artificiais
em Predição de Estruturas Secundárias de Proteínas. Universidade Federal do
Rio de Janeiro. [S.l.], p. 148. 2010.
OTSU, N. A Threshold Selection Method from Gray-Level Histograms. IEEE
Transactions on System, Man and Cybernetics , 1979.
OZBAY, S.; ERCELEBI, E. Automatic Vehicle Identification by Plate
Recognition. World Academy of Science, Engineering and Technology, 2007.
778-781.
POLIDÓRIO, A. M.; BORGES, D. L. Um Método de Reconhecimento Sintático
de Caracteres para Identificação de Placas de Veículos. Anais do X SIBGRAPI ,
1997. 7.
RAHMAN, C. A.; BADAWY, W.; RADMANESH, A. A Real Time Vehicle’s
License Plate Recognition System. Proc. IEEE Conf. Advanced Video Signal
Based Surveillance, 2003. 163-166.
58
RODRIGUES, R. J. Segmentação e extração de características para
reconhecimento automático de caracteres - Estudo e propostas. Universidade
Federal do Rio de Janeiro. Rio de Janeiro, p. 169. 2003.
SANTOS, R. M. D. Um Estudo de Processamento de Imagens com
OpenCV. Universidade Federal Fluminense. Niterói, p. 99. 2011.
SEZGIN, M.; SANKUR, B. Survey over image thresholding techniques and
quantitative performance evaluation. Journal of Electronic Imaging , Gebze,
Janeiro 2004. 146-165.
SOM, H. M.; ZAIN, J. M.; GHAZALI, A. J. Application of Threshold Techniques
for Readability Improvement of Jawi Historical Manuscript Images. Advanced
Computing: An International Journal ( ACIJ ), Kuantan, Março 2011. 60-69.
SOUZA, F. P. C. D. Localização e Leitura Automática de Caracteres
Alfanuméricos - Uma Aplicação na Identificação de Veiculos. Universidade
Federal do Rio Grande do Sul. Porto Alegre, p. 105. 2000.
SOUZA, J. A. D. Reconhecimento de Padrões usando Indexação
Recursiva. Universidade Federal de Santa Catarina. Florianópolis. 1999.
TRENTINI, V. B.; GODOY, L. A. T.; MARANA, A. N. Reconhecimento
Automático de Placas de Veículos. VI Workshop de Visão Computacional,
Presidente Prudente, 4-7 Julho 2010. 267-272.
WEI, W. et al. Research on Number-plate Recognition Based on Neural
Networks. Proc. IEEE Signal Process. Soc. Workshop Neural Netw. Signal
Process. XI, 2001. 529-538.
WU, C. et al. A Macao license plate recognition system. Proc. 4th Int. Conf.
Mach. Learn. Cybern, Guangzhou, Agosto 2005. 4506-4510.
ZHANG, Z.; WANG, C. The Research of Vehicle Plate Recognition Technical
Based on BP Neural Network. AASRI Conference on Computational Intelligence
and Bioinformatics- ELSEVIER, 2012. 74-81.

Documentos relacionados