43
Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando Redes Neurais Convolucionais em um Processador de Aplicação Específica Universidade Federal de Pernambuco [email protected] www.cin.ufpe.br/~secgrad Recife 2019

Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

Ítalo Rodrigo Barbosa Paulino

Reconhecimento de Placas de Veículos Brasileiros em Tempo Realutilizando Redes Neurais Convolucionais em um Processador de

Aplicação Específica

Universidade Federal de [email protected]

www.cin.ufpe.br/~secgrad

Recife2019

Page 2: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

Ítalo Rodrigo Barbosa Paulino

Reconhecimento de Placas de Veículos Brasileiros em Tempo Realutilizando Redes Neurais Convolucionais em um Processador de

Aplicação Específica

Trabalho apresentado ao Programa de Gradução em Enge-nharia da Computação do Centro de Informática da Univer-sidade Federal de Pernambuco como requisito parcial paraobtenção do grau de Bacharel em Engenharia da Computa-ção.

Área de Concentração: Deep Learning, SistemasEmbarcadosOrientadora: Edna Natividade da Silva Barros

Recife2019

Page 3: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

Dedico este trabalho aos meus pais Gustavo e Márcia,

à minha avó Lindinalva e à minha irmã Thayrla.

Page 4: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

AGRADECIMENTOS

São muitas as pessoas que de certa forma contribuíram na minha caminhada durantea graduação. Aqui neste espaço não caberia meus sinceros agradecimentos a cada uma delasindividualmente. Farei de tudo para resumir sem deixar de incluir alguém.

Em primeiro lugar gostaria de agradecer a Deus, sem a sua imensa bondade e orientaçãoeu não estaria onde estou neste momento. Devo tudo a Ele.

Agradeço também aos meus pais Gustavo e Márcia, vocês sempre foram e serão exemplosde pessoas que eu sempre irei me espelhar. Muito obrigado por me criarem tão bem, semprepriorizando a minha educação, me incentivando nas minhas escolhas e não deixando faltar nada.Sou eternamente grato a vocês, espero algum dia retribuir um pouco de tudo isso, pois sei quetudo seria impossível.

Agradeço à minha avó Lindinalva, a senhora sempre será muito mais do que uma segundamãe para mim. Todas as manhãs que eu acordava para ir à faculdade, o primeiro bom dia sempreera dela. Muito obrigado por ser bastante paciente comigo e sempre compartilhar da sua imensaexperiência de vida, ainda tenho muito o que aprender com a senhora.

Agradeço à minha irmã Thayrla, seu companheirismo e cumplicidade fazem toda adiferença. É sempre bom contar com uma mente mais jovem dentro de casa. Fico muito contentequando posso compartilhar um pouco da minha curta experiência com você e a mesma coisaquando o contrário acontece. Obrigado.

Agradeço ao restante dos meus familiares que de alguma forma deixaram sua contribuiçãona minha carreira acadêmica, desde o momento que eu passei no vestibular até o presentemomento.

Deixo também meus agradecimentos aos professores do Centro de Informática que decerta forma contribuíram no meu crescimento pessoal e acadêmico, em especial a professoraEdna Barros que me orientou tão bem neste trabalho, sempre com paciência e uma enormeexperiência. Eu e muitos outros alunos do CIn somos muito gratos à senhora, por sempre seruma pessoa empenhada e que motiva os outros, fazendo com que o caminho da graduação sejaum pouco menos difícil. Por mais professores como a senhora.

Não posso deixar de agradecer aos amigos que fiz durante a graduação, em especialos que entraram junto comigo no primeiro semestre de 2014, a troca de experiências foi algoespetacular. Agradeço também aos meus amigos que vieram bem antes da graduação que, mesmoeu estando ausente algumas vezes, sempre soube que eu poderia contar.

Por fim, agradeço a toda a equipe de funcionários que fazem do Centro de Informáticaum ótimo lugar de trabalho e convivência. Desde 2014 o CIn é como uma segunda casa pra mime vocês tem contribuição nisso.

Muito obrigado!

Page 5: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

“Tudo é possível. O impossível apenas demora mais."

–Dan Brown

Page 6: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

ABSTRACT

Automatic license plate recognition has been a subject of constant research, where thereis a range of applications in real-world scenarios such as parking control, stolen vehicle detection,and even toll collection. With the popularization of GPUs, solutions based on ConvolutionalNeural Networks are state of the art regarding the detection and recognition of automobile licenseplates. However, such solutions make real-time execution in embedded systems impossible dueto the high processing cost. Thus, the present work proposes an approach for the recognitionof Brazilian automobile standard plates using a Convolutional Neural Networks architecturefocused on an application-specific processor, thus allowing real-time detection and recognitionwithout the need for cloud processing. The results show that using the proposed architecture,and it is possible to achieve a rate of 24 frames per second and still obtain a 98.02% accuracyrate of the characters present in the plates.

Keywords: Embedded Systems, Deep Learning, Neural Networks, ALPR

Page 7: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

RESUMO

Reconhecimento automático de placas de automóveis vem sendo um tema de constantepesquisa, onde há uma gama de aplicações em cenários reais como controle de estacionamento,detecção de veículos roubados e até mesmo cobrança de pedágio. Com a popularização dasGPU’s, soluções baseadas em Redes Neurais Convolucionais são o estado da arte no que dizrespeito à detecção e reconhecimento de placas automotivas. Porém, tais soluções inviabilizam aexecução em tempo real em sistemas embarcados por conta do alto custo de processamento. Destaforma, o presente trabalho propõe uma abordagem para reconhecimento de placas do padrãobrasileiro de automóveis utilizando uma arquitetura de Redes Neurais Convolucionais voltadapara um processador de aplicação específica, permitindo assim detecção e reconhecimentoem tempo real sem a necessidade de processamento em nuvem. Os resultados mostram que,utilizando a arquitetura proposta, é possível atingir uma taxa de 24 quadros por segundo e, aindaassim, obter uma taxa de 98,02% de acerto dos caracteres presentes nas placas.

Palavras-chave: Sistemas Embarcados, Aprendizagem Profunda, Redes Neurais, Reconheci-mento automático de placas de veículos

Page 8: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

LISTA DE FIGURAS

Figura 1 – Resultado de uma convolução de uma imagem 5x5x1 com um filtro 3x3x1 15Figura 2 – Representação dos dois tipos de pooling . . . . . . . . . . . . . . . . . 16Figura 3 – Camada totalmente conectada . . . . . . . . . . . . . . . . . . . . . . 17Figura 4 – Arquitetura completa de uma CNN que classifica dígitos manuscritos . 17Figura 5 – Arquitetura Darknet-53 (Redmon & Farhadi, 2018) . . . . . . . . . . . 18Figura 6 – Representação da saída do YOLO para uma imagem com dimensões

608x608x3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Figura 7 – Fluxo da abordagem proposta . . . . . . . . . . . . . . . . . . . . . . 21Figura 8 – Um filtro de convolução convencional (a) é substituído por duas opera-

ções: (b) depthwise convolution e (c) pointwise convolution (Howardet al., 2017) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Figura 9 – Exemplos de imagens presentes na base de dados . . . . . . . . . . . . 24Figura 10 – Passos para a geração de uma placa sintética no formato brasileiro . . 29Figura 11 – Sipeed Maixduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Figura 12 – Pipeline do sistema de reconhecimento de placas . . . . . . . . . . . . 33

Figura 13 – Matriz de confusão da CNN de reconhecimento não quantizada . . . . 37Figura 14 – Matriz de confusão da CNN de reconhecimento quantizada . . . . . . 37Figura 15 – Exemplos de placas reconhecidas incorretamente (esquerda) e correta-

mente (direita) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

Page 9: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

LISTA DE TABELAS

Tabela 1 – Arquitetura proposta utilizando MobileNet como backend no YOLOv3 23Tabela 2 – Parâmetros utilizados no treinamento da CNN de detecção . . . . . . . 25Tabela 3 – Arquitetura de reconhecimento de placas baseada em (Stark et al., 2015) 26Tabela 4 – Arquitetura de reconhecimento de placas proposta pelo trabalho . . . . 27Tabela 5 – Parâmetros utilizados no treinamento da CNN de reconhecimento . . . 30Tabela 6 – Comparação do tamanho dos modelos antes e depois da quantização . . 32

Tabela 7 – Resultados da avaliação da CNN de reconhecimento . . . . . . . . . . 35Tabela 8 – Comparação das acurácias da arquitetura proposta com o trabalho de

(Izidio et al., 2018) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36Tabela 9 – Comparação entre os tempos de processamento de cada arquitetura . . . 36

Page 10: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

LISTA DE ACRÔNIMOS

ALPR Automatic License Plate RecognitionBLE Bluetooth Low Energy

CAPTCHACompletely Automated Public Turing test to tell Computers andHumans Apart

CNN Convolutional Neural NetworkFCN Fully Convolutional NetworkFPS Frames per SecondGPU Graphics Processing UnitILSVRC ImageNet Large Scale Visual Recognition ChallengeIoT Internet of ThingsMNIST Modified National Institute of Standards and TechnologyReLU Rectified Linear UnitRGB Padrão de cores (Red, Green, Blue)YOLO You Only Look Once

Page 11: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.1 MOTIVAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.3 ESTRUTURA DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . 13

2 CONCEITOS BÁSICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . 142.1 REDE NEURAL CONVOLUCIONAL (CNN) . . . . . . . . . . . . . . . . 142.2 YOLO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

3 ABORDAGEM PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . 203.1 DETECÇÃO DAS PLACAS . . . . . . . . . . . . . . . . . . . . . . . . . 203.1.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.1.2 Treinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2 RECONHECIMENTO DAS PLACAS . . . . . . . . . . . . . . . . . . . . 253.2.1 Arquitetura . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 253.2.2 Geração de placas sintéticas . . . . . . . . . . . . . . . . . . . . . . . . . 283.2.3 Treinamento e transfer learning . . . . . . . . . . . . . . . . . . . . . . . 293.3 SISTEMA FINAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.1 Plataforma utilizada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.3.2 Conversão dos modelos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 323.3.3 Aplicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.1 CNN DE DETECÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 344.2 CNN DE RECONHECIMENTO . . . . . . . . . . . . . . . . . . . . . . . 344.3 AVALIAÇÃO DO SISTEMA FINAL . . . . . . . . . . . . . . . . . . . . . 35

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Page 12: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

111111

1INTRODUÇÃO

1.1 MOTIVAÇÃO

Com o aumento das tecnologias presentes no trânsito como câmeras e radares, o reco-nhecimento automático de placa de veículos (ALPR) vem sendo um tema de pesquisa bastanteexplorado nos últimos anos (Du et al., 2012), isso se deve à possibilidade de aplicação emcenários como cobrança de pedágio, detecção de veículos roubados, controle de acesso e controlede tráfego. Em Piedmont, Califórnia foi implementado um sistema de ALPR em carros de políciae nos primeiros seis meses 275 veículos roubados foram recuperados. Em Londres utilizou-seum sistema ALPR para controle de rodízio de carros e com tal sistema foi possível reduzir em30% o congestionamento e arrecadar o equivalente a US$ 274 milhões apenas nos primeiros seismeses de implementação (PIPS, 2019).

A tarefa de reconhecimento de placas geralmente é dividida em quatro estágios: 1)detecção do carro na imagem, 2) detecção da placa presente no carro, 3) segmentação doscaracteres da placa detectada e 4) reconhecimento dos caracteres segmentados. Com o aumentode imagens rotuladas e hardware dedicado (GPU’s), estes estágios são executados usando técnicasde Deep Learning. Modelos baseados em YOLO (Redmon et al., 2016)(Redmon & Farhadi,2017)(Redmon & Farhadi, 2018) estão conseguindo os melhores resultados do estado da arteno que diz respeito à acurácia e ao desempenho na detecção do veículo e da placa. Enquantomodelos mais específicos de Redes Neurais Convolucionais (Stark et al., 2015)(Menotti et al.,2014) são empregados no estágio de classificação dos dígitos presentes nas placas.

Como placas de veículos apresentam padrões diferentes para cada país, é de extremaimportância que o modelo de reconhecimento seja treinado com uma base de dados que repre-sente o padrão do país cuja placa será reconhecida. A abordagem proposta por Laroca parareconhecimento de placas do sistema brasileiro (Laroca et al., 2018) traz uma base de dadospública de placas de veículos brasileiros, assim como um modelo de reconhecimento baseadoem quatro estágios, como explicado anteriormente. O modelo alcançou uma ótima taxa dereconhecimento, onde em 93,53% das placas presentes no conjunto de teste todos os caracteresforam reconhecidos corretamente.

Em (Gonçalves et al., 2018) é proposta uma base de dados assim como uma nova

Page 13: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

121212

abordagem para o reconhecimento de placas de veículos brasileiros onde apenas dois estágiossão utilizados. O primeiro estágio é o de detecção das placas presentes na imagem sem anecessidade de antes detectar o veículo. O segundo estágio é o de reconhecimento da placa ondetodos os caracteres são reconhecidos através de uma CNN, nesse estágio não se faz necessária asegmentação dos caracteres presentes na placa. Com menos estágios o sistema se torna maisrápido no processamento das imagens e o erro acumulado também diminui já que são doisestágios ao invés de quatro. O resultado alcançado utilizando esta abordagem foi de 88,8% dasplacas reconhecidas corretamente.

Com a ascensão da Internet das Coisas (IoT), cada vez mais se faz necessário o empregode soluções que sejam executadas em dispositivos que estejam nos nós finais do sistema (edge).Não seria diferente com o reconhecimento de placas de veículos, onde uma solução paraRaspberry Pi 3 foi proposta para o reconhecimento de placas de veículos brasileiros (Izidioet al., 2018). A solução apresentou uma alta taxa de acurácia onde 96,75% das placas foramreconhecidas corretamente, porém esta solução ainda apresenta um baixo desempenho comtempo médio de 4,88 segundos para o processamento de cada frame, de forma que não consegueprocessar os frames no desempenho exigido por aplicação de tempo real.

Sendo assim, ainda há uma lacuna a ser preenchida no que diz respeito à execuçãode reconhecimento de placas de veículos em dispositivos embarcados com processadores depropósito específico, visto que as técnicas presentes apresentam ótimos resultados de acurácia,porém o desempenho é comprometido quando não são executadas em processadores dedicadosou com aceleradores de hardware.

1.2 OBJETIVOS

O objetivo geral deste trabalho é propor e implementar um sistema baseado em CNNpara reconhecimento automático de placas de veículos brasileiros, onde dispositivos embarcadoscom processadores de propósito específico sejam capazes de executar o reconhecimento comalta acurácia e em tempo real.

São objetivos específicos deste trabalho:

� Propor arquiteturas de CNN’s voltadas para detecção e reconhecimento de placas eque priorize o desempenho em dispositivos com baixo poder de processamento;

� Conversão do modelo de CNN treinado para o processador de aplicação específica;

� Execução de um benchmark no dispositivo embarcado para a validação do modeloproposto;

� Comparação dos resultados obtidos com modelos já existentes que suportam o padrãode placas de veículos brasileiros.

Page 14: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

131313

1.3 ESTRUTURA DO TRABALHO

Neste capítulo são descritos a motivação, bem como o detalhamento dos objetivos aserem alcançados e a estruturação do documento. Os próximos tópicos abordados neste trabalhoseguem a seguinte estrutura:

� Capítulo 2: Serão introduzidos os conceitos de Rede Neural Convolucional assimcomo uma explicação do algoritmo de detecção YOLO;

� Capítulo 3: A metodologia utilizada será apresentada, descrevendo o desenvolvimentoe treinamento dos modelos de CNN’s propostos, assim como a otimização dosmesmos para a execução no processador de aplicação específica;

� Capítulo 4: Serão descritos os experimentos executados utilizando os modelospropostos e os resultados serão apresentados;

� Capítulo 5: Conclusão do trabalho desenvolvido, trazendo uma discussão do que foifeito, bem como possíveis trabalhos futuros.

Page 15: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

141414

2CONCEITOS BÁSICOS

Neste capítulo é introduzido o conceito de Rede Neural Convolucional (CNN) assimcomo é apresentado o algoritmo YOLO, que faz uso de CNN para detectar objetos em imagens.

2.1 REDE NEURAL CONVOLUCIONAL (CNN)

Rede Neural Convolucional (CNN) é um modelo baseado em Deep Learning similar àsRedes Neurais Artificiais onde sua aplicação mais comum é no processamento de imagens. Aprimeira aplicação de CNN se deu por Yann LeCun em 1998 quando propôs uma arquiteturachamada LeNet-5 (LeCun et al., 1998) para solucionar o problema de classificação de dígitosmanuscritos utilizando a base de dados MNIST. Em 2012 o uso de CNN’s se tornou popularatravés da arquitetura AlexNet (Krizhevsky et al., 2012) que ganhou a competição ImageNet

Large Scale Visual Recognition Challenge (ILSVRC) com uma diferença de 10% de erro a menosque o segundo colocado.

O princípio de funcionamento das CNN’s se baseia no funcionamento do córtex visualanimal, onde cada neurônio de forma individual responde à estímulos de uma área restrita docampo visual chamada campo receptivo. Estes campos receptivos de cada neurônio vão sesobrepondo parcialmente até cobrir completamente o campo visual.

Em uma CNN, a camada de convolução é a camada onde se extrai característicasda imagem. Nesta camada um filtro percorre a imagem de entrada realizando a operação deconvolução sobre cada região e o resultado dessa operação é um conjunto de características(feature map) da imagem. Esse conjunto de características nada mais é que novas imagensresultantes a partir da aplicação de filtros, logo podem servir como entrada para outra camadade convolução. A aplicação de vários filtros sobre uma mesma imagem resulta na extraçãode diferentes características da imagem. É com os ajustes desses filtros, a partir do processode treinamento, que a rede neural vai aprendendo os principais conjuntos de característicasque compõem as imagens às quais a rede foi submetida durante o treino. A figura 1 mostra oresultado de uma imagem de dimensões 5x5x1 na qual foi aplicada a convolução com um filtrocom dimensões 3x3x1. Dessa forma, várias camadas convolucionais podem ser aplicadas emsequência, onde o conjunto de características resultante da camada anterior serve como entrada

Page 16: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

151515

para a próxima camada.Após a operação de convolução, uma função de ativação é aplicada a cada pixel das

matrizes resultantes. ReLU é a função de ativação comumente utilizada nas arquiteturas deCNN’s, pois é capaz de introduzir não-linearidade à rede já que a mesma considera problemasnão lineares. A função de ativação ReLU (equação 2.1) transforma os pixels negativos em zero eos pixels não negativos são mantidos com seu próprio valor.

Figura 1: Resultado de uma convolução de uma imagem 5x5x1 com um filtro 3x3x1

f (x) = max(0,x)� �2.1

Uma outra camada bastante comum em arquiteturas de CNN’s é a camada de pooling.Essa camada é responsável por reduzir a dimensão da entrada fazendo com que o número deparâmetros presentes na rede diminua e as características dominantes da entrada sejam extraídas.Existem dois tipos de pooling: Max Pooling e Average Pooling. O Max Pooling consiste emuma espécie de filtro que percorre a matriz de entrada (que representa a imagem) e obtém ovalor máximo de cada região coberta pelo filtro. O Average Pooling funciona de maneira similar,porém, ao invés do valor máximo, é obtida a média dos pixels da região que o filtro cobre. Ofuncionamento dos dois tipos de pooling pode ser visualizado na figura 2.

Page 17: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

161616

Figura 2: Representação dos dois tipos de pooling

Para a tarefa de classificação, geralmente, uma ou mais camadas completamente conec-tadas são utilizadas no final da rede. Este tipo de camada ajuda no aprendizado de combinaçõesnão lineares a partir das características da imagem obtidas pelas camadas de convolução. Quandoa entrada da camada completamente conectada é uma matriz tridimensional representando assaídas das camadas de convolução ou de pooling, essa matriz deve ser transformada em um vetorunidimensional onde cada posição desse vetor representa um neurônio que será conectado comcada neurônio da próxima camada assim como mostra a figura 3. Assim como nas camadasconvolucionais, uma função de ativação é aplicada a cada neurônio das camadas completamenteconectadas.

A combinação dessas principais camadas citadas compõem a arquitetura de uma CNN.A quantidade de camadas varia de acordo com o problema a ser resolvido. Quanto mais camadasa rede possuir, mais poder de extração de características ela vai ter. O custo computacional,porém, vai ser elevado e a rede poderá sofrer com o problema de vanishing gradient, onde ogradiente vai se tornando cada vez menor conforme vai se propagando através das camadas.Uma arquitetura de CNN simples é mostrada na figura 4, onde a rede é utilizada para resolver oproblema de classificação de dígitos manuscritos.

Page 18: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

171717

Figura 3: Camada totalmente conectada

Figura 4: Arquitetura completa de uma CNN que classifica dígitos manuscritos

2.2 YOLO

YOLO (You Only Look Once) (Redmon et al., 2016)(Redmon & Farhadi, 2017)(Redmon& Farhadi, 2018) é um tipo de CNN que tem como função detectar objetos em uma imagem.Comparado com outros algoritmos de detecção, este algoritmo é um dos mais rápidos e com uma

Page 19: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

181818

alta acurácia na detecção. O que torna o YOLO bastante eficiente é o fato de que com apenas umapassagem da imagem, a rede neural consegue detectar todos os objetos presentes, ao contrário deoutras técnicas, tais como (Uijlings et al., 2013)(Girshick, 2015)(Ren et al., 2015)(Dai et al.,2016), que fazem uma espécie de varredura na imagem procurando por regiões de interesse parasó assim executar a fase de detecção nessas regiões. O algoritmo YOLO atualmente está nasua terceira versão. Em cada versão houveram mudanças na arquitetura para que fosse possívelmelhorias no desempenho da rede e na acurácia de detecção.

O YOLOv3 (Redmon & Farhadi, 2018) apresenta uma característica interessante na suaarquitetura, onde não há camadas totalmente conectadas e todas as camadas são convolucionais.CNN’s que apresentam esse tipo de característica são denominadas Fully Convolutional Network

(FCN). Outra característica presente na arquitetura do YOLOv3 é que não existem camadas depooling, a redução das dimensões é feita através das camadas de convolução, onde em certascamadas o filtro percorrem a imagem de 2 em 2 pixels ao invés de 1 em 1. Isso faz com que amatriz de características resultante tenha metade da dimensão da matriz de entrada. A arquiteturaque o YOLOv3 utiliza como backend é baseada na Darknet-53 (Redmon & Farhadi, 2018)(figura 5), uma arquitetura criada pelos mesmos autores porém para a aplicação de classificaçãode imagens.

Figura 5: Arquitetura Darknet-53 (Redmon & Farhadi, 2018)

A saída do YOLOv3 é uma matriz de características onde cada pixel dessa matriz deveser interpretado como uma célula responsável pela detecção de algum objeto presente na imagem.Para tornar mais intuitiva a explicação, tomemos como exemplo a figura 6, onde temos comoentrada uma imagem com dimensões 608x608x3, sendo a terceira dimensão as camadas do

Page 20: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

191919

padrão de cores RGB. Após a imagem passar por todas as camadas convolucionais da rede, umamatriz de dimensões 19x19x5x85 é obtida como resultado. Essa é a uma matriz de características(feature map) assim como qualquer outra após uma operação de convolução.

Figura 6: Representação da saída do YOLO para uma imagem com dimensões 608x608x3

Como pode ser observado na figura 6, a matriz de características tem 1/32 da altura elargura da imagem original, sendo assim, cada célula (pixel) da matriz de características equivalea uma região de 32x32 pixels da imagem original. Cada uma dessas células é representadapor uma matriz bidimensional, que no caso do exemplo é uma matriz 5x85, onde cada linhada matriz representa um bounding box codificado. Para realizar a decodificação é necessário ainterpretação de cada coluna. Como no exemplo cada linha tem 85 colunas, isso significa que ascolunas 0 e 1 são responsáveis pelas coordenadas x e y do centro do bounding box, as colunas 2 e3 representam a largura e altura do bounding box e a coluna 4 representa a probabilidade de haveralgum objeto contido no bounding box. As 80 colunas restantes representam as probabilidadesde cada classe que o objeto detectado pode pertencer, no caso do exemplo a arquitetura da redefoi feita pra detectar objetos de 80 classes diferentes. Sendo assim, cada célula da matriz decaracterísticas é capaz de predizer se na região de 32x32 pixels da imagem comporta o centro dealgum objeto e, caso comporte, é capaz de predizer a localização do objeto assim como a classea qual ele pertence.

Page 21: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

202020

3ABORDAGEM PROPOSTA

Para a tarefa de reconhecimento automático de placas a solução proposta neste trabalhoé composta por duas fases. A primeira fase é a de detecção (seção 3.1). Nesta fase as placaspresentes na imagem são recortadas para posteriormente serem utilizadas na fase de reconheci-mento (seção 3.2). Nesta última fase, cada caractere presente é classificado e o resultado formao conjunto de letras e dígitos presentes na placa. Os modelos propostos de CNN para cada umadas fases foram validados e serão descritos a seguir. Uma vez validados, os modelos propostosde CNN’s para cada fase foram implementados para execução em uma plataforma embarcada evalidados quanto ao desempenho e acurácia. Com as etapas validadas na plataforma alvo, todosistema foi integrado na plataforma alvo para o reconhecimento automático de placas (seção 3.3).Na figura 7 está ilustrado o fluxo que representa as etapas da abordagem proposta.

3.1 DETECÇÃO DAS PLACAS

Nesta seção será apresentada a arquitetura proposta de CNN de detecção de placas,detalhando todas as camadas e justificando a escolha da operação Depthwise Separable Con-

volution ao invés da convolução convencional. Logo em seguida é apresentado o processo detreinamento do modelo, descrevendo a base de imagens utilizada, o ambiente de treinamento ealguns parâmetros importantes para o treinamento.

3.1.1 Arquitetura

Para a tarefa de detecção foi proposta uma modificação da arquitetura presente noalgoritmo YOLOv3 para reduzir o número de parâmetros da rede, resultando em um modelo queocupa menos espaço e com um menor tempo de processamento. Ao invés de utilizar o backend

padrão do YOLOv3 ou até mesmo uma variante menor chamada Tiny-YOLO, nós utilizamoscomo backend a arquitetura presente no MobileNet (Howard et al., 2017). A MobileNet é umaarquitetura originalmente voltada para classificação de imagens em dispositivos com baixo poderde processamento como smartphones.

Page 22: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

212121

Figura 7: Fluxo da abordagem proposta

O que torna a arquitetura baseada na MobileNet tão eficiente é que eles utilizaram oconceito de Depthwise Separable Convolution ao invés da convolução convencional. Essamaneira diferente de realizar a operação de convolução pode ser descrito sucintamente daseguinte maneira. Primeiro é feita uma convolução onde cada filtro vai convolver com um canalda entrada de forma individual, ao contrário da convolução padrão onde um filtro convolve comtodos os canais da entrada somando os resultados. Sendo assim, se uma entrada possui 3 canais,um filtro é aplicado para cada canal, gerando assim uma saída com 3 canais também. Essaoperação é denominada Depthwise Convolution. Nas CNN’s é importante gerar vários feature

maps a cada convolução que é feita (onde cada feature map corresponde a um canal da saída) enão apenas o mesmo número de canais presentes na entrada. Pra solucionar isso foi aplicadauma convolução convencional onde os filtros possuem dimensão 1x1, dessa forma o número decanais presentes na saída será igual ao número de filtros aplicados. Essa segunda operação é

Page 23: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

222222

chamada de Pointwise Convolution. Uma comparação de uma convolução convencional com asoperações descritas acima é ilustrada na figura 8.

Figura 8: Um filtro de convolução convencional (a) é substituído por duas operações: (b)depthwise convolution e (c) pointwise convolution (Howard et al., 2017)

Podemos expressar a quantidade de parâmetros utilizados numa operação de convoluçãoconvencional em termos de DK ·DK ·M ·N, onde DK é a dimensão do filtro (supondo que ele tenhavalores iguais de altura e largura), M é o número de canais presentes na entrada e N é o númerode canais presentes na saída. Para a operação de Depthwise Convolution temos DK ·DK ·Mparâmetros. Para a operação de Pointwise Convolution temos DK ·DK ·M ·N parâmetros, porém

Page 24: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

232323

como os filtros são 1x1 isso equivale à M ·N. Sendo assim, utilizando a combinação de Depthwise

Convolution com Pointwise Convolution obtemos uma redução de parâmetros descrita na equação3.1.

DK ·DK ·M+M ·NDK ·DK ·M ·N

=1N+

1D2

K

� �3.1

Com a equação 3.1 podemos notar a redução no número de parâmetros quando utilizamosessas duas operações ao invés da convolução convencional, isso faz com que o número decomputações seja reduzido trazendo o aumento de desempenho. Sendo assim, nós modificamosa arquitetura do YOLOv3 para utilizar o mesmo backend utilizado pelo MobileNet. Desta forma,a arquitetura que propusemos recebe como entrada uma imagem com dimensões 224x224x3e retorna um feature map com dimensões 7x7x5x6. A tabela 1 contém o detalhamento decada camada da arquitetura proposta. As modificações propostas na nossa arquitetura refletemdiretamente no tamanho final do modelo. Enquanto o YOLOv3 original possui 237 MB, aarquitetura proposta possui 7,6 MB.

Tabela 1: Arquitetura proposta utilizando MobileNet como backend no YOLOv3

Repete Tipo / Stride Dimensões do filtro Dimensões de entrada Dimensões de saída

1x Conv / s2 3x3x3x24 224x224x3 112x112x24

1x Conv dw / s1 3x3x24 dw 112x112x24 112x112x24

Conv / s1 1x1x24x48 112x112x24 112x112x48

1x Conv dw / s2 3x3x48 dw 112x112x48 56x56x48

Conv / s1 1x1x48x96 56x56x48 56x56x96

1x Conv dw / s1 3x3x96 dw 56x56x96 56x56x96

Conv / s1 1x1x96x96 56x56x96 56x56x96

1x Conv dw / s2 3x3x96 dw 56x56x96 28x28x96

Conv / s1 1x1x96x192 28x28x96 28x28x192

1x Conv dw / s1 3x3x192 dw 56x56x192 28x28x192

Conv / s1 1x1x192x192 28x28x192 28x28x192

1x Conv dw / s2 3x3x192 dw 28x28x192 14x14x192

Conv / s1 1x1x192x384 14x14x192 14x14x384

5x Conv dw / s1 3x3x384 dw 14x14x384 14x14x384

Conv / s1 1x1x384x384 14x14x384 14x14x384

1x Conv dw / s2 3x3x384 dw 14x14x384 7x7x384

Conv / s1 1x1x384x768 7x7x384 7x7x768

1x Conv dw / s1 3x3x768 dw 7x7x768 7x7x768

Conv / s1 1x1x768x768 7x7x768 7x7x768

1x Conv / s1 1x1x768x30 7x7x768 7x7x30

1x Reshape - 7x7x30 7x7x5x6

Page 25: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

242424

3.1.2 Treinamento

Antes de iniciar o treinamento do modelo proposto foi necessário a obtenção de umconjunto de imagens onde cada uma delas tivesse um arquivo com anotações a respeito dalocalização de cada placa. Essas imagens deveriam conter necessariamente veículos complacas no padrão brasileiro, já que nosso modelo foi treinado pra detectar tal padrão. Algunsautores tais como (Laroca et al., 2018) e (Gonçalves et al., 2016) disponibilizaram as bases dedados utilizadas nos seus respectivos trabalhos. O primeiro conjunto de dados possui imagenscapturadas com uma câmera fixa no carro enquanto trafegava por algumas ruas, o último capturouas imagens utilizando uma câmera fixa em uma cancela de estacionamento. Outro conjunto deimagens utilizado foi o conjunto disponível em (Izidio et al., 2018), o qual foi obtido entrandoem contato com um dos autores. No total foram obtidas 4407 imagens todas com resoluçãode 1024x768 pixels, onde 80% foi utilizado como conjunto de treino e 20% foi utilizado comoconjunto de validação. Algumas imagens podem ser visualizadas na figura 9.

Figura 9: Exemplos de imagens presentes na base de dados

Para implementar a arquitetura descrita na subseção 3.1.1 foi utilizada a linguagem deprogramação Python 3 junto com a biblioteca Keras (https://keras.io). A bibliotecaKeras fornece uma maneira out-of-the-box de utilizar as principais operações necessárias emCNNs, onde cada operação é considerada um layer. Sendo assim, basta organizar esses layers deforma sequencial para obtermos uma arquitetura de CNNs pronta para o treinamento.

Durante o treinamento, a técnica data augmentation foi empregada para gerar variaçõesno conjunto de dados. Foram aplicados ruído Gaussiano, desfoque Gaussiano, mudança de brilho,mudança de contraste, translação, rotação e modificação da escala. Todas essas modificaçõesforam aplicadas aleatoriamente às imagens durante a fase de treinamento e para cada uma foramutilizados parâmetros específicos. Esse tipo de técnica é interessante pois aumenta o númerode imagens que são apresentadas à rede durante o treinamento, mesmo quando não temos àdisposição um grande número de dados, isso faz com que a rede fique ainda mais robusta.

Como a nossa arquitetura utiliza a arquitetura da MobileNet como backend, nós utili-zamos os pesos disponibilizados pelo Keras do MobileNet, que foi pré-treinado com um vastoconjunto de imagens da aplicação ImageNet. Isso faz com que o processo de treinamento fique

Page 26: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

252525

mais simples visto que a rede já começa com um grande conjunto de características aprendido.Durante o treinamento do modelo proposto foram utilizados os parâmetros descritos na tabela2. O treinamento ocorreu durante 18 épocas, pois foi utilizado o conceito de early stopping,onde, a cada época, a evolução da rede foi testada com o conjunto de validação. Sendo assim,como não houve evolução durante 3 épocas seguidas a partir da época 16, o treino foi encerradoautomaticamente na época 18. Todo o treinamento foi realizado utilizando o ambiente GoogleColab, fornecido gratuitamente pelo Google e que conta com uma GPU NVIDIA Tesla K80. Oambiente já fornece as principais bibliotecas para modelar e treinar modelos de deep learning demaneira rápida e possui integração com o Google Drive para importação e exportação de arquivos.Ao final do processo de treinamento o modelo foi salvo para ser utilizado posteriormente.

Tabela 2: Parâmetros utilizados notreinamento da CNN de detecção

Parâmetro Valor

Batch size 16

Épocas do early stopping 3

Otimizador Adam

Learning rate 0,0001

Fator de decaimento 1 (β1) 0,9000

Fator de decaimento 2 (β2) 0,9990

Epsilon (ε) 10−8

3.2 RECONHECIMENTO DAS PLACAS

Nesta seção será apresentada a arquitetura proposta para a CNN de reconhecimento dasplacas, detalhando cada camada da arquitetura e comparando com a arquitetura de (Stark et al.,2015). Logo em seguida a técnica de geração de placas sintéticas é descrita de forma detalhada.Por fim, as etapas de treinamento e transfer learning são descritas.

3.2.1 Arquitetura

Para executar a tarefa de reconhecimento de placas nós propomos uma arquitetura deCNN que suporta a classificação de cada caractere presente numa placa de veículo do padrãobrasileiro. Essa arquitetura é um pouco mais simples do que a arquitetura de detecção descritana subseção 3.1.1 pois é composta por apenas algumas camadas convolucionais. Esta escolha dearquitetura foi feita com base no fato de que o uso de camadas totalmente conectadas no final darede faz com que o número de parâmetros aumente bastante, pois todos os neurônios de umadeterminada camada se conectam com todos os neurônios da camada seguinte.

Page 27: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

262626

A arquitetura proposta do reconhecedor foi baseada, inicialmente, na arquitetura apresen-tada no trabalho feito por (Stark et al., 2015), que propõe uma CNN para classificar os caracterespresentes em um CAPTCHA. A escolha foi feita com base na semelhança entre reconhecimentode CAPTCHA e reconhecimento de placas, pois ambas as tarefas requerem classificação decaracteres que na maioria das vezes apresentam ruídos ou distorções.

O trabalho desenvolvido por Izidio (Izidio et al., 2018) também utilizou essa arquiteturapara o reconhecimento de placas e obteve ótimos resultados. No entanto, o grande númerode parâmetros fez com que esta técnica se tornasse inviável para o nosso trabalho, já queposteriormente o modelo treinado teria que ser implementado em um sistema embarcado compoucos recursos de memória. Dessa forma, assim como na arquitetura de detecção, foi propostauma nova arquitetura para o reconhecimento de placas que fosse eficiente e ocupasse poucoespaço ao mesmo tempo que mantivesse uma acurácia semelhante às obtidas em outros trabalhos.

Na tabela 3 está descrita uma arquitetura para reconhecimento de placas baseada naarquitetura de (Stark et al., 2015), enquanto na tabela 4 temos a mesma arquitetura com algumasmodificações propostas e que são cruciais para a diminuição do número de parâmetros da rede.

Tabela 3: Arquitetura de reconhecimento de placas baseada em (Stark et al., 2015)

Camada Tipo / Stride Dimensões Dimensões de entrada Dimensões de saída

#1 Conv / s1 5x5x48 64x128x1 64x128x48

#2 MaxPooling / s2 2x2 64x128x48 32x64x48

#3 Conv / s1 5x5x64 32x64x48 32x64x64

#4 MaxPooling / s2 2x2 32x64x64 16x32x64

#5 Conv / s1 5x5x128 16x32x64 16x32x128

#6 MaxPooling / s2 2x2 16x32x128 8x16x128

#7 Flatten - 8x16x128 16384

#8 FullyConnected - 16384 512

#9 FullyConnected - 512 252

As primeiras modificações foram feitas nas camadas convolucionais que utilizam filtros3x3 ao invés dos filtros 5x5 da arquitetura original. Essa modificação foi feita pois o processadorque utilizamos para implementar esse modelo posteriormente não tem instruções para operaçõesconvolucionais com filtro 5x5, então a solução foi substituir uma camada de convolução 5x5por duas camadas de convolução 3x3. Com isso nós também removemos as camadas de max

pooling fazendo com que a cada camada convolucional que adicionamos tenha um stride de 2,ou seja, o filtro percorre a entrada de 2 em 2 pixels. Sendo assim, a saída é equivalente à metadeda quantidade de pixels presente na entrada.

A modificação que impactou diretamente no número de parâmetros da rede acontece apósa camada 6. A arquitetura original remodela a saída da camada 6 de modo que ela passa de umamatriz tridimensional com dimensões 8x16x128 para um vetor com dimensão 16384 onde cadaposição desse vetor é um neurônio. Após isso, é utilizada uma camada totalmente conectada onde

Page 28: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

272727

Tabela 4: Arquitetura de reconhecimento de placas proposta pelo trabalho

Camada Tipo / Stride Dimensões Dimensões de entrada Dimensões de saída

#1 Conv / s1 3x3x48 64x128x1 64x128x48

#2 Conv / s2 3x3x48 64x128x48 32x64x48

#3 Conv / s1 3x3x64 32x64x48 32x64x64

#4 Conv / s2 3x3x64 32x64x64 16x32x64

#5 Conv / s1 3x3x128 16x32x64 16x32x128

#6 Conv / s2 3x3x128 16x32x128 8x16x128

#7 Conv / s1 1x1x512 8x16x128 8x16x512

#8 GlobAvgPooling / s1 - 8x16x512 1x1x512

#9 Flatten - 1x1x512 512

#10 FullyConnected - 512 252

os 16384 neurônios da camada 7 são conectados com 512 neurônios da camada 8, isto resultaem mais de 8 milhões de parâmetros apenas nesta camada. Para diminuir consideravelmenteessa quantidade de parâmetros nossa arquitetura faz mais uma operação de convolução apósa camada 6, onde 512 filtros de dimensões 1x1 são aplicados, obtendo como saída uma matrizde feature map com dimensões 16x32x512. Após essa última convolução nós utilizamos aoperação Global Average Pooling que calcula a média de todos os pixels presentes em cadafeature map, resultando eu uma matriz 1x1x512 que pode ser remodelada em um vetor de 512posições representando os neurônios da camada. Desta forma nós eliminamos a primeira camadatotalmente conectada presente na arquitetura original, reduzindo assim o número de parâmetrosnecessários na operação para pouco mais de 65 mil. Esse número resulta da quantidade deparâmetros utilizados no filtro aplicado na camada 7 da nossa arquitetura, que é de 1x1x128x512.Com essas modificações foi possível reduzir o modelo para apenas 2 MB, enquanto o modeloque utilizava a arquitetura original possuía 258 MB.

A última camada da arquitetura proposta também é uma camada totalmente conectada,onde os 512 neurônios são conectados com os 252 neurônios finais. Esses 252 neurônios podemser interpretados como 36 probabilidades de cada caractere (26 letras e 10 dígitos) estar presenteem cada uma das 7 posições da placa. Essas probabilidades são obtidas através da função deativação Softmax que é aplicada a cada conjunto separado de 36 neurônios. Por exemplo, osprimeiros 36 neurônios representam as probabilidades de algum dos caracteres estar presente naprimeira posição da placa, sendo assim, se o segundo neurônio for o neurônio com probabilidademaior dentre os 36 primeiros, significa que a rede está predizendo que a primeira posição daplaca contém a letra ’B’. A equação 3.2 formaliza essa explicação onde n é o neurônio que nosdá a probabilidade do caractere x estar presente na posição i, sendo θ(x) definido pela equação3.3. Poderíamos ter representado a saída como 26 neurônios para cada uma das 3 primeirasposições e 10 neurônios para cada uma das 4 últimas posições, pois o modelo antigo do Brasil (eque ainda é maioria em circulação) comporta apenas letras nas 3 primeiras posições da placa e

Page 29: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

282828

dígitos nas 4 últimas. Porém nossa arquitetura foi feita para que posteriormente fosse possívelser treinada com o novo padrão de placas do Mercosul, onde é possível letras e dígitos em cadauma das 7 posições.

n = 36i+θ(x)� �3.2

θ(x) =

0...25, se x =′ A′...′Z′

26..36, se x =′ 0′...′9′

� �3.3

3.2.2 Geração de placas sintéticas

Para o treinamento da CNN de reconhecimento é necessário um grande número deimagens de placas com suas respectivas anotações, visto que são inúmeras combinações (mais de175 milhões) possíveis de letras e dígitos que estão presentes nas placas dos veículos. Capturaruma grande variação de placas se torna uma tarefa árdua, principalmente porque em cada estadobrasileiro há uma incidência maior de determinados padrões de placas. Os carros emplacadosem Pernambuco, por exemplo, tem as letras K, N, O, P e Q como primeira letra da placa, sendoassim, durante o treinamento pode haver um overfitting porque a rede está sendo apresentada apadrões de placas semelhantes.

Como forma de contornar este problema de forma parcial nós utilizamos uma técnicade geração de placas sintéticas (Earl, 2016), onde durante o treinamento um conjunto de placasé gerado de forma artificial e a cada época a rede é treinada com um conjunto de imagenscompletamente diferente do conjunto de placas da época anterior. Para implementar esta técnicafoi utilizada a biblioteca OpenCV (https://opencv.org/) em Python, pois é a bibliotecaque oferece uma maior facilidade em manipulação de imagens e trabalha muito bem com outrasbibliotecas matemáticas como o NumPy (https://numpy.org/).

O primeiro passo na geração é a criação de uma caixa retangular com as mesmasproporções e cores de uma placa e nessa caixa escrevemos a sequência de 7 caracteres (3 letras e4 dígitos). Esses caracteres são escolhidos de forma randômica e utilizam a fonte Mandatory queestá estabelecida como fonte padrão para as placas dos veículos brasileiros. Vale ressaltar quesequências onde os quatro últimos caracteres são dígitos ’0’ não são geradas, pois placas com ofinal ’0000’ não existem no padrão brasileiro.

O segundo passo utilizado na geração de placas foi a aplicação de técnicas de transforma-ção na imagem gerada. As transformações aplicadas foram rotação nas três dimensões, mudançana escala da imagem e translação. Todas essas transformações foram aplicadas utilizando umavariação de valores de modo que as placas geradas correspondam com placas reais capturadasem diversas condições de posicionamento de câmera.

O último passo que aplicamos foi compor a placa transformada em um fundo geradode forma aleatória. Para isso foi necessário uma quantidade de imagens que representassem

Page 30: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

292929

diversos tipos de contexto, para que não houvesse uma relação entre uma placa gerada e outra.Sendo assim, utilizamos a base de dados que foi proposta em (Xiao et al., 2010) que contémmais de cem mil imagens coloridas com resolução 416x416 que representam diversos contextos.No momento da composição uma imagem dessa base de dados é escolhida de forma randômicae uma pedaço aleatório dela é recortado criando uma nova imagem com resolução 128x64 quelogo após é convertida para níveis de cinza. Após isso, a placa transformada é composta comessa imagem obtida e um ruído Gaussiano é aplicado com o objetivo de simular condições ondea placa não está bem definida na imagem. Todos os passos descritos acima estão ilustrados nafigura 10.

Figura 10: Passos para a geração de uma placa sintética no formato brasileiro

3.2.3 Treinamento e transfer learning

O treinamento da CNN proposta foi dividido em duas etapas: o treinamento com asimagens de placas sintéticas e o fine-tuning da rede com imagens de placas reais utilizandotransfer learning. Durante a primeira etapa a CNN foi treinada apenas com imagens de placassintéticas, as imagens eram geradas em tempo de treinamento, ou seja, a cada batch novasimagens eram geradas de forma aleatória. Isso é interessante pois a rede é apresentada às váriascombinações de letras e dígitos que compõem uma placa. O ambiente de treinamento foi omesmo descrito no treinamento da CNN de detecção (subseção 3.1.2), incluindo as bibliotecasutilizadas. O treinamento da rede nesta etapa durou 143 épocas, pois utilizamos early stopping,onde a cada época a rede era avaliada com um conjunto de validação composto por 1000 imagenstambém sintéticas, porém esse conjunto não mudava ao longo das épocas. Caso a rede passassecinco épocas sem obter uma melhoria na acurácia do conjunto de validação, o treinamento eraencerrado. A tabela 5 descreve os parâmetros utilizados nesta etapa de treinamento da rede.

Embora a rede tenha sido treinada com uma grande quantidade de imagens sintéticas,ela ainda apresentou um desempenho não tão alto quanto quando foi testada com imagens deplacas reais. Isso aconteceu porque, embora tentem simular ao máximo as condições de capturade uma placa real, as placas sintéticas não conseguem conter algumas elementos que acabamsendo específicos de uma placa real como caracteres que podem estar parcialmente apagados,por exemplo. Para contornar essa limitação da rede nós aplicamos uma técnica chamada transfer

learning, onde uma CNN previamente treinada com um conjunto de imagens é retreinada

Page 31: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

303030

Tabela 5: Parâmetros utilizados no treinamento daCNN de reconhecimento

Parâmetro Valor

Função de erro Categorical Crossentropy

Batch size 64

Épocas do early stopping 5

Otimizador Adam

Learning rate 0,0001

Fator de decaimento 1 (β1) 0,9000

Fator de decaimento 2 (β2) 0,9990

Epsilon (ε) 10−8

utilizando um conjunto diferente de imagens. Sendo assim, nós utilizamos os pesos treinadoscom o conjunto de placas sintéticas e a partir deles começamos um novo treinamento com oconjunto de placas reais.

O conjunto de imagens que utilizamos para a etapa de transfer learning foi o mesmoutilizado em (Izidio et al., 2018) e foi fornecido por um dos autores. Foram utilizadas 800imagens em escala de cinza com resolução 128x64, cada uma delas contendo uma anotaçãoequivalente à sequência de caracteres presentes na placa. Para o conjunto de treino selecionamos75% das imagens, enquanto 25% foram utilizadas para avaliar a rede durante o processo detransfer learning. O processo de treinamento durou 72 épocas utilizando o mesmo critério deearly stopping definido no treino com placas sintéticas. Os parâmetros utilizados no treinamentosão os mesmos descritos na tabela 5, com exceção do learning rate que foi reduzido para 0,00001já que os pesos da rede já haviam sido treinados previamente.

3.3 SISTEMA FINAL

Nesta seção será introduzida a plataforma embarcada onde o sistema final foi imple-mentado. Em seguida é descrito o processo de compilação do modelo para a arquitetura daplataforma, explicando o conceito de quantização e o motivo da técnica ter sido utilizada. Porfim a aplicação final é apresentada, descrevendo cada etapa da aplicação.

3.3.1 Plataforma utilizada

Após treinar e validar os modelos de detecção e reconhecimento nós tivemos que converte-los para um formato compatível com a plataforma alvo que seria utilizada para implementar osistema embarcado final. A plataforma escolhida para a implementação foi a Sipeed Maixduino

(figura 11), que possui um processador de aplicação específica Kendryte, baseado na arquiteturaRISC-V e que possui um co-processador (KPU) que implementa instruções de redes neurais

Page 32: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

313131

em hardware. A placa conta também com um módulo de câmera VGA e um display LCDcom resolução 320x240. A comunicação da placa se dá por um módulo ESP-32 que já vemacoplado, permitindo utilização de comunicação Wi-Fi e BLE. A seguir detalhamos as principaisespecificações da plataforma escolhida:

� CPU: Kendryte K210 RISC-V Dual Core 64 bits, 600 MHz - 800 MHz;

� Co-processador: KPU 400 MHz;

� SRAM: 8 MB (6 MB dedicados para propósito geral e 2 MB para operações realizadaspelo KPU);

� Memória Flash: 16 MB;

� Display LCD 320x240;

� Câmera VGA (640x480);

� Módulo ESP-32: Wi-Fi 2,4 GHz 802.11. b/g/n e Bluetooth 4.2;

� Tensão de entrada: 6-12V.

Figura 11: Sipeed Maixduino

Page 33: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

323232

3.3.2 Conversão dos modelos

Um grande desafio neste trabalho foi a quantidade de memória disponível, o Maixduino

possui apenas 8 MB de memória SRAM, onde 6 MB são de propósito geral e 2 MB são dedicadospara o co-processador KPU executar as operações de redes neurais, por isso foram propostasduas arquiteturas voltadas tanto para desempenho quanto para economia de memória. Emborapara um microcontrolador a quantidade de 6 MB de memória seja mais do que suficiente paraexecutar suas aplicações, numa aplicação que envolve rede neurais esta quantidade de memóriase torna algo bastante restrito.

Com essa limitação de memória seria impossível utilizarmos nossos modelos treinados,pois apenas no armazenamento do modelo de reconhecimento, os 6 MB de memória já setornariam insuficientes. Sendo assim, para contornar o problema de memória, aplicamos nosmodelos treinados a técnica de quantização. Tal técnica consiste em converter os pesos da redeque são representados por números em ponto flutuante de 32 bits para a representação em pontofixo de 8 bits, isso fez com que o tamanho da rede fosse reduzido em até 4 (quatro) vezes.Para fazermos a conversão dos modelos utilizamos uma ferramenta disponibilizada pelo própriofabricante do processador que faz a conversão do modelo no formato original do (Keras) para oformato do TensorFlow Lite que é utilizado em sistemas com restrições de processamento comosmartphones, por exemplo. Após a conversão para o formato TensorFlow Lite os modelos sãoconvertidos e quantizados para o formato kmodel que é o formato compatível com a arquiteturado KPU presente no processador. Uma comparação do tamanho dos modelos antes e depoisda quantização pode ser vista na tabela 6. Graças à técnica de quantização foi possível queos dois modelos fossem carregados na memória da plataforma alvo permitindo a detecção ereconhecimento das placas.

Tabela 6: Comparação do tamanho dos modelos antes e depois daquantização

Modelo Tamanho (Original) Tamanho (Quantizado)

Detecção 7,6 MB 1,9 MB

Reconhecimento 2,0 MB 515,5 KB

3.3.3 Aplicação

Para a implementação na plataforma alvo nós poderíamos ter utilizado a linguagem deprogramação C++ junto com o framework Arduino, porém optamos pelo MicroPython que éum porte da linguagem Python voltado para microcontroladores. A escolha foi feita com basenas bibliotecas de manipulação de imagem e vídeo que não haviam sido implementadas para oframework Arduino. Já em MicroPython essas duas bibliotecas tinham suas respectivas imple-mentações e apresentavam um ótimo desempenho, pois todas as funções foram implementadas

Page 34: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

333333

em C e apenas as chamadas eram feitas em Python. Foi necessário remover alguns módulos nãoutilizados na aplicação e compilar uma nova versão reduzida do MicroPython para que fossepossível carregar o interpretador na memória junto com os modelos treinados, pois a versãocompleta do MicroPython deixava aproximadamente 2 MB de memória RAM disponível paraser utilizada na aplicação.

Na aplicação implementada é possível realizar o reconhecimento de placas em arquivosde imagem, arquivos de vídeo ou através da câmera presente na plataforma. Porém o buffer

de imagem conta com uma restrição que todas as imagens ou frames de vídeo tem que ter aresolução 320x240 para evitar que haja um estouro na heap do MicroPython. Após carregaro frame foi feito um redimensionamento para a resolução 224x224, pois são as dimensõesde entrada da CNN de detecção. Com a imagem redimensionada, a detecção das placas éfeita e as coordenadas de uma ou mais placas presentes na imagem são retornadas. Com ascoordenadas em mãos nós fazemos o recorte das placas e adicionamos um offset de 10% emcada dimensão, esse offset é necessário pois pode acontecer da placa ser recortada parcialmenteo que introduziria um erro na etapa de reconhecimento. Após esse passo, a placa recortada éredimensionada para as dimensões 128x64 e convertida para escala de cinza. Por fim, cada placaredimensionada é passada individualmente para a CNN de reconhecimento, onde obtém-se asequência da caracteres presente na placa. A figura 12 ilustra todo o pipeline descrito acima.

Figura 12: Pipeline do sistema de reconhecimento de placas

Page 35: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

343434

4RESULTADOS

Este capítulo apresenta os resultados obtidos durante a avaliação das CNN’s de detecçãoe de reconhecimento através dos respectivos conjuntos de dados de validação. O sistema finaltambém foi avaliado e os resultados foram comparados com os resultados obtidos por (Izidioet al., 2018).

4.1 CNN DE DETECÇÃO

Durante o processo de treinamento da CNN de detecção foi utilizado um conjunto com881 imagens para validação, onde cada imagem deste conjunto possuía uma ou mais placas paradetecção. Esse conjunto de validação foi utilizado para avaliar a CNN durante o processo detreinamento, ou seja, saber como a rede se comporta quando apresentada à imagens que nãoforam apresentadas à ela durante o treinamento. Com isso foi possível avaliar a capacidade dedetecção da rede e sua acurácia.

Cada imagem do conjunto de validação tinha um arquivo de texto correspondente queindicava as coordenadas de cada placa presente na imagem. Sendo assim, a cada época duranteo treinamento, a rede neural foi submetida a cada uma dessas imagens e o número de placasdetectadas foi verificado. Ao final do treinamento obtivemos um resultado onde 98,79% dasplacas presentes no conjunto de validação foram detectadas corretamente. Com este númeroa CNN proposta se mostra bastante eficiente na tarefa de detecção de placas, mesmo com aquantidade de otimizações que foram feitas na arquitetura para que seu tamanho fosse reduzido.

4.2 CNN DE RECONHECIMENTO

Como o processo de treinamento da CNN de reconhecimento foi dividido em doisestágios, o processo de validação também foi feito em duas etapas. A primeira etapa foiresponsável por validar a rede com um conjunto de placas sintéticas, a segunda etapa validou arede com um conjunto de placas reais.

Durante o treinamento da rede neural um conjunto com 1000 imagens sintéticas foiutilizado para validar a acurácia da rede no reconhecimento dos caracteres presentes nas placas.

Page 36: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

353535

Ao final do treinamento foi obtido uma acurácia de 99,04% com o conjunto de placas sintéticas,porém com o conjunto de 200 placas reais a rede apresentou uma acurácia de 93,66%, onde essepercentual representa o número de caracteres que a rede conseguiu reconhecer corretamente.

Esta acurácia foi melhorada com a utilização da técnica de transfer learning descrita naseção 3.2.3. Sendo assim, após a rede passar pelo processo de transfer learning, a acurácia como conjunto de placas reais subiu para 98,14%. Essa melhoria ocorreu porque a rede conseguiuaprender alguns nuances que não estavam presentes no conjunto de placas sintéticas. A tabela7 resume os resultados obtidos durante o processo de validação da CNN de reconhecimento.Podemos notar que após o transfer learning a acurácia resultante do conjunto de placas sintéticasfoi reduzida, isso se deu porque a rede ficou mais especializada em reconhecer os caracteres deuma placa real, isso é bom pois nosso sistema final tem como finalidade lidar com placas reais enão com placas sintéticas.

Tabela 7: Resultados da avaliação da CNN de reconhecimento

Modelo Acurácia placas sintéticas Acurácia placas reais

Antes do transfer learning 99,04% 93,66%

Depois do transfer learning 96,22% 98,14%

4.3 AVALIAÇÃO DO SISTEMA FINAL

Para a avaliação do sistema final foi utilizado um conjunto com 150 imagens, ondecada imagem continha uma ou mais placas de carro. Para fim de comparação, o conjuntofoi o mesmo utilizado no trabalho (Izidio et al., 2018), pois utilizando o mesmo conjunto deimagens poderíamos comparar os nossos resultados com os resultados obtidos pelos autores.A tabela 8 mostra os resultados da comparação do sistema proposto com o sistema de (Izidioet al., 2018). Nessa comparação consideramos o modelo proposto não quantizado e o modeloquantizado, já que este último foi executado na placa Sipeed Maixduino. Nota-se uma queda naacurácia dos resultados quando comparamos o modelo quantizado com o não quantizado, issoocorre porque há uma conversão na precisão das conexões presentes na rede, as conexões domodelo não quantizado são representadas por números em ponto flutuante de 32 bits enquantono modelo quantizado os números são representados na notação ponto fixo de 8 bits apenas.Quando comparado com o trabalho de (Izidio et al., 2018), a acurácia na detecção de placassofre uma redução, porém é uma redução aceitável visto que há um ganho no desempenho, já noreconhecimento das placas a diferença na acurácia dos resultados é bem menor.

Como neste trabalho foram propostas duas arquiteturas de redes neurais, nós obtivemosos resultados utilizando dois ambientes, o primeiro foi executando o sistema em uma Rapsberry

Pi 3 e o segundo ambiente foi a placa Sipeed Maixduino. O motivo de avaliar o sistemautilizando uma Raspberry é que queremos mostrar que mudanças propostas nas arquiteturas

Page 37: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

363636

Tabela 8: Comparação das acurácias da arquitetura proposta com o trabalho de (Izidioet al., 2018)

Arquitetura Detecção Reconhecimento de caracteres

Izidio et al. (2018) (Simples) 99,37% 98,43%

Izidio et al. (2018) (Ensemble) 99,37% 99,53%

Arquitetura proposta (não quantizado) 97,69% 98,32%

Arquitetura proposta (quantizado) 97,31% 98,02%

conseguem tirar proveito até mesmo quando implementadas em processadores de propósito gerale, assim, comparar com o sistema proposto por (Izidio et al., 2018) que também é executadoutilizando o mesmo ambiente. A tabela 9 detalha a comparação feita e podemos observar que aarquitetura proposta leva em média 40,84 milissegundos para detectar e reconhecer uma placa,isso representa uma taxa média de 24 FPS o que é uma ótima taxa para reconhecimento deplacas em tempo real. Com esses resultados fica nítido que as modificações que foram feitas naarquitetura proposta junto com o processador de redes neurais presente na plataforma escolhidatrazem um grande ganho de desempenho com pouca degradação na acurácia do sistema.

Tabela 9: Comparação entre os tempos de processamento de cada arquitetura

Arquitetura Detecção (ms) Reconhecimento (ms) Total (ms)

Izidio et al. (2018) (Simples) 1610 1090 2700

Izidio et al. (2018) (Ensemble) 1610 3270 4880

Arquitetura proposta (Raspberry Pi 3) 232,11 65,83 297,94

Arquitetura proposta (Sipeed Maixduino) 32,31 8,53 40,84

Como pode ser visto na figura 13 e na figura 14, a matriz de confusão indica que nossosistema acerta a grande maioria dos caracteres presentes nas placas, isso é visualizado peladiagonal da matriz que apresenta cores vivas, enquanto alguns poucos pontos fora da diagonalmostram uma leve coloração indicando os caracteres que foram confundidos.

Page 38: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

373737

Figura 13: Matriz de confusão da CNN de reconhecimento não quantizada

Figura 14: Matriz de confusão da CNN de reconhecimento quantizada

Page 39: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

383838

Na figura 15 são apresentados alguns exemplos de placas que foram reconhecidascorretamente e incorretamente. Cada imagem possui um ou mais bounding boxes delimitando aárea de cada placa detectada e um pouco acima uma string indicando a sequência de caracterespresentes na placa. Todas as imagens são resultados do sistema implementado na placa Sipeed

Maixduino, ou seja, os modelos de detecção e reconhecimento utilizados foram os modelosquantizados.

Figura 15: Exemplos de placas reconhecidas incorretamente (esquerda) e corretamente (direita)

Page 40: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

393939

5CONCLUSÃO

Detecção e reconhecimento automático de placas de veículos é uma tarefa que até umtempo atrás era feita de maneira bastante rústica, onde algoritmos descreviam de forma explícitaos padrões das placas a serem reconhecidas. Conforme o poder computacional dos processadoresfoi aumentando assim como a quantidade de dados, algoritmos baseados em Deep Learning

começaram a ser utilizados para resolver o problema de reconhecimento de placas. Isso trouxeum grande avanço para a área porque agora uma ou mais redes neurais são responsáveis poraprender e extrair as principais características de uma placa, trazendo altos valores de acuráciana tarefa de reconhecimento. Porém, as arquiteturas existentes ainda exigem um grande podercomputacional, fazendo com que a execução de tais técnicas fiquem restritas basicamente àGPU’s.

O presente trabalho propôs duas arquiteturas de CNNs voltadas para execução emsistemas com baixo poder de processamento como sistemas embarcados, por exemplo. Uma dasarquiteturas é uma modificação do YOLO, responsável pela detecção das placas presentes nasimagens e a outra arquitetura é responsável pelo reconhecimento das placas utilizando elementospresentes na arquitetura do MobileNet. Ambas arquiteturas foram convertidas em modeloscompatíveis com o processador de aplicação específica Kendryte K210, onde o sistema finalseria executado, respeitando as restrições de memória presentes na plataforma.

Analisando os resultados obtidos observamos que a combinação das duas arquiteturaspropostas junto com o processador escolhido resultou numa alta taxa de quadros por segundo,atingindo uma média de 24 FPS enquanto a acurácia de reconhecimento dos caracteres semanteve alta com o valor de 98,02%. Desta forma conseguimos implementar um sistema dereconhecimento de placas de veículos brasileiros que consegue ser executado em tempo real ecom uma alta acurácia, tudo isso sendo processado de forma local no próprio sistema embarcado.

Mesmo atingindo ótimos resultados, ainda há alguns pontos que podem ser abordadosem trabalhos futuros para a melhoria do sistema:

� Treinar a CNN de reconhecimento com o padrão de placas do Mercosul para quehaja uma gama maior de placas a ser reconhecida pelo sistema;

� Utilizar placas de motocicletas no treinamento das CNN’s de detecção e reconheci-

Page 41: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

404040

mento fazendo com que o sistema não reconheça apenas placas de automóveis;

� Desenvolver uma técnica mais aprimorada para geração de placas sintéticas, assimcomo utilizar redes neurais generativas para gerar imagens de veículos com placaspara serem utilizadas no treinamento da CNN de detecção;

� Desenvolver uma arquitetura única de detecção e reconhecimento, onde todas asplacas presentes na imagem são detectadas e reconhecidas em uma única passagempela rede, diminuindo o tempo de processamento para cada imagem.

Page 42: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

414141

REFERÊNCIAS

Dai, J., Li, Y., He, K., & Sun, J. (2016). R-fcn: Object detection via region-based fullyconvolutional networks. In Advances in neural information processing systems, 379–387.

Du, S., Ibrahim, M., Shehata, M., & Badawy, W. (2012). Automatic license plate recognition(alpr): A state-of-the-art review. IEEE Transactions on circuits and systems for video technology,23(2):311–325.

Earl, M. (2016). Number plate recognition with tensorflow. http://matthewearl.github.io/2016/05/06/cnn-anpr.

Girshick, R. (2015). Fast r-cnn. In Proceedings of the IEEE international conference on computervision, 1440–1448.

Gonçalves, G. R., Diniz, M. A., Laroca, R., Menotti, D., & Schwartz, W. R. (2018). Real-timeautomatic license plate recognition through deep multi-task networks. In 2018 31st SIBGRAPIConference on Graphics, Patterns and Images (SIBGRAPI), 110–117.

Gonçalves, G. R., da Silva, S. P. G., Menotti, D., & Schwartz, W. R. (2016). Benchmark forlicense plate character segmentation. Journal of Electronic Imaging, 25(5):1–5.

Howard, A. G., Zhu, M., Chen, B., Kalenichenko, D., Wang, W., Weyand, T., Andreetto, M.,& Adam, H. (2017). Mobilenets: Efficient convolutional neural networks for mobile visionapplications. arXiv preprint arXiv:1704.04861.

Izidio, D. M., Ferreira, A. P., & Barros, E. N. (2018). An embedded automatic license platerecognition system using deep learning. In 2018 VIII Brazilian Symposium on ComputingSystems Engineering (SBESC), 38–45.

Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). Imagenet classification with deepconvolutional neural networks. In Advances in neural information processing systems, 1097–1105.

Laroca, R., Severo, E., Zanlorensi, L. A., Oliveira, L. S., Gonçalves, G. R., Schwartz, W. R., &Menotti, D. (2018). A robust real-time automatic license plate recognition based on the yolodetector. In 2018 International Joint Conference on Neural Networks (IJCNN), 1–10.

LeCun, Y., Bottou, L., Bengio, Y., Haffner, P., et al. (1998). Gradient-based learning applied todocument recognition. Proceedings of the IEEE, 86(11):2278–2324.

Menotti, D., Chiachia, G., Falcão, A. X., & Neto, V. O. (2014). Vehicle license plate recognitionwith random convolutional networks. In 2014 27th SIBGRAPI Conference on Graphics, Patternsand Images, 298–303.

PIPS, T. (2019). Expert advice on the most effective alpr solutions. http://www.pipstechnology.com/applications.

Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified,real-time object detection. In Proceedings of the IEEE conference on computer vision andpattern recognition, 779–788.

Page 43: Ítalo Rodrigo Barbosa Paulinotg/2019-2/TG_EC/TG_Italo... · 2019-12-11 · Ítalo Rodrigo Barbosa Paulino Reconhecimento de Placas de Veículos Brasileiros em Tempo Real utilizando

424242

Redmon, J. & Farhadi, A. (2017). Yolo9000: better, faster, stronger. In Proceedings of the IEEEconference on computer vision and pattern recognition, 7263–7271.

Redmon, J. & Farhadi, A. (2018). Yolov3: An incremental improvement. arXiv preprintarXiv:1804.02767.

Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detectionwith region proposal networks. In Advances in neural information processing systems, 91–99.

Stark, F., Hazırbas, C., Triebel, R., & Cremers, D. (2015). Captcha recognition with active deeplearning. In Workshop new challenges in neural computation, 2015:94.

Uijlings, J. R., Van De Sande, K. E., Gevers, T., & Smeulders, A. W. (2013). Selective search forobject recognition. International journal of computer vision, 104(2):154–171.

Xiao, J., Hays, J., Ehinger, K. A., Oliva, A., & Torralba, A. (2010). Sun database: Large-scalescene recognition from abbey to zoo. In 2010 IEEE Computer Society Conference on ComputerVision and Pattern Recognition, 3485–3492.