Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem...

32
Visão Computacional Alessandro L. Koerich Programa de Pós-Graduação em Engenharia Elétrica Universidade Federal do Paraná (UFPR)

Transcript of Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem...

Page 1: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional

Alessandro L. Koerich

Programa de Pós-Graduação em Engenharia ElétricaUniversidade Federal do Paraná (UFPR)

Page 2: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Interfaces Câmera–PC Analógica, Firewire, GigE, Camera Link, USB

Page 3: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• A medida que a resolução das câmeras torna-se maior e as taxas de quadros mais rápidas:

demanda por interfaces rápidas

• Qual a implicação da resolução e taxa de quadros?

Page 4: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• Exemplo: câmera com resolução 640 x 480 pixels, 8 bits por pixel e 30 quadros por segundo

Tamanho de cada quadro:640 x 480 x 8 = 2.457.600 bits

ou307.200 bytes

Page 5: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• Exemplo: câmera com resolução 640 x 480 pixels, 16 bits por pixel e 30 quadros por segundo

Tamanho de cada quadro:640 x 480 x 16 = 4.915.200 bits

ou614.400 bytes

Page 6: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• Exemplo: câmera com resolução 640 x 480 pixels, 24 bits por pixel e 30 quadros por segundo

Tamanho de cada quadro:640 x 480 x 24 = 7.372.800 bits

ou921.600 bytes

Page 7: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• Exemplo: câmera com resolução 640 x 480 pixels, 32 bits por pixel e 30 quadros por segundo

Tamanho de cada quadro:640 x 480 x 32 = 9.830.400 bits

ou1.228.800 bytes

Page 8: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Questão?

• Para transmitir um vídeo com resolução 640x480, 32 bits por pixel e capturado a 30 fps, qual a banda necessária?

Tamanho de cada quadro: 9.830.400 bits x 30fps = 294.912.000 bits/s

ou36.864.000 bytes/s

ou35,15Mbytes/s ou 281,25Mbits/s

Page 9: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Introdução

• Logo:Maior Resolução Maior BandaMaior Número de Cores Maior BandaMaior Taxa de Quadros Maior Banda

Page 10: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Interfaces

• As principais opções para câmeras industriais digitais:– Gigabit Ethernet (GigE)– Camera Link (CL)– USB3.0?– 10GigE?

• Outras opções:– FireWire (a/b)– USB 2.0

Page 11: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Interfaces

• Normalmente, FireWire e USB 2.0 não se prestam para aplicações high-end!

• Em aplicações onde a distância ao processador é curta, FireWire e USB são as escolhas

• Em sistemas dispersos em áreas amplas, GigE é a interconexão escolhida.

Page 12: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Interfaces

• A escolha da interface depende:– da velocidade– da sincronização– da geografia.

• Somente GigE permite longas distâncias em cabos normais (Cat5e ou Cat6)!

• Camera Link (CL) é mais rápido que qualquer outra interface. Somente CL inclui facilidades para disparo em tempo real (real-time triggering).

Page 13: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Firewire 1394a

• Grande uso com periféricos multimídia como câmeras de vídeo digital, discos rígidos, impressoras.

• Esta integrado em Power Macs, iMac, eMacs, PowerBooks, iBooks, e iPod.

• Opera a até 400 Mbps (1394a) e 800 Mbps (1394b).

• É uma implementação independente de plataforma.

• Cabeamento simples, hot swapping.

Page 14: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Firewire 1394a

• Características:– Fácil de usar– Conectividade de baixo custo– Boa definição de padrão– Transferência robusta de imagem– Interface de software padronizado conhecido como

DCAM (IIDC) torna a integração fácil.

Page 15: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Camera Link

• Fácil integração câmera / frame grabber• Conectores, cabos, formato de dados e controle

de sinal padronizados.• Os chipsets Camera Link possuem altas taxas

de dados, perfeita para os requisitos de transmissão de imagens atuais e expansível para necessidades futuras.

Page 16: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Camera Link

• Camera Link é direcionada a requisitos de interface ponto-a-ponto e transferência de imagens absolutamente determinística.

Page 17: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Camera Link

Page 18: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Camera Link

Page 19: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Comparativo Interfaces Digitais

Page 20: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Comparativo Interfaces Digitais

• Diversos parâmetros devem ser considerados na seleção de uma interface digital:– A taxa de transferência de dados afeta diretamente o

número de quadros por segundo que uma câmera é capaz de fornecer, como uma função da resolução da câmera e profundidade dos pixels.

• Os parâmetros mais importantes são apresentados no quadro a seguir.

Page 21: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Comparativo Interfaces Digitais

Page 22: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Comparativo Interfaces Digitais

• USB 3.0?– Começam a surgir alguns produtos baseados nesta

nova tecnologia (2010).

– Intel fornecerá suporte somente a partir de 2011

– Características:• "SuperSpeed" bus com transferência de 4 Gbit/s.• 3.2 Gbit/s (0.4 Gbyte/s ou 400 MByte/s), utilizável.

Page 23: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Placas de Aquisição (Frame Grabber)

• Muito processamento de imagem envolve o uso de computadores. Placas de captura permite transferir os sinais da câmera em um computador para análise.

• Para um sinal analógico (NTSC, PAL, YC, etc.), a placa contém um conversor analógico-digital (ADC) para digitalizar o sinal.

• Outras, possibilitam a visão tempo-real do sinal. Pode-se capturar imagens e salvá-las para futura manipulação e impressão.

Page 24: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Placa de Captura

Page 25: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

GigE

• Está se tornando um padrão de interface

• Amplamente aceita, pois se baseia em uma tecnologia bem estabelecida.

• Extensão clara para o futuro (10GigE).

• Contudo, depende também do balanço entre pré-processamento na câmera e processamento central em um computador dedicado com múltiplas câmeras.

Page 26: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

GigE

• Utiliza a tecnologia IEEE802.3 1000BASE-T

• Conexões de até 100 metros

• No padrão 1000BASE-T são utilizados os quatros pares disponíveis no par trançado, por este motivo que ele consegue transmitir a 1000 Mbps.

Page 27: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

GigE Vision

• Pacote

Page 28: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Padrão GigE Vision

• O padrão, que se baseia no UDP/IP, compreende quatro definições principais:

1. Um mecanismo que permite a aplicação detectar e enumerar dispositivos e definir como os dispositivos obtém um endereço IP válido.

2. GigE Vision Control Protocol (GVCP) que permite a configuração dos dispositivos detectados e garante confiabilidade na transmissão.

3. GigE Vision Steaming Protocol (GVSP) que permite as aplicações receber informação dos dispositivos.

4. Registradores Bootstrap que descrevem o dispositivo propriamente dito, ou seja, endereço IP atual, número de série, fabricante, etc.

Page 29: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Desempenho GigE Vision

• GigE Vision utiliza um Network Interface Card (NIC).

• Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux!– IP-stack: é sujeito a comportamento imprevisível como atrasos

na transferência de dados.

• Esta limitação é superada por drivers que fazem streaming de dados diretamente na memória a nível de kernel (DMA transfers).– O DMA transfer quase elimina qualquer intervenção da CPU –

crítico quando aplicações em tempo real necessitam de toda a CPU para processar imagens.

Page 30: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Desempenho GigE Vision

• Geralmente temos dois drivers disponibilizados pelos fabricantes de câmeras:

– Filter Driver: separa os pacotes IP e transfere os pacotes de dados de imagem diretamente para a aplicação.

– High Performance Driver: separa os pacotes e os transfere diretamente para a aplicação via DMA. Específico para chipsets NIC.

Page 31: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Aplicações Múltiplas Câmeras GigE

• Todos os dispositivos em uma rede compartilham a largura de banda disponível (100Mbytes/s).

• Quando mais câmeras forem penduradas em uma mesma rede, a taxa de quadros máxima (fps) vai cair.

• Pode ser utilizado um switch para conectar múltiplas câmeras a um NIC. A banda será compartilhada.

Page 32: Visão Computacional - UFPR · 2010-09-21 · • Entretanto, os fabricantes de NICs fornecem drivers que utilizam IP-stack Windows ou Linux! – IP-stack: é sujeito a comportamento

Visão Computacional 2010 [email protected]

Aplicações Múltiplas Câmeras GigE

• Todos os dispositivos em uma rede compartilham a largura de banda disponível (100Mbytes/s).

• Quando mais câmeras forem penduradas em uma mesma rede, a taxa de quadros máxima (fps) vai cair.

• Pode ser utilizado um switch para conectar múltiplas câmeras a um NIC. A banda será compartilhada.