um estudo das técnicas de obtenção de forma a partir de...

83
Gabriel Tavares Malizia Alves Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada para Engenharia Dissertação de Mestrado Dissertação apresentada como requisito parcial para a obtenção do Título de Mestre pelo Programa de Pós-Graduação de Informática da PUC-Rio. Orientador: Professor Marcelo Gattass Co-orientador: Professor Paulo Cezar Carvalho

Upload: phamnguyet

Post on 10-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Gabriel Tavares Malizia Alves

Um Estudo das Técnicas de Obtenção de Forma a partir de Estéreo e Luz Estruturada

para Engenharia

Dissertação de Mestrado

Dissertação apresentada como requisito parcial para a obtenção do Título de Mestre pelo Programa de Pós-Graduação de Informática da PUC-Rio.

Orientador: Professor Marcelo Gattass

Co-orientador: Professor Paulo Cezar Carvalho

Page 2: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar
Page 3: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Aos meus pais.

Page 4: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Agradecimentos

A Deus, nosso Pai de amor infinito, por viver, aprender, compartilhar, errar e consertar,

sempre seguindo em frente.

À minha família. Em especial aos meus pais Nelson Malizia Alves e Maria Alzemira

Tavares de Oliveira. Tudo que sou e conquistei é fruto de seus muitos anos de dedicação

e apoio. Se Deus concede aos pais a missão de criar os seus filhos, dando amor,

educação, ensinamentos e bons exemplos para que estes tenham todas as condições para

se tornarem homens de bem, então meus pais cumpriram a sua missão com louvor.

À minha namorada Maraísa Martinha Gambarra, pelo carinho e companheirismo ao

longo destes dois anos juntos.

Ao meu orientador e Professor Marcelo Gattass pelos importantes conhecimentos

adquiridos. Em especial pelas aulas que transmitiram grande experiência de um mestre

com anos de estrada, organização e entusiasmo de quem realmente gosta do que faz.

Ao Professor Paulo Cezar Coelho, pessoa de grandes conhecimentos, pelos importantes

sugestões dadas ao trabalho.

Aos Professores de Mestrado Bruno Feijó, Clarisse Sieckenius de Souza, Luiz Henrique

de Figueiredo, Ruy Luiz Milidiú e Waldemar Celes Filho por tudo que aprendi ao longo

destes dois anos e que certamente foi base deste trabalho e de outros.

A Anselmo Antunes Montenegro e Asla Medeiros e Sá pelas importantes contribuições

dadas a este trabalho.

À CAPES pelo importante apoio financeiro e ao Departamento de Informática da PUC-

RIO pela oportunidade de estudar nesta unidade que continua a estabelecer os

parâmetros de excelência em ensino e pesquisa no Brasil.

Page 5: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Aos amigos e colegas, de mestrado e do Tecgraf, Calomeni, Felipe, Gustavo, Hedlena,

Manuel, Márcio Henrique, Marcos, Michel, Rodrigo, Romano e Tiago pelos bons

momentos vividos juntos, apoio e amizade.

Aos meus coordenadores do Tecgraf Alberto Barbosa Raposo, Carlos Cassino e

Eduardo Thadeu Leite Corseuil pelas oportunidades de crescimento profissional,

projetos desenvolvidos e conhecimentos transmitidos.

Aos amigos e irmãos da Casa Sentimento.

Page 6: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Resumo

Malizia, Gabriel; Gattass, Marcelo (Orientador); Carvalho, Paulo Cezar (Co-

orientador); Um Estuda das Técnicas de Obtenção de Forma a partir de

Estéreo e Luz Estruturada para Engenharia; Rio de Janeiro, 2005. 82p.

Dissertação de Mestrado – Departamento de Informática, Pontifícia Universidade

Católica do Rio de Janeiro.

Há uma crescente demanda pela criação de modelos computacionais

representativos de objetos reais para projetos de engenharia. Uma alternativa barata e

eficaz consiste na utilização de técnicas de Visão Computacional baseada em câmeras e

projetores disponíveis no mercado de computadores pessoais.

Este trabalho avalia um sistema óptico estéreo ativo para capturar formas

geométricas de objetos utilizando um par de câmeras e um projetor digital. O sistema se

baseia em idéias de trabalhos anteriores, com duas contribuições nesta dissertação. A

primeira é uma técnica mais robusta de detecção de pontos notáveis em padrões de

calibração das câmeras. A segunda contribuição consiste num novo método de ajuste de

cilindros que visa aplicar o sistema estudado na inspeção de instalações de dutos

industriais.

As conclusões apresentadas procuram avaliar a robustez e precisão do sistema

proposto como um instrumento de medidas em Engenharia.

Palavras-Chave

Luz estruturada, mapa 3D estéreo, calibração de câmera coplanar, reconhecimento

de formas.

Page 7: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Abstract

Malizia, Gabriel; Gattass, Marcelo (Supervisor); Carvalho, Paulo Cezar (Co-

supervisor); A Study of Techniques for Shape acquisition using Stereo and

Structured Light aimed for Engineering; Rio de Janeiro, 2005. 82p. M.Sc.

Dissertation – Departamento de Informática, Pontifícia Universidade Católica do

Rio de Janeiro.

There has been a growing demand for creation of computer models based on real

models for engineering projects. A cheap and effective alternative consists in using

Computer Vision techniques based on cameras and projectors available at the personal

computer market.

This work evaluates a stereo optic system for capturing geometric shapes from

objects using a pair of cameras and a single digital projector. The system is based on

former works and a pair of contributions is obtained at this dissertation. The first

contribution is a more robust technique for finding corners and points at cameras

calibration patterns. And the second one consists on a new method for cylinder fit for

inspecting industrial piping facilities with the studied system.

The final conclusions evaluate the robustness and precision from the proposed

system as a measurement tool for Engineering.

Keywords

Structured light, stereo 3D map, coplanar camera calibration, shape recognition.

Page 8: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Sumário

1 Introdução ..........................................................................................................9 2 Visão Computacional e Obtenção de Formas .......................................... 11

2.1 Visão Computacional ............................................................................. 11 2.2 Forma a partir de Estéreo Ativo ........................................................... 12

2.2.1 Codificação Temporal .................................................................... 15 2.2.2 Codificação Espacial ...................................................................... 17 2.2.3 Codificação Modulada .................................................................... 18 2.2.4 Codificação com Cores .................................................................. 19 2.2.5 Classificação dos Métodos ........................................................... 20 2.2.6 Sistema Estudado ........................................................................... 22

3 Sistema Estudado ........................................................................................... 24 3.1 Calibração de Câmera ............................................................................ 24

3.1.1 Padrão com Elipses ........................................................................ 31 3.1.2 Padrão com Vértices ....................................................................... 33

3.2 Luz Estruturada Codificada .................................................................. 38 3.3 Captura e Processamento de Imagem ................................................ 41 3.4 Triangulação e Modelo Final ................................................................. 48

4 Implementação, Resultados e Testes ......................................................... 53 4.1 Implementação ........................................................................................ 53

4.1.1 Shaper ................................................................................................ 53 4.1.2 Visualizer ........................................................................................... 55 4.1.3 Arquivo de Saída ............................................................................. 56

4.2 Resultados ................................................................................................ 57 4.2.1 Padrões de Calibração ................................................................... 60 4.2.2 Câmeras ............................................................................................ 61 4.2.3 Projetores .......................................................................................... 62

4.3 Testes ........................................................................................................ 63 4.3.1 Primeiro Teste .................................................................................. 63 4.3.2 Segundo Teste ................................................................................. 66

5 Conclusão ........................................................................................................ 71 5.1 Trabalhos Futuros ................................................................................... 73

6 Referências Bibliográficas ............................................................................ 74 Apêndice A – OpenCV ........................................................................................... 77 Apêndice B – Tabelas de Dados dos Testes .................................................... 80

B.1 Primeiro Teste .......................................................................................... 80 B.2 Segundo Teste ......................................................................................... 82

Page 9: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

1 Introdução

A Visão Computacional é uma área de pesquisa relativamente nova e que tem por

objetivo estimar ou explicitar as propriedades geométricas e dinâmicas do mundo

tridimensional a partir de imagens digitais. Uma das suas aplicações, estudada neste

trabalho, é a aquisição de formas geométricas de objetos a partir de imagens capturadas

com câmeras digitais. Comparando com outras técnicas de obtenção de formas, esta

alternativa é barata e consegue alcançar bons resultados utilizando câmeras e projetores

disponíveis no mercado de computadores pessoais.

Este trabalho avalia um sistema óptico para capturar formas geométricas de

objetos. Para isso utilizou-se um par de câmeras, previamente calibradas, em uma

configuração estérea e um projetor digital para projetar padrões de luz estruturada sobre

os objetos e resolver a correlação entre as imagens das câmeras. A partir destas

informações, criam-se modelos geométricos correspondentes aos objetos capturados,

caracterizando o sistema como um sistema óptico estéreo ativo.

O sistema se baseia em idéias de trabalhos anteriores, com duas contribuições

nesta dissertação. A primeira é uma técnica mais robusta de detecção de pontos notáveis

em padrões de calibração das câmeras, com uma precisão menor do que um pixel. São

apresentados dois padrões de calibração distintos, cada um com vantagens e

desvantagens, que podem ser reutilizados em outras aplicações, inclusive em sistemas

que trabalham em tempo real. A segunda contribuição consiste num novo método de

ajuste de cilindros que visa aplicar o sistema estudado na inspeção de instalações de

dutos industriais. A partir do modelo de um duto, calculam-se informações de interesse,

como raio e direção. A inspeção automática é uma subárea de estudos da Visão

Computacional e procura auxiliar tarefas de inspeção diminuindo o tempo gasto com

rotinas repetitivas, permitindo uma investigação remota e disponibilizando ferramentas

de medidas para apoio a decisões.

Assim, esta dissertação procura avaliar a robustez e precisão do sistema estudado

como um instrumento de medidas em Engenharia. Ela foi organizada em cinco

capítulos, incluindo este primeiro capítulo de introdução. Os demais capítulos estão

descritos a seguir.

Page 10: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

1 Introdução

10

O segundo capítulo dá uma descrição geral da Visão Computacional, de suas

propriedades e aplicações. Depois são apresentados os conceitos teóricos da captura de

formas a partir de estéreo ativo, focando nos diversos métodos de codificação de luz

estruturada, seus benefícios e limitações.

No terceiro capítulo, encontra-se a descrição do sistema estudado. Cada um dos

pontos do sistema é descrito, apresentando os conceitos teóricos importantes para o

entendimento do trabalho: calibração de câmeras e padrões de calibração, codificação

de luz estruturada utilizada, captura e processamento de imagens e triangulação para

gerar o modelo final.

O quarto capítulo apresenta as duas aplicações implementadas. Em seguida são

apresentados os resultados obtidos junto com as observações e comentários pertinentes.

Por último apresentamos os dois testes realizados em cima da implementação do

sistema.

Finalmente o quinto capítulo encerra este trabalho com uma seção de conclusão e

outra recomendando possíveis trabalhos futuros. As referências bibliográficas se

encontram ao final da dissertação, assim como os apêndices.

Page 11: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

Neste capítulo são abordadas as principais propriedades e áreas de atuação da

Visão Computacional e sua característica multidisciplinar. Depois são apresentados os

conceitos teóricos da captura de formas a partir de estéreo ativo, focando nos diversos

métodos de codificação de luz estruturada, seus benefícios e limitações.

2.1 Visão Computacional

Visão Computacional foi definida em [2], sendo o conjunto de técnicas

computacionais para estimar ou explicitar as propriedades geométricas e dinâmicas do

mundo tridimensional a partir de imagens.

A palavra visão está relacionada à capacidade que um ser tem de ver e entender o

mundo em que habita. A imagem é formada na mente através das organizações física,

química e biológica dos olhos. Em cima da visão, o cérebro realiza diversas funções.

Por exemplo, em um movimento para se pegar um copo, a visão tem papel fundamental

junto com a coordenação motora. Através da visão guiamos a nossa mão até o copo,

encaixando os dedos no seu corpo cilíndrico. Gestos simples como esses realizamos aos

milhares por dia sem nos darmos conta, porém que se tornam extremamente difíceis

sem a visão, como andar. Diariamente utilizamos nossa visão para reconhecer objetos,

pessoas, calcular distâncias, verificar se há buracos na rua, nuvens cinzas no céu,

encontrar uma vaga livre no estacionamento etc.

O mesmo se sucede na Visão Computacional. Ao invés dos olhos, câmeras são

utilizadas para se obter imagens digitais. Em cima destas imagens são aplicadas técnicas

computacionais para extrair informações desejadas do mundo tridimensional. Estas

informações variam muito de natureza e podem ser empregadas para variadas

aplicações em diferentes áreas. Na medicina, imagens de órgãos e células são utilizadas

no diagnóstico e tratamento de doenças. Na robótica a contribuição é ampla com

identificação de objetos, localização, inspeção e locomoção. Há também aplicações

militares para guiar mísseis e veículos através de trajetórias pré-definidas. A astronomia

utiliza imagens de satélites e telescópios para identificar a composição química de

planetas e criar um modelo da sua superfície enquanto que a indústria automobilística

Page 12: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

12

utiliza imagens digitais em sistemas de inspeção industrial. Estes são alguns exemplos

de áreas e aplicações onde são empregadas técnicas de Visão Computacional.

Computação Gráfica e Processamento de Imagens são duas áreas correlacionadas

à Visão Computacional. De uma maneira geral, a Computação Gráfica utiliza

informações, como grafos de cena, tipos de materiais, geometria dos objetos, tipo de

projeção utilizada etc. para gerar imagens. A Visão Computacional faz o caminho

contrário, procurando obter informações de cenas a partir de imagens digitais

previamente capturadas. Para isso quase sempre faz uso de métodos de Processamento

de Imagens. O interesse nestes métodos surgiu da necessidade de melhorar a qualidade

da informação pictórica para a interpretação humana. Hoje em dia estes métodos são

também utilizados em aplicações de Visão Computacional, de maneira que as duas

áreas se confundem.

Por fim, apresentamos uma outra definição, segundo Vishvjit Nalwa [18]: a Visão

Computacional visa inferir e descrever automaticamente estruturas e propriedades de

um mundo 3D, possivelmente dinâmico, a partir de uma ou múltiplas imagens 2D do

mundo. As imagens podem ser coloridas ou monocromáticas, captadas por um ou

múltiplos sensores que, por sua vez, podem ser estacionários ou móveis.

2.2 Forma a partir de Estéreo Ativo

Uma das áreas de pesquisa da Visão Computacional é a aquisição de modelos

geométricos de objetos reais a partir de imagens. O processo de se obter a forma e

aparência de objetos reais, utilizando-se câmeras e luzes, é chamado de fotografia 3D. A

rápida evolução de equipamentos eletrônicos, como câmeras e projetores, permite que

se monte sistemas de aquisição de baixo custo e cada vez mais eficazes. Modelos

geométricos de objetos reais são utilizados por diferentes áreas, tipicamente design

industrial, jogos, educação, arte, arqueologia, comércio eletrônico etc. Com o advento

de métodos e equipamentos, mais áreas poderão fazer uso destes modelos como, por

exemplo, inspeção industrial.

Uma classificação dos métodos para aquisição de formas é dada na figura 2.1.

Existem diferentes métodos ópticos para aquisição de formas, cada um com suas

qualidades e limitações, tais como resolução e precisão. A escolha deve ser feita tendo

Page 13: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

13

em vista o contexto de utilização. Por exemplo, modelar um navio é diferente do que

modelar um carro. As principais limitações dos métodos ópticos é que estes podem

obter apenas porções visíveis da superfície e são sensíveis a suas propriedades como

transparência, brilho, textura, falta de cor etc. Esta dissertação está focada no estudo dos

métodos ópticos, mais precisamente em métodos estéreos ativos, em destaque na figura.

Figura 2.1 – Classificação dos métodos de aquisição de formas.

Os princípios básicos utilizados pelos métodos ópticos são os mesmos da visão

estéreo. Se duas câmeras observam um mesmo ponto na cena, então a sua posição pode

ser obtida através da interseção dos raios correspondentes à projeção na imagem de cada

câmera. Esse processo é chamado de triangulação.

A grande dificuldade de se utilizar visão estéreo para recuperar formas 3D é

realizar a correspondência entre os pontos nas duas imagens. Os algoritmos que

realizam esta correspondência têm dificuldades quando a cena é muito complexa ou

simples demais. Por exemplo, objetos lisos e monocromáticos geram uma falta de

textura nas imagens capturadas, impossibilitando o processamento da correspondência.

Uma maneira de contornar este problema é empregar o método estéreo ativo.

Utilizando uma fonte de luz, a cena é marcada por padrões conhecidos. Esta fonte de luz

é chamada de luz estruturada. Cada tipo de luz estruturada possui um conjunto de

padrões próprios que são projetados sobre a cena para marcá-la. Por exemplo, podemos

Page 14: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

14

projetar um padrão de apenas um ponto com um dispositivo laser. Este ponto é

projetado sobre o objeto, cuja forma gostaríamos de obter. Basta então encontrar este

mesmo ponto nas duas imagens obtidas e fazer a triangulação posteriormente para

encontrar a sua localização no espaço. Poderíamos repetir este processo deslocando o

ponto de lugar para obtermos mais pontos do modelo. Porém este procedimento seria

extremamente demorado. Daí a necessidade de utilizarmos luz estruturada para acelerar

a velocidade de captura.

Podemos, por exemplo, projetar um padrão com vários pontos sobre a cena. Para

distinguir entre os diversos pontos e realizar a triangulação, devemos codificá-los

apropriadamente de maneira a identificá-los posteriormente para que o problema de

correspondência possa ser feito sem ambigüidades. Assim estaremos acelerando a

velocidade de captura ao aumentar o número de pontos projetados simultaneamente.

A figura 2.2 mostra um exemplo de sistema estéreo ativo utilizado em [13]. O

projetor é usado para projetar padrões de luz estruturada com listras codificadas sobre a

cena que é capturada por uma câmera digital.

Figura 2.2 – Exemplo de sistema estéreo ativo capturando uma cena.

Podemos utilizar duas configurações distintas. A primeira seria manter as duas

câmeras, enquanto que a luz estruturada serviria para marcar o objeto com vários pontos

distintos que são utilizados posteriormente na triangulação. A segunda seria utilizar uma

câmera e uma fonte de luz calibrada, onde sua posição e direção de projeção são

Page 15: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

15

conhecidas. A triangulação é feita entre a câmera e o projetor. Para cada ponto

codificado no padrão projetado podemos traçar um raio, que sai do centro da fonte de

luz, de maneira semelhante com o que fazemos com uma câmera calibrada.

Em resumo, os três passos importantes para recuperar formas com um sistema

estéreo ativo são:

• Calibrar as câmeras.

• Estabelecer a correspondência entre os pontos nas imagens e os elementos dos

padrões projetados.

• Reconstrução das coordenadas 3D de pontos da cena.

A calibração de câmera é tratada no próximo capítulo, assim como a reconstrução

das coordenadas 3D de pontos da cena. Esta seção se concentra no segundo passo. Dois

estudos foram feitos a respeito de métodos que utilizam luzes estruturadas codificadas

para resolver o problema de correspondência em [21] e [10]. Esta seção foi baseada

neste último e não tem por objetivo reproduzir todas as descrições de métodos de

codificação de luz estruturada.

As diferentes abordagens para codificação da luz estruturada são apresentadas a

seguir.

2.2.1 Codificação Temporal

A codificação temporal é o método de codificação mais utilizado pelos trabalhos

atuais. A idéia principal se baseia em projetar uma seqüência de padrões onde cada

elemento do padrão codifica os dígitos binários de um código. Na figura 2.2, padrões

com listras são projetados sobre a cena seqüencialmente. O código binário é convertido

para listras brancas e pretas. As brancas correspondem ao dígito binário um, enquanto

que as listras pretas representam o dígito binário zero.

Para distinguir entre as diversas listras, deve-se codificá-las apropriadamente de

maneira que o problema de correspondência possa ser resolvido sem ambigüidades. Isso

é feito projetando-se uma seqüência de padrões com listras, um após o outro, em uma

codificação temporal.

Page 16: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

16

Figura 2.3 – Codificação temporal binária.

Os padrões são projetados em diferentes momentos, em uma seqüência definida.

Cada listra em um padrão projetado corresponde a um dígito binário, de maneira que a

seqüência de padrões fornece os dígitos de um código binário. Cada listra é

univocamente determinada pelo seu código. A figura 2.3 mostra que a seqüência de n

padrões produz 2n listras codificadas e a resolução cresce exponencialmente com o

número de padrões utilizados. Repetimos a mesma seqüência de padrões, porém com

listras horizontais. No final, teremos iluminado a cena estática com nn 22 × regiões,

cada uma com seu código horizontal e vertical. A figura 2.4 ilustra o aspecto de um

objeto iluminado por um dos padrões da luz estruturada codificada.

Figura 2.4 – Objeto iluminado por luz estruturada.

Page 17: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

17

Em [23] foi proposta a codificação temporal binária apresentada acima. Já em [26]

foi proposta a mesma codificação binária, porém para cada padrão projetado também se

projetava o seu inverso correspondente, onde as linhas pretas eram projetadas brancas e

vice-versa. Isso permite uma melhor identificação de cada listra, como iremos ver na

seção Captura e Processamento de Imagens do terceiro capítulo.

A codificação binária foi substituída pela codificação de Gray em [22]. Esta

segunda codificação mais robusta, utilizada neste trabalho, é apresentada também no

terceiro capítulo.

2.2.2 Codificação Espacial

A codificação espacial requer apenas um único slide a ser projetado, permitindo a

aquisição de cenas dinâmicas. Porque se utiliza apenas um slide, este possui um maior

número de elementos padronizados de maneira a garantir a resolução desejada. Na

codificação espacial a vizinhança de um pixel é utilizada para codificar a sua posição. A

maior dificuldade deste método é recuperar o padrão projetado sobre o objeto

modelado, limitando o tipo de superfícies capturadas. Os dois códigos seguintes são

apresentados representando as várias abordagens existentes de codificação espacial.

Figura 2.5 – Padrões de codificação espacial.

Padrões de grid

Esta codificação consiste em utilizar um conjunto de listras como guia. Muitos

padrões diferentes baseados neste princípio podem ser criados. Um exemplo pode

ser visto na figura a5.2 onde a grade de listras é parcialmente codificada com

Page 18: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

18

quadrados usados como referência [25]. Ambos os eixos são codificados

simultaneamente. A limitação desta abordagem é que descontinuidades na superfície

do objeto produzem também uma descontinuidade nos identificadores, podendo

fazer com que o decodificador se perca.

Matriz Codificada

Esta codificação, proposta em [27], consiste em projetar uma matriz de pontos.

Cada linha horizontal da matriz codifica uma palavra. Inicialmente é projetada uma

matriz contendo todos os pontos para extrair a posição de cada um deles.

Posteriormente projeta-se a matriz codificada. As figuras b5.2 e c5.2 ilustram as

matrizes. A dificuldade deste método está em determinar cada ponto, que pode ter

sua forma modificada pela superfície do objeto capturado. O tamanho de cada ponto

deve manter uma relação com a resolução de captura, limitando o tamanho da

matriz.

2.2.3 Codificação Modulada

Outra possibilidade é modular a intensidade da luz projetada, como foi proposta

em [28]. A posição de um pixel pode ser codificada, sem utilizar informação de

vizinhança, em função da intensidade da luz modulada. Projeta-se posteriormente um

padrão de iluminação constante, o qual é utilizado também para a decodificação,

limitando a sua aplicação a cenas estáticas. Utiliza-se a diferença de intensidade para

recuperar a posição dos pixels.

Figura 2.6 – Padrão de luz modulada.

Esta abordagem é sensível a ruídos da câmera e a certas superfícies. Texturas

podem interferir na decodificação, tornando o método não robusto.

Page 19: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

19

2.2.4 Codificação com Cores

Os avanços tecnológicos na captura de imagens permitiram a utilização de cores

nos padrões projetados. A vantagem está em se utilizar três canais simultaneamente ao

invés de apenas um. O grande problema da sua utilização está na recuperação. Luz

colorida em superfícies coloridas não se comporta de maneira desejada, o que limitava a

sua utilização a cenas com cores neutras nos primeiros trabalhos.

Em [29] são utilizadas listras coloridas com fendas entre elas. A figura a7.2

ilustra o padrão. A codificação é feita através da seqüência utilizada. A mesma idéia de

se modular a intensidade da luz foi feita em [30] utilizando-se cores, gerando o padrão

arco-íris da figura b7.2 . Já em [31] utilizou-se um padrão periódico, ilustrado na figura

c7.2 , feito a partir da união dos padrões de intensidade senoidal das três cores fora de

fase entre si, representadas na figura d7.2 .

Figura 2.7 – Padrões com cores.

Page 20: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

20

Um estudo teórico para determinar o maior tamanho possível de uma matriz

formada por pontos e codificada com um certo número de cores foi feito em [32].

Quando maior a matriz, maior a resolução obtida. A posição de cada ponto é codificada

pela sua cor e as cores dos seus quatro vizinhos: superior, inferior, esquerdo e direito.

Ambos os eixos são codificados simultaneamente. A figura a8.2 ilustra uma matriz

gerada. Dependendo da cena, algumas vezes são difíceis de se determinar os vizinhos,

como é ilustrado na figura b8.2 .

Figura 2.8 – Padrões com cores.

Mais recentemente foi proposto em [10] a utilização de um código de Gray

colorido, onde cada um dos três canais de cores contém um slide que corresponde a um

slide da seqüência de slides de Gray. Essa abordagem divide o número de slides

necessários por três do padrão de Gray original para uma mesma resolução. Na prática

esta redução permite capturar cenas dinâmicas utilizando um método de codificação

temporal como mostram os resultados apresentados.

2.2.5 Classificação dos Métodos

Como vimos ao longo desta seção, há três possíveis maneiras de se codificar a luz

projetada: codificação espacial, codificação temporal e modulação de cores através da

intensidade projetada. Uma taxonomia foi proposta em [32] baseada na diferenças entre

os padrões e as restrições que estes impõem à cena a ser capturada.

Modulação cromática impõe restrições às cores permitidas na cena. Quando

codificação espacial é utilizada, continuidade local da cena é necessária para se

Page 21: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

21

recuperar o código transmitido. Já a codificação temporal restringe o movimento da

cena. A tabela abaixo apresenta o resumo destas idéias.

Hipóteses Métodos Restrições

Coerência espacial Métodos baseados na

vizinhança

Descontinuidades na superfície do

objeto não são permitidas

Coerência temporal

Muitos slides

Versus

Um slide

Restrito a cenas estáticas

Versus

Permite cenas dinâmicas

Refletividade

Binário / tons de cinza

Versus

Codificação com cores

Nenhuma restrição de cor

Versus

Objetos com cores neutras

Figura 2.9 – Taxonomia baseada nas diferenças e restrições dos padrões.

Uma outra taxonomia foi proposta em [10], na qual é feita uma analogia entre luz

estruturada codificada e um sistema de comunicação digital. As coordenadas do projetor

são codificadas pelos padrões e transmitidas para a cena. Para cada ponto na imagem da

câmera uma transmissão com ruído é recebida e precisa ser decodificada. Portanto cada

sensor da câmera age como um receptor e a imagem capturada como um conjunto de

símbolos recebidos. O meio de transmissão é a superfície do objeto capturado e a

mensagem é a posição codificada pelo pixel do projetor. Tendo em vista esta analogia,

duas questões devem ser estudadas: as limitações do canal de transmissão, relacionado

com as propriedades da superfície, e qual codificação utilizar, o que irá restringir os

tipos de objetos capturáveis.

Ao contrário da taxonomia anterior, nesta outra é o código utilizado que impõe

restrições à cena (meio de transmissão). Por exemplo, se utilizarmos codificação

espacial, a cena deve preservar a estrutura espacial, caso contrário haverá perda de

informação. As principais características de um código são o número de símbolos

distintos (sinais básicos), o tamanho da palavra composta por símbolos e, no caso de

codificação espacial, a geometria utilizada.

Page 22: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

22

Método

Número de slides

(tamanho da palavra)

Intensidade de modelação / canais

(número de caracteres)

Vizinhança (região do caractere)

Resolução (tamanho do

alfabeto)

Código de Gray

n Binário (2) /

monocromático Pixel único 2n linhas

Cód. de Gray colorido

n Binário (2) / RGB Pixel único 23n linhas

Padrão arco-íris

2 28 / RGB Pixel único (28)3 linhas

Matriz de pontos

1 3 (R, G, B) Quatro

vizinhos 35

Figura 2.10 – Taxonomia baseada em transmissões de dados digitais.

Deste ponto de vista fica claro de perceber que o código impõe restrições aos

objetos capturados. A estrutura espacial da codificação é perdida quando há

descontinuidades na superfície do objeto capturado. Também é necessário recuperar a

intensidade de modulação corretamente, o que requer que a superfície não distorça

intensidades ou cores demasiadamente. Finalmente, o tamanho da palavra codificada

impede que haja movimento enquanto a palavra ainda não esteja completa.

2.2.6 Sistema Estudado

O sistema estudado neste trabalho para aquisição de formas geométricas pode ser

classificado como um sistema óptico estéreo ativo. Ele composto por duas câmeras de

vídeo e um projetor digitais ligados ao computador. O par de câmeras são calibrados

simultaneamente com o mesmo padrão de calibração. Como foi visto, a correspondência

entre pontos nas imagens das duas câmeras é feita projetando-se luz estruturada

codificada na cena.

A codificação temporal foi escolhida para este trabalho, pois permite capturar uma

maior variedade de cenas e objetos sem restrições de continuidade nas superfícies

capturadas e de cores neutras. A princípio não estamos interessados em capturar cenas

dinâmicas, mas na robustez da decodificação e na precisão do sistema. Utilizou-se o

código binário de Gray monocromático que permite capturar cenas com diferentes cores

e exige menos do hardware utilizado.

O modelo 3D final é constituído por pontos no espaço, obtidos triangulando

pontos correspondentes nas duas câmeras. A figura 2.11 mostra a disposição física do

Page 23: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

2 Visão Computacional e Obtenção de Formas

23

sistema. Cada câmera é posicionada de um lado do projetor, de maneira a melhor

capturar o par de imagens.

Figura 2.11 – Disposição física do sistema.

O próximo capítulo apresenta os conceitos teóricos envolvidos no trabalho que

não foram apresentados neste capítulo.

Page 24: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Estudado

Neste capítulo descrevemos o sistema estudado e posteriormente implementado

para a captura de modelos computacionais e os conceitos teóricos envolvidos. Cada

ponto é aprofundado nas seções correspondentes, divididas em calibração de câmeras,

luz estruturada codificada utilizada, captura e processamento de imagens, triangulação e

modelo final.

3.1 Calibração de Câmera

O primeiro passo do sistema estudado consiste em calibrar as duas câmeras.

Calibrar uma câmera é determinar os valores dos parâmetros extrínsecos e intrínsecos

da mesma. Em outras palavras, a calibração consiste em determinar a posição e

orientação da câmera em relação a uma referência fixa e obter suas características

óptica, geométrica e digital.

Figura 3.1 – Modelo de Câmera de Tsai.

Entre os diversos métodos existentes para calibração de câmera, utilizou-se o

método proposto por Tsai em [3] e [4] nesta tese. O modelo de câmera de Tsai é

baseado no modelo de projeção perspectiva de câmera completa, com lentes, e possui

Page 25: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

25

um conjunto de parâmetros extrínsecos e outro de parâmetros intrínsecos. Cada

conjunto de parâmetros pode ser estimado separadamente. Os parâmetros utilizados

estão descritos nesta seção.

A figura 3.1 ilustra o modelo utilizado. O sistema de coordenadas do mundo é

definido por ( )www ZYX ,, , sendo wO a origem do mundo. O sistema de coordenadas em

relação à câmera é dado por ( )ccc ZYX ,, , sendo cO a origem deste sistema. O primeiro

passo do algoritmo é determinar a posição e orientação da câmera em relação a uma

referência fixa. Para isso utilizamos um conjunto de parâmetros que identificam

univocamente a transformação entre a posição e orientação da câmera e a posição e

orientação de referência. Estes são os parâmetros extrínsecos da câmera.

Os parâmetros extrínsecos são dados por:

• Um vetor de translação T que descreve a posição da origem cO em relação à

origem de referência wO .

• Uma matriz ortogonal de rotação R que leva os eixos de referência aos eixos

correspondentes da câmera.

Seja P um ponto qualquer no mundo. Suas coordenadas são dadas por ( )www zyx ,, .

No sistema da câmera, suas coordenadas são dadas por ( )ccc zyx ,, . A relação entre estas

coordenadas é descrita por:

( )TPRP wc −= (3.1)

A imagem abaixo ilustra esta transformação.

Figura 3.2 - Relação entre coordenadas do mundo e da câmera.

Page 26: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

26

O ponto Oc também é o centro de projeção da câmera. O eixo Zc coincide com o

eixo óptico e corta o plano da imagem no ponto C, chamado de centro da imagem. O

segundo passo do algoritmo é achar o ponto correspondente à projeção perspectiva de P

no plano da imagem, dado por Pu.

Podemos caracterizar os parâmetros intrínsecos como o conjunto de parâmetros

necessários para definir as características ópticas, geométricas e digitais de uma câmera.

Para o modelo perspectivo de câmera são necessários três subconjuntos de parâmetros

intrínsecos que especificam:

• A projeção perspectiva.

• A distorção geométrica introduzida pelo sistema de lentes da câmera.

• A transformação entre coordenadas no plano da imagem e coordenadas na

imagem capturada.

Para a projeção perspectiva, o único parâmetro utilizado é a distância focal f,

correspondente à distância entre os pontos Oc e C. As coordenadas do ponto Pu são

dadas por ( )uu yx , no sistema de coordenadas definido por ( )uu YX , e tendo como

origem o ponto C. Logo temos as seguintes relações:

c

cu

z

xfx = (3.2)

c

cu

z

yfy = (3.3)

Este seria o caso considerado se não houvesse nenhuma distorção óptica. Pd é o

ponto correspondente à projeção de P, levando em conta distorções radiais introduzidas

pelas lentes. O terceiro passo é transformar as coordenadas no plano da imagem para as

coordenadas correspondentes com distorções ópticas.

Distorções radiais são deslocamentos radiais de pontos no plano da imagem.

Quanto mais afastado o ponto está do centro da imagem, maior é seu deslocamento.

Distorções radiais são normalmente modeladas por:

( )42

211 rkrkxx du ++= (3.4)

( )42

211 rkrkyy du ++= (3.5)

O quadrado da distância é dado por:

222dd yxr += (3.6)

Page 27: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

27

As coordenadas no plano da imagem de um ponto com distorções radiais são

dadas por ),( dd yx e ),( uu yx são suas coordenadas já livre de distorções da lente,

ambas no mesmo sistema de coordenadas. Os dois parâmetros intrínsecos são k1 e k2

que caracterizam a distorção geométrica introduzida pelo sistema de lentes da câmera.

No modelo original de Tsai, k2 é descartado por ser usualmente muito baixo e tem seu

valor igual a zero.

O último passo corresponde à transformação de coordenadas no plano da imagem

para coordenadas na imagem capturada. Para isso temos as seguintes equações:

xxid soxx )( −= (3.7)

yyid soyy )( −= (3.8)

As coordenadas do ponto Pi na imagem é dado por ),( ii yx em unidades de pixel e

as coordenadas do ponto correspondente Pd no plano da imagem é dado por ),( dd yx em

metros. O par de parâmetros ),( yx oo definem o centro da imagem, correspondente ao

ponto C no plano da imagem, e é utilizado como o centro do sistema de coordenadas da

imagem capturada representado por ),( ii YX . Por último, o par ),( yx ss definem o

tamanho efetivo de um pixel, em metros por pixel, nas direções horizontais e verticais

respectivamente. Estes são os fatores de escala. No modelo original de Tsai, sx e sy são

considerados iguais e modelados por um único parâmetro s.

Podemos resumir o algoritmo nos quatro passos apresentados, como mostra a

figura 3.3. Dado um ponto em coordenadas do mundo, o algoritmo retorna suas

coordenadas na imagem final. No total temos nove parâmetros que devem ser estimados

para cada câmera calibrada.

Se considerarmos uma câmera ideal, a qual não possui distorção radial e o centro

da imagem capturada coincide com o centro do plano da imagem, o modelo de câmera

de Tsai pode ser simplificado a um modelo de câmera “pinhole”, encontrada na

literatura. Se incluirmos o fator de escala s no valor da distância focal f, podemos

simplificar o algoritmo de Tsai descartando os passos três e quatro. Embora estas

simplificações sejam utilizadas por várias aplicações, não existe câmera perfeita. Logo

há um comprometimento na precisão da calibração, que varia com a câmera utilizada.

Page 28: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

28

Figura 3.3 – Os quatro passos do algoritmo de Tsai.

Como foi citado, os parâmetros extrínsecos e intrínsecos podem ser estimados

separadamente. Com os valores dos parâmetros intrínsecos da câmera previamente

calculados, podemos calcular a partir de uma imagem capturada uma segunda imagem

livre de distorções radiais. A nova imagem é criada utilizando-se as equações (3.4) a

(3.8). O fator de escala s é incluído no valor da distância focal f e possui valor igual a

um nas equações em que é utilizada. Com isso simplificamos novamente o modelo

utilizado a um modelo de câmera “pinhole”, com o fator de escala incluído na distância

focal. A diferença é que os parâmetros intrínsecos são previamente calibrados e utiliza-

se a imagem livre de distorções radiais na calibração dos parâmetros extrínsecos.

Novamente podemos simplificar o algoritmo de Tsai descartando os passos três e

quatro. Para estimar os parâmetros intrínsecos, utilizou-se o algoritmo proposto por

Zhang em [5].

Para determinar os valores dos parâmetros extrínsecos nos passos um e dois,

utilizou-se o algoritmo de Tsai coplanar, onde todos os pontos do padrão de calibração,

usado para encontrar os parâmetros, estão no plano 0=wz .

Os parâmetros extrínsecos podem ser escritos na forma matricial:

Page 29: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

29

=

=

zyx

zyx

zyx

rrr

rrr

rrr

r

r

r

R

333

222

111

3

2

1

=

z

y

x

t

t

t

T

Os vetores 1r , 2r e 3r são ortonormais entre si e estão ilustrados na figura do

modelo. Estas matrizes podem ser vistas como uma única matriz [ ]TR | .

[ ]

=

=

zzyx

yzyx

xzyx

z

y

x

trrr

trrr

trrr

tr

tr

tr

TR

333

222

111

3

2

1

| (3.9)

As equações (3.2), (3.3) e (3.9) podem ser compatibilizados de forma a produzir

uma transformação direta do ponto ( )www zyx ,, no mundo para o ponto ),( ii yx na

imagem, como é feito em [6]. Devemos lembrar que, segundo as simplificações

adotadas, a imagem utilizada está livre de distorções radiais e que o fator de escala s

está incluído na distância focal f.

=

13

2

1

w

w

w

z

y

x

i

i

z

y

x

tr

tfrf

tfrf

s

sy

sx

(3.10)

As coordenadas ( )syx ii ,, são homogêneas. Multiplicando (3.9) obtemos duas

equações:

zwzwywx

xwzwywx

itzryrxr

tzryrxrfx

+++

+++=

333

111 (3.11)

zwzwywx

ywzwywx

itzryrxr

tzryrxrfy

+++

+++=

333

222 (3.12)

Como estamos utilizando o método coplanar, podemos escrever 0=wz nas

equações (3.10) e (3.11).

zwywx

xwywx

ityrxr

tyrxrfx

++

++=

33

11 (3.13)

zwywx

ywywx

ityrxr

tyrxrfy

++

++=

33

22 (3.14)

Page 30: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

30

Dividindo (3.12) por (3.13) e em seguida o numerador e o denominador da razão

direta por ty, podemos obter:

iw

y

y

iw

y

xi

y

xiw

y

y

iw

y

xi xy

t

rxx

t

ry

t

tyy

t

ryx

t

rx

2211 −−++= (3.15)

Podemos obter um sistema linear, com cada linha correspondendo a um ponto

amostrado. Cada ponto possui um índice k diferente.

kkkkkkkkkk i

y

xiw

y

y

iw

y

xiw

y

y

iw

y

xi y

t

txy

t

rxx

t

ryy

t

ryx

t

rx +−−+=

2211 (3.16)

Com isso obtemos o sistema linear buA = , onde A é uma matriz 5×n , cada linha

Ak é dada por ( )kkkkkkkkk iiwiwiwiw yxyxxyyyx ,,,, −− , cada elemento do vetor b é dado

por ki

x e o vetor u é dado por:

[ ]

=

y

x

y

y

y

x

y

y

y

x

t

t

t

r

t

r

t

r

t

rUUUUU

221154321 (3.17)

Lembrando que 1r , 2r e 3r são ortonormais e definindo y

z

t

r1=α e y

z

t

r2=β , temos

que:

++=++

−−=24

23

222

21

24231

UUUU

UUUU

βα

αβ (3.18)

Resolvendo o sistema acima, calcula-se ty a partir de:

( )

( )23241

23241

22

2

4

UUUU

UUUUUUt y

−−−= (3.19)

24

23

22

21 UUUUU +++=

Com estes valores definidos e utilizando a equação (3.17) determina-se os valores

de r1x, r1y, r2x, r2y e tx. Como os vetores 1r e 2r são normalizados, obtemos os valores de

r1z e r2z. O vetor 3r pode ser calculado, já que 1r , 2r e 3r são ortonormais. Finalmente,

utilizando os valores já encontrados e as equações (3.13) e (3.14), podemos calcular f e

tz.

As próximas duas subseções apresentam dois padrões de calibração, utilizados na

obtenção de pontos para a calibração, e como extrair seus pontos característicos das

imagens capturadas. Ambos os padrões são coplanares.

Page 31: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

31

3.1.1 Padrão com Elipses

Entre os vários padrões utilizados em calibração de câmeras, este padrão coplanar

com elipses é um dos mais fáceis de ser implementado e utilizado. De uma maneira

geral, o padrão é constituído por várias esferas posicionadas em um mesmo plano e

afastadas uma da outra. Esferas formam padrões facilmente identificáveis na imagem.

Alternativamente podemos utilizar círculos 2D desenhados em um mesmo plano, que

pode ser uma folha de cartolina. Em ambos os casos, devemos extrair as elipses da

imagem capturada e retornar o centro de cada uma para a calibração. A figura 3.4 ilustra

o processo de obtenção de pontos do padrão.

Figura 3.4 – Processo de obtenção de pontos do padrão com elipses.

A figura a4.3 mostra o desenho do padrão coplanar. Os círculos estão dispostos

sobre o padrão de maneira que cada um não possui nenhum vizinho na direção

horizontal. Esta disposição permite identificar cada círculo na imagem capturada,

mostrada na figura b4.3 já em tons de cinza. Basta seguir a ordem dos círculos na

direção vertical. Para separar os círculos do fundo, utiliza-se um filtro “threshold”

binário, dado por:

Page 32: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

32

>

=contráriocaso

thresholdyxsrcseyxdst

,1

),(,0),( (3.20)

onde src é a imagem de origem, dst é a imagem de destino binária e de mesmo tamanho

e threshold é um valor limite. A figura d4.3 mostra o resultado deste filtro aplicado à

imagem b4.3 . O valor de threshold utilizado comumente é 128 em uma escala de tons

de cinza de 8 bits.

O próximo passo é identificar as bordas das componentes conexas da imagem

binária. Componente conexa é uma região formada por pixels conectados uns aos

outros. A relação entre os pixels conectados é dada pela conectividade escolhida, que

estabelece condições relativas à cor do pixel e adjacência.

Para a primeira condição de conectividade, os pixels vizinhos devem possuir um

mesmo valor de intensidade do conjunto V. No caso de imagem binária, V={1}. Para o

critério de adjacência, deve-se introduzir primeiro o conceito de vizinhança. Seja p um

pixel na imagem dado pelas suas coordenadas ( )yx, , o conjunto de pixels chamado de

4-vizinhança é dado por:

( ) ( ) ( ) ( ) ( ){ }1,,1,,,1,,14 −+−+= yxyxyxyxpN

De forma análoga, sua 8-vizinhança é dado por:

( ) ( ) ( ) ( ) ( ) ( ){ }1,1,1,1,1,1,1,148 −+−−+−++∪= yxyxyxyxpNpN

Então podemos dizer que dois pixels p e q são 4-conectados se q pertence ao

conjunto ( )pN4 . Da mesma forma, p e q são 8-conectados se q pertence ao conjunto

( )pN8 . A figura 3.5 ilustra duas componentes conexas, cujos pixels são 4-conectados.

Pixels vizinhos estão conectados por segmentos de reta.

No algoritmo proposto, depois de obtidas as componentes conexas da imagem

binária utilizando a conectividade com oito vizinhos, deve-se retornar apenas a borda de

cada componente conexa para o próximo passo. Isso é feito facilmente descartando

todos os pixels que possui oito elementos no seu conjunto ( )pN8 em cada componente

conexa. O resultado desta operação pode ser visto na figura e4.3 .

Page 33: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

33

Figura 3.5 – Componentes conexas em uma imagem binária de tamanho 88 × .

Cada borda de uma componente conexa representa o contorno de um círculo

capturado e possui a forma de uma elipse. O último passo se resume a encontrar o

centro de cada uma das elipses. Nas condições de uso do padrão, onde a câmera a ser

calibrada é posicionada em frente ao padrão, o centro da elipse pode ser considerado o

centro do círculo, sem perda de precisão. Uma maneira fácil de se achar o centro da

elipse é achar a posição média dos pontos da borda da sua componente conexa. Com

isso obtemos o centro de elipse com grande precisão. A figura f4.3 mostra as elipses

achadas para cada componente conexa e a figura c4.3 mostra o resultado da calibração,

com um objeto virtual inserido na imagem capturada. No caso de utilizarmos o padrão

com esferas distribuídas no mesmo plano, obteremos círculos na imagem, ao invés de

elipses. Podemos empregar um dos métodos dados em [12] para achar o centro de cada

um dos círculos.

O maior problema de se utilizar este padrão é posicioná-lo de tal maneira que

apenas os círculos sejam capturados na imagem. Também há restrição na orientação do

padrão na imagem capturada. No fim, o posicionamento fica bem limitado e objetos no

fundo da imagem podem impedir a calibração. Para resolver estes problemas práticos,

desenvolveu-se um outro padrão mais robusto, mostrado a seguir.

3.1.2 Padrão com Vértices

Assim como o outro padrão apresentado, este padrão é coplanar e seu formato é

dado pela figura 3.6. Ele possui doze vértices numerados e foi originalmente utilizado

em uma outra aplicação. Porém seu uso pode ser facilmente adaptado para diversas

Page 34: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

34

aplicações. Estamos interessados em encontrar e retornar a posição de todos os vértices

do padrão na imagem capturada. Estes são os pontos utilizados na calibração.

Figura 3.6 – Padrão com vértices.

Dado uma imagem capturada, o primeiro passo é aplicar o filtro “threshold”

binário e depois achar as bordas de todas as componentes conexas na imagem, da

mesma maneira de como foi feito no padrão anterior. O resultado desta operação de

segmentação são várias bordas de componentes conexas, como está ilustrado na figura

b7.3 . Observe que duas bordas de componentes conexas, entre várias encontradas,

correspondem ao padrão de calibração, que iremos chamar de borda exterior e borda

interior do padrão. Componentes conexas muito pequenas podem ser descartadas.

Figura 3.7 – Bordas das componentes conexas da imagem capturada.

Para cada borda encontrada podemos organizar os seus pixels de maneira que eles

formem uma lista circular, onde cada ponto é vizinho de seus pontos anterior e posterior

Page 35: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

35

na lista. O primeiro ponto também é vizinho do último ponto. Podemos obter mais de

uma lista para cada borda, pois pode haver buracos nas componentes conexas, como é o

caso do padrão. Desejamos encontrar as listas circulares correspondentes ao padrão de

calibração e depois encontrar os pixels correspondente aos vértices nas listas circulares

encontradas. Uma maneira de se resolver este problema é identificar a borda exterior.

Encontrada a borda exterior, fica fácil encontrar a borda interior, pois esta é dada pela

outra lista circular da mesma componente conexa. As bordas candidatas à borda exterior

devem possuir oito vértices.

Para identificar qual pixel melhor corresponde a um determinado vértice,

utilizamos uma heurística que se baseia na vizinhança de cada pixel. Dado um pixel na

posição m em uma lista circular de pixels de tamanho n, sua posição na imagem é dada

por ( )mm yx , , com nm ≤≤1 . A distância do pixel na posição m da lista a um pixel na

posição p é dado pelo vetor:

( )mpmppm yyxxd −−= , (3.21)

Considerando os 2k pixels vizinhos mais próximos na lista do pixel de posição m,

teríamos os pixels de índice variando de km − até km + . Então para cada pixel na lista

calcula-se o vetor resultante da soma da distância entre este pixel e seus 2k pixels mais

próximos na lista, dado por:

imm

k

i

immm ddr −

=

+ +=∑1

(3.22)

A figura 3.8 ilustra dois casos onde a resultante da soma das distâncias entre um

pixel na posição m da lista e seus 2k vizinhos é calculada. Cada pixel está representado

na sua posição na imagem e seu número dá sua posição na lista a que pertence. Os

vetores das distâncias entre o pixel central e seus vizinhos estão representados pelos

vetores em preto e a resultante da soma de todos eles é dado por mr . Podemos observar

que pixels correspondente a vértices possuem um vetor resultante de comprimento

maior que seus vizinhos, enquanto que pixels no meio de uma aresta possuem resultante

de comprimento próximo de zero. Logo um pixel é considerado um vértice se:

1. Vetor resultante possui módulo maior que um valor de corte dado por minr .

minrrm ≥

Page 36: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

36

2. O módulo do vetor resultante é maior ou igual que todos os módulos dos

vetores resultantes dos 2k pixels vizinhos.

kmpkmrr pm +≤≤−≥ ,

Como critério de desempate entre dois pixels vizinhos com o mesmo valor para o

módulo da resultante, escolhemos sempre o primeiro na lista. A dificuldade deste

método está na escolha dos valores de k e minr .

Figura 3.8 – Vetor resultante das distâncias do pixel em m aos seus vizinhos.

Então utilizando o método descrito, devemos achar uma lista circular com oito

vértices, correspondente à borda exterior. Uma vez achada esta lista, a outra lista da

mesma componente conexa deve conter exatamente quatro vértices. Se estas condições

forem preenchidas, podemos considerar que encontramos a componente do padrão. A

probabilidade de se encontrar duas listas nestas condições e que não seja o padrão é, na

prática, quase zero.

Encontrado os vértices do padrão, o próximo passo é identificar a qual vértice do

modelo cada vértice encontrado corresponde. Novamente devemos começar pelos

vértices da borda exterior. Os vértices encontrados formam também uma lista circular,

pois mantêm a ordem em relação um ao outro da lista de pixels original. Esta lista pode

estar no sentido horário ou anti-horário. Consideremos que esteja no sentido horário,

como está enumerado na figura 3.6. Queremos achar qual vértice corresponde ao vértice

Page 37: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

37

0 na lista de vértices. Uma vez encontrado o vértice 0 ou qualquer outro vértice, basta

seguir a ordem da lista para encontrar sucessivamente os próximos vértices.

Dado um vértice m na lista circular de vértices com 8=n , a distância entre este

vértice e um outro vértice p continua sendo dado pelo mesmo vetor em (3.21). Porém

podemos definir o seguinte produto vetorial entre vetores no 3ℜ :

( ) ( )0,,0,, 1111 iiiiiiiii yyxxyyxxa −−×−−= −−++ (3.23)

Para cada vértice nesta lista, podemos calcular o produto vetorial ma

correspondente. O resultado deste produto será um vetor com a componente z negativa,

exceto para os vértices 4 e 5 . Uma vez achados estes vértices, podemos fazer a

correspondência dos outros vértices.

Figura 3.9 – Processo de obtenção dos vértices do padrão.

Com os vértices encontrados da borda exterior, fica simples relacionar os vértices

da borda interior. Basta achar o vértice 8 como sendo o mais próximo do vértice 0 da

borda exterior e seguir a ordem na lista circular da borda interna. Com isso obtemos

todos os pontos vértices já numerados, como mostra a figura a9.3 .

Page 38: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

38

Porém apenas encontrar os pixels correspondentes a cada vértice no modelo não

basta, pois a posição dos vértices estimada pelo procedimento acima está muito sujeita a

erros e variações de uma imagem capturada para a próxima.

Para cada aresta entre um vértice e o seu subseqüente, podemos encontrar pixels

pertencentes a esta aresta na lista de pixels de onde foram extraídos os vértices.

Utilizando t pixels entre os dois vértices da aresta e igualmente espaçados um do outro,

podemos calcular a melhor reta que passa por todos estes pontos, empregando o método

dos mínimos quadrados. Se não houver t pixels, podemos utilizar todos os pixels entre

os vértices. Este método tenta minimizar ∑=

t

i

ir1

)(ρ . A distância entre um pixel de índice i

e a reta é dada por ri. A função ρ é dada por:

2

)(2

ii

rr =ρ (3.24)

A figura b9.3 mostra os pixels das arestas utilizados, com 14=t e a figura c9.3

mostra as retas encontradas para cada aresta. A partir das retas podemos calcular a

interseção entre elas e reencontrar os valores dos vértices com maior precisão. Também

teremos um número maior de pontos para o modelo, já que há mais interseções entre as

retas do que vértices. Na última figura d9.3 temos o resultado da calibração, com um

objeto virtual inserido na imagem capturada.

Este padrão de calibração confere grande flexibilidade no seu posicionamento em

relação à câmera e outros objetos capturados na imagem não interferem no resultado. O

único ponto contra é que ele deve permanecer integralmente visível na imagem

capturada.

Em [6] Szenberg apresenta um estudo de métodos de calibração de câmera, onde

ele conclui que o método de Tsai não apresenta bons resultados quando o número de

pontos de calibração é baixo. Para resolver este problema, pode-se utilizar uma

homografia na qual é definido um mapeamento do plano 0=z para o plano da imagem,

para estimar uma quantidade maior de pontos para serem utilizados na calibração.

3.2 Luz Estruturada Codificada

Como foi visto no segundo capítulo, em nosso sistema estéreo ativo utilizamos luz

estruturada codificada para fazer a correspondência entre pontos das imagens capturadas

Page 39: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

39

pelas duas câmeras. Na codificação temporal utilizada, projetamos uma seqüência de

padrões com listras. A seqüência de n padrões produz 2n listras codificadas e a

resolução cresce exponencialmente com o número de padrões utilizados. Repetimos a

mesma seqüência de padrões, porém com listras horizontais. Cada eixo precisa ser

codificado separadamente em nosso sistema. Ao final teremos dividido a cena estática

em nn 22 × regiões, cada uma com seu código horizontal e vertical.

Devemos distinguir entre as coordenadas das imagens capturadas de cada câmera,

dadas por ),( ee yx para a primeira câmera e ),( dd yx para a segunda câmera, e as

coordenadas da luz estruturada projetada, dadas por ),( vu . Utilizamos a seqüência de

imagens com listras horizontais e verticais para decodificar o código das coordenadas

),( vu para cada pixel das duas câmeras. Então para cada par de coordenadas ),( vu da

luz estruturada, encontramos em cada câmera o grupo de pixels que tenham codificado

o mesmo par de coordenadas, resolvendo o problema de correlação entre as imagens.

Na prática, cada grupo possui mais de um pixel com o mesmo código.

Na codificação temporal binária o código traduzido pela seqüência de padrões é a

própria numeração na base dois. Esta seqüência produz uma inconveniência à geração

do código de cada linha. No objeto iluminado, existem regiões que jazem na fronteira

entre uma listra branca e uma listra escura. Pixels nestas regiões devem pertencer a

apenas uma das listras da fronteira. Um pixel não pode ser considerado de uma listra na

imagem de um padrão projetado e posteriormente, na imagem do próximo padrão,

pertencer a uma outra listra. Caso contrário acabaríamos com um código inválido para

este pixel. Quando temos repetições de fronteiras, como no caso do código apresentado,

fatalmente iremos ter este problema ou deveremos descartar os pixels próximos às

fronteiras. Por exemplo, um pixel deveria ter o código 011. Porém na imagem do

primeiro padrão foi considerado pertencente à listra clara. Logo seu código ficou 111,

indicando erroneamente que este pixel pertence a uma listra que nem é sua vizinha.

Uma maneira de resolver este problema é utilizar um dos códigos binários de

Gray, conhecido como código binário refletido de Gray, ao invés da codificação

puramente binária. Este código faz parte de um conjunto de códigos patenteados por

Frank Gray, pesquisador da Bell Labs, em 1953. Porém estes códigos binários já eram

utilizados desde o século XIX em diversas aplicações como o telégrafo, e sua origem

pode ser estudada em [11]. A sua utilização foi proposta por [22] em substituição ao

Page 40: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

40

código binário. A figura 3.10 ilustra o código de Gray utilizado. Ele é chamado de

código binário refletido, pois cada padrão é igual ao padrão anterior mais ele mesmo

refletido e adicionado ao final. Na prática, o que interessa é que cada fronteira entre

duas listras vizinhas só aparece uma vez, como é mostrado para a única fronteira do

padrão. Além de evitar o problema de troca de código para todos os pixels nas regiões

de fronteiras, esta codificação possui outra vantagem. Com exceção da primeira listra e

da última listra do último padrão, todas as áreas claras ou escuras projetadas possuem

pelo menos duas listras de largura. Quando o número de linhas cresce, acaba ocorrendo

que as linhas ficam muito próximas uma das outras na imagem capturada, o que gera

erro de amostragem. Utilizando o código de Gray, podemos diminuir este problema

para um mesmo número de linhas em comparação com o código binário.

Figura 3.10 – Codificação temporal de Gray.

A conversão de números binários para o código de Gray correspondente é bastante

simples. Dado um número binário mAAAA ...210 contendo m dígitos onde 0A é o dígito

mais significativo, o código binário de Gray referente a este número é dado por

mBBBB ...210 onde:

00 AB =

iii AAB ^1+=

A conversão do código de Gray para o número binário correspondente é dada por:

00 BA =

Page 41: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

41

iii BBBBBBA ^)^)...^)^)^(((...(( 13210 +=

Devemos fazer algumas considerações a respeito da luz estruturada projetada.

Como foi visto na introdução, esta luz é gerada por um projetor digital ligado a uma das

saídas de vídeo do computador. Cada projetor possui uma resolução nativa dada pelo

número de elementos que formam os pixels na imagem projetada. Devemos configurar

a saída de vídeo com esta mesma resolução, para evitar uma re-amostragem da imagem

pelos circuitos internos do projetor. Essa operação suaviza as bordas da imagem

projetada, prejudicando assim as áreas de fronteiras entre as listras da luz estruturada.

Gostaríamos que cada listra possuísse a mesma largura na imagem projetada, ou

seja, a largura de todas as listras deve possuir o mesmo número de pixel. Por exemplo,

consideremos um projetor que possui uma resolução nativa de 800 pixels na horizontal.

Se utilizarmos 128 listras verticais, então cada listra deve ter seis pixels de largura, que

é igual ao maior inteiro menor que o resultado da divisão da resolução nativa pelo

número de listras da luz estruturada. Na maioria dos casos, parte da imagem projetada

não será utilizada.

Por último devemos ver a questão do processamento das listras claras e escuras

nas imagens capturadas. O próximo capítulo mostra como é determinado o código

binário horizontal e vertical de cada pixel a partir das imagens capturadas.

3.3 Captura e Processamento de Imagem

Antes da calibração de câmera e utilização do sistema estudado, é necessário tratar

ruídos na imagem capturada. Tipicamente em câmeras digitais de vídeo encontramos

ruído Gaussiano. Se considerarmos que o ruído introduzido na imagem é um sinal

),( yxn adicionado ao valor real ),( yxC do pixel na posição x e y da imagem, temos

então que o valor de cada pixel na imagem é dado por:

),(),(),( yxnyxCyxE += (3.25)

No caso do ruído Gaussiano, ),( yxn é modelado por um processo estocástico

Gaussiano de média zero. Podemos pensar que ),( yxn é uma variável aleatória,

distribuída de acordo com a função de distribuição Gaussiana de média zero, o qual é

adicionado a cada pixel na imagem e cujos valores são independentes da posição e

tempo. A função de distribuição Gaussiana de média igual a zero é dada por:

Page 42: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

42

2

2

2

2

1)( σ

πσ

x

exG−

= (3.26)

O desvio padrão da distribuição é dado por σ e a figura abaixo ilustra um

exemplo desta distribuição.

Figura 3.11 – Distribuição Gaussiana com 1=σ .

Uma das maneiras de tratar este ruído é aplicar o filtro de suavização Gaussiana à

imagem capturada, como foi feito em [9]. Uma alternativa é capturar k diferentes

imagens de uma mesma cena e retornar a imagem média de todas elas, como mostra a

equação (3.27). A cena deve ser estática e a iluminação não pode alterar. As imagens

seriam idênticas se não houvesse ruído Gaussiano introduzido pelas câmeras. Então

fazer uma média das imagens é igual a fazer a média dos sinais ),( yxn do ruído e

somar ao valor real ),( yxC de cada pixel na imagem. Como ),( yxn é distribuída de

acordo com a Gaussiana de média zero, quanto mais imagens forem utilizadas na média,

mais ),( yxn se aproximará de zero. Logo a imagem terá menos ruído, ou seja, o ruído

terá um menor valor em cada pixel, sem suavizar a imagem.

∑−

=

=1

0

),(1

),(k

i

i yxEk

yxE (3.27)

Foi observado na prática que realmente quanto mais imagens utilizadas para a

média, menor é o ruído Gaussiano. O valor padrão utilizado no sistema é 10=k .

Page 43: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

43

Uma vez capturadas todas as imagens relativas aos padrões do código de Gray

para cada câmera, o passo seguinte é identificar as listras claras e escuras dos padrões

projetados sobre a cena em cada imagem. Mais precisamente, para cada pixel da

imagem referente ao objeto capturado, devemos decidir se este pixel faz parte de uma

listra clara ou de uma listra escura. Há também regiões do objeto capturado que não é

iluminado pela luz estruturada, existindo assim mais uma opção. Regiões capturadas

pelas câmeras, mas que não são iluminadas pelo projetor, são chamadas de regiões de

sombra.

A figura 2.4 apresenta um exemplo de imagem capturada que deve ser tratada.

Alguns pontos devem ser levados em consideração ao se resolver este problema. O

valor de cada pixel depende da irradiação da imagem. Segundo o modelo Lambertiano

de reflexão difusa, a radiação do objeto capturado, proveniente exclusivamente do

projetor de luz, depende do valor de albedo do seu material. Também depende da

inclinação da superfície em relação ao projetor. Porém devemos considerar que alguns

materiais são especulares, como o material do vaso apresentado na figura 2.4, e refletem

diretamente a luz projetada.

Uma maneira precisa de se resolver este problema foi utilizada em [13] e proposta

inicialmente em [26]. Para cada padrão projetado, projeta-se também o seu inverso, que

contém o mesmo número de linhas, porém as linhas que eram claras passam a ser

escuras e vice-versa. A figura 3.12 mostra o par de imagens capturados de um vaso

iluminado por um padrão e o padrão inverso correspondente. Para determinar o caso de

cada pixel utilizamos o seguinte filtro:

>=<

<<

>=>

<>

=

2,

2,

),(),(,

),(),(,

),(

thresholdmeanethresholddifseazul

thresholdmeanethresholddifsevermelho

yxsrcyxsrcethresholddifsebranco

yxsrcyxsrcethresholddifsepreto

yxdst (3.29)

|),(),(| yxsrcyxsrcdif −=

2

),(),( yxsrcyxsrcmean

+=

A imagem capturada do padrão é dada por src , enquanto a imagem do padrão

invertido é dada por src . A imagem resultante é dada por dst, cujos pixels possui um

dos quatro valores possíveis. Cada valor é representado por uma cor, para melhor

Page 44: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

44

visualização do resultado na figura 3.13. O primeiro passo do filtro é determinar se o

módulo da diferença do valor do pixel nas duas imagens é maior que um valor de corte,

dado por threshold. No caso positivo, consideramos que a diferença nas imagens entre o

padrão projetado e seu inverso correspondente projetado é suficientemente grande neste

pixel para determinar se este pertence a uma listra clara ou escura. Caso o seu valor na

primeira imagem seja maior que na segunda, correspondente à imagem capturada do

padrão invertido, este pixel pertence a uma listra clara. No sistema implementado, o

valor para threshold comumente utilizado é 30 em uma escala de tons de cinza de 8 bits.

O valor branco é atribuído a pixels pertencentes a listras claras, enquanto preto é

atribuído a pixels pertencentes a listras escuras.

Figura 3.12 – Padrão e inverso correspondente projetados sobre objeto.

Nos outros dois casos, onde a diferença do pixel nas duas imagens não é

suficientemente grande, o pixel não é atribuído a nenhuma listra. Podemos estabelecer

um segundo valor de corte, dado por threshold2, cujo valor é tipicamente 128,

correspondente à metade da escala de tons de cinza. Caso a média dos valores de um

pixel seja menor que threshold2, atribui-se o valor vermelho. Usualmente pixels com

este valor representam regiões do objeto não iluminadas pela luz estruturada, a parede

de fundo ou ainda regiões de transição entre uma faixa clara e outra escura. Caso a

média seja maior que threshold2, atribui-se o valor azul. Comumente pixels com este

valor representam regiões de transição entre duas faixas de tonalidades diferentes ou

regiões do objeto que refletem a luz estruturada do projetor.

Page 45: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

45

Figura 3.13 – Resultado do filtro para determinar as listras de um padrão.

O ponto positivo de se utilizar esta técnica é que tornamos a detecção de listras

mais robustas, independente do material e da inclinação de superfícies do objeto

capturado em relação ao eixo de projeção. Esta técnica também se mostrou tolerante a

superfícies moderadamente especulares. O ponto negativo é que dobramos o número de

imagens capturadas.

Infelizmente há casos em que utilizar padrões e seus inversos não é suficiente para

distinguir as listras em superfícies com grande variação de albedo. Por exemplo,

podemos querer modelar o prato mostrado na figura a14.3 e b14.3 . Porém os desenhos

artísticos pintados sobre o prato dificultam determinar as listras do padrão projetado

nestas imagens. O resultado está ilustrado na figura c14.3 . Em outro caso, uma

superfície pode estar bastante inclinada em relação ao eixo de projeção, também

dificultando a distinção das listras. Na prática, para resolver estes problemas é

necessário capturar as imagens utilizando dois valores de exposição diferentes. Por

exemplo, se capturarmos a imagem de um padrão utilizando uma exposição de 0,1s,

então podemos capturar outra imagem correspondente com uma exposição de 0,5s.

Aumentando a exposição, tornamos as áreas escuras da imagem mais claras e saturamos

as áreas claras. Para cada pixel, aplicamos (3.29) ao par de imagens da exposição que

tenha a maior diferença absoluta entre eles. Assim podemos distinguir as listras em

diferentes tipos de superfícies. As figuras d14.3 e e14.3 ilustram o par de imagens

Page 46: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

46

capturadas com uma maior exposição. Utilizando ambos os pares de imagens obtemos

um melhor resultado, apresentado na figura f14.3 .

Figura 3.14 – Captura com diferentes valores de exposição.

Teoricamente poderíamos utilizar mais de dois valores de exposição para cada

objeto modelado. Porém dois valores se mostraram suficientes, bastando apenas um na

maioria dos objetos. Novamente, o ponto negativo deste recurso é que para cada padrão

projetado devemos capturar mais um par de imagens para cada valor de exposição

utilizado, aumentando o tempo total de captura.

Dos resultados obtidos podemos notar que entre duas listras há sempre uma fina

listra de pixels atribuídos a nenhuma delas. Estes pixels se situam exatamente na

fronteira entre duas listras. Como foi visto, cada fronteira aparece apenas uma vez na

codificação de Gray utilizada. Isto permite tratar estes pixels, de maneira a determinar a

qual das duas listras de uma fronteira um pixel de valor azul ou vermelho pertence, sem

gerar inconsistência no código de cada pixel. Podemos definir que um pixel pertence a

uma fronteira entre duas listras se este possuir valor vermelho ou azul e se seus vizinhos

Page 47: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

47

pertencerem a uma determinada listra. Então este pixel deve pertencer a uma das duas

listras. Caso os vizinhos possuam valores diferentes, aplica-se (3.29) novamente, porém

considerando que 1−=threshold , ou seja, a primeira condição é sempre satisfeita. Caso

contrário, o pixel deve possuir o mesmo valor que seus vizinhos. No caso de listras

verticais, os pixels vizinhos a um pixel são os pixels da esquerda e da direita na

imagem. E no caso de listras horizontais, são os pixels acima e abaixo na imagem.

Figura 3.15 – Detecção e refinamento de fronteiras.

Através deste procedimento, estaremos incluindo em raras ocasiões mais do que

apenas pixels localizados em fronteiras. Porém isto não é problema, pois não há perigo

de um pixel acabar pertencendo a uma listra da qual não é vizinho. Podemos estender a

idéia para mais vizinhos de um pixel, alargando a área considerada uma fronteira. A

figura 3.15 mostra o resultado desta operação considerando fronteiras com dois pixels

de largura.

No final de todas as operações mencionadas até agora nesta seção, obteremos um

conjunto de 2n imagens, codificadas por uma luz estruturada de n padrões verticais e n

padrões horizontais. Um pixel terá um valor codificado se este possuir valor branco ou

preto em todas as 2n imagens. Caso o seu valor não esteja determinado em uma ou mais

imagens, não é possível determinar univocamente a qual listra este pixel pertence, tanto

verticalmente quanto horizontalmente. Para cada pixel na imagem determina-se, caso

seja possível, os dois valores codificados para posteriormente convertê-los do código de

Gray utilizado aos números binários correspondentes. Determinamos assim a quais

listras horizontal e vertical cada pixel pertence. Repetimos o processo para a outra

câmera.

Page 48: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

48

3.4 Triangulação e Modelo Final

Feita a correspondência entre pixels das duas câmeras calibradas, gostaríamos de

obter uma nuvem de pontos do objeto modelado. Para cada par de coordenadas ),( vu

diferente, encontramos em cada imagem os pixels que codificam este par. Usualmente

teremos um grupo de pixels conexos em cada imagem. A figura 3.16 mostra os grupos

encontrados, cada um com uma cor, para uma luz estruturada de 32 listras verticais e 32

listras horizontais. Note que a luz estruturada iluminou também a parede no fundo. De

um outro ponto de vista, podemos dizer que estamos dividindo o objeto em diversos

pedaços menores.

Figura 3.16 – Grupos de pixels com o mesmo par de coordenadas codificadas.

Para a triangulação necessitamos de apenas um ponto que melhor representa cada

grupo nas duas imagens. Dentre as tentativas de se obter o melhor ponto, a que melhor

apresentou resultados foi calcular o ponto médio utilizando todos os pontos de cada

grupo. Se o número de listras verticais e horizontais é suficientemente grande para

considerarmos que cada pedaço menor do objeto dividido é um plano, então o ponto

médio será o ponto central deste grupo. E é justamente deste ponto central que

queremos achar a posição no espaço.

Para cada câmera, calcula-se a reta que sai do seu centro de projeção Oc e

intercepta o plano da imagem no ponto médio Pu calculado. A seção 3.2 descreve como

calcular Pu a partir do ponto médio na imagem capturada. A reta continua e intercepta a

reta da outra câmera no ponto P. Teoricamente a probabilidade de duas retas se

Page 49: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

49

interceptarem no espaço é zero, mesmo para retas arbitrariamente próximas. Então P é

dado pelo ponto médio do segmento de reta que liga cada ponto em cada reta mais

próximo da outra, como mostra em detalhe a figura abaixo.

Figura 3.17 – Triangulação e interseção de duas retas.

Podemos escrever as equações paramétricas das retas da câmera esquerda e direita

como sendo, respectivamente:

11111 )()( sDOOPsOsA ccuc +=−+= (3.30)

22222 )()( tDOOPtOtB ccuc +=−+= (3.31)

Os pontos utilizados devem estar de acordo em relação ao sistema de coordenadas,

convertendo todos para o sistema de coordenadas do mundo dado por ( )www ZYX ,, .

Podemos definir o seguinte vetor que dá a distância entre um ponto na primeira reta a

um segundo ponto na outra reta:

)()(),( tBsAtsW −= (3.32)

Substituindo (3.30) e (3.31) em (3.32) e declarando 12 ccw OOO −= , temos:

21),( tDsDOtsW w −+= (3.33)

Existe apenas um par de pontos, dados por )( 0sA e )( 0tB , onde ),( tsW possui

tamanho mínimo. Queremos achar o valor de 0s e 0t . Se as duas retas não são paralelas,

o que sempre é verdadeiro no sistema quando não há erros de calibração ou de

correspondência entre pontos, é fácil perceber que o seguimento de reta que une o par

Page 50: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

50

de pontos )( 0sA e )( 0tB é perpendicular às direções das retas, caso contrário não

seriam os pontos mais próximos. As seguintes equações, envolvendo produto escalar,

são verdadeiras:

0),( 001 =⋅ tsWD (3.34)

0),( 002 =⋅ tsWD (3.35)

Substituindo (3.33) em (3.34) e (3.35) obtemos:

0)()()( 2101101 =⋅−⋅+⋅ DDtDDsOD w

0)()()( 2201202 =⋅−⋅+⋅ DDtDDsOD w

Fazendo 11 DDa ⋅= , 21 DDb ⋅= , 22 DDc ⋅= , wODd ⋅= 1 e wODe ⋅= 2 ,

encontramos:

20

bac

cdbes

−= (3.36)

20

bac

bdaet

−= (3.37)

Os denominadores de (3.36) e (3.37) são diferentes de zero quando as retas não

são paralelas. A posição de P é dado por:

2

),()( 00

0

tsWtBP += (3.38)

Repetindo o cálculo para todas as coordenadas iremos obter uma nuvem de pontos

distribuídas no espaço correspondente ao modelo. Na prática sempre serão incluídos

pontos da parede de fundo ao modelo capturado, principalmente quanto utilizamos

valores altos de exposição para a câmera. Podemos resolver este problema criando um

plano de corte, que descarta todos os pontos encontrados situados além deste, e o

posicionamos entre o objeto capturado e a parede, de modo a descartar estes pontos

indesejados. A figura 3.18 mostra a nuvem de pontos modelada a partir do vaso

utilizado como modelo, em duas vistas distintas. Os pontos de fundo foram retirados

com um plano de corte.

Page 51: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

51

Figura 3.18 – Nuvem de pontos do objeto modelado.

Utilizando estes pontos como vértices, gostaríamos de obter um modelo poligonal

do objeto capturado. Entre outras possibilidades, podemos criar polígonos com vértices

próximos um do outro. Porém, ao invés de considerar vértices vizinhos geométricos,

escolhemos vértices que possuem coordenadas codificadas ),( vu vizinhas. Por

exemplo, podemos criar um polígono com os vértices de coordenadas )37,25( , )37,26(

e )38,25( . A normal em cada vértice é calculada utilizando-se os oito vértices vizinhos.

Calculam-se as normais dos oito polígonos triangulares que possuem este vértice. Estas

normais são somadas e o vetor resultante normalizado dá o valor da normal do vértice.

O resultado desta operação aplicados aos pontos da figura anterior está apresentado na

figura 3.19a.

Para a textura do modelo, captura-se uma imagem do objeto, com cada uma das

câmeras, separadamente da seqüência de imagens capturadas dos padrões projetados. O

objeto deve estar iluminado por luz ambiente, de maneira que suas superfícies visíveis

estejam uniformemente iluminadas. Com isso obtemos texturas de melhor qualidade do

que as obtidas apenas iluminando o objeto capturado com a luz do projetor.

A coordenada de textura para cada vértice é dada pela sua posição média na

imagem da câmera, já calculada anteriormente para a etapa de triangulação. Então

teremos para cada câmera uma textura e mapeamento correspondente. Ambas as

texturas são usadas simultaneamente, utilizando multi-textura, suportada pela grande

Page 52: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

3 Sistema Proposto

52

maioria das placas gráficas atuais. A figura 3.19b apresenta o modelo com textura

aplicada.

Figura 3.19 – Vista do modelo geométrico criado.

Page 53: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

Este capítulo apresenta as duas aplicações implementadas, uma para criar os

modelos e outra para visualizar e comparar resultados. Em seguida são apresentados

alguns resultados, incluindo uma discussão sobre o sistema implementado. A seção de

testes conclui o capítulo com dois testes realizados para verificar a precisão do sistema

implementado.

4.1 Implementação

Como resultado desta dissertação, obtemos duas aplicações. A primeira aplicação

é utilizada para capturar imagens de objetos e criar um modelo correspondente e se

chama Shaper. E a segunda aplicação, chamada simplesmente de Visualizer, é utilizada

para visualizar modelos criados e compará-los.

Para a camada de interface das aplicações utilizou-se GLUI [15] que é uma

biblioteca de extensão para a popular GLUT. Como biblioteca gráfica utilizou-se

OpenGL e para o desenvolvimento utilizou-se o Visual Studio .NET da Microsoft.

4.1.1 Shaper

De modo geral, esta aplicação é responsável por executar todos os itens

apresentados na seção anterior, como projetar padrões de luz estruturada, capturar

imagens e processá-las, fazer triangulação entre pontos correspondentes etc. Também

deve disponibilizar todas as opções e parâmetros discutidos. Para a captura de imagens

através das câmeras de vídeo, utilizou-se a biblioteca IM Capture [16], enquanto a

biblioteca OpenCV [1] fui utilizada extensivamente para o processamento de imagens.

No apêndice A foi incluído uma descrição do OpenCV e de seus principais recursos.

A aplicação possui uma janela principal, onde são apresentadas as informações

principais. Inicialmente esta janela mostra o par de imagens das câmeras capturadas em

tempo real, permitindo o enquadramento do objeto capturado, ajustes de parâmetros de

captura e calibração das câmeras.

Page 54: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

54

Junto com a janela principal, existe uma outra janela para acessar as diversas

opções do sistema. A figura 4.1 mostra esta janela e a janela principal ao fundo. As

opções estão divididas em três grupos. O grupo File possui as opções de operação do

sistema. A primeira opção Live está habilitada quando a aplicação é inicializada e as

imagens das câmeras capturadas em tempo real são exibidas. A segunda opção Scan

inicializa o processo de varredura, capturando a seqüência de imagens do objeto modelo

iluminado pelos diferentes padrões da luz estruturada. Após a varredura, as imagens são

processadas. A terceira opção Correspondence utiliza as imagens processadas e realiza

a correspondência entre pixels das duas câmeras. Na janela principal o usuário pode

clicar em um ponto de uma imagem e descobrir o ponto correspondente na outra

imagem. E por último, 3D Model cria o modelo geométrico. As duas últimas opções não

estão habilitadas antes que a etapa de captura das imagens esteja concluída.

Figura 4.1 – Janela de opções da aplicação Shaper.

O segundo grupo reúne as opções do sistema, onde cada uma abre uma nova

janela. Na primeira opção Scan o usuário pode modificar as opções de varredura

relacionadas à luz estruturada e as imagens capturadas. O segundo botão Process

permite ao usuário modificar opções de processamento das imagens capturadas na etapa

de varredura. A última opção deste grupo permite selecionar os diferentes modos de

visualização do modelo criado.

Page 55: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

55

No último grupo encontram-se as opções referentes aos equipamentos utilizados.

Quanto às câmeras utilizadas, podemos modificar os seus vários parâmetros, como

brilho, ganho, nitidez, foco etc. O usuário também pode calibrar os parâmetros

extrínsecos e intrínsecos de cada uma. A opção salvar armazena tanto a calibração,

quanto o ajuste da câmera. Em relação ao projetor, devemos informar a sua resolução

física, de forma que as linhas projetadas tenham a mesma largura em pixels, conforme

foi discutido anteriormente.

Figura 4.2 – Calibração de parâmetros extrínsecos das duas câmeras.

A calibração dos parâmetros intrínsecos das câmeras utiliza a implementação do

método de Zhang [5] fornecida pelo OpenCV.

4.1.2 Visualizer

Esta simples aplicação foi criada para visualizar e comparar os modelos criados na

aplicação apresentada anteriormente, sem a necessidade do uso de câmeras. Assim

como o Shaper, o usuário pode selecionar um dos modos de visualização e habilitar

textura. É possível carregar dois modelos simultaneamente e alterar entre um e outro,

comparando visualmente o resultado. Pode-se rotacionar o modelo visualizado através

de uma interface arcball [14] com o mouse ou pelo teclado. O usuário também pode

calcular a distância entre dois pontos do modelo, selecionando com o botão direito do

Page 56: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

56

mouse os pontos desejados. Por fim, há uma função para ajustar um cilindro ao modelo

carregado. O Visualizer foi utilizado nos testes que serão apresentados em seção

posterior.

Figura 4.3 – Modelo carregado na aplicação de visualização.

4.1.3 Arquivo de Saída

Esta simples aplicação Em relação ao armazenamento de modelos, ambos as

aplicações utilizam um tipo de arquivo criado que segue uma estrutura simples de

interpretação. Este arquivo texto descreve os vértices e polígonos criados para o objeto

capturado, como mostra (4.1).

mmmmmm

nnnnnnnnnn

nznynxcba

nznynxcba

nznynxcba

tdrdserenznynxzyx

tdrdserenznynxzyx

tdrdserenznynxzyx

mn

..................

..............................

222222

111111

2222222222

1111111111

(4.1)

Page 57: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

57

A primeira linha contém dois inteiros: o número de vértices n e o número de

polígonos m. O bloco de linhas seguinte descreve cada vértice do modelo. Cada linha

corresponde a um vértice i e possui dez números reais. Os três primeiros números dão a

posição ),,( iii zyx do vértice no mundo e os três números seguintes dão a normal

),,( iii nznynx do vértice, já normalizada. Em seguida temos as coordenadas de textura

),( ii sere para a textura da câmera esquerda e por último são dadas as coordenadas de

textura ),( ii sdrd para a textura da outra câmera.

Cada linha no segundo bloco de linhas descreve um polígono j e possui três

números inteiros seguidos de três números reais. Os três primeiros números ),,( jjj cba

dão o índice i de cada um dos três vértices que formam o polígono. E os três números

reais dão a normal ),,( jjj nznynx do polígono.

Junto a cada arquivo são fornecidos dois arquivos de imagem, no formato BMP,

referentes às duas texturas, uma de cada câmera. Estas imagens são carregadas junto

com o arquivo correspondente.

4.2 Resultados

O sistema foi utilizado em uma plataforma constituída de processador AMD

Athlon XP1600+, com 512MB de memória e placa gráfica NVIDIA FX5600. O par de

câmeras utilizadas são do modelo DFW-VL500 da Sony, enquanto que foram utilizados

dois projetores distintos no sistema. O primeiro projetor, modelo CTX EzPro 610, é um

projetor LCD, enquanto que o segundo, modelo Infocus X1, é um projetor DLP.

O sistema foi aplicado para capturar formas de diversos objetos de natureza

diferentes. Vasos, estátuas, caixas de som, tubulações e até pessoas serviram de

modelos. O modelo na figura 4.4a foi obtido a partir de uma estátua de bronze. A figura

4.4c mostra o modelo de um vaso, enquanto que as figuras 4.4b e 4.4d apresentam

modelos capturados a partir de tubulações de PVC.

De uma forma geral, a qualidade dos modelos estão intimamente ligados com o

número de linhas utilizadas. O número de linhas utilizadas pela luz estruturada variou

de 3232× até 128128× e é limitado pelo hardware utilizado. Quanto maior o número

de linhas, maior o nível de detalhes. As figuras 4.5a e 4.5b ilustram a diferença entre

Page 58: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

58

modelos capturados sob as mesmas condições, porém utilizando um número de linhas

diferentes. O primeiro utilizou 12864× linhas, enquanto que o segundo apenas 6432× .

As outras duas figuras 4.5c e 4.5d mostram a diferença entre as bordas de modelos,

também capturados sob as mesmas condições e número de linhas.

Porém quando o número de linhas cresce e a resolução das câmeras é mantido (no

nosso caso de 480640× ), é introduzido irregularidades na superfície dos modelos

capturados que seguem um padrão de interferência, como mostra a figura 4.5e. Isso

acontece, pois na fase de processamento de imagens padrões de interferência são

gerados nas imagens processadas. Estes padrões são repassados para o modelo final,

apresentando irregularidades na superfície. Esses padrões de interferência tendem a

diminuir quando a resolução das imagens capturadas cresce. Por isso que, para imagens

com a mesma resolução, quanto maior o número de linhas utilizadas pela luz

estruturada, mais interferências são geradas. Esta irregularidade gerada é mais visível

em modelos com muita superfície plana. Para câmeras com resolução de 480640× , o

ideal seria utilizar um número de linhas de até 3232× . Cada vez que dobrarmos o

número de linhas, também devemos dobrar a resolução das câmeras.

Os modelos das figuras 4.4b e 4.4d foram capturados utilizando-se este número

recomendado de linhas e possuem uma superfície quase sem ruído, ao contrário do

modelo da figura 4.5e que foi capturado utilizando-se 128128× linhas. O mesmo

acontece com os modelos das figuras 4.5c e 4.5d. Apesar do último possuir bordas com

menos detalhes, a superfície é livre de ruído.

Page 59: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

59

Figura 4.4 – Exemplos de modelos criados com o sistema implementado.

Em relação às restrições do sistema, a primeira restrição do sistema é o tamanho

dos objetos capturados. A princípio estamos interessados em objetos de tamanho

variando de 30cm até 2m. Porém nada impede que se capture formas de objetos

maiores. Para isso seriam necessários um projetor com maior brilho e câmeras com

lentes adequadas.

Uma segunda restrição deste sistema é capturar objetos e cenas estáticas, como foi

visto. Há uma quantidade grande de imagens a serem geradas para modelar cada objeto,

de maneira que o sistema não consegue capturar objetos em movimento. Por exemplo,

para capturar um objeto utilizando 64x64 linhas, utilizando duas câmeras a 30fps com

apenas um valor de exposição e sem calcular imagem média, seria necessário s8.0 .

Porém na prática este número é maior. As câmeras ficaram limitadas a 15fps e há um

problema de sincronia entre a imagem desenhada no buffer e a imagem projetada pelo

projetor LCD, de modo que é necessário esperar cerca de s2.0 até que a imagem

correspondente ao padrão desejado seja projetada. Como são necessários projetar 24

Page 60: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

60

padrões, temos um atraso total de s8.4 . Somando mais o tempo necessário para salvar

as imagens capturadas em disco e outras operações necessárias, no total o sistema está

levando em torno de s0.7 para completar uma operação que deveria durar s6.1 . A

maior parte do atraso é devido ao problema de sincronismo que carece de melhor

solução.

Figura 4.5 – Nível de detalhes em modelos criados.

A terceira restrição é que o objeto modelado é limitado por dois fatores na captura.

Primeiro é que só é modelado regiões iluminadas pela luz estruturada. Segundo, só é

modelado regiões capturadas por ambas as câmeras. Regiões capturadas pelas câmeras,

porém não iluminadas pelo projetor, são consideradas regiões de sombra. Regiões não

capturadas por ambas as câmeras são regiões ocultas.

4.2.1 Padrões de Calibração

Comparando os dois padrões de calibração, os resultados dos testes, apresentados

posteriormente nesta seção, não mostram uma diferença considerável de precisão entre

os dois. O padrão com vértices é mais fácil de ser manuseado, pois independe de

quaisquer outros objetos capturados na imagem. Este padrão é robusto contra ruídos

introduzidos pela câmera e funciona com a câmera posicionada em ângulos variados em

Page 61: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

61

relação ao seu plano. O seu ponto negativo é quando a câmera é colocada exatamente no

eixo perpendicular ao plano do padrão e que intercepta o seu centro. Nesta posição a

calibração se torna falha, pois não há como se obter informação de profundidade em

relação a este eixo. Por último, este padrão é utilizado em uma outra aplicação em

tempo real, conseguindo uma taxa de 22 quadros por segundo, com imagens de tamanho

480640× . Este bom desempenho é devido à grande eficiência da biblioteca OpenCV,

com qual foram implementadas as aplicações, e ao método de reconhecimento de

padrão proposto.

O padrão com elipses é o mais fácil de ser implementado. O seu posicionamento é

mais difícil já que necessita ocupar a imagem capturada. Porém também é um padrão

robusto contra ruídos e possui precisão menor do que um pixel. Na prática, este padrão

quase não apresenta erros devido à câmera estar no eixo perpendicular ao plano do

padrão e que intercepta o seu centro. Talvez isso aconteça pela maneira aleatória com a

qual as suas elipses estão espalhadas por toda a imagem.

Como uma última observação em relação aos padrões, a calibração apresenta

melhores resultados quando estes são colocados na mesma posição do objeto capturado,

principalmente o padrão com vértices que possui maior liberdade de posicionamento, se

tornando mais sensível à sua posição do que o padrão com elipses. Todos os testes

foram feitos posicionando o padrão junto ao objeto capturado. A seção seguinte

apresenta os testes realizados e o método de ajuste de cilindro a um modelo capturado.

4.2.2 Câmeras

As câmeras utilizadas foram um par de câmeras Sony DFW-VL500, as quais

possuem sensores CCD e resolução máxima de 640x480 pixels. A grande vantagem

desta câmera em relação a câmeras Web convencionais está no seu conjunto óptico que

possui zoom e focagem digitais, os quais são utilizados pela aplicação para melhor

enquadrar o objeto modelado nas imagens capturadas, além de um menor nível de

distorções ópticas.

Foi constatado, em ambas as câmeras, um problema que ocorre nas fronteiras das

imagens capturadas entre listras claras e escuras projetadas sobre o objeto capturado. A

câmera não é capaz de determinar com exatidão a fronteira entre as regiões e introduz

erros sistemáticos. Possivelmente estes erros podem estar sendo introduzidos em algum

Page 62: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

62

estágio de compressão da imagem onde as freqüências, como as encontradas entre

regiões com as propriedades descritas, são altas. A figura 4.6a mostra uma imagem

capturada onde tal erro ocorre entre as listras projetadas sobre o vaso capturado.

Figura 4.6 – Fronteiras capturadas entre regiões claras e escuras da luz estruturada.

Curiosamente este problema não ocorre quando, ao invés de utilizarmos luz

branca para projetarmos as listras dos padrões de luz estruturada, utilizamos luz verde.

A figura 4.6b ilustra uma imagem do mesmo vaso modelado com luz estruturada verde.

Conseqüentemente, utilizou-se esta cor como padrão neste trabalho. Utilizando as cores

vermelho e azul o problema permanecia.

O mesmo problema não ocorre no padrão de calibração com vértices que também

possui regiões claras e escuras. O padrão é sempre capturado sob luz ambiente. Nestas

condições a câmera é capaz de capturar as fronteiras com clareza.

4.2.3 Projetores

Page 63: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

63

Foram utilizados dois projetores distintos, um de tecnologia LCD (liquid crystal

display) e o outro DLP (digital light processing). A maneira como um projetor DLP

funciona [24], na qual cada componente de cor é projetada separadamente, torna o seu

uso inadequado para esta aplicação, principalmente se a codificação utilizada envolver

padrões coloridos. Isso foi constatado na prática. Utilizando luz estruturada de cor

verde, algumas imagens capturadas ficavam escuras porque a captura não era

sincronizada com a projeção da componente de cor verde. O projetor utilizado foi um

Infocus X1, com velocidade x2 para a roda de cores. Como era de se esperar, o projetor

LCD não apresentou este problema e foi utilizado como projetor padrão neste trabalho.

Como foi discutido anteriormente, o projetor LCD utilizado apresentou um atraso

entre a imagem desenhada no buffer e a imagem projetada. Este problema deve ser

inerente ao modelo CTX EzPro 610 utilizado. Outros modelos de projetores LCD

devem ser testados para se tirar uma conclusão definitiva.

4.3 Testes

Foram elaborados e executados dois testes que visavam verificar a precisão do

sistema implementado. O primeiro teste consistiu simplesmente em medir a distância

entre pontos conhecidos de um modelo escolhido. Para o segundo teste, utilizou-se um

pedaço de tubulação cilíndrica de PVC como modelo e como resultado deveríamos

obter os parâmetros de um cilindro correspondente à tubulação.

4.3.1 Primeiro Teste

Para este teste, utilizou-se o segundo padrão de calibração apresentado como

modelo, cujos pontos estão todos em um mesmo plano e em posições conhecidas. A

figura 3.6 ilustra os pontos deste padrão. Então para cada par de pontos, mediu-se a

distância correspondente no modelo computacional gerado. Foram utilizados os dois

padrões de calibração apresentados para calibrar o par de câmeras antes de se obter o

modelo. Todos os modelos foram capturados utilizando a calibração de parâmetros

intrínsecos das câmeras.

Para cada modelo criado, obtém-se uma nuvem de pontos. O processo de medir as

distâncias entre dois pontos conhecidos requer identificá-los no modelo carregado. Isso

Page 64: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

64

é feito de maneira visual, utilizando o mouse para selecionar os pontos desejados, assim

como é feito em vários softwares comerciais. A textura capturada tem papel

fundamental na seleção, dando maior detalhamento da superfície do modelo. Sem esta

informação visual, não seria possível selecionar os pontos dos modelos capturados para

este teste e outras aplicações do sistema.

Uma vez selecionado um ponto na tela pelo usuário, utiliza-se um método

semelhante ao de Ray Tracing para calcular qual ponto do modelo corresponde ao ponto

selecionado pelo usuário na imagem visualizada. O OpenGL permite identificar qual

polígono do modelo foi selecionado pelo usuário com o mouse, utilizando o modo de

renderização para seleção. Mais informações sobre este procedimento pode ser

encontrado em [19]. Uma vez conhecido o polígono interceptado, a posição da câmera,

o ângulo de visão, resolução da tela e o ponto da tela selecionado pelo usuário, lança-se

um raio que sai da câmera, passa pelo ponto correspondente ao ponto no plano da

imagem e intercepta o polígono. Basta, então, calcular o ponto de interseção entre este

raio e o plano definido pelo polígono para encontrar o ponto selecionado no modelo.

Segmento Distância (cm)

05,0±

Modelo Um

Distância (cm)

Modelo Dois

Distância (cm)

Modelo Três

Distância (cm)

10 21,00 21,013 20,943 21,057

72 21,00 21,068 21,004 20,934

98 15,00 14,872 14,921 14,964

1110 14,90 14,896 14,833 14,853

70 24,90 25,004 24,912 24,787

21 24,90 24,858 24,900 24,950

118 15,00 14,992 14,930 14,949

109 15,00 14,883 14,943 14,991

Figura 4.7 – Tabela das distâncias médias medidas utilizando-se o padrão de elipses na

calibração.

Page 65: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

65

Este processo de seleção de pontos é subjetivo, devido à dificuldade de se

identificar os vértices do padrão com exatidão. A textura possui uma resolução limitada,

assim como as imagens capturadas, o que dá margem à interpretação na hora em que o

usuário seleciona os pontos. Sendo assim, as medidas de cada modelo capturado foram

feitas por três usuários distintos. Os valores encontrados por cada usuário podem ser

vistos no apêndice B. A figura abaixo ilustra a distância medida entre dois pontos do

padrão utilizando o Visualizer.

Figura 4.8 – Distância entre dois pontos selecionados no modelo do padrão.

A tabela da figura 4.7 apresenta os valores médios dos valores encontrados pelos

usuários para cada modelo capturado utilizando-se o padrão de calibração com elipses,

enquanto que a tabela da figura 4.9 mostra os valores médios para cada modelo

capturado utilizando-se o padrão de calibração com vértices. Podemos observar que

todas as medidas médias estão dentro da margem de erro de 1%. As médias das medidas

obtidas por cada usuário para cada segmento medido também estão dentro da margem

de erro de 1%. Os desvios padrões calculados a partir destas tabelas foram cm066,0

para o padrão com elipses e cm073,0 para o padrão com vértices. Não há diferença

Page 66: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

66

relevante entre os resultados dos dois padrões de calibração utilizados neste teste. Caso

uma determinada medida seja de fundamental importância, pode-se capturar o mesmo

modelo várias vezes e calcular a distância média para se obter um valor com maior

precisão. Podemos obter uma precisão próxima a de uma régua milimétrica.

Segmento Distância (cm)

05,0±

Modelo Um

Distância (cm)

Modelo Dois

Distância (cm)

Modelo Três

Distância (cm)

10 21,00 21,093 20,911 21,046

72 21,00 21,007 20,931 20,970

98 15,00 14,914 14,942 14,962

1110 14,90 14,869 14,921 14,853

70 24,90 25,081 24,942 24,858

21 24,90 24,854 24,878 25,052

118 15,00 15,062 14,974 15,037

109 15,00 14,940 14,905 15,037

Figura 4.9 – Tabela das distâncias médias medidas utilizando-se o padrão com vértices

na calibração.

A figura 4.4d ilustra um caso de uso do sistema como uma ferramenta de medição.

O modelo analisado foi obtido a partir de uma tubulação amassada e o usuário deseja

saber as dimensões do dano, para poder decidir como reparar a linha. Outra vantagem

da utilização de um sistema deste tipo é que um especialista pode fazer análises

remotamente, sem a necessidade de estar fisicamente presente no local da inspeção.

Com isso ele pode analisar modelos provenientes de diversas instalações

simultaneamente.

4.3.2 Segundo Teste

Page 67: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

67

Como foi dito, o objetivo deste teste era levantar os parâmetros da equação

paramétrica que melhor descreve a tubulação utilizado. No final, o valor do raio no

modelo capturado deve ser próximo ao valor do modelo real.

A equação paramétrica de um cilindro é dada por:

dirYRdirXRdirZspsp )sin()cos(),( 0 θθθ +++= (4.2)

Temos que p0 é um ponto por onde passa o eixo central, enquanto o vetor dirZ dá

a direção deste mesmo eixo. O valor do raio é dado por R e os vetores dirX, dirY e dirZ

dão a direção do cilindro. A figura 4.10 ilustra os parâmetros da equação.

Figura 4.10 – Cilindro parametrizado.

Para cada cilindro devemos definir os parâmetros R, 0p e dirZ. Os vetores dirX,

dirY e dirZ são ortogonais entre si, bastando então definir dirZ. Podemos escrever p0 e

dirZ como:

),,(0 cbap = (4.3)

),,( wvudirZ = (4.4)

Podemos eliminar mais alguns parâmetros. Podemos considerar que o ponto 0p

pertence ao plano XZ. Logo 0=b . Se também considerarmos que o vetor dirZ não é

normalizado, podemos escrever 1=v , obtendo assim:

),0,(0 cap = (4.5)

Page 68: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

68

),1,( wudirZ = (4.6)

Com isso, o eixo do cilindro não pode ser paralelo ao plano XZ. Então, dado um

conjunto de pontos referente a um cilindro, gostaríamos de determinar os valores R, a,

c, u e w que melhor caracterizam este cilindro. Podemos empregar a mesma técnica

utilizada para encontrar a melhor reta ajustada a um grupo de pontos. Ao invés de

minimizar a equação (3.24), utilizamos uma outra equação que dá a distância do ponto

ao eixo do cilindro, subtraída pelo valor do raio. Esta função calcula o erro de um ponto

em relação ao cilindro determinado pelos parâmetros e é dada por:

Rri −= b)(ε (4.7)

Observando a figura 4.10, temos que:

22

cab −= (4.8)

Então a equação (4.7) pode ser reescrita como:

Rri −−=22

)( caε (4.9)

O vetor a é dado por:

),,(0 czyaxpp −−=−=a (4.10)

onde ),,( zyxp = . Então temos:

2222)()( czyax −++−=a (4.11)

O vetor c é dado pelo vetor a projetado na direção de dirZ . Então temos

=

⋅= dirZ

dirZdirZ

dirZac ),1,(

)1(

),1,(),,(22

wuwu

wuczyax

++

⋅−− (4.12)

Simplificando a norma, obtemos:

)1(

)))(())(((22

22

wu

czwyaxu

++

−++−=c (4.13)

Para minimizar a soma dos erros para todos os pontos, utilizamos a biblioteca

MINPACK [17], destinada a resolve sistemas de equações não lineares e problemas de

mínimos quadrados não lineares. Há uma função que minimiza a soma dos quadrados

de funções não lineares de n variáveis com o algoritmo de Levenberg-Marquardt

modificado, sendo o usuário responsável por fornecer a função. No nosso caso,

fornecemos a função que implemente o somatório da equação (4.9) aplicada a todos os

pontos, com cinco variáveis correspondentes aos parâmetros do cilindro. O usuário

Page 69: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

69

também deve fornecer valores iniciais razoáveis para as variáveis, a fim de diminuir o

número de chamadas à função.

Para calcular os valores iniciais, primeiramente aplicou-se o método dos mínimos

quadrados para achar a melhor reta que passa pelos pontos fornecidos. A direção da reta

é utilizada como a direção inicial do eixo do cilindro. Tomando esta direção achada

como o novo eixo Y e realizando a respectiva transformação dos pontos, aplicamos o

método MLS [12] para encontrar o melhor círculo que passa pelos pontos, ignorando as

suas coordenadas do eixo Y. O valor inicial para o raio é igual ao raio do círculo

encontrado. Aplicando a transformação inversa ao centro do círculo calculado, obtemos

o valor inicial de 0p . Estes valores iniciais calculados são muito próximos aos valores

finais encontrados quando os pontos do modelo estão igualmente distribuídos ao longo

do seu comprimento e curvatura.

O raio do tubo utilizado neste teste possui mm)5,03,150( ± de diâmetro médio,

medido com um paquímetro em diferentes pontos. O tubo foi colocado em três

diferentes posições em relação às câmeras para os testes na tabela abaixo. Cada um dos

testes A, B e C referem-se a três posições distintas. Para cada posição, capturou-se a

seqüência de imagens, referentes aos padrões projetados, uma vez. Utilizando esta

seqüência, foram gerados oito diferentes modelos para cada posição. Cada modelo foi

gerado duas vezes, uma para cada padrão de calibração. Os padrões eram

reposicionados e as câmeras calibradas novamente para cada um dos modelos. Sempre a

mesma seqüência de imagens era utilizada. Para isso, as câmeras devem permanecer na

mesma posição durante cada teste. Também foram utilizados diferentes números de

linhas codificadas na luz estruturada.

O objetivo deste procedimento era verificar como a posição do padrão influencia a

calibração das câmeras, comparar os dois padrões e a precisão dos resultados. As

tabelas completas com os resultados encontram-se no apêndice B. A figura 4.4b ilustra

um dos modelos capturados e com os parâmetros do cilindro ajustado. A segmento de

reta em vermelho representa o eixo do cilindro, enquanto o arco, perpendicular ao eixo,

possui um raio igual ao calculado.

Testes Padrão com Elipses Padrão com Vértices

Diâmetro Desvio Padrão Diâmetro Desvio Padrão

Page 70: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

70

Médio (mm) (mm) Médio (mm) (mm)

Teste A 150,730 2,473 149,389 1.636

Teste B 147,457 2.777 147.875 2.140

Teste C 153,904 1.036 152,49 1.887

Figura 4.11 – Tabela dos valores finais obtidos pelos padrões de calibração.

Nas tabelas dos resultados obtidos nos testes A, B e C, a primeira observação é

que a calibração é dependente da posição do padrão em relação ao objeto capturado e as

câmeras. Na prática, observou-se que quanto mais perto do centro do objeto capturado

se posicionar o padrão de calibração, melhor são os resultados. O ângulo de inclinação

do padrão em relação às câmeras também influencia na calibração.

Na tabela acima podemos observar que a posição do objeto em relação à câmera

também influencia os resultados. Isso acontece, pois a função do OpenCV para

calibração dos parâmetros intrínsecos, apesar de melhorar os resultados, não torna as

imagens capturadas totalmente livres de distorções introduzidas pelas lentes. O OpenCV

implementa o método de Zhang para calibração de câmera.

Também podemos observar que não há novamente uma diferença considerável

entre os resultados alcançados pelos padrões de calibração. Ambos obtiveram resultados

próximos para as três posições distintas da tubulação capturada. Possivelmente este é

mais um indicativo da existência de distorções ópticas nas imagens capturadas.

Em relação aos diâmetros médios calculados, os resultados alcançados nos testes

apresentam erros variando entre 0,3% e 2,4%. Entre os resultados individuais de cada

modelo, os piores resultados foram obtidos pelos modelos B1, calibrado com o padrão

de elipses, e o modelo C4, calibrado com o padrão de vértices. Os erros foram 3,6% e

3,5% respectivamente. Estes erros refletem principalmente a diferença na calibração

devido ao posicionamento dos padrões de calibrações. Procurou-se neste teste testar

uma variedade de posições diferentes para os padrões de calibração, de modo a avaliar a

robustez da calibração. Os resultados mostram que a calibração deve ser melhorada.

Page 71: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

5 Conclusão

O sistema estudado foi implementado com sucesso em todas as suas etapas:

calibração das câmeras, projeção da luz estruturada, captura e processamento de

imagens, correspondência entre os pixels das câmeras, triangulação e criação do modelo

final. A partir da aplicação implementada foram executados dois testes.

O primeiro teste consistiu em medir, nos modelos gerados, as distâncias entre

pontos notáveis, cujas posições no objeto original eram conhecidas. Todas as medidas

ficaram com um erro abaixo de 1%. O segundo teste aplicou o método de ajuste de

cilindro proposto neste trabalho a modelos capturados a partir de uma tubulação de

PVC. O diâmetro do tubo foi medido com paquímetro e comparado com o valor

calculado pela aplicação. Os raios médios, dos ajustes feitos aos modelos capturados em

diferentes posições em relação às câmeras, ficaram entre 0,3% e 2,4%. O erro máximo

obtido por um modelo capturado foi de 3,6%.

A diferença de resultados obtidos entre os testes pode ser explicada pelo fato de

que, enquanto o segundo teste utilizava vértices distribuídos no espaço, o primeiro

trabalhava apenas com pontos no plano de calibração perto da origem. Também, no

primeiro caso o objeto capturado se encontrava localizado no centro das imagens

capturadas, onde a distorções ópticas são menores, enquanto a tubulação capturada se

estendia de um extremo ao outro das imagens. Este é mais um indicativo de que a

calibração dos parâmetros intrínsecos deve ser feita com maior precisão. As distorções

radiais tiveram influência nos resultados obtidos.

Para que o sistema possa ser mais bem empregado como um instrumento de

medidas em engenharia, deve-se melhorar a etapa de calibração das câmeras, refinando

o modelo utilizado. Este é o principal gargalo do sistema aplicado para esta finalidade.

O método para resolver a correspondência entre as imagens de um par de câmeras

em uma configuração estérea, utilizando luz estruturada e codificação temporal, foi

eficaz em vários modelos de formas variadas. Estátuas, vasos, tubulações utilizadas nos

testes e pessoas foram modeladas com sucesso. O método mostrou-se robusto com

diferentes tipos de matérias capturados. A utilização de dois valores de exposição para

captura de imagens foi útil para objetos capturados, cujas superfícies misturam cores

claras e escuras. Única dificuldade encontrada foi modelar objetos com material

Page 72: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

72

reflexivo. A luz estruturada projetada era refletida, criando áreas brancas nas imagens

capturadas, impossibilitando a correspondência. Tubos de PVC, que possuem uma

superfície reflexiva, não apresentaram este problema. Apenas materiais excessivamente

reflexivos geram falhas nas imagens, assim como objetos transparentes. Esta é uma

limitação comum a todos métodos ópticos de aquisição de formas.

Os resultados obtidos, utilizando diferentes números de linhas para a luz

estruturada, indicam que o fator limitante do método estéreo ativo, no sistema estudado,

é a resolução limitada das câmeras ( 480640× ). Enquanto que o projetor poderia

aumentar o número de linhas projetadas, as câmeras não conseguem capturar a

quantidade grande de linhas projetadas. Há um problema de padrões de interferência,

gerados nas imagens processadas. Essa interferência é repassada para o modelo, criando

irregularidades na sua superfície. Possivelmente, utilizar uma maior resolução deve

resolver este problema nas imagens processadas e permitir que uma maior quantidade

de linhas seja utilizada na luz estruturada para se obter modelos com maior número de

vértices.

Como produto deste trabalho foram apresentados dois modelos de calibração

coplanares para a calibração de câmeras. Estes padrões podem ser utilizados em

diferentes aplicações e cada um possui suas vantagens e desvantagens. Além de

poderem ser utilizados para calibração em tempo real com uma boa taxa de quadros por

segundo, são robustos contra ruídos na imagem e seus pontos de calibração são

encontrados com grande precisão na imagem capturada.

O segundo produto foi o método de ajuste de cilindro a um conjunto de pontos,

utilizado com sucesso no segundo teste, que pode ser empregado em futuras aplicações

de inspeção automatizada. A sua utilização é bastante simplificada, já não é necessário

fornecer valores iniciais aproximados.

Por último, deve-se fazer um comentário a respeito da biblioteca OpenCV. Todo o

sistema foi todo baseado nela, desde a implementação dos padrões de calibração, até o

processamento e armazenamento de imagens. Além de serem confiáveis, suas funções

são realmente otimizadas. Prova disso é alta taxa de quadros por segundo com o padrão

de calibração com vértices. O seu uso é recomendado para qualquer aplicação em Visão

Computacional.

Page 73: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

4 Implementação, Resultados e Testes

73

5.1 Trabalhos Futuros

Uma continuação natural deste trabalho é utilizar câmeras digitais fotográficas ao

invés de câmeras digitais de vídeo. Estas possuem atualmente uma resolução média de

4.0 Megapixel, o que é muito superior às câmeras de vídeo, lentes ópticas melhores e

menos ruído nas imagens capturadas. Como o sistema captura cenas e objetos estáticos,

um maior tempo de captura não influenciaria os resultados. Seria necessário

desenvolver uma API que integrasse a câmera digital à aplicação do sistema. A Canon,

por exemplo, disponibiliza um SDK que possibilita desenvolver aplicações

customizadas para suas câmeras digitais e pode ser obtido na página do fabricante na

Internet mediante preenchimento de uma fixa de pedido. O ganho de qualidade nos

modelos gerados pode considerável, já que atualmente o gargalo do sistema são as

câmeras utilizadas, tanto pela resolução quanto pelas distorções ópticas.

Apesar de os padrões de calibração coplanares terem apresentado uma boa

precisão no primeiro teste, o desempenho no segundo teste não foi satisfatório. O

caminho natural para aprimoramento seria utilizar um padrão tridimensional para a

calibração das câmeras. Fica a idéia de se fazer um estudo comparativo entre os dois

tipos de padrões de calibração.

Page 74: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

6 Referências Bibliográficas 1 Intel Open Source Computer Vision Library. Intel Research.

http://www.intel.com/research/mrl/research/opencv

Acessado em dezembro 2004. 2 Trucco, Emanuele. Verri, Alessandro. Introductory Techniques for 3-D

Computer Vision. New Jersey, EUA, Prentice Hall, 1998. 3 TSAI, Roger Y. An Efficient and Accurate Camera Calibration Technique for

3D Machine Vision. Proceedings of IEEE Conference on Computer Vision and Pattern Recognition, Miami Beach, FL, páginas 364-373, 1986.

4 TSAI, Roger Y. A Versatile Camera Calibration Technique for High-Accuracy

3D Machine Vision Cameras and Lenses. IEEE Journal, Vol. RA-3, No. 4, pp. 323-344, agosto 1987.

5 ZHANG, Zhengyou. A Flexible New Technique for Camera Calibration.

Microsoft Research. Technical Report MSR-TR-98-71, dezembro 1998. http://research.microsoft.com~zhang

Acessado em dezembro 2004.

6 SZENBERG, Flávio. Acompanhamento de Cenas com Calibração Automática de Câmeras. Tese de Doutorado, Departamento de Informática, PUC-RIO, 2001.

7 RUSS, John C. The Image Processing Handbook. CRC Press, 2ª edição, janeiro 1995.

8 GONZALEZ, Raphael C., WOODS, Richard E. Processamento de Imagens

Digitais. Editora Edgard Blucher, ISBN 8521202644, São Paulo, 2000. 9 MAGACHO, Romano J. Integração de um Dispositivo Óptico de Rastreamento

a uma Ferramenta de Realidade Virtual. Tese de Mestrado, Departamento de Informática, PUC-RIO, 2004.

10 Sá, Asla Medeiros. Medeiros, Esdras Soares. Carvalho, Paulo Cezar Pinto. Velho,

Luiz. Coded Structured Light for 3D-Photography: an Overview. Revista de Informática Teórica e Aplicada, Vol. 9, No. 2, outubro 2002.

11 Heath, F. G. Origins of the Binary Code. Scientific American Vol. 227, No. 2,

agosto 1972. 12 Umbach, Dale. Jones, Kerry N. A Few Methods for Fitting Circles to Data. Não

publicado, 2000. http://www.cs.bsu.edu/homepages/kerryj/kjones/circles.pdf

Acessado em janeiro 2005.

Page 75: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

6 Referências Bibliográficas

75

13 Scharstein, Daniel. Szeliski, Richard. High-Accuracy Stereo Depth Maps Using

Structured Light. IEEE Computer Society Conference on Computer Vision and Pattern Recognition, volume 1, pp. 195-202, Madison, WI, junho 2003.

14 Shoemake, Ken. ARCBALL: A User Interface for Specifying Three-

Dimensional Orientation Using a Mouse. Proceedings of Graphics Interface, 1992, pp. 151-156.

15 Rademacher, Paul. Stewart, Nigel. GLUI User Interface.

http://www.nigels.com/glt/glui

Acessado em fevereiro 2005. 16 Scuri, Antônio. IM: Image Representation, Storage, Capture and Processing.

http://www.tecgraf.puc-rio.br/im

Acessado em fevereiro 2005.

17 MINPACK. Versão em C. http://cvs1.sourceforge.net/viewcvs.py/gretl/gretl/minpack/

Acessado em fevereiro 2005. 18 Nalwa, Vishvjit S. A Guided Tour of Computer Vision. EUA, Addison-Wesley

Professional, 1993. 19 Shreiner, Dave. Woo, Mason. Neider, Jackie. Davis, Tom. OpenGL Programming

Guide, Fourth Edition. EUA, Addison-Wesley Professional, novembro 2003. 20 ZHANG, Zhengyou. Flexible Camera Calibration by Viewing a Plane from

Unknown Orientation. International Conference on Computer Vision (ICCV`99), Corfu, Grécia, pp.666-673, setembro 1999.

21 Batlle, J. Mouaddib, E. Salvi, J. Recent Progress in Coded Structured Light as a

Technique to Solve the Correspondence Problem: A Survey. Pattern Recognition 31(7), pp.963-982, 1998.

22 Inokuchi, Seiji. Sato, Kosuki. Matsuda, Fumio. Range Imaging for 3D Object

Recognition. Proc. Int. Conf. on Pattern Recognition, pp.806-808, 1984. 23 Posdamer, J. L. Altschuler, M. D. Surface Measurement by Space-Encoded

Projected Beam Systems. Comput. Graphics Image Process. 18, pp. 1-17, 1982. 24 Digital Light Processing Technology.

http://www.dlp.com/

Acessado em abril de 2004. 25 Le Moigne, J. Waxman, A. Structured Light Pattern for Robot Mobility. IEEE

Journal of Robotics and Automation, Vol. 4, No. 5, pp. 541-548, 1988.

Page 76: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

6 Referências Bibliográficas

76

26 Inokuchi, Seiji. Sato, Kosuki. Yamamoto, Hiryuki. Range Imaging System Based on Binary Image Accumulation. Proc. of 8th International Conference on Pattern Recognition, pp.233-234, 1986.

27 Morita, H. Yajima, K. Sakata, S. Reconstruction of Surfaces of 3D objects by M-

array Pattern Projection Method. Proc. of International Conference on Computer Vision, pp.468-473, 1988.

28 Carrihill, B. Hummel, R. Experiments with the Intensity Ratio Depth Sensor.

Computer Vision Graphics Image Process, 32, pp.337-358, 1985. 29 Boyer, K. Kak, A. Color-Encoded Structured Light for Rapid Active Ranging.

IEEE Trans. Pattern Analysis and Machine Intelligence, Vol. 9, Issue 1, pp.14-28, 1987.

30 Tajima, J. Iwakawa, M. 3-D Data Acquisition by Rainbow Range Finder. Proc.

International Conference on Pattern Recognition, pp.309-313, 1990. 31 Wust, C. Capson, D. Surface Profile Measurement Using Color Fringe

Projection. Machine Vision and Applications, Vol. 4, Issue 3, pp.193-203, 1991. 32 Hall-Holt, O. Rusinkiewicz, S. Stripe Boundary Codes for Real-Time

Structured-Light Range Scanning of Moving Objects. ICCV, pp.13-19, 2001.

Page 77: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice A – OpenCV

OpenCV (Intel Open Source Computer Vision Library) é uma API de média a alto

nível destinada ao desenvolvimento de aplicações na área de Visão Computacional,

como o nome já diz, e está disponível em versões para Windows e Unix. Contendo uma

coleção de funções em C e algumas classes em C++ que implementam vários

algoritmos populares de visão computacional e processamento de imagens, OpenCV é

direcionado a aplicações em tempo real. Identificação de objetos, reconhecimento

facial, reconhecimento de gestos e captura de movimentos são alguns exemplos de áreas

que utilizam esta biblioteca.

A versão mais atual desta biblioteca é a 4.0 beta. Porém neste trabalho utilizou-se

a versão 3.0 beta para Windows, que era a mais recente no começo do projeto. Esta

versão já vem com documentação em HTML bastante útil, porém que pode ser

melhorada em alguns pontos, principalmente no modo de uso e na descrição

incompletos de algumas funções. A documentação divide a biblioteca em sete principais

partes, cada uma fazendo referência a um conjunto de funções e estruturas com mesma

finalidade:

• Operações e estruturas básicas.

• Processamento e análise de imagens.

• Análise estrutural.

• Análise de movimento e rastreamento de objetos.

• Reconhecimento de objetos

• Calibração de câmeras e reconstrução 3D.

• Interface gráfica e aquisição de vídeo.

A primeira parte descreve as operações e estruturas básicas, utilizadas por todas as

outras funções do OpenCV. A estrutura utilizada para representar imagens é chamada

de IPLImage, originalmente usada pela biblioteca Intel Image Processing Library. Esta

estrutura é bastante detalhada e possui campos como números de canais, largura, altura,

tamanho, posição da origem, matriz de dados e outros mais específicos, como máscara

de cores etc. Além desta estrutura, há estruturas representativas de pontos, retângulos,

matrizes, grafos, árvores e outras estruturas dinâmicas. Como alternativa para

persistência de dados, pode-se salvar uma instância de qualquer estrutura em um

Page 78: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice A

78

arquivo em formato XML e posteriormente recarregá-la. São disponibilizadas funções

básicas para adicionar, subtrair, multiplicar, dividir, encontrar valor máximo e mínimo,

comparar e aplicar operações lógicas entre imagens e matrizes. Há também funções

específicas de matrizes e vetores como matriz transposta e inversa, produto escalar e

vetorial, autovalores e autovetores de matrizes simétricas e resolver sistemas de

equações lineares. Ou seja, as operações e estruturas básicas são bastante abrangentes e

servem como base para diversas aplicações em diferentes etapas, desde operações com

imagens até a construção de grafos complexos.

Na parte de processamento de imagens encontramos funções para suavizar, como

filtro Gaussiano e filtro médio, funções para detecção de bordas e cantos, como Canny e

Sobel, funções para conversão e reamostragem de imagens, como pirâmide Gaussiana, e

outras funções úteis como dilatação e erosão. Há também funções para desenhar linhas,

pontos, círculos, elipses, polígonos e texto em imagens. Para a parte de análise, pode-se

obter uma lista de componentes conexas de uma imagem, aplicar a transformada de

Hough para linhas e criação de histogramas, entre outras possibilidades.

A análise estrutural possui funções para contornos, geometria e subdivisões

planares. Cálculo de perímetro e área de um contorno, feixe convexo de uma lista de

pontos, teste de convexidade de um polígono e cálculo de melhor reta ou elipse

utilizando o método de mínimos quadrados são exemplos de funções encontradas.

Análise de movimento e rastreamento de objetos traz métodos específicos para

cálculo de fluxo óptico utilizando diferentes algoritmos, acúmulo de estatísticas de

fundo, segmentação de movimento etc. Destaca-se a implementação do filtro de

Kalman.

No OpenCV há duas funções para calibração de câmeras. Estas funções utilizam o

algoritmo de Zhang descrito em [5] e [20]. A primeira função calibra os parâmetros

intrínsecos e extrínsecos da câmera a partir de uma seqüência de imagens de um padrão

de calibração. A segunda função calcula apenas os parâmetros extrínsecos da câmera,

utilizando uma imagem do padrão de calibração.

Por último, o OpenCV disponibiliza uma modesta interface gráfica para o

desenvolvimento de aplicações, permitindo a criação de janelas e outras poucas opções.

É possível carregar e salvar imagens facilmente em todos os formatos mais usados,

como BMP, JPEG, PNG e TIFF. Na parte de vídeo, podemos obter imagens a partir de

Page 79: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice A

79

câmeras de vídeo ou arquivos AVI, bem como criar um novo arquivo AVI. Interessante

destacar que há uma função que permite obter um quadro rapidamente quando há

necessidade de sincronização de diferentes câmeras.

Em geral e de uma forma qualitativa, as funções são bem implementadas e muito

rápidas, cumprindo o seu objetivo de servir a aplicações em tempo real.

Page 80: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice B – Tabelas de Dados dos Testes

B.1 Primeiro Teste

As tabelas abaixo apresentam os resultados obtidos por cada um dos três usuários

que participaram do primeiro teste. Cada modelo capturado foi gerado duas vezes

utilizando calibrações de câmeras distintas. O padrão um refere-se ao padrão com

elipses enquanto que o padrão dois refere-se ao padrão com vértices. A coluna distância

média dá o valor da média aritmética de todas as distâncias medidas pelo usuário para

um dado segmento.

Segmento

Modelo Um

Distância (cm)

Modelo Dois

Distância (cm)

Modelo Três

Distância (cm) Distância

Média

(cm) Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

10 20,988 21,086 20,988 20,884 21,083 21,013 21,007

72 21,074 21,024 21,074 20,962 20,963 20,980 21,013

98 14,939 14,981 14,939 14,922 15,021 14,975 14,963

1110 14,914 14,879 14,914 14,924 14,844 14,885 14,893

70 24,984 25,069 24,984 24,930 24,774 24,847 24,931

21 24,830 24,870 24,830 24,853 24,954 25,051 24,898

118 15,003 15,125 15,003 14,994 14,990 15,046 15,027

109 14,958 14,945 14,958 14,935 15,013 15,044 14,976

Figura B.1 – Tabela dos resultados obtidos pelo primeiro usuário.

Page 81: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice B

81

Segmento

Modelo Um

Distância (cm)

Modelo Dois

Distância (cm)

Modelo Três

Distância (cm) Distância

Média

(cm) Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

10 21,050 21,126 20,873 20,927 21,043 21,024 21,007

72 21,084 20,989 21,105 20,929 20,882 20,963 20,992

98 14,748 14,894 14,911 14,912 14,943 14,919 14,889

1110 14,855 14,883 14,797 14,945 14,868 14,816 14,861

70 24,970 25,078 24,806 24,977 24,751 24,875 24,910

21 24,896 24,865 24,920 24,899 24,920 25,032 24,922

118 14,939 15,027 14,879 14,950 14,958 15,052 14,968

109 14,838 14,929 14,933 14,891 14,980 15,032 14,934

Figura B.2 – Tabela dos resultados obtidos pelo segundo usuário.

Segmento

Modelo Um

Distância (cm)

Modelo Dois

Distância (cm)

Modelo Três

Distância (cm) Distância

Média

(cm) Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

Padrão

Um

Padrão

Dois

10 21,002 21,066 20,969 20,922 21,044 21,102 21,018

72 21,047 21,008 20,953 20,902 20,958 20,966 20,973

98 14,929 14,868 14,914 14,991 14,929 14,993 14,937

1110 14,918 14,845 14,906 14,894 14,847 14,858 14,887

70 25,059 25,096 24,823 24,919 24,836 24,851 24,931

21 24,847 24,826 24,947 24,883 24,977 25,074 24,926

118 15,033 15,035 14,909 14,977 14,900 15,013 14,978

109 14,852 14,946 14,939 14,890 14,979 15,034 14,940

Figura B.3 – Tabela dos resultados obtidos pelo terceiro usuário.

Page 82: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice B

82

B.2 Segundo Teste

As tabelas apresentam os resultados obtidos no segundo teste. A tubulação

utilizada como modelo foi capturada em três posições diferentes, dadas pelas letras A, B

e C. Para cada teste foram gerados oito modelos, modificando a posição dos padrões de

calibração, recalibrando as câmeras e mantendo as mesmas imagens capturadas.

Ajustou-se um cilindro para cada modelo criado.

Modelos Número de

Linhas

Número de

Pontos

Padrão com

Elipses

Padrão com

Vértices

Diâmetro (mm) Diâmetro (mm)

Modelo A1 3232× 325 149,14 150,38

Modelo A2 6464× 1233 148,94 150,26

Modelo A3 3232× 325 150,34 146,71

Modelo A4 6464× 1233 149,99 146,78

Modelo A5 3232× 325 149,19 150,45

Modelo A6 6464× 1233 148,94 150,31

Modelo A7 3232× 325 154,83 150,12

Modelo A8 6464× 1233 154,47 150,10

Figura B.4 – Tabela dos resultados obtidos para a posição A.

Modelos Número de

Linhas

Número de

Pontos

Padrão com

Elipses

Padrão com

Vértices

Diâmetro (cm) Diâmetro (cm)

Modelo B1 3232× 243 144,94 145,11

Modelo B2 6464× 883 146,73 147,84

Modelo B3 3232× 243 145,04 148,09

Modelo B4 6464× 883 147,51 151,03

Modelo B5 3232× 243 145,03 147,73

Modelo B6 6464× 883 147,71 150,47

Modelo B7 3232× 243 149,77 145,12

Modelo B8 6464× 883 152,93 147,61

Figura B.5 – Tabela dos resultados obtidos para a posição B.

Page 83: Um Estudo das Técnicas de Obtenção de Forma a partir de ...webserver2.tecgraf.puc-rio.br/~mgattass/teses/2005Dissertacao... · Este trabalho avalia um sistema óptico para capturar

Apêndice B

83

Modelos Número de

Linhas

Número de

Pontos

Padrão com

Elipses

Padrão com

Vértices

Diâmetro (cm) Diâmetro (cm)

Modelo C1 3232× 343 154,42 151,31

Modelo C2 6464× 1249 153,70 150,62

Modelo C3 3232× 343 154,77 155,52

Modelo C4 6464× 1249 154,33 155,39

Modelo C5 3232× 343 152,63 152,09

Modelo C6 6464× 1249 152,06 151,51

Modelo C7 3232× 343 154,89 152,05

Modelo C8 6464× 1249 154,43 151,43

Figura B.6 – Tabela dos resultados obtidos para a posição C.