You are on page 1of 86
UNIVERSIDADE DE LISBOA FACULDADE DE CIENCIAS DEPARTAMENTO DE INFORMATICA Cc Ciéncias ULisboa OTIMIZACAO DE PROCESSOS AUTOMATICOS COM ALGORITMOS INTELIGENTES Bruno Martins Alexandre MESTRADO EM ENGENIIARIA INFORMATICA Especializagao em Engenharia de Software Trabalho de projeto orientado por Prof. Doutor Lufs Antunes Doutor Alexandre Miguel Pinto 2019 Resumo Parte do trabalho realizado por uma empresa passa pela identificagdo e proposta de solugSes para problemas relacionados com os processos de negécio dos seus clientes. Essa participagao ativa, para além de trazer novas propostas de trabalho € consequentemente ajudar financeiramente a empresa, mostra ao cliente que as suas atividades esto a ser continuamente monitorizadas e ava- Este relatério detalha o desenvolvimento de dois, liadas de forma a aumentar o seu desempenho. projetos, sendo que em cada um foi explorada uma proposta de otimizagio para um proceso automético de um cliente da Accenture, © primeito projeto realizado teve foco no algoritmo uti- lizado por uma distribuidora elétrica para calcular as estimativas de consumo de eletricidade dos seus clientes. © problema relacionado com este algoritmo consistiu no facto do mesmo nao ter em consideragdo 0 comportamento de cada cliente de acordo com o perfodo do ano em que se encontra, causando elevadas divergéncias entre valores de consumo estimados ¢ reais e, conse- quentemente, a insatisfagio e queixa por parte dos mesmos. No segundo projeto foi trabalhado 0 algoritmo de detegdo automética de matriculas utilizado por uma agente rodovisria. Neste algo- culas ritmo é aplicado um software ANRP/LPR que nao tem em consideragao 0 padrdo das matr portuguesas e as caracteristicas dos locais onde estao instalados os aparelhos de captura da agente rodoviéria, limitando a percentagem de matriculas detetadas ¢ impossibilitando a redugo da sua taxa de erro, Relativamente ao algoritmo de estimativas, foram propostos algoritmos baseados no histérico de consumo dos clientes da distribuidora, introduzindo o fator sazonalidade, e aplicadas técnicas de clustering, agrupando clientes com comportamento semelhante e, dessa forma, tendo em consideracao possiveis mudanceas comportamentais nos clientes da distribuidora. Relativa- mente ao algoritmo de detecao automética de matriculas, foi implementado um sistema ALPR de raiz utilizando em cada uma das suas camadas imagens reais capturadas pela agente rodovistia, Neste sistema foram utilizadas técnicas de detecio de objetos através das bibliotecas do OpenCV ede reconhecimento de caracteres através da framework disponibilizada pelo tensorfiow, demons- trando 0 que se pode produzir apenas com software gratuito. Depois de implementado o sistema ALPR, o mesmo foi aplicado a mithares de imagens fornecidas pela agente rodovidia e sobre 0 seu output foram aplicadas técnicas de detegio ¢ correo de erros, tendo obtido melhores resulta- dos para os valores da percentagem de matriculas detetadas ¢ taxa de erro dos que os obtidos pelo algoritmo utilizado atualmente pela agente rodovistia Palavras-chave: Otimizagio de algoritmos, Clustering, Machine Learning, Computer Vision, Redes Neuronais Convulsionais Abstract Part of the work carried out by a company involves identifying and proposing solutions to problems related to the business processes of its clients. This active participation, in addition to bringing new work proposals and consequently helping the company financially, shows the client that their activities are being continuously monitored and evaluated in order to increase their performance. This report details the development of two projects, each of which explored an optimization pro- posal for an automatic process of an Accenture client. ‘The first project focused on the algorithm, used by an electrical distributon company to calculate the electricity consumption estimates of its customers, The problem related to this algorithm was that it did not take into account the behavior of each client according to the period of the year the consumption pertains to, causing high divergences between estimated and actual consumption values and, consequently, customer dissatisfaction and complaints. In the second project, an algorithm for automatic number plate detection used by a road agent was developed. In this algorithm an ANRP / LPR software is ap- plied, which does not take into account the Portuguese registration standard and the characteristics of the locations where the machines of the road agent are installed, limiting the percentage of license plates detected and making it impossible to reduce their error rate, Regarding the estima- tion algorithm, algorithms were proposed based on the consumption history of the distributor's customers, introducing the seasonality factor, and applied clustering techniques, grouping clients with similar behavior and, thus, taking into account possible behavioral changes in the distribu- tor’s clients, Regarding the algorithm of automatic number plate detection, a root ALPR system ‘was implemented using real images captured by the road agent in each of its layers. This system used object detection techniques through the OpenCV libraries and character recognition through. the framework provided by tensorflow, demonstrating acceptable results can be produced using only free software. After the ALPR system was implemented, was applied to thousands of im- ages provided by the road agent, and on its output error detection and correction techniques were applied, obtaining better results for the number of detected license plates and error rate than those obtained by the algorithm currently used by the road agent. Keywords: Agorithm Optimization, Clustering, Machine Learning, Computer Vision, Convolutional Neural Network Contetido Lista de Figuras Lista de Tabelas 1 Introdugao LI Contexto 1.2 Motivagao 1.2.1 Distribuidora elétrica 1.2.2 Agente rodoviéria 13 Objetivos 14. Estrutura do documento 2 Tecnologias utilizadas 2.1 Clustering de dados 2.2 Tecnologia ALPR - Overview 2.3 OpenCV - Classificagao em cascata 2.4 Tensorflow - Redes neuronais convolucionais 2.4.1 Convolutional layer . 2.4.2 Pooling Layer 243 Dense (fully connected) layer 3 Calculo de consumos de eletricidade 3.1. Funcionamento do algoritmo atual 3.1.1 Célculo do consumo faturado 3.1.2. Céleulo do consumo estimado 3.1.3. Identifie Jo do problema 3.2 Algoritmo propostos 3.2.1 CMD mensal : 3.2.2. CMD mensal com aplicagao de clustering 3.3. Testes e resultados 3.3.1 Organizagao das leituras 3.3.2. Abordagem 3.3.3 Resultados aeene _ 10 12 4 16 19 20 20 21 23 26 26 29 31 31 4 Detegao automatica de matriculas 4d 42 43 44 Preparago do input Extragio de matriculas 4.2.1 Fase de treino 4.2.2 Processo de extragio 4.2.3 AvaliagGo e andlise dos resultados Segmentagio de caracteres 43.1 Tdentificagdo dos caracteres 43.2. Verificagio e corregao dos caracteres 4.3.3 AvaliagGo e anélise dos resultados Reconhecimento de caracteres 4.4.1 Preparagao dos dados 4.4.2 Arquitetura dos modelos CNN . . 4.43. Avaliagdo e anélise dos resultados ‘Testes a0 ALPR 4.5.1 Validagio da matricula 4.5.2 Corregao da matricula 4.5.3 Resultados 5 Conclusio Sa 52 Contribuigdes Trabalho futuro 6 Abreviaturas Bibliography a7 4 44 46 65 65 66 67 n Lista de Figuras La 12 24 2.2 24 2.5 26 27 2.8 29 Em sistemas com processos de detegao automética de matriculas como 0 da Via Verde, as cdmaras de captura encontram-se instaladas no ar e em paralelo com a estrada, através de um suporte (imagem retirada de []) Os aparelhos de captura da agente rodovidria encontram-se instalados 2 nivel do solo e fora das estrada, dficultando a detegao das matriculas nelas presentes. Os resultados obtidos pelo método de clustering K-Means € muito influenciado pela escolha do mimero de clusters a usar. Exemplo de um conjunto de clusters obtidos para um dado conjunto de dados através da aplicagao da técnica de clustering k-means (imagem da esquerda } ¢ da técnica hdbscan (imagem da direita) [2]. . incionamento geral de um sistema ALPR (nota ao BPMN [3)). Para ser encontrado um objeto numa dada sub-regido de uma imagem é preciso que o mesmo seja validado por cada um dos classificadores que constituem 0 clas- sificador em cascata (I= true, F = false)|4]. ‘Um classificador consegue detetar virios objetos na mesma imagem e com dife- rentes tamanhos. [5] Cada um dos filtros convolucionais é aplicado a um conjunto de sub-regides da imagem, produzindo um valor tnico em cada uma delas (I = imagem, K = filtro de convolugio) [6] 0 algoritmo max pooling seleciona o valor méximo de uma regio, descartando os restantes valores [6]. Uma CNN é tipicamente composta por um conjunto de modelos convolucionais € um conjunto de dense layers. Como resultado, obter-se-A um valor entre 0 € 1 para cada uma das classes do modelo, correspondendo 0 mesmo a probabilidade dada pelo modelo de uma imagem corresponder 8 respetiva classe (7, Exemplo da convolugdo de um filtro com stride = 1 sobre um dado input. Apés a computagio de uma sub-érea o filtro desliza um pixel, obtendo a préxima dea a computar [8] 10 u 12 13 “4 2.10 2.12 2.13 35 4 42 43 44 Exemplo da convolugao de um filtro com stride = 2 sobre um dado input, Apds a computagio de uma sub-srea o filtro desliza dois pixeis, obtendo a proxima érea a computar. O uso deste stride sobre este input faz. com que a diltima cotuna do mesmo nao seja computada, havendo petca de informagao [8]. Exemplo da convolugio de um filtro com zero-padding sobre um dado input. A aplicagao do zero-padding evita a perca de informagao do input recebido, 20 contrétio do que acontecia no exemplo mostrado em 2.10. [8] Exemplo da aplicagdo de pooling sobre um input usando a técnica de max pooling ea técnica de avg pooling. [8] Uma CNN € normalmente constituida por um conjunto de dense layers. Cada dense layer conecta cada neursnio da camada anterior a cada neurnio da camada seguinte [9] Caleulo do consumo a ser faturado no final de um perfodo de faturagéo de um cliente da distibuidora (notagio BPMN) Na figura encontra-se o exemplo dos valores usados para o CMD de um dos clientes da distibuidora, O cliente ilustrado comunicou duas leituras reais, uma em abril e outta em agosto, sendo 0 seu CMD recalculado nesses perfodos. cemplo de consumo real e caleulado/faturado para um cliente que teve férias no verao © 86 comunicou uma leitura real em outubro smplo de consumo real ¢ calculado/faturado para um cliente que teve elevado consumo no inverno ¢ s6 comunicou uma leitura real em margo Ilustrag4o do modelo de dados das leituras obtidas através do sistema CRM da distribuidora elétrica, IlustragJo do modelo de dados das leituras obtidas através do sistema CRM da distribuidora elétrica para um dos seus clientes. Niimero de instalagdes por média de leituras comunicadas anualmente do conjunto de instalagées fomnecidas pela distribuidora elétrica, . Conjunto de tarefas presentes no processo utilizado pela agente rodoviria para processar imagens de veiculos em excesso de velocidade (nota¢io BPMN). ‘As imagens de matriculas capturadas pelos apatelhos encontram-se a diferentes , Sendo que no geral se encontram a uma grande distincia, dificultando As imagens capturadas pelos aparelhos podem conter mais do que uma matricula (b). As matriculas apresentam diferentes graus de inclinacao (a) e podem nfo estar totalmente visiveis (c). ‘A qualidade das imagens capturadas depende de fatores relacionados com 0 am- biente e/ou o aparelho de captura. 15 16 7 7 2 25 26 32 33 4 38 39 39 45 46 47 48 49 4.10 4a 412 4.13 414 4s 4.16 47 418 4.19 4.20 421 4.22 4.23 ‘A imagem capturada por um cinemémetro pode conter, para além da matricula do veiculo infrator, matriculas de outros verculos presentes no local. ‘Zonas de recorte definidas para cada uma das vias de dois locais onde estdo insta- lados cinemémetros. ‘A preparagao do input aplica um recorte & imagem capturada por um cinemémetro ¢ envia-na para a extragio de matriculas. Exemplos de imagens positivas © negativas usadas no treino dos classificadores em cascata, Parimetros utilizados na execugao do treino do classificador baseado em compo- nentes LBP constituido por vinte ¢ cinco classificadores simples. Parte do ficheiro XML gerado no treino do classificador Haar 20 ‘A matricula de um veiculo pode encontrar-se em mais do que um dos candidatos a matricula detetados na aplicagio de um classificador em cascata valor do minNeighbors necessério para que seja detetada apenas uma candidato nna imagem é variavel, A extragao de matriculas nem sempre tem como resultado uma matricula perfeita. A aplicagio de um threshold simples pode nao ser suficiente para distinguir os caracteres das restantes partes da matricula correspondent Conjunto de imagens bindrias de uma matricula geradas através da aplicagao de um threshold adaptativo usando diferentes combinagdes de valores blockSize € C Imagem bindria de uma matricula onde foram identificados exatamente seis carac~ teres bem definidos, resultando na extragiio dos mesmos. Exemplo de dois tipos de ertos comuns na extragao de segmentos/caracteres através da aplicagao de um threshold adaptativo e da andlise da conectividade entre pixeis. Exemplo do obtido através da aplica jo da fungo implementada para a identificagio € remogao de parafusos ligados a caracteres. ‘A segmentacao dos caracteres de uma matricula pode ser verificada e validada através da andlise das distancias entre os virios caracteres detetados. Exemplo de caracteres recortados para o treino das CNN e mimero de amostras pot caracter. Modelo CNN constituido por dois médulos convolucionais normais. Modelo CNN constituido por trés médulos convolucionais normais. Modelo CNN constituido por trés médulos onde, para cada um deles, sio aplicadas duas camadas convolucionais ¢ uma de pooling 4 4B 45 45 46 41 48. 50 51 3 58 56 Lista de Tabelas 3a 4d 42 43 44 45 46 Apresentagdo dos resultados da extracdo de matriculas para cada um dos classifi- cadores tteinados, . . . 35 Tempo de treino e acceptance ratio dos classificadores em cascata treinados. 4s Precisio e tempo de processamento médio por imagem na extragao de matriculas para cada um dos classificadores em cascata treinados. sees 49 Resultados obtidos na segmentagio de caracteres utilizando o threshold adaptativo médio e gaussiano, 58 Dados de treino e teste obtidos para os modelos CNN implementados, 61 Resultados do sistema ALPR com as validagdes e corregdes aos valores das matriculas, zgerados para cada um dos modelos CNN implementados ¢ valores minimos de confianga 0, 80, 90, 95 ¢ 99. 64 Resultados do sistema ALPR sem as validagdes e comregdes aos valores das matriculas gerados para cada um dos modelos CNN implementados e valores minimos de confianga 0, 80, 90, 95 ¢ 99. 64 Capitulo 1 Introducao 1.1 Contexto Este relatério surge como requisito parcial para obter o grau de mestre pela Faculdade de Ciéncias da Universidade de Lisboa (FCUL), no ambito da disciptina de Projeto de (PED do curso Mestrado em Engenharia Informética (MED. Todo 0 contetido abordado foi reali- zado numa instituigao externa, a Accenture, ao longo de nove meses. Por motivos de anonimidade, senharia Informatica alguns dos valores e contesidos presentes em imagens apresentadas ao longo deste relat6rio podem encontrar-se omitidos de forma parcial ou total. 1.2. Motivacio ‘© aumento da competitividade entre empresas obriga a que as mesmas apresentem uma participagao, mais ativa nas necessidades dos seus clientes. Dessa forma, parte do trabalho realizado por uma empresa passa pela identificagdo proposta de solugdes para problemas nao identificados pelos seus clientes, presentes nos respetivos processos de negécio, Essa participagao ativa, para além de trazer novas propostas de trabalho ¢ consequentemente ajudar financeiramente a empresa, mostra 0 cliente que as suas atividades estio a ser continuamente monitorizadas ¢ avaliadas de forma a aumentar 0 seu desempenho, elevando a confianga e satisfagdo do mesmo. Neste projeto sto abor- dados dois processos automiéticos de dois dos clientes da Accenture (uma distribuidora elétrica & uma agente rodoviria) onde foram identificados problemas através da anélise dos seus dados. Os processos abordados so responsaveis pelas seguintes atividades: + Célculo de estimativas de consumo de eletricidade (distribuidora elétrica); + Detegao automética de matriculas (agente rodoviéria). Depois da identificagéo dos problemas, para que uma proposta de otimizagio de um proceso seja, apresentada ao respetivo cliente, é necessério que sea feita a Capitulo 1, Introdugao 2 1, Identificagao da origem do problema do processo atual, assim como o seu impact Apresentagdo de uma solugdo que permita resolver ou reduzir o impacto do problema, tendo em conta o modelo de negécio utilizado pelo cliente; 3. Apresentagdo de resultados/provas de conceito de que a solugdo proposta é uma mais valia para o cliente (ex: resultados da aplicagao da solugao a um conjunto de dados reais). 1.2.1 Distribuidora elétrica primeiro processo automitico abordado neste projeto foi o de calculo de estimativas de con- sumo de eletricidade, utilizado por uma distribuidora elétrica. Essa distribuidora dispde de uma linha telefénica de apoio a clientes, sendo grande parte das chamadas efetuadas para essa linha ‘motivadas por reclamagdes dos clientes sobre as sas faturas; por sua ve7, essas reclamagées tém ‘como origem as estimativas geradas pela distribuidora clétrica para o consumo de cletricidade dos seus clientes. Essas chamadas so atendidas através de Calll Centers, gerando custos, a0 contrétio do que acontece, por exemplo, em muitas das chamadas relativas a comunicagao de leituras de contadores. A distribuidora elétrica v forgada a calcular estimativas de consumo sempre que © cliente ndo comunica a sua leitura real através de um niimero telefinico dedicado para 0 efeito, ou que o agente leitor da distribuidora elétrica nao consegue aceder ao contador do cliente. © algoritmo de célculo de estimativas da distribuidora elétrica, apesar de ser baseado em algumas regras e restrigdes impostas pela Entidade Reguladora dos Servigos Energéticos (ERS), adota ‘uma simplificago de edlculo que assume que cada cliente tem um comportamento linear.ic., que ‘© comportamento de cada cliente, independentemente do periodo do ano em que se encontra, & sempre 0 mesmo. Esta limitagao & representacao da variabilidade de comportamento de consumo dos consumidores poderd ser uma das causas das diserepancias entre os consumos estimados ¢ os reais pata muitos clientes. A presenga e introducdo de novas distribuidoras no mercado de energia aumenta cada vez mais a concorréncia, motivo pelo qual a satisfago € confianga dos seus clien- tes so cada vez mais importantes. E, por isso, necesséria a tomada de medidas preventivas para que estes clientes que se queixam das estimativas da distribuidora elétrica nfo optem por outra distribuidora. 1.2.2 Agente rodovidria 0 segundo projeto abordado neste projeto teve foco na detegao automitica de matriculas, praticada por uma agente rodovidria. Essa agente rodovidria de um conjunto de cinemémetros, equipados com sensores que permitem detetar a distancia ¢ a velocidade a que um vefculo se encontra, espa- Ihados pelas estradas portuguesas, Quando um vefculo € detetado em excesso de velocidade por uum destes aparelhos, é capturada uma imagem do local ¢ registada a informagio sobre a veloci- dade, data, hora, via onde se encontra 0 veiculo, identificador do aparelho ¢ local onde ocorreu a Capitulo 1, Introdugao 3 detegio. A agente rodovidria é responsével por, a partir da informagao registada pelos seus apa- relhos, identificar as matriculas dos veiculos infratores e enviar as mesmas para a(s) entidade(s) respon: ‘uma coima). A identificagao da matricula de um veiculo pode ser feita automaticamente através do uso de um software ANRP/LPR (Automatic Number Plate Recognition / Licence Plate Recog- nition) comprado pela agente, ou manualmente por um dos seus operadores, caso o valor gerado eis por aplicar as medidas necessérias ao responsdvel pelo veiculo (Ex: aplicagio de por este software nao satisfaca um conjunto de regras ¢ restrices impostas pela agente rodovidria (ex: nivel de confianga no valor gerado para uma matricula ser superior aX), Estas regras tém por objetivo diminuir ao méximo a probabilidade de erro na detego automética de uma matricula, evitando a aplicagao de medidas a responséveis de outros veiculos. Contudo, se por um lado a aplicagao de um conjunto de regras faz com que haja menos probabilidade de erro na detegio automética de matriculas, por outro lado, a falta de capacidade do software usado para fonecer valores que satisfagam as regras impostas pela agente aumenta o mimero de matriculas processa- das manualmente pelos seus operadores, representando este mimero cerca de dois tergos de todas as matriculas processadas. Os resultados obtidos para este sistema so muito inferiores aos obti- dos noutros sistemas com processos de detegdo automiética de matriculas como, por exemplo, 0 sistema da Via Verde praticado em Portugal [10], onde sao identificadas quase todas as matriculas de forma automitica. Es ta elevada diferenga entre a percentagem de matriculas detetadas auto- maticamente pelo sistema da agente rodovisria ¢ por sistemas como o da Via Verde é causada principalmente pelos seguintes fatores: + Localizagao dos aparethos de captura: em sistemas como o da Via Verde, os aparelhos de captura so instalados no ar e em paralelo com a estrada, através de um suporte (figura 1.1) Esta localizagdo permite, na maioria dos casos, capturar imagens onde apenas é apresentada a parte traseira do veiculo, ou seja, as matriculas contidas nos vefculos detetados apenas vo apresentar rotagio na vertical (devido ao facto das imagens serem capturadas de cima para baixo). Os aparelhos da agente rodovisria, por outro lado, so instalados ao nivel do solo ¢ fora da estrada (ex: nas bermas), capturando a parte traseira ¢ lateral dos vefculos detetados (igura 1.2). Como consequéncia, as imagens capturadas apresentarco rotagdo na vertical e na horizontal, dificultando a detegio. Para além disso, 0 facto dos aparelhos da agente ndo se encontrarem em paralelo com a estrada faz. com que muitas vezes as imagens capturadas apresentem uma elevada quantidade de componentes nao relacionados com o evento de captura (ex: vegetagao, casas, pessoas, vefculos em sentido contratio, ete); + Quantidade de aparethos de captura: os locais capturados pela Via Verde apresentam, normalmente, uma cimara para capturar os veiculos detetados em cada uma das vias da estrada, No sistema da agente rodovisria, apenas é utilizada uma cdmata para cada um dos locais. Como consequéncia, nos locais onde a estrada apresenta muitas vias ¢ sao detetados veiculos nas vias mais distantes, o tamanho da matricula corresponderd a uma parte muito reduzida da imagem, dificultando a sua detegio. Capitulo 1, Introdugao. 4 Em suma, cada aparelho da agente rodovisria ¢ destinado a um local e as suas imagens capturadas so caracterizadas pelo angulo da estrada, mimero de vias, distancia a que se encontram os vefculos € variancia do meio envolvente, sendo esta uma das principais causas para a reduzida percentagem. obtida na detegdo automética de matriculas. A juntar a estes fatores, acresce ainda que o software uusado pela agente rodovisria para identificar as matriculas € destinado a todo 0 tipo de matriculas , desse modo, ndo tira partido de algumas das caracteristicas das matriculas portuguesas (como, por exemplo, o niimero ¢ 0 padrio dos seus caracteres), que poderiam ser usadas para garantir uma maior confianga nos valores gerados para as matriculas, aumentando consequentemente o némero de imagens processadas automaticamente, Figura 11: Em sistemas com processos de detecao automiética de matriculas como 0 da Via Verde, as cdmaras de captura encontram-se instaladas no ar ¢ em paralelo com a estrada, através de um. suporte (imagem retirada de {1}. Figura 1.2: Os aparelhos de captura da agente rodovidria encontram-se instalados a nivel do solo fora das estradas, dificultando a detecao das matriculas nelas presentes. 1.3. Objetivos 0 objetivo geral deste projeto consistiu na concretizagao de duas solugdes propostas pela Accen- ture para otimizar processos autométicos utilizados por dois dos seus clientes, uma distribuidora elétrica e uma agente rodovisria, Ao nivel da Accenture, os objetivos foram a prova de concei- tos de algumas das suas ideias de modo a que, através da andlise dos seus resultados, surgissem Capitulo 1, Introdugao 5 possiveis propostas pata projetos reais e com valor financeito para a mesma, Em particular, rela- tivamente & proposta para o processo da distribuidora elétrica, os objetivos pretendidos foram os seguintes: + Anilise e descrigao do processo utilizado pela distribuidora elétrica para calcular 0 valor de cletricidade a ser faturado a um cliente no final de um periodo de faturagio: + Identificago e exemplificagao dos problemas obtidos através do processo do célculo de consumo eletricidade utilizado pela distribuidora (1e., razdo para as elevadas discrepancias centre entre os valores do consumo estimado e real); + Proposta e implementacao de um ou mais algoritmos de estimativas de consumo que, com base no histérico de consumo dos seus clientes, permitisse a reduco do erro nas estimativas calculadas ¢ consequentemente o mimero de queixas por parte dos seus clientes: = tendo em conta o modelo de negécio da distribuidora; — analisando os prés e contras da aplicagao do(s) mesmo) + Prova de conceitos - aplicagdo do algoritmo da distribuidora e do(s) algoritmo(s) desenvol- vido(s) a um conjundo de clientes da distribuidora, avaliando e comparando o erro entre as estimativas dadas por cada um dos algoritmos com os valores reais de consumo. Relativamente & proposta para o processo da agente rodovisria, os objetivos pretendidos foram os seguintes: + Anélise e descrig do processo utilizado pela agente rodovisria para detetar matriculas de veiculos em excesso de velocidade nas estradas portuguesas: — Comunicagio com a equipa da Accenture responsével pelo tema de forma a obter a informacao jé conhecida; = Alinhamento c esclarecimento de diividas através da comunicagdo com elementos que trabalham na agente rodovisria. + Identificagdo dos principais problemas/obstéculos que justificam a reduzida percentage de matriculas obtidas automaticamente pelo processo da agente rodovisri: = Anélise de imagens reais, capturadas pelos cinemémetros ¢ fornecidas pela agente; — Enumeragio dos problemas idemtificados e justificagao do seu impacto na detegao au- tomitica de matriculas. + Implementagao “from scratch” de um sistema ALPR (Automatic Licence Plate Recognition) que fizesse uso das caracteristicas das matriculas portuguesas (como o padrao ¢ mimero de caracteres), assim como das caracteristicas dos locais onde estio instalados os cinemémetros da agente (@ngulos, distincias, mimero de vias, etc): Capitulo 1, Introdugao 6 — baseado na informago obtida através das imagens fornecidas pela agente rodovistia; — através da aplicagao de um conjunto de tecnologias propostas pela equipa da Accen- ture (ex: classificagdo em cascata, redes neuronais convolucionais) para as varias ca- madas/fases do sistema ALPR = execugdo, avaliagao ¢ idemtificagdo dos problemas existentes em cada uma das cama- das/fases do sistema desenvolvido (usando como input imagens da agente rodovistia); + Prova de conceitos final - aplicago do sistema ALPR desenvolvido a um conjunto signifi- cativo de imagens reais, capturadas pelos cinemémetros da agente rodovidria: + Anélise dos resultados obtidos na prova de conceitos final e proposta de uma solucdo que, para uma taxa de erro menor ou igual a taxa obtida pelo software da agente rodovidria, permitisse 0 aumento da percentagem de matriculas detetadas automaticamente. 1.4 Estrutura do documento Este documento encontra-se organizado da seguinte maneira; + No capitulo 2 sao apresentadas o conjunto de tecnologias e frameworks sugeridas pela cquipa da Accenture para o desenvolvimento deste projeto: + No capitulo 3 € feita a descrigao do algoritmo atual de estimativas de consumo de eletri- cidade, utilizado pela distribuidora, apresentado o(s) novo(s) algoritmo(s) de estimativas € por fim é feita a comparagao entre os resultados obtidos pelos algoritmos para a estimativa de consumo de um conjunto de dados reais fornecidos pela distribuidora; + No capitulo 4 é exposto o processo de detegao de mat € apresentada a implementacao de cada uma das fases do sistema ALPR implementado, fina- lizando como a aplicagao do respetivo sistema a um conjunto de imagens reais, fornecidas pela agente rodovidria, capturadas em diversos angulos, periodos do dia, condigdes meteo- culas utilizado pela agente rodovisria rol6gicas e através de diferentes aparelhos de captura; + No capitulo 5 ¢ apresentada a conclusdo e a proposta para trabalho futuro. Capitulo 2 Tecnologias utilizadas No presente capitulo so apresentadas as tecnologias ¢ frameworks utilizadas na implementagio das duas solugdes propostas, nomeadamente o clustering de dados, arquitetura de um sistema ALPR, thresholding de imagem, classificagao em cascata ¢ redes neuronais convolucionais. 2.1 Clustering de dados clustering de dados 6 uma técnica utilizada para agrupar dados com carateristicas idénticas com © objetivo de obter resultados interessantes ¢ inesperados, podendo os mesmos ser posteriormente usados para classificar, prever, correlacionar e detetar anomalias nos dados (11, 12]. Apesar de no ser uma técnica recente, o clustering de dados é ainda considerado como um dos principais , tendo sido alvo de pes- étodos de anilise de dados usados em aplicagdes de elevada dimen: quisa em diversas reas como, por exemplo, data mining, machine learning, reconhecimento de padres (pattern recognition) ¢ anilise de dados cientificos, sociais, econdmicos e biomédicos [12]. Neste projeto sto abordados dois métodos de clustering: 0 método iterativo K-Means ¢ 0 método de agrupamento hierarquico HDBScan. Método K-Means O K-Means é um método iterativo onde é definido um mimero k de clusters fixo & partida, sendo k inferior ao mimero total de dados. Neste tipo de clustering, os centros iniciais dos clusters si0 gerados de forma automiética ¢ ajustados iterativamente, podendo os seus resultados ser diferentes a cada execugdo (apesar de tenderem a ser consistentes). Um dos problemas do K-Means & o facto dos resultados dependerem muito do mimero k de clusters escolhidos (exemplificado na figura 2.1) ¢, por consequente, haver a necessidade de se ter algum conhecimento prévio dos dados para que se obtenha bons resultados. Capitulo 2 Tecnologias utilizadas 8 (@) Exemplo de um conjunto de (b) Exemplo de uma boa escola _(c) Exemplo de uma ma eseolha dados. © mimero de clusiers (2) a para o niimero de clusters (5) a ‘usar no método k-means ‘usar no méiodo k-means. Figura 2.1: Os resultados obtidos pelo método de clustering K-Means & muito influenciado pela escolha do nimero de clusters a usar. algoritmo do método K-Means pode ser descrito, de forma resumida, da seguinte maneira: Escolha dos & pontos aleat6rios para os centros dos clusters; Associagdo de cada um dos pontos de dados ao cluster mais préximo: 3. Célculo, para cada um dos clusters, do seu novo centro; 4, Repetigao do paso 2, caso haja troca de pontos entre clusters, ou dar por terminado 0 algoritmo, caso contrat. Método HDBScan © método de clustering HDBSCAN € um método hierrquico baseado na densidade dos dados que recebe como pardmetros um conjunto de dados D ¢ uma métrica de distancia d, funcionando da seguinte mancira: 1. E feita a procura dos K-ésimos vizinhos mais préximos de cada um dos pontos de dados de acordo com a métrica de distancia d, sendo K um hiper pardmetro customizvel. Caso © valor do K nao seja definido pelo utilizador, 0 algoritmo utiliza um valor por defeito ipicamente é utilizado 0 valor K = 5), 2. f caloulada a spanning tree minima para os pontos (ex: através da aplicagdo do Prims's Algorithm (13); 3. E feita a extragdo dos clusters da spanning tree minima, O mimero de clusters obtidos pelo algoritmo € variavel ¢ depende de um parimetro designado min.clustersize. Este pardmetro define o mimero mfnimo de pontos que um conjunto de dados deve ter de forma ‘ser considerado um cluster. Capitulo 2 Tecnologias utilizadas 9 Figura 2.2: Exemplo de um conjunto de clusters obtidos para um dado conjunto de dados através dda aplicagao da técnica de clustering k-means (imagem da esquerda ) e da téenica hdbsean (ima- gem da direita) (2) 2.2. Tecnologia ALPR - Overview ‘A tecnologia ALPR, também conhecida por automatic vehicle identification (AVI), car plate re: cognition (CPR), Automatic Number Plate Recognition (ANPR) ¢ optical character recognition (OCR) para carros, & usada no reconhecimento de caracteres em matriculas de vefculos a partir de uma imagem capturada por uma cémara a cores, preto ¢ branco ou infravermelhos, desem- penhando um papel fundamental em aplicagdes de tempo real como o tolling (cobranga de porta- gens), monitorizacao de tréfego ¢ sistemas de parqueamento automstico[ 14][15]. A implementagao desta tecnologia € feita através de uma combinagao de técnicas como a detegao de objetos, pro- cessamento de imagens e reconhecimento de padres. Apesar do ALPR ser uma tecnologia muito estudada e aplicada em sistemas reais, a dete¢do ¢ identificagdo de matriculas apresenta ainda mui- tos desafios em sistemas onde existam variagbes nas matriculas e/ou variagdes no meio ambiente associado [16], nomeadamente: + Vatiagdes na matricula — Localizagao: a matricula pode estar localizada em diferentes partes de uma imagem, dificultando a sua identificagao; — Quantidade: podem estar presentes mais do que uma matricula (ou nenhuma) numa imagem, tendo como consequéncia a) a identificagao de uma matricula errada ou b) 0 gasto de esforgo computacional na identificago uma matricula que nao existe; — Tamanho: 0 tamanho de uma matricula varia, consoante a distancia a que se encontra da cAmara que a capturou e/ou o tipo de matricula, impossibilitando abordagens que tenham em conta a altura e a largura da mesma; = Cor: as matriculas podem conter caracteres e fundos de rias cores, dependendo do tipo de matricula ¢ da cémara que capturou a imagem; = Fonte: matriculas de varios ps {ses podem estar escritas em diferentes fontes ¢ lingua- gens ¢ distincias entre caracteres; = Inclinagao: o angulo de uma estrada c/ou da cimara responsdvel por capturar uma Capitulo 2 Tecnologias utilizadas 10 imagem fazem com que a matricula apresente alguma inclinagao; = Omissa apagados ou deformados, alguns dos caracteres podem encontrar-se cobertos de sujidade, partidos, + Variagdes no ambiente — Iuminagao: as matriculas podem apresentar graus de iluminagio diferentes, depen- dendo das condigdes da fonte luminosa e/ou do veiculo: — Fundo: imagem pode conter componentes semelhantes a uma matricula. De um modo geral, um sistema ALPR pode ser dividido em quatro camadas/fases: aquisigio de imagem, extragao da matricula as mesmas responséveis por: -gmentagdo da matricula e reconhecimento dos caracteres, sendo 1, Aquisigéo da imagem - obter e tratar a imagem de um vefculo, capturada através de uma camara; 2. Extracdo da matricula - fazer a identificagao ¢ extragio da parte da imagem onde est contida a potencial matricula; 3. Segmentac&o da matricula - localizar ¢ extrair os caracteres da imagem de uma matricula; 4, Reconhecimento dos caracteres - fase final do sistema ALPR onde, a partir das imagens dos caracteres de uma matricula,é feito 0 reconhecimento das mesmas, gerando como re- sultado final o valor da matricula identificada. 3 Aauisio o racdo da ‘Segmnentacio 0a g igen avo mation Figura 2.3: Funcionamento geral de um sistema ALPR (notagio BPMN (3) OpenCV - Classificacao em cascata 0 OpenCV (Open Source Computer Vision Library) & uma framework gratuita para uso académico € comercial com interfaces para C++, Python ¢ Java, sendo suportada nos ambientes Windows: Limux, Mac Os, iOs e Android. Bsta framework foi projetada para ter uma elevada eficiéncia com- putacional e estar presente em aplicagdes de tempo real [17] e dispde (entre muitas outras) de uma biblioteca de detegdo de objetos com fungbes capazes de realizar classificagdo em cascata [18] A classificagao em cascata é uma abordagem na érea de machine learning para a detegao visual de objetos, inicialmente proposta por Paul Viola [19] e mais tarde methorada por Rainer Lienhart [20], capaz de obter clevados indices de deteg4o ¢ com um processamento extremamente répido, Capitulo 2 Tecnologias utilizadas u ‘Um classificador em cascata & composto por uma concatenagao de classificadores simples (ie. répidos mas incapazes de classificar todos os dados corretamente) tendo como input um conjunto de Haar-like ou de LBP (Local Binary Features) features (4,5, 18-21]. Esses classificadores sio usados para formar um classificador com elevada preciso e, dessa forma, evitar o problema de ter de construir um classificador tinico que seja capaz de detetar corretamente todos os dados, tarefa complexa € computacionalmente custosa. Para uma dada imagem, 0 classificador em cascata vai percorrer as varias sub-regides da mesma ¢ tentar encontrar 0 objeto desejado. Para um objeto ser encontrado numa dada sub-regigo de uma imagem, é necessétio que o mesmo seja validado por todos os classificadores simples que constituem o classificador em cascata (garantindo, dese modo, um elevado nivel de precisio) = ~ Reject Sub-window oo __ Figura 2.4: Para ser encontrado um objeto numa dada sub-regido de uma imagem é preciso que ‘© mesmo seja validado por cada um dos classificadores que constituem o classificador em cascata (T= true, F = false){4] ‘Antes de um classificador poder ser aplicado é necessétio primeiro treiné-lo, Para o treino de um classificador em cascata so necessérias algumas centenas de imagens de um determinado objeto que se pretende detetar (ex: matricula, pessoa, etc), chamadas amostras positivas, ¢ algumas cente- nas de imagens arbitrérias com objetos que ndo queremos detetar - chamadas amostras negativas, todas com 0 mesmo tamanho (por exemplo, 20x20). Depois de ser feito o treino do classificador, ‘o mesmo pode ser aplicado a uma imagem, 0 classificador comega por analisar uma sub-regiao da imagem, designada por ROI (Region Of Interest), com tamanko igual ao tamanho das amostras uti- lizadas no treino (neste caso, de tamanho 20x20). Para essa ROL, 0 classificador vai emitir o valor 1” caso contenha o objeto desejado ou ‘0’ caso contrério. Depois de classificar essa sub-regiao, a janela de tamanho 20x20 é deslocada para a préxima ROI ¢ aplicada a mesma metodologia al6 que nao existam mais sub-regides para avaliar. Este processo costuma ser repetido diversas, Capitulo 2 Tecnologias utilizadas 2 vezes com diferentes escalas de imagem para que seja possivel detetar objetos de diferentes di- mensGes. Como resultado final serdo obtidas as coordenadas de todos os objetos detetados para uma imagem, como ilustrado na figura 25. Figura 2.5: Um classificador consegue detetar vérios objetos na mesma imagem e com diferentes tamanhos. [5] 2.4 Tensorflow - Redes neuronais convolucionais 0 TensorFlow & uma framework apen source de machine learning ¢ deep learning desenhada para computagio numérica de alto desempenho, Fsta framework oferece API’s para o desenvolvimento de redes neuronais convolucionais para iniciantes e profissionais ¢ é usada em empresas como a Google, Ebay, Intel, Nvidia e Amd [22]. A distingdo entre um ledo ¢ um jaguar, leitura de um sinal € reconhecimento de uma cara nao sao tarefas muito dificeis para o cérebro humano, Contudo, estas tarefas introduzem alguma complexidade para um computador, uma vez que para o mesmo ‘uma imagem é apenas a representaco de um vetor de pixeis. As redes neuronais convolucionais (CNNs) sao a principal abordagem usada em tarefas de classificagdo de imagens nos dias de hoje, conseguindo equiparar e por vezes exceder a performance de um ser humano [23]. As CNN's aplicam um conjunto de filtros aos dados dos pixeis de uma imagem de forma a extrair e aprender caracteristicas de alto nivel (ex: curvas, linhas), usando-as de seguida no processo de classificagio de imagens [6-9, 23-26]. Uma CNN é constituida por trés camadas: 1, Convolutional layer (camada de convolucao) - que aplica um mimero especifico de filtros convolucionais a uma imagem, Cada filtro é aplicado a um conjunto de sub-regiSes da ima- ‘gem, para cada ROI, a camada processa um conjunto de operagdes mateméticas de forma a Capitulo 2 Tecnologias utilizadas 13 ptoduzir um nico valor, Tipicamente, a camada de convolugao aplica a fungao de ativagao ReLU ao valor produzido para cada sub-regido, de forma a introduzir no linearidades a0 modelo [7, 24,25]. ta a\o cio ra | A 2 5 3 ‘RIO /O| BiRlo Figura 2.6: Cada um dos filtros convolucionais é aplicado a um conjunto de sub-regises da ima- ‘gem, produzindo um valor tinico em cada uma delas (I = imagem, K = filtro de convolugio) [6] 2. Pooling Layer (camada de pooling) -responsével por reduzit a dimensio dos dados da ima- gem extraidos pela camada convolucional, de forma a reduzir o tempo de processamento, Um dos algoritmos populares usados nesta camada € 0 max pooling [6,24], no qual sio extrafdas regides dos dados recebidos da camada de convolugao e, para cada uma delas, mantém-se o pixel com maior valor e descartam-se os restantes, 12| 20] 30] 0 8/12] 2 | 0 | 2x2Max-Poot | 20] 30 34] 70] 37 | 4 112} 37 112} 100] 25 | 12 Figura 2.7: 0 algoritmo max pooling seleciona o valor maximo de uma regio, descartando os restantes valotes [6]. 3. Dense(fully connected) layer - que exccuta a classificagdo das componentes extraidas pela camada de convolucao e reduzidas pela camada de pooling [9] ‘Uma CNN é tipicamente composta por um conjunto de médulos convolucionais. Cada médulo de convolugao & composto por uma camada de convolugao seguida de uma camada de pooling. O ‘timo médulo de uma CNN € composto por uma ou mais dense layers responsdveis por executar a classificagio, A tiltima dense layer da CNN, através de uma fungio de ativagéo softmax, daré origem a um valor entre 0 ¢ 1 para cada uma das classes de previsio do modelo (ex: cio, gato, Capitulo 2 Tecnologias utilizadas 14 tc). Este valor corresponde & probabilidade dada pelo modelo de uma certa imagem pertencer a uma certa classe [7,23,24] & 4] (as free Ca} convaluton« raping ‘ontneay ee liveammcednes etna cation Figura 2.8: Uma CNN ¢ tipicamente composta por um conjunto de modelos convolucionais ¢ um. conjunto de dense layers. Como resultado, obter-se-8 um valor entre 0 e I para cada uma das classes do modelo, cotrespondendo 0 mesmo & probabilidade dada pelo modelo de uma imagem. cortesponder a respetiva classe [7]. 2.4.1 Convolutional layer A primeira camada numa CNN é sempre uma camada de convolugao (também designada por camada conv) ¢ 0 seu input corresponderé & matriz de valores dos pixeis da imagem inicial. Supo- nhamos uma imagem de dimensdo 32x32x3 ¢ uma camada conv constituida por 16 filtros (depth) de dimensio 5x5x3, A camada conv comega por colocar o seu primeiro filtto (filter) no canto superior esquerdo da imagem. De seguida, € efetuado 0 célculo do element wise multiplication entre os valores do filtro ¢ os valores dessa sub-drea da imagem (receptive field), sendo somados 6s seus resultados. Esta operagdo origina um valor tinico para a respetiva sub-irea. Tendo caleu- lado o valor para essa érea, a camada conv desliza o primeito filtro para a préxima sub-érea da imagem ¢ aplica a mesma metodologia, Esse proceso € aplicado a todas as outras sub-éreas da imagem e, como resultado, obter-se-d uma matriz. com todos os valores gerados a partir de cada ‘uma das sub-dreas da imagem (activation map). Este processo é aplicado a cada um dos outros filtros da camada, originando como output um conjunto de 16 activation maps (7,8]. A camada convolucional varia consoante os seguintes atributos + Kernel, neuron ou filter (filtro) ~ vetor de ntimeros que vai ser aplicado & imagem original. ‘A dimensao de um filtro varia consoante o modelo e @ camada de convolugao, Contudo, a profundidade do filtro tem de ser sempre igual & profundidade da imagem de input (ex: se a imagem de input € RGB, entao a profundidade do filtro tem que ser 3). Normalmente & uusado um filtro de dimensao Sx5xN (N representa a profundidade da imagem de input) para a primeira camada de convolugao de um modelo CNN; + Depth ~ némero de filtros a usar numa camada convolucional; Capitulo 2 Tecnologias utilizadas 15 + Receptive field - sub-regiao do input recebido ao qual vai ser aplicado o valor de um filtto. A aplicagéo de um filtro sobre uma receptive field gera um valor nico como output, O tamanho de uma receptive field tem de ser igual ao tamanho do filtro usado na camada convolucional; + Convolved Feature, Activation Map ou Feature Map ~ output gerado na convolugao ¢ computagao de um filtro sobre um input, ie., conjunto de valores getados na aplicagaa do valor de um filtro sobre todos receptive fields do input recebido; + Stride - valor que indica o nimero de pixeis deslizados por um filtro a cada computagao de um receptive field. O valor do stride permite controlar 0 valor da dimensdo do output (quanto maior o seu valor, menor a dimensao do output). Notmalmente sao usados os valores 1 ¢ 2 para o stride, Input Result 4150+ 4°1) Figura 2.9: Exemplo da convolugio de um filtro com stride = 1 sobre um dado input, Apés a computagao de uma sub-érea o filtro desliza um pixel, obtendo a préxima érea a computar [8] Input Filter Result BH +404 201) Dimension: 6x6 Figura 2.10: Exemplo da convolugao de um filtro com stride = 2 sobre um dado input. Ap6s a computagao de uma sub-érea o filtro desliza dois pixeis, obtendo a préxima érea a computar, O uso. deste stride sobre este input faz. com que a titima coluna do mesmo nao seja computada, havendo perca de informacio [8] Capitulo 2 Tecnologias utilizadas 16 + Zero-padding - varidvel que permite adicionar zeros em torno do input recebido. © zero- padding € usado par evitar a perca de informacao das bordas ao longo das camadas convo- lucionais e, consequentemente, a perca de informagio ¢ performance. input Piter Rend 0 a ° ° ° 7 =) ° ° 14 070-0" a ° 4 bieooset o}o}o}ojo}lojojo “ Dimension: 6x6 Figura 2.11: Exemplo da convolugio de um filtro com zero-padding sobre um dado input. A. aplicagao do zero-padding evita a perca de informagao do input recebido, a0 contrétio do que acontecia no exemplo mostrado em 2.10. [8] 2.4.2, Pooling Layer ‘A camada de pooling tem como objetivo reduzir o tamanho do input recebido por uma camada de convolugao, Esta redugao permite aumentar a velocidade dos célculos a robustez das componen- tes detetadas [7,8,24]. A técnica aplicada na camada pooling tem duas vertentes: 1, max pooling - obtém 0 maior valor dos pixeis ¢ descarta os restantes; 2. avg pooling - calcula a média do valor dos varios pixeis. 0 resultado gerado pela respetiva camada ¢ influenciado pelos seguintes parametros: + size ~ tamanho de uma reducio (ex: 2x2). Quanto maior o tamanho da redugdo, menor a dimensdo do ouput gerado: + stride - miimero de pixeis deslizados apés cada redugo (semelhante ao stride referenciado na convolution layer), + type + técnica a utilizar na camada pooling (max pooling ou avg pooling) Capitulo 2 Tecnologias utilizadas 7 ‘Max Pooling Avg Pooling aie ale s|6 8 s|6 60. Figura 2,12: Exemplo da aplicagao de pooling sobre um input usando a técnica de max pooling & a técnica de avg pooling. [8] 2.4.3 Dense (fully connected) layer ‘A dense layer € introdurida depois de todas as camadas convolucionais e de pooling, conectando cada neurSnio de uma camada anteriot a cada neursnio da camada seguinte, Normalmente um modelo CNN & composto por um conjunto de dense layers, onde na tiltima ¢ aplicada a fungto de ativagao sofimax para classificar as componentes detetadas no modelo a partir da imagem de input, 19}. Input Fint second ‘Output layer hidden hidden bayer layer Figura 2.13: Uma CNN € normalmente constitufda por um conjunto de dense layers. Cada dense ayer conecta cada neurénio da camada anterior a cada neurdnio da camada seguinte [9] Capitulo 2 Tecnologias utilizadas 18 Capitulo 3 Calculo de consumos de eletricidade ‘Uma distribuidora elétrica é responsével por, no final de cada periodo de faturagdo de cada um dos seus clientes, calcular o valor do consumo de eletricidade a ser faturado para cada um desses perfodos, Quando, por exemplo, ndo é comunicada uma leitura real do contador de um cliente, a distribuidora elétrica vé-se forgada a calcular uma estimativa para o consumo de eletricidade 2 faturar no respetivo periodo. © algoritmo da distribuidora responsivel por fazer os célculos dessas estimativas de eletricidade, apesar de ser bascado em algumas regras e restrigdes impostas pela Entidade Reguladora de Servigos Energéticos (ESE), adota uma simplificagao de calcul, assumindo que cada cliente tem um comportamento linear, ie., que 0 comportamento de cada cliente é independente do perfodo do ano em que se encontra, Essa simplificagdo pode ser um dos motivos para as elevadas discrepiincias entre os consumos estimados ¢ os consumos reais dos clientes da distribuidora, responséveis por milhares que reclamagées mensais nos call centers da mesma. Neste capitulo sio apresentados dois algoritmos de célculo de estimativas de consumo com 0 objetivo de diminuir a taxa de erro obtida nas estimativas calculadas no algoritmo utilizado atualmente pela distribuidora elétrica, sendo o mesmo distribufdo pelas seguintes secgdes: + Funcionamento do algoritmo atual: onde ¢ feita a descrigao do modo de funcionamento do algoritmo de célculo de consumos de eletricidade (¢ em particular, o algoritmo de céleulo de estimativas) utilizado pela distribuidora elétrica, terminando com uma apresentagao do comportamento de consumo de um cliente para 0 qual o algoritmo de estimativas atual apresenta graves problemas; + Proposta: proposta de dois novos algoritimos que, com base na informagao contida no hist6rico de consumo dos clientes da distribuidora, permitam reduzir a discrepancia entre os consumos de eletricidade estimados ¢ reais obtida pelo algoritmo atual; + Testes e resultados: definicao de uma abordagem para o teste e comparagao da eficécia dos algoritmos de estimativa propostos, assim como a aplicagio da mesma, 19 Capftulo 3. Céleulo de consumos de eletricidade 20 3.1 Funcionamento do algoritmo atual Neste seceao é feita a descricao do funcionamento do algoritmo de célculo de consumos de eletri- cidade utilizado atualmente pela distribuidora, dividindo-se nas seguintes subsecges + CAlculo do consumo faturado: desctig4o do processo utilizado pela distribuidora para calcular o valor de eletricidade total a faturar aos seus clientes; + Cleulo do consumo estimado: metodologia utilizada para calcular valores de consumo estimados de eletricidade, aplicada durante o processo de célculo de consumo faturado; + Identificagio do problema: identificagdo dos problemas do algoritmo de estimativas de consumo atual através da apresentagao de um comportamento de consumo de um dos clien- tes da distribuidora. 3.1.1 Célculo do consumo faturado ‘Sempre que termina o periodo de faturago de um dos clientes da distribuidora, é necessério cal- cular 0 valor do consumo de eletricidade usado por esse cliente e faturé-lo. O algoritmo utilizado pela distribuidora para calcular o consumo de eletricidade a ser faturado num determinado perfodo de faturago de um cliente c (representado através de um diagrama BPMN em 3.1), funciona da seguinte forma: + Se foi comunicada pelo menos uma leitura real (LRel) durante 0 perfodo de faturagio (Pranagie) atual do cliente c, entio: 1, Calcula-se o valor do consumo real (CReal) do cliente ¢ até & data do registo da Leal mais recente comunicada no Pratuagio atual; 2, Calcula-se o valor do consumo estimado (Crsimado) para os restantes dias do Pratwragio atual, ic., para o ndimero de dias entre as datas da LReal mais recente e fim do Pratwagio atu: 3. O valor do consumo de eletricidade a faturar do cliente c para respetivo Prasagio cor respondera ao valor do CReal + CEsimado, + Se nio foi comunicada nenbuma LReal no Pracwagio atual do cliente ¢, entio: 1, Calcula-se 0 valor do Cisimado para todos os dias do Praurasie atual do cliente c; 2. O valor do consumo de eletricidade a faturar do cliente c para 0 respetivo Prauagio corresponderd apenas ao valor do Cisimaso Capftulo 3. Céleulo de consumos de eletricidade a Foi comunicada pelo ‘menos uma leitura real Cleulo do consumo real rma Fim do periodo re ct estimado ‘io foi comunicada J ‘nenhuma litura real ‘Caleulo do consumo a faturar ao cliente Figura 3.1: Célculo do consumo a ser faturado no final de um perfodo de faturagio de um cliente da distribuidora (notagao BPMN) Em suma, de um modo geral, a férmula usada para calcular o consumo C! num perfodo de faturagao Paucagio pode ser representada pela seguinte funcao definida por ramos: (Crisimado( PFauragio), caso no exista nenhuma Leal comunicada em Prauracio C(Pratwrasio) Creu Praia) + Ctsimado( Prauwaio), ca80 contrério G1) De seguida é descrito o algoritmo usado para calcular 0 Crsimado para 0 Pratuagéo de um cliente. 3.1.2 Calcul do consumo estimado A distribuidora elétrica, para cada um dos seus clientes, guarda a informacio sobre o valor do seu. consumo médio didrio (doravante designado por CMD), sendo © mesmo recalculado periodica- mente, Este valor representa a quantidade média de eletricidade consumida diariamente por um. cliente e & utilizado sempre que se necesita de calcular 0 Crsimado para um dos seus perfodos de faturagao. Seja dias o mimero de dias a estimar para um determinado periodo de faturagio f de uum cliente c, O valor do consumo estimado para o perfodo f do cliente c é calculado através da seguinte formula Crsumato(f) = CM Diciene 6 + dias 3.2) No algoritmo 1 encontram-se apresentados todos os pasos efetuados no célculo do consumo esti- ‘mado para um perfodo de faturagao de um cliente. Capftulo 3. Céleulo de consumos de eletricidade 22 Algoritmo 1: Calcalo do Cisimdo de um cliente para um determinado Prawasie (Algo ritmo usado pela distribuidora elétrica) \dentiicador do cliente pFaturacao - perfodo de fat Input = ayo para o qual se pretende estimar 0 consumo Output: Valor do consumo estimado para um periodo de faturagdo pPaturacao do cliente 1 begin 2 | datalnécioPF & data inicio do pert de faturasio pFaturacao da cliente © 3 | data im PP < data fim do periodo de faturagio pFaturacno do cliente © 4 | dated Real « data daleirra real mais recente comunicada peo cliente © s | itdotal-Realesté entre datalnicioP F e dataFimPF then 6] |) dias « numero de dias entre data Real e data im PF 1 | ase + || dias « mumero de das ente datalnicioP Fe dataFimPF » | end » | CMD © CMD docliente ¢ 11 | consumokstimada « CMD» dias a | return consumoEstimado © valor do CMD de cada cliente pode variar ao longo do tempo, caso 0 mesmo mude de compor- tamento. Sempre que é efetuada a comunicagdo de uma nova LRea! para um determinado cliente c, © valor do seu CMD € calculado e atualizado da seguinte forma: 1. Sao obtidas as LReu’s comunicadas pelo cliente c nos tiltimos doze meses: calculada a diferenga entre o valor do consumo registado pela LRea! mais recente e pela Leal mais antiga (esse valor representara o valor do Ckeal para esse perfodo); 3. O valor do CMD cotresponderé ao resultado da divisao entre valor do Cea, calculado anteriormente, € 0 nimero de dias entre os registos da Lresi mais recente e LReat mais antiga, (equagio 3.3). Seja C’ 0 consumo real entre a leitura real mais recente ¢ mais antiga dos tltimos 12 meses de um cliente ce dias 0 mimero de dias entre essas duas leituras. A formula de célculo para o valor CMD do cliente c pode ser representada através da seguinte equagao: a B.S) Gas Bx No algoritmo 2 encontram-se apresentados todos os passos efetuados no célculo e atualizagio do valor do CMD de um cliente. Capftulo 3. Céleulo de consumos de eletricidade 23 Algoritmo 2: Awalizagao do CMD de um cliente [Algoritmo distribuidora elétical Input +: c- identificador do cliente Output: Valor do consumo médio disrio (CMD) caleulado para o cliente c 1 begin 2 | UReais ¢ leituras reais do cliente ¢ efetuadas nos dltimos doze meses s | tRealMaisRecente « leitura real mais recente do conjunto de leituras reais [Reais 4 | [RealMaisAntiga & leiturs real mais antiga do conjunto de leituras reais [Rents 5 | valortRecente < valor (contagem do contador) da leitura real (Real MaisRecente 6 | valortAntigo < valor (contagem do contador) da leitura real /RealMaisAntiga 1 | dias & némero de dias entre as leituras !RealMaisAntiga e [RealMaisRecente | cea ¢ snertecentesatrt Ante 9 | atualiza o valor do CMD para o cliente ¢ 3.1.3 Identificagao do problema Como referido em 3.1.1 ¢ 3.1.2, os tinicos fatores considerados no processo de calculo de esti- mativas dos consumos de eletricidade de um cliente so os valores do CMD e do niimero de dias de cada perfodo de faturacao, ou seja, as estimativas assumem um comportamento linear durante © perfodo entre duas leituras comunicadas por um cliente, Na figura 3.2 encontra-se apresentado ‘um exemplo de um conjunto de valores CMD para um dos clientes da distribuidora. Este cliente comunicou uma leitura real em abril ¢ outra em agosto, sendo o CMD recalculado nesses meses. Como resultado, para este cliente, foi assumido um comportamento linear entre os perfodos de janeiro a abril, maio a agosto e setembro a dezembro, Capftulo 3. Céleulo de consumos de eletricidade 24 Valor usado para o CMD de um cliente durante um ano Figura 3.2: Na figura encontta-se o exemplo dos valores usados para o CMD de um dos clientes da distribuidora, O cliente ilustrado comunicou duas leituras reais, uma em abril e outra em agosto, sendo © seu CMD recalculado nesses periodos. Em suma, 0 facto de um determinado cliente tirar férias sempre no mesmo conjunto de meses ou consumir mais eletricidade durante um determinado periodo do ano nao é considerado pela distribuidora elétrica, Isto significa que, para clientes com comportamento semelhante ao do men- cionado no cenério acima (poucas leituras comunicadas e comportamentos de consumo diferentes a0 longo do ano), 0 algoritmo corre o risco de estimar valores de consumo muito acima ou abaixo dos valores reais para um determinado periodo. Analisemos 0 seguinte cenério: ”Um dado cliente da distribuidora elétrica costuma tirar férias e estar fora de casa, em viagens ‘ou outras atividades, no verdo. Por outro lado, no inverno passa mais tempo em casa, devido ao Srio. Acresce ainda que, a iltima leitura real comunicada pelo cliente foi no final do més de maio, antes do perfodo de verdo.” Exemplo 1: perfodo de verso Em outubro, depois de ter passado o periodo de verio, este cliente decide comunicar o consumo real do seu contador. A figura 3.3 apresenta 0 conjunto de valores do consumo real ¢ do consumo estimado para este cliente desde o més de junho até ao més de outubro, onde foi comunicada a leitura real. Capftulo 3. Céleulo de consumos de eletricidade 25 Consumo Estimado VS Consumo Real ——__ ‘Coin fads mi 380m Periodos de Verao (dado tam qe eter ee loro cles) ss 150 135 135 150 100 100 | junho jlo sso setemtno outeo ‘Consumo etimado = Consume real Figura 3.3: Exemplo de consumo real ¢ calculado/faturado para um cliente que teve férias no vero © s6 ccomunicou uma leitura real em outubro Devido ao facto do algoritmo da distribuidora elétrica ter estado a estimar o mesmo consumo para ‘0s meses de vero que estimou para os meses anteriores, acabou por ser faturado mais consumo 0 cliente durante esses meses. Como resultado, ao ser comunicada a leitura do consumo real de életricidade em outubro, houve uma enorme discrepancia entre os valores reais ¢ estimados, tendo a distribuidora que devolver todo 0 consumo faturado durante aquele perfodo ao cliente. Por fim, note-se que, com foi comunicada uma nova leitura real, o valor do CMD do cliente foi recalculado. 0 facto dos meses onde houve pouco consumo de eletricidade entrarem para o novo célculo do CMD fez diminuir 0 valor do mesmo, Exemplo 2: perfodo de inverno © mesmo cliente comunica novamente, em margo, o valor do consumo real do seu contador. A. figura 3.4 apresenta 0 conjunto de valores do consumo real ¢ do consumo estimado para este cliente desde 0 més de novembro até ao més de margo, onde foi comunicada a leitura real. Capftulo 3. Céleulo de consumos de eletricidade 26 Consumo Estimado VS Consumo Real Periodos de inverno ‘Comino fro» mesos 300m 230 Foci em que page valor tisibidor) 190 160 ae 150. 2 es i 1 | | l I | l I novermro deer sani Ieverero mayo ‘mConsumo estinado = Consumo real Figura 3.4: Exemplo de consumo real e calculado/faturado para um cliente que teve elevado consumo no inverno ¢ s6 comunicou uma leitura real em margo Desta vez, o algoritmo da distribuidora ‘uma vez que nos meses de inverno este cliente da distribuidora elétrica costuma consumir mais életricidade do que nos outros meses. Como resultado, 0 consumo que nao foi faturado durante esses meses de invemno vai ser acrescentado a0 consumo calculado para margo, produzindo um Iétrica esteve a estimar menos consumo do que deveria, valor de eletricidade faturada para esse més muito clevado. 3.2 Algoritmo propostos Nesta secgao sdo apresentados os algoritmos propostos para o célculo de estimativas de consumo, dividindo-se nas seguintes subsecgdes: + CDM mensal: apresentagio de um algoritmo que, através da informagao contida no histérico de leituras de um cliente, um valor CMD para cada um dos meses do ano do respetivo cli- ente, introduzindo o fator sazonalidade no célculo das estimativas de consumo; + CDM mensal com aplicagao de clustering: aplicagao de uma técnica de clustering (K- Means ou HDBSCAN) sobre os valores calculados no CDM mensal de forma a agrupat cli- entes com comportamentos semelhantes e, desse modo, tendo em conta pequenas mudancas de comportamento de consumo por parte dos clientes da distribuidora. 3.2.1 CMD mensal ‘A sazonalidade & um dos principais motivos para a discrepancia entre valores de consumos reais e estimados de eletricidade, uma vez que @ maioria dos clientes nao apresenta um comportamento de consumo uniforme ao longo do ano. O primeiro algoritmo proposto tem como objetivo reduzir Capftulo 3. Céleulo de consumos de eletricidade 27 © impacto deste fator através da incluso de um valor de CMD para cada um dos meses do ano, Desse modo, para cada um dos clientes da distribuidora elétrica estaré associado um conjunto de doze valores de CMD e, sempre que seja necessétio estimar um valor de eletricidade para um. conjunto de dias de um Prauraséo de um cliente, usa-se 0 valor do CMD do cliente correspondente a0 més de cada um dos dias que se vai estimar, Por exemplo, se for necessério estimar um Pratwasio de um cliente com inicio a quinze de agosto ¢ fim a quinze de setembro, usa-se 0 valor do CMD de agosto do cliente para calcular 0 Cestinedo para os dias de agosto ¢ o valor do CMD de setembro do cliente para calculat 0 Crstimado para os dias de setembro, O valor calculado para 0 Crsimado de tum Prawrasio, de acordo com este algoritmo, é definido segundo a seguinte equagao: minal Cresimado(PRaurasio) = > OM Diets) * diasiness G4) mntecrmlinicial onde m/nicial ¢ mFinal representam o més inicial ¢ final do Prawsgi, respetivamente, CMD 0 consumo médio didrio de cada més ¢ dias o nimero de dias a estimar para cada um dos meses. Funcionamento e pseudo-cédigo do algoritmo Para calcular 0 Cisimado de um Pratsasio 6 necessério obter os valores do CMD de cada més e, para obter os valores do CMD de cada més, necessério calculé-los previamente. Seja C um determi- nado cliente da distribuidora elétrica. A formula proposta para calcular o conjunto de valores de CMD para o cliente C & a seguinte: 1. Obtém-se 0 conjunto de leituras reais (Lea's) do cliente C comunicadas durante os dtimos és anos, (a) Se 0 conjunto de Lrea’s do cliente C nao estiverem ordenadas por data, é feita a sua ordenagio; (b) Se no houver informagio sobre as LRet’s dos iiltimos trés anos do cliente, aplica-se © algoritmo apenas 4s leituras que existam. Caso ndo haja informagao sobre as LReat’s do tltimo ano do cliente, 0 algoritmo nao pode set aplicado a0 mesmo. 2. Para cada conjunto de Lreat’s consecutivas, calcula-se o valor do CMD entre elas (ou seja, se existirem n Lrea’s, obter-se-4 n — 1 conjuntos de valores CMD) 3. Adiciona-se cada um dos valores calculados do CMD aos meses abrangidos pelo mesmo. Por exemplo, para um valor de CMD calculado entre o perfodo quinze de janeiro ¢ quinze de margo, adiciona-se esse valor a0 més de janeiro, fevereiro e margo 4. Como resultado ter-se-4, para cada um dos meses, um conjunto de valores CMD associados. O iltimo passo é calcular, para cada més, a média dos valores do CMD que the foram Capftulo 3. Céleulo de consumos de eletricidade 28 associados, sendo o seu resultado 0 valor do CMD a ser usado para estimar 0 consumo de eletricidade daquele més nas préximas estimativas. pseudo-cédigo do algoritmo proposto encontra-se representado no algoritmo 3. Algoritmo 3: Calculo do CMD mensal com base nas leituras reais dos @ltimos 3 anos Input : idCtiente - identificador do cliente Output: Array com um valor de CMD para cada um dos meses do ano 1 begin CMDArray & velor de valores Double, com tamanho 12 CMDCount Array € vetor de valores Integer, com tamanho 12, IReais € leituras reais dos dltimos 3 anos do cliente com id idCliente (Reais) —1 with i 14140 s | fori cots ew tae) aan) ror Figura 3.6; Ilustragao do modelo de dados das leituras obtidas através do sistema CRM da distri- buidora elétrica para um dos seus clientes. As instalagdes foram agrupadas de acordo com a quantidade média anual de leituras comunicadas de forma a perceber se o mimero de leituras comunicadas influéncia 0 célculo de estimativas de eletricidade. Para esse efeito, foi desenvolvido um pequeno programa em Java que, para cada uma das instalagoes, conta a quantidade total de leituras comunicadas, dividindo-as de seguida pelo periodo de vida das instalagdes (diferenca entre leitura mais recente e mais antiga). Na figura 3.7 encontra-se apresentado o resultado obtido através da execucao do programa mencionado. Capftulo 3. Céleulo de consumos de eletricidade 34 Numero de clientes e média de leituras eomunieadas por ano ; [| litiecii Media de leituras comunieadas por ano Figura 3.7: Numero de instalagdes por média de leituras comunicadas anualmente do conjunto de instalagdes fornecidas pela distribuidora elétrica. 33.2 Abordagem ‘Uma vez organizadas as leituras das instalagdes recebidas, seguit-se o teste dos algoritmos desen- volvidos sobre as mesmas. A eficécia dos algoritmos foi testada através da seguinte abordagem: 1, Foi retirada a dltima leitura real de cada uma das instalagdes; 2. Para cada instalagdo e para cada um dos algoritmos de estimativas propostos (assim como © da distribuidora), foi calculado o valor do consumo estimado para a data da ultima leitura real (Je. a data da leitura removida em 1); 3. 0 valor do consumo estimado em cada um dos algoritmos foi comparado com o valor do consumo real registado na leitura removida, registando 0 valor do erro quadratico entre ambos os valores; 4, Foi calculada a média dos erros quadréticos (somatério dos erros quadréticos a dividir pelo mero de instalagdes), aplicando uma raiz, quadritica sobre 0 mesmo - RMSE (medida uusada para avaliar 0 erro entre dois conjuntos de dados); 5. Os algoritmos foram comparados ¢ avaliados através da andlise por comparagao de valores, RMSE entre algoritmos. Seja X ¢ Y dois valores RMSE calculados para os algoritmos Al € A2, respetivamente, A divisdo de X por ¥ resulta num valor que permite comparar a performance de ambos algoritmos, sendo Al melhor que A2 caso o valor da divisdo seja menor que 1, ¢ A2 melhor que AI caso o valor da divisio seja maior que 1 Capftulo 3. Céleulo de consumos de eletricidade 3.3.3. Resultados O tempo de processamento de cada um dos algoritmos no célculo das estimativas de consumo para as instalagdes fornecidas foi o seguinte + Algoritmo da distribuidora - ~0,4 segundos (cerca de 6E-5 segundos por instalagao); + Algoritmo CDM mensal - ~4 segundos ( cerca de SE-4 segundos por instalagao) + Algoritmo CDM mensal com clustering (K-Means) - ~25 segundos, incluindo tempo de processamento necessério para agrupar os dados através do algoritmo de clustering k-means (cerca de 3E-3 segundos por instalaga0)); + Algoritmo CDM mensal com clustering (HDBSCAN) - ~25 segundos, incluindo o tempo de processamento necessério para agrupar os dados através do algoritmo de clustering hdbs- can (cerca de 3E-3 segundos por instalago)). Na tabela 3.1 encontra-se apresentado o resultado da divisio do RMSE de cada um dos algoritmos pelo RMSE da distribuidora, sendo o mesmo apresentado de acordo com a média de leituras comunicadas por clientes. Por exemplo, no grupo 1 leitura/ano esto contidos os clientes para os quais 0 valor arredondado do resultado da divisao entre o seu ntimero total de leituras e o niimero de anos entre a sua leitura mais recente ¢ a sua leitura mais antiga seja igual a 1 Leituras por ano [ CDM mensal | (K-Means) | Clustering (HDBSCAN) fun 0.94 095 on (aaa 0.96 098 ors iene or oot Oo (aici) O85 ons one pe Jeitura/ano 0,77 0,79 0,80 beta 080 O76 O78 aoa a ors fies ont oss 0 9 Iaiure/ano 0,66 0,65 0,66 (seen oss 8 os ivcinae oot on “8 ‘era ost | 036 “ ‘Tabela 3.1: Apresentagdo dos resultados da extragdo de matriculas para cada um dos classificado- res treinados. Capftulo 3. Céleulo de consumos de eletricidade 36 0 resultado da divisdo dos RMSE dos algoritmos pelo RMSE da distribuidora foi sempre inferior a 1, demonstrando que a sazonalidade 6, de facto, um dos principais motivos para as elevadas discrepincias entre consumos reais ¢ estimados. Acresce ainda que este valor foi sendo cada ‘Ver menor quanto maior a médias leituras anuais comunicadas, justificando a importincia de ter em consideragao 0 comportamento em curtos perfodos de tempo em vez. de um comportamento anual, Os resultados da aplicagao de clustering foram ligeiramente melhores que os resultados da aplicagao de um CDM mensal simples. Contudo, o tempo de processamento dos algoritmos com aplicagao de clustering foram cerca de cinco veres superiores aos do algoritmo de CDM mensal, podendo 0 mesmo ser impraticével em contexto real, onde so processadas informagdes sobre leituras de milhées de instalagées. Capitulo 4 DetecAo automatica de matriculas Neste capitulo € apresentado o trabalho realizado na otimizago de um processo responsavel pela detegdo automética de matriculas, utilizado por uma agente rodovidria. Esta agente possui um conjunto de cinemémetros instalados nas estradas portuguesas que, ao detetarem um veiculo em excesso de velocidade, capturam uma imagem do local e enviam-na para ser processada pela ‘mesma através de um ficheiro XML. Este ficheiro, para além da informago da imagem capturada, contém ainda informacao sobre a data ¢ hora de captura, via, local ¢ velocidade do veiculo dete- tado, As principais tarefas efetuadas no processamento destes ficheiros sao a deteeao automitica, a detecdo manual e a aplicagao de medidas, sendo estas tarefas responsdveis por: + Detecdo automitica - processar a imagem contida no ficheiro XML através de um software ANRPILPR da agente rodovidtia, obtendo os valores da matricula do vefculo infrator € da confianga obtida para essa matricula (ic., a probabilidade calculada pelo software do valor obtido estar correto). Caso o valor da confianga seja superior a um valor minimo X estabelecido pela agente rodovisria, o valor da matricula deve ser enviado ditetamente para serem aplicadas medidas (sem necessidade de processamento manual), caso contritio, a imagem capturada deve ser enviada para a deteco manual; + Deteco Manual - vetificar manualmente o valor da matricula, por via de um operador da agente rodovidtia (e desse modo, com custos associados), enviando-o de seguida para serem aplicadas medidas; + Aplicagao de medidas - receber o valor de uma matricula (seja pela detegio manual ou detegio automética) e envid-la para as entidades responsiveis por aplicar as medidas ne- cessdrias (ex: GNR). Na figura 4.1 € apresentado um diagrama BPMN com as tarefas deste processo, assim como 0 fuxo dos dados desde o momento da detesio de um veiculo até & aplicago de medidas. 37 Capitulo 4, Detegdo automatica de matriculas 38 : ono aga do ava do seein : ae sie on B Veiculoem loud z 3 Re toieieie SAL Contra Figura 4.1: Conjunto de tarefas presentes no processo utilizado pela agente rodovidtia para pro- cessar imagens de veiculos em excesso de velocidade (notagio BPMN). A detecio automat no valor da matricula gerada através do seu software ANRP/LPR. A presenga deste valor deve- se a0 facto de nem sempre 0 mesmo estar correto e, no caso de ocorrer um erro, se tenha como utiliza um valor de aceitagdo (valor minimo X) para a confianga obtida consequéncia a aplicacdo de medidas a responsdveis de outros vefculos, gerando queixas e fazendo com que o responsével do veiculo infrator nao seja punido. Esta dificuldade na identificagao no reconhecimento de uma matricula contida numa imagem capturada pelos cinemémetros da agente € causada principalmente pelos seguintes fatores: + Variagdes relacionadas com a matrioula: 1, Dimensao: a distancia a que uma matricula se encontra do cinemémetro é variavel, fazendo com que umas matriculas tenham maior dimensio que outras. Acresce ainda ‘que, no geral, as matriculas se encontram a uma grande distancia em relago ao apare- Iho, representando uma pequena parte da imagem capturada, Esta variagio causada por: (a) Condigdes da localizagao - bermas ¢ outros componentes presentes no local influ- enciam a distincia entre o cinemémetro ¢ estrada do local; (b) Velocidade do veiculo infrator - a maior parte dos cinemémetros encontram-se instalados em auto-estradas € vias répidas, onde circulam vefculos com grande velocidade. Quanto maior a velocidade, maior a distincia a que se encontra 0 vefculo no momento de captura (uma vez que a captura nao é instantanea); (©) Via do veiculo infrator - os locais capturados costumam conter muitas vias, de- Capitulo 4, Detegdo automatica de matriculas 39 pendendo o tamanho da matrfcula da via onde circula 0 vefculo detetado; (@) Captura de um vefeulo em ex (b) Captura de um vefoulo em ex- __(¢) Caplura de um vefculo em ex- ‘essa de velocidade no lal A cessa de velocidade no local B ‘essa de velocidade no local C Figura 4.2: As imagens de matriculas capturadas pelos aparclhos encontram-se a diferentes distincias, sendo que no geral se encontram a uma grande distancia, dificultando a sua detegio. 2. Angulo: as matriculas apresentam-se com diferentes graus de inclinagio, sendo os mesmos influenciados pela elevagao do local e pela distancia a que o veiculo se en- ‘contra (uma vez que as imagens sio capturadas horizontalmente); 3. Quantidade: por vezes encontra-se mais do que uma matricula na imagem capturada, podendo a(s) mesma(s) encontrar-se no mesmo sentido ou em sentido oposto: 4, Sujidade: a presenga de sujidade no veiculo pode cobtir parcialmente a respetiva matricula, impossibilitando ou dificultando a sua leitura; 5, Estado: a matricula pode encontrar-se partida c/ou desgastada; 6. Localizac&o: a matricula pode encontrar-se em diferentes partes de uma imagem. (@) Estrada com clevada_—()—Local-— com —mmuita_—_(c) Abola de reboque cobre parte inclinaga rmovimentagio da matricula Figura 4.3: As imagens capturadas pelos aparelhos podem conter mais do que uma matricula (b). ‘As matriculas apresentam diferentes graus de inclinagao (a) e podem nao estar totalmente visiveis ©. + Variagdes relacionadas com o ambiente e/ou com o aparelho de captura 1, Luminosidade: a qualidade de uma matricula € afetada pelo grau de luminosidade presente no momento de captura: Capitulo 4, Detegdo automatica de matriculas 40 — Perfodo do dia: imagens capturadas de noite vio ter menos qualidade que as capturadas de dia; — Reflexo: por vezes nao é possivel identificar parte de uma matricula devido ao re- fiexo causado pela mesma, Para além do reflexo na matricula, pode haver também reflexo no aparelho, uma vez que o mesmo é protegido por um vidro; = Sombra: parte de uma matricula pode estar mais escura do que outra devido a0 efeito de sombra, 2, Meteorologia: eventos meteorolégicos afetam a qualidade da imagem capturada, Por cexemplo, imagens capturadas em dias de chuva vao conter pingas de chuva;, 3. Estado do aparetho: por vezes o aparelho tem mal formagies ¢ a agem eapturada ‘vem com defeito. (6) O reflexo afeta a qualidade da imagem A falta de iluminagdo afeta a qualidade da imagem capturada (8 Por vezes o aparelho encontra- s¢-com malformagées Figura 4.4: A qualidade das imagens capturadas depende de fatores relacionados com o ambiente e/ou o aparelho de captura, ‘A agente rodovisiria estabeleceu um valor maximo (0, 2%) para a taxa de erro na detecio au- tomética de matriculas (percentagem de matriculas erradas onde se obteve um valor de confianga maior que o valor mfnimo X). De forma a garantir uma taxa de erro inferior a esse limite, foi definido um valor muito elevado para a confianga minima X. Contudo, a utilizagao desse valor faz. com que apenas uma pequena parte das imagens capturadas (cerca de 30%) sejam processa- das de forma automitica pela agente, tendo a maioria que ser processada manualmente pelos seus operadores (i.c., apenas 1/3 das matriculas detetadas automaticamente obtém confianga > X). A fraca capacidade do software ANRP/LPR usado para lidar com as variagées relacionadas com a matricula eo meio ambiente, juntamente com o facto de o mesmo nao fazer uso das caracteristicas de uma matricula portuguesa, pode ser uma das causas para esse reduzido nimero de matriculas detetadas automaticamente. Neste capitulo apresentamos uma solugao para este problema através da implementago de um sistema ALPR ("from scratch” e apenas com recurso a software gratuito) que, para uma taxa de erro inferior & permitida pela agente, permita a dete¢ao automitica de uma maior mémero de matriculas, dividindo-se pelas seguintes sec + 4.1 Preparacio do input: onde é feita a aplicagio de um recorte & imagem capturada em Capitulo 4, Detegdo automatica de matriculas 4 cada um dos locais, diminuindo consequentemente o nimero de elementos da imagem a processar (menor mémero de elementos ~> menor probabilidade de errar); + 4.2 Extracao da matricula: implementagdo de um algoritmo que permita, para uma ima- gem capturada de um local (e posteriormente recortada pela preparagao do input), a identificagao € extragio, através da aplicagao de classificagio em cascata, da matricula do veiculo nela presente; + 4.3 Segmentagao: implementagio de um algoritmo que permita, para uma imagem de uma matricula (gerada pela extragdo de matriculas), a a identificagio e extragio dos seus carac- teres; + 4.4 Reconhecimento: treino e aplicag cimento de caracteres presentes em imagens de matriculas; jo de um conjunto de modelos CNN para o reconhe- + 45 Testes ao ALPR: aplicaco do sistema ALPR desenvolvido ao longo do capitulo a um conjunto de imagens reais forecidas pela agente rodovidria. Anilise e apresentagio dos seus resultados. 4.1 Preparacio do input Quando um vefculo é detetado em exc rodovisria, € produzido um ficheiro XML com a imagem capturada no momento e alguns dados sso de velocidade por um dos cinemémetros da agente sobre o evento de detesao (via, velocidade, etc). Estas imagens podem conter um elevado niimero de outros componentes (separadores, sinais, outros veiculos, etc), diminuindo o desempenho na detegio de uma matricula, assim como a sua eficécia, uma vez que grande parte destes compo- nentes podem ser confundidos com a mesma, Acresce ainda que a presenca de outros vefculos no local capturado pode ter como consequéncia a detego de uma matricula que no seja a do veiculo infrator, como podlemos verificar nas imagens (b) ¢ (¢) da figura 4.5. (@) Apenas a matricula do infrator_¢b) Para além da matricala do in- _(¢) Para além da matricula do in- foi captarada frator foi capturadaamatriculade frat, fi capturada a matricula de ‘um vefeulo em sentido oposto ‘um vefculo no mesmo sentido Figura 4.5: A imagem capturada por um cinemémetro pode conter, para além da matricula do veiculo infrator, matriculas de outros veiculos presentes no local, A preparagio do input é a primeira fase do sistema ALPR implementado ¢ tem como objetivo Capitulo 4, Detegdo automatica de matriculas 2 a redugao da probabilidade de ocorréncia destes eventos, Esta redugao é aleangada através da aplicagao de um recorte & imagem capturada em cada um dos locais, eliminando as zonas da los nunca est: imagem onde os vei presentes. Definigao da zona de recorte ‘A imagem capturada para um determinado local apresenta todas as vias da estrada a ele associada, assim como casas, bermas e outros componentes. Contudo, apenas € necesséria a partelzona da imagem onde se encontra o vefculo infrator, variando a mesma de acordo com: 1. A via do local onde foi detetado o vefculo infrator, obtida através do ficheiro XML gerado pelo cinemémetro que capturou o evento; 2. O Angulo entre o cinemémetro responsavel pela captura da imagem e a estrada correspon- dente: 3. A distancia a que um cinemémetro se encontra de um veiculo detetado em cada uma das, vias do local. Apesar do angulo e da distancia a que 0 cinemémetro se encontra das vias nao serem fornecidos, ‘os mesmos podem ser observados através da anilise manual de imagens reais, capturadas pelos varios cinemémetros. Desse modo, para cada um dos locais capturados pela agente: 1. Foram obtidas imagens reais de veiculos detetados em cada uma das suas vias (cerca de 100 imagens por via); 2. Foi identificada, para cada uma das vias, a parte da imagem onde o veiculo infrator estava contido; 3. Foi definida, para cada uma das vias, uma zona da imagem que contivesse todos os vefculos infratores das imagens fornecidas para essa via e, por outro lado, reduzisse substancialmente a dimensdo da imagem original (chamada “zona de recorte”), Na figura 4.6 so apresentados dois exemplos de locais (local A e B) e as respetivas zonas de recorte definidas manualmente para os veiculos detetados em cada uma das suas vias. Capitulo 4, Detegdo automatica de matriculas 43 (@) Zona do local A onde comele-_(b) Zona do local A onde com ele- vada probabiidade se encontraré vada probabilidade se encontard sum veiculo infrator na via L (6) Zona do local A onde com ele- vada probabilidade se encont }) Zona da local Bonde comele-__(¢)Zona do local B onde com ele- (7) Zona do local B onde com ele vvada probabilidade se encontrar vada probabilidade se encontrard vada probahilidade se encontrar ‘um yeiculo infrator na via 1 tum vefculo infator na via 2 ‘um vefculo infrator na via 3 Figura 4.6: Zonas de recorte definidas para cada uma das vias de dois locais onde estio instalados cinemémetros. Aplicasao do recorte ‘Uma ver definidas as zonas de recorte para cada um dos locais, na recegio de um ficheiro XML. a preparago do input é responsavel por: 1. Extrair as informagGes do ficheiro XML recebido - imagem capturada, via onde foi detetado © veiculo infrator ¢ local onde se encontra instalado o cinemémetro que capturou © evento; 2. Obter a zona de recorte de acordo com as informagdes obtidas no ficheiro XML; 3. Aplicar o recorte & imagem capturada ¢ enviar o resultado para a préxima fase do sistema ALPR - a extracio de matriculas. Na figura 4.7 é apresentado um exemplo de uma imagem capturada de um local (a), a sua zona de recorte cortespondente (b) ¢ a imagem enviada para a fase da extragao de matriculas (c). Capitulo 4, Detegdo automatica de matriculas 4 {@) Imagem capturada num deter- __¢b) Zona de recorte definida para _(¢) Imagem recortada ¢ enviada rminado local C. lum veiculo inftator deteiado na para a extragio de maticulas de via 3 do local © tum vefoulo infkator detetado na via 3 do local €. Figura 4.7; A preparagao do input aplica um recorte 4 imagem capturada por um cinemémetro & envia-na para a extragao de matriculas 4.2. Extracdo de matriculas A extragio de matriculas corresponde & segunda camada do sistema ALPR implementado ¢ & responsdvel pela identificagao e extragao de matriculas presentes em imagens recortadas e enviadas, pela preparagio do input. Nesta seco é apresentado um algoritmo que, através de classifies em cascata, permite a detegdo ¢ extragdo de matriculas, dividindo-se nos seguintes pontos: + Fase de treino- descricao do proceso usado para o treino de trés classificadores em cascata diferentes; + Processo de extragio- apresentagio de um processo/algoritmo que, dado um classificador em cascata treinado, permita a identificagdo e extragao de matriculas presentes em imagens enviadas pela preparagao do input; + Avaliagio e anslise de resultados- comparagio do resultado da extrago de matriculas para cada um dos classificadores treinados. 4.2.1. Fase de treino Para o treino de um classificador em cascata € necessério um conjunto de imagens positivas (ima gens dos objetos que se pretendem detetar) ¢ um conjunto de imagens negativas (imagens dos objetos que no se pretendem detetar) [18, 27, 28]. O conjunto de imagens positivas ¢ negativas utilizado para este projeto foi preparado através do recorte manual de mil e quinhentas imagens capturadas pelos cinemdmetros da agente rodovidria (exemplos na figura 4.8), distribuindo-se da seguinte forma: + Positivas: quinhentas imagens de matriculas capturadas em varios perfodos do dia, de varios Angulos ¢ em diferentes condigdes c/ou ambientes (reflexo, sujidade, metcorologia etc); Capitulo 4, Detegdo automatica de matriculas 48 + Negativas: mil imagens de partes de estradas, separadores, vegetagao, casas, vefculos, si- nais e outros componentes detetados nas imagens analisadas, 00-13-ML] —— | oy Ea. ool a (a) Exemplo de imagens positives (b) Exemplo de imagens negativas Figura 4.8: Exemplos de imagens positivas e negativas usadas no treino dos classificadores em cascata, Depois de preparado 0 conjunto de imagens a usar, de matriculas foram treinados tés classificadores diferentes, dois baseados em componentes LBP eguiu-se a execugao do treino, Para a extragi0 [21] (um constituido por vinte classificadores simples ¢ outro por vinte ¢ cinco) ¢ um baseado em componentes Haar [19] (constituido por vinte classilicadores simples). O treino dos trés clas- sificadores foi executado através de uma fungo disponibilizada pelas bibliotecas do OpenCV, 0 opency. traincascade (29), wtilizando os parimetros apresentados na figura 4.9 (variando apenas © -numStages ¢ 0 -featureType). Figura 4.9: Parimetos utilizados na execugao do treino do classificador baseado em componentes LBP constituido por vinte ¢ cinco classificadores simples. Na tabela 4.1 6 apresentado o tempo de treino e 0 acceptance ratio dos classificadores treinados. acceptance ratio € um indicador que é usado para determinar 0 quao preciso é 0 modelo que esté a ser treinado, sendo recomendével manter este valor sempre superior @ 10e — 5, de forma a assegurar que o modelo nao esté fazer overtraining. Tabela 4.1: Tempo de treino ¢ acceptance ratio dos classificadores em cascata treinados. Classificador | Classificadores ] Componente | , ‘nome simples a Tempo de treino | Acceptance ratio LBP 20 20 LBP he Zim 33E4 TBP 25 25, LBP Gh e 45m 265-5 Taar 20 20 Haar 34, The 23m T2E-4 treino de um classificador gera um ficheito XML com os dados necessétios para a detegao de matriculas, podendo o mesmo ser aplicado a qualquer imagem, Na figura 4.10 é apresentado um cexemplo de uma parte do ficheiro XML gerado no treino do classificador Haar 20. Capitulo 4, Detegdo automatica de matriculas 46 BOOST HAAR 40 coedeh>80 GAB 9. 9900001287460327e-01 5 .0000000000000000e-01 9.4999999999999996e-01 -1 100 Figura 4.10: Parte do ficheiro XML gerado no treino do classificador Haar 20 4.2.2 Processo de extragio Depois de treinado um classificador, a sua informagao (contida no ficheiro XML gerado) pode ser cartegada e aplicada a uma imagem. A biblioteca do OpenCV fornece uma API para detegao de objetos através de classificagao em cascata [18], onde, entre outras, esto presentes as seguintes, fungées: + cascadeClassifier: responsivel por fazer 0 cattegamento da informagao contida num fi- cheiro de um classificador em cascata treinado; + detectMultiScal responsavel pela detegio de objetos de diferentes tamanhos, contidos numa imagem, através da aplicagao de um classificador em cascata. Os objetos detetados sio retornados através de uma lista de retangulos, sendo cada retangulo uma parte da ima- gem onde potencialmente esté um objeto desejado (i.e., um objeto detetado pode nao serum objeto desejado - falso positive). O resultado obtido na aplicagao desta fungao é influenci- ado pela manipulagao dos seguintes pardmettos: — scaleFactor - “Parameter specifying how much the image size is reduced at each image scale” - variével que indica quanto é que uma imagem é reduzida a cada escala de imagem (ex: 1.5 indica que a imagem € reduzida em cinquenta por cento a cada escala de imagem). Quanto maior o valor do scaleFactor, menor o tempo de processamento ©.0 mimero de objetos detetados [30,31]. = minNeighbors - “Parameter specifying how many neighbors each candidate rectangle should have to retain i.” - varidvel que indica 0 némero minimo de vizinhos que um. retingulo deve ter para ser retido (i.e., 0 mimero mfnimo de retangulos detetados a intersetarem a sua zona). Quanto maior o valor do mimero do minNeighbors, menor © mimero de objetos detetados mas maior a sua qualidade, ic., diminui os falsos po- Capitulo 4, Detegdo automatica de matriculas 47 sitivos, uma vez que em zonas com muitas intersegdes (como exemplificado na figura 4.11) se encontra, com elevada probabilidade, o objeto detetado [32] Note-se que um valor muito alto no ScaleFactor ou no minNeighbours pode causar a nao detegio de um objeto (ex: nenhum dos objetos identificados tem mais de que cinco vizinhos e valor do minNeighbours foi inicializado a de). Relativamente ao valor do scaleFactor a usar, decidi- ‘mos aplicar um conjunto diferente de valores (1.1, 1.5 € 1.9) € escolher o valor a usar com base na anélise dos seus resultados. Relativamente ao valor de minNeighbours a usar, uma vez que as imagens capturadas pelos cinemémetros da agente rodoviéria apresentam elevada variabilidade quanto & sua constituigdo ¢ & forma como esti apresentada a matricula, nao foi possivel estabelecer ‘um valor Gnico que funcionasse para qualquer imagem. Para resolver esse problema, foi criada ‘uma fungao que, para cada imagem capturada, seleciona o valor do minNeighbours a usat. Esta solugdo encontra-se descrita no algoritmo 5, funcionando, de forma resumida, da seguinte ma- neira: inicializa-se 0 valor do minNeighbours a 0 ¢ incrementa-se esse valor até que seja detetado apenas um objeto (0 objeto que iré conter 0 maior niimero de vizinhos). Caso nao exista nenhum valor para minNeighbours que retome apenas um candidato, aplica-se o valor maximo possivel € escolhe-se o primeiro candidato retomado. A escolha desta técnica (primeiro candidato) foi feita depois de uma andlise a vérias imagens, onde foi reparado que, para as imagens onde se tem mais do que um candidato para o valor méximo do minNeighbours, todos os candidatos apresentam a matricula. Esta afirmagao pode ser reforgada através da andlise da figura 4.11, onde é apresentado uum exemplo de uma imagem ¢ todos 0s candidatos a matricula para ela detetados. Para essa ima- ‘gem, caso haja mais do que um candidato para o valor méximo do minNeighbours, o resultado esperado ao selecionar o primeiro desses candidatos conteré, em prinefpio, a matricula, uma vez, que todos os candidatos que nao apresentam a matricula nao contém muitos vizinhos. Pav tnl [oot ole)eieea Figura 4.11; A matricula de um vefculo pode encontrar-se em mais do que um dos cancdidatos a matricula detetados na aplicagao de um classificador em cascata ‘Algoritmo 5: Selegao do candidato a matricula detetado através da aplicagao de um Factor=1.1) classificador em cascata (para seal Input : Imagem image, classificador classifier Output: Candidato a matricula escolhido 1 begin 2 | minNeighbors <0 3 | sealeFactor © 1.1 4 | candidatos « detectMultiScale(classi fier,image, sealeFactor, minNeighbors) | while size(candidatos) > I do ‘ minNeighbors — minNeighbors +1 7 candidatos € detectMultiScale(classifier,image, scaleFactor, minNeighbors) | end 9 | it-size(candidatos) <1 then ra minNeighbors € minNeighbors - ” candidatos « detectMultiScale(classi fier image, sealeFactor, minNeighbors) n | end 1s | return first(candidatos) 14 end Na figura 2.13 é apresentado um exemplo da aplicagao deste algoritmo a duas imagens capturadas, ‘onde em (a) foram precisas treze iteragdes para que fosse detetado apenas um candidato ¢ em (b) foram precisas apenas dez iteragdes. Caso 0 algoritmo 5 no fosse aplicado eo valor definido para © minNeigbours fosse, por exemplo, dez, apesar de se conseguir ter apenas um candidato para a imagem (b), ter-se-ia mais do que um para a imagem (a) ¢, ao escolher um deles, correr-se-ia 0 risco de nao extrair a matricula do vefculo. (a) Aplicagdo do algoritme de selegéo do candidato a maticula com teze steragées (©) Aplicagdo do algoritme de selegdo do candidato a maricula com dez iteragies Figura 4.12: O valor do minNeighbors necessétio para que seja detetada apenas uma candidato na imagem é varidvel. Em suma, a aplicagao do algoritmo descrito em 5 aumenta o tempo de processamento na deteg0 de matriculas, uma vez que tem de procurar qual o valor do minNeighbors méximo a usar. Con- tudo, a sua utilizagdo previne os seguintes acontecimentos: + Imagens onde nenhum candidato seria detetado (valor do minNeighbors demasiado alto), Capitulo 4, Detegdo automatica de matriculas 49 + Imagens onde varios candidatos seriam detetados ¢, ao escolher um deles, correr-se-ia o risco de extrair a imagem de um falso positivo (valor do minNeighbors demasiado baixo). 4.2.3. Avaliagao e andlise dos resultados Em 4.2.1 foi apresentado o treino de trés classificadores em cascata (dois baseados em LBP e um baseado em Haar) e em 4.2.2 foi descrito o processo implementado para a extrago de matriculas a partir do output fornecido pelos classificadores. Nesta seegao é apresentado 0 resultado dos testes realizados para a extrag20 de matriculas utilizando cada um dos classificadores treinados. Metodologia (0s testes realizados tiveram por objetivo a determinagao da precisao (percentage de matriculas detetadas e corretas) de cada um dos classificadores na extrago de matriculas contidas em imagens enviadas pela camada de prepa de mil e quatrocentas imagens capturadas pelos aparelhos da agente rodovistia (diferentes das que foram usadas no treino dos classificadores). Para cada uma das imagens aplicou-se o algoritmo \¢20 do input, Para esse efeito, foi agrupado um conjunto de cerca descrito em 4.2.2, utilizando cada um dos classificadores treinados em 4.2.1, e analisaram-se os seus resultados. Avaliagio Na tabela 4.2 so apresentados os resultados da eficacia ¢ do tempo de processamento de cada um, dos classificadores treinados para cada um dos valores testados no seale factor (1.1, 1.5 € 1.9). Tabela 4.2: Precisao e tempo de processamento médio por imagem na extragio de matriculas para cada um dos classificadores em cascata treinados, Classificador | Scale Factor | Tempo Médio | Matriculas Detetadas | Matriculas Corretas i 1293ms 1429 (09,7%) 1512 01.6%, LBP 20 1s 34m 1429 (09,79) 1105 (77.1%) 19) 275m 1429 (99.7%) TA (50,35) i 353m 1429 (09,79) 1297 (00.5%) LBP 25 TS 235ms T1427 (99,67), TIAL (79.67%), 19, 193ms 1412 (08.5%) 716 (50,0%) 1 473ms 1414 (08.7%) 1371 05.7%) Haar 20 15 419s 1413 (98.6%) 1300 (90.7%) 1, 259ms 1403 (97.9%) 1162 (811%) ‘A diferenca entre a percentagem de matriculas detetadas e corretas presente nos resultados dos Varios classificadores deve-se ao facto de nem sempre a imagem recortada (i.e, 0 candidato sele- Capitulo 4, Detegdo automatica de matriculas 50 cionado) no processo de extragao ser uma matricula ou uma matricula perfeita, podendo a mesma conter: + Matriculas com partes de vefculos; + Partes de veiculos, sem matricula; + Matriculas incompletas (foi recortada apenas uma parte parcial da matricula); + Componentes nao relacionados com matriculas ou veiculos. (©) Exuagio de partes de vefoulos, sem (6) Exragio parcial de matefouls (@) Exiragio de componentes nio relacionados com vefoulos igura 4.13: A extragdo de matriculas nem sempre tem como resultado uma matricula perfeita. © aumento do valor do scale factor, apesar de diminuir o tempo médio de processamento de ‘uma imagem, diminui também a percentagem de matriculas detetadas ¢ corretas em cada um dos classificadores. Como um dos principais objetivos definidos para este projeto foi o aumento do imero de matriculas detetadas comretamente, foi selecionado o valor 1.1 para o seale factor a usar na fungo detectMulti cale presente no algoritmo de extracio desta camada do sistema ALPR. O classificador escolhido para detetar matriculas foi o Haar 20, uma ver que foi classificador com mais matriculas corretas detetadas, 4.3. Segmentagio de caracteres A segmentacao dos caracteres corresponde & terceira camada do sistema ALPR implementado ¢ € responsével pela localizagio e extragio dos caracteres presentes em imagens de matriculas envia- das pela camada anterior. Nesta secedo é apresentado um algoritmo que, com base na informagio fomecida através da aplicagao da técnica de thresholding, permita a detegao ¢ extragao de carac- teres, dividindo-se nos seguintes pontos: + Identificagao dos caracteres- onde é apresentado um algoritmo simples de segmentagio capaz de detetar ¢ extrair caracteres através da — Anilise do resultado gerado (imagem binéria) através aplicagdo de um thresholding adaptativo sobre a imagem de uma matricula; = Aplicagao de algumas regras que permitam identificar se um caracter foi bem identifi- ccado ou se foi detetado algum erro na sclegio dos caracteres; Capitulo 4, Detegdo automatica de matriculas St + Verificagao ¢ correcao dos caracteres- onde sao identificados alguns dos problemas do algoritmo proposto e sto apresentadas novas regras de verificagao e corregao de caracteres, que permitam melhorar os seus resultados; + Avaliagio e anélise dos resultados: anélise dos resultados obtidos para a extragao de carac- teres usando o algoritmo proposto na identificagao de caracteres e melhorado na verificagao e corregio de segmentos. 43.1 Identificagao dos caracteres Para além da imagem de uma matricula apresentar diferentes graus de luminosidade em comparacio com a imagem de outras matriculas, também pode apresentar essa diferenca a nivel interno, ie. 0 agrau de luminosidade em duas partes distintas de uma matricula pode set muito diferente. Essa diferenga é causada principalmente pelo efeito de sombra, sujidade presente na matricula e Angulo entre a matricula e a fonte luminosa. Para esse tipo de imagens, a aplicagio de um threshold simples pode nao ser suficiente para fazer a distingdo entre os caracteres ¢ as restantes partes da matricula correspondente, impossibilitando a extragao completa dos mesmos, Na figura 4.14 & apresentado um conjunto de quatro matriculas enviadas pela camada anterior (a) e as respetivas, imagens bindrias resultado da aplicacio de um threshold simples (b) e de um threshold simples Otsu (c). Para ambos os tipos de thresholding houve matriculas onde se identificaram bem os ca- racteres ¢ matriculas onde o mesmo nao aconteceu, justificando, dessa forma, o fraco desempenho de um threshold simples para o tipo de imagens enviadas pela extragio de matriculas. Es Bisco (a) Exemplo de imagens de matriculas obtias através da camada de extragao de matriculas ders: | | ee | coe. | | me () Aplicagto de um threshold simples a0 conjunto de matriculas exemplificado em (a) utlizando © mesmo valor de ‘threshold para todas as maifculas, eS | GR | eee: | | (©) Aplicasio de um threshold simples Otsu a0 conjunto de marfeulas exempliicado em (a) ullizando o mesmo valor de threshold para todas as matricalas. Figura 4.14: A aplicaco de um threshold simples pode nao ser suficiente para distinguir os carac- teres das restantes partes da matricula correspondente. ‘A aplicagio de um threshold adaptativo, por outro lado, permite estabelecer um valor de threshold para diferentes drcas de uma mesma imagem ¢, desse modo, obter os caracteres independente- Capitulo 4, Detegdo automatica de matriculas 32 mente de efeitos do efeito sombra, reflexos ou outros fatores existentes nas matriculas, A API do openCV fornece uma funcao que permite a aplicacao deste tipo de threshold [33], designada por adaptativeThreshold(adaptativeMethod BlockSize, C), onde: + adaptativeMethod & 0 tipo de método adaptativo a usar no thresholding, existindo dois, métodos possiveis: 1, ADAPTIVE THRESH MEAN_C: onde 0 valor do threshold a aplicar em cada rea & calculado através da média dos dos valores dos thresholds das areas vizinhas, 2. ADAP: VE THRESH GAUSSIAN calculado através de uma weighted sum dos valores dos thresholds das éreas vizinhas, onde o valor do threshold a aplicara cada érea é sendo os pesos calculados através de uma janela gaussian. + blockSize 6 0 tamanho da 4rea de uma vizinhanga; + C & uma constante usada para o célculo da média ¢ dos pesos médios, influenciando a qualidade dos resultados. Contudo, as imagens das matriculas apresentam ngulos ¢ tamanhos variaveis, ou seja, os carac- teres nao contém todos o mesmo tamanho ¢ nao vao estar todos apresentados da mesma forma (ans vao apresentar mais rotagao do que outros). Essa caracteristica faz com que nio seja possivel estabelecer um valor tinico para o atributo blockSize ¢ para a constante C que funcione para todas as imagens de matriculas recebidas. Desse modo, & semelhanga do processo feito para a selegio do valor do minNeighbours na extragio de matriculas, a solugdo para este problema passou pela identificagao, em cada uma das imagens, dos valores do blockSize e da constante C a usar de forma a obter os resultados desejados. © processo de selegio dos valores mencionados foi feito da seguinte forma: 1. Gerou-se um conjunto limitado de combinagdes entre os valores blockSize € C; 2. Iterou-se sucessivamente 0 conjunto de combinagdes gerado até que: (@) aaplicagao do threshold adaptativo (usando um dos conjuntos de valores das combinagées) gera-se um conjunto de seis caracteres bem vis{veis; (b) nao existisse mais conjuntos de valores para iterar (e nesse caso, a segmentagio falha). Na figura 4.15 é apresentado um conjunto de imagens binérias de uma matricula, Estas imagens foram geradas através da aplicagéo de um threshold adaptativo usando varias combinagées de valores diferentes. Como resultado, verifica-se que, para uma mesma imagem, a manipulagiio dos valores do blockSize ¢ da constante C origina diferentes resultados, podendo os mesmos apresentar bem ow nao os seus caracteres. Capitulo 4, Detegdo automatica de matriculas 33 Figura 4.15: Conjunto de imagens binérias de uma matricula geradas através da aplicagao de um threshold adaptativo usando diferentes combinagdes de valores blockSize e C Para a identificagao dos caracteres foi usada outra fungao do openCV, o findCountours. Esta fanedo tem como input uma imagem binéria ¢ como output gera todos os conjuntos de pixeis bran- cos interligados presentes na imagem fomecida. Uma determinada imagem binaria, gerada através da aplicagdo de um threshold adaptativo & imagem de uma mattricula, é considerada como “tendo fs seus caracteres bem visiveis” se, ao aplicar a fungao findCountours, existirem exatamente seis conjuntos de pixeis interligados com as seguintes caracteristicas (definidas através da andlise de matriculas recortadas pela extrago de matriculas) 1. Altura > 1/2 da altura da matricula; 2. Largura < 1/5 da largura da matricula; 3. Altura > largura A solugdo apresentada para a segmentagao dos caracteres de matriculas encontra-se descrita no algoritmo 6, onde tamanhoCerto(c) representa a fungao responsével por indicar se um dado con- junto de pixeis interligados satisfaz ou nao as caracteristicas mencionadas. Caso seja detetada uma combinagio que retorne exatamente seis conjuntos de pixeis brancos interligados com as carac- teristicas mencionadas, aplica-se o recorte & matricula (figura 4.16), obtendo como resultado uma imagem para cada um dos caracteres identificados. ‘Algoritmo 6: Segmentagio de caracteres (Algoritmo inicial) Input : Imagem im, combinagies de valores comb: ‘Output: Uma imagem por caracter, caso se encontre uma combinagao que defina bem os caracteres da matricula, ou nulo, caso contrétio 1 begin 2 | for blockSize,C in combs do 3 segmentos € [] ‘ thresh — adaptativeTreshold(im, blacks} s countours finéCountours(thres ‘ for cin countours do 7 if tamanhoCerto(e) then ‘ | _adiciona(segmentos.c) ’ end » end ” if size(segmentos) == 6 then 2 | return segmentos » end | end as | return None 6 end Figura 4.16: Imagem binéria de uma matricula onde foram identificados exatamente seis caracte- tes bem definidos, resultando na extragdo dos mesmos, 4.3.2. Verificacao e corregao dos caracteres Apesar de na identificagio dos caracteres ter sido definido um conjunto de regras de modo a de- terminar se um conjunto de pixeis interligados € ou no um caracter bem definido, por vezes 0 resultado da segmentago pode apresentar alguns erros. Na figura 4.17 sao aptesentados dois exemplos de erros que, embora com pouca frequéncia, costumam acontecer na segmentagio de caracteres através do algoritmo apresentado, Em (a), os caracteres '1’ e '0°, apesar de respeitarem as regras estabelecidas para um caractere bem definido, devido ao facto de se encontrarem juntos contra-se ligado as bordas io mal recortados. Em (b), 0 primeiro caractere et a um parafuso, laterais da matricula e, como consequéncia, o seu tamanho nao itd respeitar as regras estabele- cidas (ou seja, nfo ser considerado como um caractere bem definido). Por outro lado, a parte amarela da matricula (contendo o més ¢ ano) encontra-se ligada ¢ a sua dimensio iré respeitar as regras estabelecidas para um caractere bem definido, Como resultado, o algoritmo ira identificar exatamente seis caracteres bem definidos e prosseguir para o recorte dos mesmos (¢ no entanto 0 resultado esté errado). Capitulo 4, Detegdo automatica de matriculas (@) Extragao de segmentos com parafusos Figura 4.17: Exemplo de dois tipos de etros comuns na extragdo de segmentos/caracteres através da aph ie de um threshold adaptativo ¢ da anslise da conectividade entre pixcis. De forma a resolver este problema, foram propostas as seguintes solugdes: 1. Aumentar o nivel de restrigao das regras estabelecidas para a determinagio de um caracter bem definido (ex: mudar a regra "Altura > 1/2 da altura da matricula” para "Altura > 2/3 da altura da matricula”); 2. Verificar, quando sio identificados exatamente seis caracteres bem definidos, se os mesmos apresentam parafusos ligados ou se as distincias e/ou a relagao entre eles nao & consistente. © aumento do nivel de restrig&o para as regras de um caracter bem definido diminui a probabili- dade de detetar caracteres ¢, para além disso, no garante que um caracter detetado esteja correto. Desse modo, decidiu-se fazer a verificagao e corregdo de parafusos (removendo-os) a andlise das distincias e da relagdo entre os varios caracteres detetados. Remogio dos parafusos Se um dado conjunto de pixeis interligados comegar com pixeis brancos no centro € nao tiver pixeis em cima nem em baixo, entéo provavelmente esses pixeis fazem parte de um parafuso. © mesmo se aplica para quando um conjunto de pixeis interligados acaba com pixeis brancos no centro € ndo contem nenhuns pixeis em baixo nem em cima (figura 4.18). Dessa forma, para a remogao de parafusos foi implementada uma fungdo que, para uma dada imagem binéria de um. caracter recebido como input, verificasse se a mesma continha ou nao as caracteristicas descritas, retornando como resultado: 1, A imagem original, caso nao fossem detetadas as caracteristicas de um parafuso; 2. Uma sub-imagem da imagem original (sem a parte do parafuso), caso fossem detetadas essas caracteristicas. Capitulo 4, Detegdo automatica de matriculas 56 r r : : { — —> ad (a) Identificagio e remogio de um parafuso a direita _(b)Idemtiicapioe remogio de um parafuso a esquerda ‘um caracter. de um caracter, Figura 4.18: Exemplo do obtido através da aplicago da fungio implementada para a identificagio e remogio de parafusos ligados a caracteres. Distancia e relago entre segmentos Os caracteres presentes em matriculas portuguesas, apesar de apresentarem variagao quanto sua largura, tém altura semelhante. Acresce ainda que as distincias entre os varios caracteres presentes numa matricula apresentam um conjunto de regras/caracteristicas. O segundo caracter de uma matricula, por exemplo, vai estar sempre mais préximo do primeiro caracter do que do terceiro. De acordo com essas informagées, para a andlise da consisténcia entre distancias e da relagdo entre os varios caracteres detetados foram verificadas as seguintes condigdes: 1. A altura do primeiro caracter tem de ser igual (ou quase igual) a altura dos outros ‘inco caracteres detetados (i.e., os caracteres tém que ter todos a mesma altura), 2. A distancia entre o primeiro conjunto de dois caracteres e 0 segundo conjunto de dois ca- racteres tem de ser semelhante a distancia entre o segundo € 0 terceiro conjunto de dois caracteres (ilustrado a laranja na figura 4.19). 3. A distancia entre os caracteres de cada conjunto de dois caracteres tem de ser semelhante (dustrado a verde na figura 4.19) Distancia entre os conjuntos de dois caracteres y, T Distancia entre os caracteres dos conjuntos de dois caracteres Figura 4.19: A segmentagio dos caracteres de uma matricula pode ser verificada e validada através da andlise das distincias entre os varios caracteres detetados. Capitulo 4, Detegdo automatica de matriculas Ey Algoritmo de segmentagao final A solucio final proposta, aplicando as técnicas de remogao de parafusos e verificacao da distancia e relagao entre carecteres, encontra-se descrita no algoritmo 7, sendo removeParafusos(c) a fungao que verifica se um caracter ¢ contém ou nao um parafuso (fazendo a remogao do mesmo caso seja detetado) e distSegsCorreta(segs) a funcao responsivel pela verificagao das distincias e relagdes entre os caracteres detetados segs ‘Algoritmo 7: Segmentagao de caracteres (Algoritmo final) Input : Imagem im, combinagdes de valores combs Output: Uma imagem por caracter, caso se encontre uma combinagio que defina bem os cearacteres da matricula, ou nulo, caso contrério 1 begin 2 | for blockSize,C in combs do a segmentos () 4 thresh € adaptativeThreshold(im, block Size,C) s countours findCountours(thresh) ‘ for cin countours do 7 if tamanhoCerto(c) then . € & removeParafusos(c) ’ segmentos « adiciona(segmentos.c) w end n end a if sice(segmentos) == 6 and distSegsCorreta(segmentos) then B return seginentos 4 end as | end 1 | return None 17 end 4.3.3. Avaliagao e andlise dos resultados Na avaliagio ¢ anilise de resultados foi feito o teste & eficdcia e ao tempo de processamento dos caracteres. Para o efeito, foi feito 0 recorte do algoritmo proposto para a segmentas manual de um conjunto de mil matriculas de vefculos infratores, capturados pelos vétios ci- nemémetros da agente rodovisria. Essas matriculas foram posteriormente enviadas para 0 al- goritmo de segmentagio © © seu output foi analisado manualmente. Os testes usados para 0 algoritmo de segmentagao foram feitos utilizando os dois tipo de threshold adaptativo, © th- reshold adaptative médio (ADAPTIVE_THRESIMEAN.C) ¢ 0 threshold adaptativo gaussi- ano(ADAPTIVE_THRESH.GAUSSIAN.C) ¢ os resultados encontram-se apresentados na tabela 43. Capitulo 4, Detegdo automatica de matriculas 38 Tabela 4.3: Resultados obtidos na segmentagao de caracteres utilizando o threshold adaptativo médio e gaussiano. Tipo de threshold Proc. médio | Detetadas Corretas | Sede erro Adaptive médio Hime S575.) | _842(842%) _| ISISSTA.SE Adaptative gaussiano Sims B67(6.7%) | BSNBS,IE) | VIRGIL 6) 0 tipo de threshald escolhido para usar no sistema ALPR foi o threshold adaptativo gaussiano, uma ver, que, para tempos de processamento médio semelhantes, conseguiu detetar um maior niimero de matriculas e obteve uma taxa de erro menor. 4.4 Reconhecimento de caracteres reconhecimento de caracteres corresponde & quarta ¢ tiltima camada do sistema ALPR imple- mentado e € responsavel pela anslise ¢ reconhecimento das imagens enviadas pela camada de segmentagio. Nesta secgo é apresentado o treino e aplicagdo de trés modelos de redes neuronais para reconhecimento de caracteres, dividindo-se nos seguintes pontos: + Preparacio dos dados: descri¢ao do processo utilizado na recolha de dados para o treino dos varios modelos de redes neuronais convolucionais; + Arquitetura dos modelos CNN: descrigio dos modelos arquiteturais de cada uma das redes, neuronais desenvolvidas; + Avaliagio e anzdlise dos resultados: treino, teste e andlise dos resultados obtidos para cada tum dos modelos CNN construidos. 4.4.1 Preparagao dos dados Para o treino de uma rede neuronal é necessério a preparagao de um conjunto de dados de treino ¢ ‘um conjunto de dados de teste, utilizados para testar a eficécia da rede neuronal & medida que vai sendo treinada, Para o efeito, foram adquiridas der. mil imagens capturadas pelos cinemémetros da agente rodovisria ¢ foram recortados os seus caracteres. Estes caracteres foram recortados através da aplicagao dos algoritmos descritos neste capitulo, nomeadamente: 1. Na preparagdo do input, onde é reduzida a dimensio da imagem inicial através da aplicagao de um recorte definido (secgo 4.1); 2. Na extragdo de matriculas, onde € extrafda a imagem de uma matricula através de um algo- ritmo baseado em classificas o em cascala (secgio 4.2); 3. Na segmentagao caracteres, onde sto identificados ¢ extrafdos os caracteres presentes na imagem de uma matricula através da aplicagio de um threshold adaptativo gaussiano e da andlise da conectividade entre pixeis da imagem bindria gerada (seco 4.3), Capitulo 4, Detegdo automatica de matriculas 39 Para as imagens capturadas onde nao se obteve a imagem dos seis caracteres bem definidos, foi feito 0 respetivo recorte manual, Como resultado, obtiveram-se sessenta mil imagens de carac- teres, dos quais 70% foram para o conjunto de dados de treino ¢ 30% para o conjunto de dados de teste. Na figura 4.20 é apresentado o nimero de amostras obtidas para cada um dos caracteres ptesentes nas matriculas portuguesas (y € w nao esto presentes), Note-se que a elevada superi- oridade no mimero de amostras para os caracteres numéricos se deve ao facto de cada matricula portuguesa apresentar quatro ntimeros ¢ duas letras ¢ a redurida quantidade de caracteres k se deve a facto de o mesmo apenas se apresentar em matrfculas importadas até ao ano de 1997. Numero de amostras por caracter O1ZBEBGTES « ABCDEFGHIO EMNGPORST ‘Il OVxe ‘o totrtelt Lill Figura 4.20: Exemplo de caracteres recortados para o treino das CNN e mimero de amostras por caracter. 4.4.2. Arquitetura dos modelos CNN Para o reconhecimento de caracteres foram implementados trés modelos CNN's diferentes. Estes modelos foram construfdos com base num dos tutoriais do tensorflow [34], apresentado carac- teristicas ¢ parfimetros comuns para nas seguintes camadas: + Camadas Convolucionais: funcao de ativagio Rell’ (considerando variagdes nas imagens), stride igual a.um e aplicagao de zero-padding (mantendo a dimensao do input); das de Pooling: max pooling, stride igual a | ¢ tamanho de reducio de 2x2 (reduzindo a dimensio para metade). + Camadas Densa Final: trinta e quatro neutdnios (nimero de classificagdes possiveis), um por cada caracter presente nas matriculas portuguesas. © tamanho dos dados de entrada definido para cada uma das redes tem dimensiio 24x32, ou seja, todas as imagens de caracteres recortadas tiveram que ser redimensionadas para esse valor antes do inicio do treino e do teste de cada um dos modelos. A diferenga entre os modelos CNN im- plementados reside no mémero de médulos e camadas convolucionais, assim como tamanho dos filtros a aplicar em cada uma dessas camadas, sendo: Capitulo 4, Detegdo automatica de matriculas 1. O primeiro modelo composto por dois médulos convolucionais normais (uma camada Conv e uma camada Pooling), ilustrado na figura 4.21; + Primeira camada conv com 64 filtros de tamanho 5x5. ‘+ Segunda camada conv com 128 filtros de tamanho 3x3. Input ——+ Conv —— saspoating —+ con —+ Maspoaing —+ Ful, —e Faly | roy o~ Poting_L ‘Convolugio So Froty "| Pooling ~~ conection (ena, + (tonsa) —+ (tants) —+ (128stxl6) —+ (1286x8) + (102) —+ 0) Figura 4.21: Modelo CNN constituido por dois médulos convolucionais normais, 2. O segundo modelo composto por trés médulos convolucionais normais (figura 4.22); + Primera camada convolucional com 64 filtros de tamanho 7x7. + Segunda camada convolucional com 128 filtros de tamanho 5x5. + Terceira camada convolucional com 256 filtros de tamanho 3x3. Figura 4.22: Modelo CNN constitufdo por trés médulos convolucionais normais, 3. O terceiro modelo composto por dois médulos convolucionais onde, para cada um deles, sdo aplicadas duas camadas convolucionais ¢ uma de pooling (figura 4.23). + Primeira camada convolucional com 32 filtros de tamanho 5x5. + Segunda camada convolucional com 64 filtros de tamanho 5x5. Capitulo 4, Detegdo automatica de matriculas a + Terceira camada convolucional com 128 filtros de tamanho 3x3. + Quarta camada convolucional com 256 filtros de tamanho 3x3. o oe Ei rhe Figura 4.23: Modelo CNN constituido por trés médulos onde, para cada um deles, so aplicadas duas camadas convolucionais e uma de pooling 4.4.3 Avaliagao e andlise dos resultados Na tabela 4.4 sdo apresentados os resultados obtidos para a accuracy (niimero de amostras corretas J ntimero total de amostras) e para o valor da loss (valor que mede 0 quao perto as previsdes do modelo correspondem as classes-alvo dos modelos CNN treinados), Quanto menor o valor da oss, maior 6 a preciso do modelo CNN. Tabela 4.4: Dados de treino e teste obtidos para os modelos CNN implementados. Modelo ‘Tempo de Accuracy Loss treino ~ NoBIO FG RT TSO Ton oon ome Noel 2G Ge Sono | con poms Modelo 3: dois médulos convolucionals sh 48m com duas camadas convolucionais cada 25h 48 0.996 017 Apesar de haver pouca diferenga entre os modelos relativamente aos valores da accuracy e da loss, © modelo 3 foi o que obteve melhores resultados para ambos. Contudo, quanto & escolha do modelo CNN a usar no sistema ALPR implementado, decidimos selecioné-lo através dos re- sultados obtidos para os modelos na secgdo seguinte, onde vao ser enviadas e avaliadas milhares, de imagens de matriculas pelo sistema ALPR ¢, desse modo, dando um melhor feedback sobre 0 comportamento de cada um dos modelos CNN. Para cada previsdo de uma imagem de um carac- tere, cada modelo CNN retomna o valor da classe associada (valor do caractere) ¢ a confianga que tem nesse valor, A confianga de um modelo para 0 valor de uma matricula 6 dada pelo produto das confiangas obtidas para cada um dos seus earacteres. Capitulo 4, Detegdo automatica de matriculas a 4.5 Testes ao ALPR Em 4.1, 4.2, 4.3 ¢ 4.4 foram apresentadas todas as camadas do sistema ALPR implementado, assim como as decisdes tomadas em cada uma delas. Como resultado do sistema, para cada imagem capturada e enviada pelos cinemémetros, vai ser gerado o valor da matricula detetada e ‘a respetiva confianga (dada pela CNN escolhida) para esse valor, Apesar das varias camadas do sistema ALPR aplicarem técnicas de detecdo ¢ correo de erros, Wo so dadas garantias de que a matricula foi bem recortada, os segmentos bem identificados ou os caracteres bem reconhecidos. Desse modo, decidimos aplicar mais um conjunto de técnicas de verificagao e corregao de ertos com 0 objetivo de melhorar ainda mais a eficécia dos resultados obtidos. 4.5.1 Validagao da matricula ‘As matriculas estrangeiras representam uma reduzida percentagem do conjunto de matriculas de- tetadas pela agente rodovidria. Acresce ainda que um dos objetivos definidos para este projeto foi a utilizagdo das caracteristicas presentes nas matriculas portuguesas de forma a melhorar os resul- tados obtidos na detegdo automstica, Desse modo, optou-se por nao considerar/avaliar veiculos com matriculas estrangeiras, deixando essa tarefa para a dete¢o manual. Assim, caso o valor gerado de forma automética para uma matricula ndo seguir os padres de caracteres usados nas matriculas portuguesas, entio 0 mesmo nao pode estar correto (ot estrangeiro ¢ descartado), As matriculas devem seguir o seguinte padrio: + NN-NN-LL onde ‘L’ representa uma letra ¢ “N’ representa um nimero. Esta condicio imposta, embora nao permita cortigir o valor de uma matricula, permite eliminar alguns dos erros no reconhecimento de caracteres e, consequentemente, diminuir a taxa de erro do sistema ALPR. Para além da validagio a0 valor gerado de uma matricula, também pode ser feita a validagio ao valor de cada um dos caracteres, verificando se o tamanho de um dado caractere recortado na camada de segmentacao & consistente com o valor gerado para esse caractere através da camada reconhecimento de caracte- res. Por exemplo, se a camada de reconhecimento retomnou o valor ‘I’ a uma dada imagem de um caractere ¢ a imagem recortada pela segmentagdo apresenta uma largura maior que a sua altura, entao € encontrado um erro, porque um ‘T” nunca teré uma largura maior que a sua altura, Desse ‘modo, para cada um tipos de caracteres presentes nas matriculas portuguesas: 1. Foi definido um limite inferior e superior para a razdo entre a sua altura e largura; 2. Quando o mesmo é reconhecido pelo modelo CNN: Capitulo 4, Detegdo automatica de matriculas 68 (a) E caloulada a razio entra a altura e largura da sua imagem recortada na segmentacio. de caracteres; idos, o caracter € considerado vélido, caso (b) Caso a razio esteja dentro dos limites defi contritio, é invalido. 45.2 Corregao da matricula Em 4.5.1 foram apresentadas técnicas de validagio/detegao de erros. Quando uma matricula é considerada invdlida devido ao facto de, por exemplo, um dos seus caracteres nao se encontrar de acordo com os padroes de uma matricula portuguesa (um mimeto foi considerado como letra ou vice-versa), a mesma pode ser cotrigida caso apenas tenha sido detetado um caractere fora dos padres das matriculas portuguesas 0 mesmo seja um dos seguintes: + ‘D’, ‘O° ou ‘Q’, sendo corrigido para o caracter ‘0. Note-se que 0 contritio nao se aplica (a partir de um ‘0° nao é possivel determinar se é um ‘D,“O" ou “Q’) sendo cortigido para o caractere ‘8’, vice-versa + ‘T, sendo corrigido para o caractere ‘I’, vice-versa Estas regras de corregao foram estabelecidas através da andlise dos erros obtidos no reconheci- mento de caracteres ¢ permitem, através da sua aplicagio, aumentar o némero de matriculas dete- tadas do sistema ALPR , uma ver. que as mesmas ja nao sto descartadas por serem consideradas invilidas. 5.3 Resultados De forma a testar a eficécia final do sistema ALPR implementado, recolheu-se um conjunto com cerca de trés mil e quinhentas imagens diferentes das usadas no desenvolvimento das suas cama- das. O sistema ALPR foi aplicado usando (individualmente) cada um dos modelos CNN desen- volvidos em 4.4 ¢ os resultados obtidos foram analisados para varios niveis minimos de confianga no valor da matricula gerada pela CNN. Nas tabelas 4.5 ¢ 4.6 sdo apresentados os resultados da aplicagdo do sistema ALPR com e sem as validagdes e corregdes mencionadas, respetivamente, para os valores minimos de confianga 0 (ou seja, considerando todas as matriculas geradas), 80, 90, 95 ¢ 99, sendo: + M1 0 modelo CNN constituido por dois médulos convolucionais normais; + M2 0 modelo CNN constituido por és médulos convolucionais normais; + M3 0 modelo CNN constitufdo por dois médulos convolucionais com duas camadas convo- lucionais cada. Capitulo 4, Detegdo automatica de matriculas 4 ‘Tabela 4,5: Resultados do sistema ALPR com as validagdes e corregdes aos valores das matriculas gerados para cada um dos modelos CNN implementados ¢ valores minimos de confianga 0, 80, 90, 95 € 99. Confianga | Matriculas reconhecidas [| Matriculas corretas Taxa de erro minima [wa [ M2 [ Ms | Mi | M2 [ M3 [| Mi | M2 | MS 99% || 35% [s50m | 43m || a3.4% [547% | s4a% || 029% | o4o% | 0.19% 95% || 549% | 65.6% | 65.3% || sem [05.2% | 65.0% | On6% | 0.66% | 034% 30% || sa9% | 700% | 69.3% || s9.5% | 69.5% | 69.0% | 076% [0.72% | 051% 80% Hae [TRI | 2m || Baw | 0% | Hie || 1.0% | 096m | 073% 0% 73% | 808% | 805% || 717% | 0% | 70% || 21% | 22% | 180% 's aos valores das matricul Tabela 4.6: Resultados do sistema ALPR sem as validagdes ¢ corre, gerados para cada um dos modelos CNN implementados e valores minimos de confianga 0, 80, 90, 95 & 99. “Matriculas reconhecidas [| _Matriculas corretas ‘Taxa de erro Mi [ M2 [ M3 |» [ m2 [ ws | mm [ 2 [ 3 wsm [354% [546% || 42.7% [s40% [1% [25% [26% [28% 385% | 665% | 661% | 31% | ae | 3x | 93% [aim | 42 cao% [71.3% | 705% || 575% | 7.6% | 668% | 114% [52% [53% 708% | 73.6% [ 75.0% || 61.1% | 70.6% [701% [13.8% [67% | 67% 33.9% [839% | 839% || 664% | 74.6% | 74.7% |[ 209% [11.2% [110% ‘Apesar da reduzida diferenga, o ALPR sem validagdes e correées conseguiu detetar um maior mimero de matriculas, como esperado (uma vez que nao verifica matriculas invélidas). Contudo, a taxa de erro obtida para qualquer um dos modelos desse ALPR foi muito superior & taxa de err dos modelos no ALPR com validagdes e corregées, justificando todas as regras introduzidas nesta seco, Relativamente & comparagio entre os modelos, o modelo 3 obteve os melhores resultados, alcangando uma taxa de erro de 0,19%, inferior ao valor maximo permitido pela agente rodovidria (0,20%), ¢ uma percentagem de matriculas detetadas de $4,2%, consideravelmente superior a0 obtido atualmente (cerca de 33%), para as imagens fomecidas onde se obteve uma confianga minima na mat ula de 99%. Desse modo, foi escolhido o modelo CNN 3 para o reconhecimento de caracteres, aplicando validagdes e corregdes sobre os seus resultados, Capitulo 5 Conclusao Este estgio permitiu-me estar durante nove meses em contacto com a Accenture, conhecer a sua forma de trabalhar e participar no seu crescimento, Neste periodo fiquei responsivel por toda a implementagao de duas das iniciativas desta empresa para processos de negécio de uma distribui- dora elétrica e uma agente rodovisria, identificando e resolvendo alguns dos seus problemas com a ajuda e conhecimento técnico/funcional dos meus orientadores e colegas. Um dos objetivos que tinha para este estégio consistia na adaptacdo € integragdo numa equipa de desenvolvimento, de forma a preparar e facilitar a minha entrada no mercado de trabalho. Ambas as propostas onde participei tiveram mais orientadas & investigagio de solugdes para a otimizagio de processos de negécio jé existentes, ndo contemplando maioria das atividades, metodologias e tecnologias uusadas no desenvolvimento de software que gostaria de ter aprendido ¢ onde gostaria de ter par- ticipado (exemplo: Agile, DevOps, Cloud, ete). Apesar disso, aprendi bastante a nfvel técnico, implementando ambos os projetos numa linguagem que nao conhecia, o Python, estudando e apli- cando técnicas de machine learning, implementando processos de detecdo de objetos e utilizando frameworks com elevado reconhecimento empresarial como, por exemplo, o OpenCV ¢ 0 Tensor- flow. 5.1 Contribuigdes ‘A minha contribuigao para este estigio consistiu no desenvolvimento, em Python, de dois pro- gtamas. O primeiro programa foi desenvolvido com o objetivo de testar e comparar a eficécia de ‘um conjunto de algoritmos de estimativas de consumo (entte eles, o algoritmo da distribuidora elétrica) para um dado conjunto de clientes. Este programa recebia a informagio sobre os clien- tes como input através de ficheiros CSV e, para cada um dos algoritmos, estimava o consumo do ‘iktimo perfodo conhecido de cada cliente através da informagao sobre os seus outros perfodos. A partir deste programa foi possivel comprovar que, ao considerar 0 comportamento sazonal dos clientes, se consegue obter melhores valores para as estimativas de consumo, sendo esse um ar- gumento forte para uma possivel proposta de projeto entre a Accenture ¢ a distribuidora elétrica. 65 Capftulo 5. Conclusio 66 0 segundo programa recebia um conjunto de imagens capturadas pelos aparelhos da agente 10- dovidria e: 1. Aplicava um recorte de acordo com a informagio sobre 0 0 local e via onde cada uma delas tinha sido capturada; 2. Identificava ¢ extrafa a parte da imagem que continha a matricula, através da aplicagao de um classificador em cascata treinado; 3. Identificava e extraia os caracteres presentes numa imagem de uma matricula, através da aplicagao de uma técnica de segmentagao: 4, Fazia o reconhecimento de imagens de caracteres, através da aplicagéo de um modelo trei- nado de redes neuronais convolucionais, Este programa foi aplicado a um grande conjunto de imagens reais ¢ obteve resultados bastante apelativos, methorando consideravelmente a percentagem de matriculas detetadas para a mesma taxa de etto obtida pela agente rodovisria, Neste projeto foi possfvel aplicar um conjunto de técnicas e tecnologias recentes através da uilizagao de frameworks open source, nao representando nenhum custo adicional a nivel de software. A proposta associada a0 desenvolvimento deste programa tem, por isso, fortes possibilidades de resulta rodovidria, de forma a verificar 0 seu comportamento em contexto real. ‘num projeto entre a Accenture ea agente .2 Trabalho futuro ‘As duas propostas de otimizagao descritas neste relatério ¢, em particular, a proposta para a agente rodovidria, obtiveram resultados positives (em comparagdo com os obtidos atualmente em ambos 1s processos). Desse modo, o seguimento do trabalho realizado passa por levar ambas as propos- tas a0 cliente, descrevendo as caracteristicas dos novos algoritmos, processos ¢ testes aplicados, resultados obtidos ¢ outras informagées relevantes. Relativamente & proposta da distribuidora elétrica, € necessério estudar melhor o impacto que a introdueao de um novo algoritmo de célculo iria causar no seu modelo/estrutura de negécio, assim como alguns requisitos nao considerados na proposta trabalhada como, por exemplo, requisitos de seguranga, desempenho, meméria, fia- bilidade, etc. Relativamente & proposta da agente rodovisria, € preciso identificar os requisitos necessirios para que a detecdo comece a ser realizada em tempo real, ie., para que o programa seja associado a todos os aparelhos de modo a que, cada ver. que fosse detetado um veiculo em excesso de velocidade por um dos aparethos, fosse feito 0 processamento automitico da imagem capturada ¢ 0 resultado do mesmo fosse enviado ¢ armazenado nos destinos corretas. Actesce ainda que, para esta proposta, uma das tarefas futuras passaré por estudar a possibilidade de com- binar ambos os algoritmos de detegio automética de matriculas, ou seja, combinar 0 algoritmo usado atualmente com 0 proposto de modo a obter um valor ainda melhor para a percentagem de matriculas detetadas e para a taxa de erro obtida na detego das mesmas Capitulo 6 Abreviaturas ALPR ANRPILPR PEL RMSE ROI XML Automatic Licence Plate Recognition Automatic Number Plate Recognition / Licence Plate Recognition Application Programming Interface Automatic Vehicle Identification Business Process Modeling Language Consumo Médio Disrio Convolutional Neural Network Car Plate Recognition Comma Separate Values Entidade Reguladora dos Servigos Energéticos tuldade de Ciéncias da Universidade de Lisboa Local Binary Features ‘Mestrado em Engenharia Informética ‘Mean Square Error Optical Character Recognition Projeto em Engenharia Informatica Root Mean Square Error Region Of Interest Extensible Markup Language or Capitulo 6. Abreviaturas 68 Bibliografia [1] Sapo.pt, “A aplicago tollcheck € tdo o que precisa para lidar com as ex-scut” 2018. [Online]. Available: _https://tek sapo.pt/mobile/tos/artigos/ a-aplicacao-tollcheck-e-tudo-o-que-precisa-para-lidar-com-as-ex-scut (217. D. Science, “Técnicas de clustering - towards data sci- ence,” 2018. [Online]. Available: hitps:/towardsdatascience.com/ k-means-clustering-identifying-f-r-i-e-n-d-s-in-the-world-of- strangers-695537505d [3] ©. M. Group, “Business process model and notation,” 2019. [Online]. Available: itp://www-bpmn.org/ [4] U. 0, T. Sander Soo, Institute of Computer Science, “Object detection using haar-cascade classifier” 2018. [Online]. Available: http://ds.cs.ut.ee/Members/artjom85/ 201 4dss-course-media/Object%20detection%20using %20Haar-final pdf [5] S. Wang, “Face detection using viola-jones, 2018. [Online]. Available: https Usites. google.com/site/algocodex/image- processing/facedetectionusingviola- jones {6] CambridgeSpark, “Deep leaming for complete beginners: convolutional neural networks with eras,” 2018. [Online]. Available: _https://cambridgespark com/contenttutorials/ convolutional-neural-networks-with-keras/index.html [7] A. Deshpande, “A beginner's guide to understanding convolutional neural networks,” 2018. [Online]. Available: _https:#/adeshpande3.github.io/A-Beginner% 27s-Guide-To-Understanding-Convolutional-Neural-Networks/ [8] IndoML, “Convolutional neural networks (enn) introduc- tion,” 2018. [Online]. Available: ‘https://indoml.com/2018/03/07/ student-notes-convolutional-neural-networks-cnn-introduction/ [9] N. Leonard, “Applied deep learning for vision and natural language,” 2018, [Online] Available: htips://github.com/nicholas-leonard/slides/blob/masteritorch7.md [10] V. Verde, “Via verde - homepage,” 2018. [Online]. Available: https://www.viaverde pt [11] J. Han, J. Pei, and M. Kamber, Data mining: concepts and techniques. Elsevier, 2011 0 Bibliografia 70 [12] P. Betkhin et al,, “A survey of clustering data mining techniques.” Grouping multidimensio- nal data, vol. 25, p. 71, 2006 [13] Stanford, “Greedy algorithms - part two,” 2019, [Online]. Available: http://web stanford, edu/class/archive/es/es161/es161.1138/lectures/14/Small14 pdf [14] S. 8. Naik, T. B.C. Singha, and A. R. Beham, “Review on different techniques for open road tolling system using pattern recognition,” 2017. [15] T, Sirithinaphong and K, Chammongthai, “The recognition of car license plate for automatic parking system,” in Signal Processing and Its Applications, 1999. ISSPA’99. Proceedings of 1999, pp. 455-457, the Fifth International Symposium on, vol. 1. TEI [16] S. Du, M. Ibrahim, M. Shehata, and W, Badawy, “Automatic license plate recognition (alpr) A state-of-the-art review,” IEEE Transactions on circuits and systems for video technology, vol. 23, no. 2, pp. 311-325, 2013. [17] OpenCY, “Opency homepage,” 2018. [Online]. Available: https://opency.org! [18] —, “Haar feature-based cascade classifier for object detection,” 2017, [Online]. Available: https://docs.opencv.org/2.4/modules/objdetect/doc/cascade.classification htm! [19] P. Viola and M. Jones, “Rapid object detection using a boosted cascade of simple features,” in Computer Vision and Pattern Recognition, 2001. CVPR 2001. Proceedings of the 2001 IEEE Computer Society Conference on, vol. 1. IEBE, 2001, pp. IL [20] R. Lienhart and J. Mayat, “An extended set of haar-like features for rapid object detection,” in Image Processing. 2002. Proceedings. 2002 International Conference on, vol. . IEEE, 2002, pp. IH. [21] Scholarpedia, “Local binary pattern,” 2018, [Online]. Available: www.scholarpedia org! article/Local Binary Patterns [22] Tensorflow, “Tensorflow - homepage,” 2018. [Online]. Available: https://www.tensorflow. orgl [23] —, “Image recognition,” 2018. [Online]. Available: https://www-tensorflow.org/tutorials/ images/image.recognition [24] — “Build a convolutional neural network using estimators,” 2018, [Online]. Available: htips://www.tensorflow.org/tutorials/estimators/cnn [25] Doukkali, “Convolutional neural_—networks. (enn, or conv- 2018. [Online]. Available: https:/medium,com/@ phidaouss/ convolutional-neural-networks-cnn-or-conynets-d7¢68803207 net [26] “Convolutional neural networks for visual recognition,” 2018. [Online]. Available: htp:/cs231n github io/convolutional-networks/ Bibliografia 1 [27] OpenCY, “Cascade classifier training,” 2017. [Online]. Available: https://docs.opencv. org/3, 4fde/488/tutorial traincascade html [28] Mathwor Hfuk.mathworks.com/help/vision/ughtrain-a-cascade-object-detector html “Train a cascade object detector,” 2017. [Online]. Available: ups: [29] OpenCY, “Cascade classifier taining,” 2017. [Online]. Available: https://docs.opencv.org/3, 3.0/dc/488/tutorial traincascade.html [30] 7. Dai, ¥. Dou, H. Tian, and Z. Huang, “The study of classifier detection time based on ‘opency,” in Computational Intelligence and Design (ISCID), 2012 Fifth International Sym- 2012, pp. 466-469. posium on, vol. 2. TEI [31] M. Cemy and M. Dobrovolny, * Electronics (AE), 2012 International Conference on. TE Eye tracking system on embedded platform,” in Applied B, 2012, pp. $1-S4. (32 M. Chillaron, L, Dunai, G. P. Fajames, and I. L. Lengua, “Face detection and recognition application for android,” in Industrial Electronics Society, IECON 2015-41st Annual Confe- rence of the IEEE, BEB, 2015, pp. 003 132-003 136. [33] OpenCY, “Image thresholding,” 2018. [Online]. Available: https://docs.openev.org/3.4/47/ d4d/utorial py thresholding html [34] Tensorflow, “Build a convolutional neural network using estimators,” 2019. [Online] Available: http://www.tensorflow.org/tutorials/estimators/enn [35] B. Hongliang and 1. Changping, “A hybrid license plate extraction method based on edge statistics and morphology,” in Pattern Recognition, 2004. ICPR 2004. Proceedings of the 17th International Conference on, vol. 2. IEEE, 2004, pp. 831-834. [36] D. Zheng, ¥. Zhao, and J. Wang, “An efficient method of license plate location,” Pattern recognition letters, vol. 26, no. 15, pp. 2431-2438, 2005. [37] X. Shi, W. Zhao, and Y. Shen, “Automatic license plate recognition system based on color image processing,” in International Conference on Computational Science and Its Applica- tions. Springer, 2005, pp. 1159-1168, [38] E.R. Lee, P. K. Kim, and H. J. Kim, “Automatic recognition of a car license plate using color image processing,” in Image Processing, 1994. Proceedings. ICIP-94., IEEE International Conference, vol. 2. IEEE, 1994, pp. 301-305. {39] J. Matas and K. Zimmermann nition,” in Intelligent Transportation Systems, 2005. Proceedings. 2005 IEEE. IEE pp. 225-230. “Unconstrained licence plate and text localization and recog- 2005, Bibliografia n [40] (41) [42] [43] (44) [45] [46] (47) [48] [49] [50] (5) H, Hontani and T. Koga, “Character extraction method without prior knowledge on size and position information,” in Vehicle Electronics Conference, 2001. IVEC 2001. Proceedings of the IEEE International. IEEE, 2001, pp. 67-72. $8, Du, M. Ibrahim, M, Shehata, and W. Badawy, “Automatic license plate recognition (alpr) A state-of-the-art review,” IEEE Transactions on circuits and systems for video technology, vol. 23, no. 2, pp. 311-325, 2013. Tensorflow, “A guide to Uf layers: Building a convolutional neural network,” 2018. [Online] Available: https://www.tensorflow.org/tutorials/layers TT. Nukano, M. Fukumi, and M. Khali ral networks,” in Intelligent Signal Processing and Communication Systems, 2004. ISPACS 2004, pp. 771-775. “Vehicle license plate character recognition by neu- 2004. Proceedings of 2004 International Symposium on. TEE C. Busch, R. Domer, C. Freytag, and H. Ziegler, “Feature based recognition of traffic video streams for online route tracing.” in Vehicular Technology Conference, 1998. VIC 98. 48th IEEE, vol.3. IEEE, 1998, pp. 1790-1794. I Paliy, V. Turchenko, V. Koval, A. Sachenko, and G. Markowsky, “Approach to recognition of license plate numbers using neural networks.” in Neural Networks, 2004. Proceedings. 2004 IEEE International Joint Conference on, vol. 4, IEEE, 2004, pp. 2965-2970. JM. Guo and Y. edback self-learning and hybrid binarization techniques,” IEEE Transactions on Vehicular Technology, vol. 57, no. 3, pp. 1417-1424, 2008, Liu, “License plate localization and character segmentation with fe- IMTT, “Lista de modelos de chapa de matricula com —_aprovagio nacional.” 2018, [Online]. Available: hup:/vww.imt-ip.ptsites/IMTT/ Portugues/Veiculos/provacoes/HomologacoesComponentes/Nacional/Documents/ ListaAprovacaoChapadeMatrlcula_20160201.pdf J. Matas and K. Zimmermann, “Unconstrained licence plate and text localization and recog- nition,” 2005. F. Alegria and P. S, Girao, enforcement system,” in Industrial Technology, 2006. ICIT 2006. IEEE International Confe~ rence on. IEEE, 2006, pp. 1800-1804. fehicle plate recognition for wireless traffic control and law W Jia, H. Zhang, X. He, and M, Piceardi, in Intelligent Transportation Systems, 2005. Proceedings. 2005 IEEE. 1 S71, lean shift for accurate license plate localization,” - 2005, pp. 566— M. Sarfraz, M. J. Ahmed, and S. A. Ghazi, “Saudi arabian license plate recognition system, in Geometric Modeling and Graphics, 2003. Proceedings. 2003 International Conference on, TEBE, 2003, pp. 36-41

You might also like