scanner 3d: aquisição de pontos 3d por raio laser 3d.pdf · 2 resumo a proposta desse trabalho é...

31
Evandro Kondrat Scanner 3D: Aquisição de pontos 3D por raio Laser Trabalho apresentado ao curso de Bacharelado em Ciência da Computação da Universidade Federal do Paraná, como requisito parcial à obtenção do título de Bacharel em Ciência da Computação. Orientador: Bruno Müller Junior Universidade Federal do Paraná Curitiba 2011

Upload: dangnga

Post on 18-Apr-2018

222 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

Evandro Kondrat

Scanner 3D: Aquisição de pontos 3D por

raio Laser

Trabalho apresentado ao curso de

Bacharelado em Ciência da Computação da

Universidade Federal do Paraná, como

requisito parcial à obtenção do título de

Bacharel em Ciência da Computação.

Orientador:

Bruno Müller Junior

Universidade Federal do Paraná

Curitiba

2011

Page 2: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

2

Resumo

A proposta desse trabalho é apresentar uma técnica de aquisição de

pontos 3D de um objeto, utilizando apenas um raio laser e uma câmera

simples.

Com ajuda do laser, iremos projetar uma luz sobre o objeto a ser

reconstruído. A partir dessa luz projetada, serão calculadas equações, que

permitirão determinar as coordenadas em três dimensões dos pontos da

superfície do objeto.

Ao final demostraremos os resultados obtidos com a utilização da técnica,

para obter os pontos da superfície de um objeto exemplo.

Page 3: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

3

Sumário 1. INTRODUÇÃO .................................................................................................................... 4

1.1. Motivação do Projeto .............................................................................................. 4

1.2. Histórico ..................................................................................................................... 5

1.2.1. Aplicações .......................................................................................................... 5

1.2.2. Técnicas de reconstrução 3D ....................................................................... 5

2. DEFINIÇÃO CONCEITUAL .............................................................................................. 8

2.1. Sistema cartesiano .................................................................................................. 8

2.2. Calibração da câmera.............................................................................................. 9

2.3. Propriedades de captura de imagem. ............................................................... 10

2.3.1. Propriedades intrínsecas ............................................................................. 11

2.3.2. Propriedades extrínsecas ............................................................................ 11

2.4. Transformando pontos 2D para 3D ................................................................... 12

2.5. Geometria analítica ................................................................................................ 12

2.5.1. Equação da reta .............................................................................................. 12

2.5.2. Equação do plano .......................................................................................... 13

2.5.3. Interseção de reta e plano ............................................................................ 13

3. O Projeto ........................................................................................................................... 14

3.1. Cenário de captura ................................................................................................. 15

3.2. Cálculo do ..................................................................................................... 16

3.3. Reconstrução 3D .................................................................................................... 17

3.3.1. Aquisição de dados ....................................................................................... 17

3.3.2. Alinhamento das imagens ........................................................................... 18

3.3.3. Integração das imagens ............................................................................... 19

4. Detalhes do Projeto ....................................................................................................... 20

4.1. Calibração da câmera............................................................................................ 20

4.2. Extração da informação ........................................................................................ 22

4.3. Cálculo da ............................................................................................... 22

4.4. Isolando da informação do laser sobre o objeto ........................................... 24

4.5. Obtendo pontos 3D do objeto ............................................................................. 25

4.6. Scaneando a face de um objeto ......................................................................... 26

5. Resultados obtidos ........................................................................................................ 27

6. Conclusão ........................................................................................................................ 29

7. Bibliografia ....................................................................................................................... 30

Page 4: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

4

1. INTRODUÇÃO

Este trabalho tem como objetivo descrever um software capaz de

reconstruir um objeto 3D a partir de imagens 2D do objeto.

Existem várias técnicas de reconstrução. A que será vista neste texto utiliza

um raio laser. O laser irá projetar uma linha sobre a superfície do objeto, o

que irá destacar seus contornos. Uma câmera captura a imagem dessa

projeção, e com base na análise dessa imagem, junto com informações

sobre o posicionamento câmera e do laser [1], é possível calcular as

coordenadas 3D de pontos da superfície do objeto.

O desafio adicional é que, inicialmente não conhecemos nenhuma

informação sobre o posicionamento do laser, esta informação deverá ser

inferida com o auxílio de um plano de fundo que será utilizado na cena

juntamente ao objeto que será escaneado.

1.1. Motivação do Projeto

A motivação do projeto se deu após uma aula de Computação Gráfica.

Onde em uma pesquisa na internet encontrei o site de um sujeito chamado

David Heckner [2]. Ele oferecia um software que apenas com uma webcam

e uma ponteira laser que projeta uma luz em linha, era possível reconstruir

objetos em três dimensões. Como eu dispunha dos itens necessários,

resolvi testar o software, que em uma versão demo, é disponibilizado

gratuitamente.

Surpreendido com o excelente resultado e simplicidade de uso do mesmo,

comecei a pesquisar mais sobre o assunto e me aprofundar sobre

reconstrução 3D de imagens.

Meu trabalho se propõe a entender e reproduzir a técnica utilizada no

programa original, e também ser uma alternativa livre para reconstrução 3D

de objetos.

Page 5: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

5

1.2. Histórico

Um problema bastante estudado na literatura computacional é a reconstrução tridimensional de objetos. Tal interesse se deve a uma variada gama de aplicações que necessitam de modelagem 3D de objetos.

1.2.1. Aplicações

Dentre as aplicações de modelos digitais 3D podemos citar:

Na área médica, a tomografia computadorizada entre outros procedimentos, a ajuda de modelos tridimensionais auxiliam a analise das superfícies estudadas e assim os médicos podem dar um diagnostico com mais exatidão [3].

Na indústria é comum a utilização de moldes, modelos ou protótipos que precisam ser digitalizados para produção em larga escala ou até mesmo para uma analise computacional. Assim como a indústria cinematográfica se utiliza de modelos reais para construção dos personagens digitais [4].

A preservação e arqueologia digital também necessitam de modelos 3D na forma digital para melhor detalhamento e fidelidade com o objeto real estudado. Além da capacidade do modelo digital ser facilmente replicável e disponibilizado em diversos centros de estudos ou até mesmo em museus digitais [5].

Além de odontologia, topografia cartográfica dentre outros. [3;6]

1.2.2. Técnicas de reconstrução 3D

A seguir será elaborada uma visão geral de algumas técnicas existentes para reconstrução 3D, com a finalidade de dar uma visão geral do assunto, no qual esse projeto se insere.

Imagens estéreo: É uma técnica que tenta reproduzir a forma que nosso cérebro usa para estimar a distancia dos objetos. São tiradas fotos de pontos de vista diferentes e com base na diferença delas é possível estimar a profundidade [7].

Digitalizador 3D: Trata-se de um dispositivo vetorial e consiste em uma espécie de braço mecânico com um sensor de toque na ponta. A cada vez que o sensor atinge um ponto na superfície de um objeto, a coordenada deste ponto em relação a um ponto referencial (origem) é transmitida ao computador. A captura é feita ponto a ponto, por esse motivo o resultado é bem preciso, mas extremamente demorado [8].

Page 6: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

6

Luz estruturada: É projetado um padrão de luz sobre a superfície do objeto e um sensor captura a imagem do objeto com o padrão projetado. Conhecendo a geometria entre o sensor e o feixe de luz padronizado é possível fazer a reconstrução do pedaço do objeto observado [9].

Varredura Laser: Existem duas variantes que utilizam laser para reconstrução 3D.

o Um baseado em LIDAR (Light Detection And Ranging) que estima a distância baseado no tempo que a luz leva para refletir no objeto e voltar ao sensor [10].

o A outra a técnica é similar ao da luz estruturada. O raio laser projeta um padrão de luz. E conhecendo esse padrão, juntamente com a posição da câmera e do laser, é feita uma triangulação para se obter as coordenadas da superfície [1].

Figura 1: Digitalizador 3D desenvolvido pela FaroArm [8]

Figura 2: Exemplo de luz estruturada [9]

Page 7: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

7

Este trabalho utiliza uma variação da ultima técnica citada. Como já

mencionamos inicialmente não conhecemos nenhuma informação sobre o

posicionamento do laser. Sem essa informação, não é possível fazer tal

triangulação. Por isso, faremos uso de um plano de fundo conhecido na

imagem para inferir o posicionamento do laser. [2;11]

Figura 3: Exemplo de triangulação com laser [20]

Page 8: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

8

2. DEFINIÇÃO CONCEITUAL

Para o desenvolvimento do projeto, é necessário que se entenda o sistema

cartesiano usado (seção 2.1), o que é calibração da câmera (seção 2.2) e quais

propriedades ela visa obter (seção 2.3). Como podemos transformar um ponto

2D para 3D (seção 2.4) e um embasamento em geometria analítica e espacial

(seção 2.5).

2.1. Sistema cartesiano

Para entender como o projeto funciona, é importante compreender o sistema

de coordenadas que ele utiliza.

Primeiro as coordenadas dos pontos que são obtidas das imagens

capturadas, exemplificada na Figura 4.

Depois, definimos um sistema de coordenadas para representar as

coordenadas do mundo real, como podemos observar na Figura 5.

Figura 4: Sistema de coordenadas de uma imagem

Page 9: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

9

É em relação a este sistema cartesiano que todas as coordenadas,

equações e pontos da superfície do objeto vistos ao longo desse projeto serão

calculados.

2.2. Calibração da câmera

Tem como objetivo, descrever uma correspondência entre as coordenadas

do espaço objeto 3D (mundo real) e pontos da imagem (2D).

Essa correspondência se dá por uma função

Essa função pode ser escrita como a multiplicação das propriedades

intrínsecas e extrínsecas. [12;13] (que serão abordadas nas seções 2.3.1

e 2.3.2)

Figura 5: Sistema de coordenadas

Figura 6: Correspondência de coordenadas

Page 10: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

10

Para fazer essa associação, devemos conhecer n pontos no mundo real e

saber as coordenadas destes pontos, na imagem.

Para conseguir fazer isso, usamos uma imagem com um padrão de pontos

conhecidos.

A câmera deve ser fixada de forma que não se mova durante a execução

de todo o processo de captura das imagens. Isso garante que as

propriedades extrínsecas permaneçam as mesmas durante a execução do

projeto.

Uma vez fixada, a calibração da câmera precisa ser feita apenas uma vez.

Quando realizada com sucesso, retorna três matrizes. A intrínseca,

rotação e translação, que juntas formam a função de correspondência da

Figura 6.

2.3. Propriedades de captura de imagem.

Quando uma câmera captura uma foto, precisamos ter em mente que a

imagem resultante é a projeção da imagem real ( ), no sensor de captura

dentro da câmera ( ) como podemos ver no diagrama da Figura 7.

Figura 7: Modelo geométrico de uma câmera [14]

Page 11: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

11

As informações sobre como a imagem é projetada na câmera podem ser

divididas em duas propriedades [14]: Intrínsecas e extrínsecas, que são

obtidas através de um processo chamado calibração da câmera. Os quais,

veremos a seguir.

2.3.1. Propriedades intrínsecas

São as propriedades sobre a geometria interna da câmera, uma vez

medidos, não se alteram [12].

São elas, distância focal e centro óptico.

Essas informações serão armazenadas numa matriz com o seguinte

formato:

100

0

0

cyfy

cxfx

Onde são as distancias focais nos respectivos eixos e definem

o centro óptico da projeção.

2.3.2. Propriedades extrínsecas

São as propriedades da perspectiva que imagem foi capturada, em relação

a um referencial.

Tem como finalidade estimar as posições e rotações da câmera em relação

ao sistema de coordenadas do espaço objeto. Pode ser determinada por

um modelo que relaciona os pontos na imagem com pontos no espaço

objeto. Em geral usa-se um padrão conhecido na imagem como referencia,

para fazer a relação entre os pontos [14].

Essas propriedades variam conforme a mudança de posição da câmera em

relação à imagem observada.

São usadas duas matrizes para armazenar respectivamente, as

propriedades de rotação e translação da câmera em relação a uma

referência. Como em geometria analítica, as matrizes representadas da

seguinte forma [12]:

Page 12: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

12

333231

232221

131211

rrr

rrr

rrr

R E

3

2

1

t

t

t

T

2.4. Transformando pontos 2D para 3D

É essa transformação que o projeto espera conseguir. Transformar pontos de

uma imagem para um sistema cartesiano de três dimensões.

O problema é que quando analisamos um ponto especifico em uma imagem,

temos apenas duas informações . E precisamos mapear esse ponto da

imagem, para o sistema cartesiano visto anteriormente.

Como vimos na calibração da câmera (seção 2.2), existe uma função que

converte pontos . Mas ela não é bijetora, logo não temos uma função

. Isso acontece porque quando representamos o mundo real em uma

imagem 2D, há perda de informação.

Para tornar essa transformação possível, temos duas alternativas. Ter

informação adicional sobre os pontos em e assim suprimos a perda de

informação que ocorre na representação do mundo real em uma imagem.

Ou podemos arbitrar valores na função de correspondência, a fim de

transforma-la em uma função bijetora.

O projeto utiliza as duas alternativas mais adiante serão explicado como

esses valores são arbitrados e também como extraímos informações

adicionais sobre os pontos.

2.5. Geometria analítica

Como a técnica utilizada nesse texto envolve o cálculo de retas (seção 2.5.1)

do raio laser projetadas sobre planos (seção 2.5.2) e também suas

intersecções (seção 2.5.3), faremos aqui uma breve revisão dos principais

conceitos de geometria analítica que serão utilizados ao longo do texto.

2.5.1. Equação da reta

Para o espaço tridimensional são consideradas três coordenadas . A

determinação da equação de uma reta nesse espaço tem as mesmas

Page 13: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

13

características que a equação da reta no espaço , diferenciando apenas no

número de coordenadas.

É definida através de dois pontos distintos. E pode ser escrita na forma [15]:

2.5.2. Equação do plano

O plano é um subconjunto do espaço de tal modo que quaisquer dois

pontos desse conjunto pode ser ligado por um segmento de reta inteiramente

contida no conjunto.

Há diversas formas de se determinar a equação do plano, nesse trabalho ele

será determinado através de três pontos distintos e não lineares.

Esse plano pode ser representado por uma equação na forma [15]:

2.5.3. Interseção de reta e plano

A intersecção entre uma reta e um plano é um ponto no , como vemos

na Figura 8.

Para determinar as coordenadas desse ponto, basta resolvermos o sistema

linear composto pela equação da reta e pela equação do plano .

Figura 8: Interseção de reta e plano

Page 14: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

14

3. O Projeto

Este projeto se propõe a demostrar uma forma de se obter pontos

tridimensionais da superfície de um objeto, utilizando uma técnica de varredura

laser de curta distância e de baixo custo.

Uma técnica bastante conhecida [1] consiste em fazer uma triangulação entre

câmera, laser e objeto para se calcular a distancia da superfície do objeto com

a câmera ( ) como vemos no esquema da Figura 9.

O problema, é que para ser aplicada, precisa-se conhecer a distância e ângulo

de inclinação do laser em relação à câmera. Isso implica no uso de algum

mecanismo ou equipamento que provenha essa relação do laser com a

câmera.

O que estamos propondo aqui é que o laser possa ser manuseado livremente

em relação à câmera, e que qualquer mecanismo adicional deve ser obtido

através da imagem que a câmera captura.

Mas como dito anteriormente, uma imagem não tem toda a informação

necessária para reconstruir um objeto em três dimensões. E para obter a

informação restante, iremos analisar a deformação que linha do laser sofre,

quando projetada sobre a superfície do objeto.

Nessa análise, precisamos ter alguma referência, para poder comparar o que

seria a projeção normal da linha com sua projeção deformada na superfície.

Essa referência sobre a projeção do laser é obtida através de um plano de

fundo, também conhecido como cenário, previamente preparado atrás do

objeto.

Figura 9: Esquema de triangulação [1]

Page 15: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

15

Veremos a seguir como deve ser preparado o cenário de captura de imagens

(seção 3.1), porque que esse cenário nos ajuda a calcular o que chamamos de

f dos pontos (seção 3.2) e explicar o que é reconstrução 3D (seção 3.3)

assim como o que esperamos conseguir fazer.

3.1. Cenário de captura

O cenário de captura deve ser preparado de forma que a câmera capture

simultaneamente, além do objeto a ser scaneando, um plano de fundo com

uma posição específica.

O plano de fundo foi escolhido de forma que seus eixos coincidam com o

sistema cartesiano escolhido para o projeto. Na Figura 10 temos um esquema

de como deve ficar cenário de captura.

O fundo é composto por dois planos perpendiculares. A projeção do laser pode

ser interpretada como sendo um plano, e a equação formada por esse plano,

chamaremos de .

No canto inferior direito do esquema, temos a representação da imagem

capturada pela câmera. Sobre essa imagem, temos uma função chamada

Figura 10: Esquema do cenário

Page 16: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

16

, que dado um qualquer na imagem capturada, retorna o onde o pixel

formado por é um dos pontos da linha laser na imagem.

O objeto a ser escaneado deve ficar entre o plano de fundo e o laser, de forma

que a possa interceptá-lo.

O ponto é o ponto real representado por na imagem capturada. A reta

imaginária formada por esses dois pontos, chamamos de ou

simplesmente . O ponto representa a projeção que o laser no ponto

teria se não tivesse sido interceptada pelo objeto.

A intersecção entre a e nos dará as coordenadas no do

ponto .

3.2. Cálculo do

Agora vamos mostrar, o porquê que conhecer o fundo é importante para que

possamos calcular o dos pontos laser na imagem.

Como vemos na Figura 11, um que intercepte o fundo a esquerda,

passará pelo ponto .

Logo, podemos eliminar da fórmula de correspondência (seção 2.2) as

transformações relativas ao eixo :

Figura 11: Visão transversal do cenário

Page 17: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

17

Obtendo:

[ ] [

] [

] [ ]

Manipulando algebricamente a equação, teremos:

[ ] ([

] [

])

[ ]

Assim temos uma função de transformação para todos os pontos

onde o eixo é zero.

De forma análoga, obtemos uma função para todos os pontos onde o

eixo é zero.

Com essas duas funções, é possível calcular as coordenadas dos pontos

, e, portanto calcular a equação da reta formada entre eles, obtendo

assim o chamado .

3.3. Reconstrução 3D

Quando falamos de reconstrução 3D, temos que ter em mente que a

reconstrução completa de um objeto envolve três etapas [16]: a aquisição de

pontos de profundidade, o alinhamento das imagens e a integração das

imagens.

Como as etapas são bastante distintas, esse trabalho limitou-se a fazer apenas

a primeira etapa, aquisição de pontos de profundidade. As demais etapas

seguem outra linha de pesquisa que envolve computação gráfica e podem ser

vistas em trabalhos relacionados à área [2;17].

Esse capítulo fará apenas uma breve introdução de todas as etapas que

envolvem a reconstrução.

3.3.1. Aquisição de dados

Consiste na utilização de algum meio ou dispositivo para digitalizar um objeto.

Gerando geralmente uma malha de pontos ou polígonos. De modo que essa

malha consiga traduzir a profundidade da superfície analisada, por isso

também é chamada de mapa de profundidade.

É esse mapa de profundidade que este projeto visa gerar e que será

explicado detalhadamente no capítulo 4.

Page 18: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

18

3.3.2. Alinhamento das imagens

Por mais que existam diversas formas de se fazer a aquisição dos dados, em

geral, todas elas só podem varrer o objeto a partir de uma única direção.

Por isso que a aquisição de dados precisa ser feita de diferentes pontos de

vista, de modo que seja possível adquirir toda a superfície do objeto.

Ao final, é preciso que esses dados sejam alinhados para que formem um

objeto único. Esse processo também é chamado de registro.

Como vemos na Figura 12, temos um objeto em que os pontos foram adquiridos

de 4 pontos de vista diferentes, o alinhamento visa agrupar todas as vistas em

uma única formação, visto na Figura 13. Nesta figura, as cores indicam quais

imagens da Figura 12 foram usadas para gerar a composição de cada pedaço da

Figura 13.

As técnicas de solução para esse problema consistem em achar

transformações nas diferentes vistas para achar o alinhamento correto ou que

resulte no menor erro possível [16].

Figura 12: Objeto adquirido sob vários pontos de vista [2]

Figura 13: Vistas alinhadas [2]

Page 19: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

19

3.3.3. Integração das imagens

Após o alinhamento das imagens ainda é possível observar pequenas

imperfeições, buracos e distorções.

A integração é a etapa que tenta recriar a superfície do objeto a partir dos

pontos obtidos, o mais fielmente possível.

Comparando a Figura 13 com a Figura 14, podemos ver que os pontos foram

suavizados deixando a superfície mais lisa, buracos foram preenchidos e que

todas as vistas agora fazem parte de um único objeto.

Figura 14: Objeto recriado após a integração [2]

Page 20: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

20

4. Detalhes do Projeto

Esse capítulo descreve como o projeto foi desenvolvido detalhadamente.

O passo a passo do processo consiste em:

1. Calibração da câmera.

2. Posicionamento do laser sobre uma parte do objeto.

3. Extração da informação do laser no frame

4. Cálculo da .

5. Isolamento da informação do laser sobre o objeto

6. Obtendo pontos 3D do objeto

7. Armazenar as coordenadas obtidas.

8. Voltar ao passo 2 até que toda a superfície do objeto seja

escaneada.

Ao final do processo, devemos ter a malha de pontos de uma face do objeto

que corresponde à seção 3.3.1 vista anteriormente.

4.1. Calibração da câmera

A calibração da câmera, como visto na seção 2.2, tem como objetivo

extrair as propriedades intrínsecas e extrínsecas da câmera. Como a

biblioteca OpenCv [12] já tem procedimentos para extrair estas informações

usando um padrão xadrez, esse padrão foi adotado (Figura 15). Esse padrão foi

projetado sobre duas paredes com um ângulo de 90º entre si a fim de

maximizar a percepção de profundidade da imagem capturada.

Figura 15: Padrão xadrez usado na calibração

Page 21: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

21

A função cvDrawChessboardCorners(), detecta e retorna uma lista com as

coordenadas dos pontos de interseção dos quadrados do tabuleiro

xadrez, na imagem.

No exemplo da Figura 16, o ponto nº 30 corresponde às coordenadas

na imagem e ao ponto do modelo de coordenadas 3D adotado.

Para cada um dos 48 pontos marcados na imagem, foi dada, arbitrariamente,

uma coordenada R³ associada.

Com base nesse mapeamento, a função cvCalibrateCamera2() calcula as

propriedades intrínsecas do sistema e a cvFindExtrinsicCameraParams2() as

propriedades extrínsecas.

Como dito anteriormente, esse processo é feito apenas uma vez, pois

assumimos que a câmera ficará fixa durante o resto do processo.

Figura 16: Lista de corners

Figura 17: Testando a função de correspondência

Page 22: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

22

Para verificar a precisão da função de correspondência, fizemos um teste.

Mapeamos pontos 3D em uma imagem 2D. Os pontos escolhidos foram as

interseções entre os quadrados do tabuleiro. O resultado desse teste pode ser

visto na Figura 17, onde os círculos em vermelho indicam os pontos mapeados.

Como pode ser observado, esse mapeamento envolve certo erro.

4.2. Extração da informação

Após a calibração o laser deve ser posicionado sobre a cena. Essa etapa visa

discretizar a imagem de modo que apenas a informação sobre a posição da

linha do laser seja relevante. Todos os outros elementos da imagem são

desnecessários.

De cada imagem analisada (Figura 18- a), isolamos o laser do resto da imagem.

Isso é feito, selecionando o espectro de cor vermelha na imagem. (Figura 18- b)

Como vemos (Figura 18 – a, b) o laser dispersa um pouco e a linha fica um

pouco espessa.

Para facilitar a utilização dessa informação mais adiante, defini que para cada

na imagem deveríamos ter apenas um a ele associado.

Por isso, pegamos a imagem com o laser isolado (Figura 18 - b) e tiramos a

média da altura dos pixels brancos. Como resultado temos apenas o pixel

central da linha (Figura 18 – c).

Como resultado final dessa etapa temos uma função que retorna a altura dos

pixels laser para cada pixel horizontal na imagem.

a mesma função esquematizada na Figura 10.

4.3. Cálculo da

Como vimos anteriormente, a luz projetada pela linha laser faz parte de um

plano. Para calcular sua equação, precisamos de três pontos distintos que

pertençam a esse plano.

Figura 18: Foto original (a); Isolado o laser da imagem original (b); Laser com espessura de um pixel (c)

Page 23: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

23

Assim, com auxílio da função selecionamos três pontos aleatórios

distintos da linha laser (pontos vermelhos na Figura 19). Assumimos que eles

são não lineares. Assumimos também que eles estejam refletindo no plano de

fundo (e não no objeto), porque como vimos em 3.2 apenas temos uma

relação quando os pontos estão no eixo .

Com os três pontos selecionados, podemos calcular a .

Uma vez calculada a , podemos projetar os pontos do plano que

deveriam corresponder aos do laser. (pontos azuis na Figura 19)

Para validar essa equação, defini empiricamente um método que consiste em:

Se ao menos 40% de todos os pontos retornados pela função

pertencerem a equação do plano, significa que, o que assumimos era

verdadeiro, senão devemos selecionamos outros três pontos e repetimos o

processo.

Na pratica isso é visto como, para ser obtida uma equação válida, o objeto

não pode cobrir mais que 60% da imagem.

Quanto maior a porcentagem do objeto na imagem, menos precisa é a

equação calculada. Isso porque, quanto maior o objeto, menos luz é projetada

no fundo e assim temos menos pontos para verificar a validade da equação

do plano.

Como vemos na Figura 19, na esquerda, os três pontos selecionados

resultaram em uma bem diferente da projetada pelo laser.

Isso aconteceu por que os pontos selecionados são muito próximos e,

portanto não são completamente linearmente independentes e/ou não

pertencem ao plano de fundo, como assumimos.

Figura 19: Equação projetada na imagem

Page 24: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

24

À direita, vemos o resultado de uma que traduz quase fielmente a

equação real do laser.

4.4. Isolando da informação do laser sobre o objeto

Depois de calibrada a câmera e de compreendido o método de obtenção da

equação do plano formado pelo laser, o próximo passo é obter informação

sobre o objeto que será escaneado.

Vamos lembrar que o processo de escaneado envolve analisar uma

sequencia de vídeo, e que para cada frame analisado, espera-se que o laser

intercepte duas coisas diferentes simultaneamente:

O fundo, como vimos anteriormente (seção 4.3) sem isso, não seria

possível obter a .

O objeto, o laser tem que interceptar também o objeto que esperamos

mapear, sem isso não teríamos a informação adicional para reconstruí-

lo.

Na Figura 20, podemos ver um exemplo, onde três pontos da linha laser que

intercepta o objeto foram selecionados (marcação em verde).

Para mapear o objeto com fidelidade, devemos selecionar o maior número de

pontos quanto possível, isto é, o ideal seria selecionar todos os pontos do

laser que interceptam o objeto para cada imagem. O desafio aqui é separar o

laser que intercepta o fundo, do que intercepta o objeto.

Figura 20: Selecionando alguns pontos que interceptam o objeto

Page 25: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

25

Como vemos na Figura 21, do frame da Figura 20, extraímos toda informação da

linha do laser (seção 4.2) e com base na , descartamos a informação,

que não é pertinente ao objeto. Nesse caso, onde o laser intercepta o fundo já

foi usado para calcular a , e nesse ponto não é mais necessário.

Desse processo, restam apenas os pontos onde o laser intercepta o objeto

(Figura 21 -b).

4.5. Obtendo pontos 3D do objeto

Nessa etapa, já conhecemos a , os pontos laser que interceptam o

objeto (seção 4.4) e também como calcular os formados por cada um

desses pontos (seção 3.2). Com isso, temos toda a informação necessária

para obter pontos 3D do objeto na imagem.

Agora, basta calcular a intersecção dos formados por cada ponto na

imagem que reflete no objeto com a obtida anteriormente.

Figura 21: Informação extraída do frame da Figura 20 (a); Pontos relativos apenas ao objeto scaneando (b);

Figura 22: As coordenadas do objeto são calculadas para cada ponto do laser que o intercepta. (pontos em verde)

Page 26: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

26

A Figura 22 mostra a imagem de um frame, em azul está a projeção do plano do

laser ( ), em verde são todos os pontos onde o laser intercepta o objeto.

Para cada um desses pontos será calculada sua coordenada 3D com base na

intercessão de seu feixe com a .

4.6. Scaneando a face de um objeto

O processo que acabamos de explicar detalha o passo a passo para obter as

coordenadas do objeto de uma imagem. Devemos lembrar que só é possível

recuperar as coordenadas dos pontos onde o laser passa sobre. Se

quisermos mapear toda a face de um objeto, devemos passar o laser por toda

a superfície do mesmo. Para tanto, o processo acima deve ser repetido até

que o laser tenha percorrido todo o objeto.

Não há diferenças entre o processo realizado em uma imagem ou em vídeo.

Com exceção da já explicada, calibração da câmera (seção 4.1), que é

realizada apenas no inicio.

Com os movimentos do laser sobre o objeto, a e dos pontos se

alteram, então a cada frame todos os outros passos tem que ser recalculados.

Ao final, espera-se que o os pontos calculados formem uma malha de

profundidade que seja o mais fiel possível do objeto escaneado.

Page 27: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

27

5. Resultados obtidos

Para realização dos testes, foi utilizada uma webcam com resolução de

640x480, com foco ajustável. A mesma que foi utilizada para as capturas das

imagens que vimos até aqui.

Para ilustrar o processo, vamos mostrar o resultado do escâner de um frasco

de desodorante sobre um cubo. Os objetos foram pintados de branco a fim de

facilitar a reflexão do laser. Foi gravado um vídeo de um minuto, onde o laser

tenta percorrer toda a superfície dos objetos.

Os pontos obtidos foram armazenados linha a linha em um arquivo de texto e

visualizados com o auxílio de um software chamado ArcBall [18].

O ArcBall é um software usado para visualização de pontos em três

dimensões. Ele usa como entrada um arquivo texto onde cada linha representa

um ponto. Os pontos são plotados na tela de forma que com o auxílio do

mouse o usuário possa alterar o ponto de vista que visualiza os pontos.

Na Figura 24 e Figura 25, podemos ver a projeção dos pontos obtidos no

software ArcBall sob vários ângulos. Com elas temos uma boa dimensão da

qualidade do resultado final.

Figura 23: Frasco de desodorante que foi escaneado

Page 28: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

28

Podemos observar alguns pontos interessantes sobre o resultado.

Alguns pontos do fundo foram contabilizados como sendo objeto;

Provavelmente devido à imperfeição e ondulações no plano de fundo.

Objeto no centro da imagem tem mais pontos detectados; observem que

a ponta do cubo quase não foi localizada.

Ficam nítidas nas laterais do cubo, linhas de pontos; O que prova que

elas vêm das linhas do laser.

Nos pontos que ficam na direção da quina dos planos de fundo,

observasse uma grande falha de pontos e pontos dispersos;

Provavelmente a função que calcula os feixes dos pontos (seção 3.2)

não consegue tratá-los corretamente nessa região.

No resultado exemplificado, foi obtido um total de 33 mil pontos.

Figura 24: Visão da direita; frontal; esquerda do objeto.

Figura 25: Visão de cima dos pontos

Page 29: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

29

6. Conclusão

Esse trabalho mostra que a aquisição de dados da superfície de um objeto

através da técnica de varredura laser, com o laser sendo movimentado

livremente, é uma técnica viável e simples.

Superado os desafios matemáticos e conceituais, a implementação da técnica

é de relativa facilidade. Os resultados demonstraram-me uma qualidade acima

do que esperava no início do projeto.

Alguns pontos não condizem com o objeto escaneado, Mas devemos lembrar

que todo o processo foi automático. Em alguns quadros era notório que a

equação do plano calculada estava equivocada. Esse equívoco, na maioria

das vezes, ocorreu na seleção dos três pontos que dão origem a equação do

plano. Um refinamento no código certamente diminuiria essas distorções, mas

também elevaria o tempo gasto no cálculo. Assim como utilização de

algoritmos mais robustos como o ransac [19] poderiam melhorar a precisão

das equações calculadas.

Mas como o objetivo se focou em demostrar o funcionamento da técnica, o

código foi escrito em linguagem de alto nível (python), por isso o desempenho

ficou um pouco prejudicado. A biblioteca OpenCv suporta a linguagem C,

então esta linguagem deve ser preferida se quisermos obter mais

desempenho.

Acredito que, por ser uma técnica de fácil utilização e de baixo custo, é uma

alternativa viável para aquisição de pontos tridimensionais a curta distância. O

refinamento e melhora do código podem aumentar a precisão e em condições

ideais o erro pode ficar abaixo dos 0,4 mm [2].

Trabalhos futuros podem seguir as ideias aqui citadas, ou até mesmo explorar

as outras etapas da reconstrução 3D que não foram abordadas nesse projeto.

Page 30: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

30

7. Bibliografia

1. A Simple Surface Mapping Technique using Laser Triangulation Method. Tjie Hok Hoo, Mohd

Rizal Arshad. Jakarta, Indonesia : ICOLA, 2002.

2. Heckner, David. David 3D Lasser. [Online] http://www.david-laserscanner.com.

3. O USO DA PROTOTIPAGEM RÁPIDA NA ÁREA MÉDICO-ODONTOLÓGICA. Foggiatto, José

Aguiomar. Tecnologia & Humanismo, 2006.

4. Desenvolvimento de Jogos 3D: Concepção, Design e Programação. Esteban Walter Gonzalez

Clua, João Ricardo Bittencourt. São Leopoldo : Congresso da sociedade brasileira de

computação, 2005.

5. Museu Virtual 3D. Grupo Imago. [Online] [Citado em: 01 de Novembro de 2010.]

http://www.imago.ufpr.br/museu3d/.

6. Engenharia Geográfica, FCUP. Fotogrametria Geográfica. [Online] [Citado em: 10 de

dezembro de 2010.] http://www.fc.up.pt/lic_eg/fotogrametria.html.

7. José, Marcelo A. Reconstrução Tridimensional de Baixo Custo a Partir de Par de Imagens

Estéreo. 2008, Vol. Dissertação de Mestrado na Escola Politécnica da USP.

8. FaroArm. [Online] [Citado em: 1 de Novembro de 2010.]

http://www.faro.com/FaroArm/Home.htm.

9. Li Zhang, Brian Curless, and Steven M. Seitz. Rapid Shape Acquisition Using Color Structured

Light and Multi-pass Dynamic Programming. 2002.

10. Wikipedia. LIDAR (Light Detection And Ranging). [Online] [Citado em: 10 de dezembro de

2010.] http://en.wikipedia.org/wiki/LIDAR.

11. Low-Cost Laser Range Scanner and. Simon Winkelbach, Sven Molkenstruck, Friedrich M.

Wahl. : DAGM, 2006.

12. Camera Calibration and 3D Reconstruction. [Online] [Citado em: 18 de Novembro de 2010.]

http://opencv.willowgarage.com/documentation/camera_calibration_and_3d_reconstruction.

html.

13. Tsai, R.Y. A versatile camera calibration technique for high-accuracy 3D machine vision

methodology using off-the-shelf TV cameras and lenses. IEEE. 1987.

14. Polidório, Bortolozzi, Figueiredo. Calibração geométrica de câmeras, aplicando o método

dos. ISSN. 1998.

15. Venturi, Jacir J. Álgebra Vetorial e Geometria Analítica. s.l. : 9ª Edição.

16. Albuquerque, Landecir Alves de. Alinhamento de imagens de profundidade na

reconstrução 3D de objetos de forma livre. Dissertação de mestrado - Universidade de Brasília,

2006.

Page 31: Scanner 3D: Aquisição de pontos 3D por raio Laser 3D.pdf · 2 Resumo A proposta desse trabalho é apresentar uma técnica de aquisição de pontos 3D de um objeto, utilizando apenas

31

17. Luciano Silva, Olga R. P. Bellon and Kim L. Boyer. Robust Range Registration by Combining

GAs and the SIM . 2005, Vol. World Scientific.

18. Shoemake, Ken. ARCBALL: a user interface for specifying three-dimensional orientation

using a mouse. 1992, Vol. Proceedings of the conference on Graphics interface.

19. Bolles, Martin A. Fischler and Robert C. Random Sample Consensus: A Paradigm for Model

Fitting with Applications to Image Analysis and Automated Cartography. 1981, Vol. ACM .

20. Scanner 3D. [Online] [Citado em: 1 de Novembro de 2010.]

http://en.wikipedia.org/wiki/3D_scanner.