1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido...

51
1 ........................................................................................................................................ 2 2 ........................................................................................................................................ 2 3 Visão por computador ............................................................................................ 2 3.1 Imagens binárias ................................................................................................. 3 3.1.1 Binarização ...................................................................................................... 4 3.1.2 Filtro de tamanho (imagens binárias)........................................................... 8 3.1.3 Erosão e dilatação ........................................................................................... 9 3.2 Imagens com 256 tons de cinzento .................................................................. 11 3.2.1 Técnicas de aumento de contraste............................................................... 11 3.2.1.1 Igualização do histograma ........................................................................... 11 3.2.1.2 Método da segmentação dos níveis de cinzento ......................................... 12 3.2.2 Técnicas de filtragem de ruído .................................................................... 13 3.2.2.1 Filtro de mediana .......................................................................................... 13 3.2.2.2 Filtro de média .............................................................................................. 18 3.2.2.3 Filtro de Mínimo ........................................................................................... 19 3.2.2.4 Filtro de Máximo .......................................................................................... 20 3.2.3 Técnicas para detecção de arestas............................................................... 21 3.2.3.1 Gradiente - unidimensional ......................................................................... 22 3.2.3.2 Primeira diferença - unidimensional .......................................................... 24 3.2.3.3 Operador Sobel ............................................................................................. 25 3.2.4 Conversões de medições em pixels para sistema métrico ......................... 28 3.3 Técnicas de iluminação .................................................................................... 30 3.3.1 Tipos de lâmpadas ........................................................................................ 30 3.3.1.1 Lâmpadas fluorescentes ............................................................................... 30 3.3.1.2 Lâmpadas de filamento ................................................................................ 30 3.3.1.3 Fibras ópticas ................................................................................................ 30 3.3.1.4 Sistemas de LEDs ......................................................................................... 31 3.3.1.5 Luz estruturada - Laser ............................................................................... 32 3.3.2 Tipos de montagem dos sistemas de iluminação ........................................ 33 3.3.2.1 Lâmpadas em contraluz ............................................................................... 33 3.3.2.2 Lâmpadas em anel ........................................................................................ 34 3.3.2.3 Lâmpadas em matriz linear ......................................................................... 34 3.3.2.4 Focos de luz ................................................................................................... 35 3.3.2.5 Lâmpadas em DOMO .................................................................................. 35 3.4 Provision 2.0 para a câmara SIEMENS VS710 ............................................. 36 3.4.1 IM - Captura de imagem ............................................................................. 37 3.4.2 VE – Perfil de distância ................................................................................ 38 3.4.3 LI – Prueba de bordes .................................................................................. 39 3.4.4 LI – Punto/Ángulo de interseccion.............................................................. 40 3.4.5 LI – Generar coordenadas ........................................................................... 41 3.4.6 VE – Perfil ..................................................................................................... 42 3.4.7 VC - Búsqueda pos. de punto ...................................................................... 43 3.4.8 PU – Distancia punto punto ......................................................................... 44 3.4.9 NU- Aritmética con dos operandos ............................................................. 44 3.4.10 VE - Binarización ......................................................................................... 46 3.4.11 VE – Análisis de bloques .............................................................................. 47 3.4.12 NU- Elaborar decisión .................................................................................. 50 3.4.13 CO Salida Digital .......................................................................................... 51

Transcript of 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido...

Page 1: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

1 ........................................................................................................................................ 2 2 ........................................................................................................................................ 2 3 Visão por computador............................................................................................ 2 3.1 Imagens binárias................................................................................................. 3 3.1.1 Binarização...................................................................................................... 4 3.1.2 Filtro de tamanho (imagens binárias)........................................................... 8 3.1.3 Erosão e dilatação........................................................................................... 9 3.2 Imagens com 256 tons de cinzento .................................................................. 11 3.2.1 Técnicas de aumento de contraste............................................................... 11 3.2.1.1 Igualização do histograma ........................................................................... 11 3.2.1.2 Método da segmentação dos níveis de cinzento ......................................... 12 3.2.2 Técnicas de filtragem de ruído .................................................................... 13 3.2.2.1 Filtro de mediana.......................................................................................... 13 3.2.2.2 Filtro de média .............................................................................................. 18 3.2.2.3 Filtro de Mínimo ........................................................................................... 19 3.2.2.4 Filtro de Máximo .......................................................................................... 20 3.2.3 Técnicas para detecção de arestas............................................................... 21 3.2.3.1 Gradiente - unidimensional ......................................................................... 22 3.2.3.2 Primeira diferença - unidimensional .......................................................... 24 3.2.3.3 Operador Sobel ............................................................................................. 25 3.2.4 Conversões de medições em pixels para sistema métrico ......................... 28 3.3 Técnicas de iluminação .................................................................................... 30 3.3.1 Tipos de lâmpadas ........................................................................................ 30 3.3.1.1 Lâmpadas fluorescentes ............................................................................... 30 3.3.1.2 Lâmpadas de filamento ................................................................................ 30 3.3.1.3 Fibras ópticas ................................................................................................ 30 3.3.1.4 Sistemas de LEDs ......................................................................................... 31 3.3.1.5 Luz estruturada - Laser ............................................................................... 32 3.3.2 Tipos de montagem dos sistemas de iluminação........................................ 33 3.3.2.1 Lâmpadas em contraluz ............................................................................... 33 3.3.2.2 Lâmpadas em anel ........................................................................................ 34 3.3.2.3 Lâmpadas em matriz linear......................................................................... 34 3.3.2.4 Focos de luz ................................................................................................... 35 3.3.2.5 Lâmpadas em DOMO .................................................................................. 35 3.4 Provision 2.0 para a câmara SIEMENS VS710 ............................................. 36 3.4.1 IM - Captura de imagem ............................................................................. 37 3.4.2 VE – Perfil de distância................................................................................ 38 3.4.3 LI – Prueba de bordes .................................................................................. 39 3.4.4 LI – Punto/Ángulo de interseccion.............................................................. 40 3.4.5 LI – Generar coordenadas ........................................................................... 41 3.4.6 VE – Perfil ..................................................................................................... 42 3.4.7 VC - Búsqueda pos. de punto ...................................................................... 43 3.4.8 PU – Distancia punto punto......................................................................... 44 3.4.9 NU- Aritmética con dos operandos ............................................................. 44 3.4.10 VE - Binarización ......................................................................................... 46 3.4.11 VE – Análisis de bloques .............................................................................. 47 3.4.12 NU- Elaborar decisión.................................................................................. 50 3.4.13 CO Salida Digital .......................................................................................... 51

Page 2: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

1 2 3 Visão por computador

O grande aumento de aplicações de visão por computador na

industria tem sido a consequência da cada vez maior exigência de qualidade no meio industrial com aplicações na automação e na robótica. É claro que não bastaria a maior exigência de qualidade caso não se estivesse perante uma grande revolução tecnológica da informática com processadores cada vez mais rápidos e compactos e acima de tudo a preços cada vez mais acessíveis. Aliás este tem sido um dos factores chave dos desenvolvimentos da robótica que permitem que cada vez mais seja possível utilizar automatismos e robots onde no passado havia tarefas executadas manualmente.

A principal fatia de aplicações de visão na Automação/Robótica tem a configuração que segue:

De seguida serão abordados alguns algoritmos de processamento de imagem que facilitarão a percepção do funcionamento dos sistemas de visão por computador.

Pode-se considerar uma imagem de computador com 256 tons de cinzento como uma matriz de n linhas por m colunas em que cada pixel assume um valor entre 0 e 255 representando um ton de cinzento. O branco puro terá um valor de 255 e o preto puro terá um valor de 0. Para esta resolução cada pixel será representado por um byte (8 bits).

Page 3: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Exemplo de uma imagem em 256 tons de cinzento de 8x8 pixels

50 80 80 100 100 200 220 200 80 70 50 200 100 200 10 250 80 60 40 100 100 250 250 250 125 10 200 20 220 30 80 100 100 250 10 10 10 250 250 250 40 200 200 200 200 90 30 70 200 100 250 230 21 180 40 90 150 40 100 100 100 180 200 90

Apesar de se lhe dedicar uma maior atenção adiante, não se pode

deixar de referir desde já o quão critica é a iluminação utilizada para sistemas de visão pois dela depende a estabilidade dos tons de cinzento das imagens adquiridas. Basta também pensar que é possível para algumas câmaras processar até 100 imagens por segundo para se concluir que não é possível utilizar sistemas de alimentação alimentados pela tensão da rede a 50Hz.

3.1 Imagens binárias

As imagens binárias caracterizam-se por ser imagens a preto e branco puros. Nestas imagens não há tons de cinzento intermédios. Esta é uma das formas de muitos programas de computador armazenarem grandes imagens em ficheiros muito pequenos uma vez que para guardar a informação relativa a cada pixel basta 1bit em vez dos 8 bits necessários para os 256 tons de cinzento.

Imagem natural

Imagem a 256 tons de cinzento

Imagem binarizada com o treshold a 111

(a preto e branco)

É frequente as imagens a processar estarem sobre um fundo de uma qualquer cor e que dificulta o tratamento da imagem. A binarização torna-se de grande utilidade sempre que pretendemos localizar peças na imagem. Para tal é necessário que as peças estejam separadas umas das outras e com tons (cores) diferentes dos do fundo.

Page 4: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.1.1 Binarização VE-Binarización (Espanhol) no Provision

A binarização consistem em: • Definir um valor para um ton de separação (treshold). • Todos os pixels abaixo deste valor assumem o valor zero

(preto). • Todos os pixels acima deste ton assumem o valor 255 (branco)

Definindo o nível de cinzento de separação (treshold) num valor abaixo do fundo, todo o fundo ficará branco.

Como exemplo para um treshold de 111, a imagem exemplo

utilizada anteriormente 50 80 80 100 100 200 220 20080 70 50 200 100 200 10 25080 60 40 100 100 250 250 250125 10 200 20 220 30 80 100100 250 10 10 10 250 250 25040 200 200 200 200 90 30 70 200 100 250 230 21 180 40 90 150 40 100 100 100 180 200 90 ficaria:

0 0 0 0 0 255 255 2550 0 0 255 0 255 0 2550 0 0 0 0 255 255 255

255 0 255 0 255 0 0 0 0 255 0 0 0 255 255 2550 255 255 255 255 0 0 0

255 0 255 255 0 255 0 0 255 0 0 0 0 255 255 0 Caso se pretendesse uma compactação na gravação do ficheiro ela

poderia ser feita em formato binário da seguinte forma com apenas 1 bit por pixel.

0 0 0 0 0 1 1 10 0 0 1 0 1 0 10 0 0 0 0 1 1 11 0 1 0 1 0 0 00 1 0 0 0 1 1 10 1 1 1 1 0 0 01 0 1 1 0 1 0 01 0 0 0 0 1 1 0

Page 5: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Para efeitos de aplicação práticos observa-se o exemplo das figuras abaixo:

Imagem de origem 256 tons de cinzento

Imagem binarizada com um treshold de 80

Este processo de tratamento de imagem é normalmente um tratamento prévio utilizado em algoritmos de:

• Controlo de presença de peças ou características • Detecção e avaliação de imperfeições de superfícies • Localização de peças na janela de imagens.

Definições úteis:

• Pixels vizinhos o Diz-se que 2 pixels são 4-vizinhos se ao partilharem um

limite, partilham também uma face o Diz-se que 2 pixels são 8-vizinhos se ao partilharem um

limite, partilham também pelo menos um canto Pixels 4-Vizinhos

[i,j]

Pixels 8-Vizinhos

[i,j]

Page 6: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

• Caminhos

o Diz-se que um caminho é um 4-Caminho se as ligações entre os pixels que formam o caminho forem entre pixels 4-Vizinhos.

o Diz-se que um caminho é um 8-Caminho se houver ligações entre os pixels que formam o caminho forem entre pixels 8-Vizinhos.

4-Caminho

8-Caminho

• Fronteira – Define-se como fronteira de um objecto numa imagem ao conjunto de pontos que estão no limite do objecto e que têm 4-Vizinhos.

Imagem original

Pixels do fundoPixels fronteiraPixels interiores

• Tamanho – Define-se o tamanho de uma imagem pela sua área

como:

[ ]∑∑= =

=n

i

m

jjiBA

1 1,

Page 7: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

• Distância Euclidiana

[ ] [ ] 2

212

212211 )()(),,,( jjiijijid Euclideana −+−=

• Distância quarteirão (city block)

[ ] [ ] 21212211 ),,,( jjiijijidquarteirão −+−=

• Distância tabuleiro de xadrez (Chessboard)

[ ] [ ] ),max(),,,( 21212211 jjiijijid xadrez −−=

Page 8: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.1.2 Filtro de tamanho (imagens binárias)

Integrado na função VE-Análisis bloques (Espanhol) no Provision É frequente as imagens apresentarem-se com “ruído”. Este ruído surge

por indefinição na obtenção do ton a associar a determinado pixel, seja na aquisição directa da imagem seja já em pós processamento dessas imagens. Por exemplo na definição do nível de treshold para uma binarização, quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que adquiram o valor zero (preto) ficando a aparentar que são objectos.

Exemplo de imagem com ruído

O filtro de tamanho é bastante simples e eficaz. Resultando o Ruído em pseudo-objectos normalmente de pequenas dimensões, este filtro consiste em remover todos os objectos que se apresentem abaixo de determinado tamanho (área em pixels). Por exemplo aplicando este filtro para a imagem anterior, bastaria definir T=10 para obter a imagem isenta de ruído.

Neste caso teria que haver o cuidado de não utilizar T>21, caso contrário o ponto do i também seria removido. Este filtro tem a sua aplicação mais adequada a imagens binárias.

Page 9: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.1.3 Erosão e dilatação VE-Erosión/Dilatación (Espanhol) no Provision

Este tratamento permite expandir ou reduzir os objectos da imagem binária. Os objectos podem ser peças a analisar, mas também podem ser partículas de sujidade ou perturbações da imagem. No Provision, os objectos brancos sobre fundo negro reduzem-se por erosão e expandem-se por dilatação. Os objectos negros sobre fundo branco expandem-se por erosão e reduzem-se por dilatação. Erosão – Muda o pixel de 1 para 0 se algum pixel vizinho for 0 Dilatação – Muda o pixel de 0 para 1 se algum pixel vizinho for 1.

Imagem original Erosão Dilatação 0 0 0 0 0 0 00 0 0 0 0 0 00 0 1 1 1 0 00 0 1 1 1 0 00 0 1 1 1 0 00 0 1 1 1 0 00 0 1 1 1 0 00 0 0 0 0 0 00 0 0 0 0 0 0

0 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 1 0 0 00 0 0 1 0 0 00 0 0 1 0 0 00 0 0 0 0 0 00 0 0 0 0 0 00 0 0 0 0 0 0

0 0 0 0 0 0 00 1 1 1 1 1 00 1 1 1 1 1 00 1 1 1 1 1 00 1 1 1 1 1 00 1 1 1 1 1 00 1 1 1 1 1 00 1 1 1 1 1 00 0 0 0 0 0 0

1 1 1 1 1 1 11 1 1 1 1 1 11 1 0 0 0 1 11 1 0 0 0 1 11 1 0 0 0 1 11 1 0 0 0 1 11 1 0 0 0 1 11 1 1 1 1 1 11 1 1 1 1 1 1

1 1 1 1 1 1 11 0 0 0 0 0 11 0 0 0 0 0 11 0 0 0 0 0 11 0 0 0 0 0 11 0 0 0 0 0 11 0 0 0 0 0 11 0 0 0 0 0 11 1 1 1 1 1 1

1 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 0 1 1 11 1 1 0 1 1 11 1 1 0 1 1 11 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1

Conseguem-se bons resultados de redução de “ruído” nas imagens

aplicando consecutivamente Erosão-Dilatação ou Dilatação-Erosão.

Page 10: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Imagem original Erosão – Dilatação Dilatação – Erosão

Page 11: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2 Imagens com 256 tons de cinzento

3.2.1 Técnicas de aumento de contraste

3.2.1.1 Igualização do histograma

Por vezes as imagens disponíveis apresentam-se com tons de cinzento muito próximos, com pouco contraste, o dificulta a sua análise. Pela observação do histograma, observa-se que determinados níveis de cinzento têm pouca probabilidade de ocorrer. A igualização do histograma permite redistribuir os níveis de cinzento pelos tons que não estão utilizados.

O efeito da igualização do histograma observa-se nos histogramas anexados

Histograma da figura original

Histograma após a aplicação da técnica de igualização do

histograma

O algoritmo consiste em:

∑=

=k

iin

Nl

0

255

onde: l – Novo ton de cinzento N – nº total de pixels ni – nº to tal de níveis de cinzento entre 0 e k inclusive Exemplo de aplicação prática:

100 120 120 180100 100 130 150100 100 110 140100 100 150 150

Page 12: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

2552551616255180

2391,2391516255150

1913.1911216255140

1753,1751116255130

1593,1591016255120

1285,127816255110

1125,111716255100

=⇒=×=→

=⇒=×=→

=⇒=×=→

=⇒=×=→

=⇒=×=→

=⇒=×=→

=⇒=×=→

ll

ll

ll

ll

ll

ll

ll

A imagem resultante será:

112 159 159 255 112 112 175 239 112 112 128 191 112 112 239 239

3.2.1.2 Método da segmentação dos níveis de cinzento

Esta técnica de aumento de contraste faz com que o menor valor de ton de cinzento se altere para zero e que o maior valor de ton de cinzento se altere para 255, expandindo a distribuição pela maior gama possível de tons de cinzento possível:

minmax255min)(−

−= xl

onde: l – Novo ton de cinzento x – Ton de cinzento original min – Nível mínimo de ton de cinzento que ocorre na imagem max – Nível máximo de ton de cinzento que ocorre na imagem

Page 13: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Exemplo de aplicação prática:

100 120 120 180100 100 130 150100 100 110 140100 100 150 150

255255100180

255)100180(180

1593,159100180

255)100150(150

1285,127100180

255)100140(140

966,95100180

255)100130(130

648,63100180

255)100120(120

328,31100180

255)100110(110

00100180

255)100100(100

=⇒=−

−=→

=⇒=−

−=→

=⇒=−

−=→

=⇒=−

−=→

=⇒=−

−=→

=⇒=−

−=→

=⇒=−

−=→

ll

ll

ll

ll

ll

ll

ll

A imagem resultante será:

0 64 64 255 0 0 96 159 0 0 32 128 0 0 159 159

3.2.2 Técnicas de filtragem de ruído

3.2.2.1 Filtro de mediana

É frequente as imagens apresentarem-se com “ruído”. Este ruído surge

por indefinição na obtenção do ton a associar a determinado pixel, seja na aquisição directa da imagem seja já em pós processamento dessas imagens.

O algoritmo do filtro de mediana consiste em fazer deslizar uma janela (nxn) em que n é impar ao longo da imagem original, substituindo o ton do pixel central pelo valor da mediana dessa janela (nxn).

Page 14: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Exemplo de aplicação prática: Seja a imagem em tons de cinzento 6x6:

50 80 80 100 100 200 80 70 50 200 100 200 80 60 40 100 100 250 125 10 200 20 220 30 100 250 10 10 10 250 40 200 200 200 200 90

Aplique um filtro de mediana que utilize uma janela 3x3 1ª

50 80 80 80 70 50 80 60 40

Ordenando fica

40 50 50 60 70 80 80 80 80 Mediana = 70 2ª

80 80 100 70 50 200 60 40 100

Ordenando vem

40 50 60 70 80 80 100 100 200Mediana = 80 3ª

80 100 100 50 200 100 40 100 100

Ordenando vem

40 50 80 100 100 100 100 100 200Mediana = 100

Page 15: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

100 100 200 200 100 200 100 100 250

100 100 100 100 100 200 200 200 250

5ª - Nova linha 80 70 50 80 60 40 125 10 200

10 40 50 60 70 80 80 125 200

6ª 200 200 200 10 250 100 250 250 20

10 20 40 50 60 70 100 200 200

7ª 200 200 100 250 100 100 250 20 220

20 40 50 100 100 100 200 200 220

8ª 200 100 200 100 100 250 20 220 30

20 30 100 100 100 200 200 220 250

Page 16: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

9ª - Nova linha 80 60 40 125 10 200 100 250 10

10 10 40 60 80 100 125 200 250

10ª 60 40 100 10 200 20 250 10 10

10 10 10 20 40 60 100 200 250

11ª 40 100 100 200 20 220 10 10 10

10 10 10 20 40 100 100 200 220

12ª 100 100 250 20 220 30 10 10 250

100 10 20 30 100 100 220 250 250

13ª -Nova linha 125 10 200 100 250 10 40 200 200

10 10 40 100 125 200 200 200 250

Page 17: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

14ª 10 200 20 250 10 10 200 200 200

10 10 10 20 200 200 200 200 250

15ª 200 20 220 10 10 10 200 200 200

10 10 10 20 200 200 200 200 220

16ª 20 220 30 10 10 250 200 200 90

10 10 20 30 90 200 200 220 250 A imagem filtrada ficaria:

50 80 80 100 100 20080 70 80 100 100 20080 70 60 100 100 250125 80 40 40 100 30 100 125 200 200 90 25040 200 200 200 200 90

Page 18: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2.2.2 Filtro de média

Este algoritmo tem a sua aplicação muito semelhante ao filtro de

mediana, apenas que em vez de se substituir o valor do pixel central pela mediana, substitui-se pela média dos valores da janela (arredondado). Usando a mesma imagem do exemplo anterior, e a mesma forma com uma janela 3x3, pode-se exemplificar este algoritmo da seguinte forma:

Imagem original

50 80 80 100 100 200 80 70 50 200 100 200 80 60 40 100 100 250 125 10 200 20 220 30 100 250 10 10 10 250 40 200 200 200 200 90

50 80 80 80 80 100 80 100 100 100 100 200 80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

Média 66 Média 87 Média 97 Média 150

80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 Média 79 Média 83 Média 114 Média 136

80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250

Média 97 Média 78 Média 79 Média 110

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250

40 200 200 200 200 200 200 200 200 200 200 90 Média 126 Média 122 Média 119 Média 114 Imagem filtrada

50 80 80 100 100 200 80 66 87 97 150 200 80 79 83 114 136 250 125 97 78 79 110 30 100 126 122 119 114 250 40 200 200 200 200 90

Page 19: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2.2.3 Filtro de Mínimo

Este algoritmo também tem a sua aplicação muito semelhante ao filtro de mediana e de média, apenas que em vez de se substituir o valor do pixel central pela mediana ou pela média, substitui-se pelo mínimo dos valores da janela deslizante. Usando a mesma imagem dos exemplos anteriores, e a mesma forma com uma janela 3x3, pode-se exemplificar este algoritmo da seguinte forma:

Imagem original 50 80 80 100 100 200 80 70 50 200 100 200 80 60 40 100 100 250 125 10 200 20 220 30 100 250 10 10 10 250 40 200 200 200 200 90

50 80 80 80 80 100 80 100 100 100 100 200 80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

Min 40 Min 40 Min 40 Min 100

80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 Min 10 Min 10 Min 20 Min 20

80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250 Min 10 Min 10 Min 10 Min 10

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250

40 200 200 200 200 200 200 200 200 200 200 90 Min 10 Min 10 Min 10 Min 10

Imagem filtrada

50 80 80 100 100 200 80 40 40 40 100 200 80 10 10 20 20 250 125 10 10 10 10 30 100 10 10 10 10 250 40 200 200 200 200 90

Page 20: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2.2.4 Filtro de Máximo

Este algoritmo também tem a sua aplicação muito semelhante ao filtro de mediana e de média e mínimo, apenas que em vez de se substituir o valor do pixel central pela mediana ou pela média, substitui-se pelo máximo dos valores da janela deslizante. Usando a mesma imagem dos exemplos anteriores, e a mesma forma com uma janela 3x3, pode-se exemplificar este algoritmo da seguinte forma:

Imagem original 50 80 80 100 100 200 80 70 50 200 100 200 80 60 40 100 100 250 125 10 200 20 220 30 100 250 10 10 10 250 40 200 200 200 200 90

50 80 80 80 80 100 80 100 100 100 100 200 80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

Max 80 Max 200 Max 200 Max 250

80 70 50 70 50 200 50 200 100 200 100 200 80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 Max 200 Max 200 Max 220 Max 250

80 60 40 60 40 100 40 100 100 100 100 250

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250

Max 250 Max 250 Max 220 Max 250

125 10 200 10 200 20 200 20 220 20 220 30 100 250 10 250 10 10 10 10 10 10 10 250

40 200 200 200 200 200 200 200 200 200 200 90 Max 250 Max 250 Max 220 Max 250

Imagem filtrada

50 80 80 100 100 200 80 80 200 200 250 200 80 200 200 220 250 250 125 250 250 220 250 30 100 250 250 220 250 250 40 200 200 200 200 90

Page 21: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2.3 Técnicas para detecção de arestas

Pode-se considerar uma aresta como sendo uma significativa alteração local na intensidade da imagem, habitualmente associada a uma descontinuidade na intensidade da imagem. As descontinuidades podem ser dos tipos representados na figura que se segue:

Degrau Rampa Linha Telhado

As arestas “ideais” são as do tipo degrau ou linha, contudo são raras em imagens reais devido a componentes de baixa frequência próprios da aquisição de imagem ou então devido à utilização prévia de algum algoritmo de filtragem (smoothing) já abordados anteriormente. É então comum que as arestas do se apresentem mais com a forma de rampas ou “telhados”.

Também é frequente que as arestas reais se apresentem com um misto de degrau e linha. Este fenómeno acontece frequentemente em objectos com as arestas “boleadas” que por reflexo de luz na zona boleada se apresentam com um contorno de maior luminosidade. Definições úteis:

• Ponto de aresta – É um ponto de uma imagem com coordenadas [i,j] numa localização com uma alteração significativa de intensidade na imagem

• Fragmento de aresta – Corresponde às coordenadas i e j de uma aresta e orientação de aresta θ, que pode ser o angulo de gradiente

Page 22: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

• Detector de arestas – É um algoritmo que produz um conjunto de arestas (pontos de arestas ou fragmentos de arestas) de um objecto numa imagem.

• Um contorno - É uma lista de arestas ou curva matemática que modela a lista de arestas.

• Ligação de arestas – É o processo de formação de uma lista de arestas ordenadas de uma lista desordenada. Por convenção as arestas são ordenadas transversalmente e no sentido dos ponteiros do relógio.

• Seguimento de aresta - É o processo de procura na imagem afim de detectar contornos.

3.2.3.1 Gradiente - unidimensional

A detecção de arestas é essencialmente a detecção de alterações locais significativas numa imagem. Visto a uma dimensão, uma aresta do tipo degrau é associada com um pico local na primeira derivada. O gradiente é a medida da alteração numa função, e uma imagem pode ser vista como uma matriz de amostras de uma função continua de intensidade dessa imagem. Por analogia, alterações significativas dos tons de cinzento podem ser detectados usando uma aproximação discreta do gradiente.

O gradiente é o equivalente bidimensional da primeira derivada e pode ser definido pelo vector:

[ ]⎥⎥⎥⎥

⎢⎢⎢⎢

∂∂∂∂

=⎥⎦

⎤⎢⎣

⎡=

yfxf

GG

yxfGy

x),(

Propriedades relevantes

• O vector G[f(x,y)] aponta na direcção do aumento máximo da função f(x,y)

• A magnitude do gradiente é dada por [ ] 22),( yx GGyxfG += e representa a taxa de aumento máximo por distância unitária

Page 23: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

• Da análise do vector, a direcção do gradiente é definida por

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

x

y

GG

tgyx 1),(α em que o angulo α é medido em relação ao

eixo x

Para imagens digitais as derivadas são aproximadas por diferenças, em que a aproximação mais simples é:

[ ] [[ ] [ jifjifG

jifjifG

y

x

,1,,1,

+−≅− ]

]+≅

Esta aproximação também pode ser obtida pela convolução (convolução

é diferente de multiplicação) das matrizes 2x2:

[ ]11−=xG ⎥⎦

⎤⎢⎣

⎡−

=1

1yG

Exemplo de aplicação do Gx a uma imagem com arestas em degrau:

200 200 200 200 200 200 200 200200 200 200 200 200 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 200 200 200 200 200 200200 200 200 200 200 200 200 200

0 0 0 0 0 0 00 0 0 0 0 0 00 -190 0 0 190 0 00 -190 0 0 190 0 00 -190 0 0 190 0 00 -190 0 0 190 0 00 -190 0 0 190 0 00 0 0 0 0 0 00 0 0 0 0 0 0

Page 24: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

De notar que não é possível calcular valores para a última coluna de pixels.

Exemplo de aplicação do Gy è mesma imagem com arestas em degrau:

0 0 0 0 0 0 0 00 0 190 190 190 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 0 0 0 0 0 00 0 -190 -190 -190 0 0 00 0 0 0 0 0 0 0

Note-se ao usar as aproximações Gx e Gy, estas são na práctica aproximações respectivamente dos pontos interpolados [i,j+1/2] e [i+1/2, j]. Pelo que a função gradiente resultante resulta bastante distorcida em valor absoluto nos pontos superior esquerdo e inferior direito. Como formas de minimizar este efeito surge a hipotese de utilizar aproximações para Gx e Gy como matrizes 2x2 ou mesmo 3x3.

Exemplo de matrizes de convolução 2x2.

⎥⎦

⎤⎢⎣

⎡−−

=11

11

xG ⎥⎦

⎤⎢⎣

⎡−−

=11

11yG

3.2.3.2 Primeira diferença - unidimensional Considerando uma matriz de processamento 3x3 com o formato:

A B C D E F G H I

Podem calcular-se as arestas:

• Aresta1 =(I-E)+(E-A) • Aresta2=(F-E)+(E-D) • Aresta3=(H-E)+(E-B) • Aresta4=(G-E)+(E-C)

Page 25: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Exemplo de aplicação da Aresta2 aplicada à imagem anterior: 0 0 0 0 0 0 0 0 0 0 0 0 -190 -190 0 190 190 0 -190 -190 0 190 190 0 -190 -190 0 190 190 0 -190 -190 0 190 190 0 -190 -190 0 190 190 0 0 0 0 0 0 0 0 0 0 0 0 0

3.2.3.3 Operador Sobel (No Provision VE – Filtro (Tipo de filtro - Sobel)

Considerando também uma matriz de processamento 3x3 com o formato: A B C D E F G H I

O operador Sobel incorpora informação em 2 direcções conforme se

segue:

22 )22()22(),( IFCGDAIHGCBASSM yx −−−+++−−−++=22),( yxyx SSSSM +=

onde Sx e Sy também podem ser obtidos por convolução das janelas 3x3: Sx 1 2 1 0 0 0 -1 -2 -1

Sy 1 0 -12 0 -21 0 -1

Page 26: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

A aplicação prática na imagem 200 200 200 200 200 200 200 200200 200 200 200 200 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 10 10 10 200 200 200200 200 200 200 200 200 200 200200 200 200 200 200 200 200 200

Resulta em

269 601 760 601 269 0 601 806 760 806 601 0 760 760 0 760 760 0 760 760 0 760 760 0 760 760 0 760 760 0 601 806 760 806 601 0 269 601 760 601 269 0

Saliente-se que os valores para o aro envolvente de 1 pixel não fazem

sentido. Os valores os valores superiores a 255 também não fazem sentido, e como tal têm que ser truncados a 255, resultando a imagem: 255 255 255 255 255 0 255 255 255 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 0 255 255 255 255 255 0 255 255 255 255 255 0

Page 27: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Exemplo do ProVision Imagem original

Aplicação do Operador Sobel

O operador Sobel geralmente melhora os contornos, apresentando

um “smothing” local da imagem uma vez que os valores são resultante de uma “média-pesada” dos pontos vizinhos. No Provision ele até é apresentado com um filtro e não como um método de detecção de arestas.

Page 28: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.2.4 Conversões de medições em pixels para sistema métrico O tema da calibração de câmaras é sobejamente abordado em vários

livros. No geral todos eles passam por obter a distancia focal da lente e ângulos de incidência da câmara sobre os planos de imagem (real 3D). Uma das principais aplicações da actualidade para sistemas de visão é a medição de cotas (distâncias em peças) em que é exigido um processamento rápido, simples, eficiente e que garanta o mínimo de resolução necessário para aplicação em causa e que devolva o resultado da medição numa grandeza métrica e não em pixels. Torna-se obvio que os sistemas de visão tratam distancias em pixels e que a sua relação com o mundo real está dependente da distancia focal da câmara e do angulo de incidência e outras grandezas intrínsecas do sistema de visão.

Em seguida apresenta-se uma imagem de um plano obtida com uma câmara com um angulo de incidência sobre o plano bastante inclinado

Desta imagem se depreende que transpor linearmente distancias em

pixels para centímetros depende bastante de: • Direcção da distância na imagem • Localização da distância na imagem (em cima, em baixo ou

para a esquerda ou mais para a direita). O processo que será abordado é bastante simples de implementar em

automação e não resulta de qualquer consulta bibliográfica mas sim de da

Page 29: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

observação de algumas aplicações práticas já em funcionamento. E consiste em:

Posicionar o sistema de visão o mais na vertical possível do objecto a medir, de seguida medir pelo 2 distâncias já conhecidas na peça e que se apresentem nas peças com bastante exactidão (padrão da medição) que estejam mais ou menos em esquadria (preferencialmente uma delas na direcção da distância que se pretende medir) desta forma teremos 2 referências para as direcções x e y para comparar com as distâncias em pixels devolvidas pelo sistema de visão afectando as medições em pixels por factor de escala com estas medições “padrão”.

Distancia de contactos a medir com a direcção do diametro do furo a usar como padrão Medição do diâmetro do furo padrão Círculos perfurados com grande precisão que podem ser utilizados como “padrão para a medição

A utilização de círculos é bastante vantajosa uma vez que podemos

utilizar o seu diâmetro como referência, utilizando o diâmetro com a mesma direcção da distância a ser medida.

Medição padrão P pixels - N mm (previamente conhecido) Medição desejada D pixels - X mm

A cota medida é então

PDNX =

Page 30: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3 Técnicas de iluminação

3.3.1 Tipos de lâmpadas

3.3.1.1 Lâmpadas fluorescentes

• Adequadas para grandes áreas. • Têm que trabalhar com balastro electrónico com para maior

frequência de ignição. As frequências típicas de funcionamento dos balastros electrónicos são superiores a 30Khz o que se revela mais quê suficiente para evitar cintilações de intensidade nas imagens.

• Com ajuda de pratos difusores, é virtualmente possível obter iluminações uniformes.

3.3.1.2 Lâmpadas de filamento

• Particularmente adequadas para iluminação intensa de pequenas áreas.

• Produzem luz direccionada cuja focagem ainda pode ser amplificada pela utilização de reflectores e sistemas de lentes.

• Deve haver cuidados adicionais com sombras causadas por proeminências nas peças e superfícies espelhadas que podem causar reflexos muito intensos.

3.3.1.3 Fibras ópticas

• Permitem iluminação muito intensa de pequenas areas localizadas, permitindo variedade de orientações.

• Podem ser utilizadas “fontes de luz fria”, em que a luz halogénea é transportada pela fibra óptica até ao objecto a iluminar, permitindo que não haja aquecimento do objecto a iluminar por dissipação de calor da lâmpada.

• Torna-se particularmente adequada em aplicações em que é exigido uma grande velocidade de processamento e aquisição de imagem. Com grandes velocidades de aquisição de imagem, o tempo de exposição da imagem é muito pequeno pelo que se torna necessário uma grande intensidade luminosa (próxima da saturação). Nestas situações poderá ponderar-se entre a iluminação por fibra óptica ou por flash (lâmpada de filamento de luz muito intensa).

Page 31: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3.1.4 Sistemas de LEDs

• São normalmente utilizados com reflectores. • Normalmente têm luz direccionada. • Permitem iluminação pouco intensa, normalmente servindo

para iluminação de campo. • O espectro de luz fica normalmente entre o vermelho ou quase

infravermelho.

Page 32: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3.1.5 Luz estruturada - Laser

• Adequada para o alinhamento, posicionamento e controlo

dimensional. • Permite obter informação do relevo das peças 3D na imagem

2D

Page 33: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3.2 Tipos de montagem dos sistemas de iluminação

3.3.2.1 Lâmpadas em contraluz

• Atributos do tipo de sistema de iluminação

o Providencia o contraste máximo entre as peças a medir e o “background”, resultando em imagens semelhantes às binárias desde logo aptas a aplicar algoritmos de medição

o Enfatiza dimensões e contornos exteriores o Remove os contornos interiores das peças

• Aplicações típicas o Medições das dimensões externas das peças (arestas

externas) o Verificações de furos em peças estampadas

Page 34: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3.2.2 Lâmpadas em anel

• Atributos do tipo de sistema de iluminação

o Providencia uma luz “macia” “soft” em todas as direcções

o Enfatiza características da superfície em peças não reflectivas

o Não realça o contraste entre as peças e o “background” • Aplicações típicas

o Medições em pequenas peças plásticas o Medições que não podem ser feitas com contraluz.

3.3.2.3 Lâmpadas em matriz linear

• Atributos do tipo de sistema de iluminação o Providencia iluminação concentrada alinhada

linearmente, e distribuída de forma homogénea o Enfatiza irregularidade nas superfícies e permite

caracterizar depressões nas peças. • Aplicações típicas

o Medições em peças longas, finas e peças onde os contornos tenham que ser salientados

Page 35: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.3.2.4 Focos de luz

• Atributos do tipo de sistema de iluminação o Providencia iluminação concentrada e orientada

permitindo contraste máximo em determinada direcção. o Ao ser localizada, permite enfatiza características locais

nas peças em detrimento do geral da peça. • Aplicações típicas

o Verificação de presença de componentes individuais na montagem

o Verificação de peças com características que estão afectadas de ângulos em determinada direcção.

3.3.2.5 Lâmpadas em DOMO

• Atributos do tipo de sistema de iluminação

o Providencia luz extremamente difusa. o Consegue iluminar superfícies espelhadas o Descaracteriza as superfícies dos detalhes 3D

• Aplicações típicas o Detecção de impressões em folhas amassadas o Medições de pinos em conectores.

Page 36: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4 Provision 2.0 para a câmara SIEMENS VS710

Os exemplos que se seguem foram observados numa versão do PROVISION instalada em Castelhano. Há que levar isto em conta pois os nomes das funções alteram-se com a língua seleccionada.

Podem considerar-se 2 zonas distintas na estrutura do Provision conforme esquematizado. Zona de definição de imagens a utilizar como referência na programação Sequência de instruções de programação para alcançar o objectivo desejado

Estando a câmara ligada por exemplo via RS232, a aquisição das imagens

pode ser feita através de:

Estas podem então ser armazenadas em disco rígido permitindo ser utilizadas como padrão de configuração durante a construção do programa O ponto de exclamação na lista de imagens indica qual a imagem que está a ser utilizada como referência no corrente programa. Esta pode ser seleccionada através da função IM – Captura de imagem.

Page 37: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.1 IM - Captura de imagem

Esta é a função que tipicamente inicia todos os programas. Permite seleccionar a imagem de trabalho. Durante a construção do programa, poderá utilizar-se uma imagem guardada previamente em disco rígido (Imagem padrão). Deverá haver o cuidado ao descarregar o programa para a câmara em colocara a imagem em IMAGE [Online].

Devolve como origem de coordenadas o canto inferior esquerdo com as coordenadas (0,0,0). Porque durante a execução do programa, poderá ser difícil garantir o perfeito posicionamento das peças a inspeccionar, convém procurar na imagem adquirida uma nova referência, que se mantenha por construção numa posição bastante estável relativamente à peça a analisar. Isto pode ser conseguido com a sequência de código.

• VE – Perfil de distância • LI – Prueba de bordes • VE Perfil de distancia • LI – Prueba de bordes • LI – Punto/Angulo de intersección • LI – Generar Coordenadas De seguida serão analisadas estas funções utilizando o programa de

exemplo Contact.vis fornecido junto com Provision. A imagem a utilizar como padrão encontra-se nos exemplos de imagens com o nome Kontact1.bmp.

Page 38: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.2 VE – Perfil de distância

Esta determina a distância entre os pixels de uma aresta de uma peça e a janela de teste utilizada. Pode-se seleccionar-se a direcção de pesquisa, da esquerda para a direita ou de baixo para cima. A aresta pode definir-se como sendo uma aresta de escuro a claro ou de claro a escuro.

Devolve como resultado o vector distância que tem as dimensões da

janela (comprimento ou largura).

Page 39: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.3 LI – Prueba de bordes

Aplica-se a um vector como por exemplo um vector distância obtido

com a função VE-Perfil de distância.

Devolve como resultado uma linha que mais se aproxima do vector de entrada, definida por um ponto e um angulo. O angulo é definido relativamente ao eixo X (horizontal no inicio) do sistema de coordenadas existente. Devolve também o nº de áreas do vector de entrada que ocorrem fora dos limites definidos como Toler. Inf. e Toler. Sup. Assim como a superfície de erro com o nº de valores de distância fora dos mesmos limites.

Page 40: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.4 LI – Punto/Ángulo de interseccion

Aplica-se a duas linhas como por exemplo linhas geradas com a função LI-Prueba de bordes.

Devolve como resultado o ponto de intersecção entre as duas linhas

de entrada e o angulo entre elas.

Page 41: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.5 LI – Generar coordenadas

Aplica-se a um ponto e uma linha. O ponto será a nova origem do sistema de coordenadas, a linha será a que determinará a nova direcção do eixo X.

Devolve como resultado o ponto de intersecção entre as duas linhas de entrada e o angulo entre elas.

Conforme referido anteriormente, para recolocar o novo sistema de coordenadas mais independente do posicionamento da peça a analisar pode utilizar-se a sequência:

1 • VE – Perfil de distância • LI – Prueba de bordes

Obtenção de uma linha para o novo eixo X

2 • VE Perfil de distancia • LI – Prueba de bordes

Obtenção de uma linha próxima do que seria o novo eixo Y, permitindo pela intersecção com a linha anterior, obter o ponto de origem de coordenadas.

3 • LI – Punto/Angulo de intersección

Obtém o ponto com a intersecção das duas linhas

4 • LI – Generar Coordenadas Com o ponto obtido em 3 e a linha obtida em 1, gera o novo sistema de coordenadas.

Page 42: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

A medição de distâncias pode ser feita por exemplo mediante a sequência de instruções:

• VE – Perfil • VC - Búsqueda pos. de punto • VC - Búsqueda pos. de punto • PU – Distancia punto punto • NU- Aritmética con dos operandos

Este algoritmo será visto de seguida, após análise das funções intervenientes.

3.4.6 VE – Perfil Esta função permite analisar os valores dos tons de cinzento ao longo

de um vector. Tem como parâmetros de entrada uma janela , cuja linha central será o vector pelo qual serão verificados os valores dos tons de cinzento. Pode definir-se a direcção do vector (para cima, para baixo, etc) e o “salto” entre pixels a verificar o valor do ton de cinzento.

Devolve como resultado o vector com os tons de cinzento dos pixels ao longo do vector direccional definido como parâmetro de entrada.

Page 43: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.7 VC - Búsqueda pos. de punto Esta função tem um funcionamento muito parecido com os métodos

de detecção de arestas estudados anteriormente (Exemplo Gradiente), sendo unidimensional, e a detecção é feita ao longo de um vector detectando diferenças significativas de tons de cinzento entre pixels vizinhos. Pode definir-se níveis de treshold para a aresta (Umbral) a largura da aresta (Ancho de borde - afim de ser escolhido o ponto central) e se a aresta resulta de um salto de tons escuros para claros ou o inverso e se queremos a primeira ou a última ou a melhor aresta encontrada.

Devolve como resultado O ponto encontrado e um diagrama que permite ver as diferenças entre os pixels vizinhos (semelhante com o método do gradiente) dando a noção da qualidade da aresta na imagem.

Page 44: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.8 PU – Distancia punto punto Esta função tem como parâmetros de entrada 2 pontos por exemplo

obtidos com as funções “VC - Búsqueda pos. de punto”

Devolve como resultado a distância “Euclideana” encontrada em pixels.

3.4.9 NU- Aritmética con dos operandos Esta função tem como parâmetros dois valores e permite fazer

operações matemáticas com estes 2 valores. A sua utilização neste algoritmo permite por exemplo converter a distância encontrada em pixel para uma distância real em milímetros.

Page 45: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Conforme referido anteriormente, para a medição de distâncias pode utilizar-se a sequência de instruções seguinte:

1 • VE – Perfil Obtenção de um Vector “perfil” com atravesse as duas arestas para as quais se pretende medir a distância

2 • VC - Búsqueda pos. de punto

• VC - Búsqueda pos. de punto

Detecção das 2 arestas ao longo do Vector obtido anteriormente

3 • PU – Distancia punto punto

Obtém a distância “Euclideana” em pixels entre os 2 pontos

4 • NU- Aritmética con dos operandos

Converte a medição feita em pixels para um valor em milimetros, utilizando um factor de conversão préviamente conhecido ou adquirido.

Outra sequência que surge muito nas necessidades de utilização de

sistemas de visão é a detecção e contagem de objectos. Esta poderá ser feita de forma bastante simples no provision com a seguinte sequência de funções, também utilizada no programa de exemplo DATE.VIS

• VE – Binarización • VE – Análisis bloques

Este algoritmo será visto de seguida, após análise das funções intervenientes.

Page 46: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.10 VE - Binarización Esta função e sua forma de funcionamento já foi abordada no estudo

sobre processamento de imagens. Tem como parâmetros de entrada uma janela para binarizar, um nível de Treshold inferior e um nível de Treshold superior e um modo de funcionamento seleccionável entre normal ou inverso. Os valores de cinzento que se localizem no intervalo definido pelos níveis de treshold, são convertidos para 255 (branco) no modo normal ou para 0 (preto) no modo inverso.

Exemplos retirados do programa DATE.VIS

Devolve como saída uma janela de iguais dimensões mas binarizada ou seja apenas com pixels a 0 ou 255. Devolve também o número de pixels ajustados a branco (255) na variável superfície.

Page 47: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.11 VE – Análisis de bloques Esta função trabalha sobre imagens previamente binarizadas, e pode

aplicar em simultâneo até 4 filtros diferentes de imagem é possível seleccionar em qualquer destes filtros por exemplo o filtro de tamanho, já previamente abordado. O último parâmetro de entrada é um critério de ordenação na sequência a dar aos blocos (objectos) encontrados na imagem binarizada (após filtragem). Esta função caracteriza-se por listar todos os pontos vizinhos como pertencentes ao mesmo objecto (bloco). Esta função tem como saída uma lista com os blocos identificados de 1 a n, ordenados segundo o critério escolhido. Indica também a área dos blocos e o valor obtido no critério de ordenação escolhido. Esta função também devolve o nº de blocos (objectos) encontrados.

Page 48: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Imagem binarizada de entrada

Janela de resultado, já com os blocos identificados conforme a listagem de blocos existente na

própria janela de parametrização da função. Ver ao lado.

Page 49: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

Conforme referido anteriormente, para a detecção e contagem de

objectos pode utilizar-se a sequência de instruções seguinte: 1 • VE – Binarización Obtenção de uma imagem de

elevado contraste em que foram removidos os componentes indesejados da imagem como por exemplo o background.

2 • VE – Análisis bloques Identificação e contagem dos objectos encontrados numa imagem binarizada

Page 50: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.12 NU- Elaborar decisión

Como o próprio nome indica, esta função permite a tomada de decisão ao programa que elaboramos no PROVISION.

Torna possível analisar um valor previamente obtido através de um qualquer algoritmo e compará-lo com um limite superior e um limite inferior. Caso se preencha o campo ID com um valor acima de zero será possível monitorizar em tempo real esta característica no monitor acoplado à câmara em que estará visível o nome dado à característica, e o valor “medido”. Caso o valor esteja fora das tolerâncias definidas a característica surgirá num ton mais carregado no monitor.

A cada linha da tabela está associada uma ou várias características

que podem ser caracterizadas por C1...C8 que ao estarem dentro ou fora dos limites podem assumir os valores lógicos 0 ou 1.

A melhor forma de compreender o seu funcionamento será através da seguinte tabela. Nome Valor lógico C1 C2 C3 Característica 1 1 (bom) +A +D Característica 2 0 (mau) +A -C +E Característica 5 1 (bom) +F Característica 11 1 (bom) +B Resultado 1 1 0

Este valor resultante transfere-se convertido de binário para decimal

em que a coluna C1 corresponde ao bit menos significativo neste caso 011(binário)=3(decimal).

Exemplo de cálculo: • C1 = ((Característica1 OU Característica 2) & Característica 11) • C2 = (NEG Característica 2) • C3 = (Car1 & Car2 E&Car5))

Page 51: 1 2 2 - ltodi.est.ips.ptltodi.est.ips.pt/fgrilo/down/robotica4.pdf · quando este é escolhido muito próximo do nível do ton de fundo, pode haver pontos pertencentes ao fundo que

3.4.13 CO Salida Digital Esta função permite controlar as 4 saídas digitais da seguinte forma.

• DO-0: Resultado 0 da avaliação das imagens, por exemplo bom/mau. • DO-1: Resultado 0 da avaliação das imagens, por exemplo bom/mau. • DO-2: Resultado 0 da avaliação das imagens, por exemplo bom/mau.

DO-2 é desactivado (colocado a zero) pelos elementos do tipo “Captura de imagem”. Isto permite utilizar externamente este sinal para contar os ciclos ou para sinalizar valores momentaneamente válidos em DO-0 e DO-1.

• DO-3: Estando a 1 significa que se está a executar um programa de inspecção (Estado RUN). Esta saída pode ser partilhada com o controlo de flash no caso deste estar activado. O seu funcionamento na forma partilhada consiste em interromper o sinal por 1ms afim de disparar o flash no próximo flanco ascendente.

Esta função apresenta-se com dois parâmetros em formato decimal

que forçosamente têm que executar uma função lógica. De recordar que a saída será de formato binário nas saídas digitais. No caso de não se pretender executar qualquer calculo lógico sempre se pode usar uma função neutra como por exemplo & com 7d=111b. De recordar que a câmara apenas tem 3 saídas possíveis de utilizar pelo que o maior valor de saída possível é 7.