Visao Computacional

Visao Computacional

(Parte 1 de 5)

CENTRO PAULA SOUZA

FACULDADE DE TECNOLOGIA DE TAQUARITINGA

CURSO SUPERIOR DE TECNOLOGIA EM PROCESSAMENTO DE DADOS

VISÃO COMPUTACIONAL

CAIO FELIPE DE SOUZA

FELIPE CAPOVILLA

THIAGO CASTRO ELEOTÉRIO

ORIENTADOR: PROF. MS. JOÃO DE LUCCA FILHO

Taquaritinga, SP

2010

SOUZA, C. F.; CAPOVILLA, F.; ELEOTÉRIO, T. C.; Visão Computacional. Faculdade de Tecnologia de Taquaritinga, Centro Estadual De Educação Tecnológica “Paula Souza”, Taquaritinga, 2010.

RESUMO

Hoje os conceitos da Visão Computacional são bem difundidos, mas poucos sabem o que existe por trás. Para a concepção de um sistema de Visão Computacional Existem vários processos. Tentaremos explicar as melhores técnicas utilizadas para otimização das imagens, apresentaremos casos e aplicações que já existem em nosso cotidiano.

Palavras-chaves: Processamento Imagens. Visão Computacional.

SUMÁRIO

Conteúdo

1 Visão computacional 6

1.1 O que é Visão Computacional 6

1.2 Visão Computacional e Processamento de Imagens 7

2 processamento de imagens 10

2.1 Filtros 10

2.2 Domínio e Espaço 11

2.3 Transformação da Intensidade 12

2.4 Histogramas 14

FIGURA 10 – Equação básica sobre histograma de imagem 14

2.5 Filtragem no Domínio Espacial 16

2.6 Filtros Estatísticos 17

2.7 Filtros Gaussianos 18

2.8 Filtro Passa-Alta 18

2.9 Domínio de Frequência 19

2.9.1 Filtro Passa-baixa - Domínio de frequência 20

2.9.2 Filtro Passa-alta – Domínio de frequência 21

3 SEGMENTAÇÃO 21

3.1 Segmentação por Detecção de borda 22

3.2 Segmentação por Corte 27

3.3 Segmentação Baseada em Crescimento de Região 27

4 Reconhecimento de padrões 30

4.1 O que é reconhecimento de padrões 30

4.2 Rastreamento 32

4.3 Corner Finding 33

4.4 Subpixel Corners 33

4.5 Optical Flow 33

4.6 Mean-Shift e Camshift 33

4.7 Estimadores 34

5 APLICAÇÃO NA INTELIGÊNCIA ARTIFICIAL 36

5.1 Características gerais 36

5.1.1 Raciocínio Subsimbólico: 36

5.1.2 Raciocínio Simbólico: 37

5.1.3 A importância da integração entre raciocínio simbólico e subsimbólico 37

5.2 Estratégias de Controle 37

6 APLICAÇÃO NO controle de qualidade 41

6.1 Estudo de caso: Controle de Qualidade em madeiras de Pinho 42

7 APLICAÇÃO NA robótica 45

8 APLICAÇÃO NA medicina 48

CONCLUSÃO 50

referências 52

LISTA DE ILUSTRAÇÕES

FIGURA 481 - Visão computacional e Robótica 46

introdução

A visão computacional é uma nova disciplina que esta ganhando cada vez mais espaço nos projetos acadêmicos.

Não tem como não falar de robótica ou inteligência artificial sem falar dos sistemas que enxergam e compreende o espaço em que percorre.

Não apenas na robótica e na área de inteligência artificial, a visão computacional tem uma grade missão: a de se tornar ferramenta forte na área de medicina e de produção a fim de eliminar custos e diminuir erros.

Objetivo

Demonstrar não apenas de forma teórica mas também pratica, técnicas atuais de visão computacional e reconhecimento de imagens.

Metodologia

O resultado deste trabalho foi possível mediante pesquisar na internet e livros técnicos que abordam este assunto.

Estrutura do Trabalho

No capítulo um e dada uma introdução sobre visão computacional e suas definições.

Nos capítulos seguintes são apresentadas técnicas e aplicações da visão computacional.

1Visão computacional

1.1O que é Visão Computacional

Visão por computador (Visão Computacional) é a área da ciência que se dedica a desenvolver teorias e métodos voltados à extração automática de informações úteis contidas em imagens. Tais imagens são capturadas por dispositivos, como câmera de vídeo, scanner, etc.

Por este motivo, a recente evolução tecnológica dos computadores e dispositivos, a preços acessíveis, têm possibilitado a crescente aplicação de visão computacional nas mais diversas áreas. Como exemplos em visão computacional podemos citar: análise automática de sêmen humano, medição computadorizada do dimensional de peças, rastreio de alvos para detecção de intrusos, análise morfológica de células, reconhecimento e sintetização de faces humanas, entre outras.

A criação de sistemas de visão computacional, seja para aplicações em inspeção industrial ou para navegação de robôs móveis, envolve, quase sempre, a execução de um determinado conjunto de transformações em dados obtidos de sensores como câmeras e sonares. Para esta classe de problemas é possível a determinação de uma arquitetura de software que suporte as principais etapas do desenvolvimento deste tipo de sistemas, enfatizando o reaproveitamento de código e minimizando o esforço despendido em atividades repetitivas.

Uma interessante aproximação para construção de máquinas inteligentes é expandir os sentidos através dos quais o computador pode comunicar-se com o mundo exterior. A utilização da visão de máquina amplia as aplicações em computadores, como por exemplo, navegação móvel por robô, tarefas complexas de manufatura, análise de imagens de satélites e processamento de imagens médicas.

A visão computacional procura oferecer de modo mais eficiente possível uma vasta quantidade de informações ao sistema computacional para que este possa agir como esperado.

Há sempre a necessidade de construir um modelo da imagem processada. Com base nessa necessidade, muitas teorias sobre o objetivo da visão computacional estão baseadas na reprodução das cenas das imagens processadas. (Shapiro e Stockamn, 2001)

A visão computacional abrange um vasto leque de temas e esta relacionada com varias outras disciplinas, portanto, não há uma formula padrão de como fazer, ou estudar, ou pesquisar a visão computacional.

Nas pesquisas cientificas, nos trabalhos acadêmicos, nos produtos comerciais, existe uma diversificada quantidade de métodos para resolver as tarefas atribuídas aos sistemas de visão computacional.

Na disciplina da física, os sistemas de visão computacional permitem contribuir com sensores de imagens que detectam a radiação eletromagnética ou infra-vermelho.

Com os avanços das tecnologias de visão computacional, a medicina se coloca como uma das maiores beneficiadas. O processo de extração de informações das imagens com o objetivo de estabelecer diagnósticos médicos mais precisos vem ganhando força. O avanço das técnicas de processamento de imagens auxilia no resultado de diagnósticos com maior índice de acerto.

1.2Visão Computacional e Processamento de Imagens

Não é clara a fronteira entre o processamento de imagens e visão computacional.

Podemos dizer que processamento de imagens é um processo onde a entrada do sistema é uma imagem e a saída é um conjunto de valores numéricos, que podem ou não compor outra imagem. A visão computacional procura emular a visão humana, portanto também possui como entrada uma imagem, porém, a saída é uma interpretação da imagem como um todo, ou parcialmente. Como serão demonstrados, os processos de visão computacional geralmente iniciam com o processamento de imagens. Conforme Gonzalez o espectro que vai do processamento de imagens até a visão computacional pode ser dividido em três níveis: baixo-nível, nível-médio e alto-nível.

Os processos de baixo-nível envolvem operações primitivas, tais como a redução de ruído ou melhoria no contraste de uma imagem.

Os processos de nível-médio são operações do tipo segmentação (particionamento da imagem em regiões) ou classificação (reconhecimento dos objetos na imagem).

Os processos de alto-nível estão relacionados com as tarefas de cognição associadas com a visão humana.

FIGURA 1 – Exemplo no Processamento de Imagens.

Veículo em imagem escura (esquerda). Após uma equalização de histograma, em nível de cinza, onde a placa do veículo pode ser lida (direita).

A Figura 1 mostra as diferenças entre processamento de imagens e visão computacional. A imagem da esquerda mostra o veículo, porém, não é possível ler a placa, pois a imagem está muito escura. Na imagem da direita foi feita uma operação de equalização de histograma da imagem, tipicamente uma operação de processamento de imagem. O resultado é uma imagem mais clara e que permite a leitura da placa do veículo. Uma operação de visão computacional é a aplicação de um operador que extrai a placa do veículo e identifica as letras e números da placa, possibilitando que os dados do veículo sejam encontrados em um banco de dados.

OpenCV (Open Source Computer Vision) é uma biblioteca de programação, de código aberto, desenvolvida inicialmente pela Intel Corporation. O OpenCV implementa uma variedade de ferramentas de interpretação de imagens, indo desde operações simples como um filtro de ruído, até operações complexas, tais como a análise de movimentos, reconhecimento de padrões e reconstrução em 3D. O pacote OpenCV está disponível gratuitamente na Internet bem como o manual de referência.

2processamento de imagens

2.1Filtros

Os processos de visão computacional, muitas vezes, necessitam de uma etapa de pré-processamento envolvendo o processamento de imagens. As imagens de onde queremos extrair alguma informação em alguns casos precisam ser convertidas para um determinado formato ou tamanho e precisam ainda ser filtradas para remover ruídos provenientes do processo de aquisição da imagem.

Os ruídos podem aparecer de diversas fontes, como por exemplo, o tipo de sensor utilizado, a iluminação do ambiente, as condições climáticas no momento da aquisição da imagem, a posição relativa entre o objeto de interesse e a câmera. Note que ruído não é apenas interferência no sinal de captura da imagem, mas também interferências que possam atrapalhar a interpretação ou o reconhecimento de objetos na imagem. A Figura 2 mostra imagens de árvores em condições diferentes para exemplificar estes tipos de interferência.

FIGURA 2 - Imagens de árvores obtidas em condições diferentes.

Topo à esquerda uma imagem “normal”, topo à direita com interferência de iluminação, baixo à esquerda interferência do período do ano e baixo à direita mudança do tipo de sensor.

Os filtros são as ferramentas básicas para remover ruídos de imagens, neste caso, o ruído é aquele que aparece no processo de aquisição da imagem. A Figura 3 apresenta um exemplo de uma imagem com ruído (à esquerda) e da imagem filtrada (à direita).

FIGURA 3 - Do lado esquerdo uma imagem com ruído, e na direita a mesma imagem após filtragem.

2.2Domínio e Espaço

O termo domínio espacial se refere à imagem em si, e métodos que atuam no domínio espacial estão baseados na manipulação direta dos pixels da imagem. Os processos no domínio espacial são caracterizados pela seguinte equação: g(x, y) = T( f (x, y)), onde: f(x,y) é a imagem original, T( ) é uma transformação na imagem e g(x,y) é a imagem transformada. T é uma operação definida sobre uma vizinhança de influência do pixel que está localizado na posição x, y. A idéia de vizinhança de influência considera os pixels ao redor da posição x, y. Esta vizinhança é definida por uma região quadrada (ou retangular) e de tamanho (lado) impar. A Figura 4 mostra alguns exemplos de vizinhança com tamanhos variados, estas regiões, que definem matrizes nas operações de transformação, também são chamadas de máscaras.

FIGURA 4 - Regiões de vizinhança (máscaras) de tamanhos diferentes, porém, todos com lado impar.

2.3Transformação da Intensidade

No caso mais simples o operador T é computado em uma vizinhança de tamanho 1x1, isto é, apenas o valor do pixel no ponto é suficiente para determinar o valor na imagem processada. Este tipo de operação é chamada de função de transformação de intensidade, é utilizada para alterar a intensidade da imagem e pode ser aplicada a toda a imagem ou a uma parte dela. Uma operação bastante útil é a binarização de uma imagem, que utiliza um certo valor de corte (k). Este tipo de transformação é definida na equação contida na Figura 5.

(Parte 1 de 5)

Comentários