43
UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO Um estudo sobre reconhecimento de placas de veículos fim-a-fim Niterói 2018

UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

UNIVERSIDADE FEDERAL FLUMINENSE

CAIO VIEIRA COELHO

Um estudo sobre reconhecimento de placas de veículos fim-a-fim

Niterói

2018

Page 2: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

CAIO VIEIRA COELHO

Um estudo sobre reconhecimento de placas de veículos fim-a-fim

Trabalho de Conclusão de Curso

submetido ao Curso de Tecnologia em

Sistemas de Computação da

Universidade Federal Fluminense como

requisito parcial para obtenção do título

de Tecnólogo em Sistemas de

Computação.

Orientadora:

Helga Dolorico Balbi

NITERÓI

2018

Page 3: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão
Page 4: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

CAIO VIEIRA COELHO

Um estudo sobre reconhecimento de placas de veículos fim-a-fim

Trabalho de Conclusão de Curso

submetido ao Curso de Tecnologia em

Sistemas de Computação da

Universidade Federal Fluminense como

requisito parcial para obtenção do título

de Tecnólogo em Sistemas de

Computação.

Niterói, 13 de junho de 2018.

Banca Examinadora:

_________________________________________

Profa. Helga Dolorico Balbi, Msc. – Orientadora

UFF – Universidade Federal Fluminense

_________________________________________

Prof. Leandro Soares de Sousa, Dsc. – Avaliador

UFF – Universidade Federal Fluminense

Page 5: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

Dedico este trabalho a minha mãe Eloina (in

memoriam) e ao meu pai Ozéas por sempre

acreditarem em mim e nos meus projetos.

Page 6: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

AGRADECIMENTOS

À minha irmã Melinda por ser uma grande

pessoa. Se hoje chamo algum amigo(a) de

irmã(o) é porque tenho uma grande referência

para o significado dessa palavra.

À minha Orientadora Helga Dolorico Balbi

pelos desafios lançados e por toda ajuda

durante essa etapa da minha vida acadêmica.

A toda minha família com quem aprendi a

amar e me deu referências para lidar com a

realidade da vida de diversas formas.

Page 7: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

RESUMO

A pesquisa na área de Localização Automática de Placas Veiculares é um assuntoabordado por muitos pesquisadores e que sempre apresenta novos desafios nostermos da acurácia na localização e na detecção dos caracteres, bem como naeficiência com relação à velocidade na resposta dos métodos propostos. Estetrabalho propõe montar um método baseado nos passos conhecidos de obtençãodos dados de uma placa: a localização da placa na imagem, a segmentação eidentificação dos contornos dos caracteres contidos na nela, e a classificação decada um deles. Testes foram realizados em ambientes abertos mas com condiçõescontroladas na obtenção das imagens e mostraram as dificuldades desde o passoda localização até a identificação final do caractere. Por fim, uma proposta demelhoria foi implementada como uma nova etapa após a avaliação do caractere,ocasionando uma melhora substancial nos resultados fim-a-fim.

Palavras-chaves: Visão computacional, imagem em processamento.

Page 8: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

LISTA DE ILUSTRAÇÕES

FIGURA 1: MODELO BAYER [13]..............................................................................16

FIGURA 2: (A) IMAGEM ORIGINAL SEMELHANTE A VISÃO HUMANA. (B) VISÃO

DO SENSOR MONOCROMÁTICO ATRAVÉS DO CFA. [14].....................................17

FIGURA 3: PIXELS EM RGB......................................................................................19

FIGURA 4: PIXELS EM ESCALA DE CINZA..............................................................19

FIGURA 5: ILUSTRAÇÃO DE IMAGEM INTEGRAL [18]...........................................21

FIGURA 6: EXEMPLO DE ELEMENTO ESTRUTURAL A DEFINIR O CONJUNTO

DE PIXELS NA OPERAÇÃO.......................................................................................22

FIGURA 7: TIPOS DE RETÂNGULOS UTILIZADOS [4]............................................24

FIGURA 8: APLICAÇÃO DO RETÂNGULO PARA ARMAZENAR CARATERÍSTICAS

DE FACES [4]..............................................................................................................25

FIGURA 9: REPRESENTAÇÃO DA CASCATA DE DETECÇÃO [4]..........................26

FIGURA 10: MODELO DE EXTRAÇÃO DE CARACTERÍSTICA DE UMA IMAGEM

[6].................................................................................................................................27

FIGURA 11: EXEMPLOS DE PLACAS UTILIZADAS PARA TREINAR O

CLASSIFICADOR........................................................................................................30

FIGURA 12: KERNEL UTILIZADO PARA AUMENTAR A NITIDEZ DA IMAGEM.......31

FIGURA 13: PLACAS BINARIZADAS.........................................................................32

FIGURA 14: CONTORNOS SELECIONADOS...........................................................33

FIGURA 15: CONTORNOS INTERNOS REALÇADOS.............................................35

FIGURA 16: ALGUMAS IMAGENS UTILIZADAS NO TESTE....................................36

FIGURA 17: GRÁFICO QUE MOSTRA O NÚMERO DE PLACAS SEPARADOS

PELO NÚMERO DE CARACTERES IDENTIFICADOS.............................................38

Page 9: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

LISTA DE TABELAS

TABELA 1: RESULTADOS OBTIDOS.........................................................................38

Page 10: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

LISTA DE EXPRESSÕES MATEMÁTICAS

Expressão 1.................................................................................................................18

Expressão 2.................................................................................................................31

Page 11: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

LISTA DE ABREVIATURAS E SIGLAS

CFA – Color Filter Array

CIE – Commission Internationale de l'Eclairage (Comissão Internacional de

Iluminação)

RGB – Red, Green, Blue

Page 12: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

SUMÁRIO

RESUMO ...................................................................................................................... 7

LISTA DE ILUSTRAÇÕES ............................................................................................ 8

LISTA DE TABELAS ..................................................................................................... 9

LISTA DE EXPRESSÕES MATEMÁTICAS ............................................................... 10

1 INTRODUÇÃO ......................................................................................................... 13

2 REFERENCIAL TEÓRICO ....................................................................................... 15

3 TRABALHOS RELACIONADOS .............................................................................. 24

4 DESENVOLVIMENTO .............................................................................................. 29

5 TESTES .................................................................................................................... 36

6 CONCLUSÕES E TRABALHOS FUTUROS ........................................................... 39

REFERÊNCIAS BIBLIOGRÁFICAS ........................................................................... 40

Page 13: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

1 INTRODUÇÃO

O reconhecimento de placa de veículos é um assunto de grande

importância nas áreas de segurança, transporte inteligente, tráfego urbano, detecção

de veículos roubados, dentre outros [1].

Os algoritmos propostos para esse tópico são geralmente divididos em

três tarefas: a detecção da placa, a segmentação da placa e o reconhecimento dos

caracteres. Essa lógica define o pipeline ou linha de produção de uma solução fim-a-

fim de reconhecimento de placas de veículos [1].

Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

computacional OpenCV [2] para a implementação do pipeline de reconhecimento

das placas dos automóveis e realização de testes.

O módulo de detecção de objetos, que implementa um classificador em

cascata Haar, foi utilizado com o intuito de localizar a placa na imagem [3]. Esse

algoritmo de localização de objetos é implementado a partir da proposta encontrada

no artigo de VIOLA e JONES [4].

O módulo de reconhecimento de texto foi utilizado para a decodificação

dos caracteres [5]. O algoritmo utiliza como fundamentação o artigo de COATES [6].

Adicionalmente aos métodos encontrados no OpenCV, este trabalho propõe a

utilização de uma nova etapa buscando a melhoria do reconhecimento dos

caracteres. Após a classificação inicial, os resultados são submetidos a um algoritmo

para melhoria da avaliação dos caracteres, tomando como um dos parâmetros a

posição do caractere na placa e, em alguns casos, a avaliação de seus contornos.

Os testes foram realizados com 150 imagens estáticas captadas por um

celular, todas contendo somente uma placa. Utilizando-se o módulo de detecção, foi

possível localizar a placa em 79% das imagens testadas. Os resultados finais

mostraram que o pós-processamento proposto, que foi realizado após a

classificação inicial do caractere, é fundamental para obter resultados satisfatórios.

Sem a etapa de melhoramento, o êxito na detecção e decodificação da placa chega

13

Page 14: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

a 6% do total das placas e, com o melhoramento, essa porcentagem sobe para 49%.

Levando em consideração a totalidade dos caracteres avaliados, o índice de acerto

inicial é 62%, e após a execução da etapa de melhoramento, esse percentual

aumenta em 16%, chegando a 78% de êxito na identificação do total de caracteres.

O trabalho está organizado da seguinte forma: O Capítulo 2 apresenta alguns

conceitos básicos e termos que compõem o universo da imagem digital. O Capítulo

3 apresenta os trabalhos que são utilizados no pipeline, desde a localização da

placa até a extração dos dados. O Capítulo 4 apresenta a implementação e alguns

resultados intermediários que motivaram a criação da proposta de melhoria

apresentada neste trabalho. O Capítulo 5 descreve os testes e apresenta os

resultados obtidos. Por fim, o Capítulo 6 apresenta as conclusões obtidas e ideias

para trabalhos futuros.

14

Page 15: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

2 REFERENCIAL TEÓRICO

Esta seção introduz conceitos fundamentais relativos a imagens digitais.

2.1 Imagem digital

Existem duas formas básicas de representar imagens em formato digital:

raster e vetorial. O modo vetorial especifica imagens através de linhas e curvas

utilizando funções matemáticas, o que mantém a qualidade da imagem em

diferentes tamanhos [7].

O modo raster (ou bitmap) utiliza uma matriz retangular com um número

específico de elementos para representar as imagens. Cada elemento é chamado

de pixel. Cada pixel é formado por um vetor de valores que compõem a cor [8]. Esse

vetor pode ter 1 ou mais elementos a depender do espaço de cor utilizado. A

imagem também pode ser compreendida como um conjunto de matrizes, cada uma

representando uma dimensão da composição de cor. Tais matrizes são chamadas

de canais.

A imagem raster tem um tamanho fixo, portanto, a qualidade da imagem

depende da resolução do meio de saída. A resolução é a escala espacial dos pixels

da imagem. Ela, geralmente, é definida por pixels per inch (ppi) e dots per inch (dpi)

[9]. Quanto menor a resolução, ou a densidade de pixels em uma área, pior a

qualidade da imagem [10]. O modo raster será o padrão utilizado neste trabalho.

15

Page 16: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

2.2 Interpolação e Captação de Imagens

De uma forma geral a interpolação é o processo de se estimar e criar pontos

desconhecidos a partir de pontos conhecidos. A interpolação em uma imagem

colorida pode ser feita no domínio espacial ou no domínio espectral. A interpolação

espacial é o processo de se aumentar o número de pixels de uma imagem para

aumentar a resolução aparente. Um exemplo desse processo é o efeito gerado pelo

zoom digital [11].

A interpolação espectral colhe dados de uma janela de processamento para

estimar valores de pixels [12]. Esse método é aplicado na maioria das câmeras

digitais no processo de captura da imagem, no qual é chamado de interpolação de

cor. As câmeras digitais geralmente possuem um único sensor monocromático e um

CFA (Color Filter Array) que cobre esse sensor. Cada elemento do sensor capta

somente um espectro de cor da imagem. A partir dessa matriz utilizam-se algoritmos

para compor os pixels da imagem captada [13].

Existem diversas disposições possíveis para preencher a matriz de filtros

utilizados no CFA, sendo um dos mais populares o padrão Bayer [14]. A Figura 1

mostra a disposição dos filtros de cores no array de Bayer. A Figura 2 ilustra a visão

natural de um objeto e a visão do sensor da câmera através do filtro.

Figura 1: Modelo Bayer [13]

16

Page 17: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

2.3 Espaços de Cores, Cálculo de Distâncias e Escala de Cinza

Por definição, um espaço de cor é um espaço vetorial no qual as cores são

representadas como pontos [15]. Um espaço de cor pode ser comparado a uma

palheta de cores de um pintor, mas é definida de uma forma matematicamente

precisa [16].

A Comissão Internacional de Iluminação (CIE, em francês) especificou o

espaço de cor CIE 1931, que utiliza 2 parâmetros de cores e 1 de luminosidade para

representar seu espectro. Este lançamento representou um grande avanço com

relação aos espaços de cores existentes, e foi elaborado a partir de estudos sobre

os três tipos de cones sensíveis às cores localizados no olho humano [17].

Figura 2: (a) Imagem original semelhante a visão humana. (b) Visão do

sensor monocromático através do CFA. [14]

17

Page 18: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

O RGB é uma derivação do CIE 1931, é um espaço de cor que tem relação

direta com a forma que o olho humano enxerga o espectro de luz. Esse espaço de

cor utiliza o padrão tricromático e é largamente utilizado nos meios digitais [15]. As

cores são representadas como vetores resultantes dos três componentes: Vermelho,

Verde e Azul. Esse padrão de cor tem afinidade com a forma de se obter as imagens

digitais e as cores são normalizadas de tal forma que, quando combinadas em

quantidades iguais, é obtido um tom pertencente a escala de cinza [18, p. 127].

A fórmula geral utilizada para medir a distância entre dois vetores de cor x i =

[ xi1, xi2, xi3 ] e xj = [ xj1, xj2, xj3 ] é dada pela Expressão 1.

d (x i , x j)=|| xi−x j ||L=(∑k=1

3

ξk | xik−x jk |L)

1L

Expressão 1: Fórmula geral da distância

Quando L = 1, é obtida a distância city-block e quando L = 2 é calculada a

distância euclidiana. O parâmetro ξk especifica o peso aplicado à componente k [12].

O espaço de cor RGB, apesar de ser amplamente utilizado, não se mostra

eficaz para medir a similaridade entre cores através do cálculo da distância

euclidiana, pois não é um espaço de cores perceptualmente uniforme, ou seja, não

necessariamente uma distância euclidiana pequena significa cores visualmente

similares [18, p. 130].

Em 1976, a Comissão Internacional sobre Iluminação especificou os espaços

de cores CIE L*a*b* e CIE L*u*v* cujas coordenadas são funções não-lineares em

um espaço tridimensional. Esses espaços são perceptualmente uniformes e se

aproximam da percepção humana de similaridade quando calculadas distâncias

euclidianas entre duas cores [19].

Os espaços de cores HSV (Hue, Saturation, Value) e HSL (Hue, Saturation,

Lightness) também utilizam 3 componentes para representar a cor. Ambas

apresentam dois componentes de tom e saturação para especificar a cor, mais um

componente que define a luminosidade (Value ou Lightness). Essa é uma forma

mais natural de se descrever as cores percebidas [18, p. 130].

18

Page 19: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A escala de cinza é um domínio de tons monocromáticos do preto para o

branco, ou seja, formado apenas por tons de cinza [20]. Existem diversos algoritmos

conhecidos que se propõem a converter imagens coloridas para escala de cinza

[21].

A Figura 3 mostra o detalhe de uma imagem carregada no OpenCV no

padrão RGB1. A Figura 4 mostra uma imagem carregada em escala de cinza.

1O OpenCV, por padrão, faz a leitura de forma inversa dos canais, por isso utiliza a

sigla BGR [22].

Figura 3: Pixels em RGB. Figura 4: Pixels em Escala de Cinza.

19

Page 20: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

2.4 Histograma de Imagem Digital

Histograma [18, p. 145] é uma tabela que contém o número de pixels para

cada valor possível de uma ou mais imagens, mostrando a frequência de ocorrência

de cada cor/tonalidade. Computacionalmente, um histograma é um array que

contém um número de elementos referentes ao domínio dos pixels e cada elemento

carrega o número de registros daquele valor de pixel encontrado. Um histograma

normalizado substitui o número absoluto pelo percentual encontrado na amostra.

2.5 Imagem Integral

A utilização da imagem integral surge a partir da necessidade de se somar os

valores dos pixels de regiões de interesse de uma forma eficiente [18, p. 183]. A

imagem integral é obtida iterando sobre todos os pixels da imagem e cada pixel

passa a ter o valor da soma do quadrante esquerdo superior até aquele ponto. A

partir dessa matriz é possível se obter a soma de pixels de uma região de interesse

executando apenas 3 operações algébricas [18, p. 185].

20

Page 21: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

Na Figura 5, é possível obter a soma dos pixels contidos no retângulo ABCD

com a operação D-C-B+A.

2.6 Segmentação

Segmentação é o processo de particionar a imagem em regiões homogêneas

e significativas e é um problema fundamental na área da visão computacional e

processamento de imagens. O resultado da segmentação pode ser utilizado por

diversos algoritmos mais complexos na área de reconhecimento de padrões e

objetos, classificação de imagens, entre outros [23].

Figura 5: Ilustração de imagem integral [18]

21

Page 22: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

2.7 Erosão e Dilatação (Filtros Morfológicos)

A morfologia matemática é uma teoria desenvolvida para processamento de

imagens discretas. Ela define uma série de operadores que transformam a imagem

ao varrê-la com uma forma predefinida, modificando o valor dos pixels. A Figura 6

ilustra um elemento estrutural que abrange 9 pixels. O elemento central é chamado

de ponto âncora e pode ser atribuído a qualquer coordenada dentro do elemento,

não necessariamente no centro.

Erosão e dilatação [18, p. 198] são dois operadores morfológicos

fundamentais. A erosão substitui o ponto âncora pelo menor valor encontrado no

conjunto. A dilatação é o complemento da erosão e substitui o pixel pelo maior

elemento encontrado no conjunto.

Tais métodos podem ser combinados. A erosão de uma imagem dilatada é

chamado de fechamento e a dilatação de uma imagem erodida é chamada de

Figura 6: Exemplo de elemento estrutural a definir

o conjunto de pixels na operação.

22

Page 23: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

abertura. Eles podem ser utilizados na eliminação de ruídos para uma posterior

extração de dados.

2.8 Imagem Binária

Imagem binária é uma imagem cujos pixels só podem receber 2 valores

possíveis. Pode ser obtida e aplicada de diversas formas, dentre elas: como

resultado de operações lógicas com imagens [18, p. 101], como retorno de métodos

de segmentação [24], utilizada como argumento para delimitar áreas de

processamento de um método [18, p. 63], entre outras.

23

Page 24: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

3 TRABALHOS RELACIONADOS

Neste capítulo, serão apresentadas técnicas utilizadas para localização de

objetos e identificação de caracteres com a finalidade de obter dados de uma placa

de carro em uma imagem.

3.1 Detecção rápida de objetos utilizando um classificador em cascata [4]

O método proposto em [4] propõe a utilização de uma série de classificadores

para a identificação de objetos através de um algoritmo de aprendizagem. São

utilizados retângulos sobre a imagem para computar as características dos objetos

e, com a utilização da imagem integral, a operação é realizada com poucas

operações matemáticas.

Figura 7: Tipos de retângulos utilizados [4]

24

Page 25: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A Figura 7 mostra os tipos de retângulos utilizados para varrer as imagens e

perceber suas características. É utilizada a diferença entre as partes claras e

escuras dos retângulos.

A Figura 8 ilustra a utilização dos retângulos em um rosto para captar

padrões. Uma janela de 24x24 pixels contém mais de 180.000 características. O

desafio do algoritmo de aprendizagem é precisar quais retângulos melhor

representam a imagem, ou seja, as nuances que as imagens compartilham.

Além das imagens com os objetos em evidência, também chamadas de

amostras ou imagens positivas, o algoritmo que gera o classificador recebe como

parâmetros imagens que não contém os objetos nas imagens, chamadas de

amostras ou imagens negativas. Dessa forma, é possível comparar as

características obtidas nas imagens positivas com as das negativas e decidir as que

melhor representam os objetos.

É importante escolher imagens negativas que façam parte do cotidiano de

captação, assim o classificador evitará os falsos positivos. As imagens negativas

também são chamadas de imagens de plano de fundo (background images).

Figura 8: Aplicação do retângulo para armazenar caraterísticas de faces [4]

25

Page 26: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

Para melhorar a eficiência desse método, é implementado o algoritmo de

aprendizagem AdaBoost [4], que constrói uma estrutura em cascata e aloca um

classificador em cada nível. Os níveis iniciais utilizam classificadores fracos e os

níveis posteriores aumentam a especificidade da característica que se quer avaliar.

Dessa forma, no momento da varredura de uma imagem para detecção dos objetos,

são descartadas janelas que não passam nos níveis iniciais, o que aumenta a

eficiência, pois não é necessário percorrer todos os níveis do classificador para

atestar que a imagem não corresponde ao padrão procurado.

A Figura 9 mostra os estágios que uma sub-janela da imagem é submetida e

a necessidade de se passar por todos os estágios da cascata para se constatar que

se trata de uma amostra positiva.

Neste trabalho, esse método será utilizado para varrer a imagem em busca

de possíveis placas de automóveis comuns.

Figura 9: Representação da cascata de detecção [4]

26

Page 27: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

3.2 Detecção de texto e reconhecimento de caracteres [25]

A proposta apresentada em [25] utiliza um método proposto e testado [6] para

a localização de texto e classificação de caracteres em uma imagem. Os autores

adotam um classificador baseado em uma única camada de uma rede neural

convolucional (Single Layer Convolutional Neural Network).

A Figura 10 ilustra o passo-a-passo desde a imagem original, os filtros

aplicados e o resultado como características computáveis. Uma imagem com d

canais é submetida ao algoritmo. Inicialmente, um kernel ou filtro itera sobre os

pixels dessa imagem e por meio de uma função gera uma representação dela. Por

fim, obtém-se a soma dos quadrantes da representação da imagem para gerar os

recursos do classificador. O parâmetro s indica o stride ou passo dado pelo kernel

entre a obtenção dos dados da imagem original, w é o tamanho do kernel e n o

tamanho da imagem.

Neste trabalho, esse modelo será utilizado pela ferramenta de classificação

de caracteres.

27

Figura 10: Modelo de extração de característica de uma imagem [6]

Page 28: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

3.3 Robust License-Plate Recognition Method for Passing Vehicles Under

Outside Environment [26]

O trabalho [26] introduz alguns conceitos para se obter os dados de placas de

veículos. Os autores discorrem sobre a dificuldade de se obter um padrão de

captação de imagens e constroem um sistema com dois sensores para aumentar a

possibilidade da correta captação da imagem, com variação de iluminação possível

para se obter a imagem. O trabalho também apresenta os passos do pipeline para

se obter os dados: binarização da imagem, extração dos caracteres, identificação de

possíveis locais onde estão os dados a serem coletados e a identificação dos

caracteres de forma individual. Este trabalho será usado como referência para o

processo de segmentação e localização dos caracteres nas placas.

28

Page 29: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

4 DESENVOLVIMENTO

Este capítulo apresenta os passos do programa de identificação de placas

fim-a-fim de modo prático. São eles: a localização da placa nas imagens, a avaliação

dos contornos para segmentação dos caracteres junto com o descarte de falsos

positivos e a identificação de cada caractere.

4.1 Treinamento do classificador para localizar placas na imagem

Foram utilizadas 150 imagens de placas de veículos no tamanho 80 pixels de

largura e 30 de altura. A Figura 11 mostra algumas das imagens utilizadas para

treinar o classificador. O programa utilizado para criar o classificador é nativo da

biblioteca OpenCV (opencv_traincascade) [27] e demanda alguns parâmetros como

o número de estágios da cascata, a taxa de acerto mínima em cada estágio, a taxa

máxima de alarmes falsos por estágio, o tamanho das imagens positivas e uma

coleção de imagens negativas (background).

29

Page 30: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A taxa de iluminação nas imagens é uma variável importante na localização

de uma possível placa. Diversos fatores influenciam a iluminação, como horário e

local, sombra, etc.. Para contornar esse problema, NAITO [26] utiliza dois sensores

que capturam a mesma imagem. Um dos sensores tem um tempo de exposição alto

e o outro baixo. As imagens são combinadas de modo a aumentar a gama de

variações de luz. Esse método não foi adotado neste trabalho e os testes foram

realizados com apenas uma fonte de captação.

4.2 Retirada dos caracteres das imagens

Para gerar uma imagem binária que destaca os contornos das letras, foi

aplicado o filtro de mediana que utiliza a mediana dos valores dos pixels naquela

vizinhança para ser o novo valor do pixel selecionado.

30

Figura 11: Exemplos de placas utilizadas para treinar o classificador

Page 31: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

Além disso, foi utilizado um filtro baseado no operador laplaciano com o

intuito de aumentar a nitidez da imagem [18, p. 92]. Neste filtro, o kernel (ilustrado na

Figura 12) itera sobre os pixels da imagem e cria um novo valor daquele pixel como

mostrado na Equação 2. O novo valor recebe o valor atual multiplicado por 5 e são

subtraídos os valores dos pixels de cima, de baixo, do lado direito e do lado

esquerdo daquele pixel.

nítido=5(atual)−esquerda−direita−cima−baixo

Expressão 2: Aumento de nitidez

Onde atual é o pixel central, e as outras variáveis são as posições com

relação a esse pixel.

O método de limiarização (thresholding) [28] é adaptável dentro de uma

janela de 1% da área da imagem. Por fim, é aplicado um filtro de dilatação na

imagem para eliminar ruídos que tenham permanecido na imagem.

Figura 12: kernel utilizado para aumentar a nitidez da

imagem

31

Page 32: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A Figura 13 mostra alguns resultados obtidos após o processo de aplicação

dos filtros e da binarização com o intuito de ressaltar letras e números da placa.

Após a binarização e filtragem, ainda são encontrados diversos falsos

positivos. Para não processar essas imagens indesejáveis e garantir que serão

extraídos os contornos corretos das imagens, são selecionados apenas contornos

que estejam centralizados verticalmente na imagem, que não sejam muito pequenos

(devem ser maiores que 10% da altura da imagem e maiores que 1% da largura da

imagem) ou muito grandes (devem ser menores que ½ altura da imagem). O

resultado dessa seleção e eliminação deve ser 7 contornos que representam as

letras e números da placa.

Alguns conceitos sobre a segmentação para extração dos caracteres e

eliminação de ruídos foram retirados da Internet [29] e do artigo do NAITO [26].

Essas ideias foram adaptadas para o padrão brasileiro de placas.

Figura 13: Placas binarizadas

32

Page 33: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A Figura 14 mostra retângulos de cor cinza delimitando os contornos

selecionados. Após esse processo são retirados contornos internos como os dos

zeros da figura. Os falsos positivos encontrados são descartados ao não atenderem

o padrão de 7 contornos nas especificações supracitadas.

4.3 Identificação do caractere

Esta seção introduz os conceitos utilizados para a identificação do caractere

que são aplicados após a etapa de segmentação.

Figura 14: Contornos selecionados

33

Page 34: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

4.3.1 Classificação inicial

A identificação dos caracteres de texto é obtida através do método proposto

no trabalho de COATES e NG [6], e utiliza uma Rede Neural com uma Camada

Convolucional Única e um classificador linear. O OpenCV, através de sua biblioteca

colaborativa de texto, implementa o método e disponibiliza um classificador com os

caracteres da língua inglesa [5].

4.3.2 Melhoramento na classificação

Resultados preliminares, utilizando-se o método de COATES e NG [6],

mostraram que alguns caracteres das placas foram erroneamente classificados.

Buscando-se aprimorar a taxa de acertos, este trabalho propõe a criação de uma

etapa de pós-processamento que verifica a possibilidade de a classificação estar

errada a partir de características da letra/número e da posição em que este se

encontra na placa. No Brasil, as placas são compostas por 7 caracteres, dos quais

os 3 primeiros são sempre letras e os 4 últimos números. Caso o método verifique

falha, a reclassificação do caractere é realizada.

Os melhoramentos foram feitos para corrigir certas classificações errôneas

que ocorreram com frequência nos testes preliminares. Por exemplo, no caso de

algumas letras que são classificadas como minúsculas, como ‘k’, ‘v’, ‘c’, ‘y’, porém

são capitalizadas. Outro exemplo é o caso da letra ‘A’, que foi percebida como um

número ‘4’ em diversos casos. Da mesma forma, as letras ‘B’ e ‘E’ foram

classificadas como o número ‘8’ em alguns momentos. Além disso, alguns testes

retornaram ‘l’ ao invés do número ‘1’.

34

Page 35: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A Figura 15 mostra os contornos percebidos pelo procedimento de

melhoramento da classificação. Inicialmente, a imagem é invertida e, a partir das

coordenadas e do número de contornos, é possível verificar de quais números se

tratam. Por exemplo, no caso do número ‘8’, o classificador inicial determinou que se

tratava da letra ‘E’. Após o procedimento, que verificou a posição do caractere e a

existência de dois contornos de tamanhos expressivos na imagem, o número foi

classificado corretamente.

No caso do número ‘6’ e do número ‘9’, o método verifica a posição do

contorno interno. Se o meio do contorno (no eixo das ordenadas) estiver abaixo da

metade do tamanho do caractere, este é classificado como ‘6’, e se estiver acima,

como ‘9’.

Esse método é eficiente para as placas do Brasil mas pode ser adaptado para

placas de veículos de outros países quando houver algum padrão que restrinja o uso

dos caracteres com relação a sua posição.

Figura 15: Contornos internos realçados

35

Page 36: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

5 TESTES

Testes foram realizados com o objetivo de se verificar a acurácia do

localizador de placas pelo método de cascata de Haar, bem como da identificação

das placas a partir dos contornos e do classificador de caracteres. As imagens

utilizadas nos testes foram obtidas através de um celular do modelo Motorola Moto

X4 [30] acoplado a um tripé com 1 metro de altura, a uma distância de cerca de 3

metros das placas, de forma que se enxergasse não somente a placa, mas também

a frente ou a traseira do carro. As imagens foram capturadas entre 6:15 hs e 6:45 hs

da manhã em diferentes posições com relação ao sol. As imagens têm 4032 x 3024

pixels. Foram utilizadas 150 imagens para o teste. A Figura 16 mostra algumas

miniaturas das imagens utilizadas.

36

Figura 16: Algumas imagens utilizadas no teste

Page 37: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

A placa foi corretamente localizada em 79% dos casos e em 49% dos testes o

pipeline funcionou corretamente, ou seja, em 74 casos a placa contida na imagem

foi localizada e plenamente decodificada. Sem os melhoramentos o índice de

sucesso total chega a somente 6%. Esse índice baixo pode ser explicado pela

utilização de um único classificador para letras e números e pela dificuldade de se

diferenciar certas letras como ‘Q’ e ‘J’, que são constantemente classificadas como

‘O’ e ‘I’, respectivamente. Há ainda o caractere ‘0’ (zero), que em diversas vezes foi

classificado como a vogal ‘O’.

Do total de caracteres que foram classificados, cerca de 62% foram

corretamente identificados somente utilizando o método de classificação proposto

por Coates [25]. Após a execução da nova etapa proposta para melhoria da

classificação, esse número subiu para 78%, ou seja, houve melhoria de 16% na taxa

de acerto.

A Figura 17 mostra um gráfico com os resultados obtidos separados por

caracteres corretamente reconhecidos, incluindo a execução da etapa de melhoria

da classificação proposta. A Tabela 1 compara os resultados antes e depois da

aplicação da etapa de melhoria apresentada no tópico 4.3.1.

37

Page 38: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

Tabela 1: Resultados obtidos

Placas (com

acerto de 7

caracteres)

Placas (com

acerto de 5

ou mais

caracteres)

Caracteres

Totais

Classificação inicial 9 (6%) 85 (57%) 647 (62%)Após Melhoramento 74 (49%) 112 (75%) 815 (78%)

0 1 2 3 4 5 6 70

10

20

30

40

50

60

70

80

32

1 0 2 3

11

27

74

Teste de reconhecimento fim-a-fim

Caracteres corretamente identificados

me

ro d

e p

laca

s

Figura 17: Gráfico que mostra o número de placas separados pelo número de caracteres identificados

38

Page 39: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

6 CONCLUSÕES E TRABALHOS FUTUROS

Este trabalho apresentou uma proposta de melhoria para o método de

classificação de caracteres de NG e COATES [6], que foi utilizado por meio de um

classificador previamente treinado disponível no módulo de texto [5] disponível na

biblioteca OpenCV. O classificador foi utilizado para detectar caracteres em placas

de veículos, que haviam sido previamente detectadas na imagem utilizando-se o

método de classificação por cascata Haar.

O método de classificação utiliza uma camada de rede neural convolucional

[25] para a classificação dos caracteres. Resultados de testes preliminares

mostraram que a combinação obteve uma eficiência de 62% de acerto no total de

caracteres identificados. Buscando-se melhorar a taxa de acerto, uma nova etapa

com alguns melhoramentos e reclassificações baseadas nas posições dos símbolos

nas placas foi implementada. Testes mostraram que, com a adição desta etapa, a

taxa de acerto foi de 78%.

No decorrer dos testes realizados, ficou perceptível que desenvolver um

sistema fim-a-fim de extração de dados de uma imagem traz uma série de

dificuldades e variáveis, como a incidência de luz e suas fontes, o dispositivo de

entrada de dados que gera as imagens, a variação de padrões de um objeto de uma

mesma classe (diferentes tipos de placas), a aparição de falsos positivos, etc.

O melhoramento aplicado na etapa de identificação de caracteres se mostrou

fundamental para atingir um índice considerável na detecção fim-a-fim. O

classificador sem o melhoramento apenas conseguiu obter um sucesso de 6% na

detecção de placas em sua integridade sobre as imagens avaliadas. Essa etapa

posterior à classificação elevou esse número para 49%.

O próximo desafio se torna aprimorar o algoritmo e aperfeiçoar as formas de

obtenção dos dados, bem como a parte de extração das letras e números da placa

39

Page 40: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

para torná-lo mais flexível e geral, aumentando a abrangência das imagens

possíveis de serem avaliadas.

40

Page 41: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

REFERÊNCIAS BIBLIOGRÁFICAS

1. SILVA, S. M.; JUNG C. R., Real-Time Brazilian License Plate Detection and

Recognition Using Deep Convolutional Neural Networks, Conference on Graphics,

Patterns and Images (SIBGRAPI), 2017

2. OpenCV, OpenCV: Modules. Disponível em:

<https://docs.opencv.org/3.4.1/modules.html> Acesso em:

3. OpenCV, OpenCV: Object Detection. Disponível em:

<https://docs.opencv.org/3.4.1/d5/d54/group__objdetect.html> Acesso em: 07 jun.

2018

4. VIOLA, P.; JONES, M., Rapid object detection using a boosted cascade of simple

features, Computer Vision and Pattern Recognition, 2001

5. OpenCV, Scene Text Recognition. Disponível em:

<https://docs.opencv.org/3.4/d8/df2/group__text__recognize.html> Acesso em: 23

mai. 2018

6. COATES, A.; LEE, H.; NG, A., An Analysis of Single-Layer Networks in

Unsupervised Feature Learning, Proceedings of Machine Learning Research, 2011

7. ADOBE, Adobe Photoshop Essentials. Disponível em:

<https://helpx.adobe.com/photoshop/using/image-essentials.html> Acesso em: 20

mar. 2018

8. LAVARÈNE, Chaix de; ALLEYSSON, David; HÉRAULT Jeanny, Practical

implementation of LMMSE demosaicing using luminance and chrominance spaces,

Computer Vision and Image Understanding, 2007

9. SHEETS, Kristopher, What is a digital Image?. Disponível em:

<https://sites.google.com/site/learnimagej/image-processing/what-is-a-digital-image>

Acesso em: 14 mar. 2018

10. KUBOTA, Satoru. et al., 5.1: Influence of Pixel Density on the Image Quality of

Smartphone Displays, Symposium Digest of Technical Papers, 2015

11. MCHUGH, S, Understanding Digital Image Interpolation. Disponível em:

<https://www.cambridgeincolour.com/tutorials/image-interpolation.htm> Acesso em:

16 mar. 2018

12. LUKAC, Rastislav. et al., Vector Filtering for Color Imaging, IEEE Signal

Processing Magazine, 2005

41

Page 42: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

13. GUPTA, M. R.; CHEN, T., Vector color filter array demosaicing, Sensors and

Camera Systems for Scientific, Industrial, and Digital Photography Applications II,

2001

14. MCHUGH, S, Cambridge in Colour - Sensores em Câmeras Digitais. Disponível

em: <https://www.cambridgeincolour.com/pt-br/tutoriais/camera-sensors.htm>

Acesso em: 16 mar. 2018

15. LOGNIVENKO, Alexander D, An object-color space, Journal of Vision, 2009

16. Cambridge in Colour, Color Management: Understanding Color Spaces.

Disponível em: <https://www.cambridgeincolour.com/tutorials/color-spaces.htm>

Acesso em: 19 mar. 2018

17. NAVE, C. R., CIE Color System. Disponível em: <http://hyperphysics.phy-

astr.gsu.edu/hbase/vision/cie.html> Acesso em: 03 jun. 2018

18: LAGANIERE, R. , OpenCV 3 Computer Vision Application Programming

Cookbook, 2017. 573 p.

19. Commission Internationale de L'éclairage, Colorimetry — Part 4: CIE 1976 L*a*b*

Colour Space. Disponível em: <http://www.cie.co.at/publications/colorimetry-part-4-

cie-1976-lab-colour-space> Acesso em: 20 mar. 2018

20. CHRISTENSSON, P., Tech Terms: Grayscale Definition. Disponível em:

<https://techterms.com/definition/grayscale> Acesso em: 21 mar. 2018

21. HELLAND, T., Seven grayscale conversion algorithms (with pseudocode and VB6

source code). Disponível em: <http://www.tannerhelland.com/3643/grayscale-image-

algorithm-vb6/> Acesso em: 21 mar. 2018

22. OpenCV, OpenCV: Image file reading and writing. Disponível em:

<https://docs.opencv.org/3.4.0/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd

651fce07b3bbd3a56> Acesso em: 22 mar. 2018

23. HUANG, R. et al., Image segmentation via coherent clustering in L a b color∗ ∗ ∗

space, Pattern Recognition Letters, 2011

24. MathWorks, Image Thresholding - MATLAB & Simulink. Disponível em:

<https://www.mathworks.com/discovery/image-thresholding.html> Acesso em: 22

mar. 2018

25. COATES, A. et al., Text Detection and Character Recognition in Scene Images

with Unsupervised Feature Learning, Document Analysis and Recognition (ICDAR),

2011

42

Page 43: UNIVERSIDADE FEDERAL FLUMINENSE CAIO VIEIRA COELHO · fim de reconhecimento de placas de veículos [1]. Neste trabalho, foram utilizados módulos disponíveis na biblioteca de visão

26. NAITO, T.; et al., Robust license-plate recognition method for passing vehicles

under outside environment, , 2000

27. OpenCV, . Disponível em:

<https://docs.opencv.org/3.4.1/dc/d88/tutorial_traincascade.html> Acesso em: 20

mai. 2018

28. OpenCV, OpenCV: Image Thresholding. Disponível em:

<https://docs.opencv.org/3.4.1/d7/d4d/tutorial_py_thresholding.html> Acesso em: 13

jun. 2018

29. ROSEBROCK, A., Segmenting characters from license plates | PyImageSearch

Gurus. Disponível em: <https://gurus.pyimagesearch.com/lesson-sample-

segmenting-characters-from-license-plates/#> Acesso em: 13 jun. 2018

30. MOTOROLA, Moto X4 Motorola - Especificações. Disponível em:

<https://motorola-global-portal-pt.custhelp.com/app/home/device/motorola/moto-x4-

android-oreo/specifications> Acesso em: 03 jun 2018

43