tcc Visual autonomy protótipo para reconhecimento de placas de trânsito

download tcc  Visual autonomy protótipo para reconhecimento de placas de trânsito

of 55

Transcript of tcc Visual autonomy protótipo para reconhecimento de placas de trânsito

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    1/55

    UNIVERSIDADE REGIONAL DE BLUMENAU

    CENTRO DE CINCIAS EXATAS E NATURAIS

    CURSO DE CINCIA DA COMPUTAO BACHARELADO

    VISUAL AUTONOMY PROTTIPO PARA

    RECONHECIMENTO DE PLACAS DE TRNSITO

    FERNANDO POFFO

    BLUMENAU2010

    2010/1-13

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    2/55

    FERNANDO POFFO

    VISUAL AUTONOMY PROTTIPO PARA

    RECONHECIMENTO DE PLACAS DE TRNSITO

    Trabalho de Concluso de Curso submetido Universidade Regional de Blumenau para aobteno dos crditos na disciplina Trabalhode Concluso de Curso II do curso de Cinciada Computao Bacharelado.

    Prof. Mauro Marcelo Mattos, Dr. - Orientador

    BLUMENAU20102010/1-13

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    3/55

    VISUAL AUTONOMY PROTTIPO PARA

    RECONHECIMENTO DE PLACAS DE TRNSITO

    Por

    FERNANDO POFFO

    Trabalho aprovado para obteno dos crditosna disciplina de Trabalho de Concluso deCurso II, pela banca examinadora formadapor:

    ______________________________________________________Presidente: Prof. Mauro Marcelo Mattos, Dr. Orientador, FURB

    ______________________________________________________Membro: Prof. Paulo Csar Rodacki Gomes, Dr. FURB

    ______________________________________________________Membro: Prof. Roberto Heinzle, M.Eng. FURB

    Blumenau, 05 de julho de 2010

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    4/55

    AGRADECIMENTOS

    minha famlia, que sempre esteve presente.Aos meus colegas, pelos empurres e cobranas.

    s pessoas que disponibilizam, nainternet , exemplos, documentao e outros

    materiais que servem como fonte de conhecimento.

    Ao meu orientador, Mauro Marcelo Mattos, por ter acreditado na concluso deste

    trabalho.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    5/55

    A mente que se abre a uma nova idia jamaisvoltar ao seu tamanho original.

    Albert Einstein

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    6/55

    RESUMO

    Este trabalho descreve um prottipo de uma ferramenta de deteco e reconhecimento deplacas de trnsito, com possibilidade de ser integrada em um sistema de apoio ao motoristainstalado em um computador de bordo veicular. Para a deteco, so implementadas tcnicasde processamento de imagens, tal como a transformada de Hough utilizada para localizar oformato circular de um tipo de placa de trnsito. Na etapa do reconhecimento, submete-se aimagem a uma rede neuralmultilayer perceptron treinada utilizando algoritmobackpropagation .

    Palavras-chave: Viso computacional. Reconhecimento de objetos. Segmentao de imagem.Segurana no trnsito.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    7/55

    ABSTRACT

    This work describes a software tool for detection and recognition of road signs. We usedimage processing techniques, such as the Hough transform for identifying possible road signimages and a multilayer neural network trained with backpropagation algorithm. We verifiedthat the noise and the absence of bright control introduced in the images captured by webcamimpacts the precision of the recognition process.

    Key-words: Computer vision. Object recognition. Image segmentation. Traffic safety.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    8/55

    LISTA DE ILUSTRAES

    Figura 1 Assistncia para estacionamento do veculo - ADAS ............................................. 15 Figura 2 Viso noturna - ADAS ............................................................................................ 16

    Figura 3 Deteco de sada de pista - ADAS ........................................................................ 16

    Figura 4 Utilizao das informaes de cor por Escalera, Armingol e Mata (2003) ............ 19

    Figura 5 Utilizao das informaes de cor por Piccioli et al. (1996) .................................. 19

    Figura 6 Exemplo de quantizao uniforme .......................................................................... 20

    Quadro 1 Algoritmo de quantizao uniforme ...................................................................... 20

    Figura 7 Paleta RGB quantizada ........................................................................................... 20 Quadro 2 Equaes................................................................................................................ 21Quadro 3 Algoritmo da transformada circular de Hough ...................................................... 21

    Figura 8 Operao de transformao circular de Hough ....................................................... 22

    Figura 9 Exemplo de transformao circular de Hough ........................................................ 22

    Figura 10 Arquitetura de uma rede neural artificial MLP ..................................................... 24

    Figura 11 Funo sigmide logstica e seu grfico ............................................................... 25

    Quadro 4 Algoritmo BP ......................................................................................................... 26

    Figura 12 Ferramenta grfica para desenvolvimento de redes neurais ................................. 27

    Figura 13 Diagrama de casos de uso ..................................................................................... 32

    Quadro 5 Caso de usoConfigurar a fonte de imagens ..................................... 32

    Quadro 6 Caso de usoAplicar filtros nas imagens .......................................... 33

    Quadro 7 Caso de usoTreinar a rede neural ........................................................ 33

    Quadro 8 Caso de usoReconhecer a placa ................................................................ 34

    Figura 14 Diagrama de classes .............................................................................................. 34

    Figura 15 Diagrama de seqncia ......................................................................................... 36

    Quadro 9 Instanciao decodecs ........................................................................................... 37

    Figura 16 Fluxo dobuffer de imagens do prottipo em execuo ........................................ 37

    Quadro 10 Recebimento do fluxo de imagens ...................................................................... 37

    Figura 17 Intervalo de valores recebido da cor vermelha ..................................................... 37

    Quadro 11 Pr ajuste de cores ............................................................................................... 38

    Figura 18 Intervalo de valores ajustado da cor vermelha ...................................................... 38

    Quadro 12 Quantizao uniforme ......................................................................................... 38

    Figura 19 Resultado da quantizao ...................................................................................... 38

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    9/55

    Quadro 13 Seleo de cores................................................................................................... 39

    Figura 20 Resultado da seleo de cores ............................................................................... 39

    Quadro 14 Parmetros para deteco e reconhecimento da placa ......................................... 40

    Quadro 15 Deteco da placa ................................................................................................ 41

    Figura 21 Placa detectada ...................................................................................................... 42

    Quadro 16 Reconhecimento da placa .................................................................................... 42

    Figura 22 Placa reconhecida .................................................................................................. 43

    Figura 23 Tela do prottipo em funcionamento .................................................................... 43

    Figura 24 Ferramenta easyNeurons ....................................................................................... 44

    Figura 25 Tela principal da ferramenta easyNeurons ............................................................ 44

    Figura 26 Tela de entrada de dados para a criao do conjunto de treinamento ................... 45 Figura 27 Tela de entrada de dados para criao da rede neural ........................................... 45

    Figura 28 Estrutura do projeto de rede neural em andamento ............................................... 46

    Figura 29 Tela do diagrama e treinamento da rede neural .................................................... 46

    Figura 30 Tela de parmetros de aprendizado ....................................................................... 47

    Figura 31 Tela do andamento do treinamento da rede neural ............................................... 47

    Figura 32 Tela de teste da rede neural ................................................................................... 48

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    10/55

    LISTA DE SIGLAS

    ADAS Advanced Driver Assistance Systems

    API Application Programming Interface

    BP Back Propagation

    CONTRAN COnselho Nacional de TRNsito

    EA Enterprise Architect

    GM General Motors

    GPS Global Positioning System

    JAI Java Advanced Imaging

    JMF Java Media Framework

    MLP MultiLayer Perceptron

    NHD Non-Homogeneous Detector

    PRF Polcia Rodoviria Federal

    RF Requisito Funcional

    RGB Red , Green , Blue

    RNA Rede Neural Artificial

    RNF Requisito No Funcional

    UML Unified Modeling Language

    LISTA DE SMBOLOS

    - et

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    11/55

    SUMRIO

    1 INTRODUO .................................................................................................................. 121.1 OBJETIVOS DO TRABALHO ........................................................................................ 13

    1.2 ESTRUTURA DO TRABALHO ...................................................................................... 13 2 FUNDAMENTAO TERICA .................................................................................... 142.1 SISTEMAS DE APOIO AO MOTORISTA ..................................................................... 14

    2.2 VISO COMPUTACIONAL ........................................................................................... 17

    2.2.1 Deteco e reconhecimento de placas de trnsito ........................................................... 18

    2.2.2 Quantizao de cores....................................................................................................... 20 2.2.3 Transformada circular de Hough .................................................................................... 20

    2.3 REDE NEURAL ARTIFICIAL ........................................................................................ 22

    2.3.1 Definio ......................................................................................................................... 23

    2.3.2 Modelo de rede neural MLP ........................................................................................... 23

    2.3.3 Algoritmo de aprendizado BP ......................................................................................... 25

    2.4 TECNOLOGIAS UTILIZADAS ...................................................................................... 26

    2.5

    TRABALHOS CORRELATOS ........................................................................................ 28

    2.5.1 Opel Eye .......................................................................................................................... 28

    2.5.2 Localizao e reconhecimento de placas de sinalizao utilizando um mecanismo deateno visual e redes neurais articiais ......................................................................... 28

    2.5.3 Sistema ptico para identificao de veculos em estradas ............................................. 29

    2.5.4 Ferramenta de deteco da regio da placa de veculos .................................................. 29 3 DESENVOLVIMENTO DO PROTTIPO .................................................................... 313.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO ....................... 31

    3.2 ESPECIFICAO ............................................................................................................ 31

    3.2.1 Diagrama de casos de uso ............................................................................................... 31

    3.2.1.1 Configurar a fonte de imagens ...................................................................................... 32

    3.2.1.2 Aplicar filtros nas imagens ........................................................................................... 32

    3.2.1.3 Treinar a rede neural ..................................................................................................... 33

    3.2.1.4 Reconhecer a placa ....................................................................................................... 33

    3.2.2 Diagrama de classes ........................................................................................................ 34

    3.2.2.1 ClasseVisualAutonomy ......................................................................................... 35

    3.2.2.2 ClasseColorEffect ................................................................................................. 35

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    12/55

    3.2.2.3 ClasseSignCodec ..................................................................................................... 35

    3.2.3 Diagrama de seqncia ................................................................................................... 35

    3.3 IMPLEMENTAO ........................................................................................................ 36

    3.3.1 Tcnicas e ferramentas utilizadas.................................................................................... 36

    3.3.1.1 Instanciao de classes do tipocodec e effect .............................................................. 37

    3.3.1.2 Pr ajuste das cores do fluxo de imagens ..................................................................... 37

    3.3.1.3 Quantizao uniforme de cores .................................................................................... 38

    3.3.1.4 Seleo de cores ............................................................................................................ 39

    3.3.1.5 Deteco da placa ......................................................................................................... 39

    3.3.1.6 Reconhecimento da placa ............................................................................................. 42

    3.3.2 Operacionalidade da implementao .............................................................................. 43

    3.3.2.1 Funcionamento do prottipo ......................................................................................... 43

    3.3.2.2 Treinando uma rede neural ........................................................................................... 43

    3.4 RESULTADOS E DISCUSSO ...................................................................................... 48 4 CONCLUSES .................................................................................................................. 504.1 EXTENSES .................................................................................................................... 51

    REFERNCIAS BIBLIOGRFICAS ................................................................................. 52

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    13/55

    12

    1 INTRODUO

    Sistemas de assistncia navegao automobilstica tm recebido cada vez mais aateno de empresas e instituies. Segundo Centro de Informaes do Galileo (2005, p. 2),espera-se que metade dos veculos operando na Europa tenha, at 2020, um sistema avanadode assistncia ao motorista.

    At 2010 haver mais de 670 milhes de automveis, 33 milhes de nibus ecaminhes e 200 milhes de veculos comerciais leves no mundo. Receptores denavegao por satlite so hoje normalmente instalados em novos automveis comouma ferramenta essencial no fornecimento de novos servios para pessoas emmovimento: pagamento eletrnico, informao do trnsito em tempo real, chamadas

    de emergncia, guia de rotas, gerenciamento de frotas e sistemas avanados deassistncia ao motorista. (CENTRO DE INFORMAES DO GALILEO, 2005,p. 1).

    Cunha, Jacques e Cybis (2006, p. 11) afirmam que a sinalizao vertical apresentadaem trs itens, presena de placas indicativas de velocidade mxima, presena de placas desinalizao de trnsito e legibilidade das placas de trnsito, revelaram no exercerinfluncia na velocidade praticada pelos motoristas entrevistados em sua pesquisa. SegundoCunha, Jacques e Cybis (2006, p. 12), dentre as caractersticas que mais fortemente

    influenciam os motoristas entrevistados em sua pesquisa a reduzir a velocidade dos seusveculos esto: irregularidades no pavimento; cruzamento com outras vias; presena decurvas; presena de pontos de parada de nibus e fiscalizao eletrnica na via.

    Alguns sistemas de assistncia ao motorista analisam o ambiente em que haver alocomoo do veculo atravs da aquisio e processamento de imagens a fim de auxiliar ouautomatizar a navegao do veculo. Dependendo do tipo de informao que se espera extrairda imagem, tais como placas de sinalizao, tcnicas diferentes podem ser aplicadas.Analisando aspectos das imagens tais como iluminao, cor e forma, pode-se detectar ereconhecer placas de trnsito.

    Neste trabalho prope-se desenvolver uma ferramenta de deteco e reconhecimentode placas de trnsito, que fornea instrues em tempo real para sistemas de apoio aomotorista.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    14/55

    13

    1.1 OBJETIVOS DO TRABALHO

    O objetivo deste trabalho desenvolver uma ferramenta que detecte e reconhea placasde trnsito em uma imagem.

    Os objetivos especficos do trabalho so:a) disponibilizar um mdulo de anlise de imagem de via de trnsito em busca de

    placas de trnsito;b) disponibilizar um mdulo de destaque e identificao de placas de trnsito

    detectadas.

    1.2 ESTRUTURA DO TRABALHO

    Este trabalho est estruturado em quatro captulos. O segundo captulo contm afundamentao terica necessria para o entendimento do trabalho. Nele so discutidos

    tpicos relacionados a sistemas de apoio ao motorista, viso computacional, deteco ereconhecimento de placas de trnsito. Tambm sero discutidas as tecnologias Java AdvancedImaging (JAI), Java Media Framework (JMF) e o framework de rede neural Neuroph. Porfim, apresentam-se quatro trabalhos correlatos.

    O terceiro captulo trata do desenvolvimento da ferramenta, onde so explanados osprincipais requisitos do problema trabalhado, a especificao contendo diagramas de caso deuso, classe e seqncia. Tambm so feitos comentrios sobre a implementao abrangendo

    as tcnicas e ferramentas utilizadas, operacionalidade e por fim so comentados os resultadose discusso.O quarto captulo refere-se s concluses do presente trabalho e sugestes para

    trabalhos futuros.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    15/55

    14

    2 FUNDAMENTAO TERICA

    Neste captulo so apresentados os assuntos e tcnicas utilizadas para odesenvolvimento e entendimento deste trabalho. Na seo 2.1 so expostas informaes sobresistemas de apoio ao motorista. Na seo 2.2 so explanados conceitos a respeito de visocomputacional e so destacados aspectos referentes deteco e reconhecimento de placas detrnsito. Na seo 2.3 abordado a rede neural artificial utilizada. Na seo 2.4 sosintetizadas as tecnologias utilizadas. Por fim, na seo 2.5, so descritos trabalhos correlatos.

    2.1 SISTEMAS DE APOIO AO MOTORISTA

    Segundo Centurion (2009), atravs de estatsticas da Polcia Rodoviria Federal (PRF),quase 30% dos acidentes nas estradas ocorrem entre 17h e 20h, perodo de transio entre diae noite. Centurion (2009) afirma que algumas das razes so: a dificuldade natural do ser

    humano para enxergar em situaes de pouca luz, iluminao pblica deficiente e odesrespeito s leis de trnsito. Em condies de pouca luminosidade, a capacidade deenxergar reduzida em at 30%. [...] A perda de noo de distncia e profundidade est entreos riscos para os condutores de veculos. (CENTURION, 2009).

    O desenvolvimento de sistemas de apoio ao motorista, para auxiliar o condutor einform-lo sobre as condies da via, pode contribuir significativamente para a diminuio donmero de acidentes. Estes sistemas devem responder em tempo real para serem viveis e

    algumas das principais tecnologias empregadas para garantir este requisito so:posicionamento global, radares,scanners , sensores e a viso computacionalOs Advanced Driver Assistance Systems 1 (ADAS) podem ser divididos de acordo com

    sua funcionalidade em:a) navegao por posicionamento global: utiliza sistema de mapas e rotas

    sincronizadas com informaes geogrficas recebidas doGlobal PositioningSystem (GPS) em tempo real, fornecendo informaes diversas relacionadas com otrajeto entre origem e destino selecionados pelo motorista;

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    16/55

    15

    b) assistncia para estacionamento do veculo: utiliza sensores ultra-snicos e/ouimagens com linhas de referncia sobrepostas no painel, para indicar aproximidade de obstculos ao condutor, conforme a Figura 1. Sistemas atuais

    controlam ativamente o volante, restando ao motorista controlar o avano doveculo;

    Fonte: Jung et al. (2005, p. 1370).Figura 1 Assistncia para estacionamento do veculo - ADAS

    c) iluminao por faris adaptativos: utilizam sensores para regular a intensidade dailuminao dos faris de acordo com as condies externas de luminosidade eclima, e a direo dos faris acompanhando as curvas e intensificando ailuminao delas;

    d) controle de velocidade adaptativo: podem ser diversas combinaes de tecnologiascomo (i) utilizando um sistema de deteco e reconhecimento de placas de trnsitopara identificar placas de limite de velocidade; (ii) utilizando comunicao comsistemas de bordo de outros veculos nas proximidades para obteno deinformaes de GPS e velocidade e, (iii) utilizando informaes de GPS paradetectar proximidade de curvas, cruzamentos ou outras caractersticas de risco naaproximao do veculo;

    e) deteco de coliso: podem utilizar viso computacional, radares ou sensores paradetectar pedestres e outros objetos no caminho ou em ponto cego, acionando osfreios em caso de coliso eminente;

    1 o termo genrico em ingls, que significa Sistemas Avanados de Assistncia ao Motorista, mais comumenteutilizado que equivale ao termo genrico em portugus: sistemas de apoio ao motorista.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    17/55

    16

    f) viso noturna: utilizam sistema de viso infravermelha para destacar pedestres eobstculos na escurido onde a iluminao dos faris do veculo no suficiente,conforme a Figura 2. A viso noturna pode ser complementada com a viso de

    calor, destacando ainda mais pedestres e animais;

    Fonte: Ulf (2010).Figura 2 Viso noturna - ADAS

    g) deteco de sonolncia do condutor: utilizam algoritmos de viso computacionalespecializados em analisar o rosto do motorista a fim de detectar a sonolncia,percebida pelo tempo em que as plpebras permanecem fechadas alm do normal;

    h) deteco de sada de pista: podem utilizar viso computacional ou sensores paradetectarem as bordas da pista e alertar sobre uma sada de pista no sinalizada pelomotorista atravs do acionamento do pisca-seta. Um sistema de deteco ereconhecimento de placas de trnsito para identificar placas de proibio deultrapassagem pode complementar o sistema de apoio ao motorista e avisar sobreuma mudana de pista ilegal. A Figura 3 ilustra a deteco de sada de pista.

    Fonte: Kempf (2008).Figura 3 Deteco de sada de pista - ADAS

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    18/55

    17

    2.2 VISO COMPUTACIONAL

    Wangenheim (1998) define viso computacional como o conjunto de mtodos etcnicas atravs dos quais sistemas computacionais podem ser capazes de interpretar imagens,ou seja, capazes de transformar um conjunto de dados digitais representando uma imagem emuma estrutura de dados descrevendo a semntica deste conjunto em um contexto qualquer.

    A viso computacional se inicia pela aquisio da imagem, normalmente atravs decmeras. A maioria dos sistemas utiliza viso monocular, ou seja, apenas uma cmera estinstalada, podendo ainda ser monocromtica ou colorida.

    A etapa de pr-processamento encarrega-se de aplicar filtros para melhorar a imagem etransform-la para a etapa seguinte. Alguns exemplos de transformaes:

    a) reduo de nmero de cores, por exemplo, para paleta RGB de trs bits (oitocores);

    b) converso para escala de cinza;c) escala, rotao ou deslocamento de pixels;d) remoo de rudos;

    e) ajuste de brilho ou contraste.Na etapa de segmentao, so extradas informaes das imagens, tais como regies

    que atendem determinadas caractersticas necessrias para a etapa de reconhecimento.Exemplos de tcnicas de segmentao:

    a) algoritmos genticos;b) limiarizao;c) deteco de bordas;

    d)

    crescimento de regies.Por fim, na etapa de reconhecimento, segundo Kubia (1999), as regies segmentadasso classificadas, segundo suas caractersticas, atravs de uma das abordagens bsicas:estatstica, estrutural ou neural.

    As principais aplicaes da viso computacional em ADAS so: deteco de sada depista, deteco de obstculos, navegao visual e deteco e reconhecimento de placas detrnsito.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    19/55

    18

    2.2.1 Deteco e reconhecimento de placas de trnsito

    As placas de trnsito, em geral, possuem cor, geometria e tamanhos especficos. NoBrasil, a cor predominante das placas de advertncia a amarela e das placas deregulamentao a vermelha, definidas pelo COnselho Nacional de TRNsito (CONTRAN).

    Segundo Jung et al. (2005), a informao cromtica tem papel fundamental nocontexto da deteco das placas de trnsito. Desta maneira assume-se que a maioria dosalgoritmos desenvolvidos em nvel mundial explora fortemente a deteco de placas pela cor,porm h informaes de sistemas que utilizam imagens monocromticas e exploram

    fortemente a deteco de placas pela geometria.Sistemas de apoio ao motorista, com foco na deteco e reconhecimento de placas,

    so compostos por pelo menos uma cmera de vdeo (viso monocular), para a aquisio deimagens, e um sistema desoftware embarcado, ambos integrados ao computador de bordo doveculo. Os locais preferidos para a instalao da cmera so atrs do pra-brisa ou atrs dagrade frontal do veculo.

    Aps a captura da imagem, a mesma pode ser processada porhardware dedicado aoprocessamento de imagens ou por algoritmos implementados nosoftware , a fim de detectar ereconhecer as placas de trnsito que seguem o padro desejado. Segundo Jung et al. (2005),diversos pesquisadores no mundo inteiro vm propondo solues diferentes para a tarefa dedeteco e reconhecimento de placas de trnsito.

    Na soluo proposta por Escalera, Armingol e Mata (2003), para a etapa de deteco,os autores optaram por analisar a cor e o formato, conforme a Figura 4. Segundo Escalera,Armingol e Mata (2003, p. 4), o uso da anlise de cor fundamental porque os sinais detrnsito so projetados pensando em usar cores de modo a refletir a mensagem do sinal. Dessaforma, as cores escolhidas destacam-se do ambiente. Na anlise da cor so identificados matize saturao a fim de encontrarem reas candidatas para a anlise do formato, esta feita atravsde algoritmos genticos. Na etapa de reconhecimento so utilizadas redes neurais paraclassificar as placas previamente detectadas.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    20/55

    19

    Fonte: Escalera, Armingol e Mata (2003, p. 4).Figura 4 Utilizao das informaes de cor por Escalera, Armingol e Mata (2003)

    Piccioli et al. (1996) prope, para a etapa de deteco, que a busca das placas nasimagens seja limitada a uma regio conhecida, tal como o lado direito da via, ou a uma regioonde ocorrerem as cores pr-determinadas, quando estas estiverem presentes na imagem,conforme a Figura 5. Segundo Piccioli et al. (1996, p. 2), as informaes sobre cor fornecem amaneira mais rpida para reduzir a procura de sinais de trnsito a uma pequena regio daimagem, e so usadas sempre que possvel. O uso de cores para segmentao de imagemcorresponde ao modo como os sinais de trnsito so geralmente vistos por motoristas.

    Fonte: Piccioli et al. (1996, p. 3).Figura 5 Utilizao das informaes de cor por Piccioli et al. (1996)

    A deteco das placas candidatas efetuada pela anlise de borda nas regiesselecionadas. Um filtro de Kalman utilizado para rastrear as placas detectadas com afinalidade de tornar a soluo mais robusta. A etapa de reconhecimento realizada pelacomparao das placas detectadas com um banco de dados.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    21/55

    20

    2.2.2 Quantizao de cores

    Segundo Chang (2008, p. 20), quantizao de cores um processo que reduz o nmerode cores distintas em uma imagem, normalmente atravs da minimizao da profundidade dacor.

    Existem diversos algoritmos que procuram preservar a similaridade das cores, entre aimagem original e a imagem quantizada, atravs de clculos em abordagens diversas. AFigura6 demonstra um exemplo de quantizao uniforme, conforme o Quadro 1, onde aFigura6(a) utiliza paleta de 16,7 milhes de cores e a Figura6(b) utiliza paleta quantizada

    (Figura7) para 8 cores, onde cada canal est representado por um bit e 0 ou 1 o mesmoque 0 ou 255.

    Figura 6 Exemplo de quantizao uniforme

    Quadro 1 Algoritmo de quantizao uniforme

    Figura 7 Paleta RGB quantizada

    2.2.3 Transformada circular de Hough

    A transformada de Hough, segundo Pedrini e Schwartz (2008, p. 174-182), umatcnica de segmentao para deteco de um conjunto de pontos em uma imagem digital que

    a b

    000 001 010 011 100 101 110 111

    Para todo pixel da Figura 1(a)Para cada canal de cor RGB

    Se a(x,y) < nento b(x,y) = 0seno b(x,y) = 255

    onde: x e y so as coordenadas do pixeln o nvel de quantizao

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    22/55

    21

    pertenam a uma forma geomtrica parametrizada, assim como linhas, crculos, elipses eoutras. Mesmo em imagens muito ruidosas ou que possuem formas geomtricas com regiesdescontinuas, a transformada de Hough ainda permite detectar estas formas com sucesso.

    Para simplificar o clculo da transformada de Hough, a imagem pode ser convertida decolorida para escala de cinza e ento submetida a uma tcnica de deteco de borda, atravsdo operador de Sobel, que calcula a informao de gradiente, conforme Pedrini e Schwartz(2008, p. 179).

    Conforme Pedrini e Schwartz (2008, p. 174-182), o crculo pode ser formulado emequaes paramtricas tais como no Quadro 2.

    Fonte: adaptado de Pedrini e Schwartz (2008, p. 178-179). Quadro 2 Equaes

    Segundo Pistori, Pistori e Costa (2005, p. 2-5), a transformada circular de Hough podeser calculada tomando a informao do gradiente a partir de uma imagem em preto e branco e

    acumulando cada ponto no nulo a partir da imagem gradiente em todo ponto que est a umdeterminado raio de distncia dele, conforme o Quadro 3.

    Fonte: adaptado de Pistori, Pistori e Costa (2005, p. 2-3).Quadro 3 Algoritmo da transformada circular de Hough

    Dessa forma, todos os pontos de borda que se encontram ao longo do contorno de umcrculo de um determinado raio, conforme a Figura 8, contribuem para a transformao nocentro do crculo, e assim, os picos na imagem transformada correspondem aos centros de

    1) coordenadas cartesianas (x-a) +(y-b) =r2) coordenadas polares x = a + r cos

    y = b + r cos 3) coordenadas polares resolvidas para osparmetros do crculo

    a = x r cos b = y r cos

    4) unio das equaes 2 e 3 b = a tan x tan + y

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    23/55

    22

    caractersticas circulares de um determinado tamanho na imagem original.

    Fonte: adaptado de Pedrini e Schwartz (2008, p. 179). Figura 8 Operao de transformao circular de Hough

    Depois que um pico detectado e um possvel crculo encontrado em um determinado

    ponto, pontos prximos (em uma distncia dentro da metade do raio original) so excludoscomo possveis centros de crculo para evitar a deteco da mesma caracterstica circularrepetidamente. A Figura9 exemplifica essa transformao, onde a Figura9(a) a imagemoriginal contendo um crculo altamente corrompido, a Figura9(b) seu respectivo espao deHough, a Figura9(c) o mesmo espao de Hough da Figura9(b) com ajuste de contraste parafacilitar a visualizao e na Figura9(d) a imagem composta pela adio da imagem originalda Figura9(a) com o espao de Hough da Figura9(c).

    Fonte: Pistori, Pistori e Costa (2005, p. 3).Figura 9 Exemplo de transformao circular de Hough

    2.3 REDE NEURAL ARTIFICIAL

    Esta seo apresenta a definio de Rede Neural Artificial (RNA) e, em particular, omodelo de rede neural MultiLayer Perceptron (MLP) e o algoritmo de aprendizado

    BackPropagation (BP).

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    24/55

    23

    2.3.1 Definio

    Conforme Azevedo, Brasil e Oliveira (2000, p. 3), as redes neurais artificiais tminspirao nos neurnios biolgicos e nos sistemas nervosos. Segundo Abelm, Pacheco eVellasco (1995, p. 109) , redes neurais artificiais so sistemas compostos de diversosneurnios artificiais ligados de maneira apropriada para obter comportamentos complexos,que so determinados pela estrutura das ligaes entre os neurnios e pelos pesos dasconexes. Conforme Haykin (2001, p. 75), estes pesos, por sua vez, so ajustados paraarmazenar o conhecimento desejado atravs de um algoritmo de aprendizado, que consiste de

    um conjunto de regras bem definidas para, segundo Martinelli (1999, p. 13), resolver umproblema de aprendizagem. Os algoritmos diferem entre si basicamente pela forma de ajustedos pesos.

    2.3.2 Modelo de rede neural MLP

    Uma rede neural artificial do tipo MLP constituda por um conjunto de nodos deentrada, os quais formam a camada de entrada na rede, que projeta os sinais de entrada sobreuma segunda camada oculta. Os sinais de sada dessa segunda camada podem ser enviadospara outras camadas ocultas subseqentes e assim sucessivamente at encontrarem a camadade sada, ou enviados diretamente para a camada de sada. Com exceo da camada deentrada, todas as outras camadas so constitudas por neurnios e, portanto, apresentamcapacidade computacional (Figura 10). Uma rede desse tipo alimentada adiante( feedforward ) e pode ser totalmente conectada, quando todos os neurnios de uma camada secomunicam com todos os neurnios da prxima camada ou, parcialmente conectada, ondenem todos os neurnios de uma camada se comunicam com todos os neurnios da prximacamada (HAYKIN, 2001, p. 36).

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    25/55

    24

    Fonte: adaptado de Haykin (2001, p. 186).

    Figura 10 Arquitetura de uma rede neural artificial MLP

    O nmero de ns na camada de entrada da rede determinado pela dimensionalidadedo espao de observao, que responsvel pela gerao dos sinais de entrada. O nmero deneurnios na camada de sada determinado pela dimensionalidade requerida da respostadesejada. Segundo Castro (1994, p. 2), o projeto de uma rede MLP requer a considerao detrs aspectos:

    a) determinar o nmero de camadas ocultas;b) determinar o nmero de neurnios em cada uma das camadas ocultas;c) especificar os pesos sinpticos que interconectam os neurnios nas diferentes

    camadas da rede.O primeiro e o segundo aspecto determinam a complexidade da rede MLP e o terceiro

    envolve a utilizao de paradigmas e algoritmos de aprendizado supervisionado, sendo maiscomumente usado o de retro propagao do erro, ou BP, segundo Haykin (2001, p. 183).

    Estudos desenvolvidos indicam que:a) uma camada intermediria suficiente para aproximar qualquer funo contnua;b) duas camadas intermedirias so suficientes para aproximar qualquer funo

    matemtica.Segundo Haykin (1994, p. 178), uma rede MLP apresenta trs caractersticas distintas:a) incluir uma funo no-linear. Uma comumente usada a sigmoidal, definida pela

    funo sigmide logstica, conforme a Figura 11, cuja no-linearidade suave (ou

    seja, a funo diferencivel em qualquer ponto);b) conter uma ou mais camadas de neurnios ocultos que no so parte da camada de

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    26/55

    25

    entrada ou de sada da rede. Estes neurnios ocultos possibilitam que a redeaprenda tarefas complexas, extraindo progressivamente mais caractersticassignificativas dos padres de entrada;

    c) exibir um alto grau de conectividade, determinado pelas sinapses da rede. Umamudana na conectividade da rede requer uma mudana na populao de conexessinpticas.

    Fonte: adaptado de Haykin (2001, p. 39).Figura 11 Funo sigmide logstica e seu grfico

    2.3.3 Algoritmo de aprendizado BP

    O algoritmo de aprendizado BP segue o paradigma do aprendizado supervisionado(associativo) e baseia-se na heurstica do aprendizado por correo de erro (em que o erro retro-propagado da camada de sada para as camadas intermedirias da rede neural artificial).Este algoritmo pode ser considerado uma generalizao do algoritmo conhecido como regradelta, ou algoritmo dos mnimos quadrados mdios ( Least Mean-Square LMS),desenvolvido por Widrow e Hoff em 1960.

    Segundo Han e Kamber (2000, p. 240), o algoritmo BP aprende iterativamente peloprocessamento de um conjunto de exemplos de treinamento, comparando a resposta da redepara cada exemplo com o rtulo de classe atualmente conhecido. Para cada exemplo detreinamento, os pesos so modificados de forma a minimizar o erro entre a sada da rede e aclasse atual. Estas modificaes so feitas na direo reversa, ou seja, da camada de sadaatravs das camadas ocultas at as primeiras camadas. Da o nome BP, ou retro propagao.

    Conforme Moraes, Nagano e Merlo (2002, p. 4), o erro (ek ) calculado pela subtraodo valor esperado ( yk ) do valor obtido (d k ), conforme a equao do Quadro 4(a) e aatualizao dos pesos flui de maneira inversa, atravs da equao do Quadro 4(b), em que avariao do peso da conexo (w) entre os neurnios ( j) e (k ) o resultado, ( ) uma constante

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    27/55

    26

    positiva que determina a taxa de aprendizagem, (e) a taxa de erro e ( x) o valor de entrada doneurnio subseqente, todos em determinado tempo (n).

    Quadro 4 Algoritmo BP

    2.4 TECNOLOGIAS UTILIZADAS

    Java Advanced Imaging (JAI) uma interface projetada, com base na tecnologia Java2D, segundo Sun Microsystems Inc. (1999a), para manipular e processar imagens de maneirafcil, flexvel, escalvel, extensvel e com alto desempenho. Entre as principaisfuncionalidades, destacam-se:

    a) tiling (ladrilhar): uma imagem divida em recortes retangulares que podem serarmazenadas em memria e processadas separadamente;

    b) execuo retardada: um recorte pode ser processado apenas quando for solicitadopela aplicao;

    c) regies de interesse: partes no retangulares de uma imagem podem serespecificadas como objetos;

    d) manipulao de tipos de arquivos: os principais formatos eletrnicos de arquivospodem ser manipulados atravs decodecs .

    Java Media Framework (JMF) um framework que, de acordo com Sun MicrosystemsInc. (1999b), manipula mdias baseadas em tempo, tais como arquivos ou fluxos de udio evdeo, e suporta alguns dos padres mais comuns do mercado.

    Os fluxos de vdeo podem ser obtidos de placas de captura de vdeo, dewebcams e detransmisses de vdeo por protocolo de rede, entre outras fontes. O JMF permite obterimagens estticas de um vdeo pela definio de um intervalo de tempo ou atravs de outros

    eventos definidos pelo desenvolvedor.O JMF estende-se com a utilizao de plug-ins de processamento. Estes plug-ins

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    28/55

    27

    podem ser desenvolvidos para, por exemplo, aplicar um filtro deteco de borda na imagem.Neuroph um framework ainda em desenvolvimento que, segundo Sevarac et al.

    (2008), utilizando apenas tecnologia Java, possui recursos para criar e treinar redes neurais.

    Podem-se destacar as seguintes caractersticas:a) pequeno nmero de classes essenciais, que podem ser facilmente reutilizadas;b) estrutura e lgica fceis de seguir;c) suporte a reconhecimento de tico de caracteres e imagens;d) Suporte a treze arquiteturas de rede neural.O pacote disponibilizado paradownload contm:a) cdigos fonte em Java;

    b) bibliotecas;c) documentao;d) ferramenta grfica para desenvolvimento de redes neurais, conforme Figura 12;e) exemplos.

    Figura 12 Ferramenta grfica para desenvolvimento de redes neurais

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    29/55

    28

    2.5 TRABALHOS CORRELATOS

    Foram escolhidos quatro trabalhos que envolvem a viso computacional. O primeiro o Opel Eye (KEMPF, 2008), sistema comercial desenvolvido por uma montadora de veculos.O segundo um trabalho denominado Localizao e Reconhecimento de Placas deSinalizao Utilizando um Mecanismo de Ateno Visual e Redes Neurais Articiais(RODRIGUES, 2002). O terceiro o Sistema ptico para Identificao de Veculos emEstradas (SANTOS, 2008). Por fim, a Ferramenta de Deteco da Regio da Placa deVeculos (MEIRELES, 2009).

    2.5.1 Opel Eye

    Segundo Kempf (2008), o Opel Eye um sistema de apoio ao motorista, no qual umadas funes o reconhecimento de placas de trnsito. O sistema estreou como equipamentoopcional no lanamento do Insignia, modelo de carro da montadora General Motors (GM)

    lanado em 2008 na Europa.O sistema conta com uma cmera com lente grande-angular de alta resoluo,

    localizada junto ao espelho retrovisor central, capaz de captar trinta quadros por segundo e auma distncia de cem metros, em condies ideais de iluminao. A deteco focada nasplacas de proibio de ultrapassagem e limite de velocidade.

    Aps o quadro capturado ser analisado por dois processadores de sinais e osoftware criado pela GM, um aviso luminoso exibido na parte central do painel de instrumentos, em

    frente ao volante do veculo.

    2.5.2 Localizao e reconhecimento de placas de sinalizao utilizando um mecanismo deateno visual e redes neurais articiais

    Rodrigues (2002, p. 27-94) afirma que o modelo proposto implementa tcnicas deprocessamento de imagens utilizando mecanismo de ateno visual2 e aprendizado de

    2 Segundo Rodrigues (2002, p. 2), ateno visual o mecanismo responsvel por selecionar as informaes maisrelevantes das imagens de entrada.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    30/55

    29

    mquina. A arquitetura do modelo proposto possui os seguintes processos:a) filtragem linear;b) diferenas centro-vizinhana;

    c) soma dos mapas de caractersticas;d) soma dos mapas de conspicuidade;e) seleo das regies de interesse;f) rede neural para reconhecimento da placa de trnsito.Segundo Rodrigues (2002, p. 88-90), a taxa de acerto na deteco da placa de trnsito

    atingiu 100% e o reconhecimento atingiu a mdia, na anlise absoluta, em torno de 64%.

    2.5.3 Sistema ptico para identificao de veculos em estradas

    Santos (2008, p. 6-34) desenvolveu um sistema, na linguagem C++, para contagem deautomveis em vias de trfego, onde o algoritmo de segmentao adaptativa Non-

    Homogeneous Detector (NHD) analisou a imagem para a definio de elementos emmovimento, para ento detectar as bordas destes elementos e segmentar a imagem.

    Segundo Santos (2008, p. 6-34), a representao da imagem segmentada dada pelaidentificao de padres atravs da anlise das descries de formas, utilizando descritores deFourier. Na etapa de interpretao das representaes foram utilizadas redes neurais.

    2.5.4 Ferramenta de deteco da regio da placa de veculos

    A ferramenta implementada por Medeiros (2009), na linguagem Java, efetua alocalizao de uma placa de veculo e utiliza uma biblioteca de reconhecimento de caracterespara extrair e reconhecer os caracteres da placa na regio localizada. A imagem tratadaatravs dos passos a seguir:

    a) aplicao de filtro de Gauss para eliminao de rudos;b) aplicao de deteco de borda utilizando operador gradiente de Sobel;c) a posio vertical da placa identificada;d) aplicao da operao de fechamento da morfologia matemtica;e) a posio horizontal da placa identificada;f) a regio segmentada submetida biblioteca de reconhecimento de caracteres;

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    31/55

    30

    Aps os passos acima, a ferramenta informa os caracteres reconhecidos pela biblioteca.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    32/55

    31

    3 DESENVOLVIMENTO DO PROTTIPO

    Neste captulo so detalhadas as etapas do desenvolvimento, abordando os principaisrequisitos, a especificao, a implementao e por fim so listados resultados e discusso.

    3.1 REQUISITOS PRINCIPAIS DO PROBLEMA A SER TRABALHADO

    A ferramenta dever:a) capturar uma imagem contendo um cenrio da via frente do veculo (Requisito

    Funcional - RF);b) detectar a regio da imagem onde cada placa de trnsito aparece (RF);c) reconhecer a placa de trnsito de cada regio detectada (RF);d) informar o usurio caso no seja possvel reconhecer a placa (RF);e) informar o usurio para cada placa de trnsito reconhecida (RF);

    f) implementar a ferramenta utilizando a tecnologia Java (Requisito No Funcional -RNF).

    3.2 ESPECIFICAO

    A especificao do sistema apresentado utiliza alguns dos diagramas daUnified Modeling Language (UML) em conjunto com a ferramenta Enterprise Architect (EA) 7.1 paraa elaborao dos diagramas de casos de uso, de classes e de seqncia. Alguns diagramasesto em sua forma resumida para melhor visualizao.

    3.2.1 Diagrama de casos de uso

    A Figura 13 apresenta o diagrama de casos de uso com as principais interaes dousurio com o prottipo.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    33/55

    32

    Figura 13 Diagrama de casos de uso

    3.2.1.1 Configurar a fonte de imagens

    O caso de uso Configurar a fonte de imagens (Quadro 5) descreve apossibilidade do usurio configurar a origem das imagens a ser utilizada. Alm do cenrio

    principal, o caso de uso possui um cenrio de exceo.

    Quadro 5 Caso de usoConfigurar a fonte de imagens

    3.2.1.2 Aplicar filtros nas imagens

    O caso de usoAplicar filtros nas imagens (Quadro 6) descreve a possibilidade

    do usurio definir a utilizao de um ou mais filtros nas imagens a serem utilizadas.

    Configurar a fonte de imagens: permite ao usurio configurar a origemdas imagens a ser utilizada.Pr-condio A fonte de imagens deve estar acessvel ao

    prottipo.Cenrio principal 1) O usurio configura a fonte de imagens.

    2) O usurio executa o prottipo.3) O prottipo exibe as imagens.

    Exceo No passo 1, caso no exista nenhum fontede imagens acessvel, o prottipo apresenta umamensagem de erro que no foi encontrado nenhumaorigem.

    Ps-condio A fonte de imagens configurada com sucesso.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    34/55

    33

    Quadro 6 Caso de usoAplicar filtros nas imagens

    3.2.1.3 Treinar a rede neural

    O caso de usoTreinar a rede neural (Quadro 7) permite que o usurio treine umarede neural, podendo utilizar a ferramenta includa no framework Neuroph.

    Quadro 7 Caso de usoTreinar a rede neural

    3.2.1.4 Reconhecer a placa

    O caso de usoReconhecer a placa (Quadro 8) descreve a possibilidade do usurioreconhecer uma placa utilizando uma rede neural treinada.

    Aplicar filtros nas imagens: permite ao usurio definir um ou maisfiltros na fila de codecs. Pr-condio Uma fonte de imagens estar configurada no prottipo.Cenrio principal 1) O usurio define os filtros de imagens.

    2) O usurio executa o prottipo.3) O prottipo exibe imagens modificadas pelosfiltros.

    Exceo No passo 2, caso no exista nenhum filtrode imagens definido, o prottipo exibir imagens semalterao.

    Ps-condio Os filtros so aplicados com sucesso.

    Treinar a rede neural: permite que o usurio treine uma rede neural.Pr-condio Possuir as imagens de placas, modificadas por

    filtros, para utilizar como conjunto de treinamentoda rede neural.

    Cenrio principal 1) O usurio treina a rede neural.2) O usurio testa a rede neural.3) O usurio salva o arquivo da rede neuraltreinada.

    Exceo No passo 2, caso o teste no satisfaa com taxa deacerto aceitvel, o usurio pode treinar novamente arede, agora com outros parmetros.

    Ps-condio A rede neural treinada com sucesso.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    35/55

    34

    Quadro 8 Caso de usoReconhecer a placa

    3.2.2 Diagrama de classes

    O diagrama de classes apresentado na Figura 14 exibe as principais classes utilizadasno prottipo.

    Figura 14 Diagrama de classes

    Reconhecer a placa: permite que o usurio reconhea uma placa,utilizando uma rede neural treinada.Pr-condio Possuir uma rede neural treinada.Cenrio principal 1) O usurio define as imagens, modificadas por

    filtros, para serem analisadas pela rede neural.

    2) O usurio executa o prottipo.3) O prottipo exibe o resultado doreconhecimento da placa.

    Exceo No passo 1, caso as imagens no estejam modificadasno mesmo padro das imagens utilizadas notreinamento da rede neural, o prottipo noreconhecer a placa.

    Ps-condio A placa reconhecida com sucesso.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    36/55

    35

    3.2.2.1 ClasseVisualAutonomy

    A classeVisualAutonomy responsvel pela interface grfica do prottipo, exibindopara o usurio as imagens processadas pelas classes do tipocodec e effect . Esta classe tambm responsvel pelo mtodo que carrega a fonte de imagens e pelo mtodo que instancia asclasses do tipocodec e effect .

    3.2.2.2 ClasseColorEffect

    Esta classe processa os efeitos que ajustam e filtram as cores das imagens. O primeiroajuste feito a quantizao (ver seo 2.2.2), seguido da seleo das cores desejadas. Esteprocessamento efetuado atravs da converso do frame em umarray de bytes contendo,separadamente, os trs canais de cores RGB. Cadabyte representa um pixel em determinadocanal de cor. Estebyte ento analisado e modificado.

    3.2.2.3 ClasseSignCodec

    Atravs da classeSignCodec realizada a segmentao e reconhecimento da placa detrnsito. A segmentao efetuada atravs da transformada circular de Hough (ver seo2.2.3) e detecta uma possvel placa em determinada posio da imagem, onde ento osegmento recortado e submetido ao reconhecimento, atravs da rede neural, pelo mtodo

    recognizeImage da biblioteca Neuroph.

    3.2.3 Diagrama de seqncia

    O diagrama de seqncia, conforme a Figura 15, apresenta uma viso passo a passo, deforma resumida para uma melhor visualizao, do processo de troca de mensagens entre asclasses.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    37/55

    36

    Figura 15 Diagrama de seqncia

    3.3 IMPLEMENTAO

    A seguir so mostradas as tcnicas e ferramentas utilizadas no desenvolvimento desteprottipo, sero apresentados trechos do cdigo fonte desenvolvido. Tambm demonstrada aoperacionalidade da implementao, atravs de um estudo de caso.

    3.3.1 Tcnicas e ferramentas utilizadas

    Para a implementao da ferramenta foi utilizada a linguagem de programao Java. Oambiente de desenvolvimento escolhido foi o Eclipse IDE. Foi utilizado tambm, as APIsJMF e JAI, e o framework de rede neural para Java Neuroph.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    38/55

    37

    3.3.1.1 Instanciao de classes do tipocodec e effect

    As classes do tipocodec e effect so carregadas para uma fila (corrente), conforme oQuadro 9, onde obuffer de imagens transferido (a transferncia implcita) de umcodec para o prximo, como ilustra a Figura 16.

    Quadro 9 Instanciao decodecs

    Figura 16 Fluxo dobuffer de imagens do prottipo em execuo

    3.3.1.2 Pr ajuste das cores do fluxo de imagens

    O fluxo de imagens recebido pelocodec atravs de umbuffer de frames e entoseparado por canais RGB, com 24 bits (3 canais de 8 bits) de profundidade de cor, comoilustrado no Quadro 10.

    Quadro 10 Recebimento do fluxo de imagens

    A necessidade do pr ajuste das cores deve-se aos valores recebidos em cada canal noestarem representados em um intervalo prtico para a manipulao, como demonstrado naFigura 17.

    Figura 17 Intervalo de valores recebido da cor vermelha

    O pr-ajuste de cores encarrega-se de somar um valor constante aos valores negativosrecebidos, conforme o Quadro 11, resultando em um intervalo mais adequado, conforme a

    0 127 -127 -1

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    39/55

    38

    Figura 18.

    Quadro 11 Pr ajuste de cores

    Figura 18 Intervalo de valores ajustado da cor vermelha

    Destaca-se que o pr ajuste no influencia nas cores apresentadas, sendo assim, quandose visualiza uma imagem antes do pr-ajuste e uma imagem depois do pr-ajuste, no seencontram diferenas.

    3.3.1.3 Quantizao uniforme de cores

    Aps o pr ajuste de cores, efetuada a quantizao (ver seo 2.2.2) da profundidadede cor de cada canal, conforme o Quadro 12, reduzindo de 256 nveis de cor para 2 nveis decor em cada canal.

    Quadro 12 Quantizao uniforme

    O resultado da quantizao apresentado na Figura 19(b) em comparao com aimagem original apresentado na Figura 19(a).

    Figura 19 Resultado da quantizao

    0 255

    a b

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    40/55

    39

    3.3.1.4 Seleo de cores

    Observando o resultado obtido na Figura 19(b), notam-se as cores a seremselecionadas para contemplar a totalidade de detalhes da placa de trnsito. Estas cores(magenta, vermelho e preto) ento so convertidas para a cor branca e as demais para a corpreta, conforme o Quadro 13.

    Quadro 13 Seleo de cores

    O resultado apresentado na Figura 20(b).

    Figura 20 Resultado da seleo de cores

    3.3.1.5 Deteco da placa

    A deteco da placa realizada pelo algoritmo da transformada circular de Hough (verseo 2.2.3) a partir da Figura 20(b), conforme o Quadro 15. O cdigo fonte contido noQuadro 15, desde a linha 113 at a linha 175, foi adaptado do trabalho de Schulze (2003). Arede neural treinada carregada a partir de um arquivonnet , conforme o Quadro 14.

    Os parmetros utilizados na transformada de Hough tambm podem ser vistos noQuadro 14. O raio determinado arbitrariamente em proporo pela rea que a imagem vai

    a b

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    41/55

    40

    ocupar.

    Quadro 14 Parmetros para deteco e reconhecimento da placa

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    42/55

    41

    Quadro 15 Deteco da placa

    O resultado pode ser visto na Figura 21(b), onde desenhado um crculo vermelho ao

    redor da placa detectada.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    43/55

    42

    Figura 21 Placa detectada

    3.3.1.6 Reconhecimento da placa

    O processo de reconhecimento da placa comea analisando se a placa detectada estcontida totalmente dentro da imagem, para ento extrair a regio onde foi detectada a placa.Esta regio redimensionada para o tamanho das imagens que foram utilizadas notreinamento da rede neural e ento submetida ao mtodorecognizeImage que provenientedo framework Neuroph, conforme Quadro 16.

    Quadro 16 Reconhecimento da placa

    O retorno desse mtodo ento tratado para a extrao do valor correspondente a taxade similaridade entre a imagem submetida e a imagem treinada. Se o valor retornadoultrapassar o valor escolhido como aceitvel, desenha-se um retngulo quadradocorrespondendo a regio submetida rede neural, conforme a Figura 22(b). O retorno tratado

    a b

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    44/55

    43

    tambm exibido na Figura 22, no canto superior esquerdo, na cor verde.

    Figura 22 Placa reconhecida

    3.3.2

    Operacionalidade da implementao

    Esta seo tem como objetivo mostrar a operacionalidade da ferramenta em nvel deusurio. Nas prximas sees sero abordadas as principais funcionalidades da ferramenta.

    3.3.2.1 Funcionamento do prottipo

    Ao se iniciar o prottipo, o primeiro dispositivo de captura de vdeo que o prottipodetectar ser carregado automaticamente e aparecer uma tela, conforme a Figura 23, doprottipo j em funcionamento.

    Figura 23 Tela do prottipo em funcionamento

    3.3.2.2 Treinando uma rede neural

    Para o treinamento da rede neural, foi utilizada a ferramenta easyNeurons, presente no

    a b

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    45/55

    44

    framework Neuroph, conforme Figura 24.

    Figura 24 Ferramenta easyNeurons

    Para abrir a ferramenta basta executar o arquivostart.bat . Este arquivo ir carregara ferramenta, desenvolvida em Java, conforme a Figura 25.

    Figura 25 Tela principal da ferramenta easyNeurons

    A tela de treinamento para reconhecimento de imagens, conforme a Figura 26, acessada atravs do menuTools , submenuImage Recognition , conforme a Figura 25.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    46/55

    45

    Figura 26 Tela de entrada de dados para a criao do conjunto de treinamento

    O botoChoose dir , ao lado do campoImage dir , seleciona a pasta onde a imagemda placa, que ser reconhecida pela RNA, est armazenada. O botoChoose dir , ao lado docampo Junk dir , seleciona a pasta onde a imagem da placa, que ser ignorada noreconhecimento, est armazenada. Nos camposWidth e Height so digitados,respectivamente, os valores em pixels , da largura e altura para redimensionamento automticodas imagens presentes nas pastas informadas. Existe ainda a opo de escolher o modo de cordestas imagens.

    Aps a entrada dos dados, acionado o botoCreate Training Set para a criaodo conjunto de treinamento baseado nos dados fornecidos e para prosseguir para a tela decriao da rede neural, conforme Figura 27, clica-se no botoNext .

    Figura 27 Tela de entrada de dados para criao da rede neuralA principal informao inserida na tela da Figura 27, o nmero de neurnios ocultos.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    47/55

    46

    Para inserir mais de uma camada, podem-se digitar os nmeros de neurnios para cadacamada separados com um espao. O botoCreate Neural Network cria a rede neural eabre a tela para incio do treinamento, conforme Figura 29. A Figura 28 mostra os conjuntos

    de treinamento e as redes neurais criadas.

    Figura 28 Estrutura do projeto de rede neural em andamento

    Figura 29 Tela do diagrama e treinamento da rede neural

    A Figura 29 exibe o diagrama da rede neural, com as camadas e quantidade deneurnios em cada camada. A camada de sada, neste caso a camada trs, possui quantidadede neurnios conforme a quantidade de imagens existentes na pasta informada no campoImage dir , conforme a Figura 26. A camada de entrada, ou seja, a camada um possui aquantidade de neurnios de acordo com o tamanho das imagens redimensionadas, em pixels ,

    calculado a partir das informaes inseridas na tela de criao do conjunto de treinamento,conforme Figura 26, multiplicando a largura, altura e quantidade de canais de cor RGB, e

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    48/55

    47

    adicionando mais um neurnio.Para iniciar o treinamento clica-se no botoTrain , que abrir uma nova tela, conforme

    a Figura 30, onde h campos para serem digitados os parmetros de aprendizado.

    Figura 30 Tela de parmetros de aprendizado

    Na tela da Figura 30 tambm h um botoTrain , que ao ser clicado inicia a execuodo treinamento e exibe a tela do treinamento em andamento, conforme a Figura 31(a).Quando o treinamento termina, pode-se fechar a tela, clicando no botoclose , conforme aFigura 31(b).

    Figura 31 Tela do andamento do treinamento da rede neural

    Para efetuar o teste da rede neural treinada, minimiza-se a tela exibida na Figura 29 e

    clica-se na abaTest e seleciona-se uma imagem para o teste, conforme a Figura 32.

    a b

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    49/55

    48

    Figura 32 Tela de teste da rede neural

    Caso os testes sejam satisfatrios, a rede neural treinada gravada atravs do menuFile , submenuSave , conforme a Figura 25.

    3.4 RESULTADOS E DISCUSSO

    A tarefa de reconhecer uma placa de trnsito foi realizada utilizando apenas alinguagem Java no desenvolvimento do prottipo. O prottipo desenvolvido apresentouresultados satisfatrios, dentro de um ambiente controlado e apesar de algumas limitaes,identifica em tempo real uma placa de trnsito.

    A classeVisualAutonomy foi modificada a partir de exemplos disponveis nosite desolues JMF da Sun Microsystems Inc., onde tambm h exemplos de efeitos ecodecs customizados que foram modificados para a criao da classeColorEffect e da classeSignCodec . A classeSignCodec incorpora os mtodos de transformada circular de Hough,reutilizados do trabalho de Schulze (2003) e os mtodos reutilizados do cdigo fonte exemploencontrado nosite de documentao do framework Neuroph.

    O prottipo foi configurado para obter as imagens atravs dostream de umawebcam ,utilizando a configurao padro da ferramenta JMStudio, includa no framework JMF. Aconfigurao utilizada de 320x240 pixels para o tamanho da imagem e 15 frames porsegundo para a taxa de transferncia.

    As imagens obtidas possuem muito rudo, caracterizado por pixels aleatrios com cor

    incorreta, exigindo a manipulao da imagem, de maneira a minimizar ou ignorar o rudo. Amanipulao do rudo impacta no desempenho do prottipo, porm a ausncia da manipulao

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    50/55

    49

    impacta no reconhecimento da placa pela rede neural.A quantizao das cores permite que o operador de Sobel de deteco de borda,

    incorporado aos mtodos relacionados transformada de Hough presentes na classeSignCodec , gere uma quantidade menor de bordas detectadas e conseqentemente reduza aocorrncia de falso-positivos de deteco de placas. A quantizao pode ser regulada, atravsde parmetro, para compensar o brilho do ambiente.

    Uma caracterstica no encontrada ao explorar a API JMF, a capacidade de obter etambm definir o controle de auto-brilho de umawebcam , o que favoreceria a quantizao dascaractersticas de cor das imagens, j que esse processo pode ser prejudicado pelo brilho. Asimagens escuras obtiveram melhores resultados no processo de quantizao.

    A rede neural foi treinada utilizando um conjunto de parmetros de treinamentoestimados. Ento a rede neural foi testada, primeiramente, dentro da ferramenta easyNeurons,que acompanha o framework Neuroph, utilizando uma imagem de placa de trnsito. Estaferramenta possui a limitao de no permitir, por exemplo, que mltiplas placas de proibiode ultrapassagem, com caractersticas ligeiramente diferentes, resultem em um nico neurniode sada para esse tipo de placa. Cada imagem, utilizada no conjunto de treinamento, ir gerarum neurnio correspondente na camada de sada.

    O consumo de memria da ferramenta easyNeurons afeta o prprio funcionamento.Foi necessrio aumentar a quantidade de memria alocada pelo Java para 1 gigabyte, a fim degravar corretamente o arquivo da rede neural criada. Com a configurao padro de memriaa ferramenta tambm funciona, porm ocorre erro durante a gravao e o arquivo gravadocorrompido. O corrompimento do arquivo foi detectado pela ocorrncia de erro ao tentarcarregar o arquivo dentro do prottipo.

    Referente aos trabalhos correlatos apresentados, o trabalho de Rodrigues (2002)

    demonstra uma abordagem possvel para a deteco das placas pelo uso do mecanismo deateno visual, atravs dos processos de ltragem linear, diferenas centro-vizinhana, somados mapas de caractersticas e dos mapas de conspicuidade e a seleo das regies deinteresse.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    51/55

    50

    4 CONCLUSES

    Hoje j so comumente encontradas solues comerciais de sistemas de apoio aomotorista, algumas j integrando veculos acessveis a populao em geral, tais como sistemasque auxiliam o motorista a estacionar o veculo, deixando de ser um item exclusivo demodelos luxuosos.

    A evoluo das tcnicas e algoritmos, alm da evoluo e reduo de custo dohardware utilizado em sistemas de viso computacional, vem favorecendo o aumento donmero de projetos desenvolvidos em instituies de ensino, mostrando o interesse que este

    assunto desperta.Pode-se notar pelas solues propostas por Piccioli et al. (1996) e Escalera, Armingol e

    Mata (2003) e pelo levantamento efetuado por Jung et al. (2005), que tcnicas diferentespodem ser combinadas com o objetivo de detectar e reconhecer placas de trnsito. Cada umadas tcnicas apresenta vantagens e desvantagens, o que motiva a busca por melhores solues.Basicamente, a anlise de cores e formas e redes neurais tem se mostrado como os mtodosempregados com mais sucesso em solues ao redor do mundo.

    As tecnologias JAI, JMF e Neuroph vm favorecer o requisito de desenvolver aferramenta somente utilizando a linguagem Java, possibilitando traduzir algoritmos de visocomputacional de outros sistemas escritos em linguagem diferente de Java.

    O uso da ferramenta Enterprise Architect 7.1 para a elaborao das especificaes dotrabalho se mostrou gil e fcil de usar, atendendo todas as necessidades do projeto, noapresentando problemas durante sua execuo.

    O presente trabalho possibilitou desenvolver uma ferramenta, capaz de detectar e

    reconhecer placas de trnsito em tempo real, de baixo custo e multiplataforma. Porm ainda necessrio demandar mais tempo em testes e tentativas com outros mtodos de visocomputacional, a fim de minimizar problemas com a qualidade das imagens processadas peloprottipo, como tambm refinar o cdigo fonte da implementao.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    52/55

    51

    4.1 EXTENSES

    Como sugesto para futuros trabalhos, sugere-se implementar um modo de controlar obrilho de uma imagem, ou utilizar um algoritmo que no sofra influncia do brilho.

    Sugere-se tambm a explorao de outras APIs de manipulao de imagens.Outra melhoria possvel o desenvolvimento de uma ferramenta de treino de rede

    neural, utilizando a API Neuroph, especializada para as necessidades de reconhecimento deplacas, onde as imagens seriam separadas em conjuntos e agrupadas por categorias e entoutilizadas no treinamento da rede, sendo que a placa seria identificada pela categoria que

    pertence.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    53/55

    52

    REFERNCIAS BIBLIOGRFICAS

    ABELM, Antnio J. G.; PACHECO, Marco A. C.; VELLASCO, Marley M. B. R.Modelagem de redes neurais artificiais para previso de sries temporais. In: SIMPSIOBRASILEIRO DE REDES NEURAIS, 2., 1995, So Carlos.Anais...So Carlos:Universidade Federal de So Carlos, 1995. p. 107-112.

    AZEVEDO, Fernando M.; BRASIL, Lourdes M.; OLIVEIRA, Roberto C. L.Redes neuraiscom aplicaes em controle e em sistemas especialistas. Florianpolis: Visualbooks, 2000.

    CASTRO, Fernando C.; CASTRO, Maria.Redes neurais artificiais. Porto Alegre, 2003.Disponvel em: . Acesso em: 22maio 2010.

    CENTRO DE INFORMAES DO GALILEO.Aplicaes GALILEO rodovirio. SoJos dos Campos, [2005?]. Disponvel em:. Acessoem: 11 mar. 2010.

    CENTURION, Virgilio.Minha vida: a maioria dos acidentes ocorrem no lusco-fusco. [S.l.],2009. Disponvel em:. Acesso em: 30 mar. 2010.

    CHANG, Yuchou et al. A robust color image quantization algorithm based on knowledgereuse of k-means clustering ensemble.Journal of Multimedia, [S.l.], v. 3, n. 2, p. 20-27,June 2008. Disponvel em:.Acesso em: 29 maio 2010.

    CUNHA, Klita R. M. G.; JACQUES, Maria A. P.; CYBIS, Helena B. B. Efeito da percepodos motoristas sobre as caractersticas virio-ambientais nas velocidades praticadas em vias

    urbanas. In: CONGRESO PANAMERICANO INGENIERIA TRNSITO YTRANSPORTE, 14., 2006, Las Palmas de Gran Canaria.Anais eletrnicos...Las Palmas deGran Canaria: [s.n.], 2006. No paginado. Disponvel em:. Acesso em:11 mar. 2010.

    ESCALERA, Arturo de la; ARMINGOL, Jos M.; MATA, Mario. Trafc sign recognitionand analysis for intelligent vehicles. Image and Vision Computing, Amsterdam, v. 21, n. 3,p. 247-258, Mar. 2003. Disponvel em:.Acesso em: 31 maio 2010.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    54/55

    53

    HAN, Jiawei; KAMBER, Micheline.Data mining. Concepts and techniques. So Francisco:Morgan Kaufmann Publishers, 2000.

    HAYKIN, Simon.Neural networks. A comprehensive Foundation. New Jersey: PrenticeHall, 1994.

    ______.Redes neurais: princpios e prtica. Porto Alegre: Bookman, 2001.

    JUNG, Cludio R. et al. Computao embarcada: projeto e implementao de veculosautnomos inteligentes. In: CONGRESSO DA SOCIEDADE BRASILEIRA DECOMPUTAO, 25., 2005, So Leopoldo.Anais eletrnicos...So Leopoldo: UNISINOS,2005. p. 1385-1395. Disponvel em:.Acesso em: 18 mar. 2010.

    KEMPF, Jean-Philippe.Opel cars can see: opel eye camera reads signs, improves safety.Rsselsheim, 2008. Disponvel em:. Acesso em: 01 abr. 2010.

    KUBIA, Stefano.Processamento de imagens de documentos - parte V. Curitiba, [1999?].Disponvel em:. Acessoem: 29 maio 2010.

    MARTINELLI, Edmar.Extrao de conhecimento de redes neurais artificiais. 1999. 113f. Dissertao (Mestrado em Cincias da Computao) Curso de Ps-graduao em Cinciasda Computao, Universidade Federal de So Paulo, So Paulo.

    MEDEIROS, Jonathan D.Ferramenta de deteco da regio da placa de veculos. 2009.66 f. Trabalho de Concluso de Curso (Bacharelado em Cincia da Computao) Centro deCincias Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.

    MORAES, Marcelo B. C.; NAGANO, Marcelo S.; MERLO, Edgard M. Previso defaturamento no varejo brasileiro utilizando-se de um modelo de redes neurais artificiais. In:ENCONTRO NACIONAL DE ENGENAHRIA DE PRODUO, 22., 2002, Curitiba.Anaiseletrnicos...Rio de Janeiro: ABEPRO, 2002. No paginado. Disponvel em:. Acesso em: 29 maio2010.

    PEDRINI, Hlio; SCHWARTZ, William R.Anlise de imagens digitais: princpios,algoritmos e aplicaes. So Paulo: Thomson Learning, 2008.

    PICCIOLI, Giulia et al. Robust method for road sign detection and recognition,Image and

    Vision Computing, Amsterdam, v. 14, n. 3, p. 209-223, Apr. 1996. Disponvel em:. Acesso em: 31 maio 2010.

  • 7/23/2019 tcc Visual autonomy prottipo para reconhecimento de placas de trnsito

    55/55

    54

    PISTORI, Hemerson; PISTORI, Jeferson; COSTA, Eduardo R. Hough-circles: um mdulo dedeteco de circunferncias para o ImageJ. In: WORKSHOP SOFTWARE LIVRE, 6., 2005,Porto Alegre.Anais eletrnicos...Porto Alegre: UCDB, 2002. No paginado. Disponvelem: . Acesso em: 29 maio

    2010.

    RODRIGUES, Fabrcio A.Localizao e reconhecimento de placas de sinalizaoutilizando um mecanismo de ateno visual e redes neurais artificiais. 2002. 108 f.Dissertao (Mestrado em Informtica) Curso de Ps-Graduao em Informtica,Universidade Federal de Campina Grande, Campina Grande. Disponvel em:. Acesso em: 31 mar. 2010.

    SANTOS, Daniel.Sistema ptico para identificao de veculos em estradas. 2008. 65 f.

    Trabalho de Concluso de Curso (Bacharelado em Cincia da Computao) Centro deCincias Exatas e Naturais, Universidade Regional de Blumenau, Blumenau.

    SCHULZE, Mark A.Circular Hough transform. [S.l.], 2003. Disponvel em:. Acesso em: 29 maio 2010.

    SEVARAC, Zoran et al.Java neural network framework Neuroph. [S.l.], 2008. Disponvelem: . Acesso em: 29 maio 2010.

    SUN MICROSYSTEMS INC.Programming in Java advanced imaging. California, 1999a.

    Disponvel em: . Acesso em: 22 mar. 2010.

    ______.Java media framework API guide. California, 1999b. Disponvel em:.Acesso em: 22 mar. 2010.

    ULF, Jon.Future car tech. Utah, 2010. Disponvel em: .Acesso em: 07 jul. 2010.

    WANGENHEIM, Aldo von.Viso computacional: seminrio introduo visocomputacional. Florianpolis, [1998?]. Disponvel em: .Acesso em: 11 mar. 2010.