Download PDF
ads:
Disserta¸ao para obten¸ao do grau de mestre em matem´atica pelo
INSTITUTO NACIONAL DE MATEM
´
ATICA PURA E APLICADA
Calibra¸ao Robusta de V´ıdeo Para Realidade Aumentada
por
BRUNO EDUARDO MADEIRA
Orientador: LUIZ VELHO
Co-Orientador: PAULO CEZAR PINTO CARVALHO
18 de Dezembro de 2006
ads:
Livros Grátis
http://www.livrosgratis.com.br
Milhares de livros grátis para download.
Abstract
One of the problems that must be solved for the development of an augmented reality
system is the calibration problem. This problem consists in estimating camera parame-
ters used to capture video frames that we need to combine with synthetic images. In this
thesis we present an algorithm that solves this problem combining different computer
vision techniques. The solution relies on correspondences from 3D scene points through
frame-to-frame associations between 2D image points over the video sequence. Because
even short videos are made by hundreds of frames, the correspondence must be done
automatically. Kanade-Lucas-Tomasi (KLT) algorithm is used for tracking characteris-
tic points. The algorithm developed is robust to outliers and assumes that the scene is
rigid which makes the camera parameters estimation possible.
ads:
Resumo
Um dos problemas que precisa ser resolvido para o desenvolvimento de um sistema de re-
alidade aumentada ´e o problema de calibra¸ao. Este problema consiste na determina¸ao
dos parˆametros da amera utilizados na capta¸ao dos quadros do v´ıdeo que se deseja com-
binar com image ns sint´eticas. Nesta disserta¸ao apresentamos um algoritmo que resolve
esse problema combinando diversos procedimentos baseados em vis˜ao computacional.
A solu¸ao ´e obtida utilizam-se correspondˆencias entre proje¸oes de diversos pontos da
cena sobre os diversos quadros do v´ıdeo. Tendo em vista que, mesmo v´ıdeos de curta
dura¸ao ao formados por centenas de quadros, ´e nec es s´ario que a correspondˆencia entre
as proje¸oes seja feita de forma autom´atica. O algoritmo Kanade-Lucas-Tomasi (KLT)
´e utilizado no acompanhamento de pontos caracter´ısticos. O algoritmo desenvolvido ´e
robusto e assume que a cena ´e r´ıgida, o que torna poss´ıvel a solu¸ao do problema de
estima¸ao dos parˆametros da amera.
Agradecimentos
Aos professores Luiz Velho e Paulo Cezar, pelos ensinamentos, pela aten¸ao e
paciˆencia dispensadas a mim, desde meu ingresso no IMPA, como aluno de inicia¸ao
cient´ıfica em 1998. A importˆancia desses dois mestres em minha forma¸ao acadˆemica
extrapola o trabalho apresentado neste texto.
Aos professores Jonas Gomes, Ralph Teixeira, e Luiz Henrique, que junto com
os professores Luiz Velho e Paulo Cezar, despertaram em mim o gosto pela pesquisa em
Computa¸ao Gr´afica e Vis˜ao Computacional.
Aos demais professores do IMPA, por terem mudado minha maneira de ver a
Matem´atica, transformando-a em uma aliada poderosa na busca de solu¸oes para pro-
blemas.
Aos meus pais, pelo apoio durante todos os anos de minha vida.
Sum´ario
1 Introdu¸ao 12
1.1 Caracteriza¸ao do problema . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.2 Estrutura da disserta¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Nota¸ao e conven¸oes matem´aticas . . . . . . . . . . . . . . . . . . . . . . 15
1.3.1 S´ımbolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.3.2 Coordenadas homogˆeneas . . . . . . . . . . . . . . . . . . . . . . . 16
2 amera virtual 17
2.1 Modelo asico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.1.1 amera na origem . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 amera em posi¸ao gen´erica . . . . . . . . . . . . . . . . . . . . . . 19
2.1.3 amera digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.4 Parˆametros intr´ınsecos . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.1.5 Dimens˜ao do espa¸co de ameras virtuais . . . . . . . . . . . . . . . 20
2.2 amera para s´ıntese de imagens . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.1 Terminologias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2.2 Recorte e visibilidade . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Transforma¸ao de visualiza¸ao . . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 Posicionamento da amera . . . . . . . . . . . . . . . . . . . . . . . 23
2.3.2 Transforma¸ao de normaliza¸ao . . . . . . . . . . . . . . . . . . . . 23
2.3.3 Proje¸ao p erspectiva . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3.4 Coordenadas do dispositivo . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Compara¸ao com o modelo asico . . . . . . . . . . . . . . . . . . . . . . 25
5
SUM
´
ARIO 6
2.4.1 Parˆametros intr´ınsecos . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.2 Dimens˜ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.3 Vantagens sobre o modelo asico . . . . . . . . . . . . . . . . . . . 26
2.5 ameras para calibra¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.5.1 Modelo projetivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.2 Nota¸ao K [R|t] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.5.3 amera projetiva gen´erica . . . . . . . . . . . . . . . . . . . . . . . 28
2.6 amera no OpenGL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.6.1 Especifica¸ao dos parˆametros extr´ınsecos . . . . . . . . . . . . . . . 30
2.6.2 Especifica¸ao dos parˆametros intr´ınsecos . . . . . . . . . . . . . . . 30
3 Parˆametros intr´ınsecos 32
3.1 Calibra¸ao em rela¸ao ao objeto calibrador . . . . . . . . . . . . . . . . . 33
3.1.1 Calibra¸ao usando seis correspondˆencias . . . . . . . . . . . . . . . 33
3.1.2 Encontrar x S
n
que minimiza Ax . . . . . . . . . . . . . . . . 34
3.1.3 Calibra¸ao usando mais de seis correspondˆencias . . . . . . . . . . 35
3.2 Isolamento dos parˆametros da amera . . . . . . . . . . . . . . . . . . . . 35
3.3 amera para s´ıntese de imagens . . . . . . . . . . . . . . . . . . . . . . . . 39
3.4 Calibra¸ao por otimiza¸ao restrita . . . . . . . . . . . . . . . . . . . . . . 40
3.4.1 M´etodo Gauss-Ne wton . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.2 Algoritmo Levenberg-Marquardt . . . . . . . . . . . . . . . . . . . 42
3.4.3 Adapta¸ao dos algoritmos ao problema . . . . . . . . . . . . . . . . 43
3.4.4 Parametriza¸ao de rota¸oes . . . . . . . . . . . . . . . . . . . . . . 44
3.4.5 Parametriza¸ao do espa¸co de ameras . . . . . . . . . . . . . . . . 44
3.4.6 Pontos problem´aticos da parametriza¸ao . . . . . . . . . . . . . . . 45
4 Calibra¸ao de pares de ameras 47
4.1 Representa¸ao do posicionamento relativo . . . . . . . . . . . . . . . . . . 47
4.2 Movimento r´ıgido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3 Outro modelo de proje¸ao . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4 Geometria Epipolar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4.1 Matriz essencial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
SUM
´
ARIO 7
4.4.2 Matriz fundamental . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.5 Algoritmo de 8 pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.5.1 alculo de F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.5.2 Usando mais de 8 pontos . . . . . . . . . . . . . . . . . . . . . . . 51
4.5.3 alculo de
˜
F . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.6 Algoritmo de 8 pontos normalizado . . . . . . . . . . . . . . . . . . . . . . 52
4.7 Determinando os parˆametros extr´ınsecos . . . . . . . . . . . . . . . . . . . 53
4.7.1 Adicionando recorte ao modelo . . . . . . . . . . . . . . . . . . . . 54
4.7.2 Reconstru¸ao tridimensional . . . . . . . . . . . . . . . . . . . . . . 55
5 Acompanhamento de pontos 57
5.1 Defini¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Algoritmo Kanade-Lucas-Tomasi . . . . . . . . . . . . . . . . . . . . . . . 58
5.3 Acompanhamento de janelas . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.4 Escolha das janelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.5 Descarte de janelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.6 Problemas no uso do KLT . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6 Calibra¸ao de fam´ılias de ameras 63
6.1 Defini¸oes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.2 Calibrando aos pares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6.3 Calibra¸ao em trˆes passos . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.4 Problemas da calibra¸ao em trˆes passos . . . . . . . . . . . . . . . . . . . 65
6.4.1 Algoritmo RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . 66
6.4.2 Solu¸ao para o problema do passo 1 . . . . . . . . . . . . . . . . . 67
6.4.3 Solu¸ao para o problema do passo 2 . . . . . . . . . . . . . . . . . 67
6.4.4 Solu¸ao para o problema do passo 3 . . . . . . . . . . . . . . . . . 68
6.5 Escolha das colunas base . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.6 Calibra¸ao via Levenberg-Marquardt . . . . . . . . . . . . . . . . . . . . . 69
6.7 Representa¸ao de uma configura¸ao . . . . . . . . . . . . . . . . . . . . . . 70
6.8 Ciclos de refinamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.9 Decomposi¸ao do v´ıdeo em fragmentos . . . . . . . . . . . . . . . . . . . . 72
SUM
´
ARIO 8
6.10 Jun¸ao de fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.10.1 Alinhamento de fragmentos . . . . . . . . . . . . . . . . . . . . . . 73
6.10.2 Compatibiliza¸ao de escalas . . . . . . . . . . . . . . . . . . . . . . 73
6.10.3 Compatibiliza¸ao robusta de escalas . . . . . . . . . . . . . . . . . 74
7 Experimentos computacionais 75
7.1 Bibliotecas utilizadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
7.2 Arquitetura do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.3 Estima¸ao de parˆametros intr´ınsecos . . . . . . . . . . . . . . . . . . . . . 77
7.4 Calibra¸ao de fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.5 Jun¸ao de fragmentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7.6 Modelagem geom´etrica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.7 Resultados finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
7.8 Considera¸oes sobre desempenho . . . . . . . . . . . . . . . . . . . . . . . 88
8 Conclus˜oes e trabalhos futuros 89
8.1 Problemas pendentes na calibra¸ao . . . . . . . . . . . . . . . . . . . . . . 89
8.2 Propostas para trabalhos futuros . . . . . . . . . . . . . . . . . . . . . . . 90
8.2.1 Problema de visibilidade . . . . . . . . . . . . . . . . . . . . . . . . 90
8.2.2 Ferramenta de modelagem para realidade aumentada . . . . . . . . 90
8.2.3 Fotorrealismo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
8.2.4 Acompanhamento espacial de corpos r´ıgidos em v´ıdeo . . . . . . . 92
Lista de Figuras
1.1 Quadros de um v´ıdeo em que foi aplicado o algoritmo apresentado nessa
disserta¸ao. Os pontos marcados nas imagens foram escolhidos e acompa-
nhados automaticamente, sendo utilizados por um processo de calibra¸ao,
que estimou as ameras empregadas na s´ıntese das imagens do cubo. . . 13
2.1 amera de furo (a); Modelo de amera (b) . . . . . . . . . . . . . . . . . . 19
2.2 Pirˆamide de vis˜ao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Transforma¸oes que comp˜oem o modelo de amera usado em s´ıntese de
imagens. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3.1 Objeto com marca¸oes em posi¸oes conhecidas, usado para calibra¸ao . . 33
3.2 (a) exibe a imagem de um cubo correspondente `a descri¸ao da cena apre-
sentada em (b). O sistema de coordenadas da imagem (a) ´e definido com
uma orienta¸ao diferente do sistema da amera apresentado em (b). Com
essa defini¸ao o sinal de f
1
precisa ser negativo. . . . . . . . . . . . . . . . 39
4.1 Embora existam quatro configura¸oes que e xplicam projetivamente o par
de p ontos hom´ologos, apenas em (a) o ponto projetado est´a posicionado
`a frente de ambas as ameras. . . . . . . . . . . . . . . . . . . . . . . . . . 55
9
LISTA DE FIGURAS 10
5.1 Exemplos de pontos que ao ao proje¸oes de pontos fixos da cena. No
caso do ponto 1, o KLT est´a ac ompanhando uma regi˜ao de brilho de uma
superf´ıcie. O problema ´e que ess a regi˜ao se move com a movimenta¸ao da
amera. No caso do ponto 2, o KLT est´a acompanhado a superposi¸ao da
proje¸ao dos bordos de duas superf´ıcies distintas da cena. . . . . . . . . . 61
7.1 Arquitetura do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.2 Imagens do objeto calibrador obtidas por uma mesma amera p os icionada
de formas diferentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.3 Quadros de v´ıdeos ilustrando o acompanhamento realizado pelo odulo
Perseguidor de Pontos. Temos respectivamente em (a), (b) e (c) um
acompanhamento de 10, 50 e 100 pontos. . . . . . . . . . . . . . . . . . . 81
7.4 Quantidade de pontos selecionados nas diversas etapas da calibra¸ao de
fragmentos dos v´ıdeos (a) e (c) da Figura 7.3. Cada curva representa um
experimento feito com uma quantidade diferente de pontos iniciais. No
eixo horizontal temos: A - Pontos selecionados no in´ıcio do fragmento; B
- Pontos acompanhados pelo KLT por todo o fragmento; C - Pontos per-
tencentes ao conjunto de consenso do RANSAC utilizado pelo algoritmo
de calibra¸ao em trˆes passos; D - Pontos re constru´ıdos pelo primeiro ciclo
de refinamento; E - Pontos reconstru´ıdos pelo segundo ciclo de refinamento. 82
7.5 Essas imagens localizam espacialmente os pontos associados `as letras A e
E dos gr´aficos da Figura 7.4. Os pontos vermelhos ao aqueles que foram
aceitos no ´ultimo ciclo de refinamento, e os azuis ao aqueles que foram
descartados. (a), (b) e (c) exibem os resultados utilizando-se respectiva-
mente uma sele¸ao inicial de 50, 100 e 150 pontos. (d), (e) e (f) fazem o
mesmo para o outro v´ıdeo. Vˆe-s e que, o ponto destacado em (a), embora
seja ovel, ao foi descartado. . . . . . . . . . . . . . . . . . . . . . . . . 83
LISTA DE FIGURAS 11
7.6 A curva vermelha indica a fra¸ao do n´umero de pontos reconstru´ıdos no
fragmento indicado, cujos erros de reproje¸ao nos quadros do fragmento
consecutivo ao inferiores `a 5 pixels. A c urva verde indica o erro edio
cometido nessa reproje¸ao. As informa¸oes ao parametrizadas pelas esco-
lhas de escalas na solu¸ao do problema 6.1. O resultado obtido aplicando-
se o algoritmo definido em 6.10.3 sobre (a) ´e de 0,368. O resultado da
letra (b) est´a mal determinado. . . . . . . . . . . . . . . . . . . . . . . . 84
7.7 Interface gr´afica do Modelador Geom´etrico. . . . . . . . . . . . . . . . . . 86
7.8 Quadros de v´ıdeos gerados pelo odulo Combinador de Imagens. . . . . . 87
8.1 Composi¸c ˜ao da imagem de um cubo gerado pelo YafRay com alguns qua-
dros de um v´ıdeo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
8.2 O cubo ao redor do boneco ilustra o uso da calibra¸ao na estima¸ao do
movimento realizado por um corpo r´ıgido. . . . . . . . . . . . . . . . . . 92
Cap´ıtulo 1
Introdu¸ao
1.1 Caracteriza¸ao do problema
Um dos principais problemas que precisa ser resolvido para o desenvolvimento de
um sistema de realidade aumentada ´e a dete rmina¸ao dos parˆametros da amera utili-
zados na capta¸ao dos quadros do v´ıdeo que se deseja combinar com imagens sint´eticas.
Nesta disserta¸ao apresentamos um algoritmo, composto por diversos procedimentos
heur´ısticos baseados em vis˜ao computacional, que resolve esse problema. Para isso
utilizam-se correspondˆencias entre proje¸oes de diversos pontos da cena sobre os diversos
quadros do v´ıdeo.
A cena precisa ser predominantemente r´ıgida, ou seja, a maioria dos pontos da
cena ao podem ter sua posi¸ao modificada, pois as restri¸c ˜oes impostas pela rigidez sobre
suas proje¸oes ´e que tornam poss´ıvel a determina¸ao dos parˆametros da amera.
Tendo em vista que, mesm o v´ıdeos de curta dura¸ao ao formados por centenas
de quadros, ´e necess´ario que a correspondˆencia entre as proje¸oes seja feita de forma
autom´atica. Para isso ´e utilizado o algoritmo Kanade-Lucas-Tomasi (KLT), descrito
detalhadamente em [16]. O pre¸co pago pela automatiza¸ao ´e a possibilidade de falha
nas medi¸oes das proje¸oes dos pontos, que torna necess´ario o uso de t´ecnicas robustas.
Uma vez que tenham sido estabelecidas as correspondˆencias entre as proje¸oes
de pontos da cena nos diversos quadros do v´ıdeo, aplicam-se ecnicas de calibra¸ao, que
permitem dete rminar as ameras associadas a cada quadro. Com o conhecimento dessas
12
CAP
´
ITULO 1. INTRODUC¸
˜
AO 13
Figura 1.1: Quadros de um v´ıdeo em que foi aplicado o algoritmo apresentado nessa
disserta¸ao. Os pontos marc ados nas imagens foram escolhidos e ac ompanhados auto-
maticamente, sendo utilizados por um processo de calibra¸ao, que estimou as ameras
empregadas na s´ıntese das imagens do cubo.
ameras, pode-se inserir um objeto virtual na cena, como ilustrado na Figura 1.1.
Muitas das id´eias utilizadas aqui ao baseadas em [6]. Existem, entretanto, gran-
des diferen¸cas no que diz respeito `a estrat´egia de robustecimento empregada. Al´em
disso, no nosso caso, os parˆametros da amera ao determinados em dois est´agios. No
primeiro est´agio, utiliza-se um objeto com marca¸oes feitas em posi¸oes conhecidas para
estimar os parˆametros intr´ınsecos da amera, e, em um segundo est´agio, faz-se a deter-
mina¸ao dos parˆametros extr´ınsecos utilizando-se os parˆametros intr´ınsecos estimados
anteriormente. Essa estrat´egia elimina a necessidade de se utilizar um algoritmo de
auto-calibra¸ao.
1.2 Estrutura da disserta¸ao
O assunto tratado na disserta¸ao foi dividido em cap´ıtulos da seguinte maneira:
Cap´ıtulo 2: ao descritos modelos de amera utilizados na solu¸ao de problemas
de calibra¸ao e s´ıntese de imagens. ao apresentadas as rela¸oes existentes entre os
dois tipos de modelos atrav´es da identifica¸ao dos parˆametros comuns ao modelos
definidos em [7] e [8], sendo o primeiro usado em s´ıntese de imagens, e o segundo
usado em calibra¸ao. No final, explica-se detalhadamente o processo de compati-
CAP
´
ITULO 1. INTRODUC¸
˜
AO 14
biliza¸ao dos parˆametros da API do OpenGL com os parˆametros de uma amera
estimada por um processo de calibra¸ao.
Cap´ıtulo 3:
´
E descrito um m´etodo para estimar os parˆametros intr´ınsecos de uma
amera a partir da imagem de um objeto com marca¸oes em posi¸c ˜oes conhecidas.
Como parte da solu¸ao do problema, ´e descrito um algoritmo que resolve o pro-
blema de calibra¸ao de uma amera a partir de um conjunto de correspondˆencias
3D-2D.
Cap´ıtulo 4:
´
E descrito um algoritmo capaz de calibrar um par de ameras, sendo
conhecidas as proje¸oes de um conjunto de pontos da cena sobre um par de ima-
gens captado por elas. Des creve-se tamb´em um algoritmo capaz de realizar a
reconstru¸ao tridimensional de um conjunto de pontos a partir de um conjunto de
proje¸oe s obtidas por um par de ameras calibradas.
Cap´ıtulo 5:
´
E desc rito o algoritmo Kanade-Lucas-Tomasi (KLT), que ´e utilizado
na automatiza¸ao da correspondˆencia entre pontos hom´ologos nos quadros de um
v´ıdeo. Assim como os dois cap´ıtulos anteriores, esse cap´ıtulo ajuda a preparar o
terreno para o Cap´ıtulo 6.
Cap´ıtulo 6: Esse ´e o principal cap´ıtulo da disserta¸ao. Faz-se inicialmente um
conjunto de defini¸oes, visando caracterizar o problema de calibra¸ao de fam´ılias
de ameras. Em seguida, apresenta-se um algoritmo para resolver esse problema
de calibra¸ao, combinando os algoritmos descritos nos cap´ıtulos 3, 4 e 5 com o
algoritmo RANSAC, que ´e explicado no cap´ıtulo.
Cap´ıtulo 7:
´
E descrita a arquitetura de um sistema implementado, que tem a ca-
pacidade de inserir, de forma geometricamente consistente, objetos virtuais sobre
os quadros de um v´ıdeo capturado por uma amera. Para fazer isso, ele com-
bina os resultados sobre especifica¸ao de parˆametros do OpenGL, apresentados no
Cap´ıtulo 2, com o algoritmo de calibra¸ao de fam´ılias de ameras apresentado no
Cap´ıtulo 6. No final, ao apresentados exemplos de resultados produzidos pelo
sistema.
CAP
´
ITULO 1. INTRODUC¸
˜
AO 15
1.3 Nota¸ao e conven¸oes matem´aticas
1.3.1 S´ımbolos
A maioria dos s´ımbolos matem´aticos empregados no texto ao de uso consagrado
na literatura. Adotamos os mesmos significados para os s´ımbolos feito em [10], e assu-
mimos tamb´em o seguinte:
a, b U significa que a U e b U;
f : W U V significa f : W V , onde W U;
(X)
n
´e uma n-upla de eleme ntos indexados (X
1
, ··· , X
n
);
a b significa que a ´e aproximadamente igual a b;
Se M ´e uma matriz ent˜ao M
ij
´e o ele mento da i-´esima linha e j-´esima coluna;
f (x) ´e o vetor gradiente no ponto x asso ciado a uma aplica¸ao f : U
n
diferenci´avel em x U ;
J
f
(x) ´e a matriz jacobiana no ponto x associada a uma aplica¸ao f : U
n
m
diferenci´avel em x U ;
H
f
(x) ´e a matriz hessiana no ponto x associada a uma aplica¸ao f : U
n
duas
vezes diferenci´avel em x U;
diag (λ
1
, ··· , λ
n
) ´e a matriz diagonal definida de forma que se M = diag (λ
1
, ··· , λ
n
)
enao M
ii
= λ
i
;
d (x, y) ´e a distˆancia euclidiana entre os pontos x e y.
CAP
´
ITULO 1. INTRODUC¸
˜
AO 16
1.3.2 Coordenadas homogˆeneas
Em muitas partes da disserta¸ao faz-se uso de geometria projetiva, mais especi-
ficamente, utilizam-se os espa¸cos projetivos P
2
e P
3
.
Temos que coordenadas de pontos projetados nas image ns ao especificados tanto
como pares ordenados
2
como em coordenadas homogˆeneas de P
2
. Essa identifica¸ao
´e dada pela transforma¸ao
(x, y, z)
T
→
x
z
,
y
z
T
,
definida quando z = 0.
O mesmo ocorre com coordenadas de pontos da cena: elas ao especificadas tanto
em
3
como em coordenadas homogˆeneas de P
3
, seguindo um processo an´alogo. Para
evitar confus˜oes, procurou-se indicar explicitamente a que conjunto os pontos pertencem.
Por exemplo, para indicar um ponto da cena dizemos “um ponto X
3
da cena” ou
“um ponto X P
3
da cena”.
Existe no texto avalia¸oes de distˆancias entre pontos c ujas coordenadas ao es-
pecificadas de forma homogˆeneas, ou seja, d (x, y) definida com x, y P
2
. Neste caso,
assumiremos que, antes de ser avaliada a fun¸ao distˆancia, faz-se implicitamente a con-
vers˜ao das coordenadas de x e de y para
2
, como descrito anteriormente.
Os conhecimentos de geometria projetiva necess´arios para a compreens˜ao da
disserta¸ao ao bastante elementares. Uma boa referˆencia ´e [7]. Uma apresenta¸ao um
pouco mais detalhada sobre o mesmo assunto pode ser encontrada em [8].
Cap´ıtulo 2
amera virtual
Uma amera virtual ´e um objeto matem´atico que descreve o funcionamento de
uma amera ´optica, ou seja, estabelece a correspondˆencia existente entre elementos do
mundo tridimensional e suas proje¸oes em uma imagem.
No contexto de Realidade Aumentada
1
ao necess´arios modelos de amera que
permitam resolver dois tipos de problemas:
1. Problemas de S´ıntese de Imagens.
2. Problemas de Calibra¸ao.
Neste cap´ıtulo abordaremos modelos de ameras apropriados para a resolu¸ao
destes problemas. Inicialmente aprese ntaremos um modelo de amera asico, que ser´a
definido sem fazer uso de geometria projetiva. Este servir´a de base para a defini¸ao de
dois modelos criados com geometria projetiva, sendo um utilizado na resolu¸ao de pro-
blemas de s´ıntese de imagens, e outro utilizado na resolu¸ao de problemas de calibra¸ao.
Ser˜ao apresentadas parametriza¸oes para esses modelos. De forma semelhante a
outros textos, agruparemos os parˆametros em duas categorias: os parˆametros extr´ınsecos
e os parˆametros intr´ınsecos.
1
Realidade Aumentada ´e o processo de composi¸ao de imagens captadas por uma amera com imagens
de objetos geradas por computador. Este processo pode ser feito em tempo real, ou ao. Estamos
tratando na disserta¸ao de um processo de realidade aumentada que ao ´e feito em tem po real.
17
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 18
Os parˆametros extr´ınsecos descrevem o posicionamento e a orienta¸ao da amera.
a os parˆametros intr´ınsecos, estes descrevem o efeito da amera sobre os raios lumin-
sosos, e a ao dos sensores da amera na forma¸ao da imagem. As propriedades da
amera controladas pelos parˆametros intr´ınsecos incluem: a distˆancia focal, a resolu¸ao
da imagem, as dimens˜oes dos pixels, a distor¸ao radial causada pela lente, ... etc.
O mapeamento de m odelos de ameras usados em calibra¸ao sobre os modelos
usados em s´ıntese de imagens ser´a feito implicitamente, pela ado¸ao de uma mesma
nomeclatura na parametriza¸ao de ambos. Por exemplo, a letra d ser´a utilizada para
especificar a distˆancia focal tanto nos modelos usados em s´ıntese de imagens como nos
modelos usados em calibra¸ao.
No final do cap´ıtulo ser´a definido o mapeamento dos parˆametros dos modelos
usados em calibra¸ao sobre os parˆametros utilizados na especifi¸ao de ameras pela
biblioteca OpenGL. A importˆancia deste mapeamento deve-se ao fato do OpenGL ser
um dos padr˜oes de s´ıntese de imagens mais utilizados na atualidade [19], e de ter sido
utilizado no desenvolvimento do sistema descrito no Cap´ıtulo 7.
2.1 Modelo asico
Ser´a apresentado agora um modelo de amera asico, que ser´a posteriormente
especializado na resolu¸ao de problemas de s´ıntese de imagens e calibra¸ao.
Uma hip´otese adotada em todo o texto ´e que o efeito sobre os raios luminosos
produzido por uma amera que possui lentes, pode ser aproximado pelo efeito produzido
por uma amera de furo [4], que ´e o tip o de amera considerado nos modelos que ser˜ao
apresentados. Um tratamento mais geral, que leva em considera¸ao a distor¸ao radial
causada pelas lentes, pode ser encontrado em [1].
Uma amera de furo realiza uma proje¸ao perspectiva dos pontos de uma c ena
sobre um anteparo. Como o centro ´optico da amera encontra-se entre o anteparo e os
objetos projetados, ocorre uma invers˜ao da imagem captada. Embora isso ao gere gran-
des problemas do ponto de vista matem´atico, ´e comum descrever o efeito de uma amera
de furo por uma proje¸ao perspectiva, em que o plano de proje¸ao encontra-se entre o
centro de proje¸ao e os objetos projetados, obtendo assim um resultado equivalente,
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 19
Figura 2.1: am era de furo (a); Modelo de amera (b)
por´em, se m a invers˜ao, como ilustrado na Figura 2.1.
A seguir ser˜ao definidas trˆes transforma¸oes, chamadas de T
1
, T
2
e T
3
, que ser˜ao
combinadas para formar o modelo de amera asico.
2.1.1 amera na origem
Para uma proje¸ao perspectiva cujo centro de proje¸ao est´a posicionado em
(0, 0, 0)
T
, e cujo plano de proje¸ao ´e perpendicular ao eixo-z, temos que a transforma¸ao
associada ´e T
1
: S
3
2
, definida por
T
1
{(x, y, z)
T
} =
d
x
z
, d
y
z
T
, (2.1)
onde S ´e o conjunto formado pelos pontos de
3
que ao possuem a coordenada z = 0,
e d corresponde `a distˆancia entre o centro e o plano de proje¸ao. Essa distˆancia ´e
denominada distˆancia focal.
2.1.2 amera em posi¸ao gen´erica
A transforma¸ao correspondente a uma amera posicionada de maneira arbitr´aria
´e dada pela composi¸ao T
1
T
2
: T
1
2
(S)
2
, onde T
2
:
3
3
´e um movimento
r´ıgido definido por
T
2
(x) = R (x c) , (2.2)
em que c ´e a posi¸ao do centro de proje¸ao, e R ´e uma matriz de rota¸ao, que determina
a orienta¸ao da amera.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 20
A matriz de rota¸ao R e o vetor c podem ser parametrizados por 6 n´umeros reais,
que correspondem aos parˆametros extr´ınsecos da amera.
2.1.3 amera digital
No caso de ameras digitais, temos que a imagem ´e projetada sobre uma matriz
de sensores, que realizam uma amostragem da mesma. Essa amostragem define um
novo sistema de coordenadas para a imagem projetada. A mudan¸ca de coordenadas da
imagem ´e definida por uma transforma¸ao afim do plano T
3
:
2
2
, da forma,
T
3
(x) = diag (m
x
, m
y
) + (x
0
, y
0
)
T
, (2.3)
onde m
x
e m
y
correspondem ao n´umero de sensores por unidade de comprimento na
dire¸ao x e y respectivamente, e o par (x
0
, y
0
)
T
corresponde ao ponto principal, que
define as coordenadas em escala de pixels, da proje¸ao ortogonal do centro de proje¸ao
sobre o plano de proje¸c ˜ao.
2.1.4 Parˆametros intr´ınsecos
Vamos analisar agora a composi¸ao T
3
T
1
: S
2
. Essa transforma¸ao ´e
definida por
T
3
T
1
(x, y, z)
T
=
dm
x
x
z
+ x
0
, dm
y
y
z
+ y
0
T
. (2.4)
´
E imediato verificar, pela express˜ao acima, que ameras digitais com distˆancias
focais diferentes podem produzir o mesmo resultado, bastando para isso escolher uma
resolu¸ao espacial apropriada. Isso ocorre pois esses valores aparece m combinadas na
forma dos produtos dm
x
e dm
y
.
Os valores x
0
, y
0
, dm
x
e dm
y
definem os parˆametros intr´ınsecos do modelo de
amera asico.
2.1.5 Dimens˜ao do espa¸co de ameras virtuais
Temos que as transforma¸oes T
3
T
1
T
2
: T
1
2
(S)
2
definem um espa¸co de
ameras virtuais que possui 10 graus de liberdade, sendo 3 graus de liberdades ass ociados
`a rota¸ao R, 3 graus de liberdade associados `a posi¸ao do c entro de proje¸ao c, e os demais
4 graus de liberdades definidos pelos parˆametros intr´ınsecos.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 21
Figura 2.2: Pirˆamide de vis˜ao.
Observamos que ao considerarmos um modelo com 10 graus de liberdade, esta-
mos desconsiderando que as dimens˜oes do anteparo da amera de furo ao parˆametros
intr´ınsecos. Do ponto de vista de calibra¸ao, isso ao gera nenhum problema pois as
limita¸oes do anteparo est˜ao sendo aplicadas fisicamente pela amera, por outro lado,
do ponto de vista de s´ıntese de imagens, essas dimens˜oes ao importantes.
2.2 amera para s´ıntese de imagens
O problema de s´ıntese de imagens pode ser definido como o de criar imagens
a partir de descri¸oes de cenas tridimensional. Esta se¸ao e a pr´oxima tratam de um
modelo de amera apropriado para s´ıntese de imagens a partir de cenas cuja descri¸ao
da geometria dos objetos ´e feita por uma representa¸ao poliedral.
2.2.1 Terminologias
Ser˜ao apresentados agora os principais termos usados na especifica¸ao de ameras
em computa¸ao gr´afica. A Figura 2.2 ilustra cada um deles.
Tela virtual ´e o retˆangulo do plano de proje¸ao que cont´em a imagem projetada. Essa
limita¸ao definida sobre o plano de proje¸ao corresponde fisicamente `as limita¸oes
nas dimens˜oes do anteparo onde os raios luminosos ao projetados.
Pirˆamide de vis˜ao ´e a pirˆamide definida pelo centro de proje¸ao e pela tela virtual.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 22
Plano anterior ´e um plano posicionado a frente do centro de proje¸ao. Apenas pontos
que est˜ao a frente do plano anterior ao projetados na imagem.
Plano posterior ´e um plano posicionado a frente do plano anterior. Apenas pontos
que est˜ao atr´as do plano posterior ao projetados na imagem .
Volume de vis˜ao ´e o tronco de pirˆamide definido pela por¸ao da pirˆamide de vis˜ao
delimitada pelo plano anterior e pelo plano posterior.
2.2.2 Recorte e visibil idade
O modelo de amera asico definido pela transforma¸ao T
3
T
1
T
2
: T
1
2
(S)
2
´e capaz de descrever a posi¸ao na imagem de todos os pontos da cena que ao projetados.
Por outro lado, ele define proje¸oes para pontos da cena que ao seriam projetados pela
amera de furo c orrespondente. Mais precisamente, para que um ponto da cena X
3
seja projetado por uma amera e le precisa satisfazer as seguintes propriedades:
1. X deve estar `a frente da amera;
2. A proje¸ao de X deve estar contida no anteparo da amera;
3. X ao deve sofrer oclus˜ao de outro ponto da cena.
A pirˆamide de vis˜ao ´e o lugar geom´etrico dos pontos que satisfazem as propri-
edades 1 e 2. A determina¸ao dos pontos da cena que pertencem `a pirˆamide de vis˜ao
´e chamada de recorte em rela¸ao `a pirˆamide de vis˜ao. a o problema de determinar os
pontos que satisfazem a propriedade 3 ´e conhecido com o nome de problema de visibili-
dade.
Em computa¸ao gr´afica, exige-se, al´em dessas trˆes propriedades, que X perten¸ca
a regi˜ao do espa¸co delimitada pelos planos anterior e posterior, substituindo a opera¸ao
de recorte em rela¸ao a pirˆamide de vis˜ao pelo recorte em rela¸ao ao volume de vis˜ao.
O objetivo da restri¸ao dada pelo plano anterior ´e evitar problemas num´ericos
ao se realizar divis˜oes por n´umeros muito pequenos. Esse tipo de erro pode ocorrer,
por exemplo, se aplicarmos a transforma¸ao T
1
, definida pela equa¸ao (2.1), a um ponto
muito pr´oximo do centro de proje¸ao. a o objetivo da restri¸ao dada pelo plano posterior
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 23
Figura 2.3: Transforma¸oes que comp˜oem o modelo de amera usado em s´ıntese de
imagens.
´e limitar a profundidade da regi˜ao da cena que ser´a projetada, permitindo que se possa
empregar o algoritmo Z-buffer na resolu¸ao de problemas de visibilidade.
Uma an´alise de algoritmos que resolvem problemas de visibilidade e rec orte est˜ao
fora do escopo desta disserta¸ao. Tal assunto ´e abordado detalhadamente em [7].
2.3 Transforma¸ao de visualiza¸ao
Normalmente, utiliza-se em s´ıntese de imagens um modelo de amera formado
por uma seq ¨encia de transforma¸oes projetivas em P
3
que ao aplicadas de forma su-
cessiva, intercaladas com algoritmos que resolvem os problemas de recorte e visibilidade.
Trataremos de uma seq¨encia em particular que ´e apresentada na Figura 2.3.
As transforma¸oes apresentadas a seguir ao uma adapta¸ao do modelo definido
em [7] `a nota¸ao estabelecida na se¸ao 2.1.
2.3.1 Posicionamento da amera
A transforma¸ao V : P
3
P
3
faz a mudan¸ca do sistema de coordenadas da
cena para o sistema de coordenadas da amera, ou seja, ´e uma vers˜ao projetiva para o
movimento r´ıgido definido por T
2
na se¸ao 2.1.2. Sua representa¸ao matricial ´e
V =
R Rc
0
T
1
. (2.5)
2.3.2 Transforma¸ao de normaliza¸ao
A transforma¸ao N : P
3
P
3
faz a mudan¸ca do sistema de coordenadas da
amera para um sistema de coordenadas normalizado, onde o problema de recorte fica
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 24
simplificado. Sua represe nta¸ao matricial ´e
N =
d
fs
x
0
x
0
m
x
s
x
fm
x
s
x
0
0
d
fs
y
y
0
m
y
s
y
fm
y
s
y
0
0 0
1
f
0
0 0 0 1
, (2.6)
onde temos respectivame nte que n e f ao as distˆancias do plano anterior e posterior ao
centro de proje¸ao, e 2s
x
e 2s
y
ao as dimens˜oes horizontal e vertical da tela virtual.
O problema de recorte em rela¸ao `a pirˆamide de vis˜ao fica simplificado, pois
no sistema de coordenadas normalizado, a pirˆamide de vis˜ao ´e mapeada na pirˆamide
definida como
(x, y, z)
T
3
: z < x < z, z < y < z, 0 < z
.
2.3.3 Proje¸ao perspectiva
A transforma¸ao P : P
3
P
3
faz a mudan¸ca do sistema de coordenadas
normalizado para o sistema de coordenadas de ordena¸ao. Sua representa¸ao matricial
´e
P =
1 0 0 0
0 1 0 0
0 0
f
fn
n
fn
0 0 1 0
. (2.7)
Ao descrevermos a ce na no sistema de coordenadas de ordena¸ao, obtemos duas
propriedades interessantes, que ao:
1. Nesse referencial, ao aplicarmos uma transforma¸ao Π : P
3
2
, definida por
(a
x
, a
y
, a
z
, 1)
T
→ (a
x
, a
y
)
T
, obtemos a proje¸ao perspectiva feita pela amera vir-
tual correspondente;
2. Nesse referencial, um ponto A = (a
x
, a
y
, a
z
, 1)
T
exerce uma oclus˜ao sobre um ponto
B = (b
x
, b
y
, b
z
, 1)
T
, se e somente se, Π (A) = Π (B) e a
z
< b
z
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 25
Essas duas propriedades mostram que tanto o alculo de perspectiva, como a
solu¸ao para o problema de visibilidade podem ser realizados de maneira trivial no
sistema de coordenadas de ordena¸ao.
2.3.4 Coordenadas do disposit ivo
A transforma¸ao D : P
3
P
3
faz a mudan¸ca do sistema de coordenadas de
ordena¸ao para o sistema de coordenadas do dispositivo. Esse sistema de coordenadas
possui algumas propriedades interessantes:
1. As duas propriedades do referencial de ordena¸ao continuam alidas;
2. As coordenadas dos eixos x e y ao dadas em escala de pixels;
3. O volume de vis˜ao, na dire¸ao do eixo-z, corresponde exatamente ao intervalo de
representa¸ao do Z-buffer.
A representa¸ao matricial da transforma¸ao D ´e dada por:
D =
s
x
m
x
0 0 s
x
m
x
0 s
y
m
y
0 s
y
m
y
0 0 Z
max
0
0 0 0 1
, (2.8)
onde, [0, Z
max
] ´e o intervalo de representa¸ao do Z-buffer.
2.4 Compara¸ao com o modelo asico
2.4.1 Parˆametros intr´ınsecos
A matriz associada `a composi¸c ˜ao DP N : P
3
P
3
´e dada por
DP N =
dm
x
0 x
0
0
0 dm
y
y
0
0
0 0
fZ
max
fn
nfZ
max
fn
0 0 1 0
. (2.9)
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 26
A restri¸ao da imagem de DP N ao plano-xy ´e igual ao efeito da transforma¸ao
T
3
T
1
definida em pela equa¸ao (2.4). Mais precisamente, Π DP N = T
3
T
1
, onde
Π : P
3
2
´e definida como na se¸ao 2.3.3. a o efeito de DP N na dire¸ao do eixo-z
´e um ajuste afim do volume de vis˜ao sobre o intervalo [0, Z
max
].
Embora essa matriz ao apare¸ca explicitamente em um sistema gr´afico, pois
ao se pode compor DP com N , pois ´e necess´ario realizar a opera¸c ˜ao de recorte ap´os
a aplica¸ao de N, temos que ela ´e interessante pois deixa evidente que o efeito dos
parˆametros intr´ınsecos x
0
, y
0
, dm
x
e dm
y
na proje¸ao dos pontos da cena ´e o mesmo do
modelo asico. Al´em disso, essa matriz exibe dois parˆametros intr´ınsecos extras n e f ,
que ao correspondem a parˆametros de ameras do mundo real, e cujo efeito na imagem
gerada ´e a elimina¸ao de superf´ıcies projetadas.
O valor Z
max
ao ´e determinado pelo estado da amera, mas pelo dispositivo
utilizado pelo algoritmo Z-buffer, logo, ao ´e um parˆametro da amera, e ao causa
nenhuma influˆencia na imagem gerada pelo modelo.
Outra observao importante ´e que DP N ´e livre em s
x
e em s
y
, que ´e um fato
esperado, visto que esses valores ao aparecem em T
3
T
1
. No entanto s
x
e s
y
ao
valores relevantes pois definem as dimens˜oes da imagem, logo ao parˆametros intr´ınsecos
da amera.
2.4.2 Dimens˜ao
Conclui-se que o modelo de amera usado em s´ıntese de imagens possui 14 graus
de liberdade. Al´em dos 10 graus de liberdade do modelo asico, existem outros quatro
parˆametros intr´ınsecos, sendo dois correspondentes `as dimens˜oes da tela virtual e os
outros dois correspondentes `as distˆancias do centro de proje¸ao aos planos anterior e
posterior.
2.4.3 Vantagens sobre o modelo asico
Os motivos que tornam vantajoso o uso de transforma¸oes projetivas no P
3
, na
constru¸ao de siste mas gr´aficos, no lugar da formula¸ao feita no modelo asico ao os
seguintes:
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 27
1. Transforma¸oes projetivas em P
3
permitem representar tanto movimentos r´ıgidos
no espa¸co como opera¸oes de proje¸ao.
2. O problema de visibilidade fica simplificado escolhendo-se um sistema de coordena-
das apropriado de P
3
, como nos casos dos sistemas de coordenadas de ordena¸ao
e do dispositivo.
2.5 ameras para calibra¸ao
O problema de calibra¸ao consiste e m determinar os parˆametros extr´ınsecos e
intr´ınsecos de um conjunto de ameras. Esses problema gen´erico pode ser especializado
em diferentes modalidades. No nosso caso estamos interessados na seguinte formula¸ao
em particular:
Dado um conjunto de n imagens, determinar os parˆametros extr´ınsecos e intr´ın-
secos das n ameras que captaram essas imagens.
Nesse caso, diremos que as n am eras ao consistentes c om as n imagens, e que
as n ameras fornecem uma explica¸ao para as n imagens.
Na pr´atica, o problema de calibra¸ao ´e formulado sob um ponto de vista de oti-
miza¸ao, tendo em vista que erros de medi¸oes nas imagens geralmente fazem com que
ao exista um conjunto de ameras consistente. Dessa forma, o problema de calibra¸ao
passa a ser reformulado como:
Dado um conjunto de n imagens, determinar os parˆametros extr´ınsecos e intr´ın-
secos das n ameras que melhor explicam as n imagens.
A formaliza¸ao matem´atica desse problema de otimiza¸ao, e um algoritmo que o
resolve, ao apresentados no Cap´ıtulo 6.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 28
2.5.1 Modelo projetivo
O modelo de amera empregado em calibra¸ao pode ser obtido reescrevendo-
se as transforma¸oes T
1
, T
2
e T
3
definida na se¸ao 2.1 como transforma¸oes projetivas
T
1
: P
3
P
2
, T
2
: P
3
P
3
e T
3
: P
2
P
2
, obtendo as seguintes repre-
senta¸oes matriciais:
T
1
=
d 0 0 0
0 d 0 0
0 0 1 0
, T
2
=
R Rc
0
T
1
e T
3
=
m
x
0 x
0
0 m
y
y
0
0 0 1
.
2.5.2 Nota¸ao K [R|t]
´
E imediata a verifica¸ao que as transforma¸oes projetivas T
3
T
1
T
2
: P
3
P
2
podem ser representadas pelo produto de uma matriz 3 ×3 por uma matriz 3 ×4, como
mostrado abaixo:
T
3
T
1
T
2
=
dm
x
0 x
0
0 dm
y
y
0
0 0 1
R Rc
. (2.10)
Nesse caso, ´e comum utilizar a nota¸ao compacta K [R| Rc] para expressar
esse produto. Nessa nota¸ao, K corresponde `a matriz 3 ×3 que especifica os parˆametros
intr´ınsecos da amera, e [R| Rc] corresponde `a matriz 4×3 que especifica os parˆametros
extr´ınsecos.
´
E comum tamb´em o uso da nota¸ao K [R|t] cuja ´unica diferen¸ca para a
nota¸ao anterior ´e que a posi¸ao do centro de proje¸ao ao ´e explicitada, tendo em vista
que o produto Rc ´e substitu´ıdo por um vetor t
3
, que representa a transla¸ao da
amera.
2.5.3 amera projetiva gen´erica
Temos que as transforma¸oes T
3
T
1
T
2
: P
3
P
2
definem um conjunto de
matrizes 4×3 que possui 10 graus de liberdade. Considerando que o conjunto formado
por todas as transforma¸oes projetivas definidas em P
3
P
2
possui 11 graus de
liberdade, conclui-se que certamente existem transforma¸oes projetivas desse conjunto
que ao correspondem a nenhuma amera.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 29
Ser´a mostrado na se¸ao 3.2 que esse grau de liberdade extra pode ser obtido
considerando-se um modelo para ameras definido por transforma¸oes projetivas da
forma
f
1
s x
0
0 f
2
y
0
0 0 1
R Rc
.
Esse modelo caracteriza uma amera projetiva gen´erica [8], que possui 5 parˆa-
metros intr´ınsecos: f
1
, f
2
, s, x
0
e y
0
. O grau de liberdade extra permite que o ˆangulo θ
definido pelos eixos x e y, que e specificam o s istem a de coordenadas da imagem, possa
ser modificado. Fisicamente isso pode ser interpretado como um cisalhamento na matriz
de sensores de uma amera digital.
Os parˆametros f
1
, f
2
e s relacionam-se com os parˆametros do modelo de 10 graus
de liberdade [4]:
f
1
= dm
x
, (2.11)
f
2
=
dm
y
senθ
, (2.12)
s = f
1
cotgθ. (2.13)
O par (x
0
, y
0
)
T
possui a mesma interpreta¸ao do modelo de 10 graus de liberdade,
especificando as coordenadas, em escala de pixels, do ponto principal.
2.6 amera no OpenGL
Mostramos nas se¸oes anteriores como os parˆametros intr´ınsecos e extr´ınsecos
ao inseridos nas transforma¸oes projetivas que comp˜oem modelos de ameras utilizados
em calibra¸ao de ameras e em s´ıntese de imagens. Apresentaremos agora como esses
parˆametros podem ser utilizados na especifica¸ao de uma amera da biblioteca OpenGL.
Mais precisamente, mostraremos as chamadas de fun¸oes da biblioteca OpenGL ne-
cess´arias para definir os parˆametros de uma amera K [R|t], possivelmente estimados
por um processo de calibra¸ao. Detalhes sobre as fun¸oes dessa biblioteca podem ser
encontrados em [20].
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 30
2.6.1 Especifica¸ao dos parˆametros extr´ınsecos
Os parˆametros extr´ınsecos de uma amera K [R|t] podem ser especificados no
OpenGL realizando-se as se guintes chamadas de fun¸oes
1. gluLookAt(0, 0, 0, 0, 0, 1, 0, 1, 0), para definir um sistema de coordena-
das canˆonico;
2. glLoadMatrixd(m), onde o argumento m ´e um vetor que representa a matriz
R t
0
T
1
.
2.6.2 Especifica¸ao dos parˆametros intr´ınsecos
A especifica¸ao dos parˆametros intr´ınsecos ´e menos imediata. Observamos inici-
almente que as ameras definidas pelo OpenGL ao apresentam cisalhamento na matriz
de sensores, ou seja, se desejarmos especificar os parˆametros intr´ınsecos de uma amera
K[R|t] ´e necess´ario que a matriz K seja da forma
K =
f
1
0 u
0
0 f
2
v
0
0 0 1
.
Nesse caso, pode-se utilizar a fun¸ao glFrustum, c ujo prot´otipo ´e definido por
void glFrustum( GLdouble left, GLdouble right, GLdouble bottom,
GLdouble top, GLdouble near, GLdouble far );
Os argumentos da fun¸ao glFrustum definem no referencial da amera as coorde-
nadas em
3
dos v´ertices esquerdo inferior e direito superior da tela virtual, como sendo
(left, bottom, near)
T
e (right, top, near)
T
respectivamente. Os parˆametros near e far
definem a distˆancia do centro de proje¸ao aos plano anterior e posterior. Al´em disso, o
plano anterior ´e coincidente como o plano de proje¸ao, ou seja, a distˆancia focal ´e near.
Precisamos determinar os argumentos que devem ser passados para glFrustum de
forma que o volume de vis˜ao seja compat´ıvel com os parˆametros intr´ınsecos da matriz K.
CAP
´
ITULO 2. C
ˆ
AMERA VIRTUAL 31
Observando as equa¸oes (2.11) e (2.12) temos que o n´umero de sensores por uni-
dade de comprimento na horizontal e vertical, medidos sobre a tela virtual, ao definidos
respectivamente por
m
x
=
f
1
near
, (2.14)
m
y
=
f
2
near
. (2.15)
As coordenadas do ponto principal, medidas no sistema de coordenadas da ima-
gem, ao (u
0
, v
0
)
T
. Como as coordenadas do ponto principal sobre a tela virtual ao
(0, 0, near)
T
, conclui-se que deve-se chamar a fun¸ao Frustum passando os seguintes ar-
gumentos
left =
u
0
m
x
, right =
w u
0
m
x
, bottom =
v
0
m
y
e top =
h v
0
m
y
,
onde w e h correspondem respectivamente `a resolu¸ao horizontal e vertical da im agem
captada pela amera.
Cap´ıtulo 3
Parˆametros intr´ınsecos
O objetivo deste cap´ıtulo ´e des crever um etodo para encontrar os parˆametros
intr´ınsecos de uma amera. O etodo descrito pode ser encontrado em [17]. Ele utiliza
um objeto, chamado de objeto calibrador. Tal objeto possui um conjunto de marca¸oes
cujas posi¸oes, definidas em rela¸ao a um referencial associado a ele, ao conhecidas.
Nos experimentos foi utilizado o objeto da Figura 3.1.
O m´etodo ´e composto por duas etapas:
1. Calibra¸ao em rela¸ao ao objeto calibrador.
2. Isolamento dos parˆametros da amera.
A calibra¸ao em rela¸ao ao objeto calibrador corresponde `a determina¸ao da
transforma¸ao projetiva P : P
3
P
2
que define a amera em rela¸ao ao referencial
associado ao objeto c alibrador.
O isolamento dos parˆametros da amera corresponde `a determina¸ao das matri-
zes, 3 × 3, K e R, e do vetor t
3
, tais que P = K [R|t]. Ficando ent˜ao determinada
a matriz K, que ´e a resposta ao problema.
Essa estrat´egia ´e interessante pois ao exige nenhuma restri¸ao sobre o posiciona-
mento da amera em rela¸ao ao referencial associado ao objeto calibrador. Analogamente
tem-se que escolhas diferentes de referenciais sobre o objeto calibrador ao alteram a
matriz K.
32
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 33
Figura 3.1: Objeto com marca¸oes e m p osi¸oes conhecidas, usado para calibra¸ao
No final do cap´ıtulo, ´e apresentado um etodo para determinar os parˆametros
intr´ınsecos impondo a restri¸ao de ao cisalhamento da matriz de sensores. Saber im-
por essa restri¸ao ´e importante, pois ela ´e exigida pela maioria dos sistemas gr´aficos
comerciais, como ilustrado na se¸ao 2.6.2, no caso do OpenGL.
3.1 Calibra¸ao em rela¸ao ao objeto calibrador
O problema de calibra¸ao em rela¸ao ao objeto calibrador pode ser definido por
Problema 3.1. Sendo conhecidas as proje¸oes x
1
, ..., x
n
, com x
i
P
2
, correspondentes
aos pontos X
1
, ..., X
n
, com X
i
P
3
, definidas no referencial do objeto calibrador.
Determinar a transforma¸ao P : P
3
P
2
tal que P X
i
= x
i
, i {1, 2, ..., n}.
3.1.1 Calibra¸ao usando seis correspondˆencias
Considerando os elementos da matriz associada a P como vari´aveis, temos que
cada senten¸ca da forma P X
i
= x
i
define duas equa¸oes lineares com 12 vari´aveis. Con-
seq¨uentemente, se forem estabelecidas 6 correspondˆencias entre pontos e proje¸oes, tem-
se que o sistema possui solu¸ao caso ao existam linhas linearmente dependentes.
Como as coordenadas de cada x
i
ao normalmente corrompidas por ru´ıdo, por
serem obtidas por uma amera, ´e introduzido erro na solu¸ao do sistema, tornando
interessante o uso de um n´umero maior de correspondˆencias em uma formula¸ao super-
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 34
determinada. Al´em disso, o sistema obtido com 6 correspondˆencias embora possa parecer
bem determinado, ao o ´e. Trata-se de um siste ma super-determinado, pois P ´e definido
a menos de uma multiplica¸ao por um escalar. Mostraremos a seguir como esse problema
pode ser resolvido utilizando-se uma quantidade arbitr´aria de correspondˆencias.
3.1.2 Encontrar x S
n
que minimiza Ax
Seja A uma matriz m × n. Uma maneira de reformular um sistemas da forma
Ax = 0, com x P
n
, no caso em que o n´umero de equa¸oes ´e maior do que n 1,
´e considerar como solu¸ao a resposta ao problema de encontrar x S
n
que minimiza
Ax. Denotaremos esse problema por min
x=1
Ax. Sua solu¸ao pode ser facilmente de-
terminada pela proposi¸ao abaixo.
Proposi¸ao 3.1. Seja Udiag(λ
1
, λ
2
, ..., λ
n
)V
T
, com λ
1
λ
2
... λ
n
0, a de-
composi¸ao SVD de uma matriz A , m × n , em que m n. Se v
n
´e o vetor
correspondente a n-´esima coluna de V , tem-se que v ´e o vetor que minimiza a fun¸ao
x → Ax, definida sobre os pontos de
n
que satisfazem x = 1.
Demonstra¸ao
min
x=1
Ax = min
x=1
USV
T
x, (3.1)
onde S = diag(λ
1
, λ
2
, ..., λ
n
).
Como U ´e uma isometria temos que
min
x=1
USV
T
x = min
x=1
SV
T
x. (3.2)
Definindo y = V
T
x obtemos
min
x=1
SV
T
x = min
y=1
Sy. (3.3)
Usando a defini¸ao de S temos que
min
y=1
Sy = min
y
2
1
+...+y
2
n
=1
λ
2
1
y
2
1
+ . . . λ
2
n
y
2
n
. (3.4)
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 35
Como λ
1
λ
2
... λ
n
0 conclu´ımos que a solu¸ao para e ss e problema de
otimiza¸ao ´e o vetor y = (0, . . . , 0, 1)
T
. Logo o vetor v que resolve min
x=1
Ax ´e dado por
V (0, . . . , 0, 1)
T
, que corresponde a n-´esima coluna de V .
3.1.3 Calibra¸ao usando mais de seis correspondˆencias
Para adequar o resultado anterior ao nosso problema, basta verificar que encon-
trar P que satisfaz
i {1, . . . , n}, P X
i
= (u
i
, v
i
, 1)
T
(3.5)
´e equivalente a resolver o sistema AP = 0, onde
A =
X
T
1
0
T
u
1
X
T
1
0
T
X
T
1
v
1
X
T
1
X
T
2
0
T
u
2
X
T
2
0
T
X
T
2
v
2
X
T
2
.
.
.
.
.
.
.
.
.
X
T
n
0
T
u
n
X
T
n
0
T
X
T
n
v
n
X
T
n
, (3.6)
e P = (P
11
, P
12
, ..., P
33
, P
34
)
T
´e um vetor cujos elementos ao os 12 elementos da matriz
P , a serem determinados.
Podemos utilizar a proposi¸ao 3.1 para resolver o problema min
P=1
AP, que
fornece uma estimativa para os elementos da matriz P .
3.2 Isolamento dos parˆam etr os da amera
Consideremos que estamos de posse de uma matriz P , 3 × 4, que representa
uma transforma¸ao projetiva. Mostraremos agora um processo para fatorar P na forma
K [R|t]. Esse processo ´e importante por dois motivos. Por um lado funciona como uma
demonstra¸ao, por constru¸ao, que transforma¸oes projetivas definidas em P
3
P
2
ao sempre modelos para ameras projetivas gen´ericas. Por outro lado, serve como um
algoritmo para determinar os parˆametros intr´ınsecos e extr´ınsecos de uma amera.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 36
Seja P = λK [R|t], onde λ ´e uma constante que pode assumir qualquer valor em
{0}. Assumindo as seguintes defini¸oes:
P =
a
T
1
b
1
a
T
2
b
2
a
T
3
b
3
, K =
f
1
s u
0
0 f
2
v
0
0 0 1
e [R|t] =
R
T
1
t
1
R
T
2
t
2
R
T
3
t
3
.
temos que
a
T
1
b
1
a
T
2
b
2
a
T
3
b
3
= λ
f
1
R
T
1
+ sR
T
2
+ u
0
R
T
3
f
1
t
1
+ st
2
+ u
0
t
3
f
2
R
T
2
+ v
0
R
T
3
f
2
t
2
+ v
0
t
3
R
T
3
t
3
.
Mostraremos agora como determinar todos os parˆametros intr´ınsecos e extr´ınsecos
associados a P .
Determinando λ
Podemos determinar |λ| usando que |λ| = |λ|R
T
3
= a
T
3
. Assumiremos por
enquanto que λ > 0, no final iremos concluir se essa escolha foi ou ao apropriada. Ou
seja, vamos assumir que
λ = a
T
3
. (3.7)
Determinando R
3
e t
3
Definindo P
=
1
λ
P obtemos
P
= K [R|t] =
a
T
1
b
1
a
T
2
b
2
a
T
3
b
3
=
f
1
R
T
1
+ sR
T
2
+ u
0
R
T
3
f
1
t
1
+ st
2
+ u
0
t
3
f
2
R
T
2
+ v
0
R
T
3
f
2
t
2
+ v
0
t
3
R
T
3
t
3
.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 37
Como conseq¨uˆencia temos que
R
3
= a
3
, (3.8)
e
t
3
= b
3
. (3.9)
Determinando v
0
Para determinar v
0
basta observar que
f
2
R
T
2
+ v
0
R
T
3
= a
T
2
f
2
R
T
2
R
3
+ v
0
R
T
3
R
3
= a
T
2
R
3
Como R
2
R
3
e R
T
3
R
3
= 1 temos que
v
0
= a
T
2
R
3
. (3.10)
Determinando u
0
Para determinar u
0
basta observar que
f
1
R
T
1
+ sR
T
2
+ u
0
R
T
3
= a
T
1
f
1
R
T
1
R
3
+ sR
T
2
R
3
+ u
0
R
T
3
R
3
= a
T
1
R
3
.
Como R
1
R
3
, R
2
R
3
e R
T
3
R
3
= 1 temos que
u
0
= a
T
1
R
3
. (3.11)
Determinando f
2
, R
2
e t
2
Temos que
f
2
R
T
2
+ v
0
R
T
3
= a
T
2
f
2
R
T
2
= a
T
2
v
0
R
T
3
f
2
= a
T
2
v
0
R
T
3
Podemos escolher o sinal de f
2
. Optamos por escolher f
2
positivo, ou seja
f
2
= a
T
2
v
0
R
T
3
. (3.12)
Para determinarmos R
2
e t
2
utilizamos que
R
T
2
=
1
f
2
a
T
2
v
0
R
T
3
(3.13)
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 38
e
t
2
=
1
f
2
b
2
v
0
t
3
. (3.14)
Determinando R
1
R
1
pode ser obtido diretamente a partir de R
2
e R
3
considerando-se que R ´e uma
rota¸ao. Temos ent˜ao que
R
1
= R
2
× R
3
. (3.15)
Determinando f
1
, s e t
1
Temos que
f
1
R
T
1
+ sR
T
2
+ u
0
R
T
3
= a
T
1
f
1
R
T
1
R
2
+ sR
T
2
R
2
+ u
0
R
T
3
R
2
= a
T
1
R
2
(3.16)
Como R
1
R
2
, R
2
R
3
e R
T
2
R
2
= 1 temos que
s = a
T
1
R
2
. (3.17)
Com um racioc´ınio an´alogo podemos concluir que
f
1
= a
T
1
R
1
. (3.18)
O valor de t
1
pode ser obtido observando-se que
t
1
=
1
f
1
b
1
u
0
t
3
st
2
. (3.19)
Corrigindo o sinal de λ
Estamos interessados em definir um sistema de coordenadas associado `a amera
que satisfa¸ca ˆı × ˆ =
ˆ
k, onde
ˆ
k especifica a dire¸ao e o se ntido de visada da amera. Por
outro lado, queremos que o sistema de co ordenadas da image m seja definido com origem
no canto esquerdo inferior, como ilustrado na figura 3.2. Para que essas defini¸oes sejam
consistentes ´e preciso que tenhamos f
2
> 0 e f
1
< 0
1
1
Aqui estamos considerando que a orienta¸ao dos sistemas de coordenadas da amera e da cena
ao opostas. Essa considera¸ao ao foi feita no cap´ıtulo anterior, isso significa que, se f
1
for estimado
como descrito nesta se¸ao, deve-se trocar o seu sinal na equa¸ao (2.14) para que o OpenGL funcione
apropriadamente.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 39
Figura 3.2: (a) exibe a imagem de um cubo correspondente `a descri¸ao da cena apresen-
tada em (b). O sistema de coordenadas da imagem (a) ´e definido com uma orienta¸ao
diferente do sistema da amera apresentado em (b). Com essa defini¸ao o sinal de f
1
precisa ser negativo.
O procedimento de alculo de parˆametros intr´ınsecos descrito anteriormente en-
contra uma solu¸ao que satisfaz f
2
> 0, a o sinal de f
1
pode ser tanto positivo como
negativo. Se f
1
for negativo podemos interpretar esse fato como uma escolha inapro-
priada para o sinal de λ em (3.7). Essa mudan¸ca do sinal de λ corresponde `a seguinte
transforma¸ao sobre a resposta encontrada:
f
1
s u
0
0 f
2
v
0
0 0 1
R
T
1
t
1
R
T
2
t
2
R
T
3
t
3
→
f
1
s u
0
0 f
2
v
0
0 0 1
R
T
1
t
1
R
T
2
t
2
R
T
3
t
3
.
3.3 amera para s´ıntese de imagens
Os parˆametros intr´ınsecos obtidos pela fatora¸ao de uma amera projetiva gen´erica
apresentam um grau de liberdade que ao existe nos modelos de amera empregados em
s´ıntese de imagens. Se a matriz dos parˆametros intr´ınsecos de uma ame ra for
K =
f
1
s u
0
0 f
2
v
0
0 0 1
(3.20)
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 40
temos que ela o pode ser enquadradas nos modelos tradicionais de s´ıntese de imagens no
caso em que s = 0. Como estimamos a amera projetiva gen´erica a partir de medi¸oes
feitas por uma amera que foi manufaturada com o objetivo de apresentar a propriedade
s = 0, temos que a matriz K obtida ser´a definida com um valor pequeno para |s|. Sendo
assim, o efeito da transforma¸ao K
obtida pela substitui¸ao do valor de s por zero em
K, ´e semelhante ao da transforma¸ao K, sendo que a primeira pode ser adaptada ao
prop´osito de s´ıntese de imagens. ao utilizaremos a matriz K
diretamente, mostraremos
como utiliza-la como ponto de partida para um algoritmo de otimiza¸ao que encontrar´a
a solu¸ao que procuramos.
3.4 Calibra¸ao por otimiza¸ao restrita
Consideremos o seguinte problema
Problema 3.2. Seja o espco das ameras projetivas tais que suas matrizes de
parˆametros intr´ınsecos satisfazem a restri¸ao s = 0, seguindo a nota¸ao da equa¸ao
(3.20). Conhecidas as proje¸oes x
1
, ..., x
n
, com x
i
P
2
, correspondentes aos pontos
X
1
, ..., X
n
, com X
i
P
3
, definidas no referencial do objeto calibrador. Determinar a
transforma¸ao P = K [R|t] , tal que
n
i=0
d (P X
i
, x
i
)
2
´e m´ınimo.
Essa formula¸ao para o problema de calibra¸ao de uma amera apresenta dois
aspectos importantes
1. A fun¸ao objetivo possui um significado geom´etrico baseado no erro de reproje¸ao
dos pontos X
1
, ..., X
n
, que ´e mais natural do que o erro alg´ebrico definido na se¸ao
3.1.3.
2. A solu¸ao encontrada ´e ´otima no espa¸co Ω, ou s eja, a matriz K ´e a melhor escolha de
parˆametros intr´ınsecos que pode ser feita para explicar as proje¸oes de X
1
, ..., X
n
,
mantendo a compatibilidade com o modelo empregado em s´ıntese de imagens.
Descreveremos a seguir os etodos de otimiza¸ao Gauss-Newton e Levenberg-
Marquardt, que podem ser utilizados para resolver esse problema. Na pr´atica o al-
goritmo empregado ´e o Levenberg-Marquardt por apresentar uma melhor condi¸ao de
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 41
convergˆencia. Para utiliza-los ´e necess´ario que seja conhecido um elemento de pr´oximo
da solu¸ao ´otima. Uma amera com essa propriedade pode ser encontrada da seguinte
maneira:
1. Estima-se uma ame ra projetiva gen´erica P , como descrito na se ¸ao 3.1.3;
2. Fatora-se P na forma K [R|t], como descrito na se¸ao 3.2;
3. Faz-se a substitui¸ao do parˆametro intr´ınseco s da matriz K por zero, como descrito
na se¸ao 3.3, obtendo-se assim a amera K
[R|t] Ω.
Descreveremos primeiro o m´etodo Gauss-Newton pois Levenberg-Marquardt ´e
uma modifica¸ao do m es mo.
3.4.1 M´etodo Gauss-Newton
O etodo Gauss-Newton tem por objetivo encontrar um m´ınimo ˆx
n
para
uma fun¸ao g :
n
definida por g(x) =
1
2
f(x) x
0
2
, onde x
0
m
, e f :
n
m
´e uma fun¸ao definida de forma que pr´oximo de ˆx ela ´e de classe C
2
. Tem-se como
hip´otese que ´e conhecido um ponto κ
1
n
, que ´e uma estimativa para o m´ınimo, ou
seja, κ
1
ˆx ´e pequeno.
Podemos definir um polinˆomio de Taylor associado a g no ponto κ por
g (κ
1
+ h) g (κ
1
) + g
(κ
1
) · h +
1
2
g

(κ
1
) · h · h (3.21)
Como g ´e diferenci´avel, temos que g assume um m´ınimo em κ
1
+ h se e somente
se g
(κ
1
+ h) = 0. Utilizando uma aproxima¸ao de primeira ordem para g obtemos
g
(κ
1
+ h) = g

(κ
1
) ·h + g
(κ
1
). Logo para encontrar o vetor h que minimiza g (κ
1
+ h)
basta resolver o sistema
H
g
(κ
1
) h = −∇g (κ
1
) . (3.22)
Usando o fato que g(x) =
1
2
f(x) x
0
2
, temos que g
(x) · u = f
(x) · u, f(x),
e conseq¨uentemente
g

(x) · u · v = f

(x) · u · v, f(x) + f
(x) · u, f
(x) · v. (3.23)
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 42
Utilizando uma aproxima¸ao de primeira ordem para f, obtemos
g

(x) · u · v = f
(x) · u, f
(x) · v. (3.24)
Podemos reescrever matricialmente as rela¸oes para a primeira e segunda deri-
vadas obtendo g (κ
1
) = J
f
(κ
1
) f (κ
1
), e H
g
(κ
1
) = J
T
f
(κ
1
) J
f
(κ
1
). Substituindo em
(3.22) temos que h pode s er e stimado pela resolu¸ao do sistema
J
T
f
(κ
1
) J
f
(κ
1
) h = J
f
(κ
1
) f (κ
1
) . (3.25)
Devido as aproxima¸oes que est˜ao sendo feitas, tem-se em geral que κ
1
+ h ao
´e um m´ınimo de g. O que se faz ´e definir κ
2
= κ
1
+ h como uma nova estimativa
para o m´ınimo, e re pete-se o processo at´e que se obtenha um κ
i
tal que ∇g (κ
i
) seja
considerado suficientemente pequeno.
A convergˆencia, ou ao, da seq¨uˆencia (κ
n
) para ˆx vai depender da qualidade da
estimativa inicial κ
1
. Entretanto, quando essa convergˆencia ocorre, pode-se mostrar,
como pode ser visto em [5], que ela ´e de ordem dois, ou seja, c tal que κ
i+1
ˆx
cκ
i
ˆx
2
.
3.4.2 Algoritmo Levenber g-Mar quardt
O algoritmo Levenberg-Marquardt ´e uma adapta¸ao do etodo Gauss-Newton
utilizada quando a estimativa inicial para o m´ınimo ao ´e suficientemente boa para
garantir sua convergˆencia. A id´eia do algoritmo ´e fazer uma transi¸ao gradativa de
uma otimiza¸ao por descida pelo gradiente para o m´etodo Gauss-Newton, conforme a
estimativa do ponto ´otimo se torna cada vez melhor. No algoritmo Levenberg-Marquadt
tem-se que κ
i+1
= κ
i
+ h, onde h ´e solu¸ao do sistema
J
T
f
(κ
i
) J
f
(κ
i
) + λI
h = J
f
(κ
i
) f (κ
i
) . (3.26)
Tem-se que λ ´e um valor que pode ser modificado a cada itera¸ao. λ ´e
inicializado com um certo valor, e a cada itera¸ao λ pode ser multiplicado ou dividido
por um certo fator, com o objetivo de garantir que o vetor h obtido produza uma redu¸ao
no valor fun¸ao objetivo.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 43
O aumento no valor de λ, faz com que o termo λI aumente sua importˆancia,
quando comparado com J
T
f
(κ
i
) J
f
(κ
i
). Isso faz com que a solu¸ao do sistema se apro-
xime de λ
1
J
f
(κ
i
) f (κ
i
) = λ
1
g (κ
i
), fazendo com que o algoritmo passe a ter um
comportamento semelhante a de um algoritmo de descida pelo gradiente.
Quando κ
i
se torna mais pr´oximo da solu¸ao ´otima, o valor de λ vai se reduzindo,
fazendo com que o algoritmo passe a ter um comportamento semelhante ao etodo
Gauss-Newton, o que acelera a convergˆencia.
3.4.3 Adapta¸ao dos algoritmos ao problema
Podemos empregar o algoritmo Levenberg-Marquardt na solu¸ao do problema
3.2. Para isso, usando a nota¸ao estabelecida nesse problema, vamos definir uma
aplica¸ao ψ : U
10
2
m
como
ψ
i
(z) = P (z) X
i
, (3.27)
para i {1, ··· , m}, onde U e P : U ao definidos de forma que P seja uma
aplica¸ao sobrejetora no subconjunto de das ameras que aplicadas a X
1
, ··· , X
m
geram proje¸oes que ao pontos afins de P
2
.
Para resolver o problema 3.2 basta utilizar o algoritmo Levenberg-Marquardt
para encontrar o m´ınimo da fun¸ao g : U definida por
g(z) =
1
2
ψ(z) (x
1
, ··· , x
m
)
T
2
. (3.28)
Destacamos que quando consideramos a imagem de cada ψ
i
como um vetor de
2
,
estamos colocando embutida a transforma¸ao definida por (x, y, z)
T
→
x
z
,
y
z
T
, que faz
a convers˜ao de coordenadas de pontos afins de P
2
para coordenadas do
2
, e estamos
fazendo o mesmo com as coordenadas homogˆeneas de x
1
, ··· , x
m
.
Apresentaremos na se¸ao 3.4.5 uma defini¸ao de P que faz com que a aplica¸ao
ψ seja de classe C
2
para quase todos os pontos de U. Possibilitando o emprego do
algoritmo Levenberg-Marquardt. Antes mostraremos como obter uma parametriza¸ao
para uma rota¸ao via especifica¸ao de um eixo e de um ˆangulo de rota¸ao.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 44
3.4.4 Parametriza¸ao de ro ta¸oes
A rota¸ao de ˆangulo θ , ao redor de um eixo especificado pelo vetor ω =
(ω
1
, ω
2
, ω
3
)
T
3
, com ω = 1, ´e dada pela transforma¸ao linear R :
3
3
cuja
representa¸ao matricial ´e [2]:
R =
ω
2
1
+ C
1 ω
2
1
ω
1
ω
2
(1 C) ω
3
S ω
1
ω
3
(1 C) + ω
2
S
ω
1
ω
2
(1 C) + ω
3
S ω
2
2
+ C
1 ω
2
2
ω
2
ω
3
(1 C) ω
1
S
ω
1
ω
3
(1 C) ω
2
S ω
2
ω
3
(1 C) + ω
1
S ω
3
3
+ C
1 ω
2
3
, (3.29)
onde C = cosθ, e S = senθ.
Reciprocamente, pode-s e obter o eixo de rota¸ao ω e o ˆangulo θ a partir da
transforma¸ao R. Para isso, basta observar que o sub-espa¸co gerado por esse eixo ´e
invariante por R, ou seja, ω ´e um auto-vetor de R. Al´em disso, a restri¸ao de R ao
subespa¸co gerado por ω ´e a transforma¸ao identidade, logo o auto-valor associado a ω
´e unit´ario. Ou seja, para determinar ω basta encontrar uma solu¸ao ao trivial para a
equa¸ao (R I) ω = 0, que pode ser obtida pela proposi¸ao 3.1.
O ˆangulo θ, pode ser determinado utilizando-se que
cosθ =
1
2
(tr(R) 1) , (3.30)
senθ =
1
2
ω, τ, (3.31)
onde τ = (R
32
R
23
, R
13
R
31
, R
21
R
12
)
T
.
Para se obter uma representa¸ao expl´ıcita para os trˆes graus de liberdade asso-
ciados a uma rota¸ao, basta utilizar o vetor ω
3
definido por ω
= θω.
A obten¸ao de ω e θ a partir de ω
´e feita da seguinte maneira
1. Caso ω
= 0, ent˜ao ω =
ω
ω
e θ = ω
;
2. Caso ω
= 0, ent˜ao θ = 0 e ω pode ser qualquer vertor unit´ario.
3.4.5 Parametriza¸ao do espa¸co de ameras
Utilizando a parametriza¸ao das matrizes de rota¸ao apresentada acima podemos
definir a aplica¸ao P : U
10
Ω, utilizada para definir ψ na equa¸ao (3.27),
satisfazendo as propriedades exigidas na se¸ao 3.4.3.
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 45
P (f
1
, f
2
, u
0
, v
0
, t
1
, t
2
, t
3
, ω
1
, ω
2
, ω
3
) =
f
1
R
T
1
(ω) + u
0
R
T
3
(ω) f
1
t
1
+ u
0
t
3
f
2
R
T
2
(ω) + v
0
R
T
3
(ω) f
2
t
2
+ v
0
t
3
R
T
3
(ω) t
3
, (3.32)
onde
R
T
1
(ω)
R
T
2
(ω)
R
T
3
(ω)
´e a matriz que, para ω = 0, representa uma rota¸ao no sentido anti-
hor´ario de ω radianos ao redor do eixo ω = (ω
1
, ω
2
, ω
3
)
T
. E para ω = 0 ´e a matriz
identidade.
Como z U, P (z) X
i
´e um ponto afim de P
2
, temos que ψ
i
(z) fica sendo
definida por
f
1
R
T
1
(ω) X
i
+ u
0
R
T
3
(ω) X
i
+ f
1
t
1
+ u
0
t
3
R
T
3
(ω) X
i
+ t
3
,
f
2
R
T
2
(ω) X
i
+ v
0
R
T
3
(ω) X
i
+ f
2
t
2
+ v
0
t
3
R
T
3
(ω) X
i
+ t
3
T
Temos ent˜ao que, ψ ´e de classe C
para os pontos de U que satisfazem ω =
0, pois as coordenadas de cada ψ
i
ao fra¸oes em que o numerador e o denominador
ao formados por polinˆomios somados a produtos de polinˆomios por fatores da forma
1
ω
2
, cosω,
senω
ω
ou (1 cosω).
3.4.6 Pontos problem´aticos da parametriza¸ao
O algoritmo Levenberg-Marquardt avalia P em uma seq¨encia de elementos do
espa¸co euclidiano
10
. Em princ´ıpio, ao podemos garantir que ele ao tentar´a avaliar
P fora de seu dom´ınio. Al´em disso, para que ele possa ser aplicado no nosso caso,
precisamos garantir que ψ seja de classe C
2
nas proximidades da regi˜ao de convergˆencia
da seq¨uˆencia.
Na se¸ao anterior mostramos que ψ ´e de classe C
para os pontos de U W ,
onde W ao os pontos de U correspondentes a ameras cuja orienta¸ao ´e descrita por
um vetor ω = (0, 0, 0)
T
. Veremos agora porque ao precisamos nos preocupar com o
fato de ψ ao ser definida fora de U, e de ao ser de classe C
2
em W .
CAP
´
ITULO 3. PAR
ˆ
AMETROS INTR
´
INSECOS 46
Pontos fora de U
As ameras que ao ao parametrizadas por pontos de U ao aquelas que satis-
fazem R
T
3
(ω) X
i
+ t
3
= 0, para algum i {1, ··· , m}. Essas ao as configura¸oes que
fazem com que algum dos X
i
ao possuam proje¸ao, que ocorre quando a coordenada z
de X
i
´e nula no referencial da amera. Com efeito, basta lembrar que t
3
= R
T
3
c, onde
c ´e a posi¸ao do centro de proje¸ao, e observar que
R
T
3
(ω) X
i
+ t
3
= 0 R
T
3
(ω) (X
i
c) = 0 [R (ω) (X
i
c)]
3
= 0.
Essa regi˜ao de
10
em que ψ ao ´e definida, e nem suas derivadas, ao gera
problemas durante a execu¸ao do algoritmo Levenberg-Marquardt, pois a fun¸ao objetivo
assume valores muito elevados nos pontos de U que pertencem a pequenas vizinhan¸cas
dessas configura¸oes, pois o erro de re proje¸ao associado a algum dos X
i
´e muito grande.
Conseq¨uentemente as seq¨uˆencias de configura¸oes geradas pelas itera¸oes do algoritmo
ao devem se aproximar dessa regi˜ao.
Pontos pertencentes a W
Em rela¸ao ao conjunto W temos o seguinte:
1. W tem medida nula em
10
, logo ´e improavel que a seq¨uˆencia gerada pelo algo-
ritmo Levenberg-Marquardt contenha algum elemento desse conjunto;
2. Pode-se escolher o sistema de coordenadas do objeto calibrador de forma que a
amera esteja afastado de uma configura¸ao da forma K[I|t], como nos exemplos da
Figura 7.2, do Cap´ıtulo 7. Dessa forma, a estimativa inicial fornecida ao Levenberg-
Marquardt deve estar muito afastada de W , e a seq¨encia provavelmente deve
convergir sem se aproximar do conjunto W ;
3. Para representar ameras da forma K[I|t], ao ´e necess´ario utilizar um elemento
de W . Pode-se escolher outro elemento de U cuja rota¸ao seja da forma 2kπ, com
k .
Cap´ıtulo 4
Calibra¸c˜ao de pares de cˆameras
O objetivo desse cap´ıtulo ´e descrever um algoritmo que determina o posiciona-
mento relativo entre as ameras que foram utilizadas na capta¸ao de duas imagens. Mais
precisamente, estamos interessados em resolver o seguinte problema
Problema 4.1. Dado um conjunto {(x
1
, ˆx
1
) , (x
2
, ˆx
2
) , ..., (x
n
, ˆx
n
)}, com (x
i
, ˆx
i
) P
2
×
P
2
, que correspondem `as proje¸oes em um par de imagens I
1
e I
2
, de um conjunto de
pontos da cena {X
1
, X
2
, ..., X
n
}, com X
i
P
3
. Determinar o posicionamento relativo
entre as ameras que captaram I
1
e I
2
, supondo-se que os parˆametros intr´ınsecos de
ambas ao conhecidos.
Os elementos do par (x
i
, ˆx
i
) ao chamados de pontos hom´ologos associados a X
i
.
4.1 Representa¸ao do posicionamento relativo
Para representar o posicionamento relativo entre duas ameras assumiremos, sem
perda de generalidade, que uma das ameras ´e K
1
[I|0], que corresponde a uma amera
posicionada na origem com dire¸ao de visada na dire¸ao do eixo-z. Dessa maneira os
parˆametros extr´ınsecos da outra amera, K
2
[R|t], especificam o posicionamento relativo
entre elas.
47
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 48
Um fato importante ´e que as proje¸oes de um c onjunto de pontos da cena
{X
1
, X
2
, ··· , X
n
}, com X
i
3
, relativas `as ameras K
1
[I|0] e K
2
[R|t] ao iguais `as
proje¸oe s do conjunto {λX
1
, λX
2
, ··· , λX
n
} relativas `as ameras K
1
[I|0] e K
2
[R|λt],
com λ
+
. Com efeito, basta observar as seguintes igualdades:
K
1
[I|0]
λX
T
i
, 1
T
= K
1
(λX
i
) = K
1
(X
i
) = K
1
[I|0]
X
T
i
, 1
T
,
K
2
[R|λt]
λX
T
i
, 1
T
= K
2
(R (λX
i
) + λt) = K
2
λ (RX
i
+ t) =
= K
2
(RX
i
+ t) = K
2
[R|t]
X
T
i
, 1
T
.
Isso mostra que o problema 4.1 ´e definido com uma ambig¨uidade de escala, pois
o valor de t ao pode ser determinado.
4.2 Movimento r´ıgido
A proposi¸ao abaixo, apresentada em [14], estabelece uma restri¸ao para as coor-
denadas definidas em dois referenciais do
3
, que est˜ao relacionados por um movimento
r´ıgido.
Proposi¸ao 4.1. Seja X,
ˆ
X
3
definidos de forma que
ˆ
X = RX + t, onde R ´e
uma matriz de rota¸ao, e t
3
. Se [t]
×
:
3
3
´e o operador linear definido por
[t]
×
(x) = t × x, ent˜ao vale a rela¸ao
ˆ
X
T
[t]
×
R
X = 0.
Demonstra¸ao
Usando o fato do vetor
ˆ
X ×t ser perp endicular tanto a
ˆ
X quanto a t, temos que
ˆ
X ×t
·
ˆ
X = 0 e
ˆ
X ×t
· t = 0.
Como conseq¨uˆencia vale
ˆ
X
T
[t]
×
R
X =
ˆ
X ·(t × RX) =
ˆ
X ×t
·RX =
ˆ
X ×t
·(RX + t) =
ˆ
X ×t
·
ˆ
X = 0.
4.3 Outro modelo de proje¸ao
O efeito obtido pela amera projetiva, definida pela transforma¸ao [I|0], ´e equi-
valente ao efeito da transforma¸ao T :
3
P
2
, que aplica cada ponto x
3
em um
ponto de P
2
, cujas coordenadas homogˆeneas ao λx, onde λ {0}.
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 49
Em ambos os casos o efeito ´e o mesmo da proje¸ao perspectiva T :
3
2
definida por (x, y, z) →
x
z
,
y
z
.
4.4 Geometria Epipolar
Geometria Epipolar ´e o e studo das rela¸oes geom´etricas existentes entre as proje-
¸oes de um conjunto de pontos sobre duas imagens obtidas por ameras projetivas.
Ser´a feito a seguir um desenvolvimento alg´ebrico da Geometria Epipolar. Inici-
almente ser´a considerado o caso em que as ameras ao da forma [I|0] e [R|t], ou seja,
a matriz dos parˆametros intr´ınsecos de ambas as ameras ´e a matriz identidade. Nesse
caso as rela¸oes de epipolaridade ser˜ao caracterizadas pela Matriz Essencial.
Posteriormente ser´a tratado o caso geral, em que as ameras ao da forma K
1
[I|0]
e K
2
[R|t]. Nesse caso as rela¸oes de epipolaridade ser˜ao caracterizadas pela Matriz
Fundamental.
4.4.1 Matriz essencial
Definindo E = [t]
×
R, temos pela prop os i¸ao 4.1 que vale a express˜ao
ˆ
X
T
EX = 0,
que relaciona as coordenadas, em
3
, de um ponto da cena nos referenciais associados as
ameras [I|0] e [R|t]. Para se obter uma rela¸ao entre as coordenadas das proje¸oes desse
ponto nas imagens captadas por essas ameras basta observar que para todo λ
1
, λ
2
{0} vale
ˆ
X
T
EX = 0
λ
1
ˆ
X
T
E (λ
2
X) = 0. (4.1)
Temos ent˜ao, pelo que foi apresentado na se¸ao 4.3, que se x P
2
e ˆx P
2
ao
as coordenadas homogˆeneas das proje¸oes de um ponto da cena obtidas pelas ameras
[I|0] e [R|t] respectivamente, enao vale a rela¸ao ˆx
T
Ex = 0, onde nesse caso tem-se que
a matriz E, chamada de matriz essencial, fica definida a menos de um produto por um
escalar.
4.4.2 Matriz fundamental
Consideremos agora que x P
2
´e a proje¸ao de um p onto X P
3
obtida
pela amera K [R | t]. A proje¸ao do mesmo ponto X obtida pela amera [R | t] ´e dada
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 50
por K
1
x. Com es se resultado podemos generalizar a rela¸ao estabelecida pela matriz
essencial para o caso em que as ameras ao possuem a matriz dos parˆametros intr´ınsecos
iguais a I. Mais precisamente, dadas duas ameras K
1
[I | 0] e K
2
[R | t], temos que se as
proje¸oe s de um ponto X relativas a essas ameras forem respectivamente x e ˆx, ent˜ao
vale a rela¸ao
K
1
2
ˆx
T
[t]
×
R
K
1
1
x
= 0. (4.2)
Essa rela¸ao pode ser rees crita com o
ˆx
T
F x = 0, (4.3)
onde
F = K
T
2
[t]
×
RK
1
1
(4.4)
´e uma matriz 3 × 3, denominada matriz fundamental.
4.5 Algoritmo de 8 pontos
O algoritmo de 8 pontos foi apresentado inicialmente em [11]. Sua entrada ´e um
conjunto de pares de pontos hom´ologos {(x
1
, ˆx
1
) , (x
2
, ˆx
2
) , ..., (x
n
, ˆx
n
)} definidos sobre
duas imagens, e sua resposta ´e a matriz fundamental associada ao par de imagens. Seu
nome deve-se ao fato de serem necess´arios, no m´ınimo, 8 pares de pontos hom´ologos
para que o algoritmo possa ser executado. Ele ´e composto por duas etapas:
1. Etapa 1: Determina¸ao da m atriz F , que melhor satisfaz ˆx
T
i
F x
i
= 0, para todo
i {1, 2, ··· , n}.
2. Etapa 2: Determina¸ao da matriz
˜
F que ´e mais pr´oxima de F , e que satisfaz
det
˜
F
= 0. A matriz
˜
F ´e a sa´ıda do algoritmo.
Os detalhes de execu¸ao das duas etapas, bem como o significado preciso das
express˜oes “melhor satisfaz”e “mais pr´oxima”, ser˜ao apresentados a seguir.
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 51
4.5.1 alculo de F
Considerando que cada um dos elementos de F ´e uma vari´avel, e que os valores de
x
i
e ˆx
i
ao conhecidos para cada i {1, 2, 3, ··· , n}, tem-se que a express˜ao ˆx
T
i
F x
i
= 0
define uma equa¸ao linear sobre 9 vari´aveis.
Se F
0
´e uma solu¸ao para a equa¸ao anterior, enao λF
0
tamb´em ´e solu¸ao para
todo λ {0}. Isso mostra que ´e s uficiente utilizar um conjunto de 8 pares de pontos
hom´ologos para formar um sistema linear que permita determinar o valor de F . Por
motivos an´alogos aos apresentados na estima¸ao de ameras, na se¸ao 3.1.1, tem-se que
a solu¸ao obtida utilizando-se apenas 8 pares de pontos hom´ologos ao ´e boa, sendo
interessante utilizar-se de um conjunto maior de pontos, convertendo o problema em um
problema de otimiza¸ao.
4.5.2 Usando mais de 8 pontos
Para resolver o sistema linear definido pelas equa¸oes ˆx
T
i
F x
i
= 0, utilizando
mais de 8 pares de pontos hom´ologos, pode-se reformular o problema como sendo o de
encontrar a matriz F
0
que minimiza a fun¸ao objetivo
F →
n
i=1
ˆx
T
i
F x
i
2
,
que pode ser resolvido pela proposi¸ao 3.1, bastando para isso ser reescrito na forma
min
F=1
AF, com F = (F
11
, F
12
, F
13
, F
21
, F
22
, F
23
, F
31
, F
32
, F
33
)
T
e A definida por
u
1
u
1
v
1
u
1
u
1
u
1
v
1
v
1
v
1
v
1
u
1
v
1
1
u
2
u
2
v
2
u
2
u
2
u
2
v
2
v
2
v
2
v
2
u
2
v
2
1
u
3
u
3
v
3
u
3
u
3
u
3
v
3
v
3
v
3
v
3
u
3
v
3
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
u
m
u
m
v
m
u
m
u
m
u
m
v
m
v
m
v
m
v
m
u
m
v
m
1
,
onde ˆx
i
= (u
i
, v
i
, 1)
T
e x
i
= (u
i
, v
i
, 1)
T
.
A restri¸ao F = 1 faz sentido pois as matrizes fundamentais ao definidas a
menos de uma multiplica¸ao por um escalar.
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 52
4.5.3 alculo de
˜
F
O objetivo do alculo de
˜
F ´e obrigar que a resposta do algoritmo de 8 pontos
satisfa¸ca uma propriedade importante das matrizes fundamentais, que ´e o fato delas
serem matrizes singulares [8]. Essa restri¸ao ao ´e imposta durante o alculo de F .
Pode-se definir
˜
F como sendo a matriz singular tal que
˜
F F assume o valor
m´ınimo. Considerando a norma utilizada c omo sendo a norma de Frobenius, existe uma
maneira simples de calcular
˜
F , que consiste em utilizar diretamente a proposi¸ao abaixo,
cuja demostra¸ao pode ser encontrada em [18].
Proposi¸ao 4.2. Se Udiag(r, s, t)V
T
´e a decomposi¸ao SVD de F , com r s t,
ent˜ao a matriz singular
˜
F , tal que
˜
F F ´e m´ınima, ´e dada por
˜
F = Udiag(r, s, 0)V
T
.
4.6 Algoritmo de 8 pontos normalizado
O algoritmo de 8 pontos ´e mal c ondicionado. Uma modifica¸ao simples que
o torna melhor condicionado ´e descrita em [9]. A modifica¸ao consiste em aplicar
duas transforma¸oes H
1
: P
2
P
2
e H
2
: P
2
P
2
aos pontos hom´ologos do
conjunto de entrada A = {(x
1
, ˆx
1
) , (x
2
, ˆx
2
) , ..., (x
n
, ˆx
n
)}, transformando-o no conjunto
B = {(H
1
x
1
, H
2
ˆx
1
) , (H
1
x
2
, H
2
ˆx
2
) , ..., (H
1
x
n
, H
2
ˆx
n
)}, onde H
1
e H
2
ao definidas de
forma a satisfazerem as seguintes propriedades:
1. H
1
e H
2
ao transforma¸oes afins que realizam uma transla¸ao e um escalamento
em
2
;
2. Ambos os conjuntos, {H
1
x
1
, H
1
x
2
, ··· , H
1
x
n
} e {H
2
ˆx
1
, H
2
ˆx
2
, ··· , H
2
ˆx
n
}, em o
ponto (0, 0)
T
2
como sendo o centr´oide;
3. O valor de RMS das distˆancias dos pontos de ambos os conjuntos, {H
1
x
1
, H
1
x
2
, ··· ,
H
1
x
n
} e {H
2
ˆx
1
, H
2
ˆx
2
, ··· , H
2
ˆx
n
}, ao ponto (0, 0)
T
´e
2.
O algoritmo de 8 pontos estima uma matriz fundamental F
de forma bem condi-
cionada ao utilizar B como entrada. Temos ent˜ao que para todo par de pontos hom´ologos
(x, ˆx) A vale a e xpress˜ao
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 53
ˆx
T
H
T
2
F
H
1
x = (H
2
ˆx)
T
F
(H
1
x) = 0.
Isso mostra que a matriz fundamental que estabelece a epipolaridade dos pontos
de A ´e definida por F = H
T
2
F
H
1
.
4.7 Determinando os parˆametros extr´ınsecos
Se os parˆametros intr´ınsecos de uma amera ao conhecidos, ´e poss´ıvel, a partir
de uma matriz fundamental F , determinar as poss´ıveis posi¸oes relativas entre duas
ameras que explicam essa matriz fundamental.
Dada a matriz fundamental F = K
T
2
[t]
×
RK
1
1
que estabelece a rela¸ao de
epipolaridade das proje¸oes obtidas pelas ameras K
1
[I | 0] e K
2
[R | t], podemos definir
uma matriz essencial
E = K
T
2
F K
1
, (4.5)
que relaciona as proje¸oes obtidas pelas c ˆameras [I | 0] e [R | t].
Sendo assim, a matriz E = [t]
×
R ´e o produto da matriz anti-sim´etrica [t]
×
, pela
matriz de rota¸ao R. A determina¸ao dos poss´ıveis valores de t e R fica resolvida pela
proposi¸ao abaixo, cuja demonstra¸ao pode ser encontrada em [8].
Proposi¸ao 4.3. Supondo que a decomposi¸ao SVD de uma matriz essencial E ´e igual
a U diag (1, 1, 0) V
T
, existem duas maneiras de fatorar E, de forma que E = SR, onde
S ´e uma matriz ainti-sim´etrica e R ´e uma matriz de ro ta¸ao. Tem-se que S = UZU
T
e
R = UW V
T
ou R = U W
T
V
T
, onde
W =
0 1 0
1 0 0
0 0 1
e Z =
0 1 0
1 0 0
0 0 0
.
A proposi¸ao 4.3 mostra que existem duas poss´ıveis escolhas para a matriz de
rota¸ao R. Para determinarmos quais ao os poss´ıveis vetores t, basta levar em conta os
seguintes fatos:
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 54
1. [t]
×
t = t × t = 0;
2. O vetor t ´e definido a menos de uma multiplica¸ao por um escalar.
Usando a nota¸ao da proposi¸ao, temos pelo primeiro fato que, todo vetor t deve
pertencer ao n´ucleo de [t]
×
. Tendo em vista que [t]
×
= S = U ZU
T
, conclui-se que todo
vetor t deve ser da forma
t = λU (0, 0, 1)
T
, (4.6)
onde λ .
O segundo fato, demonstrado na se¸ao 4.1, implica que t pode ser qualquer
elemento da forma λU (0, 0, 1)
T
, com λ . Se nos restringirmos aos casos em que
t = 1, temos que t pode ser U (0, 0, 1)
T
ou U (0, 0, 1)
T
.
4.7.1 Adicionando recorte ao modelo
Podemos concluir que, sendo conhecida uma matriz fundamental F , que relaciona
proje¸oe s obtidas por um par de ameras P
1
e P
2
, cujos parametros intr´ınsecos s ˜ao
definidos por matrizes K
1
e K
2
. Se P
1
= K
1
[I | 0] enao P
2
pode ser definida de quatro
maneiras:
K
2
UW V
T
| U (0, 0, 1)
T
,
K
2
UW
T
V
T
| U (0, 0, 1)
T
,
K
2
UW V
T
| U (0, 0, 1)
T
,
K
2
UW
T
V
T
| U (0, 0, 1)
T
,
onde U e W podem s er calculados a partir de F utilizando-se a equa¸ao (4.5) e a
proposi¸ao 4.3. Ao afirmarmos que existem apenas essas quatro solu¸oes, estamos con-
siderando que est´a impl´ıcita a indetermina¸ao da distˆancia entre os centros de proje¸ao
de P
1
e P
2
.
O modelo de amera que estamos utilizando ao descreve a opera¸ao de recorte
em rela¸ao `a pirˆamide de vis˜ao. O resultado disso ´e que, apenas uma dessas quatro
configura¸oes de ameras ´e fisicamente realiz´avel, como exemplificado pela Figura 4.1.
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 55
a) b)
c)
d)
Figura 4.1: Embora existam quatro configura¸oes que explicam projetivamente o par de
pontos hom´ologos, apenas em (a) o ponto projetado est´a posicionado `a frente de ambas
as ameras.
A solu¸ao para e ss e problema consiste em descartar as solu¸oes que fazem com
que a reconstru¸ao tridimensional de pontos hom´ologos possua a coordenada z negativa
para algum dos referenciais definidos pelas ameras [8]. Mostraremos como obter a
reconstru¸ao tridimensional de um ponto a partir de suas proje¸oes na pr´oxima se¸ao.
4.7.2 Reconstru¸ao tridimensional
Sejam x
1
P
2
e x
2
P
2
as proje¸oes de um ponto X P
3
relativas as
ameras P
1
e P
2
, ou seja, x
1
= P
1
X e x
2
= P
2
X. Mostraremos agora como determinar
X quando x
1
, x
2
, P
1
e P
2
ao conhecidos.
Interpretando x
1
= (u, v, 1)
T
e P X como vetores do
3
, temos que x
1
×(P
1
X) =
0. Chamando de P
n
i
a n-´esima linha de P
i
, pode-se reescrever essa express˜ao como o
seguinte conjunto de trˆes equa¸oes lineares em X, onde duas ao linearmente indepen-
dentes
u
P
3
1
X
P
1
1
X
= 0, (4.7)
v
P
3
1
X
P
2
1
X
= 0, (4.8)
u
P
2
1
X
v
P
1
1
X
= 0. (4.9)
Analogamente temos que x
2
= (u, v, 1)
T
pode ser utilizado para obtermos mais
outras duas equa¸oes lineares em X, e linearmente independentes, bastando observar
que x
2
× (P
2
X) = 0. Agrupando quatro dessas equa¸oes obtemos um sistema linear
CAP
´
ITULO 4. CALIBRAC¸
˜
AO DE PARES DE C
ˆ
AMERAS 56
homogˆeneo da forma AX = 0 onde
A =
uP
3
1
P
1
1
vP
3
1
P
2
1
uP
3
2
P
1
2
vP
3
2
P
2
2
. (4.10)
Esse ´e um sistema linear de quatro equa¸oes sobre as quatro coordenadas ho-
mogˆeneas de X, logo ´e um sistema linear super-determinado, que pode ser convertido
para o problema de otimiza¸ao min
X=1
AX, c uja solu¸ao ´e dada pela proposi¸ao 3.1.
Cap´ıtulo 5
Acompanhamento de pontos
O pr´oximo cap´ıtulo apresentar´a um processo de calibra¸ao para fam´ılias de
ameras. Tal processo precisa que seja realizada a correspondˆencia entre proje¸oes de
diversos pontos da cena sobre diversos quadros de um v´ıdeo. Tendo em vista que mesmo
v´ıdeos de curta dura¸ao ao formados por centenas de quadros, ´e necess´ario que essa cor-
respondˆencia seja feita de forma autom´atica. Descreveremos neste cap´ıtulo o algoritmo
Kanade-Lucas-Tomasi, que ser´a utilizado para resolver esse problema. Uma descri¸ao
mais detalhada pode ser encontrada em [16] e [12].
5.1 Defini¸oes
Adotaremos as seguintes defini¸oes:
1. Imagem
Uma imagem ´e uma fun¸ao I : [a, b]×[c, d] . Nesse caso, estamos considerando
um modelo para imagens de tons de cinza, em que para cada ponto do suporte
[a, b] × [c, d] associa-se um valor de brilho.
2. V´ıdeo
Um v´ıdeo ´e uma fam´ılia finita de imagens (I)
n
= (I
1
, ..., I
n
), onde cada imagem
I
k
corresponde a um quadro captado por uma amera. Tem-se ainda que a ordem
definida pela indexa¸ao dos quadros corresponde a ordem em que os quadros foram
captados pela amera.
57
CAP
´
ITULO 5. ACOMPANHAMENTO DE PONTOS 58
3. Janela
Uma janela de uma imagem I : [a, b] × [c, d] ´e uma imagem I |
w
obtida pela
restri¸ao do dom´ınio de I a um pequeno retˆangulo w = [a
, b
]×[c
, d
] [a, b]×[c, d].
5.2 Algoritmo Kanade-Lucas-To masi
Kanade-Lucas-Tomasi (KLT) ´e um algoritmo capaz de acompanhar janelas em
um v´ıdeo. Dado um v´ıdeo (I)
n
, ele procura localizar janelas em um quadro I
j+1
que
estejam correlacionadas por uma transla¸ao com janelas de I
j
. Mais precisamente, o
algoritmo ´e capaz de determinar um vetor h
2
, chamado de disparidade, tal que
x w, I
j+1
|
w
(x + h) = I
j
|
w
(x) + η (x) , (5.1)
onde w
´e o retˆangulo obtido adicionando h aos v´ertices de w, e η : w
+
´e uma
fun¸ao que define o erro pontual de correla¸ao entre as janelas. O algoritmo busca enao
determinar a disparidade h que minimiza esse erro sobre toda a janela.
A utilidade do correlacionamento de janelas para os nossos objetivos decorre do
fato de que janelas que sejam semelhantes, e estejam pr´oximas em quadros consecutivos,
possuem uma grande chance de corresponderem `a proje¸ao de um mesmo conjunto de
pontos da cena tridimensional. Isso significa que, sendo x
0
w, ´e razo´avel utilizar x
0
+h
como estimativa para seu hom´ologo em I
j+1
. No processo de calibra¸ao apresentado
no pr´oximo cap´ıtulo ao utilizados os centros de janelas correlacionadas pelo KLT como
pontos hom´ologos. Dessa forma, o problema de acompanhamento de pontos ´e convertido
em um problema de acompanhamento de janelas.
5.3 Acompanhamento de janelas
Usando a nota¸ao estabelecida na equa¸ao (5.1), e tendo sido fixado um vetor
disparidade h, po de- se definir uma medida para o erro de correlacionamento
E =
w
η (x)
2
dx. (5.2)
Dessa forma, o problema de determina¸ao da disparidade pode ser formalizado
atrav´es do seguinte problema de otimiza¸ao:
CAP
´
ITULO 5. ACOMPANHAMENTO DE PONTOS 59
Problema 5.1. Encontrar um vetor h
2
que minimiza
w
[I
j+1
(x + h) I
j
(x)]
2
dx,
onde w ´e o retˆangulo que define a janela em I
j
.
Realizando a mudan¸ca de vari´aveis ν = x + h, temos que esse problema ´e equi-
valente ao de encontrar o vetor h
2
que minimiza
w
[I
j+1
(ν) I
j
(ν h)]
2
dν. (5.3)
Assumindo que I
j+1
´e diferenci´avel, e que a disparidade entre quadros consecu-
tivos ´e pequena, podemos fazer a seguinte aproxima¸ao
I
j
(ν h) I
j
(ν) I
j
(ν) · h. (5.4)
Com isso temos que a fun¸ao objetivo pode ser reescrita como
h →
w
Φ (ν) I
j
(ν) · h
2
, onde Φ (ν) = I
j+1
(ν) I
j
(ν) .
Essa aplica¸ao possui um m´ınimo em um ponto cr´ıtico h = (h
1
, h
2
)
T
que satisfaz
u
2
,
w
Φ (ν) I
j
(ν) · h
I
j
· u
= 0. (5.5)
Em particular, essa propriedade vale quando u ao os vetores da base canˆonica
(1, 0)
T
e (0, 1)
T
, permitindo que ree sc revamos a express˜ao acima em termos de derivadas
parciais, obtendo o seguinte sistema linear, que nos permite determinar h:
w
I
j
x
1
(ν)
2
h
1
+
w
I
j
x
1
(ν)
I
j
x
2
(ν)
h
2
=
w
Φ (ν)
I
j
x
1
(ν) (5.6)
w
I
j
x
2
(ν)
2
h
2
+
w
I
j
x
1
(ν)
I
j
x
2
(ν)
h
1
=
w
Φ (ν)
I
j
x
2
(ν) (5.7)
CAP
´
ITULO 5. ACOMPANHAMENTO DE PONTOS 60
5.4 Escolha das janelas
Al´em de definir um algoritmo de acompanhamento de janelas, temos que o algo-
ritmo KLT define um processo autom´atico de sele¸ao de janelas a serem acompanhadas.
Esse processo de sele¸ao ´e baseado em um crit´erio definido de forma que a solu¸ao do
sistema linear formado pelas equa¸oes (5.6) e (5.7) possa ser obtida com precis˜ao.
Consideremos o sistema escrito na forma Ah = b. Para que sua solu¸ao possa ser
obtida com precis˜ao ´e necess´ario que ele seja bem condicionado, e que os coeficientes da
matriz A estejam definidos acima do n´ıvel de ru´ıdo da imagem.
Para que o sistema seja bem condicionado ´e necess´ario que os dois auto-valores
de A, λ
1
e λ
2
, sejam da mesma ordem de grandeza. Na pr´atica, isso sempre ocorre,
tendo em vista que o valor do brilho em cada ponto da imagem ´e limitado.
Para que os coeficientes de A estejam definidos acima do n´ıvel de ru´ıdo da imagem
´e necess´ario que λ
1
e λ
2
ao sejam pequenos. Sendo assim, o algoritmo KLT utiliza o
valor min {λ
1
, λ
2
} como medida de qualidade para o acompanhamento de uma janela.
A escolha das m janelas do quadro I
k
: U que ao mais bem acom-
panh´aveis faz-se atrav´es da compara¸ao dos valores de qualidade de acompanhamento
considerando-se todas as poss´ıveis escolhas de janelas w U. ao escolhidas as ja-
nelas de melhor qualidade, e que ao delimitadas por retˆangulos w
1
, ..., w
m
que ao se
sobrep˜oem, ou seja, w
i
w
j
= , para i, j {1, ..., n}.
5.5 Descarte de janelas
Ap´os determinar o vetor disparidade, o algoritmo avalia o erro de correlaciona-
mento, definido na equa¸ao (5.2). Se esse valor for superior a um certo limiar, ele para de
acompanhar a janela a partir desse quadro, pois a disparidade obtida relaciona janelas
que ao muito diferentes. Essa janela pode ser substitu´ıda por uma nova, que deve ser
escolhida como sendo a mais bem acompanh´avel no quadro, e que ao se sobreponha `as
outras janelas que ainda est˜ao sendo acompanhadas.
CAP
´
ITULO 5. ACOMPANHAMENTO DE PONTOS 61
Figura 5.1: Exemplos de pontos que ao ao proje¸oes de pontos fixos da cena. No
caso do ponto 1, o KLT est´a acompanhando uma regi˜ao de brilho de uma superf´ıcie. O
problema ´e que essa regi˜ao se move com a movimenta¸ao da amera. No cas o do ponto
2, o KLT est´a ac ompanhado a superposi¸ao da proje¸ao dos bordos de duas superf´ıcies
distintas da cena.
5.6 Problemas no uso do KLT
O nosso interesse pelo algoritmo KLT ´e utiliz´a-lo para determinar as proje¸oes
de um conjunto de pontos de uma cena tridimensional em um v´ıdeo. Infelizmente, ao
existem garantias de que as proje¸oes encontradas por ele satisfazem essa propriedade.
Um dos problemas ´e que a estrat´egia de descarte do algoritmo KLT evita ape-
nas erros grosseiros cometidos em quadros consecutivos. Ela ao impede o ac´umulo de
pequenos erros ao longo de um acompanhamento sobre uma seq¨encia de quadros. Isso
significa que os resultados podem ser imprecisos, principalmente no caso de acompanha-
mentos feitos sobre seq¨uˆencias longas.
Outro problema pode ser compreendido analisando-se a Figura 5.1, que exibe trˆes
quadros de um v´ıdeo no qual se aplicou o algoritmo KLT para acompanhar a proje¸c ˜ao
de 20 pontos da cena. e-se claramente que os dois pontos indicados nas imagens ao
problem´aticos, pois ao correspondem `as proje¸oes de pontos fixos da cena.
Uma modifica¸ao do algoritmo KLT que procura resolver o primeiro problema
pode ser encontrada em [15]. Nessa modifica¸ao, al´em de ser feito o acompanhamento
de pontos em quadros consecutivos, faz-se a compara¸ao da vizinha¸ca de cada ponto
com a vizinhan¸ca de seu correspondente no quadro em que ele foi selecionado para
ser ac ompanhado. Se as vizinhan¸cas se tornam muito diferentes o ponto deixa de ser
CAP
´
ITULO 5. ACOMPANHAMENTO DE PONTOS 62
acompanhado. Essa vers˜ao de KLT ao foi utilizada neste trabalho, pois a hip´otese
de rigidez da c ena nos permite resolver tanto o primeiro como o segundo problema
simultaneamente. Uma maneira de fazer isso ser´a apresentada no pr´oximo cap´ıtulo.
Cap´ıtulo 6
Calibra¸c˜ao de fam´ılias de cˆameras
Neste cap´ıtulo descrevemos um algoritmo robusto, capaz de determinar os pa-
ametros extr´ınsecos assumidos por uma amera na c apta¸ao dos quadros de um v´ıdeo,
dado que os parametros intr´ınsecos foram previamente estimados, usando o que foi visto
no Cap´ıtulo 3. A cena que ´e apresentada no v´ıdeo precisa ser predominantemente r´ıgida,
ou seja, a maioria dos pontos da cena ao podem ter sua posi¸ao modificada, pois as res-
tri¸oes impostas pela rigidez sobre suas proje¸oes ´e que tornam poss´ıvel a determina¸ao
dos parˆametros da amera.
6.1 Defini¸oes
Adotaremos as seguintes defini¸oes:
1. Fam´ılia de pontos hom´ologos
Dado um v´ıdeo (I)
n
= (I
1
, ..., I
n
), dizemos que a fam´ılia (x)
n
= (x
1
, ..., x
n
), onde
x
i
P
2
, ´e uma fam´ılia de pontos hom´ologos associada ao v´ıdeo (I)
n
se existe
um ponto X P
3
, da cena, tal que a proje¸ao de X em I
j
´e x
j
, para todo
j {1, ..., n}.
2. Matriz de pontos hom´ologos
Uma matriz M, m × n, formada por elementos de P
2
, ´e uma matriz de pontos
hom´ologos associada a um v´ıdeo (I)
n
se cada uma de suas linhas define uma fam´ılia
63
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 64
de pontos hom´ologos associada a (I)
n
. Com es sa defini¸ao temos tamb´em que a
j-´esima coluna de M corresponde aos pontos hom´ologos do quadro I
j
.
3. Configura¸ao
Uma configura¸ao ´e um par ((P )
n
, Ω), onde (P )
n
= (P
1
, . . . , P
n
) ´e uma fam´ılia de
ameras e = {X
1
, . . . , X
m
}, com X
i
P
3
, ´e um conjunto de pontos da cena.
4. Explica¸ao para fam´ılias de pontos hom´ologos
Estabelecida uma tolerˆancia ε
+
, definimos que uma explica¸ao projetiva para
uma fam´ılia de pontos hom´ologos (x)
n
= (x
1
, ..., x
n
) ´e uma configura¸ao ((P )
n
, Ω)
tal que i {1, ..., n}, X
j
que satisfaz d (P
i
X
j
, x
i
) < ε. Nesse caso, dizemos
tamb´em que a configura¸ao ((P )
n
, Ω) explica projetivamente a fam´ılia de pontos
hom´ologos (x)
n
.
5. Explica¸ao para matrizes de pontos hom´ologos
Uma explica¸ao projetiva para uma matriz de pontos hom´ologos M ´e uma con-
figura¸ao que e xplica todas as fam´ılias de pontos hom´ologos das linhas de M .
Nesse caso, dizemos tamb´em que a configura¸ao e xplica projetivamente a matriz
de pontos hom´ologos M.
6.2 Calibrando aos pares
ao ´e poss´ıvel es tender, de maneira imediata, o processo de calibra¸ao de pares
de ameras, apresentado no Cap´ıtulo 4, para uma calibra¸ao de diversas ameras, via
calibra¸ao par a par. O motivo ´e a indetermina¸ao da escala existente em cada calibra¸ao
par a par, como foi apresentado na se¸ao 4.1.
Por exemplo, s e considerarmos que estamos de posse de um v´ıdeo (I)
n
, e apli-
carmos a t´ecnica de calibra¸ao do Cap´ıtulo 4, usando os pontos hom´ologos dos pares
(I
1
, I
2
) , (I
1
, I
3
) , ..., (I
1
, I
n
), obteremos como resposta pares de ameras (K [I|0] , K [R
1
|t
1
]) ,
(K [I|0] , K [R
2
|t
2
]) , ..., (K [I|0] , K [R
n1
|t
n1
]), onde as dire¸oes e os sentidos dos veto-
res t
1
, t
2
, ..., t
n1
, podem ser determinados, mas os valores de t
1
, t
2
, ..., t
n1
ao
podem.
A possibilidade de determinar apenas as dire¸oes e os sentidos dos vetores t
1
, t
2
, ...,
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 65
t
n1
, ´e uma limita¸ao do processo de calibra¸ao realizado par a par. A verdadeira in-
determina¸ao de escala, que ´e inerente ao problema de calibra¸ao de arias ameras, ´e
mais fraca. Embora os valores de t
1
, t
2
, ..., t
n1
ao possam ser determinados,
as rela¸oes
t
i
t
j
podem, ou se ja, ´e poss´ıvel encontrar como resposta, uma fam´ılia de n
ameras da forma (K [I|0] , K [R
1
|λt
1
] , K [R
2
|λt
2
] , ..., K [R
n1
|λt
n1
]), onde λ
+
´e
um fator que ao pode ser determinado.
6.3 Calibra¸ao em trˆes passos
Apresentaremos agora um algoritmo que encontra uma explica¸ao projetiva
((P )
n
, {X
1
, ..., X
m
}) para uma matriz de pontos hom´ologos M associada a um v´ıdeo
(I)
n
. Embora ao tenha sido foco de destaque, este algoritmo aparece c omo parte do
processo de calibra¸ao descrito em [6].
O algoritmo ´e formado pelos seguintes passos:
1. Passo 1: Utilizar as colunas de M correspondentes aos pontos hom´ologos de um
par de quadros I
i
e I
j
para determinar P
i
e P
j
.
2. Passo 2: Utilizar o par P
i
e P
j
e a matriz M para determinar o conjunto {X
1
, ..., X
m
}.
3. Passo 3: Utilizar o conjunto {X
1
, ..., X
m
} e a matriz M para determinar a fam´ılia
de ameras (P )
n
.
Como apresentado nos cap´ıtulos anteriores, tem-se que cada um dos trˆes passos
pode ser resolvido utilizando-se a proposi¸ao 3.1.
Este processo de calibra¸ao em trˆes passos ´e interessante, pois evita o uso de
uma modelagem matem´atica sofisticada baseada em tensores trifocais. Um estudo sobre
calibra¸ao feita com tensores trifocais pode ser encontrado em [8] e [4].
6.4 Problemas da calibra¸ao em trˆes passos
Uma implementa¸ao ingˆenua da calibra¸ao em trˆes passos apresenta resultados
ruins devido aos seguintes problemas:
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 66
1. Problema do passo 1: Podem o correr erros grosseiros durante a execu¸ao do
passo 1, pois a matriz fundamental ´e estimada utilizando-se um conjunto de pon-
tos hom´ologos que pode apresentar erros grosseiros, a que estamos considerando
que esses ao determinados automaticamente pe lo algoritmo KLT, que ao oferece
garantias sobre sua precis˜ao ou corre¸ao.
2. Problema do passo 2: Podem o c orrer erros grosseiros durante a execu¸ao do passo 2
devido a problemas de condicionamento do processo de reconstru¸ao, pois ´e poss´ıvel
que algum ponto da cena, reconstru´ıdo, seja tal que uma grande perturba¸ao de
sua posi¸ao em uma dire¸ao cause uma pequena modifica¸ao nas coordenadas das
proje¸oe s obtidas pelas ameras.
3. Problema do passo 3: O passo 3 ao imp˜oe a restri¸ao dada pelo fato dos parˆametros
intr´ınsecos serem conhecidos. Tais parˆametros ao utilizados no passo 1 quando se
obt´em a matriz essencial a partir da equa¸ao (4.5).
Mostraremos como resolver esses problemas de maneira a tornar robusta a cali-
bra¸ao feita em trˆes passos. Para tal, faremos uso do algoritmo RANSAC.
6.4.1 Algoritmo RANSAC
O algoritmo RANSAC (Random Sample Consensus), foi proposto por Fischler e
Bolles em [3], onde foi apresentado nos seguintes termos
“Dados um modelo que precisa de um m´ınimo de n pontos para ter seus parˆa-
metros livres instanciados, e um conjunto de pontos P , tal que o umero de pontos de
P ´e maior do que n, isto ´e (P ) n. Selecione aleatoriamente um subconjunto S
1
, de
n pontos de P e instancie o modelo. Utilize o modelo instanciado M
1
para determinar
um subconjunto S
1
de pon tos de P , que satisfazem um crit´erio de tolerˆancia de erro em
rela¸ao a M
1
. O conjunto S
1
´e chamado de conjunto de consenso de S
1
.
Se (S
1
) for maior que um certo limiar t, que ´e fun¸ao de uma estimativa
do umero de erros grosseiros em P . Use S
1
para computar ( possivelmente usando
m´ınimos quadrados ) um novo modelo M
1
.
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 67
Se (S
1
) for menor que t, selecione aleatoriamente um novo subconjunto S
2
e repita o processo acima. Caso depois de um umero pr´e-determinado de iteroes,
nenhum conjunto de consenso com t ou mais elementos tiver sido encontrado, encontre
o modelo correspondente ao maior conjunto de consenso, ou termine acusando um erro.”
Apresentaremos a seguir como ´e poss´ıvel utilizar o RANSAC para resolver os
problemas dos passos 1 e 2. Utilizaremos a nota¸ao definida acima para tornar simples a
identifica¸ao dos princ´ıpios do paradigma RANSAC. As duas colunas de M , correspon-
dentes aos pontos hom´ologos utilizados na reconstru¸ao tridimensional feita no passo 2,
ser˜ao chamadas de colunas base.
6.4.2 Solu¸ao para o problema do passo 1
Podemos, nesse caso, considerar que o algoritmo de oito pontos fornece uma
maneira de se obter uma matriz fundamental, que corresponde ao modelo M
1
, a partir
de um conjunto formado por oito pares de pontos hom´ologos correspondentes a S
1
,
obtidos nas colunas base de M.
Pode-se utilizar um crit´erio de tolerˆancia para definir o c onjunto de consenso S
1
baseado na fun¸ao objetivo do algoritmo de oito pontos, mais precisamente, dado um li-
miar η
1
+
estabelecido empiricamente, incluimos em S
1
os pares de pontos hom´ologos
(x
i
, x
j
) das colunas base de M, se |x
T
i
F x
j
| < η
1
, onde F ´e a matriz fundamental es-
timada usando o conjunto S
1
. O modelo M
1
´e uma matriz fundamental que pode ser
obtida aplicando-se o pr´oprio algoritmo de oito pontos sobre os pontos hom´ologos de S
1
.
6.4.3 Solu¸ao para o problema do passo 2
Seja Q o conjunto formado pelas reconstru¸oes tridimensionais dos pares de pon-
tos hom´ologos das colunas base de M que fazem parte do conjunto de consenso encon-
trado durante a aplica¸ao do RANSAC na estima¸ao da matriz fundamental.
Para resolvermos o problema de condicionamento do passo 2 vamos utilizar o
RANSAC durante a execu¸ao do passo 3. Para isso temos que o conjunto Γ, formado
por seis pares (X, m), faz o papel do modelo S
1
, onde X ´e um elemento de Q, e m ´e a
linha de M correspondente `a fam´ılia de pontos hom´ologos asso ciada a X. O modelo M
1
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 68
corresponde a uma fam´ılia de ameras (P )
n
obtida pela aplica¸ao do passo 3 utilizando-
se apenas os elementos de Γ. O crit´erio de tolerˆancia usado para definir S
1
´e baseado
na medida do erro de reproje¸ao. Mais precisamente, dado um limiar η
2
+
escolhido
empiricamente, inserimos em S
1
os pares (X
, m), com X
Q, que satisfazem, j
{1, ..., n}, d (P
j
X
, m
j
) < η
2
. O modelo M
1
corresponde a uma fam´ılia de ameras
(P
)
n
, estimada a partir do conjunto S
1
.
Dessa forma, temos que o conjunto formado pelos pontos X
inseridos em S
1
, e
a fam´ılia de ameras (P
)
m
, definem uma explica¸ao projetiva, de tolerˆancia η
2
, para
uma matriz de pontos hom´ologos M
, formada por linhas de M .
6.4.4 Solu¸ao para o problema do passo 3
Considerando que a matriz de pontos hom´ologos M possui n colunas, temos que
existem
n
2
n
/2 poss´ıveis escolhas para o par de colunas base. Sendo assim, pode-se
tentar resolver o problema do passo 3, descartando-se a solu¸ao, caso os parˆametros
intr´ınsecos de alguma das ame ras encontradas seja muito diferente dos parˆametros
que estamos assumindo como conhecidos. Os trˆes passos ao repetidos considerando
escolhas diferentes de colunas bases at´e que uma solu¸ao satisfat´oria seja encontrada.
Mais precisamente, dado um limiar η
3
+
escolhido empiricamente, recusamos a
fam´ılia (P
)
n
caso K
j
K > η
3
1
, para algum j {1, . . . , n}, onde K
j
´e matriz
dos parˆametros intr´ınsecos obtida pela fatora¸ao de P
j
na forma K
j
[R
j
|t
j
], e K ´e a
matriz dos parˆametros intr´ınsecos que estamos assumindo como conhecida.
6.5 Escolha das colunas base
Como temos a possibilidade de escolher
n
2
n
/2 pares de colunas bases para
usarmos nos passos 1 e 2, faz sentido escolhermos aquele que forne¸ca o melhor resultado.
1
Foram realizados experimentos bem sucedidos utilizando tanto a norma de Frobenius, como a norma
definida por A = max|A
nm
|. Uma estrat´egia de descarte melhor, por´em computacionalmente mais
cara, seria avaliar o erro de reproje¸ao introduzido ao se substituir K
j
por K, e depois comparar esse
valor com um li mi ar.
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 69
Podemos ent˜ao definir que, o melhor resultado ´e a configura¸ao que ao foi descartada
por problemas de parˆametros intr´ınsecos no passo 3 e que explica o maior n ´umero de
linhas da matriz de pontos hom´ologos M. Uma maneira bastante eficiente para deter-
minar esse par foi obtida utilizando-se a seguinte estrat´egia:
1. ao se deve tentar utilizar colunas bases cuja distˆancia edia dos pontos hom´ologos
ao supere um certo limiar.
2. Se o n´umero de pares de pontos hom´ologos obtido pelo RANSAC aplicado ao
passo 1 for menor que o n´umero de linhas de M explicadas por uma configura¸ao
C, a calculada utilizando-se uma outra escolha de colunas base, deve-se abortar a
execu¸ao, pois ´e imposs´ıvel que a configura¸ao C seja melhorada. Com iss o evita-
mos a realiza¸ao do RANSAC no passo 2, que ´e o de maior custo computacional.
3. Devemos utilizar primeiro colunas afastadas de M como colunas base, pois normal-
mente ess as fornecem um resultado melhor que as colunas pr´oximas. Isso faz com
que os bons resultados sejam determinados antes dos ruins, e com isso aumentamos
o efeito do item anterior.
6.6 Calibra¸ao via Levenberg-Marquardt
Seja ((P )
n
, {X
1
, . . . , X
m
}) uma explica¸ao projetiva para uma matriz de pontos
hom´ologos M. Podemos definir o erro de reproje¸ao associado a essa explica¸ao como
n
k=1
m
i=1
d (P
k
X
i
, M
ik
)
2
.
Temos que, quanto menor o erro de reproje¸ao, melhor ´e a explica¸ao. Com isso,
faz sentido definirmos o problema de encontrar uma explica¸ao projetiva ´otima para
uma matriz de pontos hom´ologos M. Esse problema pode ser atacado utilizando-se o
algoritmo Levenberg-Marquardt. Nesse caso, a fun¸ao objetivo ´e dada por
g(x) =
1
2
f(x) x
0
2
, (6.1)
onde x
0
2mn
´e um vetor cujas componentes ao as coordenadas das proje¸oes dos
n pontos, nas m imagens obtidas pelas ameras, e a fun¸ao f : E
n
×
3m
2mn
´e
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 70
definida por
(P
1
, ··· , P
n
, X
1
, ··· , X
m
) → (P
1
X
1
, ··· , P
1
X
m
, ··· , P
n
X
1
, ··· , P
n
X
m
) ,
onde E
12
´e um es pa¸co de representa¸ao de ameras virtuais.
O conjunto E
n
×
3m
´e formado por representa¸oes de configura¸oes de n ameras
e m pontos.
6.7 Representa¸ao de uma configura¸ao
Pode-se representar uma c onfigura¸ao de m pontos e n ameras por um vetor
de
12n+3m
, onde 12n coordenadas correspondem aos elementos de n matrizes 3 × 4
associadas `as n ameras, e 3m coordenadas correspondem `as coordenadas de m p ontos
da cena tridimensional. O problema dessa representa¸ao, no nosso contexto, ´e que ela
ao imp˜oe a restri¸ao caracterizada pelo fato dos parˆametros intr´ınsecos das ameras
serem conhecidos. Uma maneira de impor essa restri¸ao ´e utilizar um vetor de
6n+3m
como representa¸ao para uma configura¸ao. Nessa representa¸ao, as ameras possuem
apenas seis graus de liberdade, que correspondem aos parˆametros extr´ınsecos. Desses
seis graus de liberdade, trˆes especificam a rota¸ao, que define a orienta¸ao do referencial
da amera, e trˆes esp ec ificam o posicionamento do centro de proje¸ao. Essa forma
de parametriza¸ao ´e semelhante `aquela feita na se¸ao 3.4.5, com a diferen¸ca que os
parˆametros intr´ınsecos ao fixados.
6.8 Ciclos de refinamento
Um dos problemas existentes na calibra¸ao em trˆes passos ´e a possibilidade de
alguma fam´ılia de pontos hom´ologos ser descartada por apresentar um erro de reproje¸ao
muito elevado em algum quadro, devido ao fato da reconstru¸ao tridimensional realizada
pelo passo 2 o levar em considera¸ao um ´unico par de quadros do v´ıdeo. A solu¸ao
adotada para esse problema foi combinar a calibra¸ao em trˆes passos com uma calibra¸ao
feita com Levenberg-Marquardt.
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 71
Inicialmente ´e determinada uma explica¸ao projetiva ((P )
n
,
1
) obtida pela
execu¸ao da calibra¸ao em trˆes passos utilizando-se um limiar η
2
, definido na se¸ao
6.4.3, relativamente alto, escolhido de maneira que uma grande quantidade de fam´ılias
de pontos hom´ologos seja aceita mesmo que alguns pontos com erros grosseiros possam
contaminar a solu¸ao. Essa solu¸ao ´e ent˜ao refinada por um algoritmo formado por
ciclos de quatro passos que ao apresentados a seguir, com o objetivo de selecionar de
maneira mais criteriosa as fam´ılias de pontos hom´ologos que devem ser consideradas na
estima¸ao da explica¸ao projetiva.
1. Executam-se algumas itera¸oes do algoritmo Levenbeg-Marquardt, utilizando como
estimativa inicial a explica¸ao projetiva ((P )
n
,
1
), determinando-se uma outra
explica¸ao projetiva ((P
)
n
,
2
) de menor erro de reproje¸ao associado.
2. Utilizam-se pares de ameras de (P
)
n
para determinar uma nova reconstru¸ao
3
para todos os pontos hom´ologos de M. Esse processo pode ser realizado escolhendo-
se pares de ameras diferentes para reconstruir cada ponto de
3
, de forma que,
cada par utilizado seja aquele que minimiza o erro de reproje¸ao associado a cada
ponto.
3. Descartam-s e os pontos de
3
cujo erro de reproje¸ao em rela¸ao `as ameras de
(P
)
n
ao maiores que um limiar η
2
, escolhido de forma mais rigorosa que que η
2
,
ou seja, η
2
< η
2
. Obt´em-se assim um novo c onjunto de pontos
4
.
4. Estima-se uma nova fam´ılia de ameras (P

)
n
a partir do conjunto de pontos
4
e
das respectivas linhas da matriz de pontos hom´ologos M . Com isso, obtemos uma
explica¸ao projetiva ((P

)
n
,
4
) que pode ser utilizada para alimentar um novo
ciclo de refinamento.
A cada ciclo pode-se utilizar um limiar de tolerˆancia para o erro de reproje¸ao
cada vez menor, tendo em vista, que como a solu¸ao fica cada vez mais correta, podemos
ser cada vez mais rigorosos.
Ap´os executarmos um determinado n´umero de ciclos de refinamentos podemos
aplicar o algoritmo Levenberg-Marquardt at´e sua convergˆencia, obtendo uma explica¸ao
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 72
projetiva, cujo erro de reproje¸ao associado `as fam´ılias de pontos hom´ologos selecionadas
´e um m´ınimo local.
6.9 Decomposi¸ao do v´ıdeo em fragmentos
Em um v´ıdeo (I)
n
´e poss´ıvel que existam quadros I
a
e I
b
que ao admitam
nenhum par de pontos hom´ologos, no caso de nenhum ponto da cena ser projetado em
ambas as imagens. Al´em disso, o algoritmos KLT pode ao conseguir acompanhar com
precis˜ao pontos em longas seq¨uˆencias de imagens. Como conseq¨encia, tem-se que ao
´e poss´ıvel, em geral, definir uma matriz de pontos hom´ologos para um v´ıdeo completo.
Valendo-se do fato do movimento da amera ser c ont´ınuo, pode-se realizar uma
decomposi¸c ˜ao do v´ıdeo (I)
n
em fragmentos, de forma que todos os fragmentos admitam
uma matriz de pontos hom´ologos. Sendo mais preciso, estamos definindo como um
fragmento, de k + 1 quadros, de um v´ıdeo (I
1
, ..., I
n
), como sendo um v´ıdeo da forma
(I
j
, ..., I
j+k
), onde {j, j + 1, ..., j + k} {1, 2, ..., n}.
Nos experimentos realizados, os fragmentos foram determinados por uma heur´ıs-
tica. A solu¸ao adotada foi que c ada fragmento seria obtido comparando-se um quadro
I
j
com seus sucessores at´e que fosse encontrado um quadro I
j+k
, em que os pontos
hom´ologos de I
j
e I
j+k
, apresentassem uma distˆancia m´edia acima de um limiar ε
+
, escolhido experimentalmente, obtendo-se assim um fragmento de k + 1 quadros
(I
j
, I
j+1
, ..., I
j+k
).
Para que os fragmentos possam ser unidos posteriormente, tem-se que a decom-
posi¸ao ´e feita de forma que exista a superposi¸ao de um quadro entre cada par de
fragmentos adjacentes. Ou seja, o v´ıdeo (I)
k
´e decomposto em fragmentos da forma
(I
1
, ..., I
k
1
), (I
k
1
, ..., I
k
2
) , ...,
I
k
n2
, ..., I
k
n1
,
I
k
n1
, ..., I
k
n
, onde cada fragmento ´e ob-
tido como explicado acima.
´
E poss´ıvel que, ao tentar determinar o ´ultimo fragmento, ao seja poss´ıvel satisfa-
zer a restri¸ao do limiar ε, devido ao encontro do final do v´ıdeo. Nesse caso, descartam-se
esse ´ultimos quadros, para evitar problemas de calibra¸ao causados pela pequena mo-
difica¸ao das coordenadas dos pontos das fam´ılias de pontos hom´ologos associadas ao
fragmento.
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 73
6.10 Jun¸ao de fragmentos
Consideremos que foram determinadas explica¸oes projetivas para as matrizes
de pontos hom´ologos dos fragmentos de um v´ıdeo (I)
n
. Mostraremos agora como uti-
lizar essas explica¸oes para determinar uma fam´ılia de ameras (P )
n
correspondente
`as ameras que foram utilizadas para captar (I)
n
.
´
E preciso levar em considera¸ao que
cada e xplica¸ao projetiva foi definida em um referencial pr´oprio, e em uma escala pr´opria.
Sendo assim, vamos dividir o problema em dois:
1. Alinhamento de fragmentos.
2. Compatibiliza¸ao de escalas.
6.10.1 Alinhamento de fragmentos
Dadas duas configura¸oes E
1
= ((G)
r
, Ω) e E
2
= ((Q)
s
, Ψ), que explicam pro-
jetivamente as matrizes de pontos hom´ologos M
1
e M
2
, associadas respectivamente aos
fragmentos consecutivos F
1
= (I
k
, I
k+1
, ..., I
k+r
), e F
2
= (I
k+r
, I
k+r+1
, ..., I
k+r+s
) de um
v´ıdeo (I)
n
, queremos determinar um movimento r´ıgido que transforma (Q)
s
em uma
fam´ılia de ameras (Q
)
s
tal que G
r
= Q
1
. Diremos nesse caso que (G)
r
e (Q
)
s
est˜ao
alinhadas.
Sejam Q
1
= K [R
1
|t
1
] e G
r
= K [R
2
|t
2
]. Podemos determinar a fam´ılia (Q
)
s
aplicando a seguinte transforma¸ao aos elementos de (Q)
s
K [R|t] → K

RR
T
1
R
2
|RR
T
1
(t
2
t
1
) + t
.
Podemos usar repetidas vezes essa transforma¸ao para alinharmos todas as fa-
m´ılias de ameras associadas a cada um dos fragmentos de (I)
n
.
6.10.2 Compatibiliza¸ao de escalas
O fato de duas fam´ılias de ameras (G)
r
e (Q)
s
, associadas a fragmentos consecu-
tivos, estarem alinhadas, ao significa que elas estejam prontas para serem concatenadas
de forma a gerar a fam´ılia de am eras utilizada na capta¸ao dos dois fragmentos. Isso
ocorre pois, geralmente (G)
r
e (Q)
s
est˜ao calibradas em escalas diferentes.
CAP
´
ITULO 6. CALIBRAC¸
˜
AO DE FAM
´
ILIAS DE C
ˆ
AMERAS 74
Podemos resolver o problema de compatibiliza¸ao de escalas explorando o fato
que dadas duas explica¸oes projetivas E
1
= ((G)
r
, Ω) e E
2
= ((Q)
s
, Ψ) associadas a
fragmentos consecutivos, normalmente existe um conjunto ao vazio S cujos ele-
mentos ao pontos da cena que tamb´em aparecem em Ψ. O fator de escala λ pode ser
obtido como resposta do seguinte problema de otimiza¸ao
Problema 6.1. Determinar λ
+
tal que aplicando-se a t ransforma¸ao K [R|t] →
K [R|λt] sobre todas as ameras em (Q)
s
, obt´em-se uma nova fam´ılia de ameras que ao
ser alinhada com a fam´ılia (G)
r
define uma fam´ılia de ameras (Q
)
s
que faz com que o
erro de reproje¸ao associado `a explicao projetiva ((Q
)
s
, S) seja m´ınimo.
6.10.3 Compatibiliza¸ao robusta de escalas
Resolver o problema 6.1 ao ´e simples, pois como as coordenadas dos elementos de
S ao estimadas atrav´es de um processo de minimiza¸ao do erro de reproje¸ao associado
a ((G)
r
, Ω), ´e poss´ıvel que algum dos pontos de S apresente erros grosseiros de reproje¸ao
quando feitas por ameras de (Q
)
s
. Isso pode ocorrer caso grandes modifica¸oes das
coordenadas de pontos de S, em alguma dire¸ao, ao produzam altera¸oes significativas
sobre as proje¸oes obtidas pelas ameras de (G)
r
.
Com o objetivo de resolver o problema 6.1 de forma robusta, aplicamos id´eias
presentes no algoritmo RANSAC, obtendo uma solu¸ao em dois passos:
1. Passo 1: Encontra-se o conjunto Λ
+
formado pelos valores de λ que, ao serem
utilizados na compatibiliza¸ao de escalas maximizam o n´umero de pontos de S
cujo erro de reproje¸ao por ameras de (Q
)
s
ao inferiores a um limiar ξ
+
.
Esses pontos de S definem o conjunto Θ;
2. Passo 2: Resolve-se o problema 6.1 modificado pela substitui¸ao do conjunto S
pelo seu subconjunto Θ.
Cap´ıtulo 7
Experimentos computacionais
Esse cap´ıtulo descreve experimentos realizados com um sistema des envolvido a
fim de testar o algoritmo de calibra¸ao de fam´ılias de ameras apresentado no cap´ıtulo
anterior. O sistema ´e capaz de inserir objetos virtuais sobre um v´ıdeo digital de forma
geometricamente consistente, ou seja, ´e um sistema capaz de fazer realidade aumentada
sobre um v´ıdeo. Para fazer isso, os parˆametros estimados na calibra¸ao ao utilizados na
especifica¸ao de uma amera do OpenGL equivalente, como apresentado na se¸ao 2.6,
que ´e empregada na cria¸ao do objeto virtual.
7.1 Bibliotecas utilizadas
Apresentamos aqui a lista de bibliotecas e programas que foram empregados no
desenvolvimento do sistema, junto com uma descri¸ao resumida das respectivas funcio-
nalidades utilizadas.
1. GNU Scientific Library
Foi a principal biblioteca utilizada, foram explorados seus recursos de ´algebra li-
near num´erica, sua implementa¸ao do algoritmo Levenberg-Marquardt, e seu al-
goritmo de otimiza¸ao de fun¸oes de uma vari´avel real. Serviu de base para a
implementa¸ao de todos os algoritmos de calibra¸ao de ameras apresentados nos
Cap´ıtulos 3, 4 e 6.
75
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 76
Figura 7.1: Arquitetura do sistema
2. KLT
Essa biblioteca forneceu a implementa¸ao do algoritmo Kanade-Lucas-Tomasi, que
foi utilizado para obter fam´ılias de pontos hom´ologos sobre os quadros de um v´ıdeo.
3. MPEG Library
Essa biblioteca foi utilizada na decodifica¸ao de v´ıdeos codificados no formato
MPEG.
4. MPEG2 Encoder
Esse programa foi utilizado na codifica¸ao do v´ıdeo de sa´ıda no formato MPEG.
5. OpenGL
Essa biblioteca foi utilizada na implementa¸ao dos processos de s´ıntese e com-
posi¸ao de imagens.
6. S3D
Foram utilizadas estruturas definidas nessa biblioteca na representa¸ao de imagens
e objetos poliedrais.
7.2 Arquitetura do sistema
O sistema ´e composto por um conjunto de odulos combinados em uma arqui-
tetura de filtros e canais como ilustrada na Figura 7.1.
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 77
O processamento realizado por cada odulo ´e o seguinte
1. Calibrador Intr´ınseco
Recebe como entrada um conjunto de correspondˆencias de pontos 3D-2D e for-
nece como sa´ıda uma m atriz de parˆametros intr´ınsecos obtida pela aplica¸ao do
algoritmo apresentado no Cap´ıtulo 3.
2. Perseguidor de Pontos
Recebe como entrada um v´ıdeo digital e fornece como sa´ıda um conjunto de fam´ılias
de pontos hom´ologos estimados pelo algoritmo KLT, como explicado no Cap´ıtulo 5.
3. Calibrador Extr´ınseco
Recebe como entrada uma matriz de parˆametros intr´ınsecos e um conjunto de
pontos hom´ologos associados aos quadros de um v´ıdeo, e fornece como sa´ıda os
parametros extr´ınsecos associados a cada quadro, como explicado no Cap´ıtulo 6.
4. Modelador Geom´etrico
Recebe como entrada um v´ıdeo digital, os parˆametros intr´ınsecos da amera que o
captou, os parametros extr´ınsecos associados a cada quadro do v´ıdeo, e um objeto
poliedral P . Esse odulo apresenta uma interface gr´afica que permite que um
usu´ario modifique a posi¸ao e as dimens˜oes de P observando interativamente o
efeito correspondente sobre um conjunto de quadros do v´ıdeo. A sa´ıda do odulo
´e o objeto P modificado.
5. Combinador de Imagens
Recebe como entrada um v´ıdeo digital, os parˆametros intr´ınsecos da amera que o
captou, os parametros extr´ınsecos associados a cada quadro do v´ıdeo, e um objeto
poliedral. A sa´ıda ´e o v´ıdeo formado pela composi¸ao dos quadros do v´ıdeo de
entrada com o objeto virtual.
7.3 Estima¸ao de parˆametros intr´ınsecos
Foram estimados os parˆametros intr´ınsecos de uma amera fotogr´afica modelo
SONY MVC-FD85, capaz de capturar v´ıdeos de 15 segundos com resolu¸ao espacial
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 78
Figura 7.2: Imagens do objeto calibrador obtidas por uma mesma amera posicionada
de formas diferentes.
320 × 240. Tendo em vista que tal amera ao fornece essa baixa resolu¸ao para a
captura de fotografias, utilizou-se uma resolu¸ao 640 × 480 na captura das imagens do
objeto calibrador, e p oste riormente fez-se os ajustes necess ´arios aos resultados.
As Tabelas 1, 2 e 3 exibem os parˆametros intr´ınsecos e extr´ınsecos estimados
pelo odulo Calibrador Intr´ınseco, utilizando as correspondˆencias 3D-2D obtidas com
as imagens (a) e (b) da Figura 7.2. O sistema de coordenadas 3D adotado ´e o indicado
nas imagens, assumindo-se que os lados das quadr´ıculas ao unit´arios.
As coordenadas das proje¸oes dos v´ertices de cada quadr´ıcula ao ao dete rmi-
nadas de forma automatizada, ou seja, o usu´ario ´e respons´avel por fornecer as corres-
pondˆencias 3D-2D ao s istem a.
A Tabela 1 mostra os resultados obtidos aplicando-se diretamente a proposi¸ao 3.1,
como desc rito na se¸ao 3.1.3. A Tabela 2 mostra os resultados obtidos por uma pequena
modifica¸ao desse mesmo algoritmo com a adi¸ao de um process o de normaliza¸ao de
coordenadas semelhante ao feito com os pontos hom´ologos na se¸ao 4.6. A descri¸ao
dessa modifica¸ao pode ser encontrada em [8] e seu objetivo ´e a melhoria do condicio-
namento do algoritmo. Essa foi a vers˜ao utilizada na implementa¸ao da calibra¸ao em
trˆes passos.
A Tabela 3 mostra os resultados obtidos aplicando-se o algoritmo Levenberg-
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 79
Marquardt impondo a restri¸ao de ao cisalhamento da matriz de sensores da amera,
como explicado na se¸ao 3.4. Neste caso, os erros de reproje¸ao encontrados para os
pontos marcados em (a) e (b) foram 1,1 e 1,0 pixels respectivamente, que na resolu¸ao
320 × 240 corresponde a um erro de aproximadamente 0,5 pixel.
Tabela 1 Calibra¸ao sem restri¸ao
Imagem K [R|t]
(a)
799.316 1.406 322.985
0.000 796.551 223.889
0.000 0.000 1.000
0.658 0.752 0.024 0.583
0.050 0.076 0.995 4.532
0.751 0.654 0.088 25.351
(b)
790.628 1.348 325.534
0.000 792.078 235.334
0.000 0.000 1.000
0.073 0.071 0.994 4.529
0.677 0.735 0.002 0.204
0.732 0.673 0.102 28.535
Tabela 2 Calibra¸ao sem restri¸ao ( normalizada )
Imagem K [R|t]
(a)
801.825 0.303 323.708
0.000 798.297 227.076
0.000 0.000 1.000
0.657 0.752 0.024 0.611
0.047 0.074 0.996 4.637
0.751 0.654 0.085 25.419
(b)
787.428 0.430 321.565
0.000 788.703 232.649
0.000 0.000 1.000
0.072 0.069 0.994 4.670
0.678 0.734 0.001 0.302
0.731 0.674 0.100 28.385
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 80
Tabela 3 Calibra¸ao restrita feita com Levenberg-Marquardt
Imagem K [R|t]
(a)
801.744 0.000 323.703
0.000 798.296 227.075
0.000 0.000 1.000
0.657 0.753 0.024 0.613
0.047 0.074 0.996 4.637
0.752 0.652 0.085 25.418
(b)
787.594 0.000 321.570
0.000 788.709 232.663
0.000 0.000 1.000
0.072 0.069 0.994 4.670
0.677 0.735 0.001 0.301
0.731 0.674 0.100 28.388
Os resultados ilustram a influˆencia do posicionamento da amera em (a) e (b)
sobre a estima¸ao dos parˆametros extr´ınsecos e intr´ınsecos. Enquanto os parˆametros
extr´ınsecos ao modificados drasticamente, os parˆametros intr´ınsecos sofrem uma modi-
fica¸ao pequena.
Em todas as tabelas, os parˆametros intr´ınsecos f
1
, f
2
, x
0
e y
0
associados `as
imagens (a) e (b) sofreram modifica¸oes inferiores a 2%. a o parˆame tro s se comportou
como uma pequena varia¸ao no ˆangulo de cisalhamento da matriz de sensores. No caso
da tabela 1, em que ao se aplicou a normaliza¸ao de coordenadas, a varia¸ao foi de
aproximadamente 0,2 graus. a no caso da tabela 2, em que as coordenadas foram
normalizadas, o ˆangulo variou aproximadamente 0,05 graus.
As modifica¸oes existentes nos parˆametros intr´ınsecos ao justificadas pela ao
adequa¸ao e xata do modelo de amera de furo ao caso de ameras com lente, e pelas
imprecis˜oes inseridas na confec¸ao do objeto calibrador e na avalia¸ao das coordenadas
dos pontos projetados.
7.4 Calibra¸ao de fragmentos
A Figura 7.3 exibe quadros de v´ıdeos sobrepostos por pontos acompanhados
pelo odulo Perseguidor de Pontos. Como explicado no Cap´ıtulo 6, nem todos os pontos
acompanhados ao aproveitados em todas as etapas da calibra¸ao de um fragmento. Eles
ao submetidos a testes que podem descarta-los ou readimiti-los. De forma resumida,
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 81
Figura 7.3: Quadros de v´ıdeos ilustrando o acompanhamento realizado pelo odulo
Perseguidor de Pontos. Temos respectivamente em (a), (b) e (c) um acompanhamento
de 10, 50 e 100 pontos.
essa varia¸ao na quantidadede de pontos pode ocorrer nos seguintes momentos:
1. Durante a execu¸ao do KLT, quando pontos podem ser eliminados, caso ao sejam
acompanhados com sucesso, devido a uma grande modifica¸ao de suas vizinhan¸cas
em quadros consecutivos;
2. Durante a execu¸ao do algoritmo de calibra¸ao em trˆes passos, quando pontos
podem ser eliminados, por ao fazerem parte do conjunto de consenso definido
pelo algoritmo RANSAC;
3. Durante os ciclos de refinamento, quando pontos podem ser descartados ou read-
mitidos, de acordo com seus erros de reproje¸ao nos quadros do fragmento.
A Figura 7.4 apresenta dois gr´aficos que indicam a quantidade de pontos utilizada
nas diversas etapas da calibra¸ao de dois fragmentos, extra´ıdos dos v´ıdeos (a) e (c), da
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 82
Figura 7.4: Quantidade de pontos selecionados nas diversas etapas da calibra¸ao de
fragmentos dos v´ıdeos (a) e (c ) da Figura 7.3. Cada curva representa um experimento
feito com uma quantidade diferente de pontos iniciais. No eixo horizontal temos: A -
Pontos selecionados no in´ıcio do fragmento; B - Pontos acompanhados pelo KLT por todo
o fragmento; C - Pontos pertencentes ao conjunto de consenso do RANSAC utilizado
pelo algoritmo de calibra¸ao em trˆes passos; D - Pontos reconstru´ıdos pelo primeiro ciclo
de refinamento; E - Pontos reconstru´ıdos pelo segundo ciclo de refinamento.
Figura 7.3. Cada gr´afico exibe trˆes curvas, que correspondem aos resultados associados
a sele¸oes de 50, 100 e 150 pontos, no primeiro quadro do fragmento.
Os fragmentos foram obtidos como descrito na se¸ao 6.9, escolhendo-se um des-
locamento edio de 10 pixels por ponto. Com es sa escolha, foram obtidos fragmentos
de aproximadamente 2 segundos em todos os casos apresentados nos gr´aficos.
O limiar de ace ita¸ao para o erro de reproje¸ao e stabelecido para o RANSAC,
durante a execu¸ao do algoritmo de calibra¸ao em trˆes passos, foi de 5 pixels. Ap´os o
t´ermino deste algoritmo foram executados dois ciclos de refinamento, o primeiro acei-
tando um erro de reproje¸ao de 3 pixels, e um s egundo aceitando um erro de 2 pixels.
Esses gr´aficos evidenciam o efeito dos ciclos de refinamento, que permitiram
um melhor aproveitamento dos pontos acompanhados pelo KLT. Basta observar que,
normalmente, no final de ambos os ciclos de refinamento, a quantidade de pontos satis-
fazendo um erro de reproje¸ao de 2 pixels foi maior do que a dos pontos que satisfizeram
o limiar de 5 pixels aplicado pelo RANSAC na calibra¸ao em trˆes passos.
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 83
Figura 7.5: Essas imagens localizam espacialmente os pontos associados `as letras A e E
dos gr´aficos da Figura 7.4. Os pontos vermelhos ao aqueles que foram aceitos no ´ultimo
ciclo de refinamento, e os azuis ao aqueles que foram descartados. (a), (b) e (c) exibem
os resultados utilizando-se respectivamente uma sele¸ao inicial de 50, 100 e 150 pontos.
(d), (e) e (f) fazem o mesmo para o outro v´ıdeo. Vˆe-se que, o ponto destacado em (a),
embora seja ovel, ao foi descartado.
Fica evidente tamb´em que, quanto maior ´e o n´umero de pontos escolhidos pelo
KLT no primeiro quadro, maior ´e a importˆancia do uso de ciclos de refinamento. Isso
pode ser explicado pelo fato do KLT escolher os pontos seguindo uma ordem de expec-
tativa de precis˜ao do processo de acompanhamento. Conseq¨uentemente, conjuntos com
muitos pontos selecionados pelo KLT devem ter muitos pontos acompanhados de forma
pouco precisa. Essa imprecis˜ao prejudica a reconstru¸ao tridimensional feita durante
a calibra¸ao em trˆes passos, aumentando o descarte indevido de pontos, explicado na
se¸ao 6.8.
Os resultados da calibra¸ao de fragmentos foram bons. Normalmente a grande
maioria dos pontos c onsegue satisfazer o limiar de 2 pixels ap´os os ciclos de refinamento,
como ilustrado nas figuras 7.4 e 7.5. Al´em disso, quando se aplica posteriormente o
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 84
Figura 7.6: A curva vermelha indica a fra¸ao do n´umero de pontos reconstru´ıdos no
fragmento indicado, cujos erros de reproje¸ao nos quadros do fragmento consecutivo ao
inferiores `a 5 pixels. A curva verde indica o erro edio cometido nessa reproje¸ao. As
informa¸oes ao parametrizadas pelas escolhas de escalas na solu¸ao do problema 6.1.
O resultado obtido aplicando-se o algoritmo definido em 6.10.3 sobre (a) ´e de 0,368. O
resultado da letra (b) est´a mal determinado.
algoritmo Levenberg-Marquardt at´e sua convergˆencia, obt´em-se erros de reproje¸ao in-
feriores a um pixel por ponto. Por outro lado, a Figura 7.5 mostra que, o processo de
descarte pode ao eliminar todos os pontos oveis da cena. Um exemplo disso ´e o ponto
selecionado sobre a reflex˜ao especular ocorrida na pia; mesmo sendo ovel, ele admite
uma reconstru¸ao tridimensional com erro de reproje¸ao inferior a 2 pixels sobre todos
os quadros do fragmento. Problemas desse tipo ocorrem com freq¨encia em fragmentos
muito pequenos. Um caso extremo ´e apresentado na pr´oxima se¸ao.
7.5 Jun¸ao de fragmentos
Com o objetivo de simplificar nota¸ao, no que se segue, chamaremos de [a, b] o
fragmento cujos quadros ao de um ´ındice a at´e um ´ındice b.
A Figura 7.6 exibe dois gr´aficos que apresentam informa¸oes sobre fragmentos
do v´ıdeo (c), da Figura 7.3. Eles ilustram o processo de resolu¸ao definido em 6.10.3
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 85
para o problema de compatibiliza¸ao de escalas entre fragmentos.
Na letra (a), temos que a curva vermelha indica a fra¸ao do n´umero de pontos
reconstru´ıdos durante a calibra¸ao de [0, 54] e acompanhados pelo KLT em [54, 95],
cujos erros de reproje¸ao nos quadros de [54, 95] ao inferiores a 5 pixels. A curva verde
indica o erro edio de reproje¸ao, medido em es cala de pixels, apresentado pelos pontos
indicados pela linha vermelha. Temos uma interpreta¸ao an´aloga na letra (b), sendo
que os fragmentos considerados ao [0, 3] e [3, 6]. Os valores exibidos nos gr´aficos ao
parametrizados pelas escolhas de escalas utilizadas na solu¸ao do problema 6.1.
Analisando esses gr´aficos fica evidente que o algoritmo de compatibiliza¸ao ro-
busta de escalas, definido na se¸ao 6.10.3, funciona de forma apropriada em (a), mas
funciona muito mal em (b). Esse resultado indica que ao se pode realizar uma decom-
posi¸ao do v´ıdeo em fragmentos muito curtos, como no exemplo (b).
Nos experimentos que produziram (a) e (b) foram acompanhados 50 pontos pelo
algoritmo KLT, dos quais 35 foram selecionados pelos ciclos de refinamento executados
em (a), e 49 foram selecionados pelos ciclos executados em (b). A pouca elimina¸ao de
pontos ocorrida em (b) indica que muitos pontos oveis deixaram de ser descartados
durante a calibra¸ao do fragmento, sendo este outro problema dos fragmentos curtos.
Por outro lado, verificou-se que tamb´em existem motivos para evitar os fragmen-
tos longos. Os experimentos com v´ıdeos de realidade aumentada mostraram que, embora
o aumento no comprimento dos fragmentos reduza o n´umero de jun¸oes destes em um
v´ıdeo, os erros inseridos pelas jun¸oes se tornam cada vez mais percept´ıveis. Ao utilizar
fragmentos mais curtos, o erro passa a ser melhor distribu´ıdo ao longo da trajet´oria da
amera, gerando resultados como os da Figura 7.8.
7.6 Modelagem geom´etrica
Para que fosse poss´ıvel posicionar objetos virtuais na cena real, foi desenvolvido o
odulo Modelador Geom´etrico, que permite que um usu´ario modifique o posicionamento
de um objeto poliedral codificado no formato PLY, de maneira interativa.
O odulo fornece uma interface gr´afica que permite ao usu´ario visualizar simul-
taneamente o objeto virtual sobre um conjunto de quadros do v´ıdeo, e modificar sua
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 86
Figura 7.7: Interface gr´afica do Modelador Geom´etrico.
posi¸ao, bastando para isso utilizar teclas para redimensionar, transladar ou rotacionar
o objeto. A Figura 7.7 exibe a interface gr´afica do Modelador Geom´etrico.
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 87
7.7 Resultados finais
Figura 7.8: Quadros de v´ıdeos gerados pelo odulo Combinador de Imagens.
CAP
´
ITULO 7. EXPERIMENTOS COMPUTACIONAIS 88
7.8 Considera¸oes sobre desempenho
O trabalho experimental teve por objetivo ilustrar o processo de sele¸ao de pon-
tos do algoritmo apresentado na disserta¸ao, e mostrar sua aplicabilidade em realidade
aumentada. ao foi feita uma an´alise detalhada do desempenho deste algoritmo. Os
motivos desta omiss˜ao foram os seguintes:
1. O algoritmo apresentado utiliza muitos parˆametros especificados pelo usu´ario de
forma emp´ırica. Como a escolha destes parˆametros influencia significativamente
no desempenho do algoritmo, acreditamos que seja necess´ario reduzir o n´umero de
parˆametros antes de relaciona-los com o tempo gasto para calibrar v´ıdeos. Deixa-
mos esse problema para um trabalho futuro.
2. Foi utilizado o algoritmo Levenberg-Marquardt da biblioteca GNU Scientific Li-
brary. Esta biblioteca ao explora particularidades do problema de calibra¸ao, que
podem ser utilizadas para reduzir a complexidade deste algoritmo [8]. Por esse mo-
tivo, o tempo de execu¸ao do prot´otipo tem seu tempo aumentado, ao refletindo
o tempo que seria alcan¸cado com o uso de uma implementa¸ao de Levenberg-
Marquardt otimizada.
A grosso modo, obtivemos uma rela¸ao da ordem de dezenas de minutos para
calibrar cada segundo de v´ıdeo. Nestes testes foi utilizando um computador com pro-
cessador Pentium IV de 3GHz.
Cap´ıtulo 8
Conclus˜oes e trabalhos futuros
Apresentamos nesta disserta¸ao um algoritmo capaz de determinar os parˆametros
extr´ınsecos das ameras utilizadas na capta¸ao de um v´ıdeo, sem a necessidade de rea-
lizar nenhum tipo de marca¸ao sobre os objetos da cena. Os resultados obtidos foram
suficientemente bons para fazer realidade aumentada em v´ıdeos de curta dura¸ao.
Foi descrito de forma mais detalhada que em [6] a resolu¸ao do problema de
estima¸ao de uma explica¸ao projetiva por uma solu¸ao em trˆes passos, sem o uso de
tensores trifocais. Foram explicitados os poss´ıveis problemas durante a execu¸c ˜ao desses
trˆes passos, tendo sido apresentadas solu¸oes, que foram testadas no prot´otipo imple-
mentado. Apresentou-se tamb´em um etodo de refinamento para a solu¸ao obtida em
trˆes passos, que foi chamado de ciclo de refinamento, e cujo efeito positivo foi avaliado
no cap´ıtulo anterior.
8.1 Problemas pendentes na calibra¸ao
O etodo de calibra¸ao apresentado ainda possui as seguintes deficiˆencias, que
esperamos que sejam resolvidas em trabalhos futuros:
1. Existem muitos limiares independentes que precisam ser ajustados para que o
algoritmo funcione apropriadamente;
89
CAP
´
ITULO 8. CONCLUS
˜
OES E TRABALHOS FUTUROS 90
2. ao existem garantias de que em todos os passos do algoritmo existir´a um conjunto
suficiente de fam´ılias de pontos hom´ologos para que se possa aplicar a proposi¸ao
3.1;
3. O resultado final ao ´e uma otimiza¸ao global sobre o erro de reproje¸ao em todos
os quadros do v´ıdeo. O que o algoritmo faz ´e uma otimiza¸ao em cada fragmento,
seguida de uma jun¸ao ´otima das fam´ılias de ameras estimadas.
8.2 Propostas para trabalhos futuros
Apresentamos agora algumas propostas de poss´ıveis trabalhos que po dem ser
desenvolvidos como continuao deste. Foram feitos alguns experimentos iniciais de
algumas dessas continua¸oes, como ser´a mostrado.
8.2.1 Problema de visibilidade
O processo de calibra¸ao de ameras ao produz informa¸ao suficiente para que
se possa em geral combinar objetos virtuais de forma geometricamente consistente com
um v´ıdeo. Isso se deve ao fato do objeto virtual poder ser parcialmente ocludido pela
cena. Nos experimentos esse problema foi solucionado posicionando o objeto virtual de
forma a ficar entre a amera e a cena em todos os quadros. Neste caso ´e necess´ario
apenas sobrepor a imagem do objeto virtual sobre os quadros do v´ıdeo.
Uma poss´ıvel continua¸ao para o trabalho seria estimar a geometria da cena
a partir dos quadros do v´ıdeo, e da fam´ılia de ameras obtida pela calibra¸ao. Com
isso seria poss´ıvel atacar o problema de visibilidade levando em considera¸ao tanto as
superf´ıcies dos objetos virtuais como as superf´ıcies da cena.
8.2.2 Ferramenta de modelagem para realidade aumentada
Os experimentos realizados com o odulo Modelador Geom´etrico mostraram que
´e dif´ıcil posicionar objetos virtuais apenas observando suas proje¸oes em um conjunto de
quadros. Essa tarefa ficaria muito mais acil se fosse poss´ıvel para o usu´ario estabelecer
algum tipo de rela¸ao entre o objeto virtual e a cena, com o apoiar ou alinhar o objeto
virtual com objetos reais.
CAP
´
ITULO 8. CONCLUS
˜
OES E TRABALHOS FUTUROS 91
Em sistemas de realidade aumentada que utilizam marca¸oes na cena pode-se
normalmente definir um sistema de coordenadas onde ´e acil encostar o objeto virtual
na cena. Isso ocorre, por exemplo, em sistemas baseados na biblioteca ARToolKit,
onde objetos virtuais ao desenhados sobre quadrados desenhados e m superf´ıcies planas.
Infelizmente isso ao ocorre no nosso caso.
Seria interessante que fosse desenvolvida um ferramenta de modelagem geom´etrica
capaz de posicionar objetos virtuais, de forma que o usu´ario conse guisse estabelecer
rela¸oes com a cena, mesmo sem esta ter sido marcada.
8.2.3 Fotorrealismo
Al´em dos aspectos geom´etricos, tem-se que para que um objeto virtual seja inte-
grado de maneira realista em uma imagem ´e necess´ario que exista uma compatibiliza¸ao
entre a ilumina¸ao da cena e a ilumina¸ao usada para gerar o objeto virtual. Uma abor-
dagem poss´ıvel seria estimar o posicionamento das fontes de luz da cena e utilizar essa
informa¸ao na s´ıntese da imagem do objeto virtual. Essa abordagem apresenta alguns
problemas, como por exemplo, a inexistˆencia de sombras entre objetos virtuais e objetos
presentes no v´ıdeo.
Uma abordagem muito mais ambiciosa seria buscar a compatibiliza¸ao de ilu-
mina¸ao via constru¸ao de um modelo global de ilumina¸ao que integrasse tanto o ob-
jeto virtual como um modelo da ce na estimado a partir do v´ıdeo. Esse modelo precisaria
conter informa¸oes geom´etricas e radiom´etricas sobre as superf´ıcies da cena, incluindo
informa¸oes sobre superf´ıcies que ao aparecem no v´ıdeo, mas que interferem na ilu-
mina¸ao.
Foram feitos alguns experimentos com o objetivo de produzir realidade aumen-
tada com melhor qualidade visual. Para isso substituiu-se a biblioteca OpenGL, no
odulo Combinador de Imagens, pelo programa YafRay (Yet Another Free Ray Tra-
cer ), que utiliza um modelo global de ilumina¸ao para gerar imagens a partir de uma
descri¸ao de cena codificada no formato XML. Esse trabalho encontra-se em desenvol-
vimento, e ainda ao foi feito nenhum tipo de compatibiliza¸ao de ilumina¸ao. Um
resultado inicial pode ser visto na Figura 8.1.
CAP
´
ITULO 8. CONCLUS
˜
OES E TRABALHOS FUTUROS 92
Figura 8.1: Composi¸ao da imagem de um cubo gerado pelo YafRay com alguns quadros
de um v´ıdeo.
Figura 8.2: O cubo ao redor do boneco ilustra o uso da calibra¸ao na estima¸ao do
movimento realizado por um corpo r´ıgido.
8.2.4 Acompanhamento espacial de corpos r´ıgidos em v´ıdeo
Podemos interpretar o resultado da calibra¸ao de uma amera em rela¸ao a uma
cena como sendo o movimento da cena em rela¸ao a amera. Com isso, o sistema
apresentado nessa disse rta¸ao poderia ser usado para estimar o movimento de rota¸ao
e transla¸ao de um corp o r´ıgido em um v´ıdeo, com o ilustrado na Figura 8.2. Para que
isso funcione ´e necess´ario que o KLT selecione uma quantidade maior de pontos no
objeto que no fundo. Essa limita¸ao pode ser facilmente contornada, pois uma vers˜ao do
sistema capaz de acompanhar arios corpos r´ıgidos pode pode ser criada modificando o
algoritmo RANSAC, de forma que ele encontre diversos conjuntos de consenso, no lugar
de encontrar o conjunto de consenso maximal.
Referˆencias Bibliogr´aficas
[1] F. Devernay and O. Faugeras. Automatic c alibration and removal of distortion
from scenes of structured environments. In SPIE, volume 2567, San Diego, CA,
July 1995.
[2] Gerald Farin and Dianne Hansford. The Geometry Toolbox for Graphics and Mo-
deling, chapter 12, page 181. AK Peters, LTD, 1998.
[3] Martin A. Fischler and Robert C. Bolles. Random sample consensus: a paradigm
for model fitting with applications to image analysis and automated cartography.
Communications of the ACM, 24(6):381–395, 1981.
[4] D. A. Forsyth and J. Ponce. Computer Vision: A Modern Approach. Prentice Hall,
2003.
[5] Helmut Fritzsche. Progra ma¸ao ao-linear. Edgar Bl¨ucher, 1978.
[6] Simon Gibson, Jon Cook, Toby Howard, Roger Hubbold, and Dan Oram. Accurate
camera calibration for off-line, video-based augmented reality. In International
Symposium on Mixed and Augmented Reality (ISMAR’02), page 37, 2002.
[7] Jonas Gomes and Luiz Velho. Fundamentos da Computacao Grafica. IMPA, 2003.
[8] Richard Hartley and Andrew Zisserman. Multiple View Geometry in computer
vision, second edition. Cambrige University Press, Cambridge, United Kingdom,
2003.
[9] Richard I. Hartley. In defence of the 8-point algorithm. In ICCV, pages 1064–1070,
1995.
93
REFER
ˆ
ENCIAS BIBLIOGR
´
AFICAS 94
[10] Elon Lages Lima. Curso de An´alise Volume 2 - Sexta Edi¸ao. IMPA, 2000.
[11] H. Longuet-Higgins. A computer algorithm for reconstructing a scene from two
projections. Nature, 293:133–135, 1981.
[12] B.D. Lucas and T. Kanade. An iterative image registration technique with an
application to stereo vision. In IJCAI81, pages 674–679, 1981.
[13] Ton Roosendaal and Stefano Selleri. The Official Blender 2.3 Guide: Free 3D
Creation Suite for Modeling, Animation, and Rendering. No Starch Press, June
2004.
[14] Chaman L. Sabharwal. Stereoscopic projections and 3d scene reconstruction. In
SAC ’92: Proceedings of the 1992 ACM/SIGAPP symposium on Applied computing,
pages 1248–1257, New York, NY, USA, 1992. ACM Press.
[15] Jianbo Shi and Carlo Tomasi. Good features to track. In IEEE Conference on
Computer Vision and Pattern Recognition (CVPR’94), Seattle, June 1994.
[16] C. Tomasi and T. Kanade. Detection and tracking of point features. Technical
Report CMU-CS-91-132, 24(6), April 1991.
[17] Emanuele Trucco and Alessandro Verri. Introductory Techniques for 3-D Computer
Vision. Prentice Hall PTR, Upper Saddler River, NJ, USA, 1998.
[18] R. Y. Tsai and T. S. Huang. Uniqueness and estimation of three-dimensional motion
parameters of rigid objects with curved surfaces. IEEE Transact ions on Pattern
Analysis and Machine Intelligence, 6:13–27, 1984.
[19] Luiz Velho and Jonas Gomes. Sistemas Gr´aficos 3D. S´erie Computa¸ao e Ma-
tem´atica. SBM / IMPA, 2001.
[20] Mason Woo, Jackie Neider, and Tom David. OpenGL 1.2 Programming Guide, 3rd
Edition: The Official Guide to learning OpenGL, Version 1.2. Addison Wesley,
1999. WOO m 99:1 1.Ex.
Livros Grátis
( http://www.livrosgratis.com.br )
Milhares de Livros para Download:
Baixar livros de Administração
Baixar livros de Agronomia
Baixar livros de Arquitetura
Baixar livros de Artes
Baixar livros de Astronomia
Baixar livros de Biologia Geral
Baixar livros de Ciência da Computação
Baixar livros de Ciência da Informação
Baixar livros de Ciência Política
Baixar livros de Ciências da Saúde
Baixar livros de Comunicação
Baixar livros do Conselho Nacional de Educação - CNE
Baixar livros de Defesa civil
Baixar livros de Direito
Baixar livros de Direitos humanos
Baixar livros de Economia
Baixar livros de Economia Doméstica
Baixar livros de Educação
Baixar livros de Educação - Trânsito
Baixar livros de Educação Física
Baixar livros de Engenharia Aeroespacial
Baixar livros de Farmácia
Baixar livros de Filosofia
Baixar livros de Física
Baixar livros de Geociências
Baixar livros de Geografia
Baixar livros de História
Baixar livros de Línguas
Baixar livros de Literatura
Baixar livros de Literatura de Cordel
Baixar livros de Literatura Infantil
Baixar livros de Matemática
Baixar livros de Medicina
Baixar livros de Medicina Veterinária
Baixar livros de Meio Ambiente
Baixar livros de Meteorologia
Baixar Monografias e TCC
Baixar livros Multidisciplinar
Baixar livros de Música
Baixar livros de Psicologia
Baixar livros de Química
Baixar livros de Saúde Coletiva
Baixar livros de Serviço Social
Baixar livros de Sociologia
Baixar livros de Teologia
Baixar livros de Trabalho
Baixar livros de Turismo