Aura Conci e Leonardo Hiss Monteiro
Introdução
Automação do processo de controle de estacionamento
Automação do processo de aplicação de multas nos veículos
Necessidade de automação do processo de reconhecimento de placas
Objetivo
Conseguir um método simples e eficaz para o reconhecimento das placas dos veículos.
Considerações
Independente da distância de captura
Fácil adaptação a fonte utilizada
Processo utilizado
Imagem com 256 tons decinza no formato PCX
Binarização
Segmentação dosobjetos conectados
Esqueletização
Cálculo dosmomentosinvariantes
Cálculo dascavidades e
extremidadesAdição no banco de
dadosReconhecimentodos caracteres
Placa reconhecidaCaracteres
adicionados nobanco de dados
Fases do processamento
Pré-Processamento Armazenamento no formato PCX Binzarização Segmentação dos objetos conectados
Primeira Fase de Processamento Cálculo dos momentos invariantes
Segunda Fase do Processamento Cálculo das extremidades Cálculo das cavidades
Binarização
Separação da imagem do fundo.Utilização de um único ponto de
corte (threshold).Utilizamos o método de limiarização
Bimodal de Otsu.
Método de Limiarização Bimodal de Otsu
Particionamento dos pixeis de uma imagem com L niveis de cinza em duas classes C0 e C1.
Limiar otimo -> Maximização da função critério
2
2
t
b
Histograma - Threshold
Erosão
Diminuição do tamanho original sem perder as caractarísticas geométricas
Utilizada para remover ruídos
Processo de Erosão
Elemento escolhido:
Processo: Coloca-se o elemento escolhido para fazer a erosão na
coordenada (i,j) Verifica-se se os vizinhos do elemento são pixeis do objeto
(com valor 1) Se todos os vizinhos possuírem valor 1 mantêm-se o pixel
central com valor 1. Se algum dos pixeis vizinho não possuir valor 1, muda-se o
valor do pixel central para 0 (pixel de fundo).
Imagem Antes e Depois da Erosão
Imagem Antes:
Imagem Depois:
Segmentação de Objetos Conectados
Separação dos caracteresUtiliza como entrada a imagem
binarizada e erodida.Na saida do algoritmo possuimos
várias imagens sendo cada uma composta por um caracter.
Processo de Segmentação
Num primeiro momento é feita uma varredura na imagem buscando o primeiro pixel do objeto (pixel com valor 1).
O valor desse pixel é alterado para o valor de um índice I. O valor desse índice I é incrementado (I=I+1). É feita uma varredura nos pixeis vizinhos a esse, de modo,
que toda a vez que um pixel vizinho é encontrado o seu valor é alterado para o valor do índice e o índice I é incrementado.
Esse processo se repete até que não se encontrem mais pixeis vizinhos. Quando isso ocorre o valor do ultimo índice é armazenado em um vetor e volta-se ao passo 1 enquanto houver pixel não analisado na imagem.
Segmentação da Imagem
Imagem após o algoritmo de contagem:
Caracter segmentado utilizando o vetor:
Eliminação dos Ruídos Conectados aos Caracteres
Geralmente no 2 e 5 caracter.União do caracter com o furo de
fixação
Filtro Utilizado
Retas superior e inferior
Caracteres após a filtragem
Filtragem dos Elementos Relevantes
Remoção dos objetos que estão na parte superior e inferior da imagem.
Remoção dos objetos que estão na extremidade direita ou esquerda da imagem.
Remoção dos objetos muito pequenos.Remoção dos objetos que contém
dimensões horizontais muito grandes.
Limites Utilizados
Coordenada X: Remoção dos objetos com coordenada X menor que
2,5% do comprimento. Remoção dos objetos com coordenada X maior que
97,5% da comprimento.
Coordenada Y: Remoção dos objetos com coordenada Y menor que
10% da altura. Remoção dos objetos com coordenada Y maior que 90%
da altura.
Limites Utilizados
Área: Remover os objetos com área menos
que 0,6% da área da imagem original.
Dimensões horizontais: Remover se os objetos com dimensões
horizontais maior que 12% do tamanho original da imagem.
Esqueletização
Reduzir as partes de um objeto a uma linha fina que representa a representa.
Favorece uma análise estrutural simples.
Reduz a imagem a sua essência podendo eliminar algumas distorções.
Mantem as propriedades geométricas e topológicas.
Algoritmo MAT (Medial Axis Transformation)Passo1:
Passo2:
0 )(
0 )(
1)( )(
6)(2 )(
864
642
1
1
pppd
pppc
pCRNb
pNNa
0 )(
0 )(
862
842
pppf
pppe
.,,...,, sequência na 1 para 0 de s transiçõede Número )(
P. ponto do 0 de diferentes vizinhospontos de Número)(
29321 pppppCRN
pNN
Vizinhança
Imagem Antes e Depois da Esqueletização
Antes
Depois
Primeira Fase de Processamento
No final da fase de pré-processamento a imagem inicial se encontra segmentada, esqueletizada e binarizada.
Cada nova imagem é composta por um caracter.
A primeira fase de processamento é composta pelo cálculo dos momentos invariantes.
Momentos Invariantes
Teoria: Existe apenas um objeto B que pode
produzir o mesmo valor para os momentos de todas as ordens.
Se dois objetos tem os mesmos momentos em todas as ordens, estes objetos são identicos.
Momentos Geométricos
Definição:
M
i
N
j
qppq ...,,,p,qjijiBm
1 1
3210 onde ),(
Momentos Centrais
Considerando a translação para a origem das coordenadas temos:
Onde:
M
i
N
j
qppq ...,,,p,qjijjiiBm
1 100 3210 onde ),(0
00
10
1 1
1 10
),(
),(
m
m
jiB
ijiB
i M
i
N
j
M
i
N
j
00
01
1 1
1 10
),(
),(
m
m
jiB
jjiB
j M
i
N
j
M
i
N
j
Invariância a Rotação
Observamos que alguns momentos são invariantes a rotação como:
A invariância a rotação pode ser obtida utilizando um sistema que coincida com os eixos principais:
dadeExcentrici )00()4(m0
inércia de momentos dos Soma 00
Área0
20220
211
0220
00
mm
mm
m
principais eixos dos orientação de ângulo o é onde 00
022tan
0220
11
mm
m
Momentos Utilizados
2
03212
123003211230
20321
21230123003215
20321
212304
20321
212303
211
202202
02201
)()(3))(3(
)(3)())(3(
)()(
)3()3(
4)(
mmmmmmmm
mmmmmmmmf
mmmmf
mmmmf
mmmf
mmf
Invariância a Escala
Utilizada quando a distância de captura pode variar. Considerando uma transformação de
escala:
A área mudará:
'"
'"
jaj
iai
'0"0 002
00 mam
Invariância a Escala nos Momentos Utilizados
1000
54
500
43
500
32
400
21
200
10
m
fv
m
fv
m
fv
m
fv
m
fv
Segunda Fase de Processamento
Detectar características geométricas de cada um dos caracteres.
Distinguir caracteres como: 6 e 9 M e W
Cálculo das Cavidades e extremidades.
Análise das Cavidades
Dividida em duas etapas:
Algorítmo para a detecção dos candidatos
Algorítmo para a contagem das cavidades
Detecção das CavidadesEntrada
Imagem de uma caracterbinarizado e esqueletizado
Fazer a varredura de cada linha daimagem até encontrar um pixel com o
valor 0 (candidato a ser parte dacavidade).
As duas condições acima foram atendidas ?
Não alterar ovalor do pixel
Alterar o valor dopixel para 3
Sim
Não
Verificar se o pixel é cercado nadireção superior e inferior porpixeis com valor 1 (pixeis de
borda)
Verificar se o pixel é cercado aesquerda ou direitar por pixeiscom valor 1 (pixeis de borda)
Fazer a varredura de cada linhaimagem até encontrar um pixel com o
valor 3 (candidato a ser parte dacavidade).
A condição acimaforam atendida ?
Não alterar ovalor do pixel
Alterar o valor de todos ospixeis na direção superiorpara 0 até encontrar um
pixel com o valor 1
Sim
Não
Verificar se o pixel possui ovizinho imediatamente acima ou
abaixo com o valor 0
Alterar o valor de todos ospixeis na direção inferiorpara 0 até encontrar um
pixel com o valor 1
Fim
Regiões canditatas a cavidades
Regiões de cavidades
Contagem do Número de Cavidades
Varrer a imagem até encontrarum pixel com valor 3
Imagem de entrada binarizada onde:0 representa o fundo
1 representa o contorno do objeto3 regiões de cavidade
Alterar o valor de 3 para IndiceIncrementar Indice
Indice=2IndiceAtual=2
Verificar a vizinhança do pixel aprocura de valores 3
Encontrado ?
Deixe o valor como originalAlterar o valor de 3 para Indice
Incrementar Indice
Varrer a imagem até encontrarum pixel com IndiceAtual
Verificar a vizinhança do pixel aprocura de valores 3
Encontrado ?
Deixe o valorcomo original
Alterar o valor de 3 para IndiceIncrementar Indice
Indice=IndiceAtual ?
Sim
NãoSim
NãoSim
Incrementar IndiceAtual
Não
Encontrado ?
SairNão
Sim
Incrementar o numero de cavidades
Número de Cavidades dos Caracteres
Letra Num Cavidades Numero Num CavidadesC 0 1 0E 0 2 0F 0 3 0G 0 5 0H 0 7 0I 0 4 1J 0 6 1K 0 9 1L 0 0 1M 0 8 2N 0S 0T 0U 0V 0X 0Y 0W 0Z 0A 1D 1O 1P 1Q 1R 1B 2
Análise das Extremidades
Detecção e classificação das extremidades dos caracteres.
Classificação: Superior esquerda - SE Superior central - SC Superior direita - SD Central esquerda - CE Central central - CC Central direita - CD Inferior esquerda - IE Inferior central - IC Inferior direita – ID
SE SC SDCE CC CDIE IC ID
Algorítmo para Detecção das Extremidades
EntradaImagem de um caracter
binarizado e esqueletizado
Fazer a varredura de cada linha daimagem até encontrar um pixel com
coordenadas (i,j) com valor 1
O número de condições acima atendidas é 1 ?
Não alterar ovalor do pixel
Alterar o valor dopixel para 2
(Extremidade)
SimNão
Verificar se o pixel na posição (i-1,j-1) possui o valor 1
Verificar se o pixel na posição (i,j-1) possui o valor 1
Verificar se o pixel na posição (i+1,j-1) possui o valor 1
Verificar se o pixel na posição (i-1,j) possui o valor 1
Verificar se o pixel na posição (i+1,j) possui o valor 1
Verificar se o pixel na posição (i-1,j+1) possui o valor 1
Verificar se o pixel na posição (i,j+1) possui o valor 1
Verificar se o pixel na posição (i+1,j+1) possui o valor 1
Classificação das ExtremidadesEntrada
Imagem de um caracterbinarizado e esqueletizado
Fazer a varredura de cada linha daimagem até encontrar um pixel de
coordenadas (i,j) com valor 2
Verificar se o pixel com coordenada (i,j) está no quadrante SE
Calcular as dimensões do frameatravés do tamanho horizontal e dotamanho vertical da imagem sendo:
deltax=(ext_dir-ext_esq)/3;deltay=(ext_inf-ext_sup)/3;
Verificar se o pixel com coordenada (i,j) está no quadrante SC
Verificar se o pixel com coordenada (i,j) está no quadrante SD
Verificar se o pixel com coordenada (i,j) está no quadrante CE
Verificar se o pixel com coordenada (i,j) está no quadrante CC
Verificar se o pixel com coordenada (i,j) está no quadrante CD
Verificar se o pixel com coordenada (i,j) está no quadrante IE
Verificar se o pixel com coordenada (i,j) está no quadrante IC
Verificar se o pixel com coordenada (i,j) está no quadrante ID
Armazenar a classificação da extremidade
Classificação das Extremidades Detectadas
Letra Class Numero ClassB - - - - 8 - - - -D - - - - 0 - - - -O - - - - 3 SE CC IE -U SE SD - - 7 SE IE - -W SE SD - - 2 SE ID - -H SE SD IE ID 6 SD - - -X SE SD IE ID 1 SD SE ID -T SE SD IC - 5 SD CE IE -Y SE SD IC - 4 SD ID ID -N SE SD ID IE 9 IE - - -L SE ID - -Z SE ID - -I SC IC - -V SD SE - -K SD SE IE IDG SD CC - -F SD CD IE -E SD CD ID -J SD IE - -S SD IE - -C SD ID - -P IE - - -M IE ID - -R IE ID - -Q IC ID - -A ID IE - -
Reconhecimento da Imagem
Momentos invariantes
Número de cavidades
Classificação das extremidades
Posição do caracter na imagem inicial
Processo de Reconhecimento
Criação do Banco de Dados.Comparação com o Banco de Dados:
1 Fase:Análise da posição do caracter na placaAnálise do número de cavidadesAnálise das extremidades
2 Fase:Análise dos momentos invariantes
Casos de Reconhecimento
Possíveis situações após a 1 Fase de Reconhecimento: Nenhum elemento identificado
Necessário adicionar do Bando de Dados
Apenas 1 elemento identificadoElemento Reconhecido. 2 Fase não é necessária
Mais de um elemento identificado2 Fase é iniciada com os elementos
identificados.
Segunda Fase de Reconhecimento
Análise dos momentos invariantes nos elementos que foram identificados na Primeira Fase.
Cálculo das distâncias:
Reconhecimento => Objeto que possuir as menores “distâncias”
Dados de Banco do i ordem de Momentos
oreconhecid sendo está que objeto do i ordem de Momento
2
iBD
i
iBDii
M
M
MMD
Placas ProcessadasPlaca Carac. Geom Momentos M0 M1 M2 M3 M4
GWK2323 4 3 1 0 0 0 0KMG9066 4 3 0 0 0 0 0KMH9737 2 5 1 1 0 0 0KML4188 5 2 0 0 0 0 0KNA2764 4 3 0 1 0 1 0KNA4521 6 1 0 0 0 0 0KOC8204 5 2 1 1 0 0 0KQM1513 4 3 1 1 0 0 0KRE4315 5 2 0 1 0 0 0KRJ2309 4 3 1 0 0 0 0KRE5912 4 3 1 0 0 0 0KMJ0305 4 3 1 1 0 0 0KMM2090 6 1 0 0 0 0 0KNA7675 5 2 1 0 0 0 0KOD7728 2 5 2 1 0 0 0KRJ7761 2 5 2 0 0 0 0KSY4558 4 3 0 0 0 0 0KUB6657 2 5 1 0 0 0 1LAB7582 4 3 0 0 0 0 0LAE0231 5 2 0 1 0 0 0LBE9571 5 2 1 0 0 0 0LBM7321 4 3 1 0 0 0 0LCC4261 3 4 2 0 0 0 0LCU3687 2 5 2 1 0 0 0LIY3173 1 6 1 2 2 0 0LJF2087 4 3 2 0 0 0 0LNC3270 4 3 1 1 1 0 0LNI7263 1 6 1 2 1 0 0LNJ7519 2 5 1 0 0 0 0LNT0251 3 4 1 0 0 0 0LNU4768 2 5 2 1 0 0 0KMX2742 2 5 1 0 0 0 1KPC6146 3 4 0 0 0 0 0GZP6226 3 4 1 1 0 0 0JEV1099 6 1 1 0 0 0 0GZN3681 4 3 0 1 0 0 0LAV7125 3 4 1 0 0 0 0LBX7363 2 5 1 2 1 0 0
Resultados Obtidos
Erros no Reconhecimento
0
5
10
1520
25
30
35
M0 M1 M2 M3 M4
Momentos
Nú
mer
o d
e E
rro
s
Resultados Obtidos7;
3
K;N
H;N
D;O
2;1
S;J
W;U
T;Y
L;Z
K;X
M0
M2
M4
0
2
4
6
8
10
12
14
Nu
mer
o d
e. E
rro
s
Erros por Momentos
7;3 K;N H;N D;O 2;1 S;J W;U T;Y L;Z K;XM0 14 1 1 2 4 6 0 1 1 0M1 11 2 2 2 0 0 0 0 1 0M2 1 0 2 0 2 0 0 1 0 0M3 0 0 1 0 0 0 0 0 0 0M4 0 0 0 0 0 0 0 0 0 1
Dados Obtidos
266 Caracteres Processados de 38 Placas diferentes. 51% Caracteres reconhecidos sem a necessidade do
cálculo dos momentos 49% Caracteres reconhecidos com as técnicas dos
momentos
917 Cálculos de momentos. 1% Erros apresentado no cálculo da distância dos
momentos
Trabalhos Futuros
Busca automática da placa do veículo nas imagens.
Pré - processamento para corrigir placas que não estejam no plano xy.
Detecção das bordas antes da esqueletização para melhorar a qualidade da esqueletização.
Cálculo da projeção dos pixeis nas direções horizontais e verticais.
Aperfeiçoamento do Banco de Dados
Programas Existentes no Mercado
HTS Israel
SIAV 2.0 - Automatisa
Demo.exe
SIAV 2.0.exe
Links Interessantes
Automatic Number Plate Recognition - Portugual http://www.utad.pt/~jbarroso/html/number_plate.html
CARINA - Software Product for Automatic Number Plate Recognition - Hungary http://www.arhungary.hu/
Automated Car Number Plate Recognition - Escocia http://www.ednet.co.uk/~euroquest/falcon.htm
Number Plate Recognition System - Africa do Sul http://espresso.ee.sun.ac.za/~cc/npr/
License Plate Recognition (LPR) - Israel http://www.htsol.com/Products/SeeCar.html
License Plate Reader - USA http://www.perceptics.com/
License Plate Recognition Systems - USA http://www.garlic.com/biz/eotek/
License Plate reader “Golden Eagle” - Russia http://fire.relarn.ru/personal/charly/berkut/index.htm
CarFlow - Russia http://www.photocop.com/products.htm#MegaPixel
Jet ANPR Car Number Plate Recognition - Reino Unido http://www.citysync.co.uk/pagedef.htm
Links Interessantes
Auto Vu Technologies Inc. - Canada http://www.autovu.com/website/content/products.html
Computer Recognition Systems, Ltd - USA http://www.crs-its.com/
Tranport Data Systems - USA http://www.transportdatasystems.com/products.htm
Dacolian - Recognition Software - Netherlands http://www.dacolian.nl/
Ponfac S.A - Brasil http://www.ponfac.com.br/
Automatisa Sistemas Ltda - Brasil http://www.automatisa.com.br/siav2.htm