• Nenhum resultado encontrado

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

N/A
N/A
Protected

Academic year: 2021

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

Copied!
43
0
0

Texto

(1)

UNIVERSIDADE FEDERAL FLUMINENSE

CAIO VIEIRA COELHO

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

Niterói

2018

(2)

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

(3)
(4)

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

(5)

Dedico este trabalho a minha mãe Eloina (in

memoriam) e ao meu pai Ozéas por sempre

(6)

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.

(7)

RESUMO

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

(8)

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

(9)

LISTA DE TABELAS

(10)

LISTA DE EXPRESSÕES MATEMÁTICAS

Expressão 1...18 Expressão 2...31

(11)

LISTA DE ABREVIATURAS E SIGLAS

CFA – Color Filter Array

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

(12)

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

(13)

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

(14)

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.

(15)

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.

(16)

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]

(17)

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]

(18)

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 xi =

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

d (xi, xj)=|| xixj||L=(

k=1 3 ξk | xikxjk|L ) 1 L

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].

(19)

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.

(20)

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].

(21)

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]

(22)

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.

(23)

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.

(24)

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]

(25)

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]

(26)

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]

(27)

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

(28)

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.

(29)

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).

(30)

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

(31)

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

(32)

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

(33)

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

(34)

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’.

(35)

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

(36)

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

(37)

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.

(38)

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 7 0 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

N ú m e ro d e p la ca s

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

(39)

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

(40)

para torná-lo mais flexível e geral, aumentando a abrangência das imagens possíveis de serem avaliadas.

(41)

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

(42)

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

(43)

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

Referências

Documentos relacionados

Após a colheita, normalmente é necessário aguar- dar alguns dias, cerca de 10 a 15 dias dependendo da cultivar e das condições meteorológicas, para que a pele dos tubérculos continue

Para preparar a pimenta branca, as espigas são colhidas quando os frutos apresentam a coloração amarelada ou vermelha. As espigas são colocadas em sacos de plástico trançado sem

Na apropriação do PROEB em três anos consecutivos na Escola Estadual JF, foi possível notar que o trabalho ora realizado naquele local foi mais voltado à

Declaro que fiz a correção linguística de Português da dissertação de Romualdo Portella Neto, intitulada A Percepção dos Gestores sobre a Gestão de Resíduos da Suinocultura:

No código abaixo, foi atribuída a string “power” à variável do tipo string my_probe, que será usada como sonda para busca na string atribuída à variável my_string.. O

Na fachada posterior da sede, na parte voltada para um pátio interno onde hoje há um jardim, as esquadrias não são mais de caixilharia de vidro, permanecendo apenas as de folhas

dois gestores, pelo fato deles serem os mais indicados para avaliarem administrativamente a articulação entre o ensino médio e a educação profissional, bem como a estruturação

A regulação da assistência, voltada para a disponibilização da alternativa assistencial mais adequada à necessidade do cidadão, de forma equânime, ordenada, oportuna e