Implementação de um sistema de reconhecimento de
Transcrição
Implementação de um sistema de reconhecimento de
UNIVERSIDADE FEDERAL DO PARÁ INSTITUTO DE TECNOLOGIA FACULDADE DE ENGENHARIA DA COMPUTAÇÃO E TELECOMUNICAÇÕES FRANCIS JUNIOR SOUZA DA PENHA IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE BELÉM/PA 2013 FRANCIS JUNIOR SOUZA DA PENHA IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE Trabalho de Conclusão de Curso apresentado como exigência para obtenção do título de Bacharel em Engenharia da Computação, pela Universidade Federal do Pará. Orientador: Prof. Dr. Ronaldo de Freitas Zampolo. Co-orientador: Prof. Me Eurípedes Pinheiro dos Santos. BELÉM/PA 2013 IMPLEMENTAÇÃO DE UM SISTEMA DE RECONHECIMENTO DE CARACTERES EM PLACAS DE AUTOMÓVEIS BASEADO EM EXTREME LEARNING MACHINE Este trabalho foi julgado / / adequado para obtenção do Grau de Engenheiro da Computação, aprovado em sua forma pela banca examinadora que atribuiu o conceito . Banca Examinadora: _____________________________________________ Prof. Dr. Ronaldo de Freitas Zampolo (Orientador) Faculdade de Engenharia da Computação e Telecomunicações Universidade Federal do Pará ______________________________________________ Prof. Me Eurípedes Pinheiro dos Santos (Co-orientador) Faculdade de Engenharia da Computação e Telecomunicações Universidade Federal do Pará _____________________________________________ Prof. Dr. Evaldo Gonçalves Pelaes Faculdade de Engenharia da Computação e Telecomunicações Universidade Federal do Pará BELÉM/PA 2013 À memória de meu irmão Checo e meu avô Floriano AGRADECIMENTOS Em primeiro lugar, a Deus por cada dia de saúde, alegria e felicidade em minha vida e na vida das pessoas que me cercam. À Universidade Federal do Pará pela possibilidade de ingressar em um ensino de qualidade e à Engcomp e professores por todo o conhecimento transmitido. Aos professores Zampolo e Eurípedes pela atenção e confiança depositadas. À minha mãe Virginia, pelo exemplo de luta, pela vontade de viver e de vencer e pelo amor incondicional que mesmo longe fisicamente, sinto a cada instante. Ao meu pai Francisco, futuro advogado, que também foi exemplo de luta, determinação e caráter para conseguir realizar seus objetivos e para isso também tenho que agradecer à minha madrasta Elizângela que caminha ao lado dele. Ao meu irmão e melhor amigo Jonathan, que aconteça o que acontecer estaremos sempre unidos. Muito obrigado pelo afilhado que ganhei! Aos meus irmãozinhos Kauã e Kaio que me alegram a cada dia que vão crescendo e aprendendo coisas novas. A toda a minha família “Da Penha”. Tios, tias, primos e primas, que mesmo distantes fisicamente não deixaram de me apoiar. À minha segunda família, Família Leão, que me acolheu e me tratou como um filho. Muito obrigado ao meu sogro Sensei Leão, à minha sogra D.ª Marlúcia e ao meu cunhado Bruno. A todos os meus amigos, meu muito obrigado por todos os momentos que vivemos e que nunca me esquecerei. Às minhas tias postiças Márcia e Branca que me ajudaram muito no decorrer desses anos de faculdade. E, por último, mas não menos importante quero fazer um agradecimento em especial à minha namorada Luana, que esteve ao meu lado em todos os momentos, sempre acreditando em mim e me reerguendo. Parabéns pela aprovação no mestrado em 1º lugar. Estou muito orgulhoso, você merece. Te amo muito! "A vida é uma peça de teatro que não permite ensaios. Por isso, cante, chore, dance, ria e viva intensamente, antes que a cortina se feche e a peça termine sem aplausos.” Charles Chaplin RESUMO Devido ao grande fluxo de automóveis nas ruas observado nos últimos anos, cada vez mais processos que necessitam da identificação dos automóveis devem ser executados de forma automática, rápida e confiável. Este trabalho visa a implementação de um sistema completo de reconhecimento de placas de automóveis. Este sistema é dividido em três grandes módulos: Localização e Extração da placa, Segmentação dos caracteres e Reconhecimento dos caracteres segmentados. Neste trabalho, o módulo de Localização e Extração da placa foi baseado no método de variação tonal. O módulo de Segmentação dos caracteres foi implementado baseando-se no método de projeções verticais. E por fim, o Reconhecimento de cada caractere foi realizado através do algoritmo ELM (Extreme Learning Machine) e para tal tarefa foram criadas duas Redes Neurais Artificiais, uma para o reconhecimento das letras e outra o reconhecimento dos números. Palavras-chave: Localização da placa, Segmentação dos Caracteres, Reconhecimento dos caracteres, ELM. ABSTRACT Due to the large flow of cars on the streets observed in recent years, more and more processes that require identification of vehicles should be designed to operate automatically, quickly and reliably. This paper aims to implement a complete system for the recognition of license plates. This system is divided into three main modules: Plate Location and Extraction, Character Segmentation and Plate Recognition. In this work, the Plate Location and Extraction module was based on the method of tonal variation. The character segmentation module was implemented based on the method of vertical projection. And finally, the recognition of each character was performed by ELM algorithm (Extreme Learning Machine) and for this task, two artificial neural networks were created, one for letters and another for digits. Keywords: Plate Location and Extraction, Character Segmentation, Plate Recognition, ELM. LISTA DE FIGURAS Figura 1.1: Diagrama de funcionamento do sistema de reconhecimento de placas de automóveis. ........................................................................................................................... 2 Figura 1.2: Exemplo de imagem utilizada no sistema desenvolvido ....................................... 3 Figura 2.1: Modelo RGB (MARQUES e VIEIRA, 1999) .......................................................... 6 Figura 2.2: (a) Imagem Colorira, (b) Imagem em escala de cinza .......................................... 7 Figura 2.3 - (a) Imagem em tons de cinza, (b) Imagem binarizada com limiar = 50, (c) Imagem binarizada com limiar = 100, (d) Imagem binarizada com limiar = 150. .................... 8 Figura 3.1: (a) Imagem original e (b) Imagem submetida ao operador Sobel ....................... 11 Figura 3.2: (a) Imagem original, (b) Variação tonal da linha A e (c) Variação tonal da linha B (SOUZA, 2000) .................................................................................................................... 12 Figura 4.1: Imagem da placa e sua respectiva projeção vertical. ......................................... 15 Figura 4.2: (a) Vizinhança-4 e (b) Vizinhança-8 ................................................................... 16 Figura 4.3: Pixels rotulados com cores diferentes. ............................................................... 17 Figura 4.4: Exemplo de placa de automóveis da Malásia .................................................... 18 Figura 5.1: Exemplo da matriz de mapa de bits (GUINGO, 2003) ........................................ 20 Figura 5.2: Atributos e um exemplo de análise dos nós da letra “E” propostos por (POLIDÓRIO e BORGES, 1997).......................................................................................... 22 Figura 5.4: (a) Caracteres segmentados, (b) Caracteres ajustados e (c) Caracteres modelos (OZBAY e ERCELEBI, 2007) ............................................................................................... 24 Figura 5.5: Modelo não linear de um neurônio artificial (HAYKIN, 2001). ............................. 25 Figura 5.6: Modelo de RNA do tipo MLP (Multi-Layer Perceptron). ...................................... 26 Figura 6.1: (a) Exemplo de imagem disponibilizado em (CBPF, 2005) e (b) Exemplo de imagem nas ruas do município de Belém. ........................................................................... 32 Figura 6.2: Imagem em escala de cinza............................................................................... 33 Figura 6.3: (a) Binarização da Figura 6.1(a); (b) Binarização da Figura 6.2 ......................... 34 Figura 6.4: Comparação entre uma linha qualquer A e a linha B (linha de maior variação tonal) da Figura 6.3. ............................................................................................................. 35 Figura 6.5: Limites superiores e inferiores dos caracteres ................................................... 36 Figura 6.6: Exemplos de regiões de placas com limites superior e inferior delimitados ........ 37 Figura 6.7: Localização e extração da placa. ....................................................................... 37 Figura 6.8: Placa de automóvel com caracteres segmentados e as projeções de cada caractere.............................................................................................................................. 38 Figura 6.9: Modelo de caracteres na fonte Mandatory estipulado pelo Contran. .................. 42 Figura 6.10: Placa nos moldes do CONTRAN. .................................................................... 43 Figura 6.11: Esquema utilizado na classificação dos caracteres .......................................... 43 Figura 7.1: Análise das taxas de acerto na fase de teste ..................................................... 46 Figura 7.2: Gráfico para 90% dos padrões de números disponíveis destinados à etapa de treinamento.......................................................................................................................... 47 Figura 7.3: Análise das taxas de acerto na fase de teste ..................................................... 48 Figura 7.4: Gráfico para 90% dos dados do conjunto de letras destinados à etapa de treinamento.......................................................................................................................... 49 Figura 7.5: Reconhecimento da placa da Figura 6.1(a)........................................................ 50 LISTA DE TABELAS Tabela 5.1: Configuração das RNAs de (SOUZA, 2000)...................................................... 27 Tabela 5.2: Configuração da RNA de (WEI, LI, et al., 2001) ................................................ 27 Tabela 5.3: Configuração da RNA de (KHALIFA, KHAN, et al., 2006) ................................. 28 Tabela 5.4: Configuração das RNAs de (ZHANG e WANG, 2012)....................................... 29 Tabela 5.5: Organização dos trabalhos citados no Capítulo 5. ............................................ 30 Tabela 6.1: Caracteres segmentados e seus respectivos vetores de características ........... 39 Tabela 7.1:Taxas de acerto no processo de reconhecimento dos números para 90 neurônios na camada escondida. ......................................................................................................... 46 Tabela 7.2: Taxas de acerto no processo de reconhecimento das letras para 100 neurônios na camada escondida. ......................................................................................................... 48 LISTA DE ABREVIATURAS E SIGLAS CBPF – Centro Brasileiro de Pesquisas Físicas CMYK – Cyan Magenta Yellow Black CONTRAN – Conselho Brasileiro de Trânsito ELM – Extreme Learning Machine HSI – Hue Saturation Intensity MLP – Multi-Layer Perceptron OpenCV – Open Source Computer Vision Library RGB – Padrão de cores primárias: Vermelho (Red), Verde (Green) e Azul (Blue). RNAs – Redes Neurais Artificiais SLFN – Single-hidden Layer Feedforward Neural Network SVM – Support Vector Machines SUMÁRIO 1 2 3 4 5 6 INTRODUÇÃO ............................................................................................ 1 1.1 MOTIVAÇÃO ........................................................................................ 1 1.2 OBJETIVOS ......................................................................................... 3 1.3 ORGANIZAÇÃO DO TRABALHO ........................................................ 3 PRÉ-PROCESSAMENTO DE IMAGENS ................................................... 5 2.1 IMAGEM DIGITAL ................................................................................ 5 2.2 IMAGEM DIGITAL COLORIDA ............................................................ 5 2.3 CONVERSÃO DE IMAGEM COLORIDA PARA ESCALA DE CINZA .. 6 2.4 LIMIARIZAÇÃO (THRESHOLDING) .................................................... 7 2.5 REDIMENSIONAMENTO DE IMAGENS ............................................. 9 LOCALIZAÇÃO E EXTRAÇÃO DA PLACA ............................................ 10 3.1 MÉTODO BASEADO NA MORFOLOGIA DOS CARACTERES ........ 10 3.2 MÉTODO BASEADO EM DETECÇÃO DE BORDAS ........................ 11 3.3 MÉTODO BASEADO EM VARIAÇÃO TONAL ................................... 12 SEGMENTAÇÃO DE CARACTERES ...................................................... 14 4.1 MÉTODO DAS PROJEÇÕES ............................................................ 14 4.2 MÉTODO DE ANÁLISE DE COMPONENTES CONECTADOS ........ 16 RECONHECIMENTO DE PADRÕES ....................................................... 19 5.1 EXTRAÇÃO DE CARACTERÍSTICAS ............................................... 20 5.2 TEMPLATE MATCHING .................................................................... 21 5.3 REDES NEURAIS ARTIFICIAIS (RNA).............................................. 24 PROTÓTIPO DESENVOLVIDO ............................................................... 31 6.1 LOCALIZAÇÃO E EXTRAÇÃO DA PLACA........................................ 31 6.2 SEGMENTAÇÃO DOS CARACTERES ............................................. 38 6.3 RECONHECIMENTO DOS CARACTERES ....................................... 39 6.3.1 Extração de Características ....................................................... 39 6.3.2 ELM – Extreme Learning Machine ............................................. 40 7 TESTES E RESULTADOS ....................................................................... 44 7.1 CLASSIFICAÇÃO DOS NÚMEROS ................................................... 44 7.2 CLASSIFICAÇÃO DAS LETRAS ....................................................... 47 8 CONCLUSÃO E TRABALHOS FUTUROS .............................................. 51 9 APÊNDICE A ............................................................................................ 52 9.1 LETRAS ............................................................................................. 52 9.2 NÚMEROS ......................................................................................... 53 10 BIBLIOGRAFIA ..................................................................................... 55 1 1 INTRODUÇÃO 1.1 MOTIVAÇÃO Nos dias atuais, os grandes centros urbanos estão sofrendo com o enorme crescimento do fluxo de automóveis nas ruas. Com isso, processos que necessitam da identificação do veículo devem possuir tempo de execução e níveis de confiabilidade adequados à demanda solicitada. De acordo com, (GUINGO, 2003), (DIAS, 2005) e (DAMBROS, 2008), os principais processos que necessitam da identificação dos veículos são: Fiscalização: A identificação do veículo possibilita a punição do proprietário (responsável) caso cometa alguma infração de trânsito ou algum sinistro em outro veículo. Controle de acesso: Alguns estacionamentos precisam identificar cada veículo no momento da entrada e também no momento da saída para calcular o tempo de permanência no local. Além dos estacionamentos, as praças de pedágios também podem utilizar a identificação do veículo para liberar a passagem do mesmo e realizar a cobrança da tarifa posteriormente, por exemplo, enviando o boleto a ser pago por e-mail. A identificação do veículo também pode ser usada para autorizar a entrada do mesmo em locais de acesso restrito. Monitoramento de tráfego: A identificação do veículo também pode ser aplicada quando os órgãos responsáveis pela engenharia de tráfego precisam conhecer a velocidade média dos mesmos em um determinado percurso, a fim de realizar projetos de rodovias, pontes, entre outros. Identificação de veículos roubados: Em casos de veículos roubados ou também em casos de sequestro relâmpago e assaltos, a identificação do veículo é de suma importância, pois possibilita a identificação do 2 proprietário e ainda verificar o trajeto do mesmo em imagens de câmeras do local. Segundo (DIAS, 2005), as etapas que compõem um sistema de reconhecimento de placas de automóveis são as seguintes (Figura 1.1): Figura 1.1: Diagrama de funcionamento do sistema de reconhecimento de placas de automóveis. Atualmente, muitas pesquisas estão sendo realizadas no âmbito na localização, segmentação e reconhecimento de caracteres das placas de automóveis com o intuito de desenvolver sistemas cada vez mais robustos para aperfeiçoar estes processos e buscar amenizar alguns fatores que prejudicam a identificação da placa tais como: fatores climáticos (chuva, neblina, etc.), ruídos, luminosidade, entre outros (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008). Neste trabalho, o sistema foi projetado para trabalhar com o padrão brasileiro de placas: 3 Placas com sete caracteres, sendo os três primeiros caracteres letras (AZ) e os quatro caracteres restantes números (0-9); Fundo claro e caracteres escuros ou vice e versa. E também obedecendo as seguintes características: Imagens frontais e traseiras de automóveis adquiridas em situações reais; Condições climáticas e de luminosidade homogêneas. Um exemplo de imagem de automóvel utilizada no sistema é apresentado na Figura 1.2. Figura 1.2: Exemplo de imagem utilizada no sistema desenvolvido 1.2 OBJETIVOS Este trabalho tem como objetivo a implementação de um sistema que execute os processos de localização e extração da placa, segmentação dos caracteres da placa localizada e por fim o reconhecimento dos caracteres segmentados de forma automática a partir de um banco de imagens de automóveis. 1.3 ORGANIZAÇÃO DO TRABALHO O primeiro capítulo fornece a motivação que deu origem ao trabalho e os objetivos traçados. O segundo capítulo descreve alguns processos de pré-processamento necessários para o bom funcionamento do sistema. 4 O terceiro capítulo descreve o conceito de localização e extração do objeto de interesse (a placa do automóvel) e técnicas abordadas na literatura. No quarto capítulo, é abordado o processo de segmentação dos caracteres da placa extraída na etapa anterior. No quinto capítulo, é descrito o processo de reconhecimento dos caracteres segmentados. No sexto capítulo, é abordado o sistema desenvolvido apresentando todos os passos necessários para seu funcionamento juntamente com as técnicas utilizadas. O sétimo capítulo aborda os testes realizados juntamente com os resultados obtidos. O oitavo capítulo apresenta as considerações finais e as perspectivas de trabalhos futuros. E por fim, o apêndice A fornece alguns resultados obtidos durante as simulações do módulo de reconhecimento de caracteres, quando houve a variação na quantidade de neurônios na camada escondida. 5 2 PRÉ-PROCESSAMENTO DE IMAGENS 2.1 IMAGEM DIGITAL O termo imagem refere-se a uma função bidimensional de intensidade de luz onde x e y denotam as coordenadas espaciais e o valor em qualquer ponto é proporcional ao brilho (ou níveis de cinza) da imagem naquele ponto. Uma imagem digital é uma imagem discretizada tanto em coordenadas espaciais quanto em brilho. Em outras palavras, uma imagem digital pode ser considerada uma matriz cujos índices de linhas e de colunas identificam um ponto na imagem, e o correspondente valor do elemento da matriz identifica o nível de cinza naquele ponto. Os elementos dessa matriz digital são chamados de pixels (GONZALEZ e WOODS, 2010). 2.2 IMAGEM DIGITAL COLORIDA Segundo (CASTLEMAN, 1996), uma imagem digital colorida pode ser vista como a sobreposição de três imagens monocromáticas. Existem vários modelos de representação da cor de uma imagem, entre os quais se destacam o RGB (Red Green Blue), CMYK (Cyan Magenta Yellow blacK) e o HSI (Hue Saturation Intensity). O modelo RGB é o modelo utilizado neste projeto, uma vez que é amplamente usado em dispositivos de imagem e sistemas operacionais. Uma imagem digital representada pelo modelo RGB é composta por três matrizes (canais) em escala de cinza, onde cada matriz corresponde a uma das componentes primárias (vermelho, verde e azul) e os valores na mesma posição nas três matrizes gera a cor desejada. O modelo RGB pode ser visto como um cubo, onde três de seus vértices são as cores primárias (vermelho, verde e azul), outros três as cores secundárias (ciano, magenta e amarelo), o vértice junto à origem é corresponde à cor preta e o mais afastado da origem corresponde à cor branca, conforme ilustra a Figura 2.1. Neste modelo, a escala de cinza se estende através de uma linha, a diagonal do cubo, que 6 sai da origem (preto) até o vértice mais distante dela (branco) (MARQUES e VIEIRA, 1999). Figura 2.1: Modelo RGB (MARQUES e VIEIRA, 1999) 2.3 CONVERSÃO DE IMAGEM COLORIDA PARA ESCALA DE CINZA A conversão de uma imagem no padrão RGB para uma imagem em tons de cinza é realizada pixel a pixel adicionando-se 30% da intensidade da matriz Red, 59% da intensidade da matriz Green e 11% da intensidade da matriz Blue (CASTLEMAN, 1996) e (DIAS, 2005), conforme a Equação 2.1. Como já mencionado, esse cálculo é realizado para cada pixel da imagem, onde as porcentagens descritas estão relacionadas à sensibilidade visual do olho humano para cada uma das cores primárias e o valor resultante será o nível de cinza do pixel analisado. Um exemplo de conversão de uma imagem colorida para escala de cinza pode ser visualizado na Figura 2.2. 7 Figura 2.2: (a) Imagem Colorira, (b) Imagem em escala de cinza A conversão de uma imagem colorida para uma imagem em tons de cinza é necessária para o processo de limiarização da imagem descrito na seção a seguir. 2.4 LIMIARIZAÇÃO (THRESHOLDING) Segundo (MARQUES e VIEIRA, 1999), o princípio da limiarização consiste em separar as regiões de uma imagem quando esta apresenta duas classes (o fundo da imagem e o objeto). Devido ao fato da limiarização produzir uma imagem binária como saída, o processo também é denominado de binarização. A forma mais simples de binarização consiste na bipartição do histograma, convertendo os pixels cujo tom de cinza é maior ou igual a um certo valor de limiar (threshold) em brancos e os demais em pretos Em geral, o processo de binarização transforma uma imagem qualquer em uma imagem de duas cores. Assim, ele é amplamente utilizado para segmentar uma imagem colocando uma cor em evidência, como é o caso das placas de automóveis, onde há o fundo da placa e os objetos (caracteres). De acordo com (GONZALEZ e WOODS, 2010), o mecanismo de binarização é definido pela Equação 2.2: (2.2) Onde: 8 : é a imagem de saída (imagem binarizada); 1(ou 255) e 0: são valores que representam as cores branca e preta, respectivamente. É importante ressaltar neste momento que a escala adotada neste trabalho foi de 0 a 255; : é a imagem em tom cinza, e; : é o limiar de tom de cinza pré-definido. A Figura 2.3 apresenta uma imagem em escala de cinza e imagens binarizadas com diferentes limiares. Figura 2.3 - (a) Imagem em tons de cinza, (b) Imagem binarizada com limiar = 50, (c) Imagem binarizada com limiar = 100, (d) Imagem binarizada com limiar = 150. Alguns métodos de binarização são descritos em (SEZGIN e SANKUR, 2004) e (SOM, ZAIN e GHAZALI, 2011). O método mais conhecido é o método de Otsu (OTSU, 1979). Neste trabalho, o método de Otsu foi utilizado, pois segundo (GONZALEZ e WOODS, 2010) é considerado ótimo no sentido de maximizar a variância entre classes e mostrou-se eficaz durante a implementação do sistema. 9 2.5 REDIMENSIONAMENTO DE IMAGENS Nos sistemas de reconhecimento de placas de automóveis, o redimensionamento de imagens é utilizado frequentemente na padronização das dimensões dos objetos de análise. Desta forma, o processo de redimensionamento pode ser aplicado após a aquisição da imagem de entrada, ou ainda, ao longo dos processos quando sua aplicação se fizer necessária. O redimensionamento de imagens inserido neste trabalho e nas propostas estudadas e descritas nos capítulos a seguir foi aplicado em duas situações: 1. Na padronização das dimensões das imagens de entrada; 2. No redimensionamento dos caracteres segmentados para o processo de extração de características. Estas aplicações serão descritas ao longo do trabalho. 10 3 LOCALIZAÇÃO E EXTRAÇÃO DA PLACA O processo de localização e extração da placa consiste em realizar um rastreamento em toda a imagem de entrada com o intuito de detectar a região que contém a placa. Esta etapa tem por objetivo final isolar a região da placa, gerando uma imagem de dimensões reduzidas em relação à imagem pré-processada, facilitando assim o processamento das demais etapas. Existem na literatura diversos métodos que efetuam a localização de placas de automóveis. Nas seções a seguir alguns deles serão descritos. 3.1 MÉTODO BASEADO NA MORFOLOGIA DOS CARACTERES O significado da palavra morfologia origina-se das palavras gregas morphê (forma) e logos (ciência), ou seja, morfologia é a ciência que analisa as formas que qualquer matéria pode tomar em qualquer área de aplicação (biologia, gramática, imagens, etc.) (FACON, 1996). Métodos para localização de placas baseadas na morfologia dos caracteres utilizam características, como a altura e espaçamento regular, alinhamento horizontal e quantidade fixa de caracteres. Um sistema brasileiro de reconhecimento de placas, denominado de LooKar, aplica o método baseado em morfologia dos caracteres na etapa de localização e está descrito em (LOTUFO e DIAS, 2004) A grande potencialidade da morfologia matemática reside nos elementos estruturantes. O elemento estruturante é uma imagem de amostra com características geométricas e/ou topológicas relacionadas com a informação que se pretende extrair da imagem de interesse. Assim, os elementos estruturantes são comparados, a partir de uma transformação, ao conjunto desconhecido da imagem. O resultado dessa transformação permite avaliar o conjunto desconhecido. O formato e o tamanho do elemento estruturante possibilitam testar e quantificar de que maneira, o elemento estruturante está ou não está contido na imagem (FACON, 1996) e (BUSSADOR, 2009). 11 A principal dificuldade deste método é a existência de outras regiões da imagem que apresentam cadeias de características semelhantes à placa do automóvel, tais como: marca e modelo, adesivos com caracteres, entre outros. 3.2 MÉTODO BASEADO EM DETECÇÃO DE BORDAS Os métodos baseados em detecção de bordas utilizam a característica de a placa do automóvel possuir a forma retangular e fundo uniforme. A primeira etapa deste método consiste em submeter a imagem a um detector de bordas, tais como: Sobel, Canny e Laplaciano (DIAS, 2005). Esses processos realçam as bordas da placa. A Figura 3.1 apresenta a aplicação do operador Sobel em um exemplo de imagem utilizada neste trabalho. Figura 3.1: (a) Imagem original e (b) Imagem submetida ao operador Sobel A partir das bordas realçadas, a etapa final consiste na aplicação de técnicas de busca por essas bordas. Assim, todos os objetos da placa podem ser localizados. A principal desvantagem dos métodos baseados em detecção de bordas é que dificilmente podem ser utilizados de forma isolada em imagens complexas, pois: Necessita que a borda da placa do automóvel apresente bom contraste em relação ao local onde ela está fixada; Outras bordas podem ser selecionadas incorretamente, como os faróis e a marca do fabricante do automóvel. 12 Contudo, quando combinados com técnicas morfológicas que auxiliam na localização da placa, o método baseado em detecção de bordas apresenta uma taxa de localização relativamente elevada em comparação a outros métodos. Em (HONGLIANG e CHANGPING, 2004) é proposto uma abordagem que utiliza o método de detecção de bordas juntamente com o método baseado em morfologia o qual apresenta uma taxa de localização da placa do automóvel de 99.6%. 3.3 MÉTODO BASEADO EM VARIAÇÃO TONAL O método baseado em variação tonal se beneficia do fato de que a região placa do automóvel apresenta variação tonal diferente do restante da imagem, um tipo de “assinatura” (BARROSO, RAFAEL, et al., 1997), (SOUZA, 2000) e (DIAS, 2005). Por esta razão, este método consiste em realizar uma varredura sequencial em cada linha horizontal da imagem a procura de grande quantidade de alternâncias entre as cores dos caracteres e a cor do fundo da placa. A Figura 3.2 exemplifica o método de variação tonal. Figura 3.2: (a) Imagem original, (b) Variação tonal da linha A e (c) Variação tonal da linha B (SOUZA, 2000) A partir da Figura 3.2(a), observa-se que uma linha qualquer da imagem (linha A) foi comparada a uma linha que corta a região da imagem que contém a placa do automóvel (linha B). Analisando os valores de cada pixel, ao longo das linhas selecionadas fornecidos na Figura 3.2(b), verifica-se que a região da imagem que 13 contém a placa apresenta vários picos máximos e mínimos consecutivos, cujas amplitudes e distâncias são semelhantes. Esta alternância entre picos é gerada em virtude do alto contraste entre os caracteres e o fundo da placa. Esses fatores são os que caracterizam o método da variação tonal. Vale ressaltar que este método foi adotado no desenvolvimento deste trabalho. 14 4 SEGMENTAÇÃO DE CARACTERES A partir da imagem da placa previamente detectada e extraída da imagem original, o próximo processo a ser executado é a segmentação dos caracteres presentes na placa. O objetivo do processo de segmentação de caracteres é separá-los em imagens distintas, para que posteriormente, após a extração das características de cada caractere isolado, seja realizado o seu reconhecimento. Portanto, esta etapa permitirá a identificação, isoladamente, de cada letra ou número que compõem a placa (CONCI e MONTEIRO, 2004). Segundo (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008), a maior parte dos erros de reconhecimento de placas de automóveis não são ocasionados em virtude de um processo de reconhecimento com baixa taxa de acertos e sim por caracteres segmentados de forma incorreta. Levando em consideração o grande desafio de realizar a segmentação de caracteres com uma qualidade aceitável, diversas pesquisas estão sendo realizadas neste contexto, onde o processo de segmentação pode ser considerado simples, quando a placa contém os caracteres bem definidos (não apresentando ruído e muito menos contato entre eles), ou complexo nos demais casos (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008). Nas seções a seguir serão descritos alguns dos métodos presentes na literatura para a realização da segmentação de caracteres. 4.1 MÉTODO DAS PROJEÇÕES O método das projeções foi inicialmente proposto por (LU, 1995) e foi denominado de peak-to-valley. É o método mais comum e também o mais simples de ser implementado, onde sua aplicação pode ser verificada em (RAHMAN, BADAWY e RADMANESH, 2003), (WU, ON, et al., 2005), (BELLAS, CHAI, et al., 2006) e (TRENTINI, GODOY e MARANA, 2010). Em virtude de sua ampla aplicação 15 na literatura, o método das projeções foi adotado no desenvolvimento deste trabalho. O método consiste na realização de uma varredura em cada coluna da imagem da placa binarizada, realizando a contagem dos pixels pretos na referida coluna, que indicam a presença de um possível caractere, obtendo assim um vetor (projeção), onde os valores mínimos indicam a presença de um vale, ou seja, o espaçamento entre caracteres que permite a segmentação de forma automática. Na Figura 4.1, pode-se visualizar a imagem de entrada da etapa de segmentação e o seu respectivo gráfico de projeções verticais. 20 Quantidade de pixels pretos 18 16 14 12 10 8 6 4 2 0 0 20 40 60 80 100 120 140 160 180 200 Colunas Figura 4.1: Imagem da placa e sua respectiva projeção vertical. Como já mencionado, a partir da Figura 4.1, pode-se perceber que os caracteres são representados pelos picos e o fundo da placa pelos vales. É importante ressaltar que mesmo em casos onde ocorra a união de dois caracteres por poucos pixels, devido à binarização ou etapas de pré-processamento, serão considerados caracteres separados, pois ainda assim será um vale. 16 4.2 MÉTODO DE ANÁLISE DE COMPONENTES CONECTADOS Este método é muito utilizado na literatura, sendo também muito simples de ser entendido. Algumas abordagens podem sofrer pequenas modificações, mas a ideia básica é analisar a conectividade entre os pixels que formam o caractere. O algoritmo do método percorre toda a imagem da placa, verificando a vizinhança de cada pixel. Assim, é possível saber quais pixels compõem cada objeto (ANAGNOSTOPOULOS, ANAGNOSTOPOULOS, et al., 2008) Este método consiste em atribuir um rótulo (label ou índice) aos pixels conectados que formam um objeto de uma imagem binarizada. Um exemplo do funcionamento desta técnica é mostrado a seguir: 1. O algoritmo realiza uma varredura na placa à procura de um pixel que representa o objeto (pixel preto) e o rotula-o com um índice qualquer entre 1 e 254, pois o valor 0 indica um pixel preto e o valor 255 indica um pixel branco. 2. Todos os pixels conectados utilizando vizinhança-4 ou vizinhança-8 (Figura 4.2) também são rotulados com o índice até que não haja mais conectividade a ser analisada. 3. Incrementar o índice , realizar uma nova varredura na imagem à procura de outro pixel preto e rotulá-lo com o este novo índice. 4. Repetir os passos 2 e 3 até que toda a imagem tenha sido analisada. Figura 4.2: (a) Vizinhança-4 e (b) Vizinhança-8 Como resultado das etapas descritas anteriormente, têm-se todos os objetos analisados rotulados. Os objetos que não se enquadrarem com características pré- 17 definidas como altura, largura, relação entre largura e altura (aspect ratio) ou área devem ser descartados. Em (CONCI e MONTEIRO, 2004), a rotulação é realizada dentro de limites superiores e inferiores estimados a partir de um algoritmo, dificultando assim a rotulação de possíveis ruídos. A Figura 4.3 exemplifica o resultado da rotulação dos pixels onde cada objeto representado por uma cor diferente. Figura 4.3: Pixels rotulados com cores diferentes. Em (GUINGO, STIELBER, et al., 2004), é descrito todo o sistema de reconhecimento de caracteres de placas de automóveis, onde a etapa de segmentação de caracteres também é realizada com base na detecção de componentes conectados. Um detalhe mencionado na proposta é que se o pixel corrente possuir dois ou mais vizinhos pertencentes a diferentes grupos conexos, estes grupos poderão ser unificados caso atendam uma restrição de largura. Este procedimento faz com que pequenas falhas nos caracteres não sejam levadas em consideração. Em (KHALIFA, KHAN, et al., 2006), um sistema completo de reconhecimento de placas de automóveis também é descrito, onde o método de análise de componentes conectados é o único que garante sucesso no processo, uma vez que as placas de automóveis da Malásia não possuem uma quantidade fixa de caracteres e também podem apresentar caracteres escritos em duas linhas, conforme é mostrado na Figura 4.4. 18 Figura 4.4: Exemplo de placa de automóveis da Malásia 19 5 RECONHECIMENTO DE PADRÕES Segundo (HAYKIN, 2001), reconhecimento de padrões é um processo pelo qual um padrão/sinal recebido é atribuído a uma classe dentre um número predeterminado de classes. Problemas de reconhecimento de padrões consistem em uma tarefa de classificação de padrões de entrada, onde as classes são definidas pelo projetista do sistema (classificação supervisionada) ou são “aprendidas” de acordo com a similaridade dos padrões (classificação não supervisionada) (BIANCHI, 2006). Um padrão pode ser definido como um conjunto de características que possibilitam o agrupamento de objetos semelhantes em uma determinada classe. Já as classes são os conjuntos formados pelos padrões semelhantes. No caso de reconhecimento de caracteres, um padrão é constituído por características que formam cada caractere. E as classes são os caracteres formados por padrões semelhantes. Portanto, um sistema automático de reconhecimento de padrões tem por objetivo extrair características (informações) dos objetos a serem reconhecidos, analisar as características extraídas e classificar estes objetos de acordo com a análise das informações extraídas (CAVALCANTI, 2000). Neste trabalho, o reconhecimento de padrões por classificação supervisionada foi aplicado para identificar os caracteres já segmentados da placa, onde cada classe pré-definida representa um caractere segmentado (letra ou número). Em aplicações de reconhecimento de caracteres de automóveis, a fase de classificação constitui o último processo do sistema. Esta fase consiste em identificar cada caractere proveniente da etapa de segmentação, ou seja, as características extraídas são analisadas para que o caractere em questão possa ser associado a uma única classe. 20 A próxima seção fornece definições e algumas técnicas de extração de características importantes para o entendimento do conceito de reconhecimento de padrões. 5.1 EXTRAÇÃO DE CARACTERÍSTICAS Em reconhecimento de padrões, o processo de extração de características é uma forma especial de redução dimensional, pois transforma o espaço do padrão em um espaço de características que é de dimensão muito menor comparado com o espaço de dados original, retendo informações importantes acerca do objeto analisado (SOUZA, 1999). Extração de características pode ser definida como sendo a captura das informações mais relevantes de um objeto com o objetivo de classificá-lo. Este processo é realizado quando os dados de entrada de um sistema são muito grandes para serem processados. Esse conjunto reduzido de características também é chamado de vetor de características (HAYKIN, 2001). Ao longo deste trabalho, serão descritas propostas para reconhecimento de caracteres que utilizam algumas das técnicas de extração de características disponíveis na literatura, como: Mapa de bits: é uma matriz que utiliza todos os pixels da imagem analisada. Esta matriz pode ser visualizada na Figura 5.1. Figura 5.1: Exemplo da matriz de mapa de bits do caractere “2” (GUINGO, 2003) Projeção horizontal: é a quantidade de pixels pretos em cada linha da imagem analisada; 21 Projeção vertical: é a quantidade de pixels pretos em cada coluna da imagem analisada. Diversas técnicas de reconhecimento e classificação de caracteres, que aplicam as técnicas de extração de características descritas anteriormente, estão descritas na literatura, dentre as quais se destacam: o Template Matching e as RNAs – (Redes Neurais Articiais). Essas técnicas e algumas propostas onde são aplicadas serão analisadas neste trabalho. 5.2 TEMPLATE MATCHING Segundo (BRUNELLI, 2009), Template Matching é uma técnica em processamento de imagens digitais para encontrar pequenas partes de uma imagem que corresponda com uma imagem modelo. Esta técnica é aplicada em processos industriais, como parte do controle de qualidade, em navegação de robôs móveis ou na detecção de bordas de imagens. Ela pode ser dividida em duas abordagens. A primeira é baseada em características das imagens a serem analisadas, como bordas e estrutura. A segunda tem como base o modelo completo, onde a imagem modelo é movida para todas as posições possíveis na imagem de entrada, analisando, pixel a pixel uma métrica que indica o grau de semelhança entre a imagem analisada e a imagem modelo (SANTOS, 2011). Em (COMELLI, FERRAGINA, et al., 1995), a correlação cruzada (crosscorrelation) foi aplicada para medir o grau de semelhança entre caracteres obtidos e os modelos previamente determinados, uma vez que, normalmente não são iguais. As placas de automóveis analisadas possuem uma sequencia de duas letras seguidas de quatro números. No total, foram utilizadas 31 imagens modelos, 10 para números e 21 para letras, as quais representam os modelos de placas de automóveis italianos. A taxa de sucesso na etapa de reconhecimento relatada foi de 91.07%. Em (POLIDÓRIO e BORGES, 1997), este método é adotado no processo de reconhecimento de caracteres de placas de automóveis. Uma comparação entre padrões de entrada e padrões já predeterminados é realizada. Nesta proposta, as características utilizadas são baseadas na morfologia dos caracteres, criando assim, 22 regras sintáticas que descrevem o relacionamento espacial entre cada nó. Desta forma, cada caractere analisado terá uma sentença associada a ele, e a comparação entre a sentença obtida e as sentenças previamente determinadas define qual é o caractere. A proposta define atributos referentes aos nós que compõem os caracteres: (a) final de linha; (b) um encontro entre duas linhas; (c) mudança suave de direção em 90º; (d) mudança brusca de direção em 90º; (e) cruzamento entre duas linhas. A Figura 5.2 exemplifica os atributos citados e fornece um caractere analisado. O trabalho relata uma taxa de acerto de 91.00%. (a) (b) (c) (d) d b d (e) a a a Figura 5.2: Atributos e um exemplo de análise dos nós da letra “E” propostos por (POLIDÓRIO e BORGES, 1997). A principal vantagem do uso de modelos sintáticos é que somente uma amostra de cada caractere é necessária para a extração das características. Em (BELVISI, FREITAS, et al., 1999), o reconhecimento de caracteres é realizado através da comparação entre as projeções horizontais e verticais de cada 23 caractere e projeções previamente definidas. O uso das duas projeções elimina ambiguidades, pois, por exemplo, as letras “N”, “H” e “U” e os números “6” e “9” possuem projeções verticais semelhantes. Uma observação interessante é o fato da não necessidade de normalizar os caracteres após a etapa de segmentação, pois o padrão é guardado percentualmente de acordo com suas dimensões. O critério de igualdade utilizado na comparação foi um limite máximo percentual de pontos diferentes, limite este não mencionado no trabalho. Em (WU, ON, et al., 2005) o método do Template Matching também é utilizado. Nesta abordagem, levando em consideração as características das placas analisadas, o processo de reconhecimento foi dividido em duas seções. Um primeiro conjunto de padrões de letras já conhecidas é utilizado para reconhecer os primeiros dois caracteres e, posteriormente, um segundo conjunto de padrões de números é utilizado para reconhecer o restante dos caracteres, evitando assim possíveis ambiguidades entre letras e números, por exemplo, “O” e “0”. A taxa de sucesso durante a fase de reconhecimento é de 82,30%. Na proposta de (OZBAY e ERCELEBI, 2007), onde também foi utilizada a função de correlação cruzada, os caracteres depois de segmentados, são ajustados para 36 x 18 pixels com o intuito de padronizar as dimensões a serem comparadas com os caracteres modelos (Figura 5.3). O ajuste nas dimensões dos caracteres após a segmentação se faz necessário para que esta técnica de reconhecimento funcione corretamente, uma vez que a proposta foi baseada no modelo geral. O sistema utiliza 33 caracteres alfanuméricos, sendo 23 letras e 10 números para reconhecer caracteres de placas turcas. O trabalho relata alguns erros entre caracteres cuja similaridade é maior, como “B” e “8”, no entanto a taxa de acerto relatada foi de 98.80%. 24 Figura 5.3: (a) Caracteres segmentados, (b) Caracteres ajustados e (c) Caracteres modelos (OZBAY e ERCELEBI, 2007) É importante salientar que para utilizar o método Template Matching no reconhecimento de caracteres, as etapas que antecedem este ponto devem ser realizadas com o máximo rigor em questão de qualidade, pois caracteres com ruídos e/ou mal segmentados gerarão erros, uma vez que são utilizados poucos padrões. Também se deve atentar ao tipo de fonte empregado no processo, pois em alguns casos, as diferenças entre determinadas fontes são significativas. 5.3 REDES NEURAIS ARTIFICIAIS (RNA) Segundo (HAYKIN, 2001), uma RNA é um processador maciçamente paralelamente distribuído constituído de unidades de processamento simples, que têm a propensão natural para armazenar conhecimento experimental e torná-lo disponível para o uso (generalização). Entende-se como generalização a capacidade da rede neural produzir saídas adequadas para entradas que não participaram da fase de treinamento (aprendizagem). Este conceito é extremamente importante para o entendimento do funcionamento das RNAs. 25 As RNAs se assemelham ao cérebro em dois aspectos: 1. O conhecimento é adquirido pela rede a partir de seu ambiente através de um processo de aprendizagem; 2. Forças de conexão entre neurônios, conhecidos como pesos sinápticos, são utilizadas para armazenar o conhecimento adquirido. As RNAs são formadas por neurônios artificiais. Estes neurônios são as unidades de processamento de informação em uma rede neural. Um exemplo de um neurônio artificial é visualizado na Figura 5.4. Figura 5.4: Modelo não linear de um neurônio artificial (HAYKIN, 2001). Segundo (HAYKIN, 2001), os neurônios artificiais são distribuídos em camadas: Camada de entrada: Os padrões são apresentados aos neurônios de entrada; Camadas escondidas: Onde é realizado processamento dos dados; Camada de saída: Onde o resultado é finalizado e apresentado. A Figura 5.5 apresenta um modelo de RNA. 26 Figura 5.5: Modelo de RNA do tipo MLP (Multi-Layer Perceptron). Como as RNAs apresentam entre suas características a não-lineraridade e o mapeamento entrada-saída, elas possuem ampla aplicabilidade em problemas que envolvem reconhecimento e classificação de padrões (HAYKIN, 2001). Por este motivo este trabalho possui um foco maior em RNAs. No ponto de vista do reconhecimento e classificação do tipo supervisionada de caracteres, a aprendizagem é realizada através do mapeamento entrada-saída, onde cada exemplo de caractere apresentada a rede consiste de uma entrada única (representativa) e de uma resposta desejada. Os critérios de parada podem ser a quantidade de épocas (iterações) ou o alcance de um erro mínimo. Com o término da fase de treinamento, exemplos que não estavam presentes nesta fase são utilizados para verificar a habilidade de generalização da rede neural em condições reais de utilização. Diversos trabalhos que aplicam as RNAs para o reconhecimento e classificação de caracteres estão disponíveis na literatura e alguns deles serão descritos neste trabalho. Em (SOUZA, 2000), o reconhecimento dos caracteres é realizado através de duas redes MLPs, uma para letras e outra para números, levando em consideração a sintaxe das placas de automóveis brasileiros. Os caracteres segmentados são redimensionados para a dimensão 15 x 15 pixels, constituindo matrizes de entrada das respectivas redes. O critério de parada do algoritmo error back-propagation foi a convergência para um erro quadrático médio menor que 0.005. A taxa de sucesso 27 do classificador foi de 37.5% e em virtude deste resultado, o autor relata que um estudo mais profundo deve ser realizado. As configurações das RNAs projetadas no trabalho podem ser visualizadas na Tabela 5.1. Tabela 5.1: Configuração das RNAs de (SOUZA, 2000) Quantidade de neurônios na RNA dedicada as letras Quantidade de neurônios na RNA dedicada aos números Neurônios na camada de entrada 255 255 Neurônios na camada escondida 26 10 Neurônios na camada de saída 26 10 Tipos de neurônios Em (WEI, LI, et al., 2001), o reconhecimento dos caracteres de placas chinesas é realizado através de quatro RNAs do tipo MLP, sendo a última RNA o ponto de interesse para este trabalho. Esta RNA utiliza uma adaptação do backpropagation como algoritmo de treinamento. Os caracteres são normalizados para 8 x 16 pixels cujas características extraídas de cada caractere foram baseadas no mapa de bits (8x16 pixels). A configuração da MLP foi a tradicional para problemas de classificação (três camadas) e seus parâmetros são descritos na Tabela 5.2. A taxa de sucesso no reconhecimento relatada no trabalho foi de 95.00%. Tabela 5.2: Configuração da RNA de (WEI, LI, et al., 2001) Tipos de neurônios Quantidade de neurônios Neurônios na camada de entrada 108 Neurônios na camada escondida 20-50 Neurônios na camada de saída 35 Em (GUINGO, 2003), o reconhecimento de caracteres também foi realizado através de RNAs do tipo MLP. Duas configurações foram empregadas, uma para 28 letras e outra para números, em três conjuntos de dados distintos estudados na proposta. Os valores de entradas foram normalizadas para o intervalo entre 0 e 1. No conjunto de dados que apresentou o melhor desempenho, a arquitetura destinada ao reconhecimento das letras é constituída por quatro MLPs, backpropagation como algoritmo de treinamento e diferentes métodos de extração de características, como projeções verticais e horizontais, mapas de bits (16x16 pixels) e projeção poligonal (RODRIGUES, 2003). Já a configuração destinada ao reconhecimento dos números, possui duas MLPs, uma para reconhecimento dos números “0” e “8” com características extraídas a partir de mapa de bits (16 x16 pixels), e outra para os demais números com características extraídas a partir da projeção poligonal. A taxa de sucesso no reconhecimento da placa descrita no trabalho foi de 67.00%. Em (KHALIFA, KHAN, et al., 2006), uma RNA do tipo MLP é utilizada para realizar o reconhecimento de caracteres, já redimensionados para 20x10 pixels, com o algoritmo de treinamento error back-propagation. A função de ativação na camada escondida utilizada foi a logística sigmoidal. A taxa de sucesso no reconhecimento dos caracteres chega a 93.2%. A configuração da rede é descrita na Tabela 5.3, onde se percebe que cada neurônio de saída corresponde a um caractere. Tabela 5.3: Configuração da RNA de (KHALIFA, KHAN, et al., 2006) Tipos de neurônios Quantidade de neurônios Neurônios na camada de entrada 135 Neurônios na camada escondida 40 Neurônios na camada de saída 36 Em (ZHANG e WANG, 2012), também é reportado um reconhecimento de caracteres de placas chinesas. Levando em consideração a sintaxe das placas, são reportados três RNAs do tipo MLP com algoritmo de treinamento back-propagation. A primeira RNA é destinada ao reconhecimento de caracteres chineses, a segunda RNA é destinada ao reconhecimento de letras maiúsculas (exceto a letra I) e a terceira RNA é destinada ao reconhecimento dos números. Os caracteres são normalizados para 4 x 4 pixels e as características extraídas de cada caractere são 29 baseadas em mapa de bits. A configuração de cada RNA é descrita na Tabela 5.4. O critério de parada do foi o erro de 0.001 e a taxas de reconhecimento relatada no trabalho para caracteres chineses foi de 91.2% e para letras e números foi de 94.00%. Tabela 5.4: Configuração das RNAs de (ZHANG e WANG, 2012). Quantidade de Quantidade de Quantidade de neurônios da neurônios da neurônios da primeira RNA segunda RNA terceira RNA Neurônios na camada de entrada 16 16 16 Neurônios na camada escondida 18 16 15 Neurônios na camada de saída 51 25 10 Tipos de neurônios Os trabalhos descritos neste capítulo estão organizados na Tabela 5.5: 30 Tabela 5.5: Organização dos trabalhos citados no Capítulo 5. Autores Métodos de classificação Técnica de Extração de Características Taxas de Acerto (COMELLI, FERRAGINA, et al., 1995) Template Matching (correlação cruzada) - 91.07% (POLIDÓRIO e BORGES, 1997) Template Matching Morfologia dos caracteres (regras sintáticas) 91.00% (BELVISI, FREITAS, et al., 1999) Template Matching Projeções verticais e horizontais. - (SOUZA, 2000) RNA (MLP) Mapa de bits 37.50% (WEI, LI, et al., 2001) RNA (MLP) Mapa de bits 95.00% (GUINGO, 2003) RNA (MLP) Projeções verticais e horizontais, Projeções poligonais e Mapa de bits. 67.00% (WU, ON, et al., 2005) Template Matching - 82.30% (KHALIFA, KHAN, et al., 2006) RNA (MLP) Mapa de bits 93.20% (OZBAY e ERCELEBI, 2007) Template Matching (correlação cruzada) - 98.80% (DAMBROS, 2008) Template Matching Mapa de bits, quantidade de objetos e projeções verticais. 80.72% para letras e 88.06% para números (ZHANG e WANG, 2012) RNA (MLP) Mapa de bits 91.00% para caracteres chineses e 94.00% para letras e números 31 6 PROTÓTIPO DESENVOLVIDO O protótipo foi desenvolvido na linguagem de programação C++ utilizando a biblioteca OpenCV (Open Source Computer Vision Library)1, onde suas funcionalidades são abordadas em (BRADSKI e KAEHLER, 2008). O protótipo é dividido em três módulos: 1. O primeiro módulo é constituído por técnicas que realizam localização e extração da placa, gerando a principal imagem de interesse para os processos posteriores. 2. O segundo módulo consiste no processo de segmentação dos caracteres da imagem gerada do processo anterior. 3. Por último, o terceiro módulo é responsável por realizar a extração de características dos caracteres segmentados na etapa anterior e o reconhecimento e classificação dos mesmos a fim de identificar a placa do automóvel em questão. As seções a seguir explicam cada módulo do protótipo desenvolvido. 6.1 LOCALIZAÇÃO E EXTRAÇÃO DA PLACA As imagens utilizadas neste trabalho foram adquiridas do banco de imagens disponibilizado pelo Centro Brasileiro de Pesquisas Físicas (CBPF, 2005) e também nas ruas do município de Belém. Exemplos das imagens que compõem o banco de dados do trabalho podem ser visualizados na Figura 6.1 1 http://sourceforge.net/projects/opencvlibrary. Último acesso em novembro de 2012 32 Figura 6.1: (a) Exemplo de imagem disponibilizado em (CBPF, 2005) e (b) Exemplo de imagem nas ruas do município de Belém. Devido às imagens de (CBPF, 2005) possuírem a dimensão de 240 x 640 pixels, todas as imagens de entrada do sistema são redimensionadas para esta dimensão para que haja padronização das dimensões de cada imagem. Com as imagens já redimensionadas, o passo seguinte consiste em converter as imagens de entrada, que podem ou não estar no padrão RGB, para imagens em escala de cinza. Esse procedimento é realizado através da Equação 2.1, descrita na seção 2.3. Na biblioteca OpenCV, essa conversão é realizada através da função: cvCvtColor(imagem_entrada,imagem_cinza,CV_BGR2GRAY): Onde: A variável imagem_entrada representa a imagem em padrão RGB de entrada do sistema; 33 A variável imagem_cinza representa a imagem em escala de cinza resultante da conversão baseada na Equação 2.1 A diretiva CV_BGR2GRAY indica o tipo de conversão a ser realizado. O resultado da conversão da Figura 6.1(b) (padrão RGB) para imagem em escala de cinza é visualizada na Figura 6.2. Figura 6.2: Imagem em escala de cinza O próximo passo é a binarização da imagem em escala de cinza, ou seja, será gerada uma imagem que possui somente valores 0 ou 255. Durante a implementação do protótipo, a priori o valor do limiar foi estabelecido por tentativa-e-erro, contudo, não ocorreu uma uniformidade na visualização das placas para todas as imagens analisadas e, portanto optou-se pela utilização do o algoritmo de Otsu, em virtude da sua ampla utilização na literatura. Na biblioteca OpenCV, a binarização é realizada através da função: cvThreshold(imagem_cinza,imagem_binaria,limiar,valor_max, CV_THRESH_BINARY ) Onde: A variável imagem_cinza representa a imagem em escala em cinza gerada na etapa anterior; A variável imagem_binaria representa a imagem resultante da binarização; A variável limiar representa o valor de limiar para a binarização; 34 A variável valor_max representa o valor máximo que um pixel pode assumir. Neste trabalho, este valor é igual a 255; A diretiva realizada. CV_THRESH_BINARY representa Quando essa diretiva é o tipo substituída de binarização pela diretiva CV_THRESH_OTSU, o algoritmo de Otsu é aplicado fornecendo um limiar automático de acordo com cada imagem analisada. Este novo limiar retornado é utilizado no lugar do limiar especificado anteriormente. Na Figura 6.3, pode ser visualizado o resultado da binarização pelo algoritmo de Otsu das Figuras 6.1(a) e 6.2, respectivamente. Figura 6.3: (a) Binarização da Figura 6.1(a); (b) Binarização da Figura 6.2 35 A busca pela região da imagem que contém a placa é realizada através do Método baseado em Variação Tonal. Como descrito na seção 3.3, a placa de automóveis possui grandes variações entre os caracteres e o fundo da placa (background), constituindo assim a principal característica de busca deste método. A Figura 6.4 sintetiza a utilização do Método baseado em Variação Tonal na Figura 6.3(a). Linha A 300 250 200 150 Linha A 100 50 0 Linha B 0 300 100 200 300 400 500 600 700 Linha B Valor de cada pixel na linha B 250 200 150 100 50 0 100 200 300 400 500 600 Colunas Figura 6.4: Comparação entre uma linha qualquer A e a linha B (linha de maior variação tonal) da Figura 6.3. A partir da Figura 6.4, percebe-se que a linha B (linha de maior variação tonal) apresenta uma região onde ocorrem picos máximos e mínimos consecutivos. Esta alternância entre valores dos pixels, com espaçamentos comuns, constituem o fundo e os caracteres placa. A partir da determinação da linha de maior variação tonal, o próximo passo é descobrir a altura dos caracteres. Para tal tarefa, análises em cada linha acima e abaixo da linha em questão são realizadas com o objetivo de identificar o limite superior e o limite inferior dos caracteres presentes na placa. Os limites são selecionados quando ocorre a primeira redução significativa da quantidade de alternâncias entre pixels em cada linha analisada. Essa redução é estipulada empiricamente como sendo 30% da quantidade de alternâncias observada na linha de maior variação tonal. Ou seja, quando as primeiras linhas superiores e inferiores à linha de maior variação tonal apresentarem quantidade de alternâncias entre pixels igual ou inferior a 30% da quantidade de alternâncias observada na linha de maior 36 variação tonal, serão definidas como limite superior e inferior dos caracteres, respectivamente. Esta abordagem é visualizada na Figura 6.5 a seguir: Linha 1 Linha B Linha 2 Figura 6.5: Limites superiores e inferiores dos caracteres Onde: A linha B constitui a linha de maior variação tonal com projeção horizontal igual a 22; A linha 1 constitui o limite superior dos caracteres com projeção horizontal igual a 2; A linha 2 constitui o limite inferior dos caracteres com projeção horizontal igual a 4; Exemplos de imagens resultantes desse processo podem ser visualizados na Figura 6.6. 37 Figura 6.6: Exemplos de regiões de placas com limites superior e inferior delimitados A partir deste ponto, é necessário delimitar a largura da placa. Para concluir este objetivo, uma janela percorre a imagem, que já está na forma dos exemplos mostrados na Figura 6.6, para localizar a área que possui maior variação entre pixels. Com isso, tem-se a imagem final (Figura 6.7) do processo de localização e extração da placa que será processada nas etapas posteriores que compõem um sistema completo de reconhecimento de placas de automóveis. Figura 6.7: Localização e extração da placa. 38 6.2 SEGMENTAÇÃO DOS CARACTERES A etapa de segmentação de caracteres consiste em isolar cada um dos sete caracteres em imagens distintas para que possam ser reconhecidos na etapa a seguir. Neste trabalho, o processo de segmentação foi realizado pelo o método de projeções verticais descrito na seção 4.1. Tem-se como entrada do módulo de segmentação a imagem da placa binarizada (Figura 6.7). Posteriormente, ocorre a varredura coluna a coluna a procura de vales que representam o espaçamento entre os caracteres. O resultado da utilização do método das projeções verticais é a imagem da placa com caracteres devidamente separados (Figura 6.8). Quantidade de pixels pretos 25 20 15 10 5 0 20 40 60 80 100 Colunas 120 140 160 180 200 Figura 6.8: Placa de automóvel com caracteres segmentados e as projeções de cada caractere Na Figura 6.8, verifica-se que o traço que separa as letras e os números é descartado do processo de segmentação. Isso ocorre porque ele não se enquadra nas dimensões dos demais caracteres, constituindo assim um vale. O próximo capítulo trata do reconhecimento dos caracteres já segmentados. 39 6.3 RECONHECIMENTO DOS CARACTERES 6.3.1 Extração de Características Este passo consiste na extração de características de cada caractere, respeitando as dimensões já delimitadas na etapa de segmentação. Desta forma, cada caractere é ajustado para uma janela de dimensão 10x10 pixels para que suas características sejam extraídas. O processo de extração de características de cada caractere, já redimensionados para uma janela 10x10 pixels, utiliza as projeções horizontais e verticais, constituindo assim um vetor de características de 20 posições para cada caractere. As dez primeiras posições do vetor são as projeções horizontais e as dez posições restantes são projeções verticais. Os valores que cada posição do vetor pode assumir variam entre 0 a 10, entretanto são normalizados para o intervalo [0,1]. Por exemplo, o valor 0.1 indica a presença de um pixel preto, o valor de 0.2 indica a presença de dois pixels pretos e assim por diante. Estes vetores de características constituem entradas do módulo de reconhecimento. A Tabela 6.1 apresenta os vetores de características dos caracteres segmentados da Figura 6.8. Tabela 6.1: Caracteres segmentados e seus respectivos vetores de características Caracteres Segmentados Vetor de Características [0.2 0.2 0.2 0.2 0.2 0.2 0.2 0.3 1.0 0.9 0.9 1.0 0.3 0.2 0.2 0.2 0.2 0.2 0.2 0.2] [0.5 0.6 0.5 0.7 0.7 0.7 0.6 0.4 0.4 0.3 0.9 0.9 0.4 0.3 0.2 0.3 0.3 0.3 0.8 1.0] [1.0 0.5 0.2 0.2 0.2 0.3 0.3 0.3 0.4 1.0 0.3 0.4 0.5 0.6 0.4 0.5 0.5 0.5 0.4 0.3] [1.0 0.6 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.4 0.3 0.4 0.5 0.5 0.4 0.4 0.4 0.5 0.4 0.3] [0.3 0.4 0.3 0.3 0.4 0.8 0.8 0.5 0.6 0.8 0.3 0.5 0.5 0.4 0.4 0.5 0.7 0.7 0.7 0.5] [1.0 1.0 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.4 0.5 0.5 0.5 0.5 0.5 0.5 0.4 0.3] [1.0 1.0 0.2 0.7 0.9 0.2 0.2 0.4 0.7 0.8 0.7 0.8 0.6 0.6 0.5 0.5 0.5 0.5 0.8 0.6] 40 O módulo de reconhecimento dos caracteres consiste na última etapa do sistema de reconhecimento de placas de automóveis. Os vetores de características de cada caractere extraído na etapa anterior constituem as entradas deste módulo. Dentre as técnicas de reconhecimento e classificação de padrões descritas na literatura, o algoritmo ELM (Extreme Learning Machine) (HUANG, ZHU e SIEW, 2006) foi selecionado para o desenvolvimento deste trabalho. A seção a seguir descreve o algoritmo ELM e suas características. 6.3.2 ELM – Extreme Learning Machine O ELM é um algoritmo de aprendizagem simples e rápido para RNAs com apenas uma camada escondida (SLFN - Single-hidden Layer Feedforward Neural Network). Contudo, esta restrição não é relevante, uma vez que SLFNs podem aproximar qualquer função contínua e portanto têm o potencial de solucionar problemas de classificação (HUANG, ZHU e SIEW, 2006). Os autores provam que os pesos da camada de entrada e os limiares (bias) da camada escondida de redes SLFNs podem ser determinados de forma aleatória quando a função de ativação na camada escondida for infinitamente diferenciável. Desta forma, a solução dos pesos na camada de saída envolve a solução de um sistema linear e assim podem ser determinados analiticamente. A modelagem matemática do ELM é descrita da seguinte forma: Para amostras de treinamento vetor de entradas e , onde é um é um vetor de saídas desejadas, tem- se a SLFN: Onde: : é o vetor de pesos que conecta o -ésimo neurônio na camada escondida com neurônios da camada de entrada; : é o vetor de pesos que conecta o -ésimo neurônio da camada escondida com os neurônios da camada de saída; : é a bias do -ésimo neurônio da camada escondida; 41 : é a quantidade de neurônios na camada escondida; : é a função de ativação da camada escondida; : é a saída atual da rede em resposta à entrada Para que a saída atual da rede que haja valores para , e . seja igual à saída desejada , é necessário que satisfaçam a Equação 6.2: A Equação 6.2 pode ser descrita como: Onde: e . (6.5) Assim, de acordo com (HUANG, ZHU e SIEW, 2006), a solução da Equação 6.3 pode ser descrita como: , (6.6) Onde: : é a matriz inversa generalizada de Moore-Penrose da matriz , também denominada de pseudo-inversa de uma ELM. Dado o conjunto de treinamento função de ativação , e número de neurônios na camada escondida , o algoritmo ELM para treinamento de uma SLFN é composto pelos seguintes passos: 1. Primeiro passo: Geração aleatória dos pesos da camada de entrada bias , ; 2. Segundo passo: Cálculo da matriz de saída da camada escondida . e 42 3. Terceiro passo: Cálculo dos pesos da camada de saída , onde . Neste trabalho, a implementação do algoritmo ELM foi realizada na linguagem de programação C++ utilizando a biblioteca OpenCV e foi baseada no algoritmo implementado em Matlab (MATrix LABoratory) disponível em (HUANG, 2012). Vale ressaltar que a solução da Equação 6.6 é avaliada com auxílio da Decomposição por Valores Singulares (SVD - Singular Value Decomposition). Duas RNAs foram desenvolvidas no projeto, uma para reconhecimento de letras e outra para o reconhecimento dos números. Esta abordagem faz-se necessária devido aos grandes problemas de confusão entre letras e números relatados na literatura, em virtude dos formatos semelhantes. No Brasil, o Contran (CONTRAN- Conselho Nacional de Trânsito, 2007) estipula o tipo de fonte e as dimensões dos caracteres e das placas de automóveis licenciados no território brasileiro. O tipo de fonte utilizado atualmente nas placas é evidenciado na Figura 6.9, onde se verifica a semelhança entre alguns caracteres, o que pode gerar confusões durante o processo de reconhecimento. Figura 6.9: Modelo de caracteres na fonte Mandatory estipulado pelo Contran. A Figura 6.10 fornece uma imagem de uma placa de automóvel seguindo o modelo estipulado pelo Contran e observa-se que existe similaridade entre a letra “O” e o número “0” e também entre a letra “I” e o número “1”. Portanto, se o reconhecimento fosse realizado por uma única RNA, o resultado provavelmente seria mais sujeito a erros. 43 Figura 6.10: Placa nos moldes do CONTRAN. Desta forma, de acordo com o formato das placas de automóveis no Brasil, os três primeiros caracteres serão reconhecidos pela RNA dedicada as letras e os quatro caracteres restantes serão reconhecidos pela RNA dedicada aos números. A Figura 6.11 fornece o esquema de classificação dos caracteres utilizado neste trabalho. Figura 6.11: Esquema utilizado na classificação dos caracteres 44 7 TESTES E RESULTADOS Para o desenvolvimento do módulo de reconhecimento, uma base de imagens de caracteres foi projetada com o intuito de formar o conjunto de treinamento e teste da rede. No total de aproximadamente 100 imagens de placas de automóveis, tem-se 245 padrões de letras e 240 padrões de números representativos para o reconhecimento dos caracteres. Durante a implementação do módulo de reconhecimento duas questões foram levantadas: Quantidade de neurônios na camada escondida; Quantidade de dados destinados para a fase de treinamento e teste; Em (HUANG, ZHU e SIEW, 2006), é provado que SLFNs com camada escondida podem aprender exatamente neurônios na padrões distintos, para qualquer função de ativação infinitamente diferenciável. Portanto simulaçoes foram realizadas variando a quantidade de neurônios na camada escondida para descobrir se as RNAs projetadas obtinham sucesso no reconhecimento com um valor menor que a quantidade de padrões de treinamento. A segunda questão levantada poderia ser respondida pela adoção da proposta em (GUINGO, 2003) que indica 80% das amostras para treinamento e 20% do restante para teste. Contudo, simulações também foram realizadas variando a porcentagem de distribuição dos padrões disponíveis entre os conjuntos de treinamento e teste. 7.1 CLASSIFICAÇÃO DOS NÚMEROS O algoritmo das simulações da RNA dedicada aos números é descrito a seguir: 45 1. for neurônio_escondidos 2. 5 de 5 a 250 for porcentagem 0.1 a 0.9 // porcentagem de cada classe destinada ao treinamento 3. for iteração 1 a 100 4. Geração aleatório do conjunto de treino e teste 5. Calcular taxa de reconhecimento da iteração 6. end for 7. Calcular a média das taxas de reconhecimento das 100 iterações para cada porcentagem e para cada o valor de neurônio_escondido 8. end for 9. end for Como pode ser visto no algoritmo descrito, a variação da quantidade de neurônios na camada escondida variou de 5 em 5 até 250. A variação da porcentagem de distribuição dos padrões de cada classe destinados à fase de treinamento foi de 10% a 90%. Ao final de cada iteração tem-se um valor da taxa de acerto e após 100 iterações calcula-se a média das taxas para cada porcentagem e sua respectiva quantidade de neurônios na camada escondida. A Tabela 7.1 exemplifica o modelo das tabelas geradas para a exibição dos resultados obtidos nas simulações para o reconhecimento dos números com 90 neurônios na camada escondida. Este modelo também é adotado nos demais casos. 46 Tabela 7.1:Taxas de acerto no processo de reconhecimento dos números para 90 neurônios na camada escondida. Porcentagem de dados de treino Taxa de acerto na fase de treinamento (x100) Taxa de acerto na fase de teste (x100) 10% 1.00 0.63 20% 1.00 0.80 30% 1.00 0.83 40% 1.00 0.61 50% 1.00 0.80 60% 1.00 0.90 70% 1.00 0.93 80% 1.00 0.95 90% 1.00 0.96 A Figura 7.1 fornece uma visualização gráfica acerca das taxas de acerto na fase de teste para o reconhecimento dos números com a variação da porcentagem de distribuição dos padrões destinados à fase de treinamento. Taxas de acerto na fase de teste para 90 neurônios na camada escondida Taxas de acerto na fase de teste 1 0.9 0.8 0.7 0.6 0.5 10% 20% 30% 40% 50% 60% 70% Porcentagem dos dados destinanados ao treinamento Figura 7.1: Análise das taxas de acerto na fase de teste 80% 90% 47 A partir dos resultados visualizados, as melhores taxas de reconhecimento na fase de teste da RNA destinada ao reconhecimento dos números ocorrem quando 90% dos dados foram destinados à etapa de treinamento. As taxas de acerto durante a fase de treinamento foram de 100% enquanto que a média das taxas de acerto durante a fase de teste chegou a 96%. O gráfico da Figura 7.2 fornece a média das taxas de acerto com a variação da quantidade de neurônios na camada escondida. Taxas de acerto para 90% de dados reservados para treinamento 1 Média das taxas de acerto em 100 iterações Fase de treinamento Fase de teste 0.9 0.8 0.7 0.6 0.5 0.4 20 40 60 80 100 120 140 160 180 200 Número de neurônios na camada escondida Figura 7.2: Gráfico para 90% dos padrões de números disponíveis destinados à etapa de treinamento. 7.2 CLASSIFICAÇÃO DAS LETRAS No algoritmo das simulações da RNA dedicada às letras mudou-se somente a variação da porcentagem da quantidade de padrões em cada classe destinada à fase de treinamento para o intervalo de 20% a 90%, pois algumas letras possuem menos de 10 padrões. A Tabela 7.2 exemplifica o modelo das tabelas geradas para a exibição dos resultados obtidos nas simulações para o reconhecimento das letras com 100 neurônios na camada escondida. Este modelo também é adotado nos demais casos. 48 Tabela 7.2: Taxas de acerto no processo de reconhecimento das letras para 100 neurônios na camada escondida. Porcentagem de dados de treino Taxa de acerto na fase de treinamento (x100) Taxa de acerto na fase de teste (x100) 20% 1.00 0.46 30% 1.00 0.51 40% 1.00 0.45 50% 1.00 0.47 60% 1.00 0.64 70% 1.00 0.75 80% 1.00 0.79 90% 0.994 0.826 A Figura 7.3 fornece uma visualização gráfica acerca das taxas de acerto na fase de teste para o reconhecimento das letras com a variação da porcentagem de distribuição dos padrões destinados à fase de treinamento. Taxas de acerto na fase de teste para 100 neurônios na camada escondida 1 Taxas de acerto na fase de teste 0.9 0.8 0.7 0.6 0.5 0.4 0.3 20% 30% 40% 50% 60% 70% 80% Porcentagem dos dados destinados ao treinamento Figura 7.3: Análise das taxas de acerto na fase de teste 90% 49 A partir dos resultados visualizados, constatou-se também que as melhoras taxas de reconhecimento na fase de teste ocorrem quando 90% dos dados de cada classe disponíveis no conjunto são destinados à fase de treinamento. A média das taxas de acerto para o reconhecimento das letras durante a fase de treinamento chegou a 99.4%, enquanto que a média das taxas de acerto durante a fase de teste foi de 82.6%. Provavelmente, essa taxa de acerto na fase de teste foi menor em relação a RNA destinada aos números em virtude de poucos padrões de determinadas letras. O gráfico da Figura 7.4 fornece a média das taxas de acerto com a variação da quantidade de neurônios na camada escondida. Taxa de acerto para 90% de dados reservados para treinamento Média das taxas de acerto em 100 iterações 1 Fase de treinamento Fase de teste 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 20 40 60 80 100 120 140 160 180 200 Número de neurônios na camada escondida Figura 7.4: Gráfico para 90% dos dados do conjunto de letras destinados à etapa de treinamento. Vale ressaltar que os parâmetros iniciais das RNAs foram: 20 neurônios na camada de entrada para ambas as RNAs; Função de ativação sigmoide; 10 neurônios na camada de saída (0-9) para RNA destinada aos números e 26 neurônios na camada de saída (A-Z) para a RNA destinada às letras. A partir dos resultados observados tanto para letras quanto para números, as RNAs que apresentaram os melhores resultados possuem a seguinte configuração: 90% dos dados de cada classe disponíveis para a fase de treinamento e os 10% restantes para a fase de teste; 50 90 neurônios na camada escondida para a RNA destinada aos números e 100 neurônios na camada escondida para a RNA destinada às letras; A seguir, a Figura 7.5 fornece o reconhecimento da placa da imagem da Figura 6.1(a). Figura 7.5: Reconhecimento da placa da Figura 6.1(a) 51 8 CONCLUSÃO E TRABALHOS FUTUROS Este trabalho constituiu-se em uma implementação de um sistema completo para reconhecimento de placas de automóveis. O sistema foi desenvolvido na linguagem de programação C++ utilizando a biblioteca OpenCV. O módulo de localização foi baseado na técnica de variação tonal, onde no qual se observa a “assinatura” na região da placa do automóvel. Em alguns casos, pequenos problemas ocorreram durante esse processo que resultou na não localização da placa, prejudicando assim as etapas seguintes. Desta forma, concluise que a técnica abordada deve ser complementada. O método de detecção de bordas ou até mesmo o template matching devem ser testados para otimizar o desempenho deste módulo. Outra técnica que poderia ser utilizado durante a fase de localização e não foi abordado neste trabalho é o alinhamento de caracteres no qual pode ser realizado através da Transformada de Hough. O módulo de segmentação utilizou a técnica de projeções verticais para isolar cada caractere. Esta técnica se mostrou bastante eficaz, onde alguns problemas encontrados foram resultantes de uma má localização da placa. Como trabalhos futuros, a implementação de outros métodos, como a análise de componentes conectados, devem ser realizados com o intuito de avaliação de desempenho. A etapa de extração de características baseou-se nas projeções horizontais e verticais dos caracteres já segmentados e redimensionados para uma janela 10 x 10 pixels. O desempenho apresentado foi satisfatório. O módulo de reconhecimento da placa utilizou o algoritmo ELM e foi implementado na linguagem de programação C++ e biblioteca OpenCV, a fim de identificar qual o caractere analisado. Este módulo se mostrou muito eficiente e rápido, onde se verificou que o aumento da base de dados otimizaria o desempenho descrito. Em trabalhos futuros, podem-se realizar comparações com o método de template matching, uma vez que a biblioteca OpenCV já possui funções implementadas ou ainda com o SVM (Support Vector Machines) uma vez que esta técnica de aprendizado de máquina está sendo muito utilizada em diversas tarefas de reconhecimento de padrões. 52 9 APÊNDICE A Este apêndice fornece alguns resultados obtidos durante as simulações do módulo de reconhecimento de caracteres, quando houve a variação na quantidade de neurônios na camada escondida. Devido a não convergência do SVD em casos onde a porcentagem de distribuição dos padrões destinados ao treinamento é menor que 50% para a quantidade de neurônios na camada escondida analisada, somente os resultados acima desta porcentagem serão fornecidos. 9.1 LETRAS 53 9.2 NÚMEROS 54 55 10 BIBLIOGRAFIA ANAGNOSTOPOULOS, C.-N. E. et al. License Plate Recognition From Still Images and Video Sequences: A Survey. IEEE Transactions on Intelligent Transportation Systems, Setembro 2008. 377-391. BARROSO, J. et al. Number plate reading using computer vision. IEEE International Symposium on Industrial Electronics ISIE’97, Guimarães. BELLAS, N. et al. FPGA Implementation of a License Plate Recognition SoC using Automatically Generated Streaming Accelerators. Parallel and Distributed Processing Symposium, Nice, 25-29 Abril 2006. 8-15. BELVISI, R. et al. Um Sistema de Reconhecimento Automático de Placas de Automóveis. Anais do XIX Congresso Nacional da Sociedade Brasileira de Computação, 1999. 537-539. BIANCHI, M. F. D. Extração de Características de Imagens de Faces Humanas através de Wavelets, PCA e IMPCA. Universidade de São Paulo. São Carlos, p. 137. 2006. BRADSKI, G.; KAEHLER, A. Learning OpenCV - Computer Vision with the OpenCV Library. 1ª Edição. ed. [S.l.]: O’Reilly, 2008. BUSSADOR, A. Localização Automática de Placas de Veículos em Fotos Digitais Utilizando Abordagem Granulométrica. Pontifícia Universidade Católica do Paraná. Curitiba, p. 81. 2009. CASTLEMAN, K. R. Digital Image Processing. [S.l.]: Prentice Hall, 1996. CAVALCANTI, H. M. V. D. C. Extração de Características via Redes Neurais. Universidade de Campinas. Campinas, p. 116. 2000. CENTRO Brasileiro de Pesquisas Físicas. Disponivel em: <http://www.cbpf.br/cat/pdsi/lpr/>. Acesso em: Novembro 2012. COMELLI, P. et al. Optical Recognition of Motor Vehicle License Plates. IEEE TRANSACTIONS ON VEHICULAR TECHNOLOGY, Novembro 1995. 790-799. 56 CONCI, A.; Reconhecimento MONTEIRO, de placas de L. H. Universidade veículos por Federal imagem. Fluminense. Disponivel em: <http://www.ic.uff.br/~aconci/CONENPLACAS.pdf>. Acesso em: Dezembro 2012. CONTRAN- Conselho Nacional de Trânsito. RESOLUÇÃO Nº 241, DE 22 DE JUNHO DE 2007, 2007. Disponivel em: <http://www.denatran.gov.br/download/Resolucoes/RESOLUCAO_CONTRAN_241.p df>. Acesso em: Novembro 2012. DAMBROS, A. L. Sistema de Reconhecimento de Placas de Veículos Automotores. CENTRO UNIVERSITÁRIO FEEVALE. Novo Hamburgo, p. 77. 2008. DIAS, F. G. Melhorias para Sistema de Reconhecimento da Placa de Licenciamento Veicular. Universidade Estadual de Campinas. Campinas, p. 154. 2005. FACON, J. Morfologia Matemática: Teorias e Exemplos. Curitiba: [s.n.], 1996. FACON, J. LIMIARIZAÇÃO PUCPR- Pontifícia BIMODAL DE Universidade OTSU. Católica Do Paraná. Disponivel em: <http://www.ppgia.pucpr.br/~facon/Binarizacao/LimiarOstuNovo3.PDF>. Acesso em: 10 Dezembro 2012. GONZALEZ, R. C.; WOODS, R. E. Processamento Digital de Imagens. 3ª. ed. [S.l.]: Pearson, 2010. GUINGO, B. C. Reconhecimento Automático de Placas de Veículos Automotores. Universidade Federal do Rio de Janeiro. Rio de Janeiro, p. 143. 2003. GUINGO, B. C. et al. KAPTA - Um sistema de reconhecimento automático de placas de veículos e suas aplicações potenciais. Disponivel em: <http://www.cbtu.gov.br/estudos/pesquisa/anpet_xviiiCongrpesqens/ac/arq59.pdf>. Acesso em: 2 Dezenbro 2012. HAYKIN, S. Redes Neurais: Princípios e prática. 2ª Edição. ed. [S.l.]: Bookman, 2001. 57 HONGLIANG, B.; CHANGPING, L. A Hybrid License Plate Extraction Method Based on Edge Statistics and Morphology. Proc. of the International Conference on Pattern Recognition, Beijing, 2004. 831-834. HUANG, G.-B. Extreme Learning Machines (ELM), 2012. Disponivel em: <http://www.ntu.edu.sg/home/egbhuang/>. Acesso em: Novembro 2012. HUANG, G.-B.; ZHU, Q.-Y.; SIEW, C.-K. Extreme Learning Machine: Theory and Applications. Neurocomputing 70, 2006. 489-501. KHALIFA, O. et al. Malaysian Vehicle License Plate Recognition. The International Arab Journal of Information Technology, Julho 2006. 359-364. LOTUFO, R. A.; DIAS, F. G. Método de localização de cadeias alfanuméricas tipográficas em superfícies de fundo uniforme para um sistema de reconhecimento baseado em imagem. IMPI- Intituto Nacional de Propriedade Industrial, 2004. LU, Y. Machine printed character segmentation. Pattern Recognition, 1995. 67-80. MARQUES, O. F.; VIEIRA, H. N. Processamento Digital de Imagens. Rio de Janeiro: Brasport, 1999. MORAIS, E. C. Reconhecimento de Padrões e Redes Neurais Artificiais em Predição de Estruturas Secundárias de Proteínas. Universidade Federal do Rio de Janeiro. [S.l.], p. 148. 2010. OTSU, N. A Threshold Selection Method from Gray-Level Histograms. IEEE Transactions on System, Man and Cybernetics , 1979. OZBAY, S.; ERCELEBI, E. Automatic Vehicle Identification by Plate Recognition. World Academy of Science, Engineering and Technology, 2007. 778-781. POLIDÓRIO, A. M.; BORGES, D. L. Um Método de Reconhecimento Sintático de Caracteres para Identificação de Placas de Veículos. Anais do X SIBGRAPI , 1997. 7. RAHMAN, C. A.; BADAWY, W.; RADMANESH, A. A Real Time Vehicle’s License Plate Recognition System. Proc. IEEE Conf. Advanced Video Signal Based Surveillance, 2003. 163-166. 58 RODRIGUES, R. J. Segmentação e extração de características para reconhecimento automático de caracteres - Estudo e propostas. Universidade Federal do Rio de Janeiro. Rio de Janeiro, p. 169. 2003. SANTOS, R. M. D. Um Estudo de Processamento de Imagens com OpenCV. Universidade Federal Fluminense. Niterói, p. 99. 2011. SEZGIN, M.; SANKUR, B. Survey over image thresholding techniques and quantitative performance evaluation. Journal of Electronic Imaging , Gebze, Janeiro 2004. 146-165. SOM, H. M.; ZAIN, J. M.; GHAZALI, A. J. Application of Threshold Techniques for Readability Improvement of Jawi Historical Manuscript Images. Advanced Computing: An International Journal ( ACIJ ), Kuantan, Março 2011. 60-69. SOUZA, F. P. C. D. Localização e Leitura Automática de Caracteres Alfanuméricos - Uma Aplicação na Identificação de Veiculos. Universidade Federal do Rio Grande do Sul. Porto Alegre, p. 105. 2000. SOUZA, J. A. D. Reconhecimento de Padrões usando Indexação Recursiva. Universidade Federal de Santa Catarina. Florianópolis. 1999. TRENTINI, V. B.; GODOY, L. A. T.; MARANA, A. N. Reconhecimento Automático de Placas de Veículos. VI Workshop de Visão Computacional, Presidente Prudente, 4-7 Julho 2010. 267-272. WEI, W. et al. Research on Number-plate Recognition Based on Neural Networks. Proc. IEEE Signal Process. Soc. Workshop Neural Netw. Signal Process. XI, 2001. 529-538. WU, C. et al. A Macao license plate recognition system. Proc. 4th Int. Conf. Mach. Learn. Cybern, Guangzhou, Agosto 2005. 4506-4510. ZHANG, Z.; WANG, C. The Research of Vehicle Plate Recognition Technical Based on BP Neural Network. AASRI Conference on Computational Intelligence and Bioinformatics- ELSEVIER, 2012. 74-81.