SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ ·...

44
FREDERICO OLDEMBURGO PERES SCANNER 3D: PROBLEMAS E SOLUÇÕES LONDRINA–PR 2013

Transcript of SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ ·...

Page 1: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

FREDERICO OLDEMBURGO PERES

SCANNER 3D: PROBLEMAS E SOLUÇÕES

LONDRINA–PR

2013

Page 2: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

FREDERICO OLDEMBURGO PERES

SCANNER 3D: PROBLEMAS E SOLUÇÕES

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

Orientador: Alan Salvany Felinto

LONDRINA–PR

2013

Page 3: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Frederico Oldemburgo PeresScanner 3D: Problemas e Soluções/ Frederico Oldemburgo Peres. – Londrina–

PR, 2013-43 p. : il. (algumas color.) ; 30 cm.

Orientador: Alan Salvany Felinto

– Universidade Estadual de Londrina, 2013.

1. Scanner 3D. 2. Visão Estereoscópica. I. Alan Salvany Felinto. II. Universi-dade Estadual de Londrina. III. Curso de Ciência da Computação. IV. Scanner3D: Problemas e Soluções

CDU 02:141:005.7

Page 4: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

FREDERICO OLDEMBURGO PERES

SCANNER 3D: PROBLEMAS E SOLUÇÕES

Trabalho de Conclusão de Curso apresentadoao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel emCiência da Computação.

BANCA EXAMINADORA

Alan Salvany FelintoUniversidade Estadual de Londrina

Orientador

Londrina–PR, 24 de novembrode 2013

LONDRINA–PR2013

Page 5: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Este trabalho é dedicado à todos aqueles que ainda irão concluir a graduação.

Page 6: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

AGRADECIMENTOS

Agradecimentos especiais principalmente à minha família e amigos, que sempreme apoiaram. Agradecimentos também à todos os professores com os quais tive a opor-tunidade única de aprender.

Page 7: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

“O que fazemos na vida, ecoa pela eternidade.”(O Gladiador(Filme)

Page 8: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

PERES, F. O.. Scanner 3D: Problemas e Soluções. 43 p. Trabalho deConclusão de Curso (Graduação). Bacharelado em Ciência da Computação –Universidade Estadual de Londrina, 2013.

RESUMO

A área de imagens estéreo e casamento de imagens está em constante cresci-mento e, mais especificamente, a escanerização em três dimensões encontra muitasutilidades dentro de diversas áreas, como na paleontologia, onde é usada para ge-ração de réplicas a partir de fósseis, ou na saúde, onde pode ser útil na detecçãode patologias ou mensuração de densidade corporal, entre várias outras aplicaçõesnos mais diversos campos. Este trabalho tem como objetivo analisar as técnicas jáexistentes na área e propor uma solução de baixo custo para o problema de esca-neamento em três dimensões, desde a aquisição de imagens limpas, passando pelocasamento das duas imagens, geração da nuvem de pontos no espaço tridimensio-nal, triangularização, para finalmente chegar à construção do modelo de fato. Paracomprovar a eficácia dos métodos propostos, um ambiente com câmeras retificadasestereoscopicamente será utilizado.

Palavras-chave: Scanner, tridimensional, projeção, visão estéreo.

Page 9: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

PERES, F. O.. Scanner 3D: Problems and Solutions. 43 p. Final Project(Undergraduation). Bachelor of Science in Computer Science – State Universityof Londrina, 2013.

ABSTRACT

The stereo imaging and matching area is in constant growth and the 3Dscanning have utilities in various fields of knowledge, as the paleontology, whereit is used in the generation of replicas from fossil, the medicine, where it can beused for detecting pathologies or for measuring corporal density, between lots ofother applications in the most different areas. This paper objective is to analyzethe existing techniques in the area and to propose a low cost solution to the three-dimensional scanning, from the acquisition of a pair of clean images, through thestereo image matching, point cloud generation in the 3D space, triangulation, tofinally build the virtual model in fact. To assure the effectiveness of the proposedmethods, a stereo rectified camera ambient will be used.

Keywords: Scanner, tridimensional, projection, stereo vision.

Page 10: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

LISTA DE ILUSTRAÇÕES

Figura 1 – Exemplo de imagens em estéreo . . . . . . . . . . . . . . . . . . . . . . 16

Figura 2 – Projeção dos pontos da cena para o plano . . . . . . . . . . . . . . . . 17Figura 3 – Projeção dos pontos da imagem para a cena . . . . . . . . . . . . . . . 18Figura 4 – Projeção dos pontos da cena em um sistema estereoscópico . . . . . . . 19Figura 5 – Projeção dos pontos da cena em um sistema estereoscópico . . . . . . . 19

Figura 6 – Fluxograma de um scanner de visão passiva . . . . . . . . . . . . . . . 30Figura 7 – Posicionamento das câmeras e do computador . . . . . . . . . . . . . . 31Figura 8 – Aquisição de imagem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

Figura 9 – Par de imagens estéreo originais . . . . . . . . . . . . . . . . . . . . . . 34Figura 10 –Par de mapas de disparidade com ground-truth das imagens da figura 9 34Figura 11 –Mapas de disparidade calculados pelo mesmo algoritmo de correlação,

com variação dos parâmetros até obtenção dos resultados desejados . . 35Figura 12 –Mapas de disparidade gerados por dois algoritmos de correlação, par-

tindo das imagens retificadas da figura 9. À esquerda, SG. À direita,SV . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

Figura 13 –Nuvens de pontos gerados a partir dos mapas de disparidade da figura12. Em cima, SG. Em baixo, SV . . . . . . . . . . . . . . . . . . . . . . 37

Page 11: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

LISTA DE TABELAS

Page 12: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

LISTA DE ABREVIATURAS E SIGLAS

3D Tridimensional

CV Computer Vision, em português Visão Computacional

AD Absolute Intensity Difference, em português Diferença de IntensidadeAbsoluta

SD Squared Intensity Difference, em português Diferença de IntensidadeQuadrada

SAD Sum of Absolute Differences, em português Soma das Diferenças Abso-lutas

SSD Sum of Squared Differences, em português Soma das Diferenças Qua-dradas

SG algoritmo de correlação Semiglobal

SV algoritmo de correlação Stereo Variational Matching, em portuguêsCorrelação Estéreo Variacional

PTZ Pan-Tilt-Zoom

SG Point Cloud Library

MI Mutual Information

Page 13: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

SUMÁRIO

1 Visão de Máquina . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151.1 Visão Estereoscópica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2 Casamento de Imagens Estereoscópicas . . . . . . . . . . . . . . . . . . 172.1 Projeção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.2 Geometria de Projeção . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.3 Estado da Arte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

2.3.1 Custo de Correlação . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.2 Custo de Agregação . . . . . . . . . . . . . . . . . . . . . . . . . . 212.3.3 Computação da Disparidade . . . . . . . . . . . . . . . . . . . . . 222.3.4 Refinamento da Disparidade . . . . . . . . . . . . . . . . . . . . . 22

3 Ambiente e Harware . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.1 Tipos de scanner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2 Câmeras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

4 Calibração . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.1 Coeficientes de Distorção . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.2 Tabuleiro de Xadrez . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5 Construção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305.1 Câmeras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

6 Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7 Conclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Referências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Page 14: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

13

INTRODUÇÃO

A área de imagens em estéreo oferece uma vasta gama de aplicações e áreas de atu-ação, abrindo muitas possibilidades a quem possui conhecimento para atender à demanda,tanto profissional como acadêmica. A criação de modelos tridimensionais semelhantes àrealidade é um problema existente há algum tempo [7] e sua necessidade tem aumentadodevido à constante expansão da área de aplicação para outras áreas que não a computa-ção em si, como entretenimento digital, marketing, medicina, entre outras, onde cada vezmais há a necessidade de obtenção de modelos tridimensionais virtuais com elevado graude semelhança com a realidade, sendo que a precisão pode inclusive ser crítica em algunscasos.

Esse tipo de tarefa pode ser facilitada com a utilização de alguns métodos, en-tre eles o escaneamento em 3D, que possibilita a geração desses modelos virtuais comgrande percentual de automação, minimizando o trabalho manual, e consequentementeresultando em maior produtividade dentro das áreas que puderem se beneficiar desse tipode construção automática. Existem vários métodos e técnicas para execução de tal tarefa,que geralmente se diferenciam pela troca de certas vantagem em virtude de outras, comotempo de execução, precisão e custo de equipamento necessário.

O principal método para este fim é a visão computacional estéreo, a qual tornapossível escanear objetos do mundo real diretamente para o computador, na forma demodelos virtuais tridimensionais, utilizando para isso duas ou mais câmeras, afim de seobter um sistema de visão estereoscópico. Esse processo exije uma sequência de etapaspara que possa se concretizar.

Primeiramente, deve-se ter um bom ambiente controlado para aquisição de ima-gens, com uma boa iluminação e câmeras condizentes com as necessidades. Alguns traba-lhos já foram realizados em situações reais, onde não é possível controlar o ambiente, comona robótica e em controle automático de veículos, por exemplo. Nesses casos, essa falhaé compensada com a utilização de equipamento de alta qualidade e, consequentemente,custo, uma vez que não se pode perder precisão ou velocidade de processamento, vistoque a execução acontece em tempo real [1].

Após a obtenção das imagens são então utilizados algoritmos de casamento deimagens em estéreo para realizar a associação de cada ponto, ou região de pontos, daimagem direita com a imagem esquerda, sendo assim possível calcular a posição desseponto nas coordenadas mundo [2, 3, 4] e gerar uma nuvem de vértices, que mais tarde setornará o modelo virtual propriamente dito.

Apesar de ser possível encontrar diversos trabalhos nessa área, o mesmo não se

Page 15: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

SUMÁRIO 14

pode dizer quanto a um sistema de visão computacional com este intuito que seja defácil acesso e baixo custo, utilizando ferramentas de uso aberto e hardware de baixocusto sem prejudicar a eficiência. Além disso, grande parte dos trabalhos acadêmicosda área consistem em processos ou metodologias relativas a uma das etapas isoladas,principalmente na área de Correspondência Estereoscópica (Stereo Matching).

Porém, trabalhos que tratem de todo o processo de escaneamento 3D, abrangendotodas as etapas necessárias, desde a montagem do ambiente até a reprojeção no espaço3D virtual, são um tanto quanto raros. Muitos dos trabalhos presentes na área dão ênfaseaos fins alcançados, não abrangendo os meios utilizados para se chegar à eles, como odesenvolvido por Nárvaez e Ramírez em 2012 [5].

Este trabalho tem como objetivo a construção de um scanner 3D de baixo custo,apresentando de forma clara todo o processo de escaneamento, passando por todas as eta-pas, com informações sobre os métodos e algoritmos necessários para atingir um resultadoaceitável, podendo este ser aprimorado futuramente.

O trabalho aqui apresentado se divide em vários capítulos, cada qual abordandoum tema necessário à construção do scanner ou ao entendimento do funcionamento deseus módulos. O primeiro capítulo consiste em uma introdução aos conceitos de visãoestereoscópica e visão de máquina como um todo. No segundo, aborda-se o processo decorrelação, dando ênfase à matemática por trás do processo e o estado da arte da área,que constitui uma das mais comumente abordadas em trabalhos de CV.

O terceiro capítulo abrange a parte de montagem de ambiente de aquisição deimagens e hardware a ser utilizado, comparando-se as opções disponíveis e avaliando asmelhores opções. No quarto é abordado o processo de calibração, a matemática por trás domesmo e o algoritmo proposto por Zhang [6] para execução de tal tarefa. O quinto capítulotrata da configuração e implementação utilizada para confecção do scanner proposto,discutindo as escolhas realizadas nessa etapa. Por fim, no último capítulo, são mostradosos resultados obtidos após a execução de cada módulo e o resultado final, ou seja, a nuvemde pontos gerada pelo processo como um todo.

Page 16: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

15

1 VISÃO DE MÁQUINA

Visão de Máquina, do inglês Machine Vision, também conhecido como ComputerVision(CV), é um conceito utilizado para definir sistemas computacionais que captaminformações a partir de uma cena real, na forma de imagens bidimensionais, e convertemem dados úteis à realização de tarefas específicas. Segundo Jain et al.[7], “Um sistema devisão de máquina recupera informações úteis sobre uma cena a partir de suas projeçõesbidimensionais.”

A CV está diretamente ligada a diversos campos do conhecimento, possuindo mui-tas pesquisas e áreas de aplicação e integração. Exemplos de maior relevância são: Pro-cessamento de imagens, geralmente utilizado nas primeiras etapas do sistema de visãode máquina, com o intuito de melhorar de alguma forma as imagens adquiridas paraos processos posteriores. Computação gráfica, já foi uma área bem distinta da Visão deMáquina, mas cada vez mais, técnicas de uma das áreas vem sendo utilizada na outra,principalmente com o surgimento de conceitos como Realidade Virtual e Aumentada. [7]

Reconhecimento de Padrões e Inteligência Artificial também são áreas extrema-mente relacionadas, com aplicações mútuas e frequentes integrações com a área de Visãode Máquina. Além disso, diversas outras áreas tem um relacionamento indireto com esta,principalmente através de aplicações, como a Medicina, Agronomia e Engenharia, entreoutras. [7]

1.1 Visão Estereoscópica

Visão estereoscópica pode ser definida pela observação de uma mesma cena atravésde dois pontos de vistas diferentes simultâneos, com uma pequena diferença horizontalentre eles. Segundo autores diversos [7, 8, 2], a visão estereoscópica consiste na utilizaçãode duas imagens distintas em conjunto, gerando a noção de profundidade devido à pequenadisparidade entre as mesmas, como é possível ver no par de imagens da figura 1.

Pode-se notar que as imagens representam a mesma cena, porém com uma pequenadiferença de ponto de vista, gerada pela leve disparidade horizontal, e através delas épossível, por meio de cálculos matemáticos e conhecimento sobre geometria de projeção,determinar a distância de um determinado ponto em relação ao observador, ou às câmeras,ou seja, sua profundidade no espaço 3D.

O cérebro humano realiza esta tarefa o tempo todo e atualmente não existe métodomais eficiente do que o realizado por este, visto que o mesmo realiza a correspondênciadas imagens de forma mais rápida e precisa do que qualquer algoritmo ou tecnologia co-

Page 17: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 1. Visão de Máquina 16

Figura 1 – Exemplo de imagens em estéreo

Fonte: produção própria

nhecida [2], pois o faz com precisão ímpar e em tempo real, sem qualquer tipo de controlede ambiente ou pré-processamento. Dito isso, é possível realizar essa tarefa computacio-nalmente, inspirando-se no modelo biológico do ser-humano. Para isso, utiliza-se câmeraspara aquisição de imagens e sobreposição das mesmas através de algoritmos de correla-ção estereoscópica (Stereo Matching), os quais podem ser classificados segundo diversoscritérios pelo método taxonômico de Scharstein e Szeliski [9].

Page 18: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

17

2 CASAMENTO DE IMAGENS ESTEREOSCÓ-PICAS

Calcular a distância entre um ponto na cena e a câmera consiste em uma dastarefas mais importantes da CV. Várias técnicas podem ser usadas para esta tarefa. Emsistemas de visão ativa, a técnica mais difundida é a utilização de sensores que identificama distância entre estes e o ponto da cena através de métodos como radares e triangulação.Nos sistemas de visão passiva, a técnica que se sobresai é o casamento de imagens emestéreo. Do inglês stereo matching, esta constitue numa parte importante, senão a maisimportante, do processo de reconstrução 3D em sistemas de visão passiva. A área já foie continua sendo uma das áreas da CV com maior investimento da acadêmico, buscandoo aumento da eficácia e precisão através de novos métodos ou aprimoramento dos jáconhecidos. [9, 7]

2.1 Projeção

Mapear uma cena tridimensional para um plano é uma tarefa consideravelmentetrivial. Um exemplo disso é uma fotografia, que nos tempos atuais pode ser tirada facil-mente por qualquer máquina fotográfica, intrumento de comum uso a qualquer pessoa.Cada ponto visível da cena possui uma, e apenas uma, correspondência no plano daimagem, como podemos ver na Figura 2.

Figura 2 – Projeção dos pontos da cena para o plano

Fonte: produção própria

O ponto (a) é projetado no ponto (a’) do plano, assim como o ponto (b) é projetado

Page 19: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 2. Casamento de Imagens Estereoscópicas 18

no ponto (b’). Todos os pontos da imagem visíveis pelo observador, uma câmera nestecaso, são projetados da mesma forma sobre o plano da imagem.

Mas o mesmo não se pode dizer do processo inverso, ou seja, remapear uma imagembidimensional de volta à respectiva cena tridimensional que a originou. Isso acontece pelosimples fato de que qualquer ponto retirado arbitrariamente da imagem pode correspondera infinitos pontos num espaço tridimensional, como mostrado na figura 3.

Figura 3 – Projeção dos pontos da imagem para a cena

Fonte: produção própria

Como é possível ver na figura 3, um ponto arbitrário (a) da imagem possui infinitascorrespondências na cena, demonstrados por (𝑎𝑖), sendo impossível realizar essa tarefa seminformações adicionais. É nesse ponto que entra a visão estereoscópica, que possibilita avisão dos mesmos pontos por um ângulo diferente, possibilitando a correspondência doponto na imagem com o ponto da cena, como mostrado na figura 4.

Considerando 𝐴 a imagem esquerda e 𝐵 a imagem direita, cada par de pontoscorrespondentes (𝑎, 𝑏)|𝑎 ∈ 𝐴 e 𝑏 ∈ 𝐵, possui um, e apenas um ponto 𝑐 correspondentena cena. O plano que passa por 𝑎, 𝑏, 𝑐 e pelo centro das lentes de ambas as câmerasé chamado plano epipolar. A intersecção entre o plano epipolar e os planos 𝐴 e 𝐵 échamado de linha epipolar. O par de pontos (𝑎, 𝑏)|𝑎 ∈ 𝐴 e 𝑏 ∈ 𝐵, de forma que 𝑎 e 𝑏

sejam pontos correspondentes, é chamado de par conjugado. Considerando que as câmerasestejam alinhadas verticalmente, seja 𝑥𝑎 a posição de 𝑎 no eixo 𝑥 e 𝑥𝑏 a posição de 𝑏 noeixo 𝑥, então 𝑥𝑎 − 𝑥𝑏 quando as imagens são sobrepostas é chamado disparidade. [7]

Page 20: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 2. Casamento de Imagens Estereoscópicas 19

Figura 4 – Projeção dos pontos da cena em um sistema estereoscópico

Fonte: produção própria

2.2 Geometria de Projeção

Para entendermos melhor como é possível projetar os pontos das imagens para oespaço tridimensional, podemos utilizar uma representação geométrica do sistema estere-oscópico, como pode ser visto na imagem 5.

Figura 5 – Projeção dos pontos da cena em um sistema estereoscópico

Fonte: produção própria

O ponto 𝑃 é projetado nos planos 𝐿 e 𝑅, esquerdo e direito, respectivamente nos

Page 21: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 2. Casamento de Imagens Estereoscópicas 20

pontos 𝑃𝑙 e 𝑃𝑟. 𝐶𝑙 e 𝐶𝑟 representam os centros das lentes das câmeras, 𝐿′ e 𝑅′ os pontoscentrais dos planos 𝐿 e 𝑅 respectivamente, 𝑓 a distância focal e 𝑥′

𝑙 e 𝑥′𝑟 as distâncias dos

pontos 𝑃𝑙 e 𝑃𝑟 dos pontos 𝐿′ e 𝑅′, respectivamente. Se considerarmos que o centro dosistema de coordenadas da cena corresponde com 𝐶𝑙, podemos comparar os triângulossemelhantes 𝑃𝑀𝐶𝑙 e 𝑃𝑙𝐿𝐶𝑙, como segue:

𝑥

𝑧= 𝑥′

𝑙

𝑓(2.1)

De forma similar, podemos também comparar os triângulos semelhantes do ladodireito, 𝑃𝑁𝐶𝑟 e 𝑃𝑟𝐿𝐶𝑟, obtendo:

𝑥 − 𝑏

𝑧= 𝑥′

𝑟

𝑓(2.2)

Subtraindo as equações 2.1 e 2.2 e isolando a variável 𝑧, obtemos:

𝑧 = 𝑏𝑓

(𝑥′𝑙 − 𝑥′

𝑟)(2.3)

Podemos então concluir que utilizando-se duas câmeras sem disparidade vertical,separadas horizontalmente por uma distância 𝑏 conhecida, com distância focal idêntica econhecida, e conhecendo a disparidade de um ponto, é possível calcular a coordenada 𝑧

do mesmo, ou seja, sua distância em relação à câmera.[7]

Vale lembrar que em sistemas estereoscópicos computacionais, existe sempre umlimite na precisão de medidas. Isso se deve ao fato de a medida de distância em umaimagem digital são os pixels, e estes são limitados. Alguns métodos permitem mensuraçãode distância a nível de subpixel. Devido à esta limitação, uma solução é aumentar adistância 𝑏 entre as câmeras, aumentando consequentemente a disparidade e a precisão.Porém, o aumento excessivo da distância pode levar a erros de correlação, visto que quantomaior a diferença do ponto de vista das câmeras, menor a similaridade das imagens porelas capturadas. [7]

2.3 Estado da Arte

As maiores dificuldades encontradas atualmente são oclusões, limites dos objetos,estruturas finas e texturas de baixa qualidade ou repetitivas, comuns em ambientes nãocontrolados. Problemas mais prátivos recorrem da diferença da captura de uma câmerapara outra, principalmente relativos à iluminação. Além disso, certas aplicações neces-sitam de velocidade de execução, seja devido ao fato de serem em tempo real, imagensmuito grandes ou quantidade excessiva de imagens a serem computadas. [10]

Page 22: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 2. Casamento de Imagens Estereoscópicas 21

Apesar de existirem estudos quanto ao casamento de mais de duas imagens, comoos apresentados por Okutomi e Kanade em 1993[11] e suas generalizações feitas poste-riormente por Collins em 1996[12] e por Szeliski e Golland em 1998[13], neste trabalhoestaremos nos atendo aos algoritmos de apenas dois frames e que geram um mapa dedisparidade, pois este será o tipo de método aqui adotado.

Scharstein e Szelisk [9] desenvolveram um método taxinômico para classificaçãode tantos algoritmos de casamento de imagens, entitulado Middlebury Stereo EvaluationSystem, executando certos testes sobre tais técnicas afim de classificá-las segundo crité-rios específicos. O método separa qualquer algoritmo de casamento entre quatro etapas,sendo elas: Custo de Correlação, Custo de Agregação, Computação ou Otimização daDisparidade e Refinamento da Disparidade.

Cada etapa já foi estudada diversas vezes pelos mais diversos autores, os quaisapresentaram novas soluções ou propuseram formas de melhorar as soluções já existentesao longo do tempo, mas alguns pontos cruciais podem ser aqui citados.

2.3.1 Custo de Correlação

Os métodos de casamento estéreo dependem do Custo de Correlação, ou MatchingCost em inglês para determinar a similaridade de um par de localidades das imagens.Isto é, todo algoritmo de casamento de imagens necessita de uma forma de medir asimilaridade entre dois pontos, ou grupo de pontos das imagens, sendo este método demensuração denominado Custo de Correlação.

O método provavelmente mais difundido e utilizado é a diferença de intensidadedas cores dos pixels em questão [14]. A diferença pode ser absoluta (AD, de AbsoluteDifference), quadrada (SD, de Squared Difference ou insensível à amostra.

A técnica de Informação Mútua, do inglês Mutual Information(MI) foi utilizadacomo custo de correlação por Egnal pela primeira vez em 2000 [15], e mais tarde aprimo-rado por Hirschmuller, em 2008 [10].

2.3.2 Custo de Agregação

O custo de agregação consiste no processo de agregar o custo de correlação à regiãono qual o pixel está situado. Geralmente isso é feito simplesmente somando os valores dasdiferenças de intensidade numa determinada janela de tamanho fixo. Essa etapa tem comoobjetivo reduzir o erro de correlação devido a pixels semelhantes e corrigir possíveis errosde alinhamento vertical, que podem ocasionar desalinhamento da linha epipolar. Os maisdifundidos são chamados de Soma das Diferenças Absolutas (SAD, de Sum of AbsoluteDifferences) e Soma das Diferenças Quadradas (SSD, de Sum of Square Differences),derivados do custos de correlação AD e SD, respectivamente.

Page 23: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 2. Casamento de Imagens Estereoscópicas 22

2.3.3 Computação da Disparidade

Computação da Disparidade consiste na forma como o pixel correspondente éescolhido após o cálculo do custo de correlação e de agragação. Geralmente isso é feitoapenas correspondendo o pixel com o melhor nivel de similaridade obtido na primeiraetapa. Porém, existem outras técnicas, como a implementação de uma função de energia,geralmente adotada por algoritmos globais, onde não é somente a similaridade individualque importa.

2.3.4 Refinamento da Disparidade

O refinamento da disparidade consiste em alguns pós-processamentos realizadosafim de refinar o resultado obtido. Isso inclui interpolação para preenchimento de buracosnão correlacionados, remoção de ruído e técnicas para mensuração a nível de sub-pixel,com intuito de aumentar a precisão dos cálculos de projeção.

Page 24: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

23

3 AMBIENTE E HARWARE

Uma escolha importante a se fazer é quanto à parte física do projeto. Não apenaso harware como também a forma como o ambiente será montado. Isso inclui a decisãodo tipo de câmera a ser comprado, o modelo e a forma como estes serão posicionadosdentro do ambiente construído, possibilitando assim a aquisição de imagens para utilizaçãoposterior.

Existem vários modelos disponíveis e comumente utilizados na literatura, cada qualcom vantagens e desvantagens singulares. Um dos sistemas mais utilizados é o scannerestereoscópico artificial, devido ao seu baixo custo em relação aos outros disponíveis,principalmente devido ao fato de não necessitar de qualquer hardware específico além dascâmeras, como é o caso dos scanners de contato ou de visão ativa [16].

Esse modelo de scanner se inspira no sistema biológico da visão do ser humano [2],possuindo duas câmeras posicionadas na mesma direção, alinhadas verticalmente e comuma pequena diferença horizontal entre as mesmas, permitindo-se calcular a distância dospontos na imagem através da disparidade gerada entre os pontos de ambas as câmeras,assim como é feito pelo cérebro do próprio ser-humano.

Scanners com a utilização de câmeras PTZ(Pan-Tilt-Zoom) possuem algumas van-tagens. Como as câmeras PTZ possuem a capacidade de adquirir imagens de vários ângu-los, possiblita um campo de observação muito mais vasto, sendo muito útil em cenas pa-norâmicas e reconstrução 3D, e além disso, sua capacidade de zoom e captura de imagensmulti-resolução possiblitam aumento significativo da precisão do scanner. Suas desvanta-gens, porém, são o alto custo e o aumento significativo da complexidade computacional,sendo necessário aumento dos recursos computacionais e maior dificuldade de instalaçãodo sistema como um todo [17].

O configuração utilizada neste trabalho será semelhante à descrita por Narvaeze Ramírez[5]. Este consistirá em um sistema estereoscópico artificial, utilizando um parde webcams USB de baixo custo posicionadas em um suporte manufaturado em papelcompacto, com intuito de garantir o alinhamento e disparidade horizontal desejada. Ascâmeras não terão posicionamento fixo em relação à cena, com o propósito de manter ageneralidade e flexibilidade, sendo possível utilizar o sistema desenvolvido em qualquercomputador com qualquer par de câmeras. Em contrapartida, é necessária a calibraçãocada vez que o posicionamento das câmeras em relação à cena for alterado.

Page 25: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 3. Ambiente e Harware 24

3.1 Tipos de scanner

Existem diversos tipos de scanners tridimensionais conhecidos, cada qual com suaspróprias vantagens e desvantagens sobre o demais. Em linhas gerais, um scanner 3D podeser dividido em scanners com contato e scanners sem contato.

O scanner com contato se caracteriza pelo toque físico do scanner com o objeto,possibilitando uma precisão espetacular, mas um tempo de aquisição proporcionalmentegrande, muitas vezes não compensando o tempo gasto pela precisão adquirida, além deocasionalmente resultar em danificação do objeto dependendo de sua fragilidade, comodescrito por Vicedo e Linares em 2008[16].

Os sem contato são exatamente o oposto, onde não há nenhum tipo de contatofísico. Esse tipo de scanner ainda pode ser dividido em dois subtipos: os de visão passivae os de visão ativa. O primeiro exige a utilização de uma fonte de luz concentrada adi-cional, como um laser, e muitas vezes, hardware especializado, sendo estas suas maioresdesvantagens, mas sendo preferíveis certas situações, como para utilização em robôs deresgate, por exemplo [1].

Finalmente, o scanner 3D sem contato baseado em visão passiva consiste na uti-lização apenas da visão das câmeras para todo o processo de aquisição, o qual inclui acaptação das imagens e a identificação dos pontos correlacionados. Este último será omodelo ao qual estaremos adotando neste trabalho.

3.2 Câmeras

Entre os possíveis modelos de câmeras, se destacam as PTZ, devido a flexibilidadedita anteriormente, sendo possível adquirir imagens de 360 graus de um objeto sem muitoesforço. Além disso o zoom permite aumento significativo na resolução e consequentementena precisão com os detalhes. Sua maior desvantagem é o maior custo e complexidade parautilização.

As câmeras tradicionais também são bastante utilizadas, pois podem ser facilmenteadquiridas, em especial webcams, que possibilitam fácil aquisição, instalação e manuseio.Suas desvantagens incluem a falta de mobilidade, sendo necessário rotacionar o objetopara fotografar os diversos ângulos, e a baixa qualidade de imagem, podendo prejudicaro resultado.

Câmeras tradicionais de alta resolução representam outra possibilidade, pois a altaqualidade da imagem significa, na maioria dos casos, melhoria igualmente proporcionaldos resultados finais. Seus contras incluem o preço significativamente maior e aumentodo custo computacional, pois quanto maior as imagens, maior o tempo de processamentodos algoritmos que as utilizam.

Page 26: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 3. Ambiente e Harware 25

Devido aos objetivos do nosso projeto em construir um modelo de baixo custo,estaremos optando pela segunda opção, webcams mais especificamente.

Page 27: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

26

4 CALIBRAÇÃO

A calibração das câmeras é um processo necessário para que se possa, a partir dasimagens captadas, fazer a correspondência entre o sistema de coordenadas do mundo reale o sistema de coordenadas das imagens capturadas pelas câmeras e vice-versa, tarefapara a qual existem diversas técnicas em uma variedade de literaturas, cada qual comsuas vantagens e desvantagens [7] [8] [2] [5] [18].

O processo de calibração consiste em adquirir certas matrizes com os parâmetrosnecessários para realização dos cálculos posteriores, possiblitando a mudança do sistemade coordenadas cartesianas para o espaço tridimensional. Os principais valores a seremadquiridos são os parâmetros intrínsicos, os parâmetros extrínsecos e os coeficientes dedistorção.

Os parâmetros intrínsecos consistem em uma matriz de valores próprios da câmeraem questão, havendo assim, um para cada câmera dentro do sistema de visão estéreo, massendo estes provavelmente semelhantes quando as câmeras forem do mesmo modelo. Estesparâmetros são independentes da posição ou cena a ser observada, podendo assim sercalculados uma única vez e reutilizados em todos os procedimentos seguintes envolvendoa câmera em questão.

Os parâmetros extrínsecos se referem ao posicionamento da câmera no espaço ea cena em si, sendo, portanto, uma para cada câmera, visto que estas se encontram emposições diferentes. Estes valores não podem ser reaproveitados, pois variam de cena paracena, devendo ser recalculados sempre que houver qualquer mudança no posicionamentodas câmeras.

Os coeficientes de distorção são também individuais de cada câmera, assim comoos parâmetros intrínsecos. Mas estes têm a finalidade de corrigir a distorção natural dacâmera, que geralmente consiste em distorção radia e uma leve distorção tangencial. Estescoeficientes permanecem inalterados se houver uma mudança de resolução, ao contráriodos parâmetros intrínsecos, que deveriam ser recalculados nesse caso.

Basicamente, o modelo é dado por:

𝑠𝑚′ = 𝐴[𝑅|𝑡]𝑀 ′ (4.1)

Page 28: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 4. Calibração 27

Ou, na forma extendida:

𝑠

⎡⎢⎢⎢⎣𝑢

𝑣

1

⎤⎥⎥⎥⎦ =

⎡⎢⎢⎢⎣𝑓𝑥 0 𝑐𝑥

0 𝑓𝑦 𝑐𝑦

0 0 1

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎣

𝑟11 𝑟12 𝑟13

𝑟21 𝑟22 𝑟23

𝑟31 𝑟32 𝑟33

⎤⎥⎥⎥⎦⎡⎢⎢⎢⎢⎢⎢⎣

𝑋

𝑌

𝑍

1

⎤⎥⎥⎥⎥⎥⎥⎦ (4.2)

onde:

𝑋, 𝑌, 𝑍 são as coordenadas do ponto 3D em coordenadas mundo.

𝑢, 𝑣 são as coordenadas do ponto projetado em pixels.

𝐴 é a matriz dos parâmetros intrínsecos.

𝑐𝑥, 𝑐𝑦 é o ponto principal, geralmente o centro da imagem.

𝑓𝑥, 𝑓𝑦 são as distâncias focais 𝑥 e 𝑦, expressas em pixels.

[𝑅|𝑡] é a matriz do parâmetros extrínsecos, usada para transladar o as coorde-nadas (𝑋, 𝑌, 𝑍) para o sistema de coordenadas fixado na câmera. Essa transformação éequivalente à seguinte, quando 𝑧 diferente de 0.

⎡⎢⎢⎢⎣𝑥

𝑦

𝑧

⎤⎥⎥⎥⎦ = 𝑅

⎡⎢⎢⎢⎣𝑋

𝑌

𝑍

⎤⎥⎥⎥⎦ + 𝑡 (4.3)

𝑥′ = 𝑥

𝑧(4.4)

𝑦′ = 𝑦

𝑧(4.5)

𝑢 = 𝑓𝑥 * 𝑥′ + 𝑐𝑥 (4.6)

𝑣 = 𝑓𝑦 * 𝑦′ + 𝑐𝑦 (4.7)

[19]

4.1 Coeficientes de Distorção

Os coeficientes de distorção têm como utilidade corrigir a distorção natural cau-sada pela maioria dos modelos de câmeras. Esta distorção é em sua maioria radial e

Page 29: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 4. Calibração 28

levemente tangencial. Alguns preferem considerar os coeficientes de distorção como parâ-metros intrínsecos, visto que estes também são próprios do modelo da câmera e não sealteram com o reposicionamento da mesma. Porém, é preferível tratá-los como catego-rias distintas, visto que sua maior diferença é o fato de que os coeficientes de distorçãosão também independentes da resolução da captura, enquanto os parâmetros intrínsecosdevem ser recalculados caso haja mudança de resolução.

Com isso em mente, o modelo descrito na equação 3.3 pode ser extendido para:

⎡⎢⎢⎢⎣𝑥

𝑦

𝑧

⎤⎥⎥⎥⎦ = 𝑅

⎡⎢⎢⎢⎣𝑋

𝑌

𝑍

⎤⎥⎥⎥⎦ + 𝑡 (4.8)

𝑥′ = 𝑥

𝑧(4.9)

𝑦′ = 𝑦

𝑧(4.10)

𝑥′′ = 𝑥′ 𝑙 + 𝑘1𝑟2 + 𝑘2𝑟

4 + 𝑘3𝑟6

𝑙 + 𝑘4𝑟2 + 𝑘5𝑟4 + 𝑘6𝑟6 + 2𝑝1𝑥′𝑦′ + 𝑝2(𝑟2 + 2𝑥′2) (4.11)

𝑦′′ = 𝑦′ 𝑙 + 𝑘1𝑟2 + 𝑘2𝑟

4 + 𝑘3𝑟6

𝑙 + 𝑘4𝑟2 + 𝑘5𝑟4 + 𝑘6𝑟6 + 2𝑝2𝑥′𝑦′ + 𝑝1(𝑟2 + 2𝑦′2) (4.12)

onde:

𝑟2 = 𝑥′2 + 𝑦′2 (4.13)

𝑢 = 𝑓𝑥 * 𝑥′′ + 𝑐𝑥 (4.14)

𝑣 = 𝑓𝑦 * 𝑦′′ + 𝑐𝑦 (4.15)

sendo k𝑖 coeficientes de distorção radial e p𝑖 os coeficientes de distorção tangencial[19].

4.2 Tabuleiro de Xadrez

Estaremos utilizando a técnica do tabuleiro de xadrez para calibração das câmeras,como feito anteriormente por Narvaez et al. [5] e descrito originalmente por Zhang [6]. Este

Page 30: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 4. Calibração 29

método consiste na utilização de um padrão de tabuleiro de xadrez, com casas brancas epretas alternadas e com um número arbitrário de linhas e colunas.

Primeiramente, são capturadas várias imagens do padrão visto de vários ângulos.Este processo pode ser feito retirando-se frames específicos de um vídeo previamentegravado, ou utilizando fotos individuais, por exemplo.

A partir dessas imagens, identifica-se os pontos de intersecção entre as linhas ecolunas, colocando-os em uma matriz e então utliza-se estas matrizes para calcular asmatrizes características de cada câmera (parâmetros intrínsecos) e os coeficientes de dis-torção [6].

Page 31: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

30

5 CONSTRUÇÃO

O ambiente foi projetado para obtenção de imagens com facilidade, sem neces-sidade de câmeras fixas e pré calibradas. A idéia foi propiciar uma fácil manutenção,transporte e flexibilidade do sistema, visando tornar possível a fácil desmontagem e exe-cução em praticamente qualquer computador, contanto que este esteja conectado a umpar de câmeras idênticas alinhadas verticalmente.

A implementação foi feita em linguagem C++, utilizando as bibliotecas OpenGL[20]e OpenCV[19]. O openGL é um ambiente de desenvolvimento gráfico criado em 1992. Estetem o objetivo de proporcionar máxima performance em aplicações de computação visual[20]. OpenCV é uma biblioteca gráfica desenvolvida originalmente em C++, mas possuiinterfaces para utilização em C, Python e Java. O openCV foi desenvolvido visando aeficiência computacional e com forte foco em aplicações em tempo real [19].

Vários algoritmos conhecidos foram utilizados no decorrer do processo, visandoatingir um resultado favorável. O ambiente como um todo foi inspirado no trabalho desen-volvido por Narváez e Ramirez em 2012 [5]. O processo como um todo segue o fluxogramada figura 6.

Figura 6 – Fluxograma de um scanner de visão passiva

Fonte: produção própria

Page 32: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 5. Construção 31

5.1 Câmeras

Foram utilizadas duas webcams de baixo custo da marca Leboss, modelo LB-GZE172. Por conta de um problema de alinhamento devido à haste flexível do modelo, foinecessária a montagem de um suporte para as câmeras. Este foi feito em papel compactode 0.3mm, de forma a substituir o suporte fornecido originalmente pelo modelo da câmera,mantendo assim o par alinhado verticalmente e ângulo semelhante, algo que seria difícilalcançar com os suportes originais.

Mesmo com a utilização de tais suportes, o resultado não foi satisfatório, devidoao alinhamento impreciso. Para comprovar a eficácia do sistema, foram utilizadas ima-gens originadas do dataset disponibilizado por Scharstein e Szeliski [9], já devidamenteretificadas, simulando o sistema de câmeras que seria utilizado.

Uma melhor escolha seriam câmeras fixas, com controle digital de foco. Além disso,vale lembrar que quanto maior a resolução, maior a precisão do processo de correlação,visto que o cálculo de disparidade é feito em medida de pixels. Logo, câmeras de alta reso-lução podem melhorar significativamente o resultado, podendo porém, deixar o processoigualmente mais lento e o custo dos dispositivos proporcionalmente mais elevado.

Deve-se posicionar as câmeras seguindo o exemplo da figura 7, onde pode-se vero sistema pronto para o escaneamento, composto pelas duas câmeras e um computador.Deve-se buscar o alinhamento vertical durante tal construção.

Figura 7 – Posicionamento das câmeras e do computador

Fonte: produção própria

Na figura 8, pode-se ver as câmeras alinhadas e prontas para o escaneamento deum objeto específico, posicionado à direita na imagem. É possível realizar o escaneamentode outra forma, apontando as câmeras para uma cena geral, sem o objetivo de escanearsomente um objeto, mas a cena como um todo.

Page 33: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 5. Construção 32

Figura 8 – Aquisição de imagem

Fonte: produção própria

Page 34: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

33

6 RESULTADOS

O primeiro passo do processo de escaneamento foi a calibração das câmeras utili-zadas. Para isso é utilizado o processo desenvolvido por Zhang em 2000[6], que consistenuma forma simples e flexível de executar essa tarefa, necessitando apenas de um padrãode tabuleiro de xadrez impresso, e as duas câmeras fixadas na posição desejada. A par-tir de um conjunto de capturas desse padrão, nos mais diversos ângulos possíveis, bastaidentificar os pontos de intersecção entre as linhas do padrão e então o algoritmo faz otrabalho de calcular os parâmetros intrínsecos e extrínsecos, ou seja, a distância focalhorizontal e vertical e a matriz de transformação entre as duas câmeras, a qual abrangea translação e rotação, além dos coeficientes de distorção, já discutidos anteriormente.

Partindo-se de duas imagens em estéreo, como as apresentadas na figura 9, com ascâmeras calibradas e as imagens devidamente remapeadas, removendo a distorção radiale tangencial causadas pelas lentes, o passo seguinte consiste em aplicar o algoritmo decorrelação estereoscópica, nesse caso o desenvolvido por Hirschmuller e Szeliski [3], queaqui será chamado de SG (Semiglobal), pois utiliza correlação semi-global e informaçãomútua e o desenvolvido por Kosovo e Thorm em 2009 [4], o qual utiliza o método cha-mado de variacional, e portanto, será aqui nomeado de SV (Stereo Variational). Ambosos algoritmos fazem o mesmo trabalho, que consiste em associar cada pixel da imagemesquerda com seu respectivo da imagem direita, efetuando uma busca na epipolar e nasregiões adjacentes a esta.

É evidente que o uso de apenas um dos algoritmos citados já seria suficiente paraalcançar o resultado desejado, mas foram utilizados ambos para fins de comparação,podendo-se verificar qual dos dois apresenta resultado final mais consistente ou maiseficiente em termos computacionais.

O objetivo do algoritmo é gerar, a partir da disparidade de cada ponto, um mapa dedisparidade, o qual consiste simplesmente em uma imagem contendo o valor da disparidadehorizontal em cada pixel, representado através de escalas de cinza. Quanto mais claro,maior a proximidade e quanto mais escuro, maior a distância. As áreas onde a correlaçãonão pode ser encontrada aparecem em preto no mapa. O mapa de disparidade ótimo, ouideal, é chamado de ground-truth disparity map e é como mostra a figura 10.

Estes mapas ideais são construídos de forma a representarem como seria o mapade disparidade perfeito para determinada cena, e geralmente são usados com o objetivode testar a eficiência dos algoritmos de correlação, comparando-se os resultados obtidoscom esses mapas ideais e verificando o seu nível de semelhança e, consequentemente, aporcentagem de erro obtido. Existem mapas de disparidade com ground-truth específicos

Page 35: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 6. Resultados 34

Figura 9 – Par de imagens estéreo originais

Fonte: imagens retiradas do dataset disponibilizado por Hirschmuller e Scharstein [3]

Figura 10 – Par de mapas de disparidade com ground-truth das imagens da figura 9

Fonte: imagens retiradas do dataset disponibilizado por Hirschmuller e Scharstein [3]

para certas características, como por exemplo para áreas de oclusão e locais de mudançade profundidade(bordas), visando testar a eficiência dos algoritmos em certas situaçõesespecíficas, mas estes não são aqui abordados.

Porém, em um caso real, o mapa de disparidade gerado nunca é o ideal. Busca-se aproximar-se o máximo possível do mapa de disparidade ótimo, utilizando algoritmosmais eficazes, capturas de maior qualidade, melhor ambientação, etc. Além disso, consi-derando um certo algoritmo arbitrário, existem vários parâmetros próprios que podem serajustados, buscando aproximar-se ao máximo dos mapas com ground-truth.

Page 36: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 6. Resultados 35

Figura 11 – Mapas de disparidade calculados pelo mesmo algoritmo de correlação, com variação dosparâmetros até obtenção dos resultados desejados

Fonte: produção própria, gerados a partir de imagens retiradas do dataset disponibilizado por Hirschmullere Scharstein [3]

Na figura 11, pode-se ver diferentes mapas de disparidade gerados pelo mesmo al-goritmo, porém com variação nos parâmetros do mesmo, buscando ajustar tais parâmetrospara se aproximar o máximo possível de um resultado aceitável. Existem métodos com oobjetivo de encontrar os melhores parâmetros de certos algoritmos, dado um par de ima-gens estereoscópicas retificadas, utilizando as mais diversas técnicas, como redes neuraise programação dinâmica, mas tais métodos não fazem parte do escopo deste trabalho.

Na figura 12 pode-se ver a diferença dos mapas de disparidade gerados por doisalgoritmos de correlação distintos, SG e SV. Os resultados são similares, mas apresen-

Page 37: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 6. Resultados 36

tam algumas diferenças essenciais. O primeiro apresenta menor quantidade de ruído, masmaior quantidade de erro, devido à sua natureza Semiglobal, que suaviza as diferenças deprofundidade [3]. O segundo apresenta maior precisão no geral, mas maior quantidade deruído. Este também tem maior velocidade de processamento, devido ao seu desenvolvi-mento original ter tido como foco principal as aplicações de tempo real [4].

Figura 12 – Mapas de disparidade gerados por dois algoritmos de correlação, partindo das imagensretificadas da figura 9. À esquerda, SG. À direita, SV

Fonte: produção própria, gerados a partir de imagens retiradas do dataset disponibilizado por Hirschmullere Scharstein [3]

A partir do mapa de disparidade e dos parâmetros obtidos no processo de ca-libração, é possível calcular as coordenadas (𝑥, 𝑦, 𝑧) de cada ponto, considerando umsistema de coordenadas centrado na câmera da esquerda. Este processo não utiliza ne-nhum algoritmo específico, apenas conhecimentos sobre geometria de projeção e cálculosmatemáticos, como mostrados anteriormente. Basta saber a posição 𝑥 e 𝑦 de cada pontoem cada uma das imagens, a distância focal das câmeras e a matriz de transformação dasmesmas.

O que resulta deste processo é uma nuvem de pontos, ou seja, um conjunto depontos com coordenadas (𝑥, 𝑦, 𝑧) representando sua posição na cena. Como o processocalcula a profundidade em cada pixel, a nuvem resultante e extremamente densa, comquantidade de pontos atingindo facilmente a casa dos milhares, podendo chegar a milhões.É possível diminuir drasticamente a quantidade de pontos afim de reduzir o tempo deprocessamento e espaço de alocação no manuseio dos mesmos, bastando para isso salvarapenas um ponto a cada 𝑛 disponíveis, reduzindo a quantidade de pontos na nuvem para1% do total, por exemplo, para 𝑛 igual a 10.

Apesar do processo de escaneamento tridimensional estar já concluído neste ponto,pode-se ainda efetuar outras atividades afim de refinar os resultados obtidos. A aquisiçãoda cor de cada ponto, por exemplo, pode ser facilmente adquirida à partir das imagenscoloridas originais, tornando a nuvem de pontos mais verossímil e, consequentemente, a

Page 38: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 6. Resultados 37

Figura 13 – Nuvens de pontos gerados a partir dos mapas de disparidade da figura 12. Em cima, SG. Embaixo, SV

Fonte: produção própria, gerados a partir de imagens retiradas do dataset disponibilizado por Hirschmullere Scharstein [3]

identificação dos objetos mais fácil, como pode ser visto na figura 13. Outro refinamentointeressante é a triangularização dos vértices presentes na nuvem, ou seja, a criação dearestas conectando os vértices e formando faces, ou polígonos, geralmente triângulos, for-mando assim um modelo virtual tridimensional propriamente dito, que pode ser facilmentemanipulado em programas de edição 3D, se salvos devidamente em formato adequado,como por exemplo o Wavefront object file, com extensão .obj, que consiste numa sequen-cia de vértices com informações sobre suas coordenadas, seguidos pelas faces e os númerosdos vértices que as compõem.

Page 39: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 6. Resultados 38

Todas essas funcionalidade relacionadas a nuvens de pontos podem ser facilmenteimplementadas com o uso da biblioteca especializada em nuvens de pontos Point CloudLibrary (PCL), provavelmente a mais difundida nessa categoria. Com suporte para C++,pode ser facilmente adicionada ao projeto, afim de se gerar nuvens de pontos mais con-sistentes e executar os processos anteriormente citados facilmente. Além disso, ela aindapossui uma série de outras funções úteis, dependendo do que se deseja realizar, como apossibilidade de segmentação da nuvem de pontos, isolando certos objetos, identificaçãode pontos característicos ou junção de diversas nuvens de pontos, correlacionando os pon-tos destas para formação de uma única e maior nuvem, útil para fusão de nuvens geradasa partir de diversos ângulos de uma mesma cena, por exemplo [21].

Page 40: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

39

7 CONCLUSÃO

Pode-se concluir que o processo de construção de um scanner 3D não representagrandes dificuldades para aquele que o deseja. Neste trabalho, foi apresentado uma formasimples e significativamente fácil de efetuar o processo completo de montagem de umsistema estereoscópico artificial, abordando em detalhes cada uma das etapas a seremexecutadas, os maiores problemas encontrados em cada uma delas, e as soluções para taisproblemas, alcançando assim o objetivo primário deste trabalho.

O primeiro problema encontrado no processo de escaneamento é a própria aqui-sição das imagens. Essa etapa consiste uma das mais importantes, pois quando não ébem executada, resulta no malfuncionamento de todo o método. A solução para a aqui-sição consiste na utilização de um ambiente bem estruturado, com uma boa iluminação edisposição correta das câmeras, devidamente alinhadas horizontalmente, possibilitando aidentificação correta da epipolar.

Considerando duas câmeras retificadas e um ambiente estruturado, parte-se paraa etapa de calibração, onde o problema de aquisição dos parâmetros das mesmas pode serfacilmente solucionado com a utilização do algoritmo proposto por Zhang em 2000 [6], oqual consiste em uma técnica simples e flexível para calibração, possibilitando a obtençãodos parâmetros intrínsecos, extrínsecos e dos coeficientes de distorção.

Para o processo de correlação, existem vários algoritmos disponíveis para soluçãodo problema, e a escolha do ideal pode ser feito levando em conta os fins desejados ea taxonomia proposta por Scharstein em 2002 [9]. Vale lembrar que grande parte dosalgoritmos classificados por este método não são de uso livre, não sendo interessantes,portanto, neste trabalho, onde o objetivo é a confecção de um scanner de baixo custo.Pode-se ainda concluir que dos dois algoritmos comparados, o Semiglobal [3] e o variacional[4], o segundo tem execução mais rápida, enquanto o segundo tem menor quantidade deruído devido à suavização por ele realizada.

A etapa de reprojeção consiste em um problema já tratado há tempos pela com-putação e física, mais especificamente com o uso de conhecimentos sobre geometria deprojeção. Conhecendo-se os parâmetros das câmeras e a profundidade dos pontos obtidapelo mapa de disparidade, a reprojeção dos pontos e criação da nuvem de vértices sãoconclusões triviais.

O objetivo de confecção de um scanner 3D de baixo custo foi também perfeita-mente atingido, visto que considerando a disponibilidade de um computador, o único gastoreal é o que se tem com a compra das câmeras a serem utilizadas, que também foram debaixo custo. Os softwares e bibliotecas utilizados foram todos de uso livre, contribuindo

Page 41: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 7. Conclusão 40

de maneira geral para esta proposta de baixo custo.

Os resultados obtidos não foram as melhores possíveis, mas completamente aceitá-veis dentro do escopo do trabalho e considerando o objetivo proposto pelo mesmo inicial-mente. Muitas melhorias poderiam ser adicionadas com a disponibilidade de mais tempoe ainda podem ser agregadas em uma possível continuação deste trabalho.

As câmeras de haste flexível tornam extremamente trabalhosa a aquisição de boasimagens para correlação, visto que dificultam muito o alinhamento vertical e angulardas mesmas. Sendo assim, o uso de câmeras fixas e de prefferência com ajuste de focodigital é bastante recomendado, ou ainda a utlização de um equipamento especificamentepara uso em sistemas estereoscópicos, os quais já são fornecidos com ambas as câmerasacopladas, possibilitando maior facilidade de transporte e montagem do sistema, vistoque os parâmetros referentes as câmeras e á sua rotação e translação de uma com relaçãoa outra são fixos.

O uso de câmeras de baixa qualidade é completamente possível, mas evidente-mente, câmeras de alta resolução apresentam resultados ainda melhores, sendo estas al-tamente recomentadas quando houver disponibilidade de recurso financeiro.

Além disso, o projeto como um todo é dividido em módulos individuais que seconectam apenas através de suas entradas e saídas. Sendo assim, todos os módulos dosistema aqui construído têm funcionamento independente, podendo ser utilizados indi-vidualmente sem maiores problemas, apenas atentando-se para suas entradas e saídas.Logo, qualquer avanço acadêmico em uma das etapas possibilita a atualização de umdos módulos do sistema, com necessidade mínima ou nula de alteração dos outros módu-los. No que se refere à calibração das câmeras e correlação estereoscópica, por exemplo,existem vários algoritmos disponíveis, sendo assim uma alternativa a utilização de outrosmétodos além dos aqui citados, podendo ser testados como substitutos, visando melhorarde alguma forma o resultado final.

O processo de reprojeção foi bem sucedido, gerando um nuvem de pontos razoavel-mente semelhante à imagem retratada. Porém, o processo poderia ser refinado utilizando-se bibliotecas específicas de tratamento de nuvens de pontos, as quais também são reco-mendadas, como por exemplo a Point Cloud Library (PCL). Feita para C++, poderia seradicionada ao projeto, afim de se gerar nuvens de pontos mais consistentes e agregar umagrande quantidade de funcionalidades, como a triangulação de vértices, texturização domodelo através de coloração de vértices e gradientes e ainda a possibilidade de segmenta-ção da nuvem de pontos, isolando certos objetos ou junção de diversas nuvens de pontos,correlacionando os pontos destas para formação de uma única e maior nuvem [21].

Outra proposta ainda pode ser a utlilização de capturas em mais de dois ângulosda mesma cena, seja através do uso de três ou mais câmeras ou ainda da sucessão de

Page 42: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Capítulo 7. Conclusão 41

várias capturas de diversos ângulos utilizando as mesmas duas câmeras. Isto permitiriaa geração de um conjunto de nuvens de pontos, que poderiam então ter seus vérticescorrelacionados para a formação de uma nuvem maior e mais complexa, tendo assim umarepresentação mais fidedigna da cena real retratada.

Do ponto de vista geral, os objetivos esperados foram atingidos, fornecendo umabase para a confecção de um scanner 3D, passando por todas as etapas necessárias,apresentando os problemas encontrados e soluções dos mesmos, e fornecendo uma sériede propostas com o intuito de incentivar o surgimento de novos trabalhos com objetivo deaprimorar a metodologia aqui desenvolvida, sendo esta uma motivação para aqueles quepretendam dar prosseguimento ao trabalho aqui desenvolvido, ou ainda como base parauma possível continuação própria no futuro.

Page 43: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

42

REFERÊNCIAS

1 OHNO, K.; KAWAHARA, T.; TADOKORO, S. Development of 3d laser scanner formeasuring uniform and dense 3d shapes of static objects in dynamic environment. In:Robotics and Biomimetics, 2008. ROBIO 2008. IEEE International Conference on. [S.l.:s.n.], 2009. p. 2161–2167.

2 FELINTO, A. S. Visão Estéreo Utilizando a Curvatura Como Medida De Similaridade.Tese (Doutorado) — Instituto de Física de São Carlos, 2001.

3 HIRSCHMULLER, H.; SCHARSTEIN, D. Evaluation of cost functions for stereomatching. In: Computer Vision and Pattern Recognition, 2007. CVPR ’07. IEEEConference on. [S.l.: s.n.], 2007. p. 1–8. ISSN 1063-6919.

4 KOSOV, S.; THORMäHLEN, T.; SEIDEL, H.-P. Accurate real-time disparityestimation with variational methods. In: Proceedings of the 5th International Symposiumon Advances in Visual Computing: Part I. Berlin, Heidelberg: Springer-Verlag, 2009.(ISVC ’09), p. 796–807. ISBN 978-3-642-10330-8. Disponível em: <http://dx.doi.org/10-.1007/978-3-642-10331-5 74>.

5 NARVAEZ, A.; RAMIREZ, E. A simple 3d scanner based on passive vision forgeometry reconstruction. Latin America Transactions, IEEE (Revista IEEE AmericaLatina), v. 10, n. 5, p. 2125–2131, 2012. ISSN 1548-0992.

6 ZHANG, Z. A flexible new technique for camera calibration. IEEE Transactions OnPattern Analysis and Machine Intelligence, 2000.

7 JAIN, R. Machine vision. New York: McGraw-Hill, 1995. ISBN 0-07-032018-7.

8 GONZALEZ, R. Digital image processing. Reading, Mass: Addison-Wesley, 1992.ISBN 0-201-60078-1.

9 SCHARSTEIN, D.; SZELISKI, R. A taxonomy and evaluation of dense two-framestereo correspondence algorithms. Int. J. Comput. Vision, Kluwer Academic Publishers,Hingham, MA, USA, v. 47, n. 1-3, p. 7–42, abr. 2002. ISSN 0920-5691. Disponível em:<http://dx.doi.org/10.1023/A:1014573219977>.

10 HIRSCHMULLER, H. Stereo processing by semiglobal matching and mutualinformation. Pattern Analysis and Machine Intelligence, IEEE Transactions on, v. 30,n. 2, p. 328–341, 2008. ISSN 0162-8828.

11 OKUTOMI, M.; KANADE, T. A multiple-baseline stereo. In: Computer Vision andPattern Recognition, 1991. Proceedings CVPR ’91., IEEE Computer Society Conferenceon. [S.l.: s.n.], 1991. p. 63–69. ISSN 1063-6919.

12 COLLINS, R. A space-sweep approach to true multi-image matching. In: ComputerVision and Pattern Recognition, 1996. Proceedings CVPR ’96, 1996 IEEE ComputerSociety Conference on. [S.l.: s.n.], 1996. p. 358–363. ISSN 1063-6919.

13 SZELISKI, R.; GOLLAND, P. Stereo matching with transparency and matting. In:Computer Vision, 1998. Sixth International Conference on. [S.l.: s.n.], 1998. p. 517–524.

Page 44: SCANNER3D:PROBLEMASESOLUÇÕES - UEL€¦ · PERES,F.O..Scanner3D:ProblemsandSolutions.43p.FinalProject (Undergraduation).BachelorofScienceinComputerScience–StateUniversity ofLondrina,2013.

Referências 43

14 BIRCHFIELD, S.; TOMASI, C. Depth discontinuities by pixel-to-pixel stereo. Int.J. Comput. Vision, Kluwer Academic Publishers, Hingham, MA, USA, v. 35, n. 3,p. 269–293, dez. 1999. ISSN 0920-5691. Disponível em: <http://dx.doi.org/10.1023-/A:1008160311296>.

15 EGNAL, G. Mutual information as a stereo correspondence measure. Computer andInformation Science, 2000.

16 VICEDO, J.; LINARES, J. Escaneado de objetos tridimensionales en el iti.Actualidad TIC, 2008.

17 WAN, D.; ZHOU, J. Stereo vision using two {PTZ} cameras. Computer Vision andImage Understanding, v. 112, n. 2, p. 184 – 194, 2008. ISSN 1077-3142. Disponível em:<http://www.sciencedirect.com/science/article/pii/S1077314208000313>.

18 XIE, M. Automatic feature matching in uncalibrated stereo vision through theuse of color. Robotics and Autonomous Systems, v. 21, n. 4, p. 355 – 364, 1997.ISSN 0921-8890. Disponível em: <http://www.sciencedirect.com/science/article/pii-/S0921889096000747>.

19 QUICKSTART sphinx. OpenCV 2.4.6.0 Documentation. 2011. Disponível em:<http://docs.opencv.org/>.

20 OPENGL: The Industry’s Foundation for High Performance Graphics. 2013.Disponível em: <http://www.opengl.org/>.

21 PCL. 2013. Disponível em: <http://pointclouds.org/>.