Inspeção Industrial Através de Visão Computacional Maurício Edgar Stivanello Paulo César Rodacki Gomes - Orientador
Roteiro da apresentação 1 Introdução 2 Fundamentação teórica 3 Desenvolvimento do Trabalho 4 Conclusão
Introdução Controle de qualidade Inspeção manual Tarefa repetitiva; Esforço físico; Falta de precisão; Efetividade da inspeção declina; Alta rotatividade.
Introdução Inspeção automatizada Auxiliam ou substituem a inspeção humana; Vantagens evidenciadas quando a inspeção exige precisão e velocidade.
Introdução Arquitetura
Introdução Objetivo Disponibilizar um sistema de software para inspeção automatizada de produtos. O sistema deve: Analisar características de embalagens; Detectar defeitos nas embalagens; Classificar as embalagens como aprovadas ou reprovadas.
Roteiro da apresentação 1 Introdução 2 Fundamentação teórica 3 Desenvolvimento do Trabalho 4 Conclusão
Fundamentação teórica Processamento de imagem Empregado na extração de informações de uma imagem, para posterior análise e tomada de decisão a cerca de um produto.
Fundamentação teórica Processamento de imagem Segmentação por Limiarização
Fundamentação teórica Processamento de imagem Segmentação pela Detecção de bordas Operador gradiente de Sobel:
Fundamentação teórica Processamento de imagem Descritores de imagem Os descritores são conjuntos de números, gerados para descrever uma forma; Os descritores podem não reconstituir completamente a forma descrita, mas devem ser suficientes para discriminar diferentes formas.
Fundamentação teórica Processamento de imagem Descritores de Fourier s ( k) = x( k) + jy( k) para k = 0,1,2,,N-1 onde N é a quantidade de pontos da fronteira.
Fundamentação teórica Processamento de imagem Descritores de Fourier - Transformadas Transformada discreta de Fourier: a( u) = 1 N N 1 k = 0 s( k) j 2πuk / N para u = 0,1,2,,N 1 onde N é a quantidade de pontos da fronteira.
Fundamentação teórica Processamento de imagem
Fundamentação teórica Processamento de imagem Descritores de Fourier - Propriedades Invariância quanto translação: ignorar o primeiro coeficiente obtido Invariância quanto à rotação: ( u) a 2 b 2 r u u a = +
Fundamentação teórica Redes Neurais Artificiais Surgidas como uma tentativa de simular o funcionamento do cérebro. Possuem a vantagem de que a função de decisão é obtida através de treinamento.
Fundamentação teórica Redes Neurais Artificiais O Neurônio Artificial Entradas; Pesos sinápticos; Função de ativação; Função de transferência.
Fundamentação teórica Redes Neurais Artificiais Rede de Neurônios
Fundamentação teórica Redes Neurais Artificiais Fases do projeto de uma rede neural artificial Definição; Treinamento; Utilização.
Fundamentação teórica Redes Neurais Artificiais Perceptron Multicamadas Trata-se do modelo mais implementado dentre todas as arquiteturas. Possui, além da capacidade de abstração, a capacidade de generalização.
Roteiro da apresentação 1 Introdução 2 Fundamentação teórica 3 Desenvolvimento do Trabalho 4 Conclusão
Desenvolvimento do trabalho Requisitos O protótipo de sistema deve analisar imagens de produtos com o objetivo de detectar defeitos de produção nos mesmos; O protótipo deve possuir independência quanto ao produto inspecionado; O protótipo deve realizar as análises em tempo real.
Desenvolvimento do trabalho Especificação Diagramas de Caso de Uso Configurar inspeção Usuário Configurar inspeção Inspecionar produto Sistema de captura Inspecionar produto Sistema de descarte
Desenvolvimento do trabalho Especificação Diagrama de Classes de processamento e análise de imagens
C Q u a d r o ( fr o m In s p e t o r ) m _ f T e m p o A n a l i s e : f l o a t m _ b R e s u l t a d o A n a l i s e : b o o l C V i s G r a y B y t e I m a g e I l u s t r a r A n a l i s e s D e t a l h e ( ) I l u s t r a r A n a l i s e s ( ) I s S u b Q u a d r o D e f i n i d o ( ) S e r i a l i z a r ( ) A n a l i s a r ( ) C o n f i g u r a r D i s p o s i t i v o C o n t e x t o ( ) G r a v a r I m a g e m ( ) C a r r e g a r I m a g e m ( ) G e t S u b Q u a d r o S e l e c i o n a d o ( ) A d i c i o n a r S u b Q u a d r o ( ) V e r i f i c a r B o r d a S u b Q u a d r o ( ) R e m o v e r S u b Q u a d r o S e l e c i o n a d o ( ) S e l e c i o n a r S u b Q u a d r o ( ) E x i b i r S u b Q u a d r o s ( ) E x i b i r I m a g e m ( ) S e t C o o r d e n a d a s S Q S e l e c i o n a d o ( ) S e t Q u a d r o ( ) G e t R e s u l t a d o A n a l i s e ( ) G e t T e m p o A n a l i s e ( ) G e t I n f o A n a l i s e ( ) G e t C o o r d e n a d a s S Q S e l e c i o n a d o ( ) G e t T i p o S u b Q u a d r o S e l e c i o n a d o ( ) I s S u b Q u a d r o S e l e c i o n a d o ( ) G e t R e t a n g u l o ( ) I s I m a g e m C a r r e g a d a ( ) C Q u a d r o ( ) < < v i r t u a l > > ~ C Q u a d r o ( ) < < s t r u c t > > C S u b Q u a d r o F o r m a C C o m p o n e n t e C o n e x o ( f r o m I n s p e t o r ) ( f r o m I n s p e t o r ) x : i n t y : i n t r c A r e a : C R e c t a r e a : l o n g C C o m p o n e n t e C o n e x o ( ) R e d e N e u r a l 0.. n < < s tr u c t> > C C l a s se C o m p o E q u iv a l e n te ( f ro m I ns p e to r) i d C l a s s e : i n t C P o n t a ( f r o m I n s p e to r ) i d : i n t m _ i Q t d D e s c r i t o r e s : i n t m _ b V a r i a n c i a E s c a l a : b o o l m _ b V a r i a n c i a R o t a c a o : b o o l m _ b V a r i a n c i a T r a n s l a c a o : b o o l m _ l C o n t o r n o : C A r r a y < C P o i n t, C P o i n t > * D e t e c t a r A l v o ( ) G e t T a m a n h o C o n t o r n o ( ) I l u s t r a r R e c o n s t r u c a o ( ) G e t V a r i a n c i a E s c a l a ( ) S e t V a r i a n c i a E s c a l a ( ) G e t V a r i a n c i a R o t a c a o ( ) S e t V a r i a n c i a R o t a c a o ( ) G e t V a r i a n c i a T r a n s l a c a o ( ) S e t V a r i a n c i a T r a n s l a c a o ( ) G e t Q u a n t i d a d e D e s c r i t o r e s ( ) S e t Q u a n t i d a d e D e s c r i t o r e s ( ) D e s c r e v e r F o r m a ( ) C o p i a r S u b Q u a d r o ( ) P r e p a r a r A n a l i s e ( ) G e r a r P a r e s T r e i n a m e n t o ( ) A n a l i s a r ( ) I d e n t i f i c a r C o m p o n e n t e s C o n e x o s ( ) G e t P o s M a i o r C o m p o C o n e x o ( ) E x i b i r S u b Q u a d r o ( ) I l u s t r a r A n a l i s e ( ) C S u b Q u a d r o F o r m a ( ) C S u b Q u a d r o F o r m a ( ) < < v i r t u a l > > ~ C S u b Q u a d r o F o r m a ( ) T D F ( ) T D F I n v e r s a ( ) 1 0.. n C I m a g e m B y t e ( fr o m In s p e to r ) G e r a r C o n t o r n o ( ) F i l t r a r S o b e l ( ) G e r a r N e g a t i v o ( ) C h e c k R a n g e ( ) A g r u p a r V i z i n h a n c a 8 ( ) G e t H i s t o g r a m a ( ) C o n f i g u r a r D i s p o s i t i v o C o n t e x t o ( ) < < s t a t i c > > C I m a g e m B y t e : : C o n f i g u r a r D i s p o s i t i v o C o n t e x t o ( ) B i n a r i z a r ( ) C I m a g e m B y t e ( ) C I m a g e m B y t e ( ) < < v i r t u a l > > ~ C I m a g e m B y t e ( ) U n i r C l a s s e s E q u i v a l e n t e s ( ) A d i c i o n a r C l a s s e ( ) C h e c k E l e m e n t o s C l a s s e E q u i v a l e n t e ( ) C h e c k N o v o C o m p o n e n t e ( ) R e n u m e r a r C o m p o Q u a d r o ( ) C S u b Q u a d r o ( fr o m In s p e t o r ) m _ C o o r d e n a d a s : C R e c t m _ i T i p o A n a l i s e : i n t m _ b R e s u l t a d o A n a l i s e : b o o l m _ f T e m p o A n a l i s e : f l o a t m _ i L i m i a r : i n t L i m i a r i z a r I m a g e m ( ) G e t H i s t o g r a m a S Q ( ) < < v i r t u a l > > A n a l i s a r ( ) E x i b i r I m a g e m S u b Q u a d r o ( ) < < v i r t u a l > > I l u s t r a r A n a l i s e ( ) < < v i r t u a l > > E x i b i r S u b Q u a d r o ( ) S e t L i m i a r ( ) S e t I m a g e m B a s e ( ) S e t C o o r d e n a d a s ( ) < < v i r t u a l > > C o p i a r S u b Q u a d r o ( ) G e t I n f o A n a l i s e ( ) G e t L i m i a r ( ) G e t A l t u r a ( ) G e t R e s u l t a d o ( ) G e t T e m p o A n a l i s e ( ) G e t T i p o A n a l i s e ( ) G e t C o o r d e n a d a s ( ) G e t L a r g u r a ( ) C S u b Q u a d r o ( ) C S u b Q u a d r o ( ) C S u b Q u a d r o ( ) < < v i r t u a l > > ~ C S u b Q u a d r o ( ) C h e c k R a n g e ( ) < < v i r t u a l > > G e r a r I n f o A n a l i s e ( ) < < s t r u c t > > P a r T r e i n a m e n t o ( f r o m I n s p e t o r ) E n t r a d a S a i d a
Desenvolvimento do trabalho Especificação Diagramas de classes da rede neural
CRed e S e te n tra da s() T rein arred e() P rop aga r() Ge tsaida s() CRed e() <<virtual>> ~CRede () Re tro pro pa ga re rro() Ca lcula rerroqu adratico () Re conh ece r() CCam ad aentra da (from Inspetor) 1 0..n CC am a da O cu lta (from Inspetor) 1 CCam ad asaida (from Inspetor) Se tentrad as() CCa m a da E ntrad a() <<virtu al>> ~CCa m a da E ntrad a() Se tentrad as() Aju starpeso s() Ca lcul a rerrode rivativo Qu a dra tico() GetNeu ron ios() CCa m a da O cu lta () CCa m a da O cu lta () CCa m a da O cu lta () ~CCam ad aoculta() S ete n tra da s() A justa rp e sos() CalcularE rroderiva tivoqu adratico () G e tne uro nio s() CCam ad asaid a() <<virtua l>> ~CCam ad asaida () CCam ad abase (from Inspetor) m _fs aidas : CA rray<d ou ble,do ub le> A tivar() <<virtual>> SetEntrad as() G e ts a ida s() CCam ad abase() <<virtual>> ~CCam ad aba se() 1..n CNeu ro nio (from Insp eto r) m _ fs a ida : d ou ble <<virt ua l> > A ti va r() G ets a ida ( ) CNeu ro nio () <<virt ua l> > ~C Neu r on io... () CNeu ron iop rocessa m e nto (from Inspetor) m _ fe ntr ad as : CA rray<d ou bl e,do ub le> m _ fp esos : CA rra y< do ub le,d ou bl e> m _ fe rro De rivati v oq ua d ra t ico : do ub le S et Entr ad as() A tivar() G e tp e sos( ) A ju starp esos() G e te rro De riva t ivoq ua drat ico () S et Er ro De ri v at ivoq ua dr ati co () CN eu ro nio P ro ce ssa m en to () <<virt ua l> > ~C Neu r on io Pr oc essa ment o( ) Cal cu la rs igm oid e() G e ra r Ra ndo mi co () CNe uro nioentra da (fro m Inspeto r) m_ fe nt ra da : do ub le Se te nt rad a( ) Ati va r() CN eu ro ni oe nt rada () << virtual> > ~C Neu ro ni o E ntr ad a(...)
Desenvolvimento do trabalho Implementação - Ferramentas Microsoft Visual C++ 6 Microsoft Vision SDK Disponibiliza tipos específicos para imagens; Compartilhamento de memória entre objetos; Acesso otimizado; Rotinas para aquisição.
Desenvolvimento do trabalho Implementação - Resultados Embalagem Spray Presença e correta posição do bico; Presença e correta posição do gatilho; Alinhamento, presença e correta posição do sistema de borrifo.
Desenvolvimento do trabalho Implementação - Resultados Tubo plástico Presença da tampa; Integridade do tubo.
Desenvolvimento do trabalho Implementação - Resultados Para os dois casos de teste foram obtidos resultados positivos, através da seguinte configuração: - Utilização de 18 descritores de Fourier; - 18 neurônios na camada oculta da rede neural; - Aproximadamente 450 amostras utilizadas no treinamento da rede;
Roteiro da apresentação 1 Introdução 2 Fundamentação teórica 3 Desenvolvimento do Trabalho 4 Conclusão
Desenvolvimento do trabalho Conclusão O trabalho atingiu os objetivos; Suficiência da análise de forma.
Extensões Criação de um framework de aplicação voltado para sistemas de software de inspeção industrial; Especialização do protótipo para uma classe de produtos, com análises específicas aos mesmos; Extensão do protótipo desenvolvido com o objetivo de incluir ao mesmo os outros subsistemas que compõe um sistema de inspeção automatizada.