INSPEÇÃO INDUSTRIAL ATRAVÉS DA TECNOLOGIA DE VISÃO COMPUTACIONAL (1)

download INSPEÇÃO INDUSTRIAL ATRAVÉS DA TECNOLOGIA DE VISÃO COMPUTACIONAL (1)

of 77

Transcript of INSPEÇÃO INDUSTRIAL ATRAVÉS DA TECNOLOGIA DE VISÃO COMPUTACIONAL (1)

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    1/77

    UNIVERSIDADE REGIONAL DE BLUMENAU

    CENTRO DE CINCIAS EXATAS E NATURAIS

    CURSO DE CINCIAS DA COMPUTAO BACHARELADO

    INSPEO INDUSTRIAL ATRAVS DE VISO

    COMPUTACIONAL

    MAURCIO EDGAR STIVANELLO

    BLUMENAU

    20042004/2-38

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    2/77

    MAURCIO EDGAR STIVANELLO

    INSPEO INDUSTRIAL ATRAVS DE VISO

    COMPUTACIONAL

    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. Paulo Csar Rodacki Gomes - Orientador

    BLUMENAU20042004/2-38

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    3/77

    INSPEO INDUSTRIAL ATRAVS DE VISO

    COMPUTACIONAL

    Por

    MAURCIO EDGAR STIVANELLO

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

    ______________________________________________________Presidente: Prof. Paulo Csar Rodacki Gomes, Dr. Orientador, FURB

    ______________________________________________________Membro: Prof. Marcel Hugo, FURB

    ______________________________________________________Membro: Prof. Antnio Carlos Tavares, FURB

    Blumenau, 17 de novembro de 2004

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    4/77

    Dedico este trabalho a minha famlia, pelo

    apoio recebido durante os anos da graduao.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    5/77

    No basta conquistar a sabedoria, precisous-la.

    Ccero

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    6/77

    AGRADECIMENTOS

    minha noiva Leila, pelo carinho e incentivo.

    Aos meus amigos, pela compreenso quanto s horas ausente.

    Ao professor Paulo Csar Rodacki Gomes, pela orientao e apoio no

    desenvolvimento deste trabalho, assim como em outros projetos.

    Ao professor Cludio Loesch, pelas dvidas esclarecidas.

    Aos colegas e professores do curso de Cincias da computao pela troca deconhecimentos e experincias.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    7/77

    RESUMO

    Este trabalho apresenta um prottipo de inspeo automatizada, utilizando visocomputacional. A viso computacional tem assumido um importante papel na indstria,

    auxiliando o homem em tarefas repetitivas e insalubres, como a inspeo de produtos. Ossistemas de viso computacional fundamentam-se em diferentes reas da cincia dacomputao. No desenvolvimento do prottipo so utilizados, dentre outras tcnicas deprocessamento de imagens, os descritores de Fourier, importante abordagem para a descriode formas a partir da borda. Para a interpretao das representaes dos produtos, foiimplementada uma rede neural artificial do tipo Perceptron Multicamadas, sendo esta muitoempregada no reconhecimento de padres. A combinao destas tcnicas possibilitou odesenvolvimento de um prottipo de inspeo automatizada independente de produto.

    Palavras chaves: Segmentao; Descritores de Fourier; Redes Neurais Artificiais; PerceptronMulticamadas; Viso Computacional; Inspeo Automatizada.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    8/77

    ABSTRACT

    This work presents a software prototype of automatized inspection using machine vision. Themachine vision has assumed an important role in the industry, assisting the man in repetitive

    and unhealthy tasks, as the inspection of products. The systems for machine vision are basedon different areas of the computer science. The software prototype uses Fourier descriptors inorder to describe the edge of products shapes, amonget other image processing techniquessuch as segmentation. For the interpretation of the representations of the products, a neuralnetwork of the type Multilayer Perceptron was implement. The combination of thesetechniques made possible the development of a software prototype of automatized inspectionindependent of product.

    Key-Words: Segmentation; Fourier Descriptors; Artificial Neural Networks; MultilayerPerceptron; Machine Vision.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    9/77

    LISTA DE FIGURAS

    Figura 1 Exemplo de inspeo manual..................................................................................12Figura 2 Exemplo de defeitos em produtos ...........................................................................13

    Figura 3 Exemplo sistema de inspeo automatizada ...........................................................14Figura 4 Exemplo de arquitetura de sistema de inspeo automatizada ...............................16Figura 5 Exemplo de cmera, lente e componente de iluminao ........................................17Figura 6 Exemplo de placa de aquisio ...............................................................................18Figura 7 Exemplo software de inspeo................................................................................19Figura 8 Exemplo sistema de descarte ..................................................................................19Figura 9 Representao de imagem digital............................................................................20Figura 10 Aplicao do filtro de realce .................................................................................22Figura 11 Segmentao de imagem atravs de limiar ...........................................................24Figura 12 Aplicao do operador Sobel sobre imagem.........................................................24Figura 13 a) Posies de uma imagem 3 X 3; b) Mscara para x; c) Mscara para y...........25

    Figura 14 Cdigo de cadeia ...................................................................................................26Figura 15 Cdigo de cadeia ...................................................................................................27Figura 16 Original e reconstrues a partir de M coeficientes..............................................29Figura 17 O Neurnio Biolgico...........................................................................................30Figura 18 Modelo de Neurnio Artificial..............................................................................32Figura 19 Grficos de funes de transferncia ....................................................................33Figura 20 Camadas da rede neural ........................................................................................33Figura 21 Caso de uso Configurar inspeo..........................................................................41Figura 22 Caso de uso Inspecionar produto ..........................................................................41Figura 23 Diagrama de classes de processamento e anlise de imagem...............................42Figura 24 Sub-quadro de analise ...........................................................................................45Figura 25 Diagrama de classes da rede neural ......................................................................49Figura 26 Diagrama de seqncia Configurar Inspeo........................................................54Figura 27 Diagrama de seqncia do treinamento da rede neural.........................................56Figura 28 Diagrama de seqncia da inspeo......................................................................58Figura 29 Tela principal do prottipo....................................................................................63Figura 30 Tela de definio de subquadros ...........................................................................64Figura 31 Tela de definio de subquadros ...........................................................................64Figura 32 Cmera e painel de iluminao .............................................................................66Figura 33 Imagens capturadas com diferente iluminao .....................................................66Figura 34 Amostra de produto aprovado...............................................................................67

    Figura 35 Amostras de produtos reprovados.........................................................................68Figura 36 Amostra de produto aprovado...............................................................................70Figura 37 Amostras de produtos reprovados.........................................................................71

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    10/77

    LISTA DE QUADROS

    Quadro 1 Coordenadas dos vizinhos-de-4 dep .....................................................................21Quadro 2 Coordenadas dos vizinhos-de-8 dep .....................................................................21

    Quadro 3 Equao da derivada pelas mscaras de Sobel ......................................................25Quadro 4 Formato de nmero complexo...............................................................................27Quadro 5 Transformada discreta de Fourier..........................................................................27Quadro 6 Transformada inversa de Fourier...........................................................................28Quadro 7 Transformada inversa de Fourier...........................................................................29Quadro 8 Regra Delta ............................................................................................................36Quadro 9 Equaesfeedforward...........................................................................................38Quadro 10 Algoritmo de retropropagao.............................................................................38Quadro 11 Equao da derivada da funo logstica.............................................................39Quadro 12 Equao da funo de transferncia ....................................................................39Quadro 13 Mtodo utilizando acesso RowPointer()..............................................................62

    LISTA DE TABELAS

    Tabela 1 Aplicaes bsicas para modelos de rede neural artificial .....................................37

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    11/77

    SUMRIO

    1 INTRODUO..................................................................................................................12

    1.1 OBJETIVOS DO TRABALHO ........................................................................................14

    1.2 ESTRUTURA DO TRABALHO......................................................................................15

    2 FUNDAMENTAO TERICA ....................................................................................16

    2.1 SISTEMAS DE INSPEO AUTOMATIZADA ...........................................................16

    2.2 PROCESSAMENTO DE IMAGENS...............................................................................19

    2.2.1 REPRESENTAO DE IMAGENS DIGITAIS MONOCROMTICAS....................20

    2.2.2 RELACIONAMENTO BSICO ENTRE PIXELS........................................................20

    2.2.2.1 VIZINHANA DE UM PIXEL ...................................................................................21

    2.2.2.2 CONECTIVIDADE......................................................................................................21

    2.2.2.3 ROTULAO DE COMPONENTES CONEXOS.....................................................21

    2.2.3 PR-PROCESSAMENTO..............................................................................................22

    2.2.4 SEGMENTAO DE IMAGENS.................................................................................23

    2.2.4.1 LIMIARIZAO.........................................................................................................23

    2.2.4.2 DETECO DE BORDAS .........................................................................................24

    2.2.5 DESCRITORES DE IMAGENS ....................................................................................25

    2.2.5.1 CDIGO DE CADEIA ................................................................................................26

    2.2.5.2 DESCRITORES DE FOURIER...................................................................................26

    2.2.6 INTERPRETAO DE IMAGENS ..............................................................................29

    2.3 REDES NEURAIS ............................................................................................................30

    2.3.1 O CREBRO E A REDE NEURAL BIOLGICA .......................................................30

    2.3.2 REDE NEURAL ARTIFICIAL......................................................................................31

    2.3.2.1 ESTRUTURA DA REDE NEURAL ...........................................................................31

    2.3.2.1.1 O NEURNIO ARTIFICIAL..................................................................................312.3.2.1.2 REDE DE NEURNIOS.........................................................................................33

    2.3.2.2 FASES DO PROJETO DE REDE NEURAL ..............................................................34

    2.3.2.2.1 DEFINIO DA REDE NEURAL.........................................................................35

    2.3.2.2.2 TREINAMENTO DA REDE NEURAL .................................................................35

    2.3.2.2.3 UTILIZAO DA REDE NEURAL......................................................................36

    2.3.2.3 MODELO DE REDES NEURAIS...............................................................................36

    2.3.2.4 REDES PERCEPTRON MULTICAMADAS .............................................................373 DESENVOLVIMENTO DO PROTTIPO....................................................................40

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    12/77

    3.1 ESPECIFICAO DE REQUISITOS..............................................................................40

    3.2 ESPECIFICAO ............................................................................................................40

    3.2.1 DIAGRAMAS DE CASO DE USO ...............................................................................40

    3.2.2 DIAGRAMAS DE CLASSE ..........................................................................................41

    3.2.2.1 CLASSES DE PROCESSAMENTO DE IMAGEM ...................................................42

    3.2.2.1.1 CLASSE CIMAGEMBYTE E O PROCESSAMENTO DE IMAGEM .................43

    3.2.2.1.2 CLASSE CQUADRO E A ANLISE GERAL ......................................................44

    3.2.2.1.3 CLASSE CSUBQUADRO E AS SUBANLISES.................................................44

    3.2.2.1.4 CLASSE CSUBQUADROFORMA E A ANLISE DE FORMA.........................45

    3.2.2.2 CLASSES DE REDE NEURAL ..................................................................................48

    3.2.2.2.1 CREDE.....................................................................................................................503.2.2.2.2 CLASSE CCAMADABASE...................................................................................51

    3.2.2.2.3 CLASSE CCAMADAENTRADA..........................................................................51

    3.2.2.2.4 CLASSE CCAMADAOCULTA.............................................................................51

    3.2.2.2.5 CLASSE CCAMADASAIDA.................................................................................52

    3.2.2.2.6 CLASSE CNEURONIO ..........................................................................................52

    3.2.2.2.7 CLASSE CNEURONIOENTRADA.......................................................................52

    3.2.2.2.8 CLASSE CNEURONIOPROCESSAMENTO........................................................533.2.3 DIAGRAMAS DE SEQUENCIA ..................................................................................53

    3.3 IMPLEMENTAO ........................................................................................................60

    3.3.1 TCNICAS E FERRAMENTAS UTILIZADAS...........................................................60

    3.3.1.1 MICROSOFT VISION SDK........................................................................................60

    3.3.2 MICROSOFT FOUNDATION CLASS.........................................................................62

    3.3.3 OPERACIONALIDADE DA IMPLEMENTAO......................................................63

    3.4 RESULTADOS E DISCUSSO ......................................................................................654 CONCLUSES..................................................................................................................73

    4.1 EXTENSES ....................................................................................................................74

    REFERNCIAS BIBLIOGRFICAS .................................................................................75

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    13/77

    12

    1 INTRODUOO mercado consumidor de produtos industrializados est cada vez mais exigente no

    que diz respeito qualidade. Pequenos defeitos e imperfeies antes ignorados agora devemser observados pelos fabricantes, sob o risco de no satisfazerem os consumidores de seus

    produtos. Este fato tem motivado as indstrias a investirem cada vez mais nos processos de

    inspeo de qualidade, j que a mesma se tornou um diferencial competitivo.

    Apesar deste aumento dos investimentos na rea, na maioria das indstrias brasileiras,

    principalmente nas de pequeno e mdio porte, a inspeo e a seleo dos produtos nas

    fbricas ainda realizada por inspetores humanos. Na figura 1 exemplificada uma situao

    como esta, para o caso especfico de inspeo de azulejos numa indstria de cermica.

    Seguindo o modelo convencional de inspeo, o funcionrio encontra-se inserido em

    determinado ponto de uma linha de produo de azulejos para avaliar cada uma das peas

    produzidas. O funcionrio deve avaliar a integridade, a impresso e as dimenses da pea.

    Caso alguma destas caractersticas encontre-se fora dos padres de qualidade aceitveis, a

    pea retirada da linha de produo para ser descartada ou adicionada a um lote de qualidade

    inferior.

    Figura 1 Exemplo de inspeo manual

    Assim como ocorre na indstria de cermica, indstrias de outros segmentos tambm

    se da utilizam inspeo manual. No caso da indstria madeireira, os inspetores avaliam a

    qualidade das peas de madeira com base na quantidade e tamanho dos ns presentes nas

    mesmas. J na indstria grfica, a inspeo manual visa identificar defeitos de impresso

    presentes nos impressos, como falha no registro de impresso, presena de manchas

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    14/77

    13

    indesejadas e problemas relacionados integridade do impresso. Tambm na indstria de

    bebidas so inspecionadas as garrafas, visando identificar defeitos como tampas e rtulos mal

    posicionados ou no presentes, volume do lquido incorreto e falhas na marcao de cdigos.

    Na figura 2 podem ser observados dois dos exemplos de defeito citados, a serem identificados

    pelo inspetor no momento da inspeo manual. Dentre estes encontram se a falta de

    integridade da tampa em uma garrafa, assim como a falha no registro de impresso de um

    impresso.

    Figura 2 Exemplo de defeitos em produtos

    Por se tratar de uma tarefa extremamente repetitiva e que exige um excessivo esforofsico pelo funcionrio que a realiza, a inspeo manual acarreta problemas tais como a falta

    de inspeo em todos os produtos, a falta de preciso nas inspees e a alta rotatividade

    desses trabalhadores. Alm disso, a efetividade da inspeo humana declina

    significativamente no decorrer da jornada de trabalho.

    Os sistemas de inspeo por computador surgem para auxiliar o homem nestas tarefas.

    Disponveis em diversas configuraes e aplicveis em diferentes situaes industriais, estes

    sistemas tem como principal objetivo o auxilio ou at mesmo a substituio da viso humana

    no ambiente industrial. As vantagens de sistemas como estes, quando comparados inspeo

    convencional, evidenciam-se ainda mais quando a linha de produo deve ser monitorada em

    alta velocidade e com preciso. A figura 3 exibe um sistema de inspeo automatizada

    utilizado na indstria de bebidas.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    15/77

    14

    Figura 3 Exemplo sistema de inspeo automatizada

    Apesar de proporcionarem benefcios como aumento de produtividade, melhoria da

    qualidade e reduo de desperdcio, a tecnologia de inspeo automatizada ainda no

    conquistou o espao merecido. O alto custo e a baixa oferta destes sistemas so alguns dos

    responsveis por este quadro.

    Visando difundir a tecnologia e contribuir para a valorizao da mo de obra humana,

    que na opinio do autor deveria ser aplicada em tarefas mais intelectuais, o presente trabalho

    apresenta a implementao de um prottipo de software para inspeo industrial

    automatizada. Este prottipo processa imagens capturadas por uma cmera de vdeo,

    inspecionando os produtos contidos nas mesmas atravs da anlise de determinadas

    propriedades, baseando-se em parmetros previamente definidos. Para realizar tal tarefa

    foram utilizadas diversas tcnicas de processamento de imagens. Tambm foi utilizada uma

    rede neural do tipoperceptronmulticamada para o reconhecimento e interpretao.

    1.1 OBJETIVOS DO TRABALHO

    O objetivo deste trabalho disponibilizar um sistema que processe e analise imagens

    de produtos de uma linha de produo.

    Os objetivos especficos do trabalho so:

    a) analisar caractersticas como forma, posio e orientao de embalagens plsticas

    (frascos) utilizadas na indstria;

    b) classificar as embalagens dentre as classes aprovada e rejeitada;

    c) detectar defeitos nas embalagens, como a falta ou posio incorreta dos

    componentes que a constituem.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    16/77

    15

    1.2 ESTRUTURA DO TRABALHO

    Primeiramente ser realizada uma reviso bibliogrfica dos diversos temas que

    fundamentam o desenvolvimento do prottipo de software de inspeo automatizada. Apsisso demonstrada a especificao e so abordados detalhes da implementao do prottipo.

    Finalmente so apresentadas as concluses do presente trabalho, assim como sugestes para

    trabalhos futuros.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    17/77

    16

    2 FUNDAMENTAO TERICANeste captulo sero abordados os assuntos e tcnicas utilizadas no desenvolvimento

    do prottipo e necessrios concluso deste trabalho.

    2.1 SISTEMAS DE INSPEO AUTOMATIZADA

    Os sistemas de viso computacional resultam da integrao de diversas tecnologias, e

    podem ser aplicados em diferentes situaes. Dentre as aplicaes mais utilizadas pode-se

    citar, alm da indstria, a rea de segurana, onde atuam como solues de identificao

    biomtrica no reconhecimento humano e tambm no reconhecimento veicular no trnsito.

    A figura 4 ilustra a arquitetura simplificada de um sistema de inspeo automatizada

    para a indstria. Neste exemplo, o processo de inspeo acontece de forma integrada com a

    linha de produo, evitando assim trabalho desnecessrio, j que uma pea identificada como

    defeituosa no estar presente nas etapas seguintes da produo. Neste processo, para cada

    pea que transita pela esteira, capturado pelo sistema de aquisio um quadro contendo a

    imagem da mesma. Este quadro transmitido ao sistema de processamento, onde um

    computador executando um software especificamente desenvolvido para a funo de inspeo

    analisa a imagem a fim de identificar algum defeito na pea. Caso seja identificado algum

    defeito, o sistema de processamento comanda atravs de um sinal digital o sistema de

    descarte, que por meio de um mecanismo pneumtico retira a pea defeituosa da esteira.

    Figura 4 Exemplo de arquitetura de sistema de inspeo automatizada

    Como pode ser visto, a arquitetura de um sistema de inspeo automatizada

    composta por vrios subsistemas e pode assumir diferentes configuraes. Para aplicaes de

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    18/77

    17

    inspeo industrial, porm, comum que seja composto por um sistema de aquisio de

    imagens, um sistema de processamento e um sistema de descarte.

    A funo do sistema de aquisio de imagens obter informaes da cena a sermonitorada, necessrias ao processamento e consecutiva inspeo. So utilizados diferentes

    equipamentos como sensores, cmeras, lentes, filtros, dispositivos de iluminao, entre

    outros. Exemplos destes componentes podem ser vistos na figura 5.

    Figura 5 Exemplo de cmera, lente e componente de iluminao

    As cmeras so os componentes bsicos do sistema de aquisio. Possuem uma matriz

    de sensores sensveis luz onde, para cada elemento da matriz, obtida a intensidade de luzque incide naquele ponto. No ambiente a ser observado aplicada uma iluminao sobre o

    objeto de interesse. A luz refletida no objeto e incide sobre a cmera. A intensidade de cada

    um dos pontos forma uma imagem digital, que utilizada posteriormente para anlise.

    Conforme explicado anteriormente, a iluminao exerce um papel fundamental no

    sistema de captura, uma vez que a cmera captura a luz refletida sobre a cena observada.

    Existem diversas tcnicas de iluminao, que variam entre si na fonte de luz, intensidade,

    direo, etc. Cada uma delas oferece algum tipo de benefcio e ressalta determinadas

    caractersticas dos objetos. Por isso, a escolha do tipo de iluminao muito importante. Por

    exemplo, para o reconhecimento de caracteres na embalagem de um produto para verificao

    da qualidade de impresso da sua data de validade, seria ideal a utilizao de um anel

    luminoso em torno da cmera, que produziria uma luz paralela ao seu eixo ptico. J para a

    inspeo de garrafas onde se deseja inspecionar a presena da tampa, seria interessante uma

    iluminao de fundo, que, por ser posicionada atrs do objeto, destaca a silhueta do mesmo.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    19/77

    18

    Objetivando destacar caractersticas especficas dos produtos e da cena observada,

    tambm so empregados diversos acessrios cmera ou ao ambiente. Na cmera, pode-se

    acoplar, por exemplo, um filtro vermelho para se conseguir um maior contraste na imagem.

    Tambm se pode conseguir a visualizao de uma face oculta de um produto atravs da

    utilizao de espelhos.

    Constitudo de hardware e software, o sistema de processamento responsvel pelo

    controle de todo o sistema de viso. Diversas arquiteturas de hardware podem ser utilizadas

    para este fim, desde computadores IBM-PC comuns at arquiteturas especificamente

    desenvolvidas para sistemas de viso.

    Alm do hardware bsico necessrio ao processamento, este sistema deve possuir

    placas de aquisio de imagens capazes de converter o sinal de vdeo proveniente das cmeras

    em imagens digitais. Alm disso, deve possuir portas de comunicao utilizadas no

    acionamento de sistemas externos ou no recebimento de sinais provenientes de sensores. A

    figura 6 exibe uma placa de aquisio de imagens, contendo tambm portas digitais de

    comunicao.

    Figura 6 Exemplo de placa de aquisioO software utilizado nos sistemas de viso responsvel pelo controle do sistema

    como um todo, pelo processamento e anlise das imagens e pela interface com o usurio.

    Atravs destes softwares especficos, realizada a anlise sobre cada uma das imagens em

    busca de defeitos, irregularidades ou mesmo para realizar classificao. Com base no

    resultado da anlise, o software toma uma deciso cerca de cada produto analisado, que

    pode resultar em diferentes aes. Alm da inspeo o software pode ainda realizar

    levantamentos estatsticos importantes sobre a produo. A figura 7 exibe a tela um software

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    20/77

    19

    de inspeo desenvolvido para a indstria de bebidas, no momento de configurao da anlise

    de tampa em garrafas.

    Figura 7 Exemplo software de inspeo

    O sistema de descarte responsvel por retirar a pea rejeitada da linha de produo.

    Comandados pelo software de inspeo, estes sistemas podem assumir diferentes

    configuraes. Muitos destes sistemas utilizam-se de guias para realizar o descarte da pea,

    como o caso do sistema exibido na figura 8.

    Figura 8 Exemplo sistema de descarteNeste exemplo, o software de inspeo comanda o sistema de descarte, que redireciona

    a garrafa rejeitada para outro destino, dentro da linha de produo.

    2.2 PROCESSAMENTO DE IMAGENS

    O processamento de imagens assume um importante papel nos sistemas de viso

    computacional. A extrao de informaes de uma imagem, para posterior anlise e tomada

    de deciso a cerca de um produto conseguida atravs do emprego de diversas tcnicas de

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    21/77

    20

    processamento de imagens. Nesta seo sero descritas algumas das tcnicas utilizadas nestes

    sistemas.

    2.2.1 REPRESENTAO DE IMAGENS DIGITAIS MONOCROMTICAS

    Segundo Gonzales e Woods (2000, p. 4) o termo imagem refere-se funo

    bidimensional de intensidade da luz f(x,y), onde x e y denotam as coordenadas espaciais e o

    valor de f em qualquer ponto(x,y) proporcional ao brilho da imagem naquele ponto.

    Existem vrias maneiras de representar digitalmente imagens. A mais utilizada a que

    representa a imagem na forma de uma matriz, em que em cada posio da mesma representa

    um ponto da imagem e onde armazenado o nvel de cinza daquele ponto. Para o menorelemento de uma imagem digital, ou seja, para cada posio da matriz dado o nome depixel.

    Cadapixel representado por um byte, podendo assim assumir 256 valores diferentes.

    Figura 9 Representao de imagem digital

    A Figura 9 ilustra a representao descrita e que utilizada neste trabalho. Tambm

    exibida a orientao de sistema de coordenadas mais utilizada nos algoritmos de

    processamento de imagem, com a origem do sistema no canto superior esquerdo da matriz.

    2.2.2 RELACIONAMENTO BSICO ENTRE PIXELS

    Sero descritos nesta seo alguns relacionamentos bsicos entre pixels de uma

    imagem. Estes relacionamentos so utilizados em diversas tcnicas de processamento deimagens.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    22/77

    21

    2.2.2.1 VIZINHANA DE UM PIXEL

    Gonzales e Woods (2000, p. 26) explicam a relao de vizinhana entrepixelsde uma

    imagem. Um pixel p, posicionado nas coordenadas (x,y), possui quadro vizinhos, cujascoordenadas so dadas so exibidas no quadro 1.

    )1,(),1,(),,1(),,1( ++ yxyxyxyx

    Quadro 1 Coordenadas dos vizinhos-de-4 dep

    A esse tipo de vizinhana d-se o nome de vizinhana-de-4, sendo que se refere aos

    pixelshorizontais e verticais que esto a uma unidade de distncia dep.

    J a vizinhana chamada vizinhana-de-8 considera tambm os vizinhos diagonais dep. Adicionalmente aos pixels posicionados nas coordenadas exibidas no quadro 1, so

    considerados ospixelsposicionados nas coordenadas exibidas no quadro 2.

    )1,1(),1,1(),1,1(),1,1( ++++ yxyxyxyx

    Quadro 2 Coordenadas dos vizinhos-de-8 dep

    Observe que alguns dos pixels vizinhos no estaro presentes na imagem quando p

    estiver localizado na borda da imagem.

    2.2.2.2 CONECTIVIDADE

    Gonzales e Woods (2000, p. 27) explicam que a conectividade entre pixels um

    conceito importante no processamento de imagens, em especial para o estabelecimento das

    bordas de objetos presentes em uma imagem.

    Para estabelecer se doispixelsso conexos, preciso determinar se so vizinhos e se

    seus nveis de cinza so similares. Observe que, conforme a necessidade, pode ser

    considerada para determinao de conexidade a vizinhana-de-4 ou a vizinhana-de-8,

    resultando respectivamente na conectividade-de-4 e conectividade-de-8.

    2.2.2.3 ROTULAO DE COMPONENTES CONEXOS

    Gonzales e Woods (2000, p. 28) descrevem um algoritmo para a rotulao de

    componentes conexos em uma imagem binria. Considere que uma imagem seja percorrida

    pixelporpixel, seguindo a orientao descrita na seo 2.1.1. Considerando a vizinhana-de-

    4, defina-sepcomo sendo o pixel em qualquer passo no processo de varredura e sejam re t,

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    23/77

    22

    respectivamente, os vizinhos superior e esquerdo de p.Observe que, obedecendo seqncia

    de varredura definida, quando chegar ao pontop, j tero sido encontrados re t.

    Como passo inicial do procedimento de rotulao, verifique se o valor de p 0. Emcaso positivo mova para a prxima posio. Se o valor de p 1, verifique os valores de re t.

    Se ambos forem 0, atribua apum novo rtulo. Note que, neste caso, ou a primeira vez que o

    componente conexo aparece, ou o pixel se trata de uma ponta de um componente j

    encontrado. Caso apenas um dos vizinhos for 1, atribua a po seu rtulo. Se ambos forem 1 e

    possuem o mesmo rtulo, atribua a p o mesmo rtulo. Caso forem 1, mas possuem rtulos

    diferentes, atribua um dos rtulos a p e anote que os dois rtulos so equivalentes. Observe

    que, neste caso, r e t fazem parte do mesmo componente conexo,j que esto ligados por p.Procedendo desta maneira, ao fim da varredura todos os pontos com valor 1 tero sido

    rotulados. Para finalizar, resta apenas unir as classes marcadas como equivalentes.

    O mesmo processo pode ser realizado para a rotulao de componentes conexos

    considerando a vizinhana-de-8, mas neste caso devem ser considerados os dois vizinhos

    diagonais superiores de p.

    2.2.3 PR-PROCESSAMENTO

    De maneira geral, o pr-processamento visa melhorar a qualidade de uma imagem

    digital com a finalidade de facilitar o processamento subseqente de anlise. Dentro de um

    sistema de viso computacional o pr-processamento exerce principalmente as funes de

    realce e restaurao das imagens a serem processadas.

    Figura 10 Aplicao do filtro de realce

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    24/77

    23

    Na operao de realce, o objetivo destacar as caractersticas importantes da imagem.

    Para isso so utilizadas tcnicas de contraste, destaque de contornos e suavizao. A figura 10

    exemplifica a aplicao de realce sobre uma imagem desfocada. Gonzales e Woods (2000, p.

    115) ressaltam o fato de que as tcnicas de pr-processamento so bastante dependentes da

    aplicao.

    J a operao de restaurao de imagens, visa deixar uma imagem digital o mais

    prximo possvel da cena captada. No processo de digitalizao de imagens atravs de

    dispositivos eletrnicos comum a perda de detalhes ou a obteno de rudos indesejados.

    Como exemplo de casos onde podem ser aplicadas tcnicas de restaurao de imagem pode-se

    citar a ausncia de foco e o movimento dos objetos na imagem capturada.

    2.2.4 SEGMENTAO DE IMAGENS

    A segmentao em imagens digitais tenta reproduzir o processo da viso humana

    descrita por Facon (1993, p. 87) onde so efetuados agrupamentos sobre a imagem percebida,

    baseados em proximidade, similaridade e continuidade. De maneira geral, esta etapa do

    processamento de imagens tem como objetivo isolar os objetos de interesse.

    Nesta etapa o objetivo dividir a imagem em elementos significativos. Esta separao

    pode ocorrer em vrios nveis, onde, em um dado momento, pode-se aplicar uma segmentao

    para obter determinado objeto e em outro momento pode-se obter um detalhe deste objeto.

    Gonzales e Woods (2000, p. 4) explicam que a maioria dos algoritmos de segmentao

    baseia-se na descontinuidade ou similaridade dos valores de nvel de cinza. Exemplos de cada

    uma das abordagens sero descrito nas prximas sees.

    2.2.4.1 LIMIARIZAO

    Uma abordagem muito utilizada para a segmentao de imagens atravs da

    similaridade a limiarizao. Esta abordagem engloba vrias tcnicas diferentes. Uma delas

    a limiarizao global. Nesta tcnica, define-se um limiar que representa um nvel de cinza

    qualquer. Para cada pixel da imagem realizado um teste para verificar se o nvel de cinza

    deste pixel maior que o limiar definido. Em caso positivo, o mesmo rotulado com um

    valor, caso contrrio rotulado com outro valor. O resultado deste processo uma imagem

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    25/77

    24

    binria, ou seja, a cor de cadapixel representada por apenas um bit. Cadapixelda imagem,

    portanto, apresenta a cor preta (valor 0) ou branca (valor 1).

    Para aplicaes de inspeo, o resultado da segmentao desejado uma imagembinria onde a forma do objeto a ser inspecionado esteja representada por um agrupamento de

    pixelscom determinado valor e que o fundo esteja representado compixelsde outro valor.

    Figura 11 Segmentao de imagem atravs de limiar

    A figura 11 exemplifica a segmentao atravs de limiarizao global, onde o

    resultado obtido a silhueta do frasco a ser inspecionado.

    2.2.4.2 DETECO DE BORDAS

    A deteco de bordas uma das tcnicas em que a segmentao realizada com base

    na descontinuidade de valores de nveis de cinza. Gonzales e Woods (2000, p. 4) explicam

    que a deteco de bordas pode ser obtida pelo uso de filtros por derivada.

    Figura 12 Aplicao do operador Sobel sobre imagem

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    26/77

    25

    Dentre os filtros por derivada encontra se o denominado operador de Sobel. Na figura

    12 pode-se verificar o resultado obtido pela aplicao deste filtro em uma imagem. Este filtro

    faz parte dos mtodos de domnio espacial que operam diretamente sobre os pixelsde uma

    imagem considerando a vizinhana dos mesmos. A abordagem principal para definir a

    vizinhana em torno de um pixel consiste em usar uma subimagem quadrada, centrada no

    pixel em questo. O centro desta subimagem movido ento de pixel a pixel sobre toda a

    imagem, aplicando-se o operador para cada posio da mesma.

    Figura 13 a) Posies de uma imagem 3 X 3; b) Mscara para x; c) Mscara para y

    A partir das mscaras do operador de Sobel exibidas na figura 13, tem-se que as

    derivadas baseadas nas mesmas podem ser obtidas pelas equaes mostradas no quadro 3.

    )2()2(

    )2()2(

    741963

    321987

    zzzzzzGy

    zzzzzzGx

    ++++=

    ++++=

    Quadro 3 Equao da derivada pelas mscaras de Sobel

    2.2.5 DESCRITORES DE IMAGENS

    Na etapa de segmentao, obtm-se agrupamentos de pixels que representam os

    componentes da imagem a serem analisados. Porm, estes componentes devem ser descritosde maneira mais apropriada, j que uma anlise direta sobre ospixelsno muito eficiente.

    Os descritores so conjuntos de nmeros, gerados para descrever uma forma. Os

    descritores podem no reconstruir completamente a forma descrita, mas devem ser suficientes

    para discriminar diferentes formas.

    A descrio de componentes da imagem pode se dar atravs de descritores simples,

    como a rea. A rea obtida simplesmente atravs da contagem dos pixels que compe aregio. Porm, para a maioria das aplicaes, informaes simples como a rea no so

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    27/77

    26

    suficientes para a resoluo dos problemas. A seguir sero descritos dois mtodos de

    descrio de imagens que as descrevem com quantidade maior de detalhes.

    2.2.5.1 CDIGO DE CADEIA

    Um exemplo de descritor mais completo o cdigo de cadeia.

    Figura 14 Cdigo de cadeia

    Csar e Costa (2001, p. 350) descrevem que o cdigo de cadeia pode ser gerado

    seguindo-se a fronteira de um agrupamento depixelsem determinado sentido e atribuindo-seuma direo aos segmentos que conectam cada par de pixels. A figura 14 exemplifica a

    gerao de cdigo de cadeia com quatro direes possveis e onde a cadeia resultante para a

    forma descrita foi 033032221101.

    Esta tcnica, apesar de bastante conhecida, no ser utilizada neste trabalho devido ao

    tamanho elevado da cadeia resultante do processo de descrio.

    2.2.5.2 DESCRITORES DE FOURIER

    Csar e Costa (2001, p. 350) afirmam que os descritores de Fourier so uma das

    formas de representao de imagens mais populares para aplicaes de viso computacional e

    reconhecimento de padres. Estes descritores no constituem um mtodo simples, mas uma

    classe de mtodos j que existem diferentes maneiras de defini-los.

    Gonzales e Woods (2000, p. 355) demonstram como uma imagem pode ser

    representada atravs de descritores de Fourier. A figura 15 exibe uma fronteira digital de Npontos no planoxy.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    28/77

    27

    Figura 15 Cdigo de cadeia

    Iniciando de um ponto qualquer (x0,y0) no sentido anti-horrio (por exemplo), pode-se

    encontrar os pares de coordenadas (x0,y0),(x1,y1),(x2,y2),...,(xn-1,yn-1) que representam a

    fronteira da forma. Cada par pode ser tratado como nmero complexo da forma exibida no

    quadro 2, para k= 0,1,2,...,N 1, onde N a quantidade de pontos que compe a fronteira.

    Esta representao possui a vantagem de reduzir um problema de duas dimenses a uma s

    dimenso, e pode ser visualizada no quadro 4.

    )()()( kjykxks +=

    Quadro 4 Formato de nmero complexo

    A transformada discreta de Fourier definida no quadro 5, para u= 0,1,2,...,N-1, onde

    N a quantidade de pontos que compe a fronteira. Os coeficientes complexos a(u) so

    chamados de descritores de Fourier.

    =

    =

    1

    0

    /2)(1

    )(N

    k

    NukjksN

    ua

    Quadro 5 Transformada discreta de Fourier

    Observe que podem ser obtidos tantos descritores quanto o nmero de postos que

    compe a fronteira no planoxy. Porm, no existiria vantagem em se descrever a forma pela

    mesma quantidade de pontos. A vantagem deste mtodo de descrio encontra-se justamente

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    29/77

    28

    na possibilidade de representar uma forma com uma pequena quantidade de descritores.

    Gonzales e Woods (2000, p. 357) afirmam que poucos coeficientes de baixa ordem so

    capazes de capturar a forma geral, e que um grande nmero de coeficientes necessrio na

    definio das caractersticas mais marcantes, como cantos e retas. A propriedade de que

    poucos coeficientes capturam a essncia geral de uma fronteira possui um grande valor, j que

    desta maneira podem ser usados para diferenciar formatos de fronteiras distintos.

    Oliveira e Bauchspiess (2001) utilizaram os descritores de Fourier gerados pela

    ferramenta Matlab (MATHWORKS, 2004) para a representao da borda de objetos,

    previamente descritos por cadeias direcionais. O mtodo utilizado para a obteno dos

    descritores difere do mtodo apresentado neste trabalho. As equaes utilizadas pelos autoresno se encontram na forma exponencial, como so apresentadas nos quadros 5 e 6. Em seu

    trabalho afirmam que o uso de 10 a 25 descritores mostrou-se suficiente para a representao

    das formas utilizadas.

    A transformada inversa de Fourier de a(u) definida no quadro 6, para u= 0,1,2,...,N-1

    ondeN a quantidade de pontos que compe a fronteira. A transformada inversa de Fourier

    utilizada para reconstruir s(k) a partir dos coeficientes a(u).

    =

    =

    1

    0

    /2)()(M

    u

    Nukjuaks

    Quadro 6 Transformada inversa de Fourier

    A varivelMrepresenta o nmero de coeficientes utilizados na descrio da fronteira,

    sendo que este pode ser menor ou igual a N-1. Na figura 16 so exibidas as fronteiras obtidas

    pela reconstruo da fronteira original de um quadrado, geradas a partir de diferentes nmeros

    de coeficientes. Atravs deste exemplo pode-se confirmar a premissa de que os coeficientes

    de baixa ordem capturam a essncia geral da forma, sendo os detalhes mais finos capturados

    pelos coeficientes de alta freqncia.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    30/77

    29

    Figura 16 Forma original e reconstrues a partir deMcoeficientes

    Outra vantagem na utilizao dos descritores de Fourier que sobre os mesmos podem

    ser aplicadas transformaes simples com o objetivo de obter invarincia quanto rotao,

    translao e escala. Bowman, Soga e Drummond (2001) explicam que a invarincia quanto

    translao pode ser obtida simplesmente no utilizando o descritor onde N= 0, e apresentam a

    equao para a obteno de descritores invariantes rotao, sendo esta exibida no quadro 7.

    22)( uur

    baua +=

    Quadro 7 Transformada para obteno de invarincia

    Atravs do uso da transformao exibida no quadro 7, os descritores obtidos a partir de

    uma mesma borda em diferentes ngulos, so iguais.

    2.2.6 INTERPRETAO DE IMAGENS

    A interpretao consiste em identificar padres atravs da anlise das descries da

    imagem realizadas nas etapas anteriores. Esta anlise leva em conta padres ou regras

    previamente definidas.

    Facon (1993, p.174) exemplifica uma interpretao onde devero ser classificados

    objetos dentre cinco classes existentes. Nesta anlise os objetos so descritos atravs das

    seguintes propriedades: permetro, rea, nmero de Euler, raio mnimo e raio mximo. Neste

    exemplo a classificao se d diretamente pela comparao entre todas as propriedades do

    objeto analisado com cada um dos padres existentes. Existem casos, porm, em que os

    objetos analisados no podem ser descritos por propriedades simples como estas.

    Em oposio ao mtodo utilizado, Gonzales e Woods (2000, p. 424) ressaltam que as

    propriedades estatsticas das classes de padres so freqentemente desconhecidas, ou no

    podem ser estimadas. Problemas de deciso terica so mais bem tratados por mtodos que

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    31/77

    30

    levem s funes de deciso atravs de treinamento. Na seo seguinte ser discutido o

    mtodo de redes neurais, que segue este princpio.

    2.3 REDES NEURAIS

    Dentre as vrias tcnicas utilizadas no reconhecimento de padres encontram-se as

    redes neurais artificiais. Surgidas como uma tentativa de simular o funcionamento do crebro

    e resolver problemas do mesmo modo como o homem o faz, as redes neurais artificiais so

    utilizadas em vrias reas na resoluo de problemas que vo desde a extrao de informaes

    de grandes bases de dados at o reconhecimento de imagens de satlite.

    Nas sees seguintes sero abordadas as redes neurais artificiais. Para uma melhorcompreenso do assunto sero inicialmente descritos a estrutura e funcionamento bsico da

    rede neural biolgica.

    2.3.1 O CREBRO E A REDE NEURAL BIOLGICA

    Segundo Medeiros (2003, p.1), o crebro humano composto por 100 bilhes de

    neurnios, e responsvel pelo controle da maioria das funes do corpo. Os neurnios so as

    unidades fundamentais dos tecidos do sistema nervoso. O ncleo de cada neurnio conectado a outros neurnios por meio de vrios filamentos chamados dentritos e um

    filamento mais longo denominado axnio. Estas conexes so denominadas conexes

    sinpticas. A figura 17 exibe uma ilustrao do neurnio biolgico.

    Figura 17 O Neurnio Biolgico

    O neurnio pode disparar pulsos eltricos atravs das conexes sinpticas, sendo estes

    recebidos pelos dentritos dos outros neurnios. Quando um neurnio recebe pulsos eltricos

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    32/77

    31

    pelos dentritos, ele ativa e eventualmente dispara um pulso ao axnio, que emite este pulso

    aos outros neurnios. Esta ativao e o conseqente repasse de sinal aos demais neurnios

    somente realizada caso os pulsos eltricos recebidos pelas sinapses sejam fortes o suficiente

    a ultrapassar determinado limiar. As conexes sinpticas e a quantidade de pulsos necessrios

    para ativar o neurnio podem mudar. Estas caractersticas permitem a rede neural reter

    conhecimento, ou seja, aprender. O conhecimento retido fica distribudo por toda a rede

    neural.

    2.3.2 REDE NEURAL ARTIFICIAL

    Segundo Loesch e Sari (1996, p. 5), redes neurais artificiais so sistemas

    computacionais de implementao em hardware ou software que imitam as habilidades

    computacionais do sistema nervoso, usando um grande nmero de neurnios interconectados.

    Conforme comentado anteriormente, sistemas que simulam a rede neural biolgica j so

    utilizados com sucesso nas mais diversas reas.

    Na seqncia sero explanados a estrutura, dinmica e aprendizado das redes neurais

    artificiais.

    2.3.2.1 ESTRUTURA DA REDE NEURAL

    Neste momento sero consideradas inicialmente as caractersticas individuais de cada

    neurnio da rede. Logo aps ser considerada a organizao dos grupos de neurnios que

    constituem a rede.

    2.3.2.1.1 O NEURNIO ARTIFICIAL

    O neurnio artificial o elemento bsico que forma uma rede neural artificial.Tambm conhecido como elemento de processamento, simula o funcionamento de um

    neurnio biolgico. A figura 18 apresenta um modelo de neurnio artificial demonstrado por

    Loesh e Sari (1996, p. 21).

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    33/77

    32

    Figura 18 Modelo de Neurnio Artificial

    Baseados no neurnio biolgico, os elementos principais que constituem o neurnio

    artificial so:

    a) entradas;

    b) pesos sinpticos;

    c) funo de ativao ou funo Soma;

    d) funo de transferncia ou ativador.

    O neurnio possui um ou mais sinais de entrada. atravs destas entradas que o

    neurnio recebe os estmulos a serem processados. Assim como ocorre no neurnio natural,

    no neurnio artificial todas as entradas so consideradas de maneira simultnea no momento

    do processamento. No existe situao onde somente o valor de uma ou outra entrada

    considerado.

    Os pesos so os valores que representam o grau de importncia de cada entrada para o

    neurnio. atravs da variao destes valores que se constri o conhecimento. Os valores dos

    pesos so obtidos no momento do treinamento da rede neural.

    A funo de ativao antecede a funo de transferncia e tem como atribuio

    repassar o sinal obtido atravs das entradas funo de transferncia. Em modelos mais

    simples de redes neurais esta funo simplesmente realiza a soma dos valores das entradas

    multiplicados pelos respectivos pesos.

    A funo de transferncia analisa o valor gerado pela funo de ativao e gera uma

    sada para o neurnio. A funo muda conforme o modelo de rede utilizado. Uma das funes

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    34/77

    33

    mais empregadas a de sinal, representada graficamente na figura 19, onde o valor obtido

    pela funo de ativao comparado com determinado limiar. Conforme o resultado da

    comparao, a sada assume um entre dois valores predeterminados.

    Figura 19 Grficos de funes de transferncia

    Loesh e Sari (1996, p. 23) explicam que nas redes Perceptron Multicamadas

    tradicionalmente utilizada a funo de transferncia sigmoidal. Esta funo fornece uma

    forma para controle automtico de ganho. Para argumentos de pequena magnitude o ganho

    acentuado. J para argumentos de alta magnitude, o ganho menor. Desta maneira, os sinais

    de grande amplitude no saturam a rede, assim como os sinais baixos no deixam de ser

    considerados.

    2.3.2.1.2 REDE DE NEURNIOS

    Em uma rede neural artificial os neurnios so agrupados em camadas. A figura 20

    exibe a organizao das diferentes camadas na rede:

    Figura 20 Camadas da rede neural

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    35/77

    34

    Tafner (1996, p. 62) explica que os neurnios da camada de entrada no realizam

    processamento. Sua nica funo armazenar a informao de entrada para ser repassada aos

    neurnios da prxima camada

    Uma rede neural artificial pode tambm possuir camadas intermedirias ou ocultas,

    que se situam entre a camada de entrada e a camada de sada. A estrutura destas camadas

    igual da camada de sada, porm no tem contato com o exterior. Segundo Medeiros (2003,

    p. 11) estas camadas tem como objetivo melhorar o desempenho da rede, aumentando a

    possibilidade de diviso do espao de entrada de maneira no linear.

    Por fim tem-se a camada de sada. Alm de realizar processamento atravs de seus

    neurnios esta camada tambm responsvel por repassar o resultado do processamento da

    rede ao mundo exterior. A quantidade de neurnios da camada de sada igual ao nmero de

    sadas esperadas da rede.

    Quanto s camadas, devem-se considerar as diferentes organizaes possveis:

    a) quantidade de camadas;

    b) quantidade de neurnio por camadas;

    c) o tipo de conexo entre as camadas e seus neurnios.

    Loesch e Sari (1996, p. 24) explicam que estas diferentes organizaes de camadas

    distinguem os tipos de arquitetura de redes neurais artificiais existentes:

    a) multicamadas, redefeedforward;

    b) camada simples, redes conectadas lateralmente;

    c) bicamadas, redesfeedforward/feedback;

    d) multicamadas, redes cooperativas;

    e) redes hbridas.

    Dentre os tipos de arquitetura citados ser considerado o tipo Multicamadas

    feedforward, que ser descrito em seo prpria.

    2.3.2.2 FASES DO PROJETO DE REDE NEURAL

    Apesar das redes neurais artificiais serem utilizadas em diversas reas, seu objetivo

    quase sempre o mesmo, reconhecer e classificar padres, alm de generalizar informaes.Tafner (1996, p. 62) esclarece que diante de um projeto de uma rede neural ao invs de se

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    36/77

    35

    pensar em procedimentos e frmulas algortmicas de processamento de dados deve-se ter em

    mente tipos de dados de entrada, dados de sada e tratamento de dados. Tambm afirma que a

    rede tem dois momentos distintos de processamento: o momento de aprendizado e o momento

    de utilizao. Segundo ele, apesar destas duas fases bem distintas de processamento, um

    projeto de rede possui 3 fases principais, que sero vistas a seguir.

    2.3.2.2.1 DEFINIO DA REDE NEURAL

    Na fase de definio da rede neural devem-se identificar as variveis relacionadas ao

    problema que contm as informaes necessrias resoluo do mesmo. Uma vez

    identificadas estas variveis escolhido o modelo da rede neural a ser utilizado. Tambm

    devem ser definidos os seguintes aspectos da rede:

    a) tamanho da rede: deve-se definir o tamanho da rede no que diz respeito a

    quantidade de camadas, quantidade de neurnios por camada, quantidade de

    entradas e quantidade de sadas;

    b) tipo de problema a ser resolvido: o problema pode ser de classificao,

    padronizao ou otimizao;

    c) tipo de aprendizado: o algoritmo de aprendizado deve ser selecionado entre

    supervisionado e no-supervisionado.

    2.3.2.2.2 TREINAMENTO DA REDE NEURAL

    Dentre as formas de treinamento possveis para a rede neural artificial, o treinamento

    supervisionado o mais utilizado. Tafner (1996, p. 65) explica o processo de aprendizado

    supervisionado de uma rede neural. Neste processo, deve-se possuir um conjunto de

    treinamento organizado em pares, onde para cada entrada se tenha a sada desejada. Estes

    pares so ento apresentados rede e para cada entrada deve ser verificado se a sada obtida

    corresponde sada desejada. Caso a sada obtida seja diferente da sada desejada deve

    ocorrer o ajuste dos pesos sinpticos dos neurnios da rede. Caso a sada obtida seja igual

    sada desejada, deve-se apresentar o par seguinte rede. Este processo deve se repetir para

    todos os pares do conjunto de treinamento, at que se obtenha uma taxa de acerto satisfatria.

    O ajuste sinptico citado nada mais do que o aprendizado do fato apresentado.

    atravs deste ajuste que o conjunto de neurnios representa a informao que foi apresentada

    rede. O ajuste sinptico resultado de um clculo que visa somar ao peso atual um valor que

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    37/77

    36

    corresponda ao grau de erro gerado pela rede diante a uma entrada, a fim de corrigir o valor

    do peso. Dentre os clculos existentes o mais encontrado a chamada Regra Delta, que pode

    ser visualizado no quadro 8:

    wi(n+1) = wi(n) + i

    e

    i = c * s * xi,

    onde: i = correo associada com a i-sima entrada xi

    wi(n+1) = novo valor do peso

    wi(n) = valor antigo do peso

    s = sada desejada - sada obtida

    c = constante de aprendizado

    Quadro 8 Regra Delta

    2.3.2.2.3 UTILIZAO DA REDE NEURAL

    Aps ter sido realizado o treinamento satisfatrio da rede neural, ela est pronta para

    ser utilizada. Segundo Tafner (1996, p. 81) a fase de utilizao propriamente a execuo da

    rede neural, que se inicia quando uma entrada apresentada rede e termina quando a rede

    gera uma sada.

    importante lembrar que, na fase de utilizao, nenhum ajuste de peso sinptico

    realizado. O processo de utilizao consiste na obteno de uma resposta da rede a um

    estmulo de entrada.

    Caso ainda surja a necessidade de reconhecimento de novos conjuntos de dados ainda

    ou caso sejam identificados erros significativos na execuo da rede, ser necessria uma

    manuteno na rede neural. A manuteno pode ser realizada pelo processo de treinamento ou

    mesmo por alteraes na definio da rede, dependendo do caso.

    2.3.2.3 MODELO DE REDES NEURAIS

    Diferentes combinaes quanto aos aspectos estruturais das redes neurais artificiais

    resultam na existncia de diferentes modelos, cada um com sua arquitetura, aprendizagem e

    capacidade diferente dos demais. As aplicaes prticas tambm variam para cada modelo.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    38/77

    37

    Segundo Medeiros (2003, p.10), os modelos desenvolvidos sempre se basearam em

    modelos biolgicos ou situaes reais. Assim, sempre se procurou reproduzir o

    funcionamento fisiolgico ou simblico do crebro humano.

    Loesch e Sari (1996, p. 5) apresentam uma relao de redes contendo informaes

    sobre as mesmas. Alguns modelos indicados para diferentes aplicaes so exibidos na Tabela

    1.

    Tabela 1 Aplicaes bsicas para modelos de rede neural artificialModelo Aplicao bsicaAdaline/Madaline Filtragem de sinal adaptativo

    feedforward multicamadas Reconhecimento de padresRecurrent Controle robticoTime-Delay Reconhecimento de falaRede de ligaes funcionais ClassificaoBoltzmann Machine Reconhecimento de padresHopfield Evocao autoassociativaNeocognitron Reconhecimento de caracteres manuscritos

    Na seqncia ser apresentado o modelo feedforward multicamadas, tambm

    conhecido comoperceptronmulticamadas.

    2.3.2.4 REDES PERCEPTRON MULTICAMADAS

    Segundo Loesch e Sari (1996, p. 67) a redeperceptron multicamadas o modelo mais

    implementado dentre todas as arquiteturas conhecidas. As capacidades da rede foram

    responsveis pela popularizao do modelo. A rede possui, alm da capacidade de abstrao,

    a capacidade de generalizao. Com isso, capaz de classificar um padro mesmo quando

    este no pertena ao conjunto de treinamento. Tambm uma rede robusta, sendo assim

    imune a pequenas falhas nos padres apresentados.

    A arquitetura da rede pode ser visualizada na figura 20, onde a rede possui uma

    camada de entrada, uma ou mais camadas ocultas e uma camada de sada. Cada neurnio

    recebe diversos valores de entrada e produz apenas uma sada. Os neurnios de uma mesma

    camada atuam em paralelo. O fluxo de processamento inicia na camada de entrada e so

    propagados os valores produzidos at a camada de sada. As equaes utilizadas no

    processamento para frente so exibidas no quadro 9.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    39/77

    38

    s (K)j = w(K)0j +N k

    i = 1

    w(K)ij x(K-1)i

    .

    onde:

    sada da funo d e ativao do neurnio i da camada kx (K)i

    s (K)j soma ponderada dos pesos pelas entradas

    w (K)ij pesos das conexes sinpticas na entrada do neurnio j da camada k, ondei o ndice da conexo.

    N k nmero de neurn ios da camada k

    x(K)j =

    e

    f(s )(K)j

    Quadro 9 Equaesfeedforward

    O treinamento de uma redeperceptronmulticamadas segue o procedimento descrito na

    seo 2.2.2.2.2, onde so apresentados rede pares de treinamento. Ao se apresentar um

    padro de entrada, o fluxo alimentado pra frente, camada por camada. O valor de sada

    obtido comparado com a sada desejada, e em caso de erro ocorre um reajuste dos pesos da

    rede. Este ajuste realizado de trs para frente, ou seja, da camada de sada primeira camada

    oculta. O algoritmo de retropropagao apresentado no quadro 10.

    =m

    j=1(dj y j-

    w(K)ijPasso 1. Inicialize os pesos da rede om valores aleatrios prx imos a zero.

    Passo 2. Seja (x,d) o par de treinamento. Aplique o vetor x na camada de entrada e propague a

    rede at a camada de sada. Seja y a sada da rede, calcule o erro quadrtico

    Se for inferior ao valor de tolerncia, pare com sucesso, seno prossiga.

    Passo 3. Faa k = ltima camada.

    Passo 4. Para todo elemento j da camada k faa:

    - Calcule

    Passo 5. kk - 1. Se k > 0 v para o passo 4, seno prossiga no passo 6.

    2 )2.

    (k)j empregando

    (k)j = d - y se k for a ltima camadaj j

    = k+1i=1

    ( i .(k) )

    N(k+1) wji

    (k+1)j se for uma camada oculta

    - Calcule empregando j(k) j

    (k)= (k)j

    . f( )s (k)j .

    Passo 6. Recalcule todos os pesos de conexo da rede empregando

    W =(n + 1)j(k) W (n) + 2 (n) (n)j

    (k) j

    (k) xj(k)

    tome outro par de treinamento e retorne ao passo 2.

    Quadro 10 Algoritmo de retropropagao

    Loesch e Sari (1996, p. 77) fazem um comentrio sobre a implementao do algoritmo

    de retropropagao em software, onde existe a necessidade do clculo da derivada da funo

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    40/77

    39

    de transferncia no passo 4. Segundo ele este clculo pode ser realizado com maior eficincia

    computacional quando a funo de transferncia for alguma funo logstica. Neste caso, a

    derivada pode ser obtida pela equao exibida no quadro 11.

    ))(1(*)()(' xfxfxf =

    Quadro 11 Equao da derivada da funo logstica

    Para usufruir desta vantagem, pode ento ser utilizada como funo de transferncia a

    funo logstica apresentada por Tafner (1996, p. 61), que pode ser vista no quadro 12.

    )1(

    1)(

    x

    e

    xf

    +

    =

    Quadro 12 Equao da funo de transferncia

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    41/77

    40

    3 DESENVOLVIMENTO DO PROTTIPONeste captulo so abordadas as atividades relativas ao projeto e desenvolvimento do

    prottipo proposto pelo trabalho.

    3.1 ESPECIFICAO DE REQUISITOS

    O prottipo de sistema a ser desenvolvido deve analisar imagens de produtos

    capturadas previamente por uma cmera de vdeo, com o objetivo de detectar defeitos de

    produo nos mesmos. A inspeo deve ser baseada em parmetros definidos pelo usurio,

    portanto o sistema deve permitir a configurao prvia das diferentes anlises a serem

    realizadas.

    O prottipo deve possuir independncia quanto ao produto a ser inspecionado,

    permitindo assim analisar diferentes produtos sem a necessidade de nova implementao.

    O prottipo deve realizar as anlises em tempo real, considerando-se que sistemas de

    inspeo automatizada so inseridos em uma linha de produo onde interagem com um

    sistema de descarte, de maneira a descartar um produto defeituoso imediatamente aps a

    deteco do defeito.

    3.2 ESPECIFICAO

    O sistema ser representado a seguir atravs da utilizao de alguns dos diagramas da

    UML, visto que, segundo Cardoso (2003, p.1), tem se tornado a cada dia um padro mais

    usado para anlise e projeto de software. Para a confeco dos diagramas foi utilizada a

    ferramentaRational Rose(IBM CORPORATION, 2004).

    3.2.1 DIAGRAMAS DE CASO DE USO

    A figura 21 apresenta o diagrama do caso de uso Configurar inspeo. Este caso de uso

    representa a funcionalidade no que diz respeito definio e configurao de cada tipo de

    anlise a ser realizada sobre as imagens dos produtos. O usurio deve informar quais as

    anlises a serem consideradas, e, para cada uma delas, informar parmetros inerentes s

    mesmas, necessrios a sua realizao.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    42/77

    41

    Configurar inspeoUsurio

    Figura 21 Caso de uso Configurar inspeo

    Na figura 22 pode-se observar o diagrama do caso de uso Inspecionar produto, que

    representa a funcionalidade no que diz respeito inspeo dos produtos. O sistema externo

    responsvel pela captura das imagens sinaliza ao sistema de inspeo, atravs de uma

    interrupo, a passagem de um produto na linha de produo. O sistema de inspeo realiza as

    anlises previamente configuradas pelo usurio. Baseando-se nos parmetros especificados, o

    sistema determina a qual classe o produto se enquadra. Caso o produto se enquadre na classe

    de produtos reprovados, o sistema de inspeo sinaliza o resultado ao sistema de descarte,

    atravs de uma sada digital. Caso o produto se enquadre na classe de produtos aprovados o

    sistema no faz nada, deixando-o passar.

    Sistema de

    captura

    Inspecionar produtoSistema de

    descarte

    Figura 22 Caso de uso Inspecionar produto

    Os atores presentes neste caso de uso so sistemas externos, normalmente presentes em

    uma aplicao do sistema de inspeo em uma linha de produo industrial. Foram mantidos

    estes atores para ilustrao de uma situao real de aplicao. Porm, no prottipo

    desenvolvido o papel dos sistemas externos ser realizado por um usurio. Os sinais de

    interrupo e sadas digitais sero representados atravs da interface.

    3.2.2 DIAGRAMAS DE CLASSE

    A seguir sero expostos os diagramas de classe do prottipo implementado. Os

    diagramas esto divididos em diferentes nveis, para um melhor entendimento.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    43/77

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    44/77

    43

    O diagrama de classe exibido na figura 23 exibe as classes responsveis pelo

    processamento e anlise de imagens. No diagrama apresentado, as classes referentes rede

    neural esto agrupadas em um pacote. Furlan (1998, p. 310) explica que esta notao da UML

    indicada para agrupar componentes relacionados entre si, para uma melhor organizao dos

    diagramas. As classes da rede neural implementada sero vistas em detalhe na seqncia.

    3.2.2.1.1 CLASSE CIMAGEMBYTE E O PROCESSAMENTO DE IMAGEM

    A classe CImagemByte a estrutura utilizada para representar imagens no prottipo

    implementado. Alm de ser utilizada como estrutura para qualquer imagem criada durante os

    processamentos, tambm utilizada para armazenar e manipular as imagens capturadas pelo

    sistema de aquisio e que sero analisadas pelo sistema de processamento. Observa-se que,

    conforme o prprio nome indica, esta imagem somente pode ser utilizada para imagens em

    tons de cinza.

    Esta classe uma especializao da classe CVisGrayByteImage, que compe a

    biblioteca Vision SDK e que ser discutida mais a diante. A especializao objetiva adicionar

    funcionalidades de processamento de imagens, j que este tipo de processamento no est

    presente na classe me. As principais vantagens oferecidas pela utilizao desta classe dabiblioteca CVisGrayByteImage, em contrapartida aos tipos nativos oferecidos pela linguagem

    C++ utilizada na implementao do prottipo, so o acesso otimizado memria que

    representa a matriz de pixels, funes de exibio em dispositivos de contexto, rotinas de

    gravao e leitura no disco, alm da presena de rotinas especficas aquisio de imagem

    independente de dispositivo. Esta ltima funcionalidade no aproveitada no prottipo

    desenvolvido neste trabalho, porm poder ser utilizado nas possveis expanses futuras do

    mesmo.

    O objetivo na criao desta classe centralizar todo e qualquer tipo de processamento

    de imagem que se faa necessrio e que tenha ao somente sobre os pixels. Alm da

    memria utilizada para armazenar a matriz de pixelse do cabealho contendo propriedades

    bsicas da imagem, nenhuma outra informao relativa anlise armazenada. A idia que,

    no abrangendo as funes e estruturas utilizadas na anlise, esta classe poderia ser utilizada

    na implementao de outros sistemas, como um editor de imagens, por exemplo.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    45/77

    44

    Uma das funcionalidades implementadas na classe a rotulao dos componentes

    conexos presentes na imagem, baseada no algoritmo apresentado na seo 2.1.2.3 e

    implementada na funo AgruparVizinhana8(). Para a rotulao dos componentes so

    utilizadas as estruturas CPonta e CComponenteEquivalente que podem ser visualizados no

    diagrama de classes exibido na figura 23.

    Outra funcionalidade importante o processamento dos operadores de Sobel, que foi

    implementada na funo FiltrarSobel(). Esta funo refere-se ao filtro por derivada e que

    utilizado para o realce depixels localizados em fronteiras. Uma explicao mais detalhada da

    tcnica pode ser encontrada na seo 2.1.4.2.

    3.2.2.1.2 CLASSE CQUADRO E A ANLISE GERAL

    A classe CQuadro representa o quadro a ser analisado pelo sistema. Alm de possuir

    agregada a estrutura contendo a imagem a ser analisada, esta classe agrega e prov acesso

    lista de anlises definidas pelo usurio, representadas por subquadros e que sero descritos

    posteriormente.

    Esta classe no realiza nenhuma anlise direta sobre os pixels da imagem, mas

    responsvel pela efetivao e obteno do resultado da anlise geral, atravs de troca de

    mensagens com os subquadros que executam as anlises parciais. Possui funes utilizadas na

    definio e gerenciamento dos subquadros, assim como funes de desenho e exibio.

    3.2.2.1.3 CLASSE CSUBQUADRO E AS SUBANLISES

    A classe CSubquadro a classe base para os subquadros de anlise a serem

    implementados. Um subquadro referencia determinada regio do quadro a ser analisado,

    delimitando a rea a ser considerada. Tambm possui funcionalidades e estruturas utilizadas

    nas anlises em geral.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    46/77

    45

    Figura 24 Subquadro de analise

    A idia por trs de um subquadro a de que nem todos os tipos de anlise necessitamser realizadas em toda a rea da imagem. A figura 24 demonstra a definio de um subquadro

    para anlise de tampa em uma garrafa. Neste exemplo, a anlise de integridade de tampa

    sobre garrafas pode ser direcionada regio do quadro capturado onde se estime que o

    gargalo deva estar localizado. Esta delimitao da regio de interesse reflete diretamente na

    velocidade de anlise, j que o processamento no considerar todos ospixelsda imagem.

    3.2.2.1.4 CLASSE CSUBQUADROFORMA E A ANLISE DE FORMA

    A classe CSubQuadroForma uma especializao da classe CSubquadro com o

    objetivo de disponibilizar um tipo de anlise baseado na forma de produtos. Este tipo de

    anlise possibilita a inspeo de diferentes tipos de produtos, j que a presena de muitos

    defeitos de produo tem reflexo direto sobre a forma externa dos mesmos.

    A anlise de forma de produtos implementada realizada observando o contorno dos

    mesmos. O contorno considerado como sendo o conjunto de pixelslocalizados na fronteira

    do produto na imagem digital. O procedimento para a extrao do contorno do produto e suaanlise descrito abaixo.

    Para a obteno dos contornos presentes no quadro analisado, foi implementada na

    classe CImagemByte a funo FiltrarSobel(), que correspondente tcnica de deteco de

    bordas por operadores de Sobel, descrita na seo 2.1.4.2. Conforme exibido na figura 12, a

    partir do processamento do operador de Sobel os valores dos nveis de cinza dos pixels

    presentes na fronteira do produto so aproximados a 255. Os valores dos nveis de cinza dos

    pixelsque no pertencerem fronteira sero aproximados a 0. Observe que, conforme dito

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    47/77

    46

    anteriormente, todo o processamento sobre os pixels da imagem que no resultem em

    informao foram implementados na classe CImagemByte.

    Conforme explicado, aps a aplicao do filtro operador de Sobel os valores dos nveisde cinza dospixelsso aproximados a 0 ou 255. Para evitar que os processamentos que viro

    a seguir considerem faixas de valores prximos as estes extremos, realizada a binarizao da

    imagem atravs da tcnica de limiarizao descrita na seo 2.1.4.1. Esta funcionalidade est

    implementada na funo Binarizar() da classe CImagemByte. A binarizao permite que

    somente sejam considerados valores de 0 ou 255.

    A partir da imagem segmentada pela deteco de bordas e pela limiarizao, se poderia

    varrer a imagem e identificar ospixels que compe um contorno. Porm nem todos os pixels

    identificados sero necessariamente do mesmo objeto. Podem existir mais de um objeto em

    um quadro analisado, assim como mais de um contorno pode pertencer a um nico objeto.

    Para resolver este problema foi utilizada a tcnica de rotulao de componentes conexos

    descrita na seo 2.1.2.3. A funo AgruparVizinhana8() implementa esta tcnica na classe

    CImagemByte. Atravs dela os diferentes agrupamentos de pixelspresentes na imagem sero

    rotulados com diferentes valores de nveis de cinza. Observa-se agora que, como a prpria

    faixa de valores dos pixels entre 0 e 255 utilizada como identificador dos componentes,

    existe uma limitao a 253 diferentes agrupamentos. Uma abordagem diferente com

    utilizao de nova estrutura poderia resolver o problema, porm esta quantidade mostra-se

    suficiente para a resoluo do problema aqui exposto.

    A funo IdentificarComponentesConexos() foi implementada na classe

    CSubQuadroForma para extrair informaes dos componentes conexos da imagem, sendo

    tambm criada uma estrutura para armazenar informaes bsicas dos componentes. Paracada componente identificado a funo insere em uma lista associada classe

    CSubQuadroForma uma instncia da estrutura CComponenteConexo, contendo informaes

    como posio dos cantos, rea, alm de um ponto inicial para acesso.

    As informaes extradas dos componentes so utilizadas ento para decidir qual dos

    contornos ser considerado. Partindo do princpio que a rea de atuao de um ponto de

    inspeo em uma linha de produo deve ser controlada e tambm previamente preparada,

    assume-se que o contorno a ser inspecionado o maior contorno presente no quadro. Somente

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    48/77

    47

    o componente conexo que possuir a maior rea ser considerado, j que representa o maior

    contorno presente.

    Uma vez identificado o componente conexo a ser considerado, pode-se extrair ascoordenadas dos pixels que compe o contorno. A funo GerarContorno() da classe

    CSubQuadroForma percorre todo o contorno de um componente conexo, partido do ponto

    inicial recebido como parmetro. Aps isso, retorna uma lista contendo as coordenadas de

    todos os pontos pertencentes fronteira do componente.

    Com a lista de coordenadas dos pontos no plano xy que formam o contorno, j h

    informao suficiente para diferenciar produtos. Porm, a lista gerada geralmente muito

    grande. Considerando-se que os quadros capturados por cmeras especficas para aplicaes

    de inspeo normalmente so compostos por 640 pixelsde largura por 480 pixelsde altura,

    frequentemente so obtidos contornos com mais de 1000 pixels. Esta quantidade de

    informao invivel para a maioria das tcnicas de interpretao.

    Para resolver este problema foi implementada a tcnica de descrio por Fourier

    apresentada na seo 2.1.5.2. A funo TDF() implementada na classe CSubQuadroForma

    gera, a partir de uma lista que representa um contorno, uma aproximao com precisovarivel. Pelo uso desta funo, pode-se reduzir em muito a quantidade de informao que

    ser utilizada para descrever a forma dos produtos.

    Aps a reduo da quantidade de informaes que descrevem um produto, pode-se

    interpretar os mesmos atravs da tcnica de redes neurais, descrita na seo 2.2. A classe

    CSubQuadroForma associada uma rede neural implementada na classe CRede. Detalhes de

    implementao internos rede neural sero abordados na seo seguinte. A utilizao desta

    classe ocorre em dois momentos distintos: na preparao da anlise e na execuo da anlise.

    A preparao da anlise deve anteceder a execuo da mesma. No momento da

    preparao, a rede neural associada criada e posteriormente treinada. Na criao da rede so

    utilizados parmetros informados pelo usurio, exceto pela quantidade de neurnios da

    camada de entrada, que ser igual quantidade de descritores utilizados na representao do

    contorno, e pela quantidade de neurnios da camada de sada, que ser igual a um, podendo

    representar assim aprovao e reprovao.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    49/77

    48

    Criada a rede neural, preparada atravs da funo GerarParesTreinamento() uma lista

    contendo pares de treinamento que so utilizados no treinamento da mesma. Cada par possui

    um padro de entrada e sua sada desejada. Para a preparao dos pares de treinamento deve-

    se possuir quadros com padres de produto aprovados em um diretrio e quadros com padres

    de produtos reprovados em outro diretrio. Para cada par, a entrada obtida pela execuo

    dos passos descritos anteriormente para a obteno dos descritores de Fourier. A sada

    desejada ser zero para os padres contidos no diretrio de produtos reprovados, e ser um

    para os produtos contidos no diretrio de produtos aprovados. A lista de pares de treinamento

    passada ento rede neural, para treinamento da mesma. Aps o treinamento da rede, a

    subanlise estar pronta para a execuo.

    No momento de execuo, o processamento para a obteno dos descritores de Fourier

    ocorre para cada quadro analisado, conforme procedimento descrito anteriormente. Os

    descritores so apresentados ento rede neural. A rede neural ativada. Aps isso, obtm-se

    o resultado do processamento da mesma, que um valor real. Caso este valor seja prximo a

    zero o resultado da anlise ser reprovado, caso o valor seja prximo a um o resultado ser

    aprovado.

    3.2.2.2 CLASSES DE REDE NEURAL

    Na seqncia sero descritas as classes utilizadas na implementao da rede neural

    utilizada.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    50/77

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    51/77

    50

    Observa-se que a implementao baseada nas equaes de propagao exibidas no

    quadro 9 e no algoritmo de retropropagao exibido no quadro 10. Como a implementao

    segue o paradigma de orientao a objeto e deve aproximar-se do modelo real, as equaes e

    os passos do algoritmo encontram-se distribudos nas diferentes classes que compe a

    arquitetura da rede. A indicao da localizao de cada passo ser feita nas sees que

    seguem.

    3.2.2.2.1 CREDE

    A classe CRede prov acesso a funcionalidades de uma rede neural, incluindo os

    mtodos para sua criao, treinamento e execuo. Esta classe responsvel pela interface da

    rede com o ambiente externo, assim como pelo gerenciamento da rede como um todo. O

    modelo de rede neural implementado operceptronmulticamadas, descrito na seo 2.2.2.4.

    Na criao da rede so informados parmetros relativos sua arquitetura da mesma.

    Seguindo a arquitetura encontrada na literatura, a rede implementada composta por uma

    camada de entrada, uma ou vrias camadas ocultas e uma camada de sada. Todas as camadas

    podem terNneurnios.

    Para realizao do treinamento, a classe implementa o algoritmo de retropropagao,

    exibido no quadro 10, atravs da funo booleana TreinarRede(). Os passos do algoritmo mais

    associados s camadas, como o clculo de erro da camada, foram implementados nas classes

    que representam as mesmas. Nestes casos, a classe CRede envia uma mensagem s camadas

    para a realizao do clculo. A classe tambm implementa a funo

    CalcularErroQuadratico(), que calcula o erro quadrtico descrito no passo 2 do algoritmo.

    Adicionalmente ao algoritmo, foi implementado um controle em que, caso a quantidade de

    iteraes tenha ultrapassado um valor estipulado e o erro da rede ainda no tenha atingido um

    valor inferior tolerncia informada, o loopde treinamento para e a funo retorna falso. Este

    controle foi adicionado para os casos em que a rede no consegue aprender, e sem o mesmo

    continuaria o processamento infinitamente.

    O reconhecimento de um padro atravs da rede implementado na funo

    Reconhecer(), onde informada como parmetro a entrada para a rede. Pela chamada a esta

    funo a rede alimentada com os valores de entrada. chamada ento a funo Propagar().Esta funo ativa todas as camadas, da camada de entrada camada de sada, repassando

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    52/77

    51

    entre elas os resultados das ativaes. O retorno da funo o resultado da execuo da rede,

    diante do padro apresentado.

    3.2.2.2.2 CLASSE CCAMADABASE

    Pelas diferenas existentes entre os tipos de camadas que compe uma rede neural do

    tipo perceptron multicamadas, optou-se por criar diferentes classes de camadas ao invs de

    utilizar apenas uma, onde fossem implementadas todas as funes.

    A classe CCamadaBase representa a classe me utilizada para especializao de

    diferentes tipos de camadas. Ela possui variveis e implementa funes comuns aos diferentes

    tipos de camada implementados. Pode-se citar a existncia de listas para os neurnios e paraas sadas, assim como funes de ativao, informao das entradas e acesso s sadas.

    3.2.2.2.3 CLASSE CCAMADAENTRADA

    A classe CCamadaEntrada representa a camada de entrada da rede neural. Observe

    que, como as entradas dos neurnios desta camada so alimentadas por fonte externa, ela no

    considerada no algoritmo de retropropagao de erro. A nica funo dos neurnios desta

    camada armazenar a informao de entrada para ser passada para a camada seguinte. Naverdade, esta camada existe para uma aproximao do modelo, sendo que no

    necessariamente precisaria existir.

    3.2.2.2.4 CLASSE CCAMADAOCULTA

    A classe CCamadaOculta representa as camadas ocultas utilizadas na rede neural.

    Algumas particularidades a diferenciam da camada de sada.

    Nesta camada implementada a funo CalcularErroDerivativoQuadratico(),

    conforme descrito no passo 4 do algoritmo apresentado no quadro 10. Nesta funo, para cada

    neurnio da camada realizado o clculo do erro a ser considerado no ajuste sinptico. O

    valor do erro atribudo a cada neurnio atravs da funo SetErroDerivativoQuadrtico().

    Assim, existe um clculo de erro especfico para os neurnios da camada oculta. O clculo de

    erro exige o clculo da derivada da funo de transferncia. Na seo 2.2.2.4 existe uma

    observao exclusiva referente a este clculo, sendo que esta foi seguida na implementao.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    53/77

    52

    Adicionalmente tambm existe a funo AjustarPesos(), utilizada para indicar a todos

    os neurnios presentes na camada o momento de ajuste dos pesos sinpticos.

    3.2.2.2.5 CLASSE CCAMADASAIDA

    A classe CCamadaSaida representa a camada de sada da rede neural. Assim como na

    camada CCamadaOculta, esta classe implementa uma funo

    CalcularErroDerivativoQuadratico(). Porm conforme diferenciado no passo 4 do algoritmo

    apresentado no quadro 10, existe um clculo especfico para os neurnios da camada de sada.

    Tambm o clculo da derivada da funo de transferncia dos neurnios foi implementado

    baseado no comentrio especfico sobre o assunto e que pode ser visto na seo 2.2.2.4.

    Nesta classe tambm existe a funo AjustarPesos(), similar existente na classe

    CCamadaOculta.

    3.2.2.2.6 CLASSE CNEURONIO

    Conforme comentado anteriormente, a funo dos neurnios na camada de entrada

    difere da funo que assumem nas camadas de sada e camadas ocultas. Na camada de entrada

    o neurnio no realiza processamento sobre o valor de entrada. J nas outras camadas oneurnio deve processar as entradas para gerar uma sada. Por este motivo foram criadas

    diferentes classes de neurnio, especializadas a partir de uma classe base.

    A classe CNeurnioBase representa a classe me utilizada para especializao dos

    diferentes tipos de neurnios. Ela possui variveis e implementa funes comuns aos

    diferentes tipos de neurnios implementados. Pode-se citar a varivel da sada, assim como

    funes para ativao e acesso sada. A funo para alimentao dos valores e as variveis

    para os mesmos foram implementados nas especializaes, j que difere entre elas.

    3.2.2.2.7 CLASSE CNEURONIOENTRADA

    A classe CNeuronioEntrada representa os neurnios a serem utilizados na camada de

    entrada. Este neurnio no realiza processamento sobre os valores de entrada. Desta forma a

    funo de ativao nesta classe simplesmente repassa-os s sadas. Por este motivo, tambm

    no possuem pesos e funes de ajuste.

  • 7/22/2019 INSPEO INDUSTRIAL ATRAVS DA TECNOLOGIA DE VISO COMPUTACIONAL (1)

    54/77

    53

    3.2.2.2.8 CLASSE CNEURONIOPROCESSAMENTO

    A classe CNeuronioProcessamento representa os neurnios a serem utilizados tanto

    nas camadas ocultas quanto na camada de sada.